Browse Source

背单词基本功能

s202226701051 8 months ago
parent
commit
dd2af27d31
68 changed files with 28309 additions and 0 deletions
  1. 15 0
      word-app/.browserslistrc
  2. 16 0
      word-app/.editorconfig
  3. 46 0
      word-app/.eslintrc.json
  4. 70 0
      word-app/.gitignore
  5. 5 0
      word-app/.vscode/extensions.json
  6. 3 0
      word-app/.vscode/settings.json
  7. 151 0
      word-app/angular.json
  8. 9 0
      word-app/capacitor.config.ts
  9. 7 0
      word-app/ionic.config.json
  10. 44 0
      word-app/karma.conf.js
  11. 18945 0
      word-app/package-lock.json
  12. 64 0
      word-app/package.json
  13. 3 0
      word-app/src/app/app.component.html
  14. 0 0
      word-app/src/app/app.component.scss
  15. 16 0
      word-app/src/app/app.component.spec.ts
  16. 11 0
      word-app/src/app/app.component.ts
  17. 13 0
      word-app/src/app/app.routes.ts
  18. 12 0
      word-app/src/app/explore-container/explore-container.component.html
  19. 27 0
      word-app/src/app/explore-container/explore-container.component.scss
  20. 18 0
      word-app/src/app/explore-container/explore-container.component.spec.ts
  21. 10 0
      word-app/src/app/explore-container/explore-container.component.ts
  22. 8 0
      word-app/src/app/pronunciation-button/pronunciation-button.component.html
  23. 48 0
      word-app/src/app/pronunciation-button/pronunciation-button.component.scss
  24. 22 0
      word-app/src/app/pronunciation-button/pronunciation-button.component.spec.ts
  25. 197 0
      word-app/src/app/pronunciation-button/pronunciation-button.component.ts
  26. 277 0
      word-app/src/app/recite-words/recite-words.page.html
  27. 507 0
      word-app/src/app/recite-words/recite-words.page.scss
  28. 17 0
      word-app/src/app/recite-words/recite-words.page.spec.ts
  29. 692 0
      word-app/src/app/recite-words/recite-words.page.ts
  30. 203 0
      word-app/src/app/recite-words/word-group.service.ts
  31. 39 0
      word-app/src/app/recite-words/word-interfaces.ts
  32. 571 0
      word-app/src/app/recite-words/word-processing.service.ts
  33. 17 0
      word-app/src/app/tab1/tab1.page.html
  34. 0 0
      word-app/src/app/tab1/tab1.page.scss
  35. 18 0
      word-app/src/app/tab1/tab1.page.spec.ts
  36. 17 0
      word-app/src/app/tab1/tab1.page.ts
  37. 17 0
      word-app/src/app/tab2/tab2.page.html
  38. 0 0
      word-app/src/app/tab2/tab2.page.scss
  39. 18 0
      word-app/src/app/tab2/tab2.page.spec.ts
  40. 15 0
      word-app/src/app/tab2/tab2.page.ts
  41. 17 0
      word-app/src/app/tab3/tab3.page.html
  42. 0 0
      word-app/src/app/tab3/tab3.page.scss
  43. 18 0
      word-app/src/app/tab3/tab3.page.spec.ts
  44. 13 0
      word-app/src/app/tab3/tab3.page.ts
  45. 18 0
      word-app/src/app/tabs/tabs.page.html
  46. 1 0
      word-app/src/app/tabs/tabs.page.scss
  47. 26 0
      word-app/src/app/tabs/tabs.page.spec.ts
  48. 18 0
      word-app/src/app/tabs/tabs.page.ts
  49. 40 0
      word-app/src/app/tabs/tabs.routes.ts
  50. 44 0
      word-app/src/app/word-detail/word-detail.component.html
  51. 129 0
      word-app/src/app/word-detail/word-detail.component.scss
  52. 22 0
      word-app/src/app/word-detail/word-detail.component.spec.ts
  53. 37 0
      word-app/src/app/word-detail/word-detail.component.ts
  54. BIN
      word-app/src/assets/icon/favicon.png
  55. 1 0
      word-app/src/assets/shapes.svg
  56. 5520 0
      word-app/src/assets/words.txt
  57. 3 0
      word-app/src/environments/environment.prod.ts
  58. 16 0
      word-app/src/environments/environment.ts
  59. 37 0
      word-app/src/global.scss
  60. 26 0
      word-app/src/index.html
  61. 14 0
      word-app/src/main.ts
  62. 55 0
      word-app/src/polyfills.ts
  63. 14 0
      word-app/src/test.ts
  64. 2 0
      word-app/src/theme/variables.scss
  65. 6 0
      word-app/src/zone-flags.ts
  66. 15 0
      word-app/tsconfig.app.json
  67. 31 0
      word-app/tsconfig.json
  68. 18 0
      word-app/tsconfig.spec.json

+ 15 - 0
word-app/.browserslistrc

@@ -0,0 +1,15 @@
+# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+
+# For the full list of supported browsers by the Angular framework, please see:
+# https://angular.dev/reference/versions#browser-support
+
+# You can see what browsers were selected by your queries by running:
+#   npx browserslist
+
+Chrome >=107
+Firefox >=106
+Edge >=107
+Safari >=16.1
+iOS >=16.1

+ 16 - 0
word-app/.editorconfig

@@ -0,0 +1,16 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.ts]
+quote_type = single
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false

+ 46 - 0
word-app/.eslintrc.json

@@ -0,0 +1,46 @@
+{
+  "root": true,
+  "ignorePatterns": ["projects/**/*"],
+  "overrides": [
+    {
+      "files": ["*.ts"],
+      "parserOptions": {
+        "project": ["tsconfig.json"],
+        "createDefaultProgram": true
+      },
+      "extends": [
+        "plugin:@angular-eslint/recommended",
+        "plugin:@angular-eslint/template/process-inline-templates"
+      ],
+      "rules": {
+        "@angular-eslint/component-class-suffix": [
+          "error",
+          {
+            "suffixes": ["Page", "Component"]
+          }
+        ],
+        "@angular-eslint/component-selector": [
+          "error",
+          {
+            "type": "element",
+            "prefix": "app",
+            "style": "kebab-case"
+          }
+        ],
+        "@angular-eslint/directive-selector": [
+          "error",
+          {
+            "type": "attribute",
+            "prefix": "app",
+            "style": "camelCase"
+          }
+        ]
+      }
+    },
+    {
+      "files": ["*.html"],
+      "extends": ["plugin:@angular-eslint/template/recommended"],
+      "rules": {}
+    }
+  ]
+}

+ 70 - 0
word-app/.gitignore

@@ -0,0 +1,70 @@
+# Specifies intentionally untracked files to ignore when using Git
+# http://git-scm.com/docs/gitignore
+
+*~
+*.sw[mnpcod]
+.tmp
+*.tmp
+*.tmp.*
+UserInterfaceState.xcuserstate
+$RECYCLE.BIN/
+
+*.log
+log.txt
+
+
+/.sourcemaps
+/.versions
+/coverage
+
+# Ionic
+/.ionic
+/www
+/platforms
+/plugins
+
+# Compiled output
+/dist
+/tmp
+/out-tsc
+/bazel-out
+
+# Node
+/node_modules
+npm-debug.log
+yarn-error.log
+
+# IDEs and editors
+.idea/
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-project
+*.sublime-workspace
+
+# Visual Studio Code
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history/*
+
+
+# Miscellaneous
+/.angular
+/.angular/cache
+.sass-cache/
+/.nx
+/.nx/cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+testem.log
+/typings
+
+# System files
+.DS_Store
+Thumbs.db

+ 5 - 0
word-app/.vscode/extensions.json

@@ -0,0 +1,5 @@
+{
+    "recommendations": [
+       "Webnative.webnative"
+    ]
+}

+ 3 - 0
word-app/.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+  "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/common", "@ionic/angular"]
+}

+ 151 - 0
word-app/angular.json

@@ -0,0 +1,151 @@
+{
+  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+  "version": 1,
+  "newProjectRoot": "projects",
+  "projects": {
+    "app": {
+      "projectType": "application",
+      "schematics": {
+        "@ionic/angular-toolkit:page": {
+          "styleext": "scss",
+          "standalone": true
+        }
+      },
+      "root": "",
+      "sourceRoot": "src",
+      "prefix": "app",
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:application",
+          "options": {
+            "outputPath": {
+              "base": "www",
+              "browser": ""
+            },
+            "index": "src/index.html",
+            "polyfills": [
+              "src/polyfills.ts"
+            ],
+            "tsConfig": "tsconfig.app.json",
+            "inlineStyleLanguage": "scss",
+            "assets": [
+              {
+                "glob": "**/*",
+                "input": "src/assets",
+                "output": "assets"
+              }
+            ],
+            "styles": ["src/global.scss", "src/theme/variables.scss"],
+            "scripts": [],
+            "browser": "src/main.ts"
+          },
+          "configurations": {
+            "production": {
+              "budgets": [
+                {
+                  "type": "initial",
+                  "maximumWarning": "2mb",
+                  "maximumError": "5mb"
+                },
+                {
+                  "type": "anyComponentStyle",
+                  "maximumWarning": "2kb",
+                  "maximumError": "4kb"
+                }
+              ],
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "outputHashing": "all"
+            },
+            "development": {
+              "optimization": false,
+              "extractLicenses": false,
+              "sourceMap": true,
+              "namedChunks": true
+            },
+            "ci": {
+              "progress": false
+            }
+          },
+          "defaultConfiguration": "production"
+        },
+        "serve": {
+          "builder": "@angular-devkit/build-angular:dev-server",
+          "configurations": {
+            "production": {
+              "buildTarget": "app:build:production"
+            },
+            "development": {
+              "buildTarget": "app:build:development"
+            },
+            "ci": {
+              "progress": false
+            }
+          },
+          "defaultConfiguration": "development"
+        },
+        "extract-i18n": {
+          "builder": "@angular-devkit/build-angular:extract-i18n",
+          "options": {
+            "buildTarget": "app:build"
+          }
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "src/test.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "tsconfig.spec.json",
+            "karmaConfig": "karma.conf.js",
+            "inlineStyleLanguage": "scss",
+            "assets": [
+              {
+                "glob": "**/*",
+                "input": "src/assets",
+                "output": "assets"
+              }
+            ],
+            "styles": ["src/global.scss", "src/theme/variables.scss"],
+            "scripts": []
+          },
+          "configurations": {
+            "ci": {
+              "progress": false,
+              "watch": false
+            }
+          }
+        },
+        "lint": {
+          "builder": "@angular-eslint/builder:lint",
+          "options": {
+            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
+          }
+        }
+      }
+    }
+  },
+  "cli": {
+    "schematicCollections": [
+      "@ionic/angular-toolkit"
+    ],
+    "analytics": false
+  },
+  "schematics": {
+    "@ionic/angular-toolkit:component": {
+      "styleext": "scss"
+    },
+    "@ionic/angular-toolkit:page": {
+      "styleext": "scss"
+    },
+    "@angular-eslint/schematics:application": {
+      "setParserOptionsProject": true
+    },
+    "@angular-eslint/schematics:library": {
+      "setParserOptionsProject": true
+    }
+  }
+}

+ 9 - 0
word-app/capacitor.config.ts

@@ -0,0 +1,9 @@
+import type { CapacitorConfig } from '@capacitor/cli';
+
+const config: CapacitorConfig = {
+  appId: 'io.ionic.starter',
+  appName: 'word-app',
+  webDir: 'www'
+};
+
+export default config;

+ 7 - 0
word-app/ionic.config.json

@@ -0,0 +1,7 @@
+{
+  "name": "word-app",
+  "integrations": {
+    "capacitor": {}
+  },
+  "type": "angular-standalone"
+}

+ 44 - 0
word-app/karma.conf.js

@@ -0,0 +1,44 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
+    client: {
+      jasmine: {
+        // you can add configuration options for Jasmine here
+        // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
+        // for example, you can disable the random execution with `random: false`
+        // or set a specific seed with `seed: 4321`
+      },
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
+    },
+    jasmineHtmlReporter: {
+      suppressAll: true // removes the duplicated traces
+    },
+    coverageReporter: {
+      dir: require('path').join(__dirname, './coverage/app'),
+      subdir: '.',
+      reporters: [
+        { type: 'html' },
+        { type: 'text-summary' }
+      ]
+    },
+    reporters: ['progress', 'kjhtml'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false,
+    restartOnFileChange: true
+  });
+};

+ 18945 - 0
word-app/package-lock.json

@@ -0,0 +1,18945 @@
+{
+  "name": "word-app",
+  "version": "0.0.1",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "word-app",
+      "version": "0.0.1",
+      "dependencies": {
+        "@angular/animations": "^20.0.0",
+        "@angular/common": "^20.0.0",
+        "@angular/compiler": "^20.0.0",
+        "@angular/core": "^20.0.0",
+        "@angular/forms": "^20.0.0",
+        "@angular/platform-browser": "^20.0.0",
+        "@angular/platform-browser-dynamic": "^20.0.0",
+        "@angular/router": "^20.0.0",
+        "@capacitor/app": "8.0.0",
+        "@capacitor/core": "8.0.1",
+        "@capacitor/haptics": "8.0.0",
+        "@capacitor/keyboard": "8.0.0",
+        "@capacitor/status-bar": "8.0.0",
+        "@ionic/angular": "^8.0.0",
+        "ionicons": "^7.0.0",
+        "rxjs": "~7.8.0",
+        "tslib": "^2.3.0",
+        "zone.js": "~0.15.0"
+      },
+      "devDependencies": {
+        "@angular-devkit/build-angular": "^20.0.0",
+        "@angular-eslint/builder": "^20.0.0",
+        "@angular-eslint/eslint-plugin": "^20.0.0",
+        "@angular-eslint/eslint-plugin-template": "^20.0.0",
+        "@angular-eslint/schematics": "^20.0.0",
+        "@angular-eslint/template-parser": "^20.0.0",
+        "@angular/cli": "^20.0.0",
+        "@angular/compiler-cli": "^20.0.0",
+        "@angular/language-service": "^20.0.0",
+        "@capacitor/cli": "8.0.1",
+        "@ionic/angular-toolkit": "^12.0.0",
+        "@types/jasmine": "~5.1.0",
+        "@typescript-eslint/eslint-plugin": "^8.18.0",
+        "@typescript-eslint/parser": "^8.18.0",
+        "eslint": "^9.16.0",
+        "eslint-plugin-import": "^2.29.1",
+        "eslint-plugin-jsdoc": "^48.2.1",
+        "eslint-plugin-prefer-arrow": "1.2.2",
+        "jasmine-core": "~5.1.0",
+        "jasmine-spec-reporter": "~5.0.0",
+        "karma": "~6.4.0",
+        "karma-chrome-launcher": "~3.2.0",
+        "karma-coverage": "~2.2.0",
+        "karma-jasmine": "~5.1.0",
+        "karma-jasmine-html-reporter": "~2.1.0",
+        "typescript": "~5.9.0"
+      }
+    },
+    "node_modules/@algolia/abtesting": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/abtesting/-/abtesting-1.1.0.tgz",
+      "integrity": "sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-abtesting": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-abtesting/-/client-abtesting-5.35.0.tgz",
+      "integrity": "sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-analytics": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-analytics/-/client-analytics-5.35.0.tgz",
+      "integrity": "sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-common": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-common/-/client-common-5.35.0.tgz",
+      "integrity": "sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-insights": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-insights/-/client-insights-5.35.0.tgz",
+      "integrity": "sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-personalization": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-personalization/-/client-personalization-5.35.0.tgz",
+      "integrity": "sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-query-suggestions": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.35.0.tgz",
+      "integrity": "sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/client-search": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/client-search/-/client-search-5.35.0.tgz",
+      "integrity": "sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/ingestion": {
+      "version": "1.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/ingestion/-/ingestion-1.35.0.tgz",
+      "integrity": "sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/monitoring": {
+      "version": "1.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/monitoring/-/monitoring-1.35.0.tgz",
+      "integrity": "sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/recommend": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/recommend/-/recommend-5.35.0.tgz",
+      "integrity": "sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/requester-browser-xhr": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.35.0.tgz",
+      "integrity": "sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/requester-fetch": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/requester-fetch/-/requester-fetch-5.35.0.tgz",
+      "integrity": "sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@algolia/requester-node-http": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/@algolia/requester-node-http/-/requester-node-http-5.35.0.tgz",
+      "integrity": "sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/client-common": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@ampproject/remapping": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz",
+      "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@angular-devkit/architect": {
+      "version": "0.2003.14",
+      "resolved": "https://registry.npmmirror.com/@angular-devkit/architect/-/architect-0.2003.14.tgz",
+      "integrity": "sha512-dVlWqaYu0PIgHTBu16uYUS6lJOIpXCpOYhPWuYwqdo7a4x2HcagPQ+omUZJTA6kukh7ROpKcRoiy/DsO/DgvUA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/core": "20.3.14",
+        "rxjs": "7.8.2"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      }
+    },
+    "node_modules/@angular-devkit/build-angular": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@angular-devkit/build-angular/-/build-angular-20.3.14.tgz",
+      "integrity": "sha512-L3saxbGXUgSSXfCrWHTl9eBAxzcA1oSrb0ojL+NBiJ82Zhx1a3XIGSTNg7YkCrXHaLx+fvuoeyT7xyBH18zYZw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ampproject/remapping": "2.3.0",
+        "@angular-devkit/architect": "0.2003.14",
+        "@angular-devkit/build-webpack": "0.2003.14",
+        "@angular-devkit/core": "20.3.14",
+        "@angular/build": "20.3.14",
+        "@babel/core": "7.28.3",
+        "@babel/generator": "7.28.3",
+        "@babel/helper-annotate-as-pure": "7.27.3",
+        "@babel/helper-split-export-declaration": "7.24.7",
+        "@babel/plugin-transform-async-generator-functions": "7.28.0",
+        "@babel/plugin-transform-async-to-generator": "7.27.1",
+        "@babel/plugin-transform-runtime": "7.28.3",
+        "@babel/preset-env": "7.28.3",
+        "@babel/runtime": "7.28.3",
+        "@discoveryjs/json-ext": "0.6.3",
+        "@ngtools/webpack": "20.3.14",
+        "ansi-colors": "4.1.3",
+        "autoprefixer": "10.4.21",
+        "babel-loader": "10.0.0",
+        "browserslist": "^4.21.5",
+        "copy-webpack-plugin": "13.0.1",
+        "css-loader": "7.1.2",
+        "esbuild-wasm": "0.25.9",
+        "fast-glob": "3.3.3",
+        "http-proxy-middleware": "3.0.5",
+        "istanbul-lib-instrument": "6.0.3",
+        "jsonc-parser": "3.3.1",
+        "karma-source-map-support": "1.4.0",
+        "less": "4.4.0",
+        "less-loader": "12.3.0",
+        "license-webpack-plugin": "4.0.2",
+        "loader-utils": "3.3.1",
+        "mini-css-extract-plugin": "2.9.4",
+        "open": "10.2.0",
+        "ora": "8.2.0",
+        "picomatch": "4.0.3",
+        "piscina": "5.1.3",
+        "postcss": "8.5.6",
+        "postcss-loader": "8.1.1",
+        "resolve-url-loader": "5.0.0",
+        "rxjs": "7.8.2",
+        "sass": "1.90.0",
+        "sass-loader": "16.0.5",
+        "semver": "7.7.2",
+        "source-map-loader": "5.0.0",
+        "source-map-support": "0.5.21",
+        "terser": "5.43.1",
+        "tree-kill": "1.2.2",
+        "tslib": "2.8.1",
+        "webpack": "5.101.2",
+        "webpack-dev-middleware": "7.4.2",
+        "webpack-dev-server": "5.2.2",
+        "webpack-merge": "6.0.1",
+        "webpack-subresource-integrity": "5.1.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "optionalDependencies": {
+        "esbuild": "0.25.9"
+      },
+      "peerDependencies": {
+        "@angular/compiler-cli": "^20.0.0",
+        "@angular/core": "^20.0.0",
+        "@angular/localize": "^20.0.0",
+        "@angular/platform-browser": "^20.0.0",
+        "@angular/platform-server": "^20.0.0",
+        "@angular/service-worker": "^20.0.0",
+        "@angular/ssr": "^20.3.14",
+        "@web/test-runner": "^0.20.0",
+        "browser-sync": "^3.0.2",
+        "jest": "^29.5.0 || ^30.2.0",
+        "jest-environment-jsdom": "^29.5.0 || ^30.2.0",
+        "karma": "^6.3.0",
+        "ng-packagr": "^20.0.0",
+        "protractor": "^7.0.0",
+        "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0",
+        "typescript": ">=5.8 <6.0"
+      },
+      "peerDependenciesMeta": {
+        "@angular/core": {
+          "optional": true
+        },
+        "@angular/localize": {
+          "optional": true
+        },
+        "@angular/platform-browser": {
+          "optional": true
+        },
+        "@angular/platform-server": {
+          "optional": true
+        },
+        "@angular/service-worker": {
+          "optional": true
+        },
+        "@angular/ssr": {
+          "optional": true
+        },
+        "@web/test-runner": {
+          "optional": true
+        },
+        "browser-sync": {
+          "optional": true
+        },
+        "jest": {
+          "optional": true
+        },
+        "jest-environment-jsdom": {
+          "optional": true
+        },
+        "karma": {
+          "optional": true
+        },
+        "ng-packagr": {
+          "optional": true
+        },
+        "protractor": {
+          "optional": true
+        },
+        "tailwindcss": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular-devkit/build-webpack": {
+      "version": "0.2003.14",
+      "resolved": "https://registry.npmmirror.com/@angular-devkit/build-webpack/-/build-webpack-0.2003.14.tgz",
+      "integrity": "sha512-kE5bCHnmkWRhCxTlZj1E75UECArc1tq3RC1LMMeJL0Wj6tFO5Y33u16zucXbGqYHZETuz4svR0/u800bjMaQyg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/architect": "0.2003.14",
+        "rxjs": "7.8.2"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "peerDependencies": {
+        "webpack": "^5.30.0",
+        "webpack-dev-server": "^5.0.2"
+      }
+    },
+    "node_modules/@angular-devkit/core": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@angular-devkit/core/-/core-20.3.14.tgz",
+      "integrity": "sha512-hWQVi73aGdIRInJqNia79Yi6SzqEThkfLug3AdZiNuNvYMaxAI347yPQz4f3Dr/i0QuiqRq/T8zfqbr46tfCqg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ajv": "8.17.1",
+        "ajv-formats": "3.0.1",
+        "jsonc-parser": "3.3.1",
+        "picomatch": "4.0.3",
+        "rxjs": "7.8.2",
+        "source-map": "0.7.6"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "peerDependencies": {
+        "chokidar": "^4.0.0"
+      },
+      "peerDependenciesMeta": {
+        "chokidar": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular-devkit/schematics": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@angular-devkit/schematics/-/schematics-20.3.14.tgz",
+      "integrity": "sha512-+Al9QojzTucccSUnJI+9x64Nnuev82eIgIlb1Ov9hLR572SNtjhV7zIXIalphFghEy+SPvynRuvOSc69Otp3Fg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/core": "20.3.14",
+        "jsonc-parser": "3.3.1",
+        "magic-string": "0.30.17",
+        "ora": "8.2.0",
+        "rxjs": "7.8.2"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      }
+    },
+    "node_modules/@angular-eslint/builder": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/builder/-/builder-20.7.0.tgz",
+      "integrity": "sha512-qgf4Cfs1z0VsVpzF/OnxDRvBp60OIzeCsp4mzlckWYVniKo19EPIN6kFDol5eTAIOMPgiBQlMIwgQMHgocXEig==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/architect": ">= 0.2000.0 < 0.2100.0",
+        "@angular-devkit/core": ">= 20.0.0 < 21.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": "*"
+      }
+    },
+    "node_modules/@angular-eslint/bundled-angular-compiler": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-20.7.0.tgz",
+      "integrity": "sha512-9KPz24YoiL0SvTtTX6sd1zmysU5cKOCcmpEiXkCoO3L2oYZGlVxmMT4hfSaHMt8qmfvV2KzQMoR6DZM84BwRzQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@angular-eslint/eslint-plugin": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/eslint-plugin/-/eslint-plugin-20.7.0.tgz",
+      "integrity": "sha512-aHH2YTiaonojsKN+y2z4IMugCwdsH/dYIjYBig6kfoSPyf9rGK4zx+gnNGq/pGRjF3bOYrmFgIviYpQVb80inQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-eslint/bundled-angular-compiler": "20.7.0",
+        "@angular-eslint/utils": "20.7.0",
+        "ts-api-utils": "^2.1.0"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": "*"
+      }
+    },
+    "node_modules/@angular-eslint/eslint-plugin-template": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-20.7.0.tgz",
+      "integrity": "sha512-WFmvW2vBR6ExsSKEaActQTteyw6ikWyuJau9XmWEPFd+2eusEt/+wO21ybjDn3uc5FTp1IcdhfYy+U5OdDjH5w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-eslint/bundled-angular-compiler": "20.7.0",
+        "@angular-eslint/utils": "20.7.0",
+        "aria-query": "5.3.2",
+        "axobject-query": "4.1.0"
+      },
+      "peerDependencies": {
+        "@angular-eslint/template-parser": "20.7.0",
+        "@typescript-eslint/types": "^7.11.0 || ^8.0.0",
+        "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": "*"
+      }
+    },
+    "node_modules/@angular-eslint/schematics": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/schematics/-/schematics-20.7.0.tgz",
+      "integrity": "sha512-S0onfRipDUIL6gFGTFjiWwUDhi42XYrBoi3kJ3wBbKBeIgYv9SP1ppTKDD4ZoDaDU9cQE8nToX7iPn9ifMw6eQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/core": ">= 20.0.0 < 21.0.0",
+        "@angular-devkit/schematics": ">= 20.0.0 < 21.0.0",
+        "@angular-eslint/eslint-plugin": "20.7.0",
+        "@angular-eslint/eslint-plugin-template": "20.7.0",
+        "ignore": "7.0.5",
+        "semver": "7.7.3",
+        "strip-json-comments": "3.1.1"
+      }
+    },
+    "node_modules/@angular-eslint/schematics/node_modules/semver": {
+      "version": "7.7.3",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz",
+      "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@angular-eslint/template-parser": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/template-parser/-/template-parser-20.7.0.tgz",
+      "integrity": "sha512-CVskZnF38IIxVVlKWi1VCz7YH/gHMJu2IY9bD1AVoBBGIe0xA4FRXJkW2Y+EDs9vQqZTkZZljhK5gL65Ro1PeQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-eslint/bundled-angular-compiler": "20.7.0",
+        "eslint-scope": "^9.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": "*"
+      }
+    },
+    "node_modules/@angular-eslint/utils": {
+      "version": "20.7.0",
+      "resolved": "https://registry.npmmirror.com/@angular-eslint/utils/-/utils-20.7.0.tgz",
+      "integrity": "sha512-B6EJHbsk2W/lnS3kS/gm56VGvX735419z/DzgbRDcOvqMGMLwD1ILzv5OTEcL1rzpnB0AHW+IxOu6y/aCzSNUA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-eslint/bundled-angular-compiler": "20.7.0"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/utils": "^7.11.0 || ^8.0.0",
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": "*"
+      }
+    },
+    "node_modules/@angular/animations": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/animations/-/animations-20.3.16.tgz",
+      "integrity": "sha512-N83/GFY5lKNyWgPV3xHHy2rb3/eP1ZLzSVI+dmMVbf3jbqwY1YPQcMiAG8UDzaILY1Dkus91kWLF8Qdr3nHAzg==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/core": "20.3.16"
+      }
+    },
+    "node_modules/@angular/build": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@angular/build/-/build-20.3.14.tgz",
+      "integrity": "sha512-ajFJqTqyI2N9PYcWVxUfb6YEUQsZ13jsBzI/kDpeEZZCGadLJGSMZVNwkX7n9Csw7gzertpenGBXsSTxUjd8TA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ampproject/remapping": "2.3.0",
+        "@angular-devkit/architect": "0.2003.14",
+        "@babel/core": "7.28.3",
+        "@babel/helper-annotate-as-pure": "7.27.3",
+        "@babel/helper-split-export-declaration": "7.24.7",
+        "@inquirer/confirm": "5.1.14",
+        "@vitejs/plugin-basic-ssl": "2.1.0",
+        "beasties": "0.3.5",
+        "browserslist": "^4.23.0",
+        "esbuild": "0.25.9",
+        "https-proxy-agent": "7.0.6",
+        "istanbul-lib-instrument": "6.0.3",
+        "jsonc-parser": "3.3.1",
+        "listr2": "9.0.1",
+        "magic-string": "0.30.17",
+        "mrmime": "2.0.1",
+        "parse5-html-rewriting-stream": "8.0.0",
+        "picomatch": "4.0.3",
+        "piscina": "5.1.3",
+        "rollup": "4.52.3",
+        "sass": "1.90.0",
+        "semver": "7.7.2",
+        "source-map-support": "0.5.21",
+        "tinyglobby": "0.2.14",
+        "vite": "7.1.11",
+        "watchpack": "2.4.4"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "optionalDependencies": {
+        "lmdb": "3.4.2"
+      },
+      "peerDependencies": {
+        "@angular/compiler": "^20.0.0",
+        "@angular/compiler-cli": "^20.0.0",
+        "@angular/core": "^20.0.0",
+        "@angular/localize": "^20.0.0",
+        "@angular/platform-browser": "^20.0.0",
+        "@angular/platform-server": "^20.0.0",
+        "@angular/service-worker": "^20.0.0",
+        "@angular/ssr": "^20.3.14",
+        "karma": "^6.4.0",
+        "less": "^4.2.0",
+        "ng-packagr": "^20.0.0",
+        "postcss": "^8.4.0",
+        "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0",
+        "tslib": "^2.3.0",
+        "typescript": ">=5.8 <6.0",
+        "vitest": "^3.1.1"
+      },
+      "peerDependenciesMeta": {
+        "@angular/core": {
+          "optional": true
+        },
+        "@angular/localize": {
+          "optional": true
+        },
+        "@angular/platform-browser": {
+          "optional": true
+        },
+        "@angular/platform-server": {
+          "optional": true
+        },
+        "@angular/service-worker": {
+          "optional": true
+        },
+        "@angular/ssr": {
+          "optional": true
+        },
+        "karma": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "ng-packagr": {
+          "optional": true
+        },
+        "postcss": {
+          "optional": true
+        },
+        "tailwindcss": {
+          "optional": true
+        },
+        "vitest": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular/cli": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@angular/cli/-/cli-20.3.14.tgz",
+      "integrity": "sha512-vlvnxyUtPnETl5az+creSPOrcnrZC5mhD5hSGl2WoqhYeyWdyUwsC9KLSy8/5gCH/4TNwtjqeX3Pw0KaAJUoCQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/architect": "0.2003.14",
+        "@angular-devkit/core": "20.3.14",
+        "@angular-devkit/schematics": "20.3.14",
+        "@inquirer/prompts": "7.8.2",
+        "@listr2/prompt-adapter-inquirer": "3.0.1",
+        "@modelcontextprotocol/sdk": "1.25.2",
+        "@schematics/angular": "20.3.14",
+        "@yarnpkg/lockfile": "1.1.0",
+        "algoliasearch": "5.35.0",
+        "ini": "5.0.0",
+        "jsonc-parser": "3.3.1",
+        "listr2": "9.0.1",
+        "npm-package-arg": "13.0.0",
+        "pacote": "21.0.0",
+        "resolve": "1.22.10",
+        "semver": "7.7.2",
+        "yargs": "18.0.0",
+        "zod": "4.1.13"
+      },
+      "bin": {
+        "ng": "bin/ng.js"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      }
+    },
+    "node_modules/@angular/common": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/common/-/common-20.3.16.tgz",
+      "integrity": "sha512-GRAziNlntwdnJy3F+8zCOvDdy7id0gITjDnM6P9+n2lXvtDuBLGJKU3DWBbvxcCjtD6JK/g/rEX5fbCxbUHkQQ==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/core": "20.3.16",
+        "rxjs": "^6.5.3 || ^7.4.0"
+      }
+    },
+    "node_modules/@angular/compiler": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/compiler/-/compiler-20.3.16.tgz",
+      "integrity": "sha512-Pt9Ms9GwTThgzdxWBwMfN8cH1JEtQ2DK5dc2yxYtPSaD+WKmG9AVL1PrzIYQEbaKcWk2jxASUHpEWSlNiwo8uw==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@angular/compiler-cli": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/compiler-cli/-/compiler-cli-20.3.16.tgz",
+      "integrity": "sha512-l3xF/fXfJAl/UrNnH9Ufkr79myjMgXdHq1mmmph2UnpeqilRB1b8lC9sLBV9MipQHVn3dwocxMIvtrcryfOaXw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/core": "7.28.3",
+        "@jridgewell/sourcemap-codec": "^1.4.14",
+        "chokidar": "^4.0.0",
+        "convert-source-map": "^1.5.1",
+        "reflect-metadata": "^0.2.0",
+        "semver": "^7.0.0",
+        "tslib": "^2.3.0",
+        "yargs": "^18.0.0"
+      },
+      "bin": {
+        "ng-xi18n": "bundles/src/bin/ng_xi18n.js",
+        "ngc": "bundles/src/bin/ngc.js"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/compiler": "20.3.16",
+        "typescript": ">=5.8 <6.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular/core": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/core/-/core-20.3.16.tgz",
+      "integrity": "sha512-KSFPKvOmWWLCJBbEO+CuRUXfecX2FRuO0jNi9c54ptXMOPHlK1lIojUnyXmMNzjdHgRug8ci9qDuftvC2B7MKg==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/compiler": "20.3.16",
+        "rxjs": "^6.5.3 || ^7.4.0",
+        "zone.js": "~0.15.0"
+      },
+      "peerDependenciesMeta": {
+        "@angular/compiler": {
+          "optional": true
+        },
+        "zone.js": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular/forms": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/forms/-/forms-20.3.16.tgz",
+      "integrity": "sha512-1yzbXpExTqATpVcqA3wGrq4ACFIP3mRxA4pbso5KoJU+/4JfzNFwLsDaFXKpm5uxwchVnj8KM2vPaDOkvtp7NA==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/common": "20.3.16",
+        "@angular/core": "20.3.16",
+        "@angular/platform-browser": "20.3.16",
+        "rxjs": "^6.5.3 || ^7.4.0"
+      }
+    },
+    "node_modules/@angular/language-service": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/language-service/-/language-service-20.3.16.tgz",
+      "integrity": "sha512-0A/tSQPq5geIz2mMcZA5fzzbzT39v+ADQksnfPr8htNxtkYWy+EI5+d0+++k59NuvjLY4uTBqhRTRB9b1PKrjw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@angular/platform-browser": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/platform-browser/-/platform-browser-20.3.16.tgz",
+      "integrity": "sha512-YsrLS6vyS77i4pVHg4gdSBW74qvzHjpQRTVQ5Lv/OxIjJdYYYkMmjNalCNgy1ZuyY6CaLIB11ccxhrNnxfKGOQ==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/animations": "20.3.16",
+        "@angular/common": "20.3.16",
+        "@angular/core": "20.3.16"
+      },
+      "peerDependenciesMeta": {
+        "@angular/animations": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@angular/platform-browser-dynamic": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.16.tgz",
+      "integrity": "sha512-5mECCV9YeKH6ue239GXRTGeDSd/eTbM1j8dDejhm5cGnPBhTxRw4o+GgSrWTYtb6VmIYdwUGBTC+wCBphiaQ2A==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/common": "20.3.16",
+        "@angular/compiler": "20.3.16",
+        "@angular/core": "20.3.16",
+        "@angular/platform-browser": "20.3.16"
+      }
+    },
+    "node_modules/@angular/router": {
+      "version": "20.3.16",
+      "resolved": "https://registry.npmmirror.com/@angular/router/-/router-20.3.16.tgz",
+      "integrity": "sha512-e1LiQFZaajKqc00cY5FboIrWJZSMnZ64GDp5R0UejritYrqorQQQNOqP1W85BMuY2owibMmxVfX+dJg/Mc8PuQ==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.3.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+      },
+      "peerDependencies": {
+        "@angular/common": "20.3.16",
+        "@angular/core": "20.3.16",
+        "@angular/platform-browser": "20.3.16",
+        "rxjs": "^6.5.3 || ^7.4.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.28.6.tgz",
+      "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.28.5",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.1.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/compat-data": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.28.6.tgz",
+      "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/core": {
+      "version": "7.28.3",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.28.3.tgz",
+      "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ampproject/remapping": "^2.2.0",
+        "@babel/code-frame": "^7.27.1",
+        "@babel/generator": "^7.28.3",
+        "@babel/helper-compilation-targets": "^7.27.2",
+        "@babel/helper-module-transforms": "^7.28.3",
+        "@babel/helpers": "^7.28.3",
+        "@babel/parser": "^7.28.3",
+        "@babel/template": "^7.27.2",
+        "@babel/traverse": "^7.28.3",
+        "@babel/types": "^7.28.2",
+        "convert-source-map": "^2.0.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.2",
+        "json5": "^2.2.3",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel"
+      }
+    },
+    "node_modules/@babel/core/node_modules/convert-source-map": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
+      "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@babel/core/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/generator": {
+      "version": "7.28.3",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.3.tgz",
+      "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/parser": "^7.28.3",
+        "@babel/types": "^7.28.2",
+        "@jridgewell/gen-mapping": "^0.3.12",
+        "@jridgewell/trace-mapping": "^0.3.28",
+        "jsesc": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-annotate-as-pure": {
+      "version": "7.27.3",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
+      "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.27.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+      "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/compat-data": "^7.28.6",
+        "@babel/helper-validator-option": "^7.27.1",
+        "browserslist": "^4.24.0",
+        "lru-cache": "^5.1.1",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/helper-create-class-features-plugin": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
+      "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.27.3",
+        "@babel/helper-member-expression-to-functions": "^7.28.5",
+        "@babel/helper-optimise-call-expression": "^7.27.1",
+        "@babel/helper-replace-supers": "^7.28.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+        "@babel/traverse": "^7.28.6",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/helper-create-regexp-features-plugin": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
+      "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.27.3",
+        "regexpu-core": "^6.3.1",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/helper-define-polyfill-provider": {
+      "version": "0.6.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz",
+      "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.27.2",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "debug": "^4.4.1",
+        "lodash.debounce": "^4.0.8",
+        "resolve": "^1.22.10"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/@babel/helper-globals": {
+      "version": "7.28.0",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+      "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-member-expression-to-functions": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
+      "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/traverse": "^7.28.5",
+        "@babel/types": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-imports": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+      "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/traverse": "^7.28.6",
+        "@babel/types": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-transforms": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+      "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-imports": "^7.28.6",
+        "@babel/helper-validator-identifier": "^7.28.5",
+        "@babel/traverse": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-optimise-call-expression": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
+      "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-plugin-utils": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+      "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-remap-async-to-generator": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
+      "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.27.1",
+        "@babel/helper-wrap-function": "^7.27.1",
+        "@babel/traverse": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-replace-supers": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
+      "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-member-expression-to-functions": "^7.28.5",
+        "@babel/helper-optimise-call-expression": "^7.27.1",
+        "@babel/traverse": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
+      "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/traverse": "^7.27.1",
+        "@babel/types": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-split-export-declaration": {
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+      "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.24.7"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-string-parser": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+      "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+      "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-option": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+      "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-wrap-function": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz",
+      "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/template": "^7.28.6",
+        "@babel/traverse": "^7.28.6",
+        "@babel/types": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helpers": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.6.tgz",
+      "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/template": "^7.28.6",
+        "@babel/types": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/parser": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.6.tgz",
+      "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.28.6"
+      },
+      "bin": {
+        "parser": "bin/babel-parser.js"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz",
+      "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/traverse": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz",
+      "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz",
+      "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz",
+      "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+        "@babel/plugin-transform-optional-chaining": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.13.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz",
+      "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/traverse": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-private-property-in-object": {
+      "version": "7.21.0-placeholder-for-preset-env.2",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+      "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-import-assertions": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz",
+      "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-import-attributes": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
+      "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+      "version": "7.18.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+      "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+        "@babel/helper-plugin-utils": "^7.18.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-arrow-functions": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
+      "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-async-generator-functions": {
+      "version": "7.28.0",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz",
+      "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-remap-async-to-generator": "^7.27.1",
+        "@babel/traverse": "^7.28.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-async-to-generator": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz",
+      "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-imports": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-remap-async-to-generator": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-block-scoped-functions": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz",
+      "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-block-scoping": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz",
+      "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-class-properties": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz",
+      "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-class-static-block": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz",
+      "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.12.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-classes": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz",
+      "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.27.3",
+        "@babel/helper-compilation-targets": "^7.28.6",
+        "@babel/helper-globals": "^7.28.0",
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/helper-replace-supers": "^7.28.6",
+        "@babel/traverse": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-computed-properties": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz",
+      "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/template": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-destructuring": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
+      "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/traverse": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-dotall-regex": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz",
+      "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-duplicate-keys": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz",
+      "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz",
+      "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-dynamic-import": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz",
+      "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-explicit-resource-management": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz",
+      "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/plugin-transform-destructuring": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-exponentiation-operator": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz",
+      "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-export-namespace-from": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
+      "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-for-of": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
+      "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-function-name": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
+      "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/traverse": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-json-strings": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz",
+      "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-literals": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
+      "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz",
+      "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-member-expression-literals": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz",
+      "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-amd": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz",
+      "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-commonjs": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz",
+      "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-systemjs": {
+      "version": "7.28.5",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz",
+      "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.28.3",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-validator-identifier": "^7.28.5",
+        "@babel/traverse": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-umd": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz",
+      "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz",
+      "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-new-target": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz",
+      "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz",
+      "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-numeric-separator": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz",
+      "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-object-rest-spread": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz",
+      "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/plugin-transform-destructuring": "^7.28.5",
+        "@babel/plugin-transform-parameters": "^7.27.7",
+        "@babel/traverse": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-object-super": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz",
+      "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-replace-supers": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-optional-catch-binding": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz",
+      "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-optional-chaining": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz",
+      "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-parameters": {
+      "version": "7.27.7",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
+      "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-private-methods": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz",
+      "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-private-property-in-object": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz",
+      "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.27.3",
+        "@babel/helper-create-class-features-plugin": "^7.28.6",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-property-literals": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz",
+      "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-regenerator": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz",
+      "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-regexp-modifiers": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz",
+      "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-reserved-words": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz",
+      "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-runtime": {
+      "version": "7.28.3",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz",
+      "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-module-imports": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "babel-plugin-polyfill-corejs2": "^0.4.14",
+        "babel-plugin-polyfill-corejs3": "^0.13.0",
+        "babel-plugin-polyfill-regenerator": "^0.6.5",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/plugin-transform-shorthand-properties": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
+      "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-spread": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz",
+      "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.28.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-sticky-regex": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
+      "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-template-literals": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz",
+      "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-typeof-symbol": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz",
+      "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-escapes": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz",
+      "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-property-regex": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz",
+      "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-regex": {
+      "version": "7.27.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
+      "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.27.1",
+        "@babel/helper-plugin-utils": "^7.27.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz",
+      "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+        "@babel/helper-plugin-utils": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/preset-env": {
+      "version": "7.28.3",
+      "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.28.3.tgz",
+      "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/compat-data": "^7.28.0",
+        "@babel/helper-compilation-targets": "^7.27.2",
+        "@babel/helper-plugin-utils": "^7.27.1",
+        "@babel/helper-validator-option": "^7.27.1",
+        "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1",
+        "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
+        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
+        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
+        "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3",
+        "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+        "@babel/plugin-syntax-import-assertions": "^7.27.1",
+        "@babel/plugin-syntax-import-attributes": "^7.27.1",
+        "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+        "@babel/plugin-transform-arrow-functions": "^7.27.1",
+        "@babel/plugin-transform-async-generator-functions": "^7.28.0",
+        "@babel/plugin-transform-async-to-generator": "^7.27.1",
+        "@babel/plugin-transform-block-scoped-functions": "^7.27.1",
+        "@babel/plugin-transform-block-scoping": "^7.28.0",
+        "@babel/plugin-transform-class-properties": "^7.27.1",
+        "@babel/plugin-transform-class-static-block": "^7.28.3",
+        "@babel/plugin-transform-classes": "^7.28.3",
+        "@babel/plugin-transform-computed-properties": "^7.27.1",
+        "@babel/plugin-transform-destructuring": "^7.28.0",
+        "@babel/plugin-transform-dotall-regex": "^7.27.1",
+        "@babel/plugin-transform-duplicate-keys": "^7.27.1",
+        "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1",
+        "@babel/plugin-transform-dynamic-import": "^7.27.1",
+        "@babel/plugin-transform-explicit-resource-management": "^7.28.0",
+        "@babel/plugin-transform-exponentiation-operator": "^7.27.1",
+        "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+        "@babel/plugin-transform-for-of": "^7.27.1",
+        "@babel/plugin-transform-function-name": "^7.27.1",
+        "@babel/plugin-transform-json-strings": "^7.27.1",
+        "@babel/plugin-transform-literals": "^7.27.1",
+        "@babel/plugin-transform-logical-assignment-operators": "^7.27.1",
+        "@babel/plugin-transform-member-expression-literals": "^7.27.1",
+        "@babel/plugin-transform-modules-amd": "^7.27.1",
+        "@babel/plugin-transform-modules-commonjs": "^7.27.1",
+        "@babel/plugin-transform-modules-systemjs": "^7.27.1",
+        "@babel/plugin-transform-modules-umd": "^7.27.1",
+        "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1",
+        "@babel/plugin-transform-new-target": "^7.27.1",
+        "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
+        "@babel/plugin-transform-numeric-separator": "^7.27.1",
+        "@babel/plugin-transform-object-rest-spread": "^7.28.0",
+        "@babel/plugin-transform-object-super": "^7.27.1",
+        "@babel/plugin-transform-optional-catch-binding": "^7.27.1",
+        "@babel/plugin-transform-optional-chaining": "^7.27.1",
+        "@babel/plugin-transform-parameters": "^7.27.7",
+        "@babel/plugin-transform-private-methods": "^7.27.1",
+        "@babel/plugin-transform-private-property-in-object": "^7.27.1",
+        "@babel/plugin-transform-property-literals": "^7.27.1",
+        "@babel/plugin-transform-regenerator": "^7.28.3",
+        "@babel/plugin-transform-regexp-modifiers": "^7.27.1",
+        "@babel/plugin-transform-reserved-words": "^7.27.1",
+        "@babel/plugin-transform-shorthand-properties": "^7.27.1",
+        "@babel/plugin-transform-spread": "^7.27.1",
+        "@babel/plugin-transform-sticky-regex": "^7.27.1",
+        "@babel/plugin-transform-template-literals": "^7.27.1",
+        "@babel/plugin-transform-typeof-symbol": "^7.27.1",
+        "@babel/plugin-transform-unicode-escapes": "^7.27.1",
+        "@babel/plugin-transform-unicode-property-regex": "^7.27.1",
+        "@babel/plugin-transform-unicode-regex": "^7.27.1",
+        "@babel/plugin-transform-unicode-sets-regex": "^7.27.1",
+        "@babel/preset-modules": "0.1.6-no-external-plugins",
+        "babel-plugin-polyfill-corejs2": "^0.4.14",
+        "babel-plugin-polyfill-corejs3": "^0.13.0",
+        "babel-plugin-polyfill-regenerator": "^0.6.5",
+        "core-js-compat": "^3.43.0",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/preset-env/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/preset-modules": {
+      "version": "0.1.6-no-external-plugins",
+      "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+      "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/types": "^7.4.4",
+        "esutils": "^2.0.2"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/@babel/runtime": {
+      "version": "7.28.3",
+      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.3.tgz",
+      "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/template": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.28.6.tgz",
+      "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/code-frame": "^7.28.6",
+        "@babel/parser": "^7.28.6",
+        "@babel/types": "^7.28.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/traverse": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.28.6.tgz",
+      "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/code-frame": "^7.28.6",
+        "@babel/generator": "^7.28.6",
+        "@babel/helper-globals": "^7.28.0",
+        "@babel/parser": "^7.28.6",
+        "@babel/template": "^7.28.6",
+        "@babel/types": "^7.28.6",
+        "debug": "^4.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/traverse/node_modules/@babel/generator": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.6.tgz",
+      "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/parser": "^7.28.6",
+        "@babel/types": "^7.28.6",
+        "@jridgewell/gen-mapping": "^0.3.12",
+        "@jridgewell/trace-mapping": "^0.3.28",
+        "jsesc": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/types": {
+      "version": "7.28.6",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.6.tgz",
+      "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-string-parser": "^7.27.1",
+        "@babel/helper-validator-identifier": "^7.28.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@capacitor/app": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/@capacitor/app/-/app-8.0.0.tgz",
+      "integrity": "sha512-OwzIkUs4w433Bu9WWAEbEYngXEfJXZ9Wmdb8eoaqzYBgB0W9/3Ed/mh6sAYPNBAZlpyarmewgP7Nb+d3Vrh+xA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@capacitor/core": ">=8.0.0"
+      }
+    },
+    "node_modules/@capacitor/cli": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmmirror.com/@capacitor/cli/-/cli-8.0.1.tgz",
+      "integrity": "sha512-okCNTsL8FNYrtPNeHWFjWb1S+PwBMhx5wFLhDC0MZOIrOLm+2ynMBtKu3BnR0Nv1hozoHcOCi6SuTF1TrRpb3w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/cli-framework-output": "^2.2.8",
+        "@ionic/utils-subprocess": "^3.0.1",
+        "@ionic/utils-terminal": "^2.3.5",
+        "commander": "^12.1.0",
+        "debug": "^4.4.0",
+        "env-paths": "^2.2.0",
+        "fs-extra": "^11.2.0",
+        "kleur": "^4.1.5",
+        "native-run": "^2.0.3",
+        "open": "^8.4.0",
+        "plist": "^3.1.0",
+        "prompts": "^2.4.2",
+        "rimraf": "^6.0.1",
+        "semver": "^7.6.3",
+        "tar": "^6.1.11",
+        "tslib": "^2.8.1",
+        "xml2js": "^0.6.2"
+      },
+      "bin": {
+        "cap": "bin/capacitor",
+        "capacitor": "bin/capacitor"
+      },
+      "engines": {
+        "node": ">=22.0.0"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/commander": {
+      "version": "12.1.0",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz",
+      "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/define-lazy-prop": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+      "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/fs-extra": {
+      "version": "11.3.3",
+      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.3.tgz",
+      "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/glob": {
+      "version": "13.0.0",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-13.0.0.tgz",
+      "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "minimatch": "^10.1.1",
+        "minipass": "^7.1.2",
+        "path-scurry": "^2.0.0"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/is-docker": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
+      "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "is-docker": "cli.js"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/is-wsl": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
+      "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-docker": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/jsonfile": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz",
+      "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "universalify": "^2.0.0"
+      },
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/lru-cache": {
+      "version": "11.2.4",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.2.4.tgz",
+      "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/minimatch": {
+      "version": "10.1.1",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.1.1.tgz",
+      "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/brace-expansion": "^5.0.0"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/open": {
+      "version": "8.4.2",
+      "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz",
+      "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "define-lazy-prop": "^2.0.0",
+        "is-docker": "^2.1.1",
+        "is-wsl": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/path-scurry": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.1.tgz",
+      "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "lru-cache": "^11.0.0",
+        "minipass": "^7.1.2"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/rimraf": {
+      "version": "6.1.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-6.1.2.tgz",
+      "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "glob": "^13.0.0",
+        "package-json-from-dist": "^1.0.1"
+      },
+      "bin": {
+        "rimraf": "dist/esm/bin.mjs"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@capacitor/cli/node_modules/universalify": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
+      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 10.0.0"
+      }
+    },
+    "node_modules/@capacitor/core": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmmirror.com/@capacitor/core/-/core-8.0.1.tgz",
+      "integrity": "sha512-5UqSWxGMp/B8KhYu7rAijqNtYslhcLh+TrbfU48PfdMDsPfaU/VY48sMNzC22xL8BmoFoql/3SKyP+pavTOvOA==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@capacitor/haptics": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/@capacitor/haptics/-/haptics-8.0.0.tgz",
+      "integrity": "sha512-DY1IUOjke1T4ITl7mFHQIKCaJJyHYAYRYHG9bVApU7PDOZiMVGMp48Yjzdqjya+wv/AHS5mDabSTUmhJ5uDvBA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@capacitor/core": ">=8.0.0"
+      }
+    },
+    "node_modules/@capacitor/keyboard": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/@capacitor/keyboard/-/keyboard-8.0.0.tgz",
+      "integrity": "sha512-ycPW6iQyFwzDK95jihesj5EGiyyGSfbBqNek11iNp9tBOB7zDeYkUA2S/vPpOETt3dhP6pWr7a9gNVGuEfj11g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@capacitor/core": ">=8.0.0"
+      }
+    },
+    "node_modules/@capacitor/status-bar": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/@capacitor/status-bar/-/status-bar-8.0.0.tgz",
+      "integrity": "sha512-aIj3bc7z8lfPgOen8HlrBrkfnxpFnh21OCx6jCUx4Mvv+B6eEkUQ49b32DOddgVfr+igRHLX2SYi7duqIsNDXg==",
+      "license": "MIT",
+      "peerDependencies": {
+        "@capacitor/core": ">=8.0.0"
+      }
+    },
+    "node_modules/@colors/colors": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz",
+      "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.1.90"
+      }
+    },
+    "node_modules/@discoveryjs/json-ext": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz",
+      "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14.17.0"
+      }
+    },
+    "node_modules/@es-joy/jsdoccomment": {
+      "version": "0.46.0",
+      "resolved": "https://registry.npmmirror.com/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz",
+      "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "comment-parser": "1.4.1",
+        "esquery": "^1.6.0",
+        "jsdoc-type-pratt-parser": "~4.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@esbuild/aix-ppc64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz",
+      "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "aix"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/android-arm": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.9.tgz",
+      "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/android-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz",
+      "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/android-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.9.tgz",
+      "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/darwin-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz",
+      "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/darwin-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz",
+      "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz",
+      "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/freebsd-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz",
+      "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-arm": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz",
+      "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz",
+      "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-ia32": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz",
+      "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-loong64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz",
+      "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-mips64el": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz",
+      "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==",
+      "cpu": [
+        "mips64el"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-ppc64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz",
+      "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-riscv64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz",
+      "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-s390x": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz",
+      "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/linux-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz",
+      "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/netbsd-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz",
+      "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/netbsd-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz",
+      "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/openbsd-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz",
+      "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/openbsd-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz",
+      "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/openharmony-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz",
+      "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openharmony"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/sunos-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz",
+      "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/win32-arm64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz",
+      "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz",
+      "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@esbuild/win32-x64": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz",
+      "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@eslint-community/eslint-utils": {
+      "version": "4.9.1",
+      "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+      "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "eslint-visitor-keys": "^3.4.3"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+      }
+    },
+    "node_modules/@eslint-community/regexpp": {
+      "version": "4.12.2",
+      "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+      "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/config-array": {
+      "version": "0.21.1",
+      "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.21.1.tgz",
+      "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@eslint/object-schema": "^2.1.7",
+        "debug": "^4.3.1",
+        "minimatch": "^3.1.2"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
+    "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/@eslint/config-array/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/@eslint/config-helpers": {
+      "version": "0.4.2",
+      "resolved": "https://registry.npmmirror.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
+      "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@eslint/core": "^0.17.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
+    "node_modules/@eslint/core": {
+      "version": "0.17.0",
+      "resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.17.0.tgz",
+      "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@types/json-schema": "^7.0.15"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz",
+      "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.3.2",
+        "espree": "^10.0.1",
+        "globals": "^14.0.0",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^4.1.1",
+        "minimatch": "^3.1.2",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "license": "MIT",
+      "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/@eslint/eslintrc/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/ignore": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz",
+      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/@eslint/js": {
+      "version": "9.39.2",
+      "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.39.2.tgz",
+      "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://eslint.org/donate"
+      }
+    },
+    "node_modules/@eslint/object-schema": {
+      "version": "2.1.7",
+      "resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+      "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
+    "node_modules/@eslint/plugin-kit": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
+      "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@eslint/core": "^0.17.0",
+        "levn": "^0.4.1"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      }
+    },
+    "node_modules/@hono/node-server": {
+      "version": "1.19.9",
+      "resolved": "https://registry.npmmirror.com/@hono/node-server/-/node-server-1.19.9.tgz",
+      "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18.14.1"
+      },
+      "peerDependencies": {
+        "hono": "^4"
+      }
+    },
+    "node_modules/@humanfs/core": {
+      "version": "0.19.1",
+      "resolved": "https://registry.npmmirror.com/@humanfs/core/-/core-0.19.1.tgz",
+      "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=18.18.0"
+      }
+    },
+    "node_modules/@humanfs/node": {
+      "version": "0.16.7",
+      "resolved": "https://registry.npmmirror.com/@humanfs/node/-/node-0.16.7.tgz",
+      "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@humanfs/core": "^0.19.1",
+        "@humanwhocodes/retry": "^0.4.0"
+      },
+      "engines": {
+        "node": ">=18.18.0"
+      }
+    },
+    "node_modules/@humanwhocodes/module-importer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=12.22"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@humanwhocodes/retry": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+      "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=18.18"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@inquirer/ansi": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/ansi/-/ansi-1.0.2.tgz",
+      "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@inquirer/checkbox": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/checkbox/-/checkbox-4.3.2.tgz",
+      "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/ansi": "^1.0.2",
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/figures": "^1.0.15",
+        "@inquirer/type": "^3.0.10",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/confirm": {
+      "version": "5.1.14",
+      "resolved": "https://registry.npmmirror.com/@inquirer/confirm/-/confirm-5.1.14.tgz",
+      "integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.1.15",
+        "@inquirer/type": "^3.0.8"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/core": {
+      "version": "10.3.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/core/-/core-10.3.2.tgz",
+      "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/ansi": "^1.0.2",
+        "@inquirer/figures": "^1.0.15",
+        "@inquirer/type": "^3.0.10",
+        "cli-width": "^4.1.0",
+        "mute-stream": "^2.0.0",
+        "signal-exit": "^4.1.0",
+        "wrap-ansi": "^6.2.0",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/editor": {
+      "version": "4.2.23",
+      "resolved": "https://registry.npmmirror.com/@inquirer/editor/-/editor-4.2.23.tgz",
+      "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/external-editor": "^1.0.3",
+        "@inquirer/type": "^3.0.10"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/expand": {
+      "version": "4.0.23",
+      "resolved": "https://registry.npmmirror.com/@inquirer/expand/-/expand-4.0.23.tgz",
+      "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/type": "^3.0.10",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/external-editor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/@inquirer/external-editor/-/external-editor-1.0.3.tgz",
+      "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chardet": "^2.1.1",
+        "iconv-lite": "^0.7.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/figures": {
+      "version": "1.0.15",
+      "resolved": "https://registry.npmmirror.com/@inquirer/figures/-/figures-1.0.15.tgz",
+      "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@inquirer/input": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmmirror.com/@inquirer/input/-/input-4.3.1.tgz",
+      "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/type": "^3.0.10"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/number": {
+      "version": "3.0.23",
+      "resolved": "https://registry.npmmirror.com/@inquirer/number/-/number-3.0.23.tgz",
+      "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/type": "^3.0.10"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/password": {
+      "version": "4.0.23",
+      "resolved": "https://registry.npmmirror.com/@inquirer/password/-/password-4.0.23.tgz",
+      "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/ansi": "^1.0.2",
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/type": "^3.0.10"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/prompts": {
+      "version": "7.8.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/prompts/-/prompts-7.8.2.tgz",
+      "integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/checkbox": "^4.2.1",
+        "@inquirer/confirm": "^5.1.14",
+        "@inquirer/editor": "^4.2.17",
+        "@inquirer/expand": "^4.0.17",
+        "@inquirer/input": "^4.2.1",
+        "@inquirer/number": "^3.0.17",
+        "@inquirer/password": "^4.0.17",
+        "@inquirer/rawlist": "^4.1.5",
+        "@inquirer/search": "^3.1.0",
+        "@inquirer/select": "^4.3.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/rawlist": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmmirror.com/@inquirer/rawlist/-/rawlist-4.1.11.tgz",
+      "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/type": "^3.0.10",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/search": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/search/-/search-3.2.2.tgz",
+      "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/figures": "^1.0.15",
+        "@inquirer/type": "^3.0.10",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/select": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmmirror.com/@inquirer/select/-/select-4.4.2.tgz",
+      "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/ansi": "^1.0.2",
+        "@inquirer/core": "^10.3.2",
+        "@inquirer/figures": "^1.0.15",
+        "@inquirer/type": "^3.0.10",
+        "yoctocolors-cjs": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@inquirer/type": {
+      "version": "3.0.10",
+      "resolved": "https://registry.npmmirror.com/@inquirer/type/-/type-3.0.10.tgz",
+      "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@types/node": ">=18"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@ionic/angular": {
+      "version": "8.7.16",
+      "resolved": "https://registry.npmmirror.com/@ionic/angular/-/angular-8.7.16.tgz",
+      "integrity": "sha512-rdOQu07VvfqgnIbas/K+ebitjQI5u4OgiH7fcy/LAKdSxERzWqkDVBXpHtZIVDMOQcPlVN0cWEnaQUbnfDpTVA==",
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/core": "8.7.16",
+        "ionicons": "^8.0.13",
+        "jsonc-parser": "^3.0.0",
+        "tslib": "^2.3.0"
+      },
+      "peerDependencies": {
+        "@angular/core": ">=16.0.0",
+        "@angular/forms": ">=16.0.0",
+        "@angular/router": ">=16.0.0",
+        "rxjs": ">=7.5.0",
+        "zone.js": ">=0.13.0"
+      }
+    },
+    "node_modules/@ionic/angular-toolkit": {
+      "version": "12.3.0",
+      "resolved": "https://registry.npmmirror.com/@ionic/angular-toolkit/-/angular-toolkit-12.3.0.tgz",
+      "integrity": "sha512-9cPTMmwggviB2W7wf4sv4vFeQnYq5HbO6V89UqQHopShokdhSvUFpaQ2w1/Mdf/ot8PghGjR3t5IdnXV7i1LvA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/core": "^20.0.0",
+        "@angular-devkit/schematics": "^20.0.0",
+        "@schematics/angular": "^20.0.0"
+      }
+    },
+    "node_modules/@ionic/angular/node_modules/ionicons": {
+      "version": "8.0.13",
+      "resolved": "https://registry.npmmirror.com/ionicons/-/ionicons-8.0.13.tgz",
+      "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@stencil/core": "^4.35.3"
+      }
+    },
+    "node_modules/@ionic/cli-framework-output": {
+      "version": "2.2.8",
+      "resolved": "https://registry.npmmirror.com/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz",
+      "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/utils-terminal": "2.3.5",
+        "debug": "^4.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/core": {
+      "version": "8.7.16",
+      "resolved": "https://registry.npmmirror.com/@ionic/core/-/core-8.7.16.tgz",
+      "integrity": "sha512-+vdv/o2Z/2YfoZJIDBLnoh11eJmOOZqQdfwC0zl2MemAVRSofjGuIQlUTZqiUUNht56Rnk9oo53TvmgjNCtmDA==",
+      "license": "MIT",
+      "dependencies": {
+        "@stencil/core": "4.38.0",
+        "ionicons": "^8.0.13",
+        "tslib": "^2.1.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      }
+    },
+    "node_modules/@ionic/core/node_modules/ionicons": {
+      "version": "8.0.13",
+      "resolved": "https://registry.npmmirror.com/ionicons/-/ionicons-8.0.13.tgz",
+      "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@stencil/core": "^4.35.3"
+      }
+    },
+    "node_modules/@ionic/utils-array": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-array/-/utils-array-2.1.6.tgz",
+      "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-fs": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-fs/-/utils-fs-3.1.7.tgz",
+      "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/fs-extra": "^8.0.0",
+        "debug": "^4.0.0",
+        "fs-extra": "^9.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-fs/node_modules/fs-extra": {
+      "version": "9.1.0",
+      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
+      "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "at-least-node": "^1.0.0",
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@ionic/utils-fs/node_modules/jsonfile": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz",
+      "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "universalify": "^2.0.0"
+      },
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "node_modules/@ionic/utils-fs/node_modules/universalify": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
+      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 10.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-object": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-object/-/utils-object-2.1.6.tgz",
+      "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-process": {
+      "version": "2.1.12",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-process/-/utils-process-2.1.12.tgz",
+      "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/utils-object": "2.1.6",
+        "@ionic/utils-terminal": "2.3.5",
+        "debug": "^4.0.0",
+        "signal-exit": "^3.0.3",
+        "tree-kill": "^1.2.2",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-process/node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/@ionic/utils-stream": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-stream/-/utils-stream-3.1.7.tgz",
+      "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-subprocess": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz",
+      "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/utils-array": "2.1.6",
+        "@ionic/utils-fs": "3.1.7",
+        "@ionic/utils-process": "2.1.12",
+        "@ionic/utils-stream": "3.1.7",
+        "@ionic/utils-terminal": "2.3.5",
+        "cross-spawn": "^7.0.3",
+        "debug": "^4.0.0",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-terminal": {
+      "version": "2.3.5",
+      "resolved": "https://registry.npmmirror.com/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz",
+      "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/slice-ansi": "^4.0.0",
+        "debug": "^4.0.0",
+        "signal-exit": "^3.0.3",
+        "slice-ansi": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0",
+        "tslib": "^2.0.1",
+        "untildify": "^4.0.0",
+        "wrap-ansi": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/slice-ansi": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz",
+      "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "astral-regex": "^2.0.0",
+        "is-fullwidth-code-point": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@ionic/utils-terminal/node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "license": "MIT",
+      "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/@isaacs/balanced-match": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+      "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@isaacs/brace-expansion": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+      "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@isaacs/balanced-match": "^4.0.1"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@isaacs/cliui": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+      "dev": true,
+      "license": "ISC",
+      "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-styles": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+      "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+      "version": "9.2.2",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@isaacs/cliui/node_modules/string-width": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+      "dev": true,
+      "license": "MIT",
+      "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/@isaacs/cliui/node_modules/wrap-ansi": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+      "dev": true,
+      "license": "MIT",
+      "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/@isaacs/fs-minipass": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+      "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^7.0.4"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/@istanbuljs/schema": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz",
+      "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@jridgewell/gen-mapping": {
+      "version": "0.3.13",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+      "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.5.0",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      }
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/source-map": {
+      "version": "0.3.11",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+      "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.5.5",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+      "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.31",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+      "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
+    "node_modules/@jsonjoy.com/base64": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
+      "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@jsonjoy.com/buffers": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
+      "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@jsonjoy.com/codegen": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz",
+      "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@jsonjoy.com/json-pack": {
+      "version": "1.21.0",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz",
+      "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@jsonjoy.com/base64": "^1.1.2",
+        "@jsonjoy.com/buffers": "^1.2.0",
+        "@jsonjoy.com/codegen": "^1.0.0",
+        "@jsonjoy.com/json-pointer": "^1.0.2",
+        "@jsonjoy.com/util": "^1.9.0",
+        "hyperdyperid": "^1.2.0",
+        "thingies": "^2.5.0",
+        "tree-dump": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@jsonjoy.com/json-pointer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz",
+      "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@jsonjoy.com/codegen": "^1.0.0",
+        "@jsonjoy.com/util": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@jsonjoy.com/util": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmmirror.com/@jsonjoy.com/util/-/util-1.9.0.tgz",
+      "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@jsonjoy.com/buffers": "^1.0.0",
+        "@jsonjoy.com/codegen": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/@leichtgewicht/ip-codec": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+      "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@listr2/prompt-adapter-inquirer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.1.tgz",
+      "integrity": "sha512-3XFmGwm3u6ioREG+ynAQB7FoxfajgQnMhIu8wC5eo/Lsih4aKDg0VuIMGaOsYn7hJSJagSeaD4K8yfpkEoDEmA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@inquirer/type": "^3.0.7"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      },
+      "peerDependencies": {
+        "@inquirer/prompts": ">= 3 < 8",
+        "listr2": "9.0.1"
+      }
+    },
+    "node_modules/@lmdb/lmdb-darwin-arm64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.4.2.tgz",
+      "integrity": "sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-darwin-x64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.4.2.tgz",
+      "integrity": "sha512-zevaowQNmrp3U7Fz1s9pls5aIgpKRsKb3dZWDINtLiozh3jZI9fBrI19lYYBxqdyiIyNdlyiidPnwPShj4aK+w==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-linux-arm": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.4.2.tgz",
+      "integrity": "sha512-OmHCULY17rkx/RoCoXlzU7LyR8xqrksgdYWwtYa14l/sseezZ8seKWXcogHcjulBddER5NnEFV4L/Jtr2nyxeg==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-linux-arm64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.4.2.tgz",
+      "integrity": "sha512-ZBEfbNZdkneebvZs98Lq30jMY8V9IJzckVeigGivV7nTHJc+89Ctomp1kAIWKlwIG0ovCDrFI448GzFPORANYg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-linux-x64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.4.2.tgz",
+      "integrity": "sha512-vL9nM17C77lohPYE4YaAQvfZCSVJSryE4fXdi8M7uWPBnU+9DJabgKVAeyDb84ZM2vcFseoBE4/AagVtJeRE7g==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-win32-arm64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.4.2.tgz",
+      "integrity": "sha512-SXWjdBfNDze4ZPeLtYIzsIeDJDJ/SdsA0pEXcUBayUIMO0FQBHfVZZyHXQjjHr4cvOAzANBgIiqaXRwfMhzmLw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@lmdb/lmdb-win32-x64": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.4.2.tgz",
+      "integrity": "sha512-IY+r3bxKW6Q6sIPiMC0L533DEfRJSXibjSI3Ft/w9Q8KQBNqEIvUFXt+09wV8S5BRk0a8uSF19YWxuRwEfI90g==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@modelcontextprotocol/sdk": {
+      "version": "1.25.2",
+      "resolved": "https://registry.npmmirror.com/@modelcontextprotocol/sdk/-/sdk-1.25.2.tgz",
+      "integrity": "sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@hono/node-server": "^1.19.7",
+        "ajv": "^8.17.1",
+        "ajv-formats": "^3.0.1",
+        "content-type": "^1.0.5",
+        "cors": "^2.8.5",
+        "cross-spawn": "^7.0.5",
+        "eventsource": "^3.0.2",
+        "eventsource-parser": "^3.0.0",
+        "express": "^5.0.1",
+        "express-rate-limit": "^7.5.0",
+        "jose": "^6.1.1",
+        "json-schema-typed": "^8.0.2",
+        "pkce-challenge": "^5.0.0",
+        "raw-body": "^3.0.0",
+        "zod": "^3.25 || ^4.0",
+        "zod-to-json-schema": "^3.25.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "@cfworker/json-schema": "^4.1.1",
+        "zod": "^3.25 || ^4.0"
+      },
+      "peerDependenciesMeta": {
+        "@cfworker/json-schema": {
+          "optional": true
+        },
+        "zod": {
+          "optional": false
+        }
+      }
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
+      "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz",
+      "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz",
+      "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz",
+      "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz",
+      "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz",
+      "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@napi-rs/nice": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice/-/nice-1.1.1.tgz",
+      "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      },
+      "optionalDependencies": {
+        "@napi-rs/nice-android-arm-eabi": "1.1.1",
+        "@napi-rs/nice-android-arm64": "1.1.1",
+        "@napi-rs/nice-darwin-arm64": "1.1.1",
+        "@napi-rs/nice-darwin-x64": "1.1.1",
+        "@napi-rs/nice-freebsd-x64": "1.1.1",
+        "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1",
+        "@napi-rs/nice-linux-arm64-gnu": "1.1.1",
+        "@napi-rs/nice-linux-arm64-musl": "1.1.1",
+        "@napi-rs/nice-linux-ppc64-gnu": "1.1.1",
+        "@napi-rs/nice-linux-riscv64-gnu": "1.1.1",
+        "@napi-rs/nice-linux-s390x-gnu": "1.1.1",
+        "@napi-rs/nice-linux-x64-gnu": "1.1.1",
+        "@napi-rs/nice-linux-x64-musl": "1.1.1",
+        "@napi-rs/nice-openharmony-arm64": "1.1.1",
+        "@napi-rs/nice-win32-arm64-msvc": "1.1.1",
+        "@napi-rs/nice-win32-ia32-msvc": "1.1.1",
+        "@napi-rs/nice-win32-x64-msvc": "1.1.1"
+      }
+    },
+    "node_modules/@napi-rs/nice-android-arm-eabi": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz",
+      "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-android-arm64": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz",
+      "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-darwin-arm64": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz",
+      "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-darwin-x64": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz",
+      "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-freebsd-x64": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz",
+      "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-arm-gnueabihf": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz",
+      "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-arm64-gnu": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz",
+      "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-arm64-musl": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz",
+      "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-ppc64-gnu": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz",
+      "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-riscv64-gnu": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz",
+      "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-s390x-gnu": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz",
+      "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-x64-gnu": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz",
+      "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-linux-x64-musl": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz",
+      "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-openharmony-arm64": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz",
+      "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openharmony"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-win32-arm64-msvc": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz",
+      "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-win32-ia32-msvc": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz",
+      "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@napi-rs/nice-win32-x64-msvc": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz",
+      "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@ngtools/webpack": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@ngtools/webpack/-/webpack-20.3.14.tgz",
+      "integrity": "sha512-2rI9naKQBtoyQmddCnPp94o0lQVl5VPsCefntMg2T0XCCdyNj2OK4X4QCVRrtAcTwlYMysDSTpPKE/VkPcjIQA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "peerDependencies": {
+        "@angular/compiler-cli": "^20.0.0",
+        "typescript": ">=5.8 <6.0",
+        "webpack": "^5.54.0"
+      }
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@npmcli/agent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/agent/-/agent-3.0.0.tgz",
+      "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "agent-base": "^7.1.0",
+        "http-proxy-agent": "^7.0.0",
+        "https-proxy-agent": "^7.0.1",
+        "lru-cache": "^10.0.1",
+        "socks-proxy-agent": "^8.0.3"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/agent/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/@npmcli/fs": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/fs/-/fs-4.0.0.tgz",
+      "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "semver": "^7.3.5"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/git": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmmirror.com/@npmcli/git/-/git-6.0.3.tgz",
+      "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/promise-spawn": "^8.0.0",
+        "ini": "^5.0.0",
+        "lru-cache": "^10.0.1",
+        "npm-pick-manifest": "^10.0.0",
+        "proc-log": "^5.0.0",
+        "promise-retry": "^2.0.1",
+        "semver": "^7.3.5",
+        "which": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/git/node_modules/isexe": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-3.1.1.tgz",
+      "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@npmcli/git/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/@npmcli/git/node_modules/which": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/which/-/which-5.0.0.tgz",
+      "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^3.1.1"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/installed-package-contents": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz",
+      "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "npm-bundled": "^4.0.0",
+        "npm-normalize-package-bin": "^4.0.0"
+      },
+      "bin": {
+        "installed-package-contents": "bin/index.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/node-gyp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz",
+      "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/package-json": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/package-json/-/package-json-6.2.0.tgz",
+      "integrity": "sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/git": "^6.0.0",
+        "glob": "^10.2.2",
+        "hosted-git-info": "^8.0.0",
+        "json-parse-even-better-errors": "^4.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.5.3",
+        "validate-npm-package-license": "^3.0.4"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/package-json/node_modules/glob": {
+      "version": "10.5.0",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.5.0.tgz",
+      "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "package-json-from-dist": "^1.0.0",
+        "path-scurry": "^1.11.1"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@npmcli/package-json/node_modules/hosted-git-info": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
+      "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "lru-cache": "^10.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/package-json/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/@npmcli/promise-spawn": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmmirror.com/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz",
+      "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "which": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-3.1.1.tgz",
+      "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@npmcli/promise-spawn/node_modules/which": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/which/-/which-5.0.0.tgz",
+      "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^3.1.1"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/redact": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmmirror.com/@npmcli/redact/-/redact-3.2.2.tgz",
+      "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/run-script": {
+      "version": "9.1.0",
+      "resolved": "https://registry.npmmirror.com/@npmcli/run-script/-/run-script-9.1.0.tgz",
+      "integrity": "sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/node-gyp": "^4.0.0",
+        "@npmcli/package-json": "^6.0.0",
+        "@npmcli/promise-spawn": "^8.0.0",
+        "node-gyp": "^11.0.0",
+        "proc-log": "^5.0.0",
+        "which": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@npmcli/run-script/node_modules/isexe": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-3.1.1.tgz",
+      "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/@npmcli/run-script/node_modules/which": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/which/-/which-5.0.0.tgz",
+      "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^3.1.1"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@parcel/watcher": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.4.tgz",
+      "integrity": "sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "detect-libc": "^2.0.3",
+        "is-glob": "^4.0.3",
+        "node-addon-api": "^7.0.0",
+        "picomatch": "^4.0.3"
+      },
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      },
+      "optionalDependencies": {
+        "@parcel/watcher-android-arm64": "2.5.4",
+        "@parcel/watcher-darwin-arm64": "2.5.4",
+        "@parcel/watcher-darwin-x64": "2.5.4",
+        "@parcel/watcher-freebsd-x64": "2.5.4",
+        "@parcel/watcher-linux-arm-glibc": "2.5.4",
+        "@parcel/watcher-linux-arm-musl": "2.5.4",
+        "@parcel/watcher-linux-arm64-glibc": "2.5.4",
+        "@parcel/watcher-linux-arm64-musl": "2.5.4",
+        "@parcel/watcher-linux-x64-glibc": "2.5.4",
+        "@parcel/watcher-linux-x64-musl": "2.5.4",
+        "@parcel/watcher-win32-arm64": "2.5.4",
+        "@parcel/watcher-win32-ia32": "2.5.4",
+        "@parcel/watcher-win32-x64": "2.5.4"
+      }
+    },
+    "node_modules/@parcel/watcher-android-arm64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.4.tgz",
+      "integrity": "sha512-hoh0vx4v+b3BNI7Cjoy2/B0ARqcwVNrzN/n7DLq9ZB4I3lrsvhrkCViJyfTj/Qi5xM9YFiH4AmHGK6pgH1ss7g==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-darwin-arm64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.4.tgz",
+      "integrity": "sha512-kphKy377pZiWpAOyTgQYPE5/XEKVMaj6VUjKT5VkNyUJlr2qZAn8gIc7CPzx+kbhvqHDT9d7EqdOqRXT6vk0zw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-darwin-x64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.4.tgz",
+      "integrity": "sha512-UKaQFhCtNJW1A9YyVz3Ju7ydf6QgrpNQfRZ35wNKUhTQ3dxJ/3MULXN5JN/0Z80V/KUBDGa3RZaKq1EQT2a2gg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-freebsd-x64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.4.tgz",
+      "integrity": "sha512-Dib0Wv3Ow/m2/ttvLdeI2DBXloO7t3Z0oCp4bAb2aqyqOjKPPGrg10pMJJAQ7tt8P4V2rwYwywkDhUia/FgS+Q==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm-glibc": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.4.tgz",
+      "integrity": "sha512-I5Vb769pdf7Q7Sf4KNy8Pogl/URRCKu9ImMmnVKYayhynuyGYMzuI4UOWnegQNa2sGpsPSbzDsqbHNMyeyPCgw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm-musl": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.4.tgz",
+      "integrity": "sha512-kGO8RPvVrcAotV4QcWh8kZuHr9bXi9a3bSZw7kFarYR0+fGliU7hd/zevhjw8fnvIKG3J9EO5G6sXNGCSNMYPQ==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm64-glibc": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.4.tgz",
+      "integrity": "sha512-KU75aooXhqGFY2W5/p8DYYHt4hrjHZod8AhcGAmhzPn/etTa+lYCDB2b1sJy3sWJ8ahFVTdy+EbqSBvMx3iFlw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm64-musl": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.4.tgz",
+      "integrity": "sha512-Qx8uNiIekVutnzbVdrgSanM+cbpDD3boB1f8vMtnuG5Zau4/bdDbXyKwIn0ToqFhIuob73bcxV9NwRm04/hzHQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-x64-glibc": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.4.tgz",
+      "integrity": "sha512-UYBQvhYmgAv61LNUn24qGQdjtycFBKSK3EXr72DbJqX9aaLbtCOO8+1SkKhD/GNiJ97ExgcHBrukcYhVjrnogA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-x64-musl": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.4.tgz",
+      "integrity": "sha512-YoRWCVgxv8akZrMhdyVi6/TyoeeMkQ0PGGOf2E4omODrvd1wxniXP+DBynKoHryStks7l+fDAMUBRzqNHrVOpg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-win32-arm64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.4.tgz",
+      "integrity": "sha512-iby+D/YNXWkiQNYcIhg8P5hSjzXEHaQrk2SLrWOUD7VeC4Ohu0WQvmV+HDJokZVJ2UjJ4AGXW3bx7Lls9Ln4TQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-win32-ia32": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.4.tgz",
+      "integrity": "sha512-vQN+KIReG0a2ZDpVv8cgddlf67J8hk1WfZMMP7sMeZmJRSmEax5xNDNWKdgqSe2brOKTQQAs3aCCUal2qBHAyg==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-win32-x64": {
+      "version": "2.5.4",
+      "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.4.tgz",
+      "integrity": "sha512-3A6efb6BOKwyw7yk9ro2vus2YTt2nvcd56AuzxdMiVOxL9umDyN5PKkKfZ/gZ9row41SjVmTVQNWQhaRRGpOKw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher/node_modules/node-addon-api": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz",
+      "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/@pkgjs/parseargs": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+      "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/@pkgr/core": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.2.tgz",
+      "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
+    "node_modules/@rollup/rollup-android-arm-eabi": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz",
+      "integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ]
+    },
+    "node_modules/@rollup/rollup-android-arm64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz",
+      "integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ]
+    },
+    "node_modules/@rollup/rollup-darwin-arm64": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz",
+      "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@rollup/rollup-darwin-x64": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz",
+      "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@rollup/rollup-freebsd-arm64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz",
+      "integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ]
+    },
+    "node_modules/@rollup/rollup-freebsd-x64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz",
+      "integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz",
+      "integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz",
+      "integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm64-gnu": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz",
+      "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm64-musl": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz",
+      "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-loong64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz",
+      "integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz",
+      "integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz",
+      "integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-riscv64-musl": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz",
+      "integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-s390x-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz",
+      "integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-x64-gnu": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz",
+      "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-x64-musl": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz",
+      "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-openharmony-arm64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz",
+      "integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openharmony"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-arm64-msvc": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz",
+      "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-ia32-msvc": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz",
+      "integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-x64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz",
+      "integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-x64-msvc": {
+      "version": "4.34.9",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz",
+      "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rtsao/scc": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@rtsao/scc/-/scc-1.1.0.tgz",
+      "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@schematics/angular": {
+      "version": "20.3.14",
+      "resolved": "https://registry.npmmirror.com/@schematics/angular/-/angular-20.3.14.tgz",
+      "integrity": "sha512-JO37puMXFWN8YWqZZJ/URs8vPJNszZXcIyBnYdKDWTGaAnbOZMu0nzQlOC+h5NM7R5cPQtOpJv0wxEnY6EYI4A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@angular-devkit/core": "20.3.14",
+        "@angular-devkit/schematics": "20.3.14",
+        "jsonc-parser": "3.3.1"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      }
+    },
+    "node_modules/@sigstore/bundle": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/@sigstore/bundle/-/bundle-3.1.0.tgz",
+      "integrity": "sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@sigstore/protobuf-specs": "^0.4.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@sigstore/core": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/@sigstore/core/-/core-2.0.0.tgz",
+      "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@sigstore/protobuf-specs": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmmirror.com/@sigstore/protobuf-specs/-/protobuf-specs-0.4.3.tgz",
+      "integrity": "sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@sigstore/sign": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/@sigstore/sign/-/sign-3.1.0.tgz",
+      "integrity": "sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@sigstore/bundle": "^3.1.0",
+        "@sigstore/core": "^2.0.0",
+        "@sigstore/protobuf-specs": "^0.4.0",
+        "make-fetch-happen": "^14.0.2",
+        "proc-log": "^5.0.0",
+        "promise-retry": "^2.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@sigstore/tuf": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@sigstore/tuf/-/tuf-3.1.1.tgz",
+      "integrity": "sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@sigstore/protobuf-specs": "^0.4.1",
+        "tuf-js": "^3.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@sigstore/verify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@sigstore/verify/-/verify-2.1.1.tgz",
+      "integrity": "sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@sigstore/bundle": "^3.1.0",
+        "@sigstore/core": "^2.0.0",
+        "@sigstore/protobuf-specs": "^0.4.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@socket.io/component-emitter": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+      "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@stencil/core": {
+      "version": "4.38.0",
+      "resolved": "https://registry.npmmirror.com/@stencil/core/-/core-4.38.0.tgz",
+      "integrity": "sha512-oC3QFKO0X1yXVvETgc8OLY525MNKhn9vISBrbtKnGoPlokJ6rI8Vk1RK22TevnNrHLI4SExNLbcDnqilKR35JQ==",
+      "license": "MIT",
+      "bin": {
+        "stencil": "bin/stencil"
+      },
+      "engines": {
+        "node": ">=16.0.0",
+        "npm": ">=7.10.0"
+      },
+      "optionalDependencies": {
+        "@rollup/rollup-darwin-arm64": "4.34.9",
+        "@rollup/rollup-darwin-x64": "4.34.9",
+        "@rollup/rollup-linux-arm64-gnu": "4.34.9",
+        "@rollup/rollup-linux-arm64-musl": "4.34.9",
+        "@rollup/rollup-linux-x64-gnu": "4.34.9",
+        "@rollup/rollup-linux-x64-musl": "4.34.9",
+        "@rollup/rollup-win32-arm64-msvc": "4.34.9",
+        "@rollup/rollup-win32-x64-msvc": "4.34.9"
+      }
+    },
+    "node_modules/@tufjs/canonical-json": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
+      "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^16.14.0 || >=18.0.0"
+      }
+    },
+    "node_modules/@tufjs/models": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@tufjs/models/-/models-3.0.1.tgz",
+      "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@tufjs/canonical-json": "2.0.0",
+        "minimatch": "^9.0.5"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/@types/body-parser": {
+      "version": "1.19.6",
+      "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.6.tgz",
+      "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/connect": "*",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/bonjour": {
+      "version": "3.5.13",
+      "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.13.tgz",
+      "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/connect": {
+      "version": "3.4.38",
+      "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz",
+      "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/connect-history-api-fallback": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+      "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/express-serve-static-core": "*",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/cors": {
+      "version": "2.8.19",
+      "resolved": "https://registry.npmmirror.com/@types/cors/-/cors-2.8.19.tgz",
+      "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/eslint": {
+      "version": "9.6.1",
+      "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-9.6.1.tgz",
+      "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/estree": "*",
+        "@types/json-schema": "*"
+      }
+    },
+    "node_modules/@types/eslint-scope": {
+      "version": "3.7.7",
+      "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/eslint": "*",
+        "@types/estree": "*"
+      }
+    },
+    "node_modules/@types/estree": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
+      "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/express": {
+      "version": "4.17.25",
+      "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.25.tgz",
+      "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/body-parser": "*",
+        "@types/express-serve-static-core": "^4.17.33",
+        "@types/qs": "*",
+        "@types/serve-static": "^1"
+      }
+    },
+    "node_modules/@types/express-serve-static-core": {
+      "version": "4.19.8",
+      "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+      "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*",
+        "@types/qs": "*",
+        "@types/range-parser": "*",
+        "@types/send": "*"
+      }
+    },
+    "node_modules/@types/fs-extra": {
+      "version": "8.1.5",
+      "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-8.1.5.tgz",
+      "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/http-errors": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.5.tgz",
+      "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/http-proxy": {
+      "version": "1.17.17",
+      "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.17.tgz",
+      "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/jasmine": {
+      "version": "5.1.15",
+      "resolved": "https://registry.npmmirror.com/@types/jasmine/-/jasmine-5.1.15.tgz",
+      "integrity": "sha512-ZAC8KjmV2MJxbNTrwXFN+HKeajpXQZp6KpPiR6Aa4XvaEnjP6qh23lL/Rqb7AYzlp3h/rcwDrQ7Gg7q28cQTQg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/json-schema": {
+      "version": "7.0.15",
+      "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
+      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/json5": {
+      "version": "0.0.29",
+      "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/mime": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz",
+      "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/node": {
+      "version": "25.0.8",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-25.0.8.tgz",
+      "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "undici-types": "~7.16.0"
+      }
+    },
+    "node_modules/@types/node-forge": {
+      "version": "1.3.14",
+      "resolved": "https://registry.npmmirror.com/@types/node-forge/-/node-forge-1.3.14.tgz",
+      "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/qs": {
+      "version": "6.14.0",
+      "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.14.0.tgz",
+      "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/range-parser": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz",
+      "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/retry": {
+      "version": "0.12.2",
+      "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.2.tgz",
+      "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/send": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/@types/send/-/send-1.2.1.tgz",
+      "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/serve-index": {
+      "version": "1.9.4",
+      "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.4.tgz",
+      "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/express": "*"
+      }
+    },
+    "node_modules/@types/serve-static": {
+      "version": "1.15.10",
+      "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.10.tgz",
+      "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/http-errors": "*",
+        "@types/node": "*",
+        "@types/send": "<1"
+      }
+    },
+    "node_modules/@types/serve-static/node_modules/@types/send": {
+      "version": "0.17.6",
+      "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.6.tgz",
+      "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/mime": "^1",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/slice-ansi": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/@types/slice-ansi/-/slice-ansi-4.0.0.tgz",
+      "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@types/sockjs": {
+      "version": "0.3.36",
+      "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.36.tgz",
+      "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/ws": {
+      "version": "8.18.1",
+      "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.18.1.tgz",
+      "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@typescript-eslint/eslint-plugin": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz",
+      "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@eslint-community/regexpp": "^4.12.2",
+        "@typescript-eslint/scope-manager": "8.53.0",
+        "@typescript-eslint/type-utils": "8.53.0",
+        "@typescript-eslint/utils": "8.53.0",
+        "@typescript-eslint/visitor-keys": "8.53.0",
+        "ignore": "^7.0.5",
+        "natural-compare": "^1.4.0",
+        "ts-api-utils": "^2.4.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/parser": "^8.53.0",
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/parser": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.53.0.tgz",
+      "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/scope-manager": "8.53.0",
+        "@typescript-eslint/types": "8.53.0",
+        "@typescript-eslint/typescript-estree": "8.53.0",
+        "@typescript-eslint/visitor-keys": "8.53.0",
+        "debug": "^4.4.3"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/project-service": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/project-service/-/project-service-8.53.0.tgz",
+      "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/tsconfig-utils": "^8.53.0",
+        "@typescript-eslint/types": "^8.53.0",
+        "debug": "^4.4.3"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz",
+      "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/types": "8.53.0",
+        "@typescript-eslint/visitor-keys": "8.53.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/tsconfig-utils": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz",
+      "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/type-utils": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz",
+      "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/types": "8.53.0",
+        "@typescript-eslint/typescript-estree": "8.53.0",
+        "@typescript-eslint/utils": "8.53.0",
+        "debug": "^4.4.3",
+        "ts-api-utils": "^2.4.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/types": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.53.0.tgz",
+      "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz",
+      "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/project-service": "8.53.0",
+        "@typescript-eslint/tsconfig-utils": "8.53.0",
+        "@typescript-eslint/types": "8.53.0",
+        "@typescript-eslint/visitor-keys": "8.53.0",
+        "debug": "^4.4.3",
+        "minimatch": "^9.0.5",
+        "semver": "^7.7.3",
+        "tinyglobby": "^0.2.15",
+        "ts-api-utils": "^2.4.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+      "version": "7.7.3",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz",
+      "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/tinyglobby": {
+      "version": "0.2.15",
+      "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz",
+      "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fdir": "^6.5.0",
+        "picomatch": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/SuperchupuDev"
+      }
+    },
+    "node_modules/@typescript-eslint/utils": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.53.0.tgz",
+      "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.9.1",
+        "@typescript-eslint/scope-manager": "8.53.0",
+        "@typescript-eslint/types": "8.53.0",
+        "@typescript-eslint/typescript-estree": "8.53.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <6.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys": {
+      "version": "8.53.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz",
+      "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/types": "8.53.0",
+        "eslint-visitor-keys": "^4.2.1"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@vitejs/plugin-basic-ssl": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz",
+      "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+      },
+      "peerDependencies": {
+        "vite": "^6.0.0 || ^7.0.0"
+      }
+    },
+    "node_modules/@webassemblyjs/ast": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+      "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/helper-numbers": "1.13.2",
+        "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+      }
+    },
+    "node_modules/@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+      "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@webassemblyjs/helper-api-error": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+      "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@webassemblyjs/helper-buffer": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+      "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@webassemblyjs/helper-numbers": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+      "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+        "@webassemblyjs/helper-api-error": "1.13.2",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+      "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@webassemblyjs/helper-wasm-section": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+      "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@webassemblyjs/helper-buffer": "1.14.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+        "@webassemblyjs/wasm-gen": "1.14.1"
+      }
+    },
+    "node_modules/@webassemblyjs/ieee754": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+      "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "node_modules/@webassemblyjs/leb128": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+      "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@webassemblyjs/utf8": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+      "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/@webassemblyjs/wasm-edit": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+      "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@webassemblyjs/helper-buffer": "1.14.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+        "@webassemblyjs/helper-wasm-section": "1.14.1",
+        "@webassemblyjs/wasm-gen": "1.14.1",
+        "@webassemblyjs/wasm-opt": "1.14.1",
+        "@webassemblyjs/wasm-parser": "1.14.1",
+        "@webassemblyjs/wast-printer": "1.14.1"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-gen": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+      "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+        "@webassemblyjs/ieee754": "1.13.2",
+        "@webassemblyjs/leb128": "1.13.2",
+        "@webassemblyjs/utf8": "1.13.2"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-opt": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+      "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@webassemblyjs/helper-buffer": "1.14.1",
+        "@webassemblyjs/wasm-gen": "1.14.1",
+        "@webassemblyjs/wasm-parser": "1.14.1"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-parser": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+      "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@webassemblyjs/helper-api-error": "1.13.2",
+        "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+        "@webassemblyjs/ieee754": "1.13.2",
+        "@webassemblyjs/leb128": "1.13.2",
+        "@webassemblyjs/utf8": "1.13.2"
+      }
+    },
+    "node_modules/@webassemblyjs/wast-printer": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+      "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@webassemblyjs/ast": "1.14.1",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@xmldom/xmldom": {
+      "version": "0.8.11",
+      "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
+      "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+      "dev": true,
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@xtuc/long": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
+      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+      "dev": true,
+      "license": "Apache-2.0"
+    },
+    "node_modules/@yarnpkg/lockfile": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+      "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+      "dev": true,
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/abbrev": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-3.0.1.tgz",
+      "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/accepts": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz",
+      "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "^3.0.0",
+        "negotiator": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/acorn": {
+      "version": "8.15.0",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz",
+      "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-import-phases": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+      "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "peerDependencies": {
+        "acorn": "^8.14.0"
+      }
+    },
+    "node_modules/acorn-jsx": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+      "dev": true,
+      "license": "MIT",
+      "peerDependencies": {
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/adjust-sourcemap-loader": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
+      "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "loader-utils": "^2.0.0",
+        "regex-parser": "^2.2.11"
+      },
+      "engines": {
+        "node": ">=8.9"
+      }
+    },
+    "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^3.0.0",
+        "json5": "^2.1.2"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      }
+    },
+    "node_modules/agent-base": {
+      "version": "7.1.4",
+      "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",
+      "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "8.17.1",
+      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz",
+      "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.3",
+        "fast-uri": "^3.0.1",
+        "json-schema-traverse": "^1.0.0",
+        "require-from-string": "^2.0.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ajv-formats": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-3.0.1.tgz",
+      "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "ajv": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/ajv-keywords": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+      "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.3"
+      },
+      "peerDependencies": {
+        "ajv": "^8.8.2"
+      }
+    },
+    "node_modules/algoliasearch": {
+      "version": "5.35.0",
+      "resolved": "https://registry.npmmirror.com/algoliasearch/-/algoliasearch-5.35.0.tgz",
+      "integrity": "sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@algolia/abtesting": "1.1.0",
+        "@algolia/client-abtesting": "5.35.0",
+        "@algolia/client-analytics": "5.35.0",
+        "@algolia/client-common": "5.35.0",
+        "@algolia/client-insights": "5.35.0",
+        "@algolia/client-personalization": "5.35.0",
+        "@algolia/client-query-suggestions": "5.35.0",
+        "@algolia/client-search": "5.35.0",
+        "@algolia/ingestion": "1.35.0",
+        "@algolia/monitoring": "1.35.0",
+        "@algolia/recommend": "5.35.0",
+        "@algolia/requester-browser-xhr": "5.35.0",
+        "@algolia/requester-fetch": "5.35.0",
+        "@algolia/requester-node-http": "5.35.0"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/ansi-colors": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.3.tgz",
+      "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/ansi-escapes": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-7.2.0.tgz",
+      "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "environment": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/ansi-html-community": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+      "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+      "dev": true,
+      "engines": [
+        "node >= 0.8.0"
+      ],
+      "license": "Apache-2.0",
+      "bin": {
+        "ansi-html": "bin/ansi-html"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.2.2.tgz",
+      "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/anymatch/node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/are-docs-informative": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmmirror.com/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+      "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true,
+      "license": "Python-2.0"
+    },
+    "node_modules/aria-query": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.2.tgz",
+      "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/array-buffer-byte-length": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+      "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "is-array-buffer": "^3.0.5"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array-flatten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
+      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/array-includes": {
+      "version": "3.1.9",
+      "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.9.tgz",
+      "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.4",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.24.0",
+        "es-object-atoms": "^1.1.1",
+        "get-intrinsic": "^1.3.0",
+        "is-string": "^1.1.1",
+        "math-intrinsics": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.findlastindex": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+      "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.4",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.9",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "es-shim-unscopables": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flat": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+      "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.5",
+        "es-shim-unscopables": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flatmap": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+      "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.5",
+        "es-shim-unscopables": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/arraybuffer.prototype.slice": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+      "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.1",
+        "call-bind": "^1.0.8",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.5",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "is-array-buffer": "^3.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/astral-regex": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz",
+      "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/async-function": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/async-function/-/async-function-1.0.0.tgz",
+      "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/at-least-node": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
+      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">= 4.0.0"
+      }
+    },
+    "node_modules/autoprefixer": {
+      "version": "10.4.21",
+      "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.21.tgz",
+      "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "browserslist": "^4.24.4",
+        "caniuse-lite": "^1.0.30001702",
+        "fraction.js": "^4.3.7",
+        "normalize-range": "^0.1.2",
+        "picocolors": "^1.1.1",
+        "postcss-value-parser": "^4.2.0"
+      },
+      "bin": {
+        "autoprefixer": "bin/autoprefixer"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/available-typed-arrays": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+      "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "possible-typed-array-names": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/axobject-query": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.1.0.tgz",
+      "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/babel-loader": {
+      "version": "10.0.0",
+      "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-10.0.0.tgz",
+      "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "find-up": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.20.0 || ^20.10.0 || >=22.0.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.12.0",
+        "webpack": ">=5.61.0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-corejs2": {
+      "version": "0.4.14",
+      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz",
+      "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/compat-data": "^7.27.7",
+        "@babel/helper-define-polyfill-provider": "^0.6.5",
+        "semver": "^6.3.1"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-corejs3": {
+      "version": "0.13.0",
+      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
+      "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.6.5",
+        "core-js-compat": "^3.43.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-regenerator": {
+      "version": "0.6.5",
+      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz",
+      "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.6.5"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+      "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"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/base64id": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/base64id/-/base64id-2.0.0.tgz",
+      "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^4.5.0 || >= 5.9"
+      }
+    },
+    "node_modules/baseline-browser-mapping": {
+      "version": "2.9.14",
+      "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz",
+      "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "bin": {
+        "baseline-browser-mapping": "dist/cli.js"
+      }
+    },
+    "node_modules/batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz",
+      "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/beasties": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmmirror.com/beasties/-/beasties-0.3.5.tgz",
+      "integrity": "sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "css-select": "^6.0.0",
+        "css-what": "^7.0.0",
+        "dom-serializer": "^2.0.0",
+        "domhandler": "^5.0.3",
+        "htmlparser2": "^10.0.0",
+        "picocolors": "^1.1.1",
+        "postcss": "^8.4.49",
+        "postcss-media-query-parser": "^0.2.3"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/big-integer": {
+      "version": "1.6.52",
+      "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz",
+      "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+      "dev": true,
+      "license": "Unlicense",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/big.js": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/body-parser": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.2.2.tgz",
+      "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "^3.1.2",
+        "content-type": "^1.0.5",
+        "debug": "^4.4.3",
+        "http-errors": "^2.0.0",
+        "iconv-lite": "^0.7.0",
+        "on-finished": "^2.4.1",
+        "qs": "^6.14.1",
+        "raw-body": "^3.0.1",
+        "type-is": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/bonjour-service": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.3.0.tgz",
+      "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.3",
+        "multicast-dns": "^7.2.5"
+      }
+    },
+    "node_modules/boolbase": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
+      "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/bplist-parser": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.3.2.tgz",
+      "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "big-integer": "1.6.x"
+      },
+      "engines": {
+        "node": ">= 5.10.0"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz",
+      "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fill-range": "^7.1.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/browserslist": {
+      "version": "4.28.1",
+      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.1.tgz",
+      "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "baseline-browser-mapping": "^2.9.0",
+        "caniuse-lite": "^1.0.30001759",
+        "electron-to-chromium": "^1.5.263",
+        "node-releases": "^2.0.27",
+        "update-browserslist-db": "^1.2.0"
+      },
+      "bin": {
+        "browserslist": "cli.js"
+      },
+      "engines": {
+        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+      }
+    },
+    "node_modules/buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/bundle-name": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-4.1.0.tgz",
+      "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "run-applescript": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/bytes": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+      "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/cacache": {
+      "version": "19.0.1",
+      "resolved": "https://registry.npmmirror.com/cacache/-/cacache-19.0.1.tgz",
+      "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/fs": "^4.0.0",
+        "fs-minipass": "^3.0.0",
+        "glob": "^10.2.2",
+        "lru-cache": "^10.0.1",
+        "minipass": "^7.0.3",
+        "minipass-collect": "^2.0.1",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.4",
+        "p-map": "^7.0.2",
+        "ssri": "^12.0.0",
+        "tar": "^7.4.3",
+        "unique-filename": "^4.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/cacache/node_modules/chownr": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-3.0.0.tgz",
+      "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/cacache/node_modules/glob": {
+      "version": "10.5.0",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.5.0.tgz",
+      "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "package-json-from-dist": "^1.0.0",
+        "path-scurry": "^1.11.1"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/cacache/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/cacache/node_modules/tar": {
+      "version": "7.5.2",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-7.5.2.tgz",
+      "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/fs-minipass": "^4.0.0",
+        "chownr": "^3.0.0",
+        "minipass": "^7.1.2",
+        "minizlib": "^3.1.0",
+        "yallist": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/cacache/node_modules/yallist": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-5.0.0.tgz",
+      "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/call-bind": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz",
+      "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.0",
+        "es-define-property": "^1.0.0",
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/call-bound": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz",
+      "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "get-intrinsic": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/callsites": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/caniuse-lite": {
+      "version": "1.0.30001764",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz",
+      "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==",
+      "dev": true,
+      "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"
+        }
+      ],
+      "license": "CC-BY-4.0"
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "license": "MIT",
+      "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/chardet": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/chardet/-/chardet-2.1.1.tgz",
+      "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/chokidar": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz",
+      "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "readdirp": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 14.16.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/chownr": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
+      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/chrome-trace-event": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+      "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.0"
+      }
+    },
+    "node_modules/cli-cursor": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-5.0.0.tgz",
+      "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "restore-cursor": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/cli-spinners": {
+      "version": "2.9.2",
+      "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz",
+      "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/cli-truncate": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-4.0.0.tgz",
+      "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "slice-ansi": "^5.0.0",
+        "string-width": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/cli-width": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/cli-width/-/cli-width-4.1.0.tgz",
+      "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">= 12"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "9.0.1",
+      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-9.0.1.tgz",
+      "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "string-width": "^7.2.0",
+        "strip-ansi": "^7.1.0",
+        "wrap-ansi": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/cliui/node_modules/ansi-styles": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+      "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/cliui/node_modules/wrap-ansi": {
+      "version": "9.0.2",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+      "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "string-width": "^7.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/clone-deep": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz",
+      "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.2",
+        "shallow-clone": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/clone-deep/node_modules/is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/colorette": {
+      "version": "2.0.20",
+      "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz",
+      "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/colors": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/colors/-/colors-1.4.0.tgz",
+      "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.1.90"
+      }
+    },
+    "node_modules/commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/comment-parser": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/comment-parser/-/comment-parser-1.4.1.tgz",
+      "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 12.0.0"
+      }
+    },
+    "node_modules/compressible": {
+      "version": "2.0.18",
+      "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz",
+      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": ">= 1.43.0 < 2"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/compression": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmmirror.com/compression/-/compression-1.8.1.tgz",
+      "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "3.1.2",
+        "compressible": "~2.0.18",
+        "debug": "2.6.9",
+        "negotiator": "~0.6.4",
+        "on-headers": "~1.1.0",
+        "safe-buffer": "5.2.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/compression/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/compression/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/compression/node_modules/negotiator": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz",
+      "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/connect": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz",
+      "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "2.6.9",
+        "finalhandler": "1.1.2",
+        "parseurl": "~1.3.3",
+        "utils-merge": "1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      }
+    },
+    "node_modules/connect-history-api-fallback": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+      "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/connect/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/connect/node_modules/encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/connect/node_modules/finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz",
+      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/connect/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/connect/node_modules/on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/connect/node_modules/statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/content-disposition": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-1.0.1.tgz",
+      "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/content-type": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
+      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/convert-source-map": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
+      "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/cookie": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz",
+      "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie-signature": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.2.2.tgz",
+      "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.6.0"
+      }
+    },
+    "node_modules/copy-anything": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz",
+      "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-what": "^3.14.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mesqueeb"
+      }
+    },
+    "node_modules/copy-webpack-plugin": {
+      "version": "13.0.1",
+      "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz",
+      "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "glob-parent": "^6.0.1",
+        "normalize-path": "^3.0.0",
+        "schema-utils": "^4.2.0",
+        "serialize-javascript": "^6.0.2",
+        "tinyglobby": "^0.2.12"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.1.0"
+      }
+    },
+    "node_modules/core-js-compat": {
+      "version": "3.47.0",
+      "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.47.0.tgz",
+      "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "browserslist": "^4.28.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js"
+      }
+    },
+    "node_modules/core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/cors": {
+      "version": "2.8.5",
+      "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz",
+      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "object-assign": "^4",
+        "vary": "^1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/cosmiconfig": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+      "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "env-paths": "^2.2.1",
+        "import-fresh": "^3.3.0",
+        "js-yaml": "^4.1.0",
+        "parse-json": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/d-fischer"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.9.5"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.6",
+      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/css-loader": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-7.1.2.tgz",
+      "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "icss-utils": "^5.1.0",
+        "postcss": "^8.4.33",
+        "postcss-modules-extract-imports": "^3.1.0",
+        "postcss-modules-local-by-default": "^4.0.5",
+        "postcss-modules-scope": "^3.2.0",
+        "postcss-modules-values": "^4.0.0",
+        "postcss-value-parser": "^4.2.0",
+        "semver": "^7.5.4"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "@rspack/core": "0.x || 1.x",
+        "webpack": "^5.27.0"
+      },
+      "peerDependenciesMeta": {
+        "@rspack/core": {
+          "optional": true
+        },
+        "webpack": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/css-select": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/css-select/-/css-select-6.0.0.tgz",
+      "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "boolbase": "^1.0.0",
+        "css-what": "^7.0.0",
+        "domhandler": "^5.0.3",
+        "domutils": "^3.2.2",
+        "nth-check": "^2.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/fb55"
+      }
+    },
+    "node_modules/css-what": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/css-what/-/css-what-7.0.0.tgz",
+      "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">= 6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/fb55"
+      }
+    },
+    "node_modules/cssesc": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
+      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "cssesc": "bin/cssesc"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/custom-event": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/custom-event/-/custom-event-1.0.1.tgz",
+      "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/data-view-buffer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+      "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/data-view-byte-length": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+      "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/inspect-js"
+      }
+    },
+    "node_modules/data-view-byte-offset": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+      "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/date-format": {
+      "version": "4.0.14",
+      "resolved": "https://registry.npmmirror.com/date-format/-/date-format-4.0.14.tgz",
+      "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/deep-is": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/default-browser": {
+      "version": "5.4.0",
+      "resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-5.4.0.tgz",
+      "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bundle-name": "^4.1.0",
+        "default-browser-id": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/default-browser-id": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-5.0.1.tgz",
+      "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/define-data-property": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+      "dev": true,
+      "license": "MIT",
+      "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-lazy-prop": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+      "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/define-properties": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz",
+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+      "dev": true,
+      "license": "MIT",
+      "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/depd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
+      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/destroy": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
+    "node_modules/detect-libc": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz",
+      "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "optional": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/detect-node": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz",
+      "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/di": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmmirror.com/di/-/di-0.0.1.tgz",
+      "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/dns-packet": {
+      "version": "5.6.1",
+      "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.6.1.tgz",
+      "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@leichtgewicht/ip-codec": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/doctrine": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz",
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/dom-serialize": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/dom-serialize/-/dom-serialize-2.2.1.tgz",
+      "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "custom-event": "~1.0.0",
+        "ent": "~2.2.0",
+        "extend": "^3.0.0",
+        "void-elements": "^2.0.0"
+      }
+    },
+    "node_modules/dom-serializer": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz",
+      "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "domelementtype": "^2.3.0",
+        "domhandler": "^5.0.2",
+        "entities": "^4.2.0"
+      },
+      "funding": {
+        "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+      }
+    },
+    "node_modules/domelementtype": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+      "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fb55"
+        }
+      ],
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/domhandler": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz",
+      "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "domelementtype": "^2.3.0"
+      },
+      "engines": {
+        "node": ">= 4"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/domhandler?sponsor=1"
+      }
+    },
+    "node_modules/domutils": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz",
+      "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "dom-serializer": "^2.0.0",
+        "domelementtype": "^2.3.0",
+        "domhandler": "^5.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/domutils?sponsor=1"
+      }
+    },
+    "node_modules/dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/eastasianwidth": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/electron-to-chromium": {
+      "version": "1.5.267",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+      "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/elementtree": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/elementtree/-/elementtree-0.1.7.tgz",
+      "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "sax": "1.1.4"
+      },
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
+    "node_modules/elementtree/node_modules/sax": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/sax/-/sax-1.1.4.tgz",
+      "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/emoji-regex": {
+      "version": "10.6.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.6.0.tgz",
+      "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/emojis-list": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz",
+      "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/encoding": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz",
+      "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "iconv-lite": "^0.6.2"
+      }
+    },
+    "node_modules/encoding/node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/engine.io": {
+      "version": "6.6.5",
+      "resolved": "https://registry.npmmirror.com/engine.io/-/engine.io-6.6.5.tgz",
+      "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/cors": "^2.8.12",
+        "@types/node": ">=10.0.0",
+        "accepts": "~1.3.4",
+        "base64id": "2.0.0",
+        "cookie": "~0.7.2",
+        "cors": "~2.8.5",
+        "debug": "~4.4.1",
+        "engine.io-parser": "~5.2.1",
+        "ws": "~8.18.3"
+      },
+      "engines": {
+        "node": ">=10.2.0"
+      }
+    },
+    "node_modules/engine.io-parser": {
+      "version": "5.2.3",
+      "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+      "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/engine.io/node_modules/accepts": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "~2.1.34",
+        "negotiator": "0.6.3"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/engine.io/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/engine.io/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/engine.io/node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/enhanced-resolve": {
+      "version": "5.18.4",
+      "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz",
+      "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "graceful-fs": "^4.2.4",
+        "tapable": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/ent": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/ent/-/ent-2.2.2.tgz",
+      "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "es-errors": "^1.3.0",
+        "punycode": "^1.4.1",
+        "safe-regex-test": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/env-paths": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz",
+      "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/environment": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/environment/-/environment-1.1.0.tgz",
+      "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/err-code": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/err-code/-/err-code-2.0.3.tgz",
+      "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/errno": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
+      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "prr": "~1.0.1"
+      },
+      "bin": {
+        "errno": "cli.js"
+      }
+    },
+    "node_modules/error-ex": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.4.tgz",
+      "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "node_modules/es-abstract": {
+      "version": "1.24.1",
+      "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.24.1.tgz",
+      "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.2",
+        "arraybuffer.prototype.slice": "^1.0.4",
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.4",
+        "data-view-buffer": "^1.0.2",
+        "data-view-byte-length": "^1.0.2",
+        "data-view-byte-offset": "^1.0.1",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "es-set-tostringtag": "^2.1.0",
+        "es-to-primitive": "^1.3.0",
+        "function.prototype.name": "^1.1.8",
+        "get-intrinsic": "^1.3.0",
+        "get-proto": "^1.0.1",
+        "get-symbol-description": "^1.1.0",
+        "globalthis": "^1.0.4",
+        "gopd": "^1.2.0",
+        "has-property-descriptors": "^1.0.2",
+        "has-proto": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "internal-slot": "^1.1.0",
+        "is-array-buffer": "^3.0.5",
+        "is-callable": "^1.2.7",
+        "is-data-view": "^1.0.2",
+        "is-negative-zero": "^2.0.3",
+        "is-regex": "^1.2.1",
+        "is-set": "^2.0.3",
+        "is-shared-array-buffer": "^1.0.4",
+        "is-string": "^1.1.1",
+        "is-typed-array": "^1.1.15",
+        "is-weakref": "^1.1.1",
+        "math-intrinsics": "^1.1.0",
+        "object-inspect": "^1.13.4",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.7",
+        "own-keys": "^1.0.1",
+        "regexp.prototype.flags": "^1.5.4",
+        "safe-array-concat": "^1.1.3",
+        "safe-push-apply": "^1.0.0",
+        "safe-regex-test": "^1.1.0",
+        "set-proto": "^1.0.0",
+        "stop-iteration-iterator": "^1.1.0",
+        "string.prototype.trim": "^1.2.10",
+        "string.prototype.trimend": "^1.0.9",
+        "string.prototype.trimstart": "^1.0.8",
+        "typed-array-buffer": "^1.0.3",
+        "typed-array-byte-length": "^1.0.3",
+        "typed-array-byte-offset": "^1.0.4",
+        "typed-array-length": "^1.0.7",
+        "unbox-primitive": "^1.1.0",
+        "which-typed-array": "^1.1.19"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-module-lexer": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+      "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/es-object-atoms": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-shim-unscopables": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+      "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-to-primitive": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+      "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-callable": "^1.2.7",
+        "is-date-object": "^1.0.5",
+        "is-symbol": "^1.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/esbuild": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.9.tgz",
+      "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "optionalDependencies": {
+        "@esbuild/aix-ppc64": "0.25.9",
+        "@esbuild/android-arm": "0.25.9",
+        "@esbuild/android-arm64": "0.25.9",
+        "@esbuild/android-x64": "0.25.9",
+        "@esbuild/darwin-arm64": "0.25.9",
+        "@esbuild/darwin-x64": "0.25.9",
+        "@esbuild/freebsd-arm64": "0.25.9",
+        "@esbuild/freebsd-x64": "0.25.9",
+        "@esbuild/linux-arm": "0.25.9",
+        "@esbuild/linux-arm64": "0.25.9",
+        "@esbuild/linux-ia32": "0.25.9",
+        "@esbuild/linux-loong64": "0.25.9",
+        "@esbuild/linux-mips64el": "0.25.9",
+        "@esbuild/linux-ppc64": "0.25.9",
+        "@esbuild/linux-riscv64": "0.25.9",
+        "@esbuild/linux-s390x": "0.25.9",
+        "@esbuild/linux-x64": "0.25.9",
+        "@esbuild/netbsd-arm64": "0.25.9",
+        "@esbuild/netbsd-x64": "0.25.9",
+        "@esbuild/openbsd-arm64": "0.25.9",
+        "@esbuild/openbsd-x64": "0.25.9",
+        "@esbuild/openharmony-arm64": "0.25.9",
+        "@esbuild/sunos-x64": "0.25.9",
+        "@esbuild/win32-arm64": "0.25.9",
+        "@esbuild/win32-ia32": "0.25.9",
+        "@esbuild/win32-x64": "0.25.9"
+      }
+    },
+    "node_modules/esbuild-wasm": {
+      "version": "0.25.9",
+      "resolved": "https://registry.npmmirror.com/esbuild-wasm/-/esbuild-wasm-0.25.9.tgz",
+      "integrity": "sha512-Jpv5tCSwQg18aCqCRD3oHIX/prBhXMDapIoG//A+6+dV0e7KQMGFg85ihJ5T1EeMjbZjON3TqFy0VrGAnIHLDA==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/escalade": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
+      "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint": {
+      "version": "9.39.2",
+      "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.39.2.tgz",
+      "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.8.0",
+        "@eslint-community/regexpp": "^4.12.1",
+        "@eslint/config-array": "^0.21.1",
+        "@eslint/config-helpers": "^0.4.2",
+        "@eslint/core": "^0.17.0",
+        "@eslint/eslintrc": "^3.3.1",
+        "@eslint/js": "9.39.2",
+        "@eslint/plugin-kit": "^0.4.1",
+        "@humanfs/node": "^0.16.6",
+        "@humanwhocodes/module-importer": "^1.0.1",
+        "@humanwhocodes/retry": "^0.4.2",
+        "@types/estree": "^1.0.6",
+        "ajv": "^6.12.4",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.6",
+        "debug": "^4.3.2",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^8.4.0",
+        "eslint-visitor-keys": "^4.2.1",
+        "espree": "^10.4.0",
+        "esquery": "^1.5.0",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^8.0.0",
+        "find-up": "^5.0.0",
+        "glob-parent": "^6.0.2",
+        "ignore": "^5.2.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.1.2",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.3"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://eslint.org/donate"
+      },
+      "peerDependencies": {
+        "jiti": "*"
+      },
+      "peerDependenciesMeta": {
+        "jiti": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-import-resolver-node": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-module-utils": {
+      "version": "2.12.1",
+      "resolved": "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
+      "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import": {
+      "version": "2.32.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
+      "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@rtsao/scc": "^1.1.0",
+        "array-includes": "^3.1.9",
+        "array.prototype.findlastindex": "^1.2.6",
+        "array.prototype.flat": "^1.3.3",
+        "array.prototype.flatmap": "^1.3.3",
+        "debug": "^3.2.7",
+        "doctrine": "^2.1.0",
+        "eslint-import-resolver-node": "^0.3.9",
+        "eslint-module-utils": "^2.12.1",
+        "hasown": "^2.0.2",
+        "is-core-module": "^2.16.1",
+        "is-glob": "^4.0.3",
+        "minimatch": "^3.1.2",
+        "object.fromentries": "^2.0.8",
+        "object.groupby": "^1.0.3",
+        "object.values": "^1.2.1",
+        "semver": "^6.3.1",
+        "string.prototype.trimend": "^1.0.9",
+        "tsconfig-paths": "^3.15.0"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/eslint-plugin-jsdoc": {
+      "version": "48.11.0",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.11.0.tgz",
+      "integrity": "sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@es-joy/jsdoccomment": "~0.46.0",
+        "are-docs-informative": "^0.0.2",
+        "comment-parser": "1.4.1",
+        "debug": "^4.3.5",
+        "escape-string-regexp": "^4.0.0",
+        "espree": "^10.1.0",
+        "esquery": "^1.6.0",
+        "parse-imports": "^2.1.1",
+        "semver": "^7.6.3",
+        "spdx-expression-parse": "^4.0.0",
+        "synckit": "^0.9.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "peerDependencies": {
+        "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-prefer-arrow": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.2.tgz",
+      "integrity": "sha512-C8YMhL+r8RMeMdYAw/rQtE6xNdMulj+zGWud/qIGnlmomiPRaLDGLMeskZ3alN6uMBojmooRimtdrXebLN4svQ==",
+      "dev": true,
+      "license": "MIT",
+      "peerDependencies": {
+        "eslint": ">=2.0.0"
+      }
+    },
+    "node_modules/eslint-scope": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-9.0.0.tgz",
+      "integrity": "sha512-+Yh0LeQKq+mW/tQArNj67tljR3L1HajDTQPuZOEwC00oBdoIDQrr89yBgjAlzAwRrY/5zDkM3v99iGHwz9y0dw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.13.0 || >=24"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-visitor-keys": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "license": "MIT",
+      "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/eslint/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/eslint/node_modules/eslint-scope": {
+      "version": "8.4.0",
+      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-8.4.0.tgz",
+      "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint/node_modules/eslint-visitor-keys": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint/node_modules/ignore": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz",
+      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/eslint/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/eslint/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/espree": {
+      "version": "10.4.0",
+      "resolved": "https://registry.npmmirror.com/espree/-/espree-10.4.0.tgz",
+      "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "acorn": "^8.15.0",
+        "acorn-jsx": "^5.3.2",
+        "eslint-visitor-keys": "^4.2.1"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/espree/node_modules/eslint-visitor-keys": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/esquery": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz",
+      "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "estraverse": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/eventemitter3": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+      "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/events": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
+      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.8.x"
+      }
+    },
+    "node_modules/eventsource": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmmirror.com/eventsource/-/eventsource-3.0.7.tgz",
+      "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "eventsource-parser": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/eventsource-parser": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmmirror.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz",
+      "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/exponential-backoff": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz",
+      "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==",
+      "dev": true,
+      "license": "Apache-2.0"
+    },
+    "node_modules/express": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/express/-/express-5.2.1.tgz",
+      "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "^2.0.0",
+        "body-parser": "^2.2.1",
+        "content-disposition": "^1.0.0",
+        "content-type": "^1.0.5",
+        "cookie": "^0.7.1",
+        "cookie-signature": "^1.2.1",
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "finalhandler": "^2.1.0",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.0",
+        "merge-descriptors": "^2.0.0",
+        "mime-types": "^3.0.0",
+        "on-finished": "^2.4.1",
+        "once": "^1.4.0",
+        "parseurl": "^1.3.3",
+        "proxy-addr": "^2.0.7",
+        "qs": "^6.14.0",
+        "range-parser": "^1.2.1",
+        "router": "^2.2.0",
+        "send": "^1.1.0",
+        "serve-static": "^2.2.0",
+        "statuses": "^2.0.1",
+        "type-is": "^2.0.1",
+        "vary": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/express-rate-limit": {
+      "version": "7.5.1",
+      "resolved": "https://registry.npmmirror.com/express-rate-limit/-/express-rate-limit-7.5.1.tgz",
+      "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/express-rate-limit"
+      },
+      "peerDependencies": {
+        "express": ">= 4.11"
+      }
+    },
+    "node_modules/extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz",
+      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+      "dev": true,
+      "license": "MIT",
+      "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.8"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fast-glob/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/fast-uri": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.1.0.tgz",
+      "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fastify"
+        },
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/fastify"
+        }
+      ],
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/fastq": {
+      "version": "1.20.1",
+      "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.20.1.tgz",
+      "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/faye-websocket": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz",
+      "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "websocket-driver": ">=0.5.1"
+      },
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/fd-slicer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz",
+      "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "pend": "~1.2.0"
+      }
+    },
+    "node_modules/fdir": {
+      "version": "6.5.0",
+      "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz",
+      "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "picomatch": "^3 || ^4"
+      },
+      "peerDependenciesMeta": {
+        "picomatch": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/file-entry-cache": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+      "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "flat-cache": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/finalhandler": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz",
+      "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "on-finished": "^2.4.1",
+        "parseurl": "^1.3.3",
+        "statuses": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 18.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz",
+      "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "bin": {
+        "flat": "cli.js"
+      }
+    },
+    "node_modules/flat-cache": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-4.0.1.tgz",
+      "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "flatted": "^3.2.9",
+        "keyv": "^4.5.4"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/flatted": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.3.tgz",
+      "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/follow-redirects": {
+      "version": "1.15.11",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
+      "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://github.com/sponsors/RubenVerborgh"
+        }
+      ],
+      "license": "MIT",
+      "engines": {
+        "node": ">=4.0"
+      },
+      "peerDependenciesMeta": {
+        "debug": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/for-each": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.5.tgz",
+      "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-callable": "^1.2.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/foreground-child": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz",
+      "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "cross-spawn": "^7.0.6",
+        "signal-exit": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/forwarded": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
+      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/fraction.js": {
+      "version": "4.3.7",
+      "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
+      "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "type": "patreon",
+        "url": "https://github.com/sponsors/rawify"
+      }
+    },
+    "node_modules/fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-2.0.0.tgz",
+      "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/fs-extra": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz",
+      "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^4.0.0",
+        "universalify": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=6 <7 || >=8"
+      }
+    },
+    "node_modules/fs-minipass": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-3.0.3.tgz",
+      "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^7.0.3"
+      },
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "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.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/function.prototype.name": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+      "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.3",
+        "define-properties": "^1.2.1",
+        "functions-have-names": "^1.2.3",
+        "hasown": "^2.0.2",
+        "is-callable": "^1.2.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/functions-have-names": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/generator-function": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/generator-function/-/generator-function-2.0.1.tgz",
+      "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/gensync": {
+      "version": "1.0.0-beta.2",
+      "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
+      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/get-east-asian-width": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz",
+      "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/get-symbol-description": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+      "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/glob-to-regex.js": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
+      "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/glob-to-regexp": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+      "dev": true,
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/glob/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/globals": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmmirror.com/globals/-/globals-14.0.0.tgz",
+      "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/globalthis": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz",
+      "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "define-properties": "^1.2.1",
+        "gopd": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/handle-thing": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
+      "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/has-bigints": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz",
+      "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-define-property": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz",
+      "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "dunder-proto": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/hono": {
+      "version": "4.11.4",
+      "resolved": "https://registry.npmmirror.com/hono/-/hono-4.11.4.tgz",
+      "integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==",
+      "dev": true,
+      "license": "MIT",
+      "peer": true,
+      "engines": {
+        "node": ">=16.9.0"
+      }
+    },
+    "node_modules/hosted-git-info": {
+      "version": "9.0.2",
+      "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-9.0.2.tgz",
+      "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "lru-cache": "^11.1.0"
+      },
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/hosted-git-info/node_modules/lru-cache": {
+      "version": "11.2.4",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.2.4.tgz",
+      "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz",
+      "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "node_modules/hpack.js/node_modules/isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/hpack.js/node_modules/readable-stream": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+      "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "node_modules/hpack.js/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/hpack.js/node_modules/string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "node_modules/html-escaper": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz",
+      "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/htmlparser2": {
+      "version": "10.0.0",
+      "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.0.0.tgz",
+      "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==",
+      "dev": true,
+      "funding": [
+        "https://github.com/fb55/htmlparser2?sponsor=1",
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fb55"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "domelementtype": "^2.3.0",
+        "domhandler": "^5.0.3",
+        "domutils": "^3.2.1",
+        "entities": "^6.0.0"
+      }
+    },
+    "node_modules/htmlparser2/node_modules/entities": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
+      "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/http-cache-semantics": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
+      "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
+      "dev": true,
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz",
+      "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/http-errors": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.1.tgz",
+      "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "depd": "~2.0.0",
+        "inherits": "~2.0.4",
+        "setprototypeof": "~1.2.0",
+        "statuses": "~2.0.2",
+        "toidentifier": "~1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/http-parser-js": {
+      "version": "0.5.10",
+      "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.10.tgz",
+      "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/http-proxy": {
+      "version": "1.18.1",
+      "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/http-proxy-agent": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+      "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "agent-base": "^7.1.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/http-proxy-middleware": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz",
+      "integrity": "sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/http-proxy": "^1.17.15",
+        "debug": "^4.3.6",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.3",
+        "is-plain-object": "^5.0.0",
+        "micromatch": "^4.0.8"
+      },
+      "engines": {
+        "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+      }
+    },
+    "node_modules/https-proxy-agent": {
+      "version": "7.0.6",
+      "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+      "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "agent-base": "^7.1.2",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/hyperdyperid": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
+      "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.18"
+      }
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.2.tgz",
+      "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/icss-utils": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
+      "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^10 || ^12 || >= 14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/ignore": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmmirror.com/ignore/-/ignore-7.0.5.tgz",
+      "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/ignore-walk": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/ignore-walk/-/ignore-walk-8.0.0.tgz",
+      "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minimatch": "^10.0.3"
+      },
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/ignore-walk/node_modules/minimatch": {
+      "version": "10.1.1",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.1.1.tgz",
+      "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/brace-expansion": "^5.0.0"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/image-size": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "bin": {
+        "image-size": "bin/image-size.js"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/immutable": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.1.4.tgz",
+      "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/import-fresh": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz",
+      "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/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,
+      "license": "ISC",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/ini": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/ini/-/ini-5.0.0.tgz",
+      "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/internal-slot": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz",
+      "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "hasown": "^2.0.2",
+        "side-channel": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/ionicons": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmmirror.com/ionicons/-/ionicons-7.4.0.tgz",
+      "integrity": "sha512-ZK94MMqgzMCPPMhmk8Ouu6goyVHFIlw/ACP6oe3FrikcI0N7CX0xcwVaEbUc0G/v3W0shI93vo+9ve/KpvcNhQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@stencil/core": "^4.0.3"
+      }
+    },
+    "node_modules/ip-address": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmmirror.com/ip-address/-/ip-address-10.1.0.tgz",
+      "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 12"
+      }
+    },
+    "node_modules/ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/is-array-buffer": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+      "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.3",
+        "get-intrinsic": "^1.2.6"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/is-async-function": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/is-async-function/-/is-async-function-2.1.1.tgz",
+      "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "async-function": "^1.0.0",
+        "call-bound": "^1.0.3",
+        "get-proto": "^1.0.1",
+        "has-tostringtag": "^1.0.2",
+        "safe-regex-test": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-bigint": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz",
+      "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "has-bigints": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-boolean-object": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+      "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-callable": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz",
+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.16.1",
+      "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz",
+      "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-data-view": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz",
+      "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "get-intrinsic": "^1.2.6",
+        "is-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-date-object": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz",
+      "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-docker": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz",
+      "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "is-docker": "cli.js"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-finalizationregistry": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+      "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+      "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-generator-function": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.1.2.tgz",
+      "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.4",
+        "generator-function": "^2.0.0",
+        "get-proto": "^1.0.1",
+        "has-tostringtag": "^1.0.2",
+        "safe-regex-test": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-inside-container": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz",
+      "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-docker": "^3.0.0"
+      },
+      "bin": {
+        "is-inside-container": "cli.js"
+      },
+      "engines": {
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-interactive": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-2.0.0.tgz",
+      "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-map": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz",
+      "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-negative-zero": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+      "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-network-error": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/is-network-error/-/is-network-error-1.3.0.tgz",
+      "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-number-object": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz",
+      "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-plain-obj": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+      "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-plain-object": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
+      "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-promise": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz",
+      "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/is-regex": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz",
+      "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "gopd": "^1.2.0",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-set": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz",
+      "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-shared-array-buffer": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+      "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-string": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz",
+      "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-symbol": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz",
+      "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "has-symbols": "^1.1.0",
+        "safe-regex-test": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-typed-array": {
+      "version": "1.1.15",
+      "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz",
+      "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "which-typed-array": "^1.1.16"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-unicode-supported": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
+      "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-weakmap": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz",
+      "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakref": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.1.tgz",
+      "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakset": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz",
+      "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "get-intrinsic": "^1.2.6"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-what": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz",
+      "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/is-wsl": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-3.1.0.tgz",
+      "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-inside-container": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/isarray": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
+      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/isbinaryfile": {
+      "version": "4.0.10",
+      "resolved": "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+      "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/gjtorikian/"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/istanbul-lib-coverage": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+      "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/istanbul-lib-instrument": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+      "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@babel/core": "^7.23.9",
+        "@babel/parser": "^7.23.9",
+        "@istanbuljs/schema": "^0.1.3",
+        "istanbul-lib-coverage": "^3.2.0",
+        "semver": "^7.5.4"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/istanbul-lib-report": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+      "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "istanbul-lib-coverage": "^3.0.0",
+        "make-dir": "^4.0.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/istanbul-lib-source-maps": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+      "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "debug": "^4.1.1",
+        "istanbul-lib-coverage": "^3.0.0",
+        "source-map": "^0.6.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/istanbul-reports": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+      "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "html-escaper": "^2.0.0",
+        "istanbul-lib-report": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/jackspeak": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz",
+      "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/cliui": "^8.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      },
+      "optionalDependencies": {
+        "@pkgjs/parseargs": "^0.11.0"
+      }
+    },
+    "node_modules/jasmine-core": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/jasmine-core/-/jasmine-core-5.1.2.tgz",
+      "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/jasmine-spec-reporter": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmmirror.com/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz",
+      "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "colors": "1.4.0"
+      }
+    },
+    "node_modules/jest-worker": {
+      "version": "27.5.1",
+      "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
+      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*",
+        "merge-stream": "^2.0.0",
+        "supports-color": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      }
+    },
+    "node_modules/jest-worker/node_modules/supports-color": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
+      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      }
+    },
+    "node_modules/jiti": {
+      "version": "1.21.7",
+      "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz",
+      "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "jiti": "bin/jiti.js"
+      }
+    },
+    "node_modules/jose": {
+      "version": "6.1.3",
+      "resolved": "https://registry.npmmirror.com/jose/-/jose-6.1.3.tgz",
+      "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/panva"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz",
+      "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/jsdoc-type-pratt-parser": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+      "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
+    "node_modules/jsesc": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz",
+      "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "jsesc": "bin/jsesc"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/json-buffer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz",
+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/json-parse-even-better-errors": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz",
+      "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+      "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/json-schema-typed": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
+      "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
+      "dev": true,
+      "license": "BSD-2-Clause"
+    },
+    "node_modules/json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/json5": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
+      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "json5": "lib/cli.js"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/jsonc-parser": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+      "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+      "license": "MIT"
+    },
+    "node_modules/jsonfile": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz",
+      "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+      "dev": true,
+      "license": "MIT",
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "node_modules/jsonparse": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/jsonparse/-/jsonparse-1.3.1.tgz",
+      "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+      "dev": true,
+      "engines": [
+        "node >= 0.2.0"
+      ],
+      "license": "MIT"
+    },
+    "node_modules/karma": {
+      "version": "6.4.4",
+      "resolved": "https://registry.npmmirror.com/karma/-/karma-6.4.4.tgz",
+      "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@colors/colors": "1.5.0",
+        "body-parser": "^1.19.0",
+        "braces": "^3.0.2",
+        "chokidar": "^3.5.1",
+        "connect": "^3.7.0",
+        "di": "^0.0.1",
+        "dom-serialize": "^2.2.1",
+        "glob": "^7.1.7",
+        "graceful-fs": "^4.2.6",
+        "http-proxy": "^1.18.1",
+        "isbinaryfile": "^4.0.8",
+        "lodash": "^4.17.21",
+        "log4js": "^6.4.1",
+        "mime": "^2.5.2",
+        "minimatch": "^3.0.4",
+        "mkdirp": "^0.5.5",
+        "qjobs": "^1.2.0",
+        "range-parser": "^1.2.1",
+        "rimraf": "^3.0.2",
+        "socket.io": "^4.7.2",
+        "source-map": "^0.6.1",
+        "tmp": "^0.2.1",
+        "ua-parser-js": "^0.7.30",
+        "yargs": "^16.1.1"
+      },
+      "bin": {
+        "karma": "bin/karma"
+      },
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/karma-chrome-launcher": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz",
+      "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "which": "^1.2.1"
+      }
+    },
+    "node_modules/karma-chrome-launcher/node_modules/which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "which": "bin/which"
+      }
+    },
+    "node_modules/karma-coverage": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/karma-coverage/-/karma-coverage-2.2.1.tgz",
+      "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "istanbul-lib-coverage": "^3.2.0",
+        "istanbul-lib-instrument": "^5.1.0",
+        "istanbul-lib-report": "^3.0.0",
+        "istanbul-lib-source-maps": "^4.0.1",
+        "istanbul-reports": "^3.0.5",
+        "minimatch": "^3.0.4"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/karma-coverage/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+      "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@babel/core": "^7.12.3",
+        "@babel/parser": "^7.14.7",
+        "@istanbuljs/schema": "^0.1.2",
+        "istanbul-lib-coverage": "^3.2.0",
+        "semver": "^6.3.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/karma-coverage/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/karma-coverage/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/karma-jasmine": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/karma-jasmine/-/karma-jasmine-5.1.0.tgz",
+      "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "jasmine-core": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependencies": {
+        "karma": "^6.0.0"
+      }
+    },
+    "node_modules/karma-jasmine-html-reporter": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz",
+      "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==",
+      "dev": true,
+      "license": "MIT",
+      "peerDependencies": {
+        "jasmine-core": "^4.0.0 || ^5.0.0",
+        "karma": "^6.0.0",
+        "karma-jasmine": "^5.0.0"
+      }
+    },
+    "node_modules/karma-jasmine/node_modules/jasmine-core": {
+      "version": "4.6.1",
+      "resolved": "https://registry.npmmirror.com/jasmine-core/-/jasmine-core-4.6.1.tgz",
+      "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/karma-source-map-support": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
+      "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "source-map-support": "^0.5.5"
+      }
+    },
+    "node_modules/karma/node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/karma/node_modules/body-parser": {
+      "version": "1.20.4",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.4.tgz",
+      "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "content-type": "~1.0.5",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "~1.2.0",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.4.24",
+        "on-finished": "~2.4.1",
+        "qs": "~6.14.0",
+        "raw-body": "~2.5.3",
+        "type-is": "~1.6.18",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
+    "node_modules/karma/node_modules/brace-expansion": {
+      "version": "1.1.12",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/karma/node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dev": true,
+      "license": "MIT",
+      "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/karma/node_modules/cliui": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz",
+      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^7.0.0"
+      }
+    },
+    "node_modules/karma/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/karma/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/karma/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/karma/node_modules/iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/karma/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/karma/node_modules/media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/karma/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/karma/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/karma/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/karma/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/karma/node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/karma/node_modules/raw-body": {
+      "version": "2.5.3",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.3.tgz",
+      "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.4.24",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/karma/node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/karma/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/karma/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/karma/node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/karma/node_modules/type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/karma/node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "license": "MIT",
+      "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/karma/node_modules/yargs": {
+      "version": "16.2.0",
+      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz",
+      "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "cliui": "^7.0.2",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.0",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^20.2.2"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/karma/node_modules/yargs-parser": {
+      "version": "20.2.9",
+      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz",
+      "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/keyv": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz",
+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "json-buffer": "3.0.1"
+      }
+    },
+    "node_modules/kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/kleur": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz",
+      "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/launch-editor": {
+      "version": "2.12.0",
+      "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.12.0.tgz",
+      "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "picocolors": "^1.1.1",
+        "shell-quote": "^1.8.3"
+      }
+    },
+    "node_modules/less": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmmirror.com/less/-/less-4.4.0.tgz",
+      "integrity": "sha512-kdTwsyRuncDfjEs0DlRILWNvxhDG/Zij4YLO4TMJgDLW+8OzpfkdPnRgrsRuY1o+oaxJGWsps5f/RVBgGmmN0w==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "copy-anything": "^2.0.1",
+        "parse-node-version": "^1.0.1",
+        "tslib": "^2.3.0"
+      },
+      "bin": {
+        "lessc": "bin/lessc"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "optionalDependencies": {
+        "errno": "^0.1.1",
+        "graceful-fs": "^4.1.2",
+        "image-size": "~0.5.0",
+        "make-dir": "^2.1.0",
+        "mime": "^1.4.1",
+        "needle": "^3.1.0",
+        "source-map": "~0.6.0"
+      }
+    },
+    "node_modules/less-loader": {
+      "version": "12.3.0",
+      "resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-12.3.0.tgz",
+      "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "@rspack/core": "0.x || 1.x",
+        "less": "^3.5.0 || ^4.0.0",
+        "webpack": "^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@rspack/core": {
+          "optional": true
+        },
+        "webpack": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/less/node_modules/make-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz",
+      "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "pify": "^4.0.1",
+        "semver": "^5.6.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/less/node_modules/mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "bin": {
+        "mime": "cli.js"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/less/node_modules/semver": {
+      "version": "5.7.2",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+      "dev": true,
+      "license": "ISC",
+      "optional": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/less/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "optional": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/levn": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "prelude-ls": "^1.2.1",
+        "type-check": "~0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/license-webpack-plugin": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz",
+      "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "webpack-sources": "^3.0.0"
+      },
+      "peerDependenciesMeta": {
+        "webpack": {
+          "optional": true
+        },
+        "webpack-sources": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/lines-and-columns": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/listr2": {
+      "version": "9.0.1",
+      "resolved": "https://registry.npmmirror.com/listr2/-/listr2-9.0.1.tgz",
+      "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "cli-truncate": "^4.0.0",
+        "colorette": "^2.0.20",
+        "eventemitter3": "^5.0.1",
+        "log-update": "^6.1.0",
+        "rfdc": "^1.4.1",
+        "wrap-ansi": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=20.0.0"
+      }
+    },
+    "node_modules/listr2/node_modules/ansi-styles": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+      "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/listr2/node_modules/eventemitter3": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz",
+      "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/listr2/node_modules/wrap-ansi": {
+      "version": "9.0.2",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+      "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "string-width": "^7.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/lmdb": {
+      "version": "3.4.2",
+      "resolved": "https://registry.npmmirror.com/lmdb/-/lmdb-3.4.2.tgz",
+      "integrity": "sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "msgpackr": "^1.11.2",
+        "node-addon-api": "^6.1.0",
+        "node-gyp-build-optional-packages": "5.2.2",
+        "ordered-binary": "^1.5.3",
+        "weak-lru-cache": "^1.2.2"
+      },
+      "bin": {
+        "download-lmdb-prebuilds": "bin/download-prebuilds.js"
+      },
+      "optionalDependencies": {
+        "@lmdb/lmdb-darwin-arm64": "3.4.2",
+        "@lmdb/lmdb-darwin-x64": "3.4.2",
+        "@lmdb/lmdb-linux-arm": "3.4.2",
+        "@lmdb/lmdb-linux-arm64": "3.4.2",
+        "@lmdb/lmdb-linux-x64": "3.4.2",
+        "@lmdb/lmdb-win32-arm64": "3.4.2",
+        "@lmdb/lmdb-win32-x64": "3.4.2"
+      }
+    },
+    "node_modules/loader-runner": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.1.tgz",
+      "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.11.5"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      }
+    },
+    "node_modules/loader-utils": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.3.1.tgz",
+      "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 12.13.0"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/log-symbols": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-6.0.0.tgz",
+      "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chalk": "^5.3.0",
+        "is-unicode-supported": "^1.3.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-symbols/node_modules/chalk": {
+      "version": "5.6.2",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-5.6.2.tgz",
+      "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^12.17.0 || ^14.13 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/log-symbols/node_modules/is-unicode-supported": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
+      "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-update": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/log-update/-/log-update-6.1.0.tgz",
+      "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-escapes": "^7.0.0",
+        "cli-cursor": "^5.0.0",
+        "slice-ansi": "^7.1.0",
+        "strip-ansi": "^7.1.0",
+        "wrap-ansi": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-update/node_modules/ansi-styles": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+      "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz",
+      "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "get-east-asian-width": "^1.3.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-update/node_modules/slice-ansi": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.2.tgz",
+      "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "is-fullwidth-code-point": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/log-update/node_modules/wrap-ansi": {
+      "version": "9.0.2",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+      "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "string-width": "^7.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/log4js": {
+      "version": "6.9.1",
+      "resolved": "https://registry.npmmirror.com/log4js/-/log4js-6.9.1.tgz",
+      "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "date-format": "^4.0.14",
+        "debug": "^4.3.4",
+        "flatted": "^3.2.7",
+        "rfdc": "^1.3.0",
+        "streamroller": "^3.1.5"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/lru-cache": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
+      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^3.0.2"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.17",
+      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
+      "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.5.0"
+      }
+    },
+    "node_modules/make-dir": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz",
+      "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "semver": "^7.5.3"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/make-fetch-happen": {
+      "version": "14.0.3",
+      "resolved": "https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz",
+      "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/agent": "^3.0.0",
+        "cacache": "^19.0.1",
+        "http-cache-semantics": "^4.1.1",
+        "minipass": "^7.0.2",
+        "minipass-fetch": "^4.0.0",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.4",
+        "negotiator": "^1.0.0",
+        "proc-log": "^5.0.0",
+        "promise-retry": "^2.0.1",
+        "ssri": "^12.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/media-typer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-1.1.0.tgz",
+      "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/memfs": {
+      "version": "4.51.1",
+      "resolved": "https://registry.npmmirror.com/memfs/-/memfs-4.51.1.tgz",
+      "integrity": "sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@jsonjoy.com/json-pack": "^1.11.0",
+        "@jsonjoy.com/util": "^1.9.0",
+        "glob-to-regex.js": "^1.0.1",
+        "thingies": "^2.5.0",
+        "tree-dump": "^1.0.3",
+        "tslib": "^2.0.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      }
+    },
+    "node_modules/merge-descriptors": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
+      "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/merge-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
+      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
+      "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "braces": "^3.0.3",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/micromatch/node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/mime": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz",
+      "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "mime": "cli.js"
+      },
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.54.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz",
+      "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-3.0.2.tgz",
+      "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "^1.54.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/mimic-function": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/mimic-function/-/mimic-function-5.0.1.tgz",
+      "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/mini-css-extract-plugin": {
+      "version": "2.9.4",
+      "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz",
+      "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "schema-utils": "^4.0.0",
+        "tapable": "^2.2.1"
+      },
+      "engines": {
+        "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.0.0"
+      }
+    },
+    "node_modules/minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/minimatch": {
+      "version": "9.0.5",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
+      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/minipass": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/minipass-collect": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-2.0.1.tgz",
+      "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^7.0.3"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/minipass-fetch": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/minipass-fetch/-/minipass-fetch-4.0.1.tgz",
+      "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minipass": "^7.0.3",
+        "minipass-sized": "^1.0.3",
+        "minizlib": "^3.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      },
+      "optionalDependencies": {
+        "encoding": "^0.1.13"
+      }
+    },
+    "node_modules/minipass-flush": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz",
+      "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/minipass-flush/node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-flush/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/minipass-pipeline": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+      "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-pipeline/node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-pipeline/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/minipass-sized": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/minipass-sized/-/minipass-sized-1.0.3.tgz",
+      "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-sized/node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-sized/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/minizlib": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-3.1.0.tgz",
+      "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minipass": "^7.1.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/mkdirp": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
+      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minimist": "^1.2.6"
+      },
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      }
+    },
+    "node_modules/mrmime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.1.tgz",
+      "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/msgpackr": {
+      "version": "1.11.8",
+      "resolved": "https://registry.npmmirror.com/msgpackr/-/msgpackr-1.11.8.tgz",
+      "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "optionalDependencies": {
+        "msgpackr-extract": "^3.0.2"
+      }
+    },
+    "node_modules/msgpackr-extract": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz",
+      "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "node-gyp-build-optional-packages": "5.2.2"
+      },
+      "bin": {
+        "download-msgpackr-prebuilds": "bin/download-prebuilds.js"
+      },
+      "optionalDependencies": {
+        "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3",
+        "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3",
+        "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3",
+        "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3",
+        "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3",
+        "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3"
+      }
+    },
+    "node_modules/multicast-dns": {
+      "version": "7.2.5",
+      "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz",
+      "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "dns-packet": "^5.2.2",
+        "thunky": "^1.0.2"
+      },
+      "bin": {
+        "multicast-dns": "cli.js"
+      }
+    },
+    "node_modules/mute-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/mute-stream/-/mute-stream-2.0.0.tgz",
+      "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.11",
+      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
+      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "license": "MIT",
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/native-run": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/native-run/-/native-run-2.0.3.tgz",
+      "integrity": "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@ionic/utils-fs": "^3.1.7",
+        "@ionic/utils-terminal": "^2.3.4",
+        "bplist-parser": "^0.3.2",
+        "debug": "^4.3.4",
+        "elementtree": "^0.1.7",
+        "ini": "^4.1.1",
+        "plist": "^3.1.0",
+        "split2": "^4.2.0",
+        "through2": "^4.0.2",
+        "tslib": "^2.6.2",
+        "yauzl": "^2.10.0"
+      },
+      "bin": {
+        "native-run": "bin/native-run"
+      },
+      "engines": {
+        "node": ">=16.0.0"
+      }
+    },
+    "node_modules/native-run/node_modules/ini": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmmirror.com/ini/-/ini-4.1.3.tgz",
+      "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
+    "node_modules/natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/needle": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz",
+      "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "iconv-lite": "^0.6.3",
+        "sax": "^1.2.4"
+      },
+      "bin": {
+        "needle": "bin/needle"
+      },
+      "engines": {
+        "node": ">= 4.4.x"
+      }
+    },
+    "node_modules/needle/node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/negotiator": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-1.0.0.tgz",
+      "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/neo-async": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
+      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/node-addon-api": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-6.1.0.tgz",
+      "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/node-forge": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.3.tgz",
+      "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==",
+      "dev": true,
+      "license": "(BSD-3-Clause OR GPL-2.0)",
+      "engines": {
+        "node": ">= 6.13.0"
+      }
+    },
+    "node_modules/node-gyp": {
+      "version": "11.5.0",
+      "resolved": "https://registry.npmmirror.com/node-gyp/-/node-gyp-11.5.0.tgz",
+      "integrity": "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "env-paths": "^2.2.0",
+        "exponential-backoff": "^3.1.1",
+        "graceful-fs": "^4.2.6",
+        "make-fetch-happen": "^14.0.3",
+        "nopt": "^8.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.3.5",
+        "tar": "^7.4.3",
+        "tinyglobby": "^0.2.12",
+        "which": "^5.0.0"
+      },
+      "bin": {
+        "node-gyp": "bin/node-gyp.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/node-gyp-build-optional-packages": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmmirror.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
+      "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "detect-libc": "^2.0.1"
+      },
+      "bin": {
+        "node-gyp-build-optional-packages": "bin.js",
+        "node-gyp-build-optional-packages-optional": "optional.js",
+        "node-gyp-build-optional-packages-test": "build-test.js"
+      }
+    },
+    "node_modules/node-gyp/node_modules/chownr": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-3.0.0.tgz",
+      "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/node-gyp/node_modules/isexe": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-3.1.1.tgz",
+      "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/node-gyp/node_modules/tar": {
+      "version": "7.5.2",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-7.5.2.tgz",
+      "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/fs-minipass": "^4.0.0",
+        "chownr": "^3.0.0",
+        "minipass": "^7.1.2",
+        "minizlib": "^3.1.0",
+        "yallist": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/node-gyp/node_modules/which": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/which/-/which-5.0.0.tgz",
+      "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^3.1.1"
+      },
+      "bin": {
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/node-gyp/node_modules/yallist": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-5.0.0.tgz",
+      "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/node-releases": {
+      "version": "2.0.27",
+      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.27.tgz",
+      "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/nopt": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/nopt/-/nopt-8.1.0.tgz",
+      "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "abbrev": "^3.0.0"
+      },
+      "bin": {
+        "nopt": "bin/nopt.js"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz",
+      "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/npm-bundled": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/npm-bundled/-/npm-bundled-4.0.0.tgz",
+      "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "npm-normalize-package-bin": "^4.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-install-checks": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/npm-install-checks/-/npm-install-checks-7.1.2.tgz",
+      "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "semver": "^7.1.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-normalize-package-bin": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
+      "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-package-arg": {
+      "version": "13.0.0",
+      "resolved": "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-13.0.0.tgz",
+      "integrity": "sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "hosted-git-info": "^9.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.3.5",
+        "validate-npm-package-name": "^6.0.0"
+      },
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/npm-packlist": {
+      "version": "10.0.3",
+      "resolved": "https://registry.npmmirror.com/npm-packlist/-/npm-packlist-10.0.3.tgz",
+      "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "ignore-walk": "^8.0.0",
+        "proc-log": "^6.0.0"
+      },
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/npm-packlist/node_modules/proc-log": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/proc-log/-/proc-log-6.1.0.tgz",
+      "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/npm-pick-manifest": {
+      "version": "10.0.0",
+      "resolved": "https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz",
+      "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "npm-install-checks": "^7.1.0",
+        "npm-normalize-package-bin": "^4.0.0",
+        "npm-package-arg": "^12.0.0",
+        "semver": "^7.3.5"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-pick-manifest/node_modules/hosted-git-info": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
+      "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "lru-cache": "^10.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-pick-manifest/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/npm-pick-manifest/node_modules/npm-package-arg": {
+      "version": "12.0.2",
+      "resolved": "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
+      "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "hosted-git-info": "^8.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.3.5",
+        "validate-npm-package-name": "^6.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-registry-fetch": {
+      "version": "18.0.2",
+      "resolved": "https://registry.npmmirror.com/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz",
+      "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/redact": "^3.0.0",
+        "jsonparse": "^1.3.1",
+        "make-fetch-happen": "^14.0.0",
+        "minipass": "^7.0.2",
+        "minipass-fetch": "^4.0.0",
+        "minizlib": "^3.0.1",
+        "npm-package-arg": "^12.0.0",
+        "proc-log": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-registry-fetch/node_modules/hosted-git-info": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
+      "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "lru-cache": "^10.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/npm-registry-fetch/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/npm-registry-fetch/node_modules/npm-package-arg": {
+      "version": "12.0.2",
+      "resolved": "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
+      "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "hosted-git-info": "^8.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.3.5",
+        "validate-npm-package-name": "^6.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/nth-check": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
+      "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "boolbase": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/nth-check?sponsor=1"
+      }
+    },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.13.4",
+      "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz",
+      "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.assign": {
+      "version": "4.1.7",
+      "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz",
+      "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.3",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0",
+        "has-symbols": "^1.1.0",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.fromentries": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.8.tgz",
+      "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/object.groupby/-/object.groupby-1.0.3.tgz",
+      "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+      "dev": true,
+      "license": "MIT",
+      "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.1",
+      "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.2.1.tgz",
+      "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.3",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz",
+      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/on-finished": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
+      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/on-headers": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.1.0.tgz",
+      "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/onetime": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/onetime/-/onetime-7.0.0.tgz",
+      "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mimic-function": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/open": {
+      "version": "10.2.0",
+      "resolved": "https://registry.npmmirror.com/open/-/open-10.2.0.tgz",
+      "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "default-browser": "^5.2.1",
+        "define-lazy-prop": "^3.0.0",
+        "is-inside-container": "^1.0.0",
+        "wsl-utils": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/optionator": {
+      "version": "0.9.4",
+      "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz",
+      "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+      "dev": true,
+      "license": "MIT",
+      "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/ora": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npmmirror.com/ora/-/ora-8.2.0.tgz",
+      "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chalk": "^5.3.0",
+        "cli-cursor": "^5.0.0",
+        "cli-spinners": "^2.9.2",
+        "is-interactive": "^2.0.0",
+        "is-unicode-supported": "^2.0.0",
+        "log-symbols": "^6.0.0",
+        "stdin-discarder": "^0.2.2",
+        "string-width": "^7.2.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/ora/node_modules/chalk": {
+      "version": "5.6.2",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-5.6.2.tgz",
+      "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^12.17.0 || ^14.13 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/ordered-binary": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmmirror.com/ordered-binary/-/ordered-binary-1.6.1.tgz",
+      "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/own-keys": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz",
+      "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "get-intrinsic": "^1.2.6",
+        "object-keys": "^1.1.1",
+        "safe-push-apply": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-map": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmmirror.com/p-map/-/p-map-7.0.4.tgz",
+      "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-retry": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-6.2.1.tgz",
+      "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/retry": "0.12.2",
+        "is-network-error": "^1.0.0",
+        "retry": "^0.13.1"
+      },
+      "engines": {
+        "node": ">=16.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-retry/node_modules/retry": {
+      "version": "0.13.1",
+      "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz",
+      "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/package-json-from-dist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+      "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0"
+    },
+    "node_modules/pacote": {
+      "version": "21.0.0",
+      "resolved": "https://registry.npmmirror.com/pacote/-/pacote-21.0.0.tgz",
+      "integrity": "sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@npmcli/git": "^6.0.0",
+        "@npmcli/installed-package-contents": "^3.0.0",
+        "@npmcli/package-json": "^6.0.0",
+        "@npmcli/promise-spawn": "^8.0.0",
+        "@npmcli/run-script": "^9.0.0",
+        "cacache": "^19.0.0",
+        "fs-minipass": "^3.0.0",
+        "minipass": "^7.0.2",
+        "npm-package-arg": "^12.0.0",
+        "npm-packlist": "^10.0.0",
+        "npm-pick-manifest": "^10.0.0",
+        "npm-registry-fetch": "^18.0.0",
+        "proc-log": "^5.0.0",
+        "promise-retry": "^2.0.1",
+        "sigstore": "^3.0.0",
+        "ssri": "^12.0.0",
+        "tar": "^6.1.11"
+      },
+      "bin": {
+        "pacote": "bin/index.js"
+      },
+      "engines": {
+        "node": "^20.17.0 || >=22.9.0"
+      }
+    },
+    "node_modules/pacote/node_modules/hosted-git-info": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-8.1.0.tgz",
+      "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "lru-cache": "^10.0.1"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/pacote/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/pacote/node_modules/npm-package-arg": {
+      "version": "12.0.2",
+      "resolved": "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-12.0.2.tgz",
+      "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "hosted-git-info": "^8.0.0",
+        "proc-log": "^5.0.0",
+        "semver": "^7.3.5",
+        "validate-npm-package-name": "^6.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "callsites": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parse-imports": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/parse-imports/-/parse-imports-2.2.1.tgz",
+      "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==",
+      "dev": true,
+      "license": "Apache-2.0 AND MIT",
+      "dependencies": {
+        "es-module-lexer": "^1.5.3",
+        "slashes": "^3.0.12"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/parse-json": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
+      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/code-frame": "^7.0.0",
+        "error-ex": "^1.3.1",
+        "json-parse-even-better-errors": "^2.3.0",
+        "lines-and-columns": "^1.1.6"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/parse-json/node_modules/json-parse-even-better-errors": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/parse-node-version": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz",
+      "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/parse5": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/parse5/-/parse5-8.0.0.tgz",
+      "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "entities": "^6.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/inikulin/parse5?sponsor=1"
+      }
+    },
+    "node_modules/parse5-html-rewriting-stream": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-8.0.0.tgz",
+      "integrity": "sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "entities": "^6.0.0",
+        "parse5": "^8.0.0",
+        "parse5-sax-parser": "^8.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/inikulin/parse5?sponsor=1"
+      }
+    },
+    "node_modules/parse5-html-rewriting-stream/node_modules/entities": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
+      "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/parse5-sax-parser": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/parse5-sax-parser/-/parse5-sax-parser-8.0.0.tgz",
+      "integrity": "sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "parse5": "^8.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/inikulin/parse5?sponsor=1"
+      }
+    },
+    "node_modules/parse5/node_modules/entities": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
+      "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/path-scurry": {
+      "version": "1.11.1",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz",
+      "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "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-scurry/node_modules/lru-cache": {
+      "version": "10.4.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+      "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/path-to-regexp": {
+      "version": "8.3.0",
+      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
+      "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/pend": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz",
+      "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/picocolors": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
+      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/picomatch": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz",
+      "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/piscina": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmmirror.com/piscina/-/piscina-5.1.3.tgz",
+      "integrity": "sha512-0u3N7H4+hbr40KjuVn2uNhOcthu/9usKhnw5vT3J7ply79v3D3M8naI00el9Klcy16x557VsEkkUQaHCWFXC/g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=20.x"
+      },
+      "optionalDependencies": {
+        "@napi-rs/nice": "^1.0.4"
+      }
+    },
+    "node_modules/pkce-challenge": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
+      "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=16.20.0"
+      }
+    },
+    "node_modules/plist": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/plist/-/plist-3.1.0.tgz",
+      "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@xmldom/xmldom": "^0.8.8",
+        "base64-js": "^1.5.1",
+        "xmlbuilder": "^15.1.1"
+      },
+      "engines": {
+        "node": ">=10.4.0"
+      }
+    },
+    "node_modules/possible-typed-array-names": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+      "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/postcss": {
+      "version": "8.5.6",
+      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
+      "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+      "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"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "nanoid": "^3.3.11",
+        "picocolors": "^1.1.1",
+        "source-map-js": "^1.2.1"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/postcss-loader": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-8.1.1.tgz",
+      "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "cosmiconfig": "^9.0.0",
+        "jiti": "^1.20.0",
+        "semver": "^7.5.4"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "@rspack/core": "0.x || 1.x",
+        "postcss": "^7.0.0 || ^8.0.1",
+        "webpack": "^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@rspack/core": {
+          "optional": true
+        },
+        "webpack": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/postcss-media-query-parser": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+      "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/postcss-modules-extract-imports": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+      "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^10 || ^12 || >= 14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/postcss-modules-local-by-default": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz",
+      "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "icss-utils": "^5.0.0",
+        "postcss-selector-parser": "^7.0.0",
+        "postcss-value-parser": "^4.1.0"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >= 14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/postcss-modules-scope": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+      "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "postcss-selector-parser": "^7.0.0"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >= 14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/postcss-modules-values": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+      "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "icss-utils": "^5.0.0"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >= 14"
+      },
+      "peerDependencies": {
+        "postcss": "^8.1.0"
+      }
+    },
+    "node_modules/postcss-selector-parser": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+      "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/prelude-ls": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/proc-log": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/proc-log/-/proc-log-5.0.0.tgz",
+      "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/promise-retry": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/promise-retry/-/promise-retry-2.0.1.tgz",
+      "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "err-code": "^2.0.2",
+        "retry": "^0.12.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/prompts": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz",
+      "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "kleur": "^3.0.3",
+        "sisteransi": "^1.0.5"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/prompts/node_modules/kleur": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz",
+      "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/proxy-addr": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
+      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "forwarded": "0.2.0",
+        "ipaddr.js": "1.9.1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/punycode": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz",
+      "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/qjobs": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/qjobs/-/qjobs-1.2.0.tgz",
+      "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.9"
+      }
+    },
+    "node_modules/qs": {
+      "version": "6.14.1",
+      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.14.1.tgz",
+      "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "side-channel": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/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"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "node_modules/range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/raw-body": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-3.0.2.tgz",
+      "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.7.0",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/readable-stream": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
+      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "inherits": "^2.0.3",
+        "string_decoder": "^1.1.1",
+        "util-deprecate": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz",
+      "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 14.18.0"
+      },
+      "funding": {
+        "type": "individual",
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/reflect-metadata": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+      "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+      "dev": true,
+      "license": "Apache-2.0"
+    },
+    "node_modules/reflect.getprototypeof": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+      "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.9",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.0.0",
+        "get-intrinsic": "^1.2.7",
+        "get-proto": "^1.0.1",
+        "which-builtin-type": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/regenerate": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz",
+      "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/regenerate-unicode-properties": {
+      "version": "10.2.2",
+      "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
+      "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "regenerate": "^1.4.2"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/regex-parser": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/regex-parser/-/regex-parser-2.3.1.tgz",
+      "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/regexp.prototype.flags": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+      "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "define-properties": "^1.2.1",
+        "es-errors": "^1.3.0",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "set-function-name": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/regexpu-core": {
+      "version": "6.4.0",
+      "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-6.4.0.tgz",
+      "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "regenerate": "^1.4.2",
+        "regenerate-unicode-properties": "^10.2.2",
+        "regjsgen": "^0.8.0",
+        "regjsparser": "^0.13.0",
+        "unicode-match-property-ecmascript": "^2.0.0",
+        "unicode-match-property-value-ecmascript": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/regjsgen": {
+      "version": "0.8.0",
+      "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.8.0.tgz",
+      "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/regjsparser": {
+      "version": "0.13.0",
+      "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.13.0.tgz",
+      "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "jsesc": "~3.1.0"
+      },
+      "bin": {
+        "regjsparser": "bin/parser"
+      }
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/require-from-string": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
+      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/resolve": {
+      "version": "1.22.10",
+      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz",
+      "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-core-module": "^2.16.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/resolve-from": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/resolve-url-loader": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
+      "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "adjust-sourcemap-loader": "^4.0.0",
+        "convert-source-map": "^1.7.0",
+        "loader-utils": "^2.0.0",
+        "postcss": "^8.2.14",
+        "source-map": "0.6.1"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/resolve-url-loader/node_modules/loader-utils": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^3.0.0",
+        "json5": "^2.1.2"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      }
+    },
+    "node_modules/resolve-url-loader/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/restore-cursor": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-5.1.0.tgz",
+      "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "onetime": "^7.0.0",
+        "signal-exit": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/retry": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz",
+      "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz",
+      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rfdc": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz",
+      "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rollup": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.52.3.tgz",
+      "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/estree": "1.0.8"
+      },
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=18.0.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "@rollup/rollup-android-arm-eabi": "4.52.3",
+        "@rollup/rollup-android-arm64": "4.52.3",
+        "@rollup/rollup-darwin-arm64": "4.52.3",
+        "@rollup/rollup-darwin-x64": "4.52.3",
+        "@rollup/rollup-freebsd-arm64": "4.52.3",
+        "@rollup/rollup-freebsd-x64": "4.52.3",
+        "@rollup/rollup-linux-arm-gnueabihf": "4.52.3",
+        "@rollup/rollup-linux-arm-musleabihf": "4.52.3",
+        "@rollup/rollup-linux-arm64-gnu": "4.52.3",
+        "@rollup/rollup-linux-arm64-musl": "4.52.3",
+        "@rollup/rollup-linux-loong64-gnu": "4.52.3",
+        "@rollup/rollup-linux-ppc64-gnu": "4.52.3",
+        "@rollup/rollup-linux-riscv64-gnu": "4.52.3",
+        "@rollup/rollup-linux-riscv64-musl": "4.52.3",
+        "@rollup/rollup-linux-s390x-gnu": "4.52.3",
+        "@rollup/rollup-linux-x64-gnu": "4.52.3",
+        "@rollup/rollup-linux-x64-musl": "4.52.3",
+        "@rollup/rollup-openharmony-arm64": "4.52.3",
+        "@rollup/rollup-win32-arm64-msvc": "4.52.3",
+        "@rollup/rollup-win32-ia32-msvc": "4.52.3",
+        "@rollup/rollup-win32-x64-gnu": "4.52.3",
+        "@rollup/rollup-win32-x64-msvc": "4.52.3",
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz",
+      "integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-darwin-x64": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz",
+      "integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz",
+      "integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-musl": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz",
+      "integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz",
+      "integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-musl": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz",
+      "integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-win32-arm64-msvc": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz",
+      "integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/rollup/node_modules/@rollup/rollup-win32-x64-msvc": {
+      "version": "4.52.3",
+      "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz",
+      "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/router": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/router/-/router-2.2.0.tgz",
+      "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.0",
+        "depd": "^2.0.0",
+        "is-promise": "^4.0.0",
+        "parseurl": "^1.3.3",
+        "path-to-regexp": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/run-applescript": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-7.1.0.tgz",
+      "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/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"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/rxjs": {
+      "version": "7.8.2",
+      "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.2.tgz",
+      "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/safe-array-concat": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+      "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.2",
+        "get-intrinsic": "^1.2.6",
+        "has-symbols": "^1.1.0",
+        "isarray": "^2.0.5"
+      },
+      "engines": {
+        "node": ">=0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "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"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/safe-push-apply": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+      "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "isarray": "^2.0.5"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safe-regex-test": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+      "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "is-regex": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/sass": {
+      "version": "1.90.0",
+      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.90.0.tgz",
+      "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "chokidar": "^4.0.0",
+        "immutable": "^5.0.2",
+        "source-map-js": ">=0.6.2 <2.0.0"
+      },
+      "bin": {
+        "sass": "sass.js"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "optionalDependencies": {
+        "@parcel/watcher": "^2.4.1"
+      }
+    },
+    "node_modules/sass-loader": {
+      "version": "16.0.5",
+      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-16.0.5.tgz",
+      "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "neo-async": "^2.6.2"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "@rspack/core": "0.x || 1.x",
+        "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
+        "sass": "^1.3.0",
+        "sass-embedded": "*",
+        "webpack": "^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@rspack/core": {
+          "optional": true
+        },
+        "node-sass": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "sass-embedded": {
+          "optional": true
+        },
+        "webpack": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/sax": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.4.tgz",
+      "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=11.0.0"
+      }
+    },
+    "node_modules/schema-utils": {
+      "version": "4.3.3",
+      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.3.tgz",
+      "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/json-schema": "^7.0.9",
+        "ajv": "^8.9.0",
+        "ajv-formats": "^2.1.1",
+        "ajv-keywords": "^5.1.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      }
+    },
+    "node_modules/schema-utils/node_modules/ajv-formats": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
+      "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependencies": {
+        "ajv": "^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "ajv": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
+      "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/selfsigned": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.4.1.tgz",
+      "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node-forge": "^1.3.0",
+        "node-forge": "^1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz",
+      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/send": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/send/-/send-1.2.1.tgz",
+      "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.4.3",
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "etag": "^1.8.1",
+        "fresh": "^2.0.0",
+        "http-errors": "^2.0.1",
+        "mime-types": "^3.0.2",
+        "ms": "^2.1.3",
+        "on-finished": "^2.4.1",
+        "range-parser": "^1.2.1",
+        "statuses": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/serialize-javascript": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "node_modules/serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz",
+      "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/serve-index/node_modules/accepts": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "~2.1.34",
+        "negotiator": "0.6.3"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/serve-index/node_modules/depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/http-errors": {
+      "version": "1.6.3",
+      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz",
+      "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.0",
+        "statuses": ">= 1.4.0 < 2"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/serve-index/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/serve-index/node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-index/node_modules/setprototypeof": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz",
+      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/serve-index/node_modules/statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/serve-static": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-2.2.1.tgz",
+      "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "encodeurl": "^2.0.0",
+        "escape-html": "^1.0.3",
+        "parseurl": "^1.3.3",
+        "send": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 18"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+      "dev": true,
+      "license": "MIT",
+      "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.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz",
+      "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+      "dev": true,
+      "license": "MIT",
+      "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/set-proto": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/set-proto/-/set-proto-1.0.0.tgz",
+      "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "dunder-proto": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/setprototypeof": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
+      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz",
+      "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "kind-of": "^6.0.2"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shell-quote": {
+      "version": "1.8.3",
+      "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.3.tgz",
+      "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz",
+      "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.3",
+        "side-channel-list": "^1.0.0",
+        "side-channel-map": "^1.0.1",
+        "side-channel-weakmap": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-list": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz",
+      "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "object-inspect": "^1.13.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-map": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz",
+      "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel-weakmap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+      "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.5",
+        "object-inspect": "^1.13.3",
+        "side-channel-map": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/signal-exit": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz",
+      "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/sigstore": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/sigstore/-/sigstore-3.1.0.tgz",
+      "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@sigstore/bundle": "^3.1.0",
+        "@sigstore/core": "^2.0.0",
+        "@sigstore/protobuf-specs": "^0.4.0",
+        "@sigstore/sign": "^3.1.0",
+        "@sigstore/tuf": "^3.1.0",
+        "@sigstore/verify": "^2.1.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/sisteransi": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz",
+      "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/slashes": {
+      "version": "3.0.12",
+      "resolved": "https://registry.npmmirror.com/slashes/-/slashes-3.0.12.tgz",
+      "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/slice-ansi": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz",
+      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^6.0.0",
+        "is-fullwidth-code-point": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/slice-ansi/node_modules/ansi-styles": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+      "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/smart-buffer": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz",
+      "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 6.0.0",
+        "npm": ">= 3.0.0"
+      }
+    },
+    "node_modules/socket.io": {
+      "version": "4.8.3",
+      "resolved": "https://registry.npmmirror.com/socket.io/-/socket.io-4.8.3.tgz",
+      "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.4",
+        "base64id": "~2.0.0",
+        "cors": "~2.8.5",
+        "debug": "~4.4.1",
+        "engine.io": "~6.6.0",
+        "socket.io-adapter": "~2.5.2",
+        "socket.io-parser": "~4.2.4"
+      },
+      "engines": {
+        "node": ">=10.2.0"
+      }
+    },
+    "node_modules/socket.io-adapter": {
+      "version": "2.5.6",
+      "resolved": "https://registry.npmmirror.com/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz",
+      "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "~4.4.1",
+        "ws": "~8.18.3"
+      }
+    },
+    "node_modules/socket.io-parser": {
+      "version": "4.2.5",
+      "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.5.tgz",
+      "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@socket.io/component-emitter": "~3.1.0",
+        "debug": "~4.4.1"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/socket.io/node_modules/accepts": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "~2.1.34",
+        "negotiator": "0.6.3"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/socket.io/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/socket.io/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/socket.io/node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/sockjs": {
+      "version": "0.3.24",
+      "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz",
+      "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "faye-websocket": "^0.11.3",
+        "uuid": "^8.3.2",
+        "websocket-driver": "^0.7.4"
+      }
+    },
+    "node_modules/socks": {
+      "version": "2.8.7",
+      "resolved": "https://registry.npmmirror.com/socks/-/socks-2.8.7.tgz",
+      "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ip-address": "^10.0.1",
+        "smart-buffer": "^4.2.0"
+      },
+      "engines": {
+        "node": ">= 10.0.0",
+        "npm": ">= 3.0.0"
+      }
+    },
+    "node_modules/socks-proxy-agent": {
+      "version": "8.0.5",
+      "resolved": "https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
+      "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "agent-base": "^7.1.2",
+        "debug": "^4.3.4",
+        "socks": "^2.8.3"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/source-map": {
+      "version": "0.7.6",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz",
+      "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">= 12"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-loader": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/source-map-loader/-/source-map-loader-5.0.0.tgz",
+      "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "iconv-lite": "^0.6.3",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.72.1"
+      }
+    },
+    "node_modules/source-map-loader/node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-support": {
+      "version": "0.5.21",
+      "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
+      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      }
+    },
+    "node_modules/source-map-support/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "license": "BSD-3-Clause",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/spdx-correct": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz",
+      "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-exceptions": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+      "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+      "dev": true,
+      "license": "CC-BY-3.0"
+    },
+    "node_modules/spdx-expression-parse": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+      "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-license-ids": {
+      "version": "3.0.22",
+      "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
+      "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
+      "dev": true,
+      "license": "CC0-1.0"
+    },
+    "node_modules/spdy": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz",
+      "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.1.0",
+        "handle-thing": "^2.0.0",
+        "http-deceiver": "^1.2.7",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/spdy-transport": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz",
+      "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^4.1.0",
+        "detect-node": "^2.0.4",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.2",
+        "readable-stream": "^3.0.6",
+        "wbuf": "^1.7.3"
+      }
+    },
+    "node_modules/split2": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz",
+      "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">= 10.x"
+      }
+    },
+    "node_modules/ssri": {
+      "version": "12.0.0",
+      "resolved": "https://registry.npmmirror.com/ssri/-/ssri-12.0.0.tgz",
+      "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^7.0.3"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/statuses": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.2.tgz",
+      "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/stdin-discarder": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmmirror.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz",
+      "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/stop-iteration-iterator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+      "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "internal-slot": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/streamroller": {
+      "version": "3.1.5",
+      "resolved": "https://registry.npmmirror.com/streamroller/-/streamroller-3.1.5.tgz",
+      "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "date-format": "^4.0.14",
+        "debug": "^4.3.4",
+        "fs-extra": "^8.1.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/string_decoder": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "~5.2.0"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz",
+      "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "emoji-regex": "^10.3.0",
+        "get-east-asian-width": "^1.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/string-width-cjs": {
+      "name": "string-width",
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "license": "MIT",
+      "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/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string-width-cjs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string-width-cjs/node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string.prototype.trim": {
+      "version": "1.2.10",
+      "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+      "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.2",
+        "define-data-property": "^1.1.4",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.5",
+        "es-object-atoms": "^1.0.0",
+        "has-property-descriptors": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimend": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+      "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.2",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimstart": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+      "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+      "dev": true,
+      "license": "MIT",
+      "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": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.2.tgz",
+      "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/strip-ansi-cjs": {
+      "name": "strip-ansi",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-bom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz",
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/synckit": {
+      "version": "0.9.3",
+      "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.9.3.tgz",
+      "integrity": "sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@pkgr/core": "^0.1.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
+    "node_modules/tapable": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.3.0.tgz",
+      "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      }
+    },
+    "node_modules/tar": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.1.tgz",
+      "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "minipass": "^5.0.0",
+        "minizlib": "^2.1.1",
+        "mkdirp": "^1.0.3",
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/tar/node_modules/fs-minipass": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/tar/node_modules/minipass": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz",
+      "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/tar/node_modules/minizlib": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz",
+      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minipass": "^3.0.0",
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/tar/node_modules/minizlib/node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/tar/node_modules/mkdirp": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
+      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/tar/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/terser": {
+      "version": "5.43.1",
+      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.43.1.tgz",
+      "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "@jridgewell/source-map": "^0.3.3",
+        "acorn": "^8.14.0",
+        "commander": "^2.20.0",
+        "source-map-support": "~0.5.20"
+      },
+      "bin": {
+        "terser": "bin/terser"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/terser-webpack-plugin": {
+      "version": "5.3.16",
+      "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz",
+      "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/trace-mapping": "^0.3.25",
+        "jest-worker": "^27.4.5",
+        "schema-utils": "^4.3.0",
+        "serialize-javascript": "^6.0.2",
+        "terser": "^5.31.1"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.1.0"
+      },
+      "peerDependenciesMeta": {
+        "@swc/core": {
+          "optional": true
+        },
+        "esbuild": {
+          "optional": true
+        },
+        "uglify-js": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/thingies": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/thingies/-/thingies-2.5.0.tgz",
+      "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.18"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "^2"
+      }
+    },
+    "node_modules/through2": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz",
+      "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "readable-stream": "3"
+      }
+    },
+    "node_modules/thunky": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
+      "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/tinyglobby": {
+      "version": "0.2.14",
+      "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.14.tgz",
+      "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fdir": "^6.4.4",
+        "picomatch": "^4.0.2"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/SuperchupuDev"
+      }
+    },
+    "node_modules/tmp": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.5.tgz",
+      "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/toidentifier": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
+      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/tree-dump": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/tree-dump/-/tree-dump-1.1.0.tgz",
+      "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=10.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/streamich"
+      },
+      "peerDependencies": {
+        "tslib": "2"
+      }
+    },
+    "node_modules/tree-kill": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz",
+      "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "tree-kill": "cli.js"
+      }
+    },
+    "node_modules/ts-api-utils": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
+      "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18.12"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4"
+      }
+    },
+    "node_modules/tsconfig-paths": {
+      "version": "3.15.0",
+      "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/json5": "^0.0.29",
+        "json5": "^1.0.2",
+        "minimist": "^1.2.6",
+        "strip-bom": "^3.0.0"
+      }
+    },
+    "node_modules/tsconfig-paths/node_modules/json5": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minimist": "^1.2.0"
+      },
+      "bin": {
+        "json5": "lib/cli.js"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.8.1",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+      "license": "0BSD"
+    },
+    "node_modules/tuf-js": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/tuf-js/-/tuf-js-3.1.0.tgz",
+      "integrity": "sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@tufjs/models": "3.0.1",
+        "debug": "^4.4.1",
+        "make-fetch-happen": "^14.0.3"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/type-check": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "prelude-ls": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/type-is": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-2.0.1.tgz",
+      "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "content-type": "^1.0.5",
+        "media-typer": "^1.1.0",
+        "mime-types": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/typed-array-buffer": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+      "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "es-errors": "^1.3.0",
+        "is-typed-array": "^1.1.14"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/typed-array-byte-length": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+      "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.8",
+        "for-each": "^0.3.3",
+        "gopd": "^1.2.0",
+        "has-proto": "^1.2.0",
+        "is-typed-array": "^1.1.14"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-byte-offset": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+      "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.8",
+        "for-each": "^0.3.3",
+        "gopd": "^1.2.0",
+        "has-proto": "^1.2.0",
+        "is-typed-array": "^1.1.15",
+        "reflect.getprototypeof": "^1.0.9"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-length": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz",
+      "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "is-typed-array": "^1.1.13",
+        "possible-typed-array-names": "^1.0.0",
+        "reflect.getprototypeof": "^1.0.6"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-assert": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmmirror.com/typed-assert/-/typed-assert-1.0.9.tgz",
+      "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/typescript": {
+      "version": "5.9.3",
+      "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz",
+      "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/ua-parser-js": {
+      "version": "0.7.41",
+      "resolved": "https://registry.npmmirror.com/ua-parser-js/-/ua-parser-js-0.7.41.tgz",
+      "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/ua-parser-js"
+        },
+        {
+          "type": "paypal",
+          "url": "https://paypal.me/faisalman"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/faisalman"
+        }
+      ],
+      "license": "MIT",
+      "bin": {
+        "ua-parser-js": "script/cli.js"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/unbox-primitive": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+      "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.3",
+        "has-bigints": "^1.0.2",
+        "has-symbols": "^1.1.0",
+        "which-boxed-primitive": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "7.16.0",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.16.0.tgz",
+      "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/unicode-canonical-property-names-ecmascript": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+      "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-match-property-ecmascript": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+      "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "unicode-canonical-property-names-ecmascript": "^2.0.0",
+        "unicode-property-aliases-ecmascript": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-match-property-value-ecmascript": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
+      "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-property-aliases-ecmascript": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
+      "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unique-filename": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-4.0.0.tgz",
+      "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "unique-slug": "^5.0.0"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/unique-slug": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/unique-slug/-/unique-slug-5.0.0.tgz",
+      "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "imurmurhash": "^0.1.4"
+      },
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/universalify": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz",
+      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 4.0.0"
+      }
+    },
+    "node_modules/unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/untildify": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz",
+      "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/update-browserslist-db": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+      "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "escalade": "^3.2.0",
+        "picocolors": "^1.1.1"
+      },
+      "bin": {
+        "update-browserslist-db": "cli.js"
+      },
+      "peerDependencies": {
+        "browserslist": ">= 4.21.0"
+      }
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/uri-js/node_modules/punycode": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
+    "node_modules/uuid": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "uuid": "dist/bin/uuid"
+      }
+    },
+    "node_modules/validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/validate-npm-package-name": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz",
+      "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^18.17.0 || >=20.5.0"
+      }
+    },
+    "node_modules/vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/vite": {
+      "version": "7.1.11",
+      "resolved": "https://registry.npmmirror.com/vite/-/vite-7.1.11.tgz",
+      "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "esbuild": "^0.25.0",
+        "fdir": "^6.5.0",
+        "picomatch": "^4.0.3",
+        "postcss": "^8.5.6",
+        "rollup": "^4.43.0",
+        "tinyglobby": "^0.2.15"
+      },
+      "bin": {
+        "vite": "bin/vite.js"
+      },
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      },
+      "funding": {
+        "url": "https://github.com/vitejs/vite?sponsor=1"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.3"
+      },
+      "peerDependencies": {
+        "@types/node": "^20.19.0 || >=22.12.0",
+        "jiti": ">=1.21.0",
+        "less": "^4.0.0",
+        "lightningcss": "^1.21.0",
+        "sass": "^1.70.0",
+        "sass-embedded": "^1.70.0",
+        "stylus": ">=0.54.8",
+        "sugarss": "^5.0.0",
+        "terser": "^5.16.0",
+        "tsx": "^4.8.1",
+        "yaml": "^2.4.2"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        },
+        "jiti": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "lightningcss": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "sass-embedded": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "terser": {
+          "optional": true
+        },
+        "tsx": {
+          "optional": true
+        },
+        "yaml": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vite/node_modules/tinyglobby": {
+      "version": "0.2.15",
+      "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz",
+      "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "fdir": "^6.5.0",
+        "picomatch": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/SuperchupuDev"
+      }
+    },
+    "node_modules/void-elements": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/void-elements/-/void-elements-2.0.1.tgz",
+      "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/watchpack": {
+      "version": "2.4.4",
+      "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz",
+      "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "glob-to-regexp": "^0.4.1",
+        "graceful-fs": "^4.1.2"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz",
+      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "node_modules/weak-lru-cache": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+      "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/webpack": {
+      "version": "5.101.2",
+      "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.101.2.tgz",
+      "integrity": "sha512-4JLXU0tD6OZNVqlwzm3HGEhAHufSiyv+skb7q0d2367VDMzrU1Q/ZeepvkcHH0rZie6uqEtTQQe0OEOOluH3Mg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/eslint-scope": "^3.7.7",
+        "@types/estree": "^1.0.8",
+        "@types/json-schema": "^7.0.15",
+        "@webassemblyjs/ast": "^1.14.1",
+        "@webassemblyjs/wasm-edit": "^1.14.1",
+        "@webassemblyjs/wasm-parser": "^1.14.1",
+        "acorn": "^8.15.0",
+        "acorn-import-phases": "^1.0.3",
+        "browserslist": "^4.24.0",
+        "chrome-trace-event": "^1.0.2",
+        "enhanced-resolve": "^5.17.3",
+        "es-module-lexer": "^1.2.1",
+        "eslint-scope": "5.1.1",
+        "events": "^3.2.0",
+        "glob-to-regexp": "^0.4.1",
+        "graceful-fs": "^4.2.11",
+        "json-parse-even-better-errors": "^2.3.1",
+        "loader-runner": "^4.2.0",
+        "mime-types": "^2.1.27",
+        "neo-async": "^2.6.2",
+        "schema-utils": "^4.3.2",
+        "tapable": "^2.1.1",
+        "terser-webpack-plugin": "^5.3.11",
+        "watchpack": "^2.4.1",
+        "webpack-sources": "^3.3.3"
+      },
+      "bin": {
+        "webpack": "bin/webpack.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependenciesMeta": {
+        "webpack-cli": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack-dev-middleware": {
+      "version": "7.4.2",
+      "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz",
+      "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "colorette": "^2.0.10",
+        "memfs": "^4.6.0",
+        "mime-types": "^2.1.31",
+        "on-finished": "^2.4.1",
+        "range-parser": "^1.2.1",
+        "schema-utils": "^4.0.0"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "webpack": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack-dev-middleware/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-middleware/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz",
+      "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/bonjour": "^3.5.13",
+        "@types/connect-history-api-fallback": "^1.5.4",
+        "@types/express": "^4.17.21",
+        "@types/express-serve-static-core": "^4.17.21",
+        "@types/serve-index": "^1.9.4",
+        "@types/serve-static": "^1.15.5",
+        "@types/sockjs": "^0.3.36",
+        "@types/ws": "^8.5.10",
+        "ansi-html-community": "^0.0.8",
+        "bonjour-service": "^1.2.1",
+        "chokidar": "^3.6.0",
+        "colorette": "^2.0.10",
+        "compression": "^1.7.4",
+        "connect-history-api-fallback": "^2.0.0",
+        "express": "^4.21.2",
+        "graceful-fs": "^4.2.6",
+        "http-proxy-middleware": "^2.0.9",
+        "ipaddr.js": "^2.1.0",
+        "launch-editor": "^2.6.1",
+        "open": "^10.0.3",
+        "p-retry": "^6.2.0",
+        "schema-utils": "^4.2.0",
+        "selfsigned": "^2.4.1",
+        "serve-index": "^1.9.1",
+        "sockjs": "^0.3.24",
+        "spdy": "^4.0.2",
+        "webpack-dev-middleware": "^7.4.2",
+        "ws": "^8.18.0"
+      },
+      "bin": {
+        "webpack-dev-server": "bin/webpack-dev-server.js"
+      },
+      "engines": {
+        "node": ">= 18.12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "webpack": {
+          "optional": true
+        },
+        "webpack-cli": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/accepts": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-types": "~2.1.34",
+        "negotiator": "0.6.3"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/body-parser": {
+      "version": "1.20.4",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.4.tgz",
+      "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "content-type": "~1.0.5",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "~1.2.0",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.4.24",
+        "on-finished": "~2.4.1",
+        "qs": "~6.14.0",
+        "raw-body": "~2.5.3",
+        "type-is": "~1.6.18",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8",
+        "npm": "1.2.8000 || >= 1.4.16"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dev": true,
+      "license": "MIT",
+      "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/webpack-dev-server/node_modules/content-disposition": {
+      "version": "0.5.4",
+      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
+      "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "5.2.1"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/cookie-signature": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.7.tgz",
+      "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/webpack-dev-server/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/debug/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/webpack-dev-server/node_modules/express": {
+      "version": "4.22.1",
+      "resolved": "https://registry.npmmirror.com/express/-/express-4.22.1.tgz",
+      "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "accepts": "~1.3.8",
+        "array-flatten": "1.1.1",
+        "body-parser": "~1.20.3",
+        "content-disposition": "~0.5.4",
+        "content-type": "~1.0.4",
+        "cookie": "~0.7.1",
+        "cookie-signature": "~1.0.6",
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.3.1",
+        "fresh": "~0.5.2",
+        "http-errors": "~2.0.0",
+        "merge-descriptors": "1.0.3",
+        "methods": "~1.1.2",
+        "on-finished": "~2.4.1",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "~0.1.12",
+        "proxy-addr": "~2.0.7",
+        "qs": "~6.14.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.2.1",
+        "send": "~0.19.0",
+        "serve-static": "~1.16.2",
+        "setprototypeof": "1.2.0",
+        "statuses": "~2.0.1",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/express"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/finalhandler": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.2.tgz",
+      "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "2.6.9",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.4.1",
+        "parseurl": "~1.3.3",
+        "statuses": "~2.0.2",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": {
+      "version": "2.0.9",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz",
+      "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/http-proxy": "^1.17.8",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.1",
+        "is-plain-obj": "^3.0.0",
+        "micromatch": "^4.0.2"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "@types/express": "^4.17.13"
+      },
+      "peerDependenciesMeta": {
+        "@types/express": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/ipaddr.js": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.3.0.tgz",
+      "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/merge-descriptors": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+      "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "mime": "cli.js"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/path-to-regexp": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/webpack-dev-server/node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/raw-body": {
+      "version": "2.5.3",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.3.tgz",
+      "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "bytes": "~3.1.2",
+        "http-errors": "~2.0.1",
+        "iconv-lite": "~0.4.24",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/send": {
+      "version": "0.19.2",
+      "resolved": "https://registry.npmmirror.com/send/-/send-0.19.2.tgz",
+      "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "1.2.0",
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "~0.5.2",
+        "http-errors": "~2.0.1",
+        "mime": "1.6.0",
+        "ms": "2.1.3",
+        "on-finished": "~2.4.1",
+        "range-parser": "~1.2.1",
+        "statuses": "~2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/serve-static": {
+      "version": "1.16.3",
+      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.3.tgz",
+      "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "encodeurl": "~2.0.0",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "~0.19.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/webpack-dev-server/node_modules/type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack-merge": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-6.0.1.tgz",
+      "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "clone-deep": "^4.0.1",
+        "flat": "^5.0.2",
+        "wildcard": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/webpack-sources": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.3.3.tgz",
+      "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/webpack-subresource-integrity": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz",
+      "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "typed-assert": "^1.0.8"
+      },
+      "engines": {
+        "node": ">= 12"
+      },
+      "peerDependencies": {
+        "html-webpack-plugin": ">= 5.0.0-beta.1 < 6",
+        "webpack": "^5.12.0"
+      },
+      "peerDependenciesMeta": {
+        "html-webpack-plugin": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack/node_modules/eslint-scope": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^4.1.1"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/webpack/node_modules/estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/webpack/node_modules/json-parse-even-better-errors": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/webpack/node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/webpack/node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/websocket-driver": {
+      "version": "0.7.4",
+      "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
+      "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "dependencies": {
+        "http-parser-js": ">=0.5.1",
+        "safe-buffer": ">=5.1.0",
+        "websocket-extensions": ">=0.1.1"
+      },
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/websocket-extensions": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+      "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/which-boxed-primitive": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+      "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-bigint": "^1.1.0",
+        "is-boolean-object": "^1.2.1",
+        "is-number-object": "^1.1.1",
+        "is-string": "^1.1.1",
+        "is-symbol": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-builtin-type": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+      "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "call-bound": "^1.0.2",
+        "function.prototype.name": "^1.1.6",
+        "has-tostringtag": "^1.0.2",
+        "is-async-function": "^2.0.0",
+        "is-date-object": "^1.1.0",
+        "is-finalizationregistry": "^1.1.0",
+        "is-generator-function": "^1.0.10",
+        "is-regex": "^1.2.1",
+        "is-weakref": "^1.0.2",
+        "isarray": "^2.0.5",
+        "which-boxed-primitive": "^1.1.0",
+        "which-collection": "^1.0.2",
+        "which-typed-array": "^1.1.16"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-collection": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz",
+      "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+      "dev": true,
+      "license": "MIT",
+      "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.19",
+      "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.19.tgz",
+      "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.8",
+        "call-bound": "^1.0.4",
+        "for-each": "^0.3.5",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/wildcard": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz",
+      "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/word-wrap": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz",
+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi-cjs": {
+      "name": "wrap-ansi",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "license": "MIT",
+      "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/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "license": "MIT",
+      "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-cjs/node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true,
+      "license": "MIT"
+    },
+    "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "license": "MIT",
+      "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/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/ws": {
+      "version": "8.18.3",
+      "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.3.tgz",
+      "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/wsl-utils": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmmirror.com/wsl-utils/-/wsl-utils-0.1.0.tgz",
+      "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-wsl": "^3.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/xml2js": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.6.2.tgz",
+      "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "sax": ">=0.6.0",
+        "xmlbuilder": "~11.0.0"
+      },
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
+    "node_modules/xml2js/node_modules/xmlbuilder": {
+      "version": "11.0.1",
+      "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/xmlbuilder": {
+      "version": "15.1.1",
+      "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+      "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
+      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+      "dev": true,
+      "license": "ISC"
+    },
+    "node_modules/yargs": {
+      "version": "18.0.0",
+      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-18.0.0.tgz",
+      "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "cliui": "^9.0.1",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "string-width": "^7.2.0",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^22.0.0"
+      },
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=23"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "22.0.0",
+      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-22.0.0.tgz",
+      "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": "^20.19.0 || ^22.12.0 || >=23"
+      }
+    },
+    "node_modules/yauzl": {
+      "version": "2.10.0",
+      "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz",
+      "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "buffer-crc32": "~0.2.3",
+        "fd-slicer": "~1.1.0"
+      }
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/yoctocolors-cjs": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
+      "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/zod": {
+      "version": "4.1.13",
+      "resolved": "https://registry.npmmirror.com/zod/-/zod-4.1.13.tgz",
+      "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/colinhacks"
+      }
+    },
+    "node_modules/zod-to-json-schema": {
+      "version": "3.25.1",
+      "resolved": "https://registry.npmmirror.com/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz",
+      "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==",
+      "dev": true,
+      "license": "ISC",
+      "peerDependencies": {
+        "zod": "^3.25 || ^4"
+      }
+    },
+    "node_modules/zone.js": {
+      "version": "0.15.1",
+      "resolved": "https://registry.npmmirror.com/zone.js/-/zone.js-0.15.1.tgz",
+      "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==",
+      "license": "MIT"
+    }
+  }
+}

+ 64 - 0
word-app/package.json

@@ -0,0 +1,64 @@
+{
+  "name": "word-app",
+  "version": "0.0.1",
+  "author": "Ionic Framework",
+  "homepage": "https://ionicframework.com/",
+  "scripts": {
+    "ng": "ng",
+    "start": "ng serve",
+    "build": "ng build",
+    "watch": "ng build --watch --configuration development",
+    "test": "ng test",
+    "lint": "ng lint"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/animations": "^20.0.0",
+    "@angular/common": "^20.0.0",
+    "@angular/compiler": "^20.0.0",
+    "@angular/core": "^20.0.0",
+    "@angular/forms": "^20.0.0",
+    "@angular/platform-browser": "^20.0.0",
+    "@angular/platform-browser-dynamic": "^20.0.0",
+    "@angular/router": "^20.0.0",
+    "@capacitor/app": "8.0.0",
+    "@capacitor/core": "8.0.1",
+    "@capacitor/haptics": "8.0.0",
+    "@capacitor/keyboard": "8.0.0",
+    "@capacitor/status-bar": "8.0.0",
+    "@ionic/angular": "^8.0.0",
+    "ionicons": "^7.0.0",
+    "rxjs": "~7.8.0",
+    "tslib": "^2.3.0",
+    "zone.js": "~0.15.0"
+  },
+  "devDependencies": {
+    "@angular-devkit/build-angular": "^20.0.0",
+    "@angular-eslint/builder": "^20.0.0",
+    "@angular-eslint/eslint-plugin": "^20.0.0",
+    "@angular-eslint/eslint-plugin-template": "^20.0.0",
+    "@angular-eslint/schematics": "^20.0.0",
+    "@angular-eslint/template-parser": "^20.0.0",
+    "@angular/cli": "^20.0.0",
+    "@angular/compiler-cli": "^20.0.0",
+    "@angular/language-service": "^20.0.0",
+    "@capacitor/cli": "8.0.1",
+    "@ionic/angular-toolkit": "^12.0.0",
+    "@types/jasmine": "~5.1.0",
+    "@typescript-eslint/eslint-plugin": "^8.18.0",
+    "@typescript-eslint/parser": "^8.18.0",
+    "eslint": "^9.16.0",
+    "eslint-plugin-import": "^2.29.1",
+    "eslint-plugin-jsdoc": "^48.2.1",
+    "eslint-plugin-prefer-arrow": "1.2.2",
+    "jasmine-core": "~5.1.0",
+    "jasmine-spec-reporter": "~5.0.0",
+    "karma": "~6.4.0",
+    "karma-chrome-launcher": "~3.2.0",
+    "karma-coverage": "~2.2.0",
+    "karma-jasmine": "~5.1.0",
+    "karma-jasmine-html-reporter": "~2.1.0",
+    "typescript": "~5.9.0"
+  },
+  "description": "An Ionic project"
+}

+ 3 - 0
word-app/src/app/app.component.html

@@ -0,0 +1,3 @@
+<ion-app>
+  <ion-router-outlet></ion-router-outlet>
+</ion-app>

+ 0 - 0
word-app/src/app/app.component.scss


+ 16 - 0
word-app/src/app/app.component.spec.ts

@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+import { provideRouter } from '@angular/router';
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+  it('should create the app', async () => {
+    await TestBed.configureTestingModule({
+      imports: [AppComponent],
+      providers: [provideRouter([])]
+    }).compileComponents();
+    
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.componentInstance;
+    expect(app).toBeTruthy();
+  });
+});

+ 11 - 0
word-app/src/app/app.component.ts

@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
+
+@Component({
+  selector: 'app-root',
+  templateUrl: 'app.component.html',
+  imports: [IonApp, IonRouterOutlet],
+})
+export class AppComponent {
+  constructor() {}
+}

+ 13 - 0
word-app/src/app/app.routes.ts

@@ -0,0 +1,13 @@
+import { Routes } from '@angular/router';
+
+export const routes: Routes = [
+  {
+    path: '',
+    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
+  },
+  {
+    path: 'recite-words',
+    loadComponent: () => import('./recite-words/recite-words.page').then( m => m.ReciteWordsPage)
+  },
+
+];

+ 12 - 0
word-app/src/app/explore-container/explore-container.component.html

@@ -0,0 +1,12 @@
+<div id="container">
+  <strong>{{ name }}</strong>
+  <p>
+    Explore
+    <a
+      target="_blank"
+      rel="noopener noreferrer"
+      href="https://ionicframework.com/docs/components"
+      >UI Components</a
+    >
+  </p>
+</div>

+ 27 - 0
word-app/src/app/explore-container/explore-container.component.scss

@@ -0,0 +1,27 @@
+#container {
+  text-align: center;
+
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 50%;
+  transform: translateY(-50%);
+}
+
+#container strong {
+  font-size: 20px;
+  line-height: 26px;
+}
+
+#container p {
+  font-size: 16px;
+  line-height: 22px;
+
+  color: #8c8c8c;
+
+  margin: 0;
+}
+
+#container a {
+  text-decoration: none;
+}

+ 18 - 0
word-app/src/app/explore-container/explore-container.component.spec.ts

@@ -0,0 +1,18 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ExploreContainerComponent } from './explore-container.component';
+
+describe('ExploreContainerComponent', () => {
+  let component: ExploreContainerComponent;
+  let fixture: ComponentFixture<ExploreContainerComponent>;
+
+  beforeEach(async () => {
+    fixture = TestBed.createComponent(ExploreContainerComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 10 - 0
word-app/src/app/explore-container/explore-container.component.ts

@@ -0,0 +1,10 @@
+import { Component, Input } from '@angular/core';
+
+@Component({
+  selector: 'app-explore-container',
+  templateUrl: './explore-container.component.html',
+  styleUrls: ['./explore-container.component.scss'],
+})
+export class ExploreContainerComponent {
+  @Input() name?: string;
+}

+ 8 - 0
word-app/src/app/pronunciation-button/pronunciation-button.component.html

@@ -0,0 +1,8 @@
+<!-- 发音切换按钮 - 圆形,包含文字和喇叭 -->
+<button 
+  class="pronunciation-toggle-btn"
+  (click)="togglePronunciation()"
+  [attr.aria-label]="isAmericanPronunciation ? '切换到英式发音' : '切换到美式发音'">
+  <span class="pronunciation-label">{{ isAmericanPronunciation ? '美' : '英' }}</span>
+  <ion-icon name="volume-medium-outline" class="speaker-icon"></ion-icon>
+</button>

+ 48 - 0
word-app/src/app/pronunciation-button/pronunciation-button.component.scss

@@ -0,0 +1,48 @@
+/* 发音切换按钮 - 缩小尺寸 */
+.pronunciation-toggle-btn {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  gap: 3px;
+  width: 44px;
+  height: 24px;
+  border: 1px solid #000;
+  border-radius: 12px;
+  background: transparent;
+  cursor: pointer;
+  padding: 0 6px;
+  transition: all 0.2s ease;
+  box-sizing: border-box;
+  
+  /* 按钮内部文字 - 缩小字号 */
+  .pronunciation-label {
+    font-size: 0.75rem;
+    color: #000;
+    font-weight: 500;
+    line-height: 1;
+  }
+  
+  /* 喇叭图标 - 缩小尺寸 */
+  .speaker-icon {
+    font-size: 1rem;
+    color: #000;
+    margin: 0;
+    line-height: 1;
+  }
+  
+  /* 悬停效果 */
+  &:hover {
+    background: rgba(0, 0, 0, 0.05);
+  }
+  
+  /* 按下效果 */
+  &:active {
+    background: rgba(0, 0, 0, 0.1);
+  }
+  
+  /* 禁用状态 */
+  &:disabled {
+    opacity: 0.5;
+    cursor: not-allowed;
+  }
+}

+ 22 - 0
word-app/src/app/pronunciation-button/pronunciation-button.component.spec.ts

@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { PronunciationButtonComponent } from './pronunciation-button.component';
+
+describe('PronunciationButtonComponent', () => {
+  let component: PronunciationButtonComponent;
+  let fixture: ComponentFixture<PronunciationButtonComponent>;
+
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      imports: [PronunciationButtonComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(PronunciationButtonComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  }));
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 197 - 0
word-app/src/app/pronunciation-button/pronunciation-button.component.ts

@@ -0,0 +1,197 @@
+import { Component, Input, Output, EventEmitter, OnDestroy, OnInit, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { IonIcon } from '@ionic/angular/standalone';
+import { addIcons } from 'ionicons';
+import { volumeMediumOutline } from 'ionicons/icons';
+
+/**
+ * 发音按钮组件
+ * 用于切换和播放美式/英式发音
+ */
+@Component({
+  selector: 'app-pronunciation-button',
+  templateUrl: './pronunciation-button.component.html',
+  styleUrls: ['./pronunciation-button.component.scss'],
+  standalone: true,
+  imports: [CommonModule,  IonIcon]
+})
+export class PronunciationButtonComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
+  @Input() word: string = ''; // 要发音的单词
+  @Input() isAmericanPronunciation: boolean = true; // 当前发音类型
+  @Input() autoPlay: boolean = true; // 是否自动播放
+  @Input() autoPlayDelay: number = 300; // 自动播放延迟(毫秒)
+  @Output() pronunciationToggled = new EventEmitter<boolean>(); // 发音类型切换事件
+  
+  private audioElement: HTMLAudioElement | null = null; // 音频元素
+  private hasPlayedInitialAudio: boolean = false; // 是否已经播放过初始音频
+  private componentInitialized: boolean = false; // 组件是否已初始化
+  private lastPlayTime: number = 0; // 上次播放时间
+
+  constructor() {
+    addIcons({ volumeMediumOutline });
+  }
+
+  ngOnInit(): void {
+    // 组件初始化
+    this.hasPlayedInitialAudio = false;
+    this.componentInitialized = true;
+  }
+
+  ngAfterViewInit(): void {
+    // 组件视图初始化后,如果是第一次显示且启用了自动播放,播放发音
+    if (this.autoPlay && this.word && !this.hasPlayedInitialAudio) {
+      setTimeout(() => {
+        this.playPronunciation();
+        this.hasPlayedInitialAudio = true;
+      }, this.autoPlayDelay);
+    }
+  }
+
+  ngOnChanges(changes: SimpleChanges): void {
+    // 当单词变化时,重置播放状态并重新播放
+    if (changes['word'] && changes['word'].currentValue) {
+      const previousWord = changes['word'].previousValue;
+      const currentWord = changes['word'].currentValue;
+      
+      if (previousWord !== currentWord) {
+        console.log(`单词变化: ${previousWord} -> ${currentWord}`);
+        this.hasPlayedInitialAudio = false;
+        
+        // 停止当前音频
+        this.stopAudio();
+        
+        // 如果启用了自动播放,播放新单词的发音
+        if (this.autoPlay && currentWord) {
+          setTimeout(() => {
+            this.playPronunciation();
+            this.hasPlayedInitialAudio = true;
+          }, this.autoPlayDelay);
+        }
+      }
+    }
+    
+    // 当 autoPlay 从 false 变为 true 时,重新播放
+    if (changes['autoPlay'] && changes['autoPlay'].currentValue === true) {
+      // 如果之前因为 autoPlay 为 false 而没有播放,现在播放
+      if (!this.hasPlayedInitialAudio && this.word) {
+        setTimeout(() => {
+          this.playPronunciation();
+          this.hasPlayedInitialAudio = true;
+        }, this.autoPlayDelay);
+      }
+    }
+  }
+
+  ngOnDestroy(): void {
+    this.stopAudio();
+  }
+
+  /**
+   * 手动触发重新播放(可以从父组件调用)
+   */
+  replayAudio(): void {
+    console.log('手动触发重新播放');
+    this.stopAudio();
+    if (this.word) {
+      setTimeout(() => {
+        this.playPronunciation();
+      }, 100);
+    }
+  }
+
+  /**
+   * 切换发音类型
+   */
+  togglePronunciation(): void {
+    this.stopAudio();
+    this.isAmericanPronunciation = !this.isAmericanPronunciation;
+    this.pronunciationToggled.emit(this.isAmericanPronunciation);
+    
+    // 立即播放切换后的发音
+    setTimeout(() => {
+      this.playPronunciation();
+    }, 100);
+  }
+
+  /**
+   * 播放单词发音
+   * @param specificWord 可选参数,指定要播放的单词,如果不传则使用组件的word
+   */
+  public playPronunciation(specificWord?: string): void {
+    // 确定要播放的单词
+    const wordToPlay = specificWord || this.word;
+    
+    if (!wordToPlay) {
+      console.error('没有单词可以播放发音');
+      return;
+    }
+    
+    // 防止频繁播放
+    const now = Date.now();
+    
+    this.stopAudio();
+    
+    const audioUrl = this.getAudioUrl(wordToPlay);
+    
+    if (!audioUrl) {
+      console.error('无法生成音频URL');
+      return;
+    }
+    
+    this.audioElement = new Audio(audioUrl);
+    
+    this.audioElement.addEventListener('error', (error) => {
+      console.error('播放发音失败:', error);
+      this.audioElement = null;
+    });
+    
+    this.audioElement.addEventListener('ended', () => {
+      console.log('发音播放完成');
+      this.audioElement = null;
+    });
+    
+    this.audioElement.play().catch(error => {
+      console.error('播放失败:', error);
+      this.audioElement = null;
+    });
+    
+    this.lastPlayTime = now;
+  }
+
+
+  /**
+   * 获取有道词典音频URL
+   * 美音:http://dict.youdao.com/dictvoice?type=0&audio=word
+   * 英音:http://dict.youdao.com/dictvoice?type=1&audio=word
+   */
+
+private getAudioUrl(word?: string): string {
+  // 如果没有传入单词,使用组件绑定的单词
+  const wordToPlay = word || this.word;
+  
+  if (!wordToPlay) {
+    console.error('没有指定要发音的单词');
+    return '';
+  }
+  
+  const baseUrl = 'http://dict.youdao.com/dictvoice';
+  const type = this.isAmericanPronunciation ? 0 : 1;
+  const encodedWord = encodeURIComponent(wordToPlay);
+  
+  return `${baseUrl}?type=${type}&audio=${encodedWord}`;
+}
+
+
+  /**
+   * 停止播放音频
+   */
+  private stopAudio(): void {
+    if (this.audioElement) {
+      this.audioElement.pause();
+      this.audioElement.currentTime = 0;
+      this.audioElement = null;
+    }
+  }
+
+  
+}

+ 277 - 0
word-app/src/app/recite-words/recite-words.page.html

@@ -0,0 +1,277 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-buttons slot="start">
+      <ion-button (click)="goBack()">
+        <ion-icon name="chevron-back-outline"></ion-icon>
+      </ion-button>
+    </ion-buttons>
+    
+    <!-- 动态标题 -->
+    <ion-title>{{ getPageTitle() }}</ion-title>
+    
+    <!-- 进度显示 -->
+    <ion-buttons slot="end">
+      <ion-button fill="clear" size="small">
+        <span class="progress-text">{{ getProgressText() }}</span>
+      </ion-button>
+    </ion-buttons>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true" class="ion-padding" #ionContent>
+  <!-- 显示加载状态 -->
+  <div class="loading-container" *ngIf="isLoading">
+    <ion-spinner name="crescent"></ion-spinner>
+    <p>加载单词中...</p>
+  </div>
+
+  <!-- 显示单词内容 -->
+  <div class="word-container" *ngIf="currentWord && !isLoading && !showGroupCompleted">
+    <!-- 英语单词 - 根据学习次数动态显示 -->
+    <div class="word-header">
+      <!-- 根据studyCount显示不同内容 -->
+      <ng-container [ngSwitch]="currentWord.studyCount">
+        <!-- 模式0和模式2:显示完整单词 -->
+        <h1 *ngSwitchCase="0" class="word-text">{{ currentWord.word }}</h1>
+        <h1 *ngSwitchCase="2" class="word-text">{{ currentWord.word }}</h1>
+        
+        <!-- 模式1:隐藏单词,显示空白 -->
+        <div *ngSwitchCase="1" class="hidden-word-container">
+          <!-- 不显示问号,而是显示空白 -->
+          <div *ngIf="!isAnswered" class="blank-word"></div>
+          <h1 *ngIf="isAnswered" class="word-text">{{ currentWord.word }}</h1>
+        </div>
+        
+        <!-- 默认情况 -->
+        <h1 *ngSwitchDefault class="word-text">{{ currentWord.word }}</h1>
+      </ng-container>
+      
+      <!-- 按照图片布局:圆形按钮在前,音标在后 -->
+      <div class="phonetic-section">
+        <!-- 使用自定义发音按钮组件 -->
+        <app-pronunciation-button
+          [word]="currentWord.word"
+          [isAmericanPronunciation]="isAmericanPronunciation"
+          [autoPlay]="getAutoPlay()"
+          (pronunciationToggled)="onPronunciationToggled($event)">
+        </app-pronunciation-button>
+        
+        <!-- 音标显示 -->
+        <!-- 模式0和2:显示音标 -->
+        <div *ngIf="currentWord.studyCount !== 1" class="phonetic-text">
+          {{ isAmericanPronunciation ? currentWord.phonetic : currentWord.phoneticUk || currentWord.phonetic }}
+        </div>
+        
+        <!-- 模式1:总是显示音标,即使单词隐藏 -->
+        <div *ngIf="currentWord.studyCount === 1" class="phonetic-text">
+          {{ isAmericanPronunciation ? currentWord.phonetic : currentWord.phoneticUk || currentWord.phonetic }}
+        </div>
+      </div>
+    </div>
+
+    <!-- 根据状态显示不同内容 -->
+    <ng-container *ngIf="!showWordDetail; else detailSection">
+      <!-- 正常背单词模式:显示提示词和选项 -->
+      <div class="recite-mode">
+        <!-- 提示文字 - 根据studyCount动态显示 -->
+        <div class="hint-text">{{ getHintText() }}</div>
+
+        <!-- 选项区域 - 模式2不显示选项 -->
+        <div class="options-container" *ngIf="currentWord.studyCount < 2 ">
+          <ion-button 
+            *ngFor="let option of getCurrentOptions(); let i = index"
+            expand="block" 
+            fill="outline"
+            [color]="getOptionColor(option)"
+            [disabled]="(isAnswered && option.isCorrect) || (isCorrect && !option.isCorrect)"
+            (click)="selectOption(option)"
+            (click)="playOptionSound(option)" 
+            [class.answered]="isAnswered || isCorrectAnswerShown"
+            [class.correct]="option.isCorrect && (isAnswered || isCorrectAnswerShown)"
+            [class.wrong]="selectedOption === option && !option.isCorrect && (isAnswered || isCorrectAnswerShown)"
+            class="option-button">
+            <div class="option-content">
+              <!-- 未回答时的显示 -->
+              <div *ngIf="!(isAnswered || isCorrectAnswerShown)" class="option-normal">
+                <div class="option-type">{{ getOptionType(option) }}</div>
+                <div class="option-text">{{ getOptionDisplayText(option) }}</div>
+              </div>
+              
+              <!-- 已回答时的显示 -->
+              <div *ngIf="isAnswered || isCorrectAnswerShown" class="option-answered">
+                <!-- 正确答案的显示 -->
+                <div *ngIf="option.isCorrect" class="option-correct">
+                  <div class="english-word">{{ getOptionEnglish(option) }}</div>
+                  <div class="definition-line">
+                    <span class="option-type">{{ getOptionType(option) }}</span>
+                    <span class="option-text">{{ getOptionDisplayText(option) }}</span>
+                  </div>
+                </div>
+                
+                <!-- 错误答案的显示(如果是用户选择的错误答案) -->
+                <div *ngIf="selectedOption === option && !option.isCorrect" class="option-wrong">
+                  <div class="english-word">{{ getOptionEnglish(option) }}</div>
+                  <div class="definition-line">
+                    <span class="option-type">{{ getOptionType(option) }}</span>
+                    <span class="option-text">{{ getOptionDisplayText(option) }}</span>
+                  </div>
+                </div>
+                
+                <!-- 其他错误选项(未被选择的错误选项) -->
+                <div *ngIf="!option.isCorrect && selectedOption !== option" class="option-other-wrong">
+                  <div class="english-word">{{ getOptionEnglish(option) }}</div>
+                  <div class="definition-line">
+                    <span class="option-type">{{ getOptionType(option) }}</span>
+                    <span class="option-text">{{ getOptionDisplayText(option) }}</span>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </ion-button>
+        </div>
+      </div>
+    </ng-container>
+
+    <!-- 单词详情模式模板 -->
+    <ng-template #detailSection>
+      <div class="detail-mode">
+        <!-- 单词详情组件 -->
+        <app-word-detail 
+          [allDefinitions]="currentWord.allDefinitions">
+        </app-word-detail>
+      </div>
+    </ng-template>
+
+    <!-- 统一的按钮区域 -->
+<div class="button-container">
+  <!-- 模式0和模式1的按钮 -->
+  <ng-container *ngIf="currentWord.studyCount == 0 || currentWord.studyCount == 1 ">
+    <!-- 看答案按钮(未回答时显示) -->
+    <ion-button 
+      *ngIf="!isAnswered || (isCorrect && !showWordDetail)"
+      expand="block" 
+      fill="clear"
+      color="medium"
+      (click)="showAnswer()"
+      class="action-button">
+      看答案
+    </ion-button>
+
+ 
+    <!-- 继续按钮(回答错误或点击看答案后显示) -->
+    <ion-button 
+      *ngIf="showContinueButton && !showWordDetail"
+      expand="block" 
+      fill="clear"
+      color="medium"
+      (click)="continueToNext()"
+      class="action-button">
+      继续
+    </ion-button>
+
+    <!-- 下一个单词按钮(显示单词详情后显示) -->
+    <ion-button 
+      *ngIf="showWordDetail"
+      expand="block" 
+      fill="clear"
+      color="medium"
+      (click)="goToNextStudy()"
+      class="action-button">
+      下一个
+    </ion-button>
+  </ng-container>
+  
+<!-- 模式2的按钮(认识/不认识) -->
+<ng-container *ngIf="currentWord.studyCount === 2">
+  <div class="recognition-buttons" *ngIf="!isAnswered">
+    <ion-button 
+      expand="block" 
+      fill="clear"
+      (click)="recognizeWord(true)"
+      class="action-button know-button">
+      认识
+    </ion-button>
+    
+    <ion-button 
+      expand="block" 
+      fill="clear"
+      (click)="recognizeWord(false)"
+      class="action-button dont-know-button">
+      不认识
+    </ion-button>
+  </div>
+   <!-- 下一个单词按钮(显示单词详情后显示) -->
+  <ion-button 
+    *ngIf="showWordDetail"
+    expand="block" 
+    fill="clear"
+    color="medium"
+    (click)="goToNextStudy()"
+    class="action-button">
+    下一个
+  </ion-button>
+</ng-container>
+</div>
+  </div>
+
+  <!-- 单词组完成页面 -->
+  <div class="group-completed-container" *ngIf="showGroupCompleted && !isLoading">
+    <div class="completion-card">
+      <div class="completion-icon">
+        <ion-icon name="trophy-outline" color="success"></ion-icon>
+      </div>
+      <h2 class="completion-title">太棒了!</h2>
+      <p class="completion-subtitle">本组单词已学习完成</p>
+      
+      <div class="completion-stats">
+        <div class="stat-item">
+          <div class="stat-value">{{ completedWordsCount }}</div>
+          <div class="stat-label">学习单词</div>
+        </div>
+        <div class="stat-item">
+          <div class="stat-value">{{ studyTime }}</div>
+          <div class="stat-label">学习时间</div>
+        </div>
+        <div class="stat-item">
+          <div class="stat-value">{{ masteryRate }}%</div>
+          <div class="stat-label">掌握率</div>
+        </div>
+      </div>
+      
+      <div class="completion-actions">
+        <ion-button 
+          expand="block" 
+          fill="solid" 
+          color="light"
+          (click)="goToHome()"
+          class="action-button">
+          休息一下
+        </ion-button>
+        
+        <ion-button 
+          expand="block" 
+          fill="solid" 
+          color="primary"
+          (click)="continuePractice()"
+          class="action-button">
+          趁热打铁
+        </ion-button>
+        
+        <ion-button 
+          expand="block" 
+          fill="solid" 
+          color="secondary"
+          (click)="startNextGroup()"
+          class="action-button">
+          再学一组
+        </ion-button>
+      </div>
+    </div>
+  </div>
+
+  <!-- 如果没有单词数据 -->
+  <div class="no-data-container" *ngIf="!currentWord && !isLoading && !showGroupCompleted">
+    <p>没有找到单词数据</p>
+    <p>请检查 assets/words.txt 文件是否存在且格式正确</p>
+  </div>
+</ion-content>

+ 507 - 0
word-app/src/app/recite-words/recite-words.page.scss

@@ -0,0 +1,507 @@
+.word-container {
+  display: flex;
+  flex-direction: column;
+  min-height: 100%;
+  padding: 16px;
+}
+
+.word-header {
+  text-align: center;
+  margin-bottom: 32px;
+}
+
+.word-text {
+  font-size: 2.5rem;
+  font-weight: bold;
+  margin-bottom: 8px;
+  color: #000;
+}
+
+/* 语音部分样式 - 按钮在前,音标在后 */
+.phonetic-section {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  gap: 8px;
+  margin-top: 8px;
+  height: 24px;
+}
+
+/* 音标样式 - 在按钮后面,与按钮同高 */
+.phonetic-text {
+  font-size: 1.2rem;
+  color: #000;
+  font-weight: 500;
+  letter-spacing: 0.5px;
+  line-height: 24px;
+  height: 24px;
+  display: flex;
+  align-items: center;
+}
+
+/* 背诵模式样式 */
+.recite-mode {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+
+.hint-text {
+  text-align: center;
+  color: #666;
+  margin-bottom: 32px;
+  font-size: 0.9rem;
+}
+
+.options-container {
+  display: flex;
+  flex-direction: column;
+  gap: 16px;
+  margin-bottom: 24px;
+  flex: 1;
+}
+
+.option-button {
+  --border-radius: 12px;
+  --padding-top: 16px;
+  --padding-bottom: 16px;
+  --padding-start: 16px;
+  --padding-end: 16px;
+  height: auto;
+  min-height: 70px;
+  margin: 0;
+  transition: all 0.3s ease;
+  
+  // 默认状态
+  --border-color: var(--ion-color-medium);
+  --color: var(--ion-color-medium);
+  
+  // 正确状态
+  &.correct {
+    --border-color: var(--ion-color-success);
+    --color: var(--ion-color-success);
+    background-color: rgba(var(--ion-color-success-rgb), 0.1);
+    
+    .english-word {
+      color: var(--ion-color-success);
+      font-weight: 500;
+    }
+    
+    .definition-line {
+      .option-type {
+        color: var(--ion-color-success);
+      }
+      .option-text {
+        color: var(--ion-color-success);
+      }
+    }
+  }
+  
+  // 错误状态(用户选择的错误答案)
+  &.wrong {
+    --border-color: var(--ion-color-danger);
+    --color: var(--ion-color-danger);
+    background-color: rgba(var(--ion-color-danger-rgb), 0.1);
+    
+    .english-word {
+      color: var(--ion-color-danger);
+      font-weight: 500;
+    }
+    
+    .definition-line {
+      .option-type {
+        color: var(--ion-color-danger);
+      }
+      .option-text {
+        color: var(--ion-color-danger);
+      }
+    }
+  }
+  
+  // 其他错误选项
+  &.answered:not(.correct):not(.wrong) {
+    --border-color: var(--ion-color-medium);
+    --color: var(--ion-color-medium);
+    
+    .english-word {
+      color: var(--ion-color-medium);
+      font-weight: 500;
+    }
+  }
+}
+
+.option-content {
+  width: 100%;
+  text-align: left;
+  pointer-events: none;
+}
+
+.option-normal {
+  display: flex;
+  flex-direction: column;
+  
+  .option-type {
+    font-size: 0.85rem;
+    color: #888;
+    margin-bottom: 4px;
+  }
+  
+  .option-text {
+    font-size: 1rem;
+    color: #333;
+    line-height: 1.3;
+    display: block;
+    white-space: nowrap;
+    overflow: hidden;
+  }
+}
+
+.option-answered {
+  width: 100%;
+  
+  // 通用样式
+  .english-word {
+    font-size: 0.9rem;
+    margin-bottom: 6px;
+    font-weight: 500;
+  }
+  
+  .definition-line {
+    display: flex;
+    align-items: baseline;
+    gap: 4px;
+    
+    .option-type {
+      font-size: 0.85rem;
+      min-width: 28px;
+      flex-shrink: 0;
+    }
+    
+    .option-text {
+      font-size: 1rem;
+      line-height: 1.3;
+      flex: 1;
+      white-space: nowrap;
+      overflow: hidden;
+    }
+  }
+  
+  // 正确答案样式
+  .option-correct {
+    .english-word {
+      color: var(--ion-color-success);
+    }
+    
+    .definition-line {
+      .option-type {
+        color: var(--ion-color-success);
+      }
+      .option-text {
+        color: var(--ion-color-success);
+      }
+    }
+  }
+  
+  // 用户选择的错误答案样式
+  .option-wrong {
+    .english-word {
+      color: var(--ion-color-danger);
+    }
+    
+    .definition-line {
+      .option-type {
+        color: var(--ion-color-danger);
+      }
+      .option-text {
+        color: var(--ion-color-danger);
+      }
+    }
+  }
+  
+  // 其他错误选项样式
+  .option-other-wrong {
+    .english-word {
+      color: #666;
+    }
+    
+    .definition-line {
+      .option-type {
+        color: #888;
+      }
+      .option-text {
+        color: #666;
+      }
+    }
+  }
+}
+
+/* 按钮容器 */
+.button-container {
+  margin-top: auto;
+  margin-bottom: 16px;
+}
+
+/* 动作按钮通用样式 */
+.action-button {
+  --border-radius: 12px;
+  --padding-top: 16px;
+  --padding-bottom: 16px;
+  transition: all 0.3s ease;
+  margin: 0;
+}
+
+/* 看答案按钮样式 */
+.action-button[fill="clear"] {
+  --color: var(--ion-color-medium);
+  font-weight: 900;
+  font-size: 1.3rem;
+  opacity: 1;
+}
+
+/* 看答案按钮禁用状态样式 */
+.action-button[fill="clear"][disabled] {
+  opacity: 0.5;
+  cursor: not-allowed;
+}
+
+/* 继续按钮样式 */
+.action-button[fill="solid"] {
+  --background: var(--ion-color-primary);
+  --color: white;
+  font-weight: 900;
+  font-size: 1.3rem;
+  opacity: 1;
+}
+
+/* 详情模式样式 */
+.detail-mode {
+  margin-top: 16px;
+  animation: fadeIn 0.3s ease;
+}
+
+@keyframes fadeIn {
+  from {
+    opacity: 0;
+    transform: translateY(10px);
+  }
+  to {
+    opacity: 1;
+    transform: translateY(0);
+  }
+}
+
+/* 下一个单词按钮样式 */
+.next-word-button {
+  --border-radius: 12px;
+  --padding-top: 16px;
+  --padding-bottom: 16px;
+  margin-top: 32px;
+  margin-bottom: 16px;
+  font-weight: 900;
+  font-size: 1.3rem;
+}
+
+.loading-container,
+.no-data-container {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  min-height: 300px;
+  
+  ion-spinner {
+    margin-bottom: 16px;
+  }
+  
+  p {
+    color: #666;
+    margin-bottom: 20px;
+    text-align: center;
+  }
+}
+
+/* 确保按钮有明确的点击区域 */
+ion-button {
+  cursor: pointer;
+}
+
+/* 防止按钮闪烁 */
+ion-button[disabled] {
+  opacity: 0.7;
+}
+
+// 隐藏单词的样式 - 显示空白而不是问号
+.hidden-word-container {
+  min-height: 60px; // 保持高度一致
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  
+  .blank-word {
+    width: 200px;
+    height: 48px; // 与word-text高度保持一致
+    background-color: #f5f5f5;
+    border-radius: 8px;
+    margin-bottom: 8px;
+  }
+  
+  .word-text {
+    transition: all 0.5s ease;
+    color: #000;
+  }
+}
+
+// 模式2的认识/不认识按钮 - 修改为按图片样式
+.recognition-buttons {
+  display: flex;
+  gap: 16px;
+  width: 100%;
+  margin-top: auto;
+  margin-bottom: 16px;
+  
+  .action-button {
+    flex: 1; // 让两个按钮平均分配宽度
+    --border-radius: 12px;
+    --padding-top: 16px;
+    --padding-bottom: 16px;
+    height: 48px;
+    font-weight: 900;
+    font-size: 1.3rem;
+    margin: 0;
+  }
+}
+
+// 单词组完成页面样式
+.group-completed-container {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  min-height: 300px;
+  padding: 20px;
+  
+  .completion-card {
+    background: white;
+    border-radius: 16px;
+    padding: 30px;
+    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+    width: 100%;
+    max-width: 400px;
+    text-align: center;
+    
+    .completion-icon {
+      font-size: 60px;
+      margin-bottom: 20px;
+      color: var(--ion-color-success);
+    }
+    
+    .completion-title {
+      font-size: 1.8rem;
+      margin-bottom: 8px;
+      color: #333;
+    }
+    
+    .completion-subtitle {
+      color: #666;
+      margin-bottom: 30px;
+      font-size: 1rem;
+    }
+    
+    .completion-stats {
+      display: flex;
+      justify-content: space-around;
+      margin-bottom: 30px;
+      padding: 20px 0;
+      border-top: 1px solid #eee;
+      border-bottom: 1px solid #eee;
+      
+      .stat-item {
+        display: flex;
+        flex-direction: column;
+        
+        .stat-value {
+          font-size: 1.5rem;
+          font-weight: bold;
+          color: var(--ion-color-primary);
+        }
+        
+        .stat-label {
+          font-size: 0.85rem;
+          color: #888;
+          margin-top: 4px;
+        }
+      }
+    }
+    
+    .completion-actions {
+      display: flex;
+      flex-direction: column;
+      gap: 12px;
+      
+      .action-button {
+        --border-radius: 12px;
+        --padding-top: 16px;
+        --padding-bottom: 16px;
+        height: 50px;
+        font-weight: 500;
+      }
+    }
+  }
+}
+
+// 进度文本样式
+.progress-text {
+  font-size: 0.9rem;
+  color: var(--ion-color-medium);
+}
+
+/* 单词显示动画 */
+@keyframes wordReveal {
+  0% {
+    opacity: 0;
+    transform: translateY(20px) scale(0.9);
+  }
+  50% {
+    transform: translateY(0) scale(1.05);
+  }
+  100% {
+    opacity: 1;
+    transform: translateY(0) scale(1);
+  }
+}
+
+/* 回答正确后的选项样式增强 */
+.option-button.correct {
+  animation: correctPulse 0.5s ease;
+}
+
+@keyframes correctPulse {
+  0% {
+    transform: scale(1);
+  }
+  50% {
+    transform: scale(1.02);
+  }
+  100% {
+    transform: scale(1);
+  }
+}
+
+/* 回答错误后的选项样式增强 */
+.option-button.wrong {
+  animation: wrongShake 0.5s ease;
+}
+
+@keyframes wrongShake {
+  0%, 100% {
+    transform: translateX(0);
+  }
+  25% {
+    transform: translateX(-5px);
+  }
+  75% {
+    transform: translateX(5px);
+  }
+}

+ 17 - 0
word-app/src/app/recite-words/recite-words.page.spec.ts

@@ -0,0 +1,17 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ReciteWordsPage } from './recite-words.page';
+
+describe('ReciteWordsPage', () => {
+  let component: ReciteWordsPage;
+  let fixture: ComponentFixture<ReciteWordsPage>;
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ReciteWordsPage);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 692 - 0
word-app/src/app/recite-words/recite-words.page.ts

@@ -0,0 +1,692 @@
+// recite-words.page.ts 完整修正版
+
+import { Component, OnInit, AfterViewInit, ViewChild, OnDestroy, ChangeDetectorRef } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { Router } from '@angular/router';
+import { 
+  IonButton, 
+  IonContent, 
+  IonHeader, 
+  IonTitle, 
+  IonToolbar,
+  IonSpinner,
+  IonIcon,
+  IonButtons,
+  AlertController,
+} from '@ionic/angular/standalone';
+import { HttpClient, HttpClientModule } from '@angular/common/http';
+import { addIcons } from 'ionicons';
+import { 
+  chevronBackOutline,
+  trophyOutline,
+  homeOutline,
+  flameOutline,
+  addCircleOutline,
+  volumeHighOutline,
+  checkmarkCircleOutline,
+  closeCircleOutline,
+  checkmarkCircle,
+  timeOutline
+} from 'ionicons/icons';
+
+// 导入组件、服务和接口
+import { PronunciationButtonComponent } from '../pronunciation-button/pronunciation-button.component';
+import { WordDetailComponent } from '../word-detail/word-detail.component'; 
+import { WordProcessingService } from './word-processing.service';
+import { WordGroupService } from './word-group.service';
+import { Word, WordOption } from './word-interfaces';
+
+
+addIcons({ 
+  chevronBackOutline,
+  trophyOutline,
+  homeOutline,
+  flameOutline,
+  addCircleOutline,
+  volumeHighOutline,
+  checkmarkCircleOutline,
+  closeCircleOutline,
+  checkmarkCircle,
+  timeOutline
+});
+
+@Component({
+  selector: 'app-recite-words',
+  templateUrl: './recite-words.page.html',
+  styleUrls: ['./recite-words.page.scss'],
+  standalone: true,
+  imports: [
+    IonContent, IonHeader, IonTitle, IonToolbar, 
+    CommonModule, FormsModule, IonButton, HttpClientModule, 
+    IonSpinner, IonIcon, IonButtons, PronunciationButtonComponent, 
+    WordDetailComponent, 
+  ],
+  providers: [WordProcessingService, WordGroupService]
+})
+export class ReciteWordsPage implements OnInit, AfterViewInit, OnDestroy {
+  @ViewChild(IonContent) ionContent!: IonContent;
+  @ViewChild(PronunciationButtonComponent) pronunciationButton!: PronunciationButtonComponent;
+  
+  words: Word[] = [];
+  currentWord: Word | null = null;
+  
+  // 模式1的状态变量(原模式)
+  selectedOption: WordOption | null = null;
+  isAnswered: boolean = false;
+  isCorrect: boolean = false;
+  isCorrectAnswerShown: boolean = false;
+  showContinueButton: boolean = false;
+  showWordDetail: boolean = false;
+  
+  // 模式2和模式3的状态变量
+  mode2Options: WordOption[] = [];
+  selectedMode2Option: WordOption | null = null;
+  mode2Answered: boolean = false;
+  mode2Correct: boolean = false;
+  
+  // 模式3的状态变量(词汇检测)
+  mode3Answered: boolean = false;
+  
+  // 通用状态
+  isLoading: boolean = true;
+  isAmericanPronunciation: boolean = true;
+  autoPlayEnabled: boolean = true; // 默认开启自动发音
+  
+  // 完成页面数据
+  showGroupCompleted: boolean = false;
+  completedWordsCount: number = 0;
+  studyTime: string = '0分钟';
+  masteryRate: number = 0;
+  groupStartTime: Date | null = null;
+
+  constructor(
+    private http: HttpClient, 
+    private router: Router,
+    private cdr: ChangeDetectorRef,
+    private alertController: AlertController,
+    private wordProcessingService: WordProcessingService,
+    private wordGroupService: WordGroupService
+  ) {}
+
+  ngOnInit() {
+    console.log('背单词页面已初始化');
+    this.groupStartTime = new Date();
+    this.loadWords();
+  }
+
+  ngAfterViewInit() {
+    setTimeout(() => {
+      if (this.ionContent) {
+        this.ionContent.scrollToTop();
+      }
+    }, 100);
+  }
+
+  ngOnDestroy() {
+    // 清理工作
+  }
+
+  // ==================== 公共辅助方法 ====================
+  
+  /**
+   * 获取页面标题
+   */
+  getPageTitle(): string {
+    if (this.showGroupCompleted) return '学习完成';
+    if (this.currentWord) {
+      switch (this.currentWord.studyCount) {
+        case 0: return '单词学习';
+        case 1: return '听音辨义';
+        case 2: return '词汇检测';
+        default: return '背单词';
+      }
+    }
+    return '背单词';
+  }
+  
+  /**
+   * 获取进度文本
+   */
+  getProgressText(): string {
+    if (!this.wordGroupService.getCurrentGroup()) return '';
+    const progress = this.wordGroupService.getProgressInfo();
+    return `${progress.current}/${progress.total}`;
+  }
+  
+  /**
+   * 获取是否自动播放发音
+   * 所有模式都需要自动发音
+   */
+  getAutoPlay(): boolean {
+    // 所有模式都需要自动发音
+    return true;
+  }
+  
+  /**
+   * 获取提示文本
+   */
+  getHintText(): string {
+    if (!this.currentWord) return '先回想词义再选择,想不起来「看答案」';
+    
+    switch (this.currentWord.studyCount) {
+      case 0:
+        return '先回想词义再选择,想不起来「看答案」';
+      case 1:
+        return '根据发音选择正确的意思';
+      case 2:
+        return '根据单词判断是否认识';
+      default:
+        return '先回想词义再选择,想不起来「看答案」';
+    }
+  }
+  
+  /**
+   * 获取当前选项
+   */
+  getCurrentOptions(): any[] {
+    if (!this.currentWord) return [];
+    
+    // 模式2(studyCount === 2)不显示选项,而是显示认识/不认识按钮
+    if (this.currentWord.studyCount > 2) {
+      return [];
+    }
+    
+    // 模式0和1都使用单词的选项
+    return this.currentWord.options || [];
+  }
+
+  // ==================== 单词选项显示方法 ====================
+  
+  getOptionColor(option: WordOption): string {
+    return 'medium';
+  }
+
+  getOptionType(option: WordOption): string {
+    return option.type;
+  }
+
+  getOptionDisplayText(option: WordOption): string {
+    return option.displayText || this.wordProcessingService.truncateToSingleLine(option.text);
+  }
+
+  getOptionEnglish(option: WordOption): string {
+    return option.english;
+  }
+
+  // ==================== 模式0:第一次学习 ====================
+  
+  selectOption(option: WordOption) {
+  if (this.isAnswered || this.isCorrectAnswerShown) return;
+  
+  this.selectedOption = option;
+  this.isAnswered = true;
+  this.isCorrect = option.isCorrect;
+
+    // 根据不同的学习模式处理不同的逻辑
+  const studyCount = this.currentWord?.studyCount || 0;
+  
+  switch (studyCount) {
+    case 0: // 模式0:第一次学习
+      this.handleMode0(option.isCorrect);
+      break;
+      
+    case 1: // 模式1:第二次学习(听音辨义)
+      //console.log(`${option.isCorrect }`);
+      this.handleMode1(option.isCorrect);
+      break;
+      
+    default:
+      console.warn('未知的学习模式:', studyCount);
+      break;
+      
+  }
+  
+}
+
+/**
+ * 处理模式0(第一次学习)的选择结果
+ */
+private handleMode0(isCorrect: boolean) {
+  if (isCorrect) {
+    console.log('模式0:回答正确!');
+// 停留2秒后进入单词详情
+    setTimeout(() => {
+      this.showWordDetail = true;
+      this.scrollToTop(300);
+      
+      // 新增:进入详情后自动发音
+      setTimeout(() => {
+        if (this.pronunciationButton) {
+          this.pronunciationButton.playPronunciation();
+        }
+      }, 300); // 稍微延迟,确保页面切换完成
+    }, 2000);
+    
+  } else {
+    console.log('模式0:回答错误!');
+    
+    // 显示正确答案
+    this.showCorrectAnswer();
+    
+    // 模式0回答错误后,显示继续按钮
+    this.showContinueButton = true; // 只有错误时才显示继续按钮
+    this.isAnswered = true;
+  }
+}
+
+/**
+ * 处理模式1(第二次学习)的选择结果
+ */
+private handleMode1(isCorrect: boolean) {
+  if (isCorrect) {
+    console.log('模式1:回答正确!');
+    this.showContinueButton = false; // 确保继续按钮不显示
+// 停留2秒后进入单词详情
+    setTimeout(() => {
+      this.showWordDetail = true;
+      this.scrollToTop(300);
+      
+      // 新增:进入详情后自动发音
+      setTimeout(() => {
+        if (this.pronunciationButton) {
+          this.pronunciationButton.playPronunciation();
+        }
+      }, 350); // 稍微延迟,确保页面切换完成
+    }, 2000);
+
+    
+  } else {
+    console.log('模式1:回答错误!');
+    
+    // 显示正确答案
+    this.showCorrectAnswer();
+    
+    // 模式1回答错误后,显示继续按钮
+    this.showContinueButton = true; // 只有错误时才显示继续按钮
+  }
+}
+  
+  /**
+   * 显示正确答案
+   */
+  showCorrectAnswer() {
+    this.isCorrectAnswerShown = true;
+    
+  }
+  
+  /**
+   * 显示答案 - 用户点击"看答案"
+   */
+  showAnswer() {
+    if (this.isAnswered) return;
+    
+    this.isAnswered = true;
+    this.isCorrect = false;
+    this.isCorrectAnswerShown = true;
+    
+    // 根据学习模式显示不同的继续方式
+    if (this.currentWord?.studyCount === 1) {
+      // 模式1:显示继续按钮
+      this.showContinueButton = true;
+    } else {
+      // 模式0:显示继续按钮
+      this.showContinueButton = true;
+    }
+    
+    this.selectedOption = this.currentWord?.options.find((opt: WordOption) => opt.isCorrect) || null;
+  }
+  
+  /**
+   * 继续下一步
+   */
+  continueToNext() {
+   // 模式0:显示单词详情
+      this.showWordDetail = true;
+       // 延迟播放发音
+  setTimeout(() => {
+    if (this.pronunciationButton) {
+      this.pronunciationButton.playPronunciation();
+    }
+  }, 100);
+  }
+
+  // ==================== 模式2:第二次学习 ====================
+  
+  /**
+   * 准备模式二的选项
+   */
+  prepareMode2Options() {
+    if (!this.currentWord) return;
+    
+    // 直接使用当前单词的选项
+    if (this.currentWord.options && this.currentWord.options.length === 4) {
+      this.mode2Options = [...this.currentWord.options];
+    } else {
+      // 如果没有选项,需要生成
+      const options = this.wordProcessingService.generateOptions(this.currentWord);
+      this.mode2Options = options.map(option => ({
+        ...option,
+        displayText: option.displayText || this.wordProcessingService.truncateToSingleLine(option.text)
+      }));
+    }
+  }
+
+  // ==================== 模式3:第三次学习(词汇检测) ====================
+  
+  /**
+   * 认识单词
+   */
+  recognizeWord(know: boolean) {
+    if (this.mode3Answered) return;
+    
+    this.mode3Answered = true;
+    this.isAnswered = true;
+    this.isCorrect = know; // 认识视为正确,不认识视为错误
+    this.showWordDetail = true; // 直接显示单词详情  
+     // 延迟播放发音
+  setTimeout(() => {
+    if (this.pronunciationButton) {
+      this.pronunciationButton.playPronunciation();
+    }
+  }, 100);
+    this.cdr.detectChanges(); // 强制更新视图,确保显示单词详情
+
+  }
+
+  // ==================== 通用导航方法 ====================
+  
+  /**
+   * 进入下一个学习阶段
+   */
+  goToNextStudy() {
+  // 在进入下一个单词前,更新当前单词的学习次数
+  if (this.currentWord) {
+    // 根据当前回答是否正确来更新学习次数
+    // 注意:这里需要判断当前回答是否正确
+    if (this.isCorrect !== undefined) {
+      this.wordGroupService.updateWordStudyCount(this.currentWord!, this.isCorrect);
+    }
+  }
+  
+    // 重置当前单词的状态
+    this.resetCurrentWordState();
+    
+    // 检查是否还有未完成的单词
+    const hasNext = this.wordGroupService.nextWord();
+    
+ if (hasNext) {
+    this.currentWord = this.wordGroupService.getCurrentWord();
+    this.initializeForCurrentWord();
+    this.scrollToTop();
+    
+    // 手动触发重新播放发音
+    setTimeout(() => {
+      if (this.pronunciationButton) {
+        this.pronunciationButton.replayAudio();
+      }
+    }, 100);
+  } else {
+    // 所有单词都完成了
+    this.completeGroup();
+  }
+  }
+  
+  /**
+   * 重置当前单词状态
+   */
+  resetCurrentWordState() {
+    this.selectedOption = null;
+    this.isAnswered = false;
+    this.isCorrect = false;
+    this.isCorrectAnswerShown = false;
+    this.showContinueButton = false;
+    this.showWordDetail = false;
+    
+    // 模式2状态
+    this.mode2Options = [];
+    this.selectedMode2Option = null;
+    this.mode2Answered = false;
+    this.mode2Correct = false;
+    
+    // 模式3状态
+    this.mode3Answered = false;
+  }
+  
+  /**
+   * 初始化当前单词
+   */
+  initializeForCurrentWord() {
+    if (!this.currentWord) return;
+    
+    // 根据学习次数准备不同的模式
+    switch (this.currentWord.studyCount) {
+      case 1:
+        // 模式二:听音辨义
+        this.prepareMode2Options();
+        console.log(`模式二初始化完成,单词: ${this.currentWord.word}`);
+        break;
+        
+      case 2:
+        // 模式三:词汇检测
+        console.log(`模式三初始化完成,单词: ${this.currentWord.word}`);
+        break;
+        
+      default:
+        // 模式0(第一次学习)已由原逻辑处理
+        console.log(`模式一初始化完成,单词: ${this.currentWord.word}`);
+        break;
+    }
+  }
+  
+  /**
+   * 完成当前单词组
+   */
+  completeGroup() {
+    this.showGroupCompleted = true;
+    this.currentWord = null;
+    
+    // 计算统计数据
+    const group = this.wordGroupService.getCurrentGroup();
+    if (group) {
+      this.completedWordsCount = group.words.length;
+      this.masteryRate = this.wordGroupService.getProgressInfo().percentage;
+    }
+    
+    // 计算学习时间
+    if (this.groupStartTime) {
+      const diffMs = new Date().getTime() - this.groupStartTime.getTime();
+      const diffMins = Math.floor(diffMs / 60000);
+      this.studyTime = diffMins < 1 ? '<1分钟' : `${diffMins}分钟`;
+    }
+    
+    this.wordGroupService.completeCurrentGroup();
+    console.log('当前单词组已完成');
+    this.scrollToTop();
+  }
+  
+  /**
+   * 初始化单词组
+   */
+  initializeGroup() {
+    this.groupStartTime = new Date();
+    this.showGroupCompleted = false;
+    this.resetCurrentWordState();
+    
+    const group = this.wordGroupService.createGroup(this.words);
+    if (group && group.words.length > 0) {
+      this.currentWord = group.words[0];
+      this.initializeForCurrentWord();
+      console.log(`开始学习组 #${group.id},第一个单词: "${this.currentWord.word}"`);
+    }
+  }
+
+  // ==================== 单词加载方法 ====================
+  
+  loadWords() {
+    this.isLoading = true;
+    this.http.get('assets/words.txt', { responseType: 'text' }).subscribe({
+      next: (data) => {
+        console.log('成功加载单词文件');
+        
+        // 使用服务解析单词
+        const parsedWords = this.wordProcessingService.parseWords(data);
+        
+        if (parsedWords.length > 0) {
+          console.log(`共加载 ${parsedWords.length} 个单词`);
+          
+          // 提取所有释义用于干扰项
+          this.wordProcessingService.extractAllDefinitionsForDistractions(data);
+          
+          // 生成选项并过滤无效单词
+          const validWords: Word[] = [];
+          
+          for (const word of parsedWords) {
+            const options = this.wordProcessingService.generateOptions(word);
+            
+            if (options.length === 4) {
+              word.options = options;
+              validWords.push(word);
+            } else {
+              console.log(`单词 "${word.word}" 无法生成有效选项,已跳过`);
+            }
+          }
+          
+          this.words = validWords;
+          
+          if (this.words.length > 0) {
+            console.log(`成功为 ${this.words.length} 个单词生成有效选项`);
+            
+            // 初始化单词组
+            this.initializeGroup();
+          } else {
+            console.warn('没有能够生成有效选项的单词');
+            this.currentWord = null;
+          }
+        } else {
+          console.warn('单词文件为空或格式错误');
+          this.words = [];
+          this.currentWord = null;
+        }
+        
+        this.isLoading = false;
+        this.scrollToTop();
+      },
+      error: (err) => {
+        console.error('加载单词文件失败:', err);
+        this.words = [];
+        this.currentWord = null;
+        this.isLoading = false;
+      }
+    });
+  }
+
+  // ==================== 完成页面操作方法 ====================
+  
+  async goToHome() {
+    const alert = await this.alertController.create({
+      header: '确认返回',
+      message: '确定要返回首页吗?当前学习进度已保存。',
+      buttons: [
+        {
+          text: '取消',
+          role: 'cancel'
+        },
+        {
+          text: '确定',
+          handler: () => {
+            this.router.navigate(['/tabs/tab1']);
+          }
+        }
+      ]
+    });
+    
+    await alert.present();
+  }
+  
+  async continuePractice() {
+    const alert = await this.alertController.create({
+      header: '功能开发中',
+      message: '趁热打铁功能正在开发中,敬请期待!',
+      buttons: ['确定']
+    });
+    
+    await alert.present();
+  }
+  
+  startNextGroup() {
+    this.initializeGroup();
+  }
+  
+  async showNoMoreWordsAlert() {
+    const alert = await this.alertController.create({
+      header: '恭喜完成!',
+      message: '您已经学完了所有单词!\n\n可以返回单词库添加更多单词。',
+      buttons: [
+        {
+          text: '返回首页',
+          handler: () => {
+            this.router.navigate(['/tabs/tab1']);
+          }
+        },
+        {
+          text: '再学一遍',
+          handler: () => {
+            // 重置所有单词的学习次数
+            this.words.forEach(word => {
+              word.studyCount = 0;
+              word.isMastered = false;
+            });
+            
+            // 重新开始
+            this.startNextGroup();
+          }
+        }
+      ]
+    });
+    
+    await alert.present();
+  }
+
+  // ==================== 辅助方法 ====================
+  
+  onPronunciationToggled(isAmerican: boolean) {
+    console.log(`接收到发音切换事件: ${isAmerican ? '美式' : '英式'}`);
+    this.isAmericanPronunciation = isAmerican;
+  }
+  
+  scrollToTop(duration: number = 0) {
+    setTimeout(() => {
+      if (this.ionContent) {
+        this.ionContent.scrollToTop(duration);
+      }
+    }, duration === 0 ? 50 : 0);
+  }
+  
+  resetCurrentWord() {
+    if (this.currentWord) {
+      this.currentWord.studyCount = 0;
+      this.currentWord.isMastered = false;
+      this.initializeForCurrentWord();
+      this.cdr.detectChanges();
+    }
+  }
+  
+  goBack() {
+    this.router.navigate(['/tabs/tab1']);
+  }
+
+  /**
+ * 播放选项单词的发音(用于模板点击)
+ */
+playOptionSound(option: WordOption): void {
+  // 正确选项不发音
+  if (option.isCorrect) return;
+  
+  if (option.english) {
+    if (this.pronunciationButton) {
+      this.pronunciationButton.playPronunciation(option.english);
+    }
+  }
+}
+}

+ 203 - 0
word-app/src/app/recite-words/word-group.service.ts

@@ -0,0 +1,203 @@
+import { Injectable } from '@angular/core';
+import { BehaviorSubject } from 'rxjs';
+import { Word, WordGroup } from './word-interfaces';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class WordGroupService {
+  private currentGroup: WordGroup | null = null;
+  private groupHistory: WordGroup[] = [];
+  private isActive = new BehaviorSubject<boolean>(false);
+  
+  // 每组单词数量
+  private readonly WORDS_PER_GROUP = 5;
+  
+  /**
+   * 创建新单词组
+   */
+  createGroup(words: Word[]): WordGroup {
+    // 只取还未掌握的单词
+    const availableWords = words.filter(word => !word.isMastered);
+    
+    if (availableWords.length === 0) {
+      console.warn('没有未掌握的单词可供学习');
+      return {
+        id: 0,
+        words: [],
+        currentIndex: 0,
+        completed: true,
+        createdAt: new Date()
+      };
+    }
+    
+    // 按学习次数排序(次数少的优先)
+    const sortedWords = [...availableWords].sort((a, b) => {
+      return a.studyCount - b.studyCount;
+    });
+    
+    // 取前5个或更少
+    const groupWords = sortedWords.slice(0, this.WORDS_PER_GROUP);
+    
+    // 标记这些单词属于当前组
+    const groupId = this.groupHistory.length + 1;
+    groupWords.forEach(word => {
+      word.groupId = groupId;
+    });
+    
+    this.currentGroup = {
+      id: groupId,
+      words: groupWords,
+      currentIndex: 0,
+      completed: false,
+      createdAt: new Date()
+    };
+    
+    this.groupHistory.push(this.currentGroup);
+    this.isActive.next(true);
+    
+    console.log(`创建新单词组 #${groupId},包含 ${groupWords.length} 个单词`);
+    
+    return this.currentGroup;
+  }
+  
+  /**
+   * 获取当前组
+   */
+  getCurrentGroup(): WordGroup | null {
+    return this.currentGroup;
+  }
+  
+  /**
+   * 获取当前单词
+   */
+  getCurrentWord(): Word | null {
+    if (!this.currentGroup || 
+        this.currentGroup.words.length === 0 || 
+        this.currentGroup.currentIndex >= this.currentGroup.words.length) {
+      return null;
+    }
+    
+    return this.currentGroup.words[this.currentGroup.currentIndex];
+  }
+  
+  /**
+   * 移动到下一个单词
+   */
+  nextWord(): boolean {
+    if (!this.currentGroup) return false;
+    
+    // 检查是否还有未处理的单词(studyCount < 3)
+    const remainingWords = this.currentGroup.words.filter(
+      word => word.studyCount < 3
+    );
+    
+    if (remainingWords.length === 0) {
+      this.completeCurrentGroup();
+      return false;
+    }
+    
+    // 找到下一个未完成的单词
+    let found = false;
+    let attempts = 0;
+    const maxAttempts = this.currentGroup.words.length;
+    
+    while (!found && attempts < maxAttempts) {
+      this.currentGroup.currentIndex = 
+        (this.currentGroup.currentIndex + 1) % this.currentGroup.words.length;
+      attempts++;
+      
+      const currentWord = this.currentGroup.words[this.currentGroup.currentIndex];
+      if (currentWord.studyCount < 3) {
+        found = true;
+      }
+    }
+    
+    return found;
+  }
+  
+  /**
+   * 完成当前组
+   */
+  completeCurrentGroup(): void {
+    if (this.currentGroup) {
+      this.currentGroup.completed = true;
+      this.isActive.next(false);
+      console.log(`单词组 #${this.currentGroup.id} 已完成`);
+    }
+  }
+  
+  /**
+   * 重置服务状态
+   */
+  reset(): void {
+    this.currentGroup = null;
+    this.isActive.next(false);
+  }
+  
+  /**
+   * 更新单词学习次数
+   */
+  updateWordStudyCount(word: Word, isCorrect: boolean): void {
+    if (!word) return;
+    
+    if (isCorrect) {
+      word.studyCount = Math.min(word.studyCount + 1, 3);
+      
+      if (word.studyCount >= 3) {
+        word.isMastered = true;
+        console.log(`单词 "${word.word}" 已掌握`);
+      } else {
+        console.log(`单词 "${word.word}" 学习次数更新为: ${word.studyCount}`);
+      }
+    } else {
+      // 回答错误,次数清零
+      word.studyCount = 0;
+      word.isMastered = false;
+      console.log(`单词 "${word.word}" 回答错误,次数清零`);
+    }
+  }
+  
+  /**
+   * 检查是否所有单词都已掌握
+   */
+  isAllWordsMastered(): boolean {
+    if (!this.currentGroup) return false;
+    
+    return this.currentGroup.words.every(word => word.isMastered);
+  }
+  
+  /**
+   * 获取剩余单词数量
+   */
+  getRemainingWordsCount(): number {
+    if (!this.currentGroup) return 0;
+    
+    return this.currentGroup.words.filter(word => !word.isMastered).length;
+  }
+  
+  /**
+   * 获取组完成状态
+   */
+  isGroupActive(): boolean {
+    return !!this.currentGroup && !this.currentGroup.completed;
+  }
+  
+  /**
+   * 获取进度信息
+   */
+  getProgressInfo(): { current: number, total: number, percentage: number } {
+    if (!this.currentGroup) {
+      return { current: 0, total: 0, percentage: 0 };
+    }
+    
+    const total = this.currentGroup.words.length;
+    const mastered = this.currentGroup.words.filter(word => word.isMastered).length;
+    
+    return {
+      current: mastered,
+      total: total,
+      percentage: total > 0 ? Math.round((mastered / total) * 100) : 0
+    };
+  }
+}

+ 39 - 0
word-app/src/app/recite-words/word-interfaces.ts

@@ -0,0 +1,39 @@
+/**
+ * 单词选项接口定义
+ */
+export interface WordOption {
+  text: string;
+  type: string;
+  english: string;
+  isCorrect: boolean;
+  displayText?: string;
+}
+
+/**
+ * 单词接口定义
+ */
+export interface Word {
+  word: string;
+  phonetic: string;
+  phoneticUk?: string;
+  definition: string;
+  type: string;
+  options: WordOption[];
+  correctAnswer: string;
+  allDefinitions: string[];
+  // 新增:背诵次数和分组信息
+  studyCount: number;  // 0: 第一次学习, 1: 第二次, 2: 第三次
+  groupId?: number;    // 所属组ID
+  isMastered?: boolean; // 是否已掌握(达到3次)
+}
+
+/**
+ * 单词组接口
+ */
+export interface WordGroup {
+  id: number;
+  words: Word[];
+  currentIndex: number;
+  completed: boolean;
+  createdAt: Date;
+}

+ 571 - 0
word-app/src/app/recite-words/word-processing.service.ts

@@ -0,0 +1,571 @@
+import { Injectable } from '@angular/core';
+import { Word, WordOption } from './word-interfaces';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class WordProcessingService {
+  
+  // 用于存储所有单词的所有释义,用于生成干扰项
+  private allDefinitions: { word: string; definition: string; type: string }[] = [];
+  
+  // 词性标记列表
+  private readonly singlePosMarkers = [
+    'adj.', 'adv.', 'n.', 'v.', 'vt.', 'vi.', 'prep.', 'conj.', 
+    'pron.', 'int.', 'art.', 'num.', 'aux.', 'modal.', 'det.', 'abbr.'
+  ];
+  
+  // 标点符号分隔符
+  private readonly delimiters = [';', ';', ',', ',', ':', ':', '、', ' ', '.'];
+  
+  // 最大显示长度
+  private readonly maxDisplayLength = 15;
+  
+  /**
+   * 解析单词文件内容
+   * @param data 单词文件内容
+   * @returns 解析后的单词数组
+   */
+  parseWords(data: string): Word[] {
+    const lines = data.split('\n');
+    const words: Word[] = [];
+    
+    for (const line of lines) {
+      const trimmedLine = line.trim();
+      if (!trimmedLine) continue;
+      
+      const parts = trimmedLine.split('#');
+      if (parts.length < 3) {
+        console.warn(`格式错误,跳过行: ${trimmedLine}`);
+        continue;
+      }
+      
+      const word = parts[0].trim();
+      const phonetic = parts[1].trim();
+      
+      // 第一个词性的释义是parts[2]
+      const firstDefinitionPart = parts[2].trim();
+      const firstDefinition = this.extractDefinitionFromPart(firstDefinitionPart, word);
+      
+      // 检查是否有有效的释义
+      if (!firstDefinition.definition || firstDefinition.definition.trim().length === 0) {
+        console.warn(`单词 "${word}" 无法提取有效释义,跳过`);
+        continue;
+      }
+
+      const allDefinitions: string[] = [];
+      for (let i = 2; i < parts.length; i++) {
+         allDefinitions[i-2] = parts[i].trim();
+      }
+      
+      // 创建Word对象
+      words.push({ 
+        word, 
+        phonetic, 
+        definition: firstDefinition.definition,
+        type: firstDefinition.type,
+        options: [], // 选项
+        correctAnswer: firstDefinition.definition,
+        allDefinitions: allDefinitions,
+        studyCount: 0, // 默认学习次数为0
+        isMastered: false // 默认未掌握
+      });
+    }
+    return words;
+  }
+  
+  /**
+   * 从词性部分提取类型和释义
+   */
+  extractDefinitionFromPart(definitionPart: string, word: string = ''): { type: string; definition: string } {
+    // 清理字符串
+    let cleanedPart = definitionPart.trim();
+    
+    if (!cleanedPart) {
+        if (word) {
+            console.warn(`单词 "${word}" 的词性部分为空`);
+        }
+        return { type: '', definition: '' };
+    }
+    
+    // 匹配词性标记和后面的释义
+    const pattern = /^(adj\.|adv\.|n\.|v\.|vt\.|vi\.|prep\.|conj\.|pron\.|int\.|art\.|num\.|aux\.|modal\.|det\.|abbr\.)\s*(.+)$/;
+    
+    const match = cleanedPart.match(pattern);
+    
+    if (match) {
+        const type = match[1]; // 词性
+        let definition = match[2].trim(); // 释义
+        
+        // 确保词性和释义之间只有一个空格
+        definition = definition.replace(/^\s+|\s+$/g, ''); // 去掉开头和结尾的空格
+        definition = definition.replace(/\s+/g, ' '); // 将多个空格替换为一个空格
+        
+        // 清理定义中的多余空格和标点
+        definition = definition.replace(/\s+/g, ' ');
+        definition = definition.replace(/[,;。、#]+$/g, ''); // 移除末尾标点
+        definition = definition.replace(/^[,;。、]+/g, ''); // 移除开头标点
+        
+        // 特殊处理:有些词性可能没有释义
+        if (!definition || definition.length === 0) {
+            if (word) {
+                console.warn(`单词 "${word}" 的词性 "${type}" 没有释义内容: "${cleanedPart}"`);
+            }
+        }
+        
+        return { type, definition };
+    } else {
+        // 如果没有匹配到标准格式,尝试其他方法
+        if (word) {
+            console.warn(`单词 "${word}" 无法解析词性部分: "${cleanedPart}"`);
+        }
+        
+        // 检查是否是只有词性没有释义的情况
+        for (const marker of this.singlePosMarkers) {
+            if (cleanedPart === marker) {
+                if (word) {
+                    console.warn(`单词 "${word}" 的词性 "${marker}" 没有释义,将跳过`);
+                }
+                return { type: marker, definition: '' };
+            }
+        }
+        
+        // 尝试查找第一个点和空格的位置
+        const dotIndex = cleanedPart.indexOf('.');
+        if (dotIndex > 0 && dotIndex < cleanedPart.length - 1) {
+            const possibleType = cleanedPart.substring(0, dotIndex + 1);
+            let possibleDefinition = cleanedPart.substring(dotIndex + 1).trim();
+            
+            possibleDefinition = possibleDefinition.replace(/^\s+|\s+$/g, '');
+            possibleDefinition = possibleDefinition.replace(/\s+/g, ' ');
+            
+            if (possibleType.endsWith('.')) {
+                if (this.singlePosMarkers.includes(possibleType.toLowerCase())) {
+                    if (!possibleDefinition) {
+                        if (word) {
+                            console.warn(`单词 "${word}" 的词性 "${possibleType}" 没有有效释义`);
+                        }
+                    }
+                    return { 
+                        type: possibleType, 
+                        definition: possibleDefinition || ''
+                    };
+                }
+            }
+            
+            return { 
+                type: possibleType, 
+                definition: possibleDefinition || ''
+            };
+        }
+        
+        if (cleanedPart.endsWith('.')) {
+            if (word) {
+                console.warn(`单词 "${word}" 的词性部分只有标记没有释义: "${cleanedPart}"`);
+            }
+            return { 
+                type: cleanedPart, 
+                definition: ''
+            };
+        }
+        
+        if (word) {
+            console.warn(`单词 "${word}" 的词性部分无法识别,使用默认处理: "${cleanedPart}"`);
+        }
+        return { 
+            type: 'n.', 
+            definition: cleanedPart.replace(/[,;。、#]+$/g, '')
+        };
+    }
+  }
+  
+  /**
+   * 从原始数据中提取所有词性的释义
+   */
+  extractAllDefinitionsForDistractions(data: string): void {
+    const lines = data.split('\n');
+    const allDefinitions: { word: string; definition: string; type: string }[] = [];
+    
+    for (const line of lines) {
+      const trimmedLine = line.trim();
+      if (!trimmedLine) continue;
+      
+      const parts = trimmedLine.split('#');
+      if (parts.length < 3) continue;
+      
+      const word = parts[0].trim();
+      
+      for (let i = 2; i < parts.length; i++) {
+        const definitionPart = parts[i].trim();
+        if (!definitionPart) continue;
+        
+        const definitionInfo = this.extractDefinitionFromPart(definitionPart, word);
+        
+        if (definitionInfo.definition && 
+            definitionInfo.definition.trim().length > 0 &&
+            definitionInfo.definition !== word &&
+            !this.isPersonNamePattern(definitionInfo.definition)) {
+          allDefinitions.push({
+            word,
+            definition: definitionInfo.definition,
+            type: definitionInfo.type
+          });
+        }
+      }
+    }
+    
+    this.allDefinitions = allDefinitions;
+    console.log(`提取了 ${this.allDefinitions.length} 个释义用于生成干扰项`);
+    
+    if (this.allDefinitions.length < 10) {
+      console.warn(`警告:只提取到 ${this.allDefinitions.length} 个干扰项`);
+    }
+  }
+  
+   /**
+   * 为单词生成选项
+   */
+  generateOptions(currentWord: Word): WordOption[] {
+    const options: WordOption[] = [];
+    
+    const correctDisplayText = this.truncateToSingleLine(currentWord.definition);
+    
+    if (correctDisplayText === '...') {
+      console.log(`单词 "${currentWord.word}" 的释义过长,跳过生成选项`);
+      return [];
+    }
+    
+    options.push({
+      text: currentWord.definition,
+      type: currentWord.type || 'n.',
+      english: currentWord.word,
+      isCorrect: true,
+      displayText: correctDisplayText
+    });
+    
+    if (this.allDefinitions.length < 3) {
+      console.error(`错误:干扰项不足 (${this.allDefinitions.length}),无法为单词 "${currentWord.word}" 生成选项`);
+      return [options[0]];
+    }
+    
+    const usedIndices = new Set<number>();
+    
+    this.allDefinitions.forEach((def, index) => {
+      if (def.word === currentWord.word) {
+        usedIndices.add(index);
+      }
+    });
+    
+    let attempts = 0;
+    const maxAttempts = 100;
+    
+    while (options.length < 4 && usedIndices.size < this.allDefinitions.length && attempts < maxAttempts) {
+      attempts++;
+      
+      let randomIndex: number;
+      do {
+        randomIndex = Math.floor(Math.random() * this.allDefinitions.length);
+      } while (usedIndices.has(randomIndex));
+      
+      usedIndices.add(randomIndex);
+      
+      const distraction = this.allDefinitions[randomIndex];
+      
+      if (distraction.definition !== currentWord.definition && 
+          !options.some(opt => opt.text === distraction.definition)) {
+        
+        const distractionDisplayText = this.truncateToSingleLine(distraction.definition);
+        
+        if (distractionDisplayText === '...') {
+          continue;
+        }
+        
+        options.push({
+          text: distraction.definition,
+          type: distraction.type || 'n.',
+          english: distraction.word,
+          isCorrect: false,
+          displayText: distractionDisplayText
+        });
+      }
+    }
+    
+    if (options.length < 4) {
+      console.warn(`单词 "${currentWord.word}" 只能生成 ${options.length} 个选项,跳过该单词`);
+      return [];
+    }
+    
+    return this.shuffleArray(options);
+  }
+  
+  /**
+   * 智能截断文本,确保在一行内显示
+   */
+  truncateToSingleLine(text: string): string {
+    if (!text) return '';
+    
+    text = text.replace(/^[,;。、\s]+/, '').replace(/[,;。、\s]+$/, '');
+    
+    if (text.length <= this.maxDisplayLength) {
+      if (this.isPersonNamePattern(text)) {
+        return '';
+      }
+      return this.smartRemoveTrailingPunctuation(text);
+    }
+    
+    const words = this.splitWordsByPunctuation(text);
+    
+    if (words.length === 0) {
+      const simpleTruncated = this.simpleTruncate(text, this.maxDisplayLength);
+      return simpleTruncated || '...';
+    }
+    
+    const validWords: string[] = [];
+    for (const word of words) {
+      if (word.length <= this.maxDisplayLength) {
+        validWords.push(word);
+      }
+    }
+    
+    if (validWords.length === 0) {
+      return '...';
+    }
+    
+    let result = '';
+    for (const word of validWords) {
+      const nextResult = result ? result + word : word;
+      
+      if (nextResult.length > this.maxDisplayLength) {
+        break;
+      }
+      
+      result = nextResult;
+    }
+    
+    if (!result && validWords.length > 0) {
+      result = validWords[0];
+    }
+    
+    return this.smartRemoveTrailingPunctuation(result);
+  }
+  
+  /**
+   * 按标点符号分割文本为词
+   */
+  private splitWordsByPunctuation(text: string): string[] {
+    if (!text) return [];
+    
+    const result: string[] = [];
+    let currentSegment = '';
+    let bracketDepth = 0;
+    
+    for (let i = 0; i < text.length; i++) {
+      const char = text[i];
+      
+      if (char === '(' || char === '(') {
+        bracketDepth++;
+        currentSegment += char;
+      } else if (char === ')' || char === ')') {
+        bracketDepth--;
+        currentSegment += char;
+      }
+      else if (bracketDepth === 0 && this.delimiters.includes(char)) {
+        if (currentSegment.trim()) {
+          result.push(currentSegment.trim());
+          currentSegment = '';
+        }
+        result.push(char);
+      }
+      else {
+        currentSegment += char;
+      }
+    }
+    
+    if (currentSegment.trim()) {
+      result.push(currentSegment.trim());
+    }
+    
+    const finalResult: string[] = [];
+    for (let i = 0; i < result.length; i++) {
+      const item = result[i];
+      
+      if (item.length === 1 && this.delimiters.includes(item)) {
+        if (finalResult.length > 0) {
+          finalResult[finalResult.length - 1] = finalResult[finalResult.length - 1] + item;
+        } else {
+          finalResult.push(item);
+        }
+      } else {
+        finalResult.push(item);
+      }
+    }
+    
+    const filteredResult = finalResult.filter(item => {
+      const shouldFilter = this.isPersonNamePattern(item);
+      return !shouldFilter && item.trim().length > 0;
+    });
+    
+    return filteredResult;
+  }
+  
+  /**
+   * 判断是否为人名模式
+   */
+  private isPersonNamePattern(text: string): boolean {
+    if (!text) return false;
+    
+    const pattern = /^[\((][^\))]+[\))].*人名/;
+    return pattern.test(text);
+  }
+  
+  /**
+   * 移除末尾的标点符号
+   */
+  private smartRemoveTrailingPunctuation(text: string): string {
+    if (!text) return '';
+    
+    let result = text;
+    
+    const endsWithEllipsis = result.endsWith('...') || result.endsWith('…');
+    let ellipsis = '';
+    
+    if (endsWithEllipsis) {
+      if (result.endsWith('...')) {
+        ellipsis = '...';
+        result = result.substring(0, result.length - 3);
+      } else if (result.endsWith('…')) {
+        ellipsis = '…';
+        result = result.substring(0, result.length - 1);
+      }
+    }
+    
+    const openBracketCount = (result.match(/\(/g) || []).length + (result.match(/(/g) || []).length;
+    const closeBracketCount = (result.match(/\)/g) || []).length + (result.match(/)/g) || []).length;
+    
+    if (openBracketCount > closeBracketCount) {
+      if (result.endsWith('(') || result.endsWith('(')) {
+        return result + ellipsis;
+      }
+    }
+    
+    const punctuationMarks = [
+      ';', ';', ',', ',', ':', ':', '、', '.', '。',
+    ];
+    
+    let changed = true;
+    while (changed && result.length > 0) {
+      changed = false;
+      for (const punctuation of punctuationMarks) {
+        if (result.endsWith(punctuation)) {
+          result = result.substring(0, result.length - punctuation.length);
+          changed = true;
+          break;
+        }
+      }
+    }
+    
+    if (result.endsWith(')') || result.endsWith(')')) {
+      const finalOpenBracketCount = (result.match(/\(/g) || []).length + (result.match(/(/g) || []).length;
+      const finalCloseBracketCount = (result.match(/\)/g) || []).length + (result.match(/)/g) || []).length;
+      
+      if (finalCloseBracketCount > finalOpenBracketCount) {
+        while ((result.endsWith(')') || result.endsWith(')')) && 
+               finalCloseBracketCount > finalOpenBracketCount) {
+          if (result.endsWith(')')) {
+            result = result.substring(0, result.length - 1);
+          } 
+        }
+      }
+    }
+    
+    return result + ellipsis;
+  }
+  
+  /**
+   * 简单截断文本(备用方法)
+   */
+  private simpleTruncate(text: string, maxLength: number): string {
+    if (!text || text.length <= maxLength) return this.smartRemoveTrailingPunctuation(text);
+    
+    let truncated = text.substring(0, maxLength);
+    
+    const lastDelimiterIndex = Math.max(
+      truncated.lastIndexOf(';'),
+      truncated.lastIndexOf(';'),
+      truncated.lastIndexOf(','),
+      truncated.lastIndexOf(','),
+      truncated.lastIndexOf(':'),
+      truncated.lastIndexOf(':'),
+      truncated.lastIndexOf('('),
+      truncated.lastIndexOf('('),
+      truncated.lastIndexOf('、')
+    );
+    
+    if (lastDelimiterIndex > 0 && lastDelimiterIndex > maxLength - 10) {
+      truncated = text.substring(0, lastDelimiterIndex + 1);
+    }
+    
+    return this.smartRemoveTrailingPunctuation(truncated);
+  }
+  
+  /**
+   * 随机打乱数组
+   */
+   shuffleArray<T>(array: T[]): T[] {
+    const newArray = [...array];
+    for (let i = newArray.length - 1; i > 0; i--) {
+      const j = Math.floor(Math.random() * (i + 1));
+      [newArray[i], newArray[j]] = [newArray[j], newArray[i]];
+    }
+    return newArray;
+  }
+  
+  /**
+   * 调试函数:检查单词解析问题
+   */
+  debugParseProblems(data: string): void {
+    console.log('=== 开始调试单词解析问题 ===');
+    const lines = data.split('\n');
+    let problemCount = 0;
+    
+    for (const line of lines) {
+      const trimmedLine = line.trim();
+      if (!trimmedLine) continue;
+      
+      const parts = trimmedLine.split('#');
+      if (parts.length < 3) {
+        console.warn(`格式错误: ${trimmedLine}`);
+        problemCount++;
+        continue;
+      }
+      
+      const word = parts[0].trim();
+      
+      for (let i = 2; i < parts.length; i++) {
+        const definitionPart = parts[i].trim();
+        if (!definitionPart) continue;
+        
+        if (this.singlePosMarkers.includes(definitionPart)) {
+          console.warn(`单词 "${word}" 的第${i-1}个词性只有标记没有释义: "${definitionPart}"`);
+          problemCount++;
+        }
+      }
+    }
+    
+    console.log(`=== 调试完成,发现 ${problemCount} 个问题 ===`);
+  }
+  
+  /**
+   * 获取所有释义(用于外部访问)
+   */
+  getAllDefinitions(): { word: string; definition: string; type: string }[] {
+    return [...this.allDefinitions];
+  }
+  
+  /**
+   * 获取所有释义的数量
+   */
+  getAllDefinitionsCount(): number {
+    return this.allDefinitions.length;
+  }
+}

+ 17 - 0
word-app/src/app/tab1/tab1.page.html

@@ -0,0 +1,17 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>
+      Tab 1
+    </ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">Tab 1</ion-title>
+    </ion-toolbar>
+  </ion-header>
+ <ion-button (click)="navigateToNewPage()">背单词</ion-button>
+  <app-explore-container name="Tab 1 page"></app-explore-container>
+</ion-content>

+ 0 - 0
word-app/src/app/tab1/tab1.page.scss


+ 18 - 0
word-app/src/app/tab1/tab1.page.spec.ts

@@ -0,0 +1,18 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { Tab1Page } from './tab1.page';
+
+describe('Tab1Page', () => {
+  let component: Tab1Page;
+  let fixture: ComponentFixture<Tab1Page>;
+
+  beforeEach(async () => {
+    fixture = TestBed.createComponent(Tab1Page);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 17 - 0
word-app/src/app/tab1/tab1.page.ts

@@ -0,0 +1,17 @@
+import { Component } from '@angular/core';
+import { IonHeader, IonToolbar, IonTitle, IonContent,IonButton } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+import { Router } from '@angular/router';
+
+@Component({
+  selector: 'app-tab1',
+  templateUrl: 'tab1.page.html',
+  styleUrls: ['tab1.page.scss'],
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent,IonButton],
+})
+export class Tab1Page {
+  constructor(private router: Router) {}
+   navigateToNewPage() {
+    this.router.navigate(['recite-words']); // 导航到新页面
+  }
+}

+ 17 - 0
word-app/src/app/tab2/tab2.page.html

@@ -0,0 +1,17 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>
+      Tab 2
+    </ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">Tab 2</ion-title>
+    </ion-toolbar>
+  </ion-header>
+
+  <app-explore-container name="Tab 2 page"></app-explore-container>
+</ion-content>

+ 0 - 0
word-app/src/app/tab2/tab2.page.scss


+ 18 - 0
word-app/src/app/tab2/tab2.page.spec.ts

@@ -0,0 +1,18 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { Tab2Page } from './tab2.page';
+
+describe('Tab2Page', () => {
+  let component: Tab2Page;
+  let fixture: ComponentFixture<Tab2Page>;
+
+  beforeEach(async () => {
+    fixture = TestBed.createComponent(Tab2Page);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 15 - 0
word-app/src/app/tab2/tab2.page.ts

@@ -0,0 +1,15 @@
+import { Component } from '@angular/core';
+import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+
+@Component({
+  selector: 'app-tab2',
+  templateUrl: 'tab2.page.html',
+  styleUrls: ['tab2.page.scss'],
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent]
+})
+export class Tab2Page {
+
+  constructor() {}
+
+}

+ 17 - 0
word-app/src/app/tab3/tab3.page.html

@@ -0,0 +1,17 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>
+      Tab 3
+    </ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">Tab 3</ion-title>
+    </ion-toolbar>
+  </ion-header>
+
+  <app-explore-container name="Tab 3 page"></app-explore-container>
+</ion-content>

+ 0 - 0
word-app/src/app/tab3/tab3.page.scss


+ 18 - 0
word-app/src/app/tab3/tab3.page.spec.ts

@@ -0,0 +1,18 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { Tab3Page } from './tab3.page';
+
+describe('Tab3Page', () => {
+  let component: Tab3Page;
+  let fixture: ComponentFixture<Tab3Page>;
+
+  beforeEach(async () => {
+    fixture = TestBed.createComponent(Tab3Page);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 13 - 0
word-app/src/app/tab3/tab3.page.ts

@@ -0,0 +1,13 @@
+import { Component } from '@angular/core';
+import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+
+@Component({
+  selector: 'app-tab3',
+  templateUrl: 'tab3.page.html',
+  styleUrls: ['tab3.page.scss'],
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent],
+})
+export class Tab3Page {
+  constructor() {}
+}

+ 18 - 0
word-app/src/app/tabs/tabs.page.html

@@ -0,0 +1,18 @@
+<ion-tabs>
+  <ion-tab-bar slot="bottom">
+    <ion-tab-button tab="tab1" href="/tabs/tab1">
+      <ion-icon aria-hidden="true" name="triangle"></ion-icon>
+      <ion-label>Tab 1</ion-label>
+    </ion-tab-button>
+
+    <ion-tab-button tab="tab2" href="/tabs/tab2">
+      <ion-icon aria-hidden="true" name="ellipse"></ion-icon>
+      <ion-label>Tab 2</ion-label>
+    </ion-tab-button>
+
+    <ion-tab-button tab="tab3" href="/tabs/tab3">
+      <ion-icon aria-hidden="true" name="square"></ion-icon>
+      <ion-label>Tab 3</ion-label>
+    </ion-tab-button>
+  </ion-tab-bar>
+</ion-tabs>

+ 1 - 0
word-app/src/app/tabs/tabs.page.scss

@@ -0,0 +1 @@
+

+ 26 - 0
word-app/src/app/tabs/tabs.page.spec.ts

@@ -0,0 +1,26 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { provideRouter } from '@angular/router';
+
+import { TabsPage } from './tabs.page';
+
+describe('TabsPage', () => {
+  let component: TabsPage;
+  let fixture: ComponentFixture<TabsPage>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [TabsPage],
+      providers: [provideRouter([])]
+    }).compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(TabsPage);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 18 - 0
word-app/src/app/tabs/tabs.page.ts

@@ -0,0 +1,18 @@
+import { Component, EnvironmentInjector, inject } from '@angular/core';
+import { IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel } from '@ionic/angular/standalone';
+import { addIcons } from 'ionicons';
+import { triangle, ellipse, square } from 'ionicons/icons';
+
+@Component({
+  selector: 'app-tabs',
+  templateUrl: 'tabs.page.html',
+  styleUrls: ['tabs.page.scss'],
+  imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel],
+})
+export class TabsPage {
+  public environmentInjector = inject(EnvironmentInjector);
+
+  constructor() {
+    addIcons({ triangle, ellipse, square });
+  }
+}

+ 40 - 0
word-app/src/app/tabs/tabs.routes.ts

@@ -0,0 +1,40 @@
+import { Routes } from '@angular/router';
+import { TabsPage } from './tabs.page';
+
+export const routes: Routes = [
+  {
+    path: 'tabs',
+    component: TabsPage,
+    children: [
+      {
+        path: 'tab1',
+        loadComponent: () =>
+          import('../tab1/tab1.page').then((m) => m.Tab1Page),
+      },
+      {
+        path: 'tab2',
+        loadComponent: () =>
+          import('../tab2/tab2.page').then((m) => m.Tab2Page),
+      },
+      {
+        path: 'tab3',
+        loadComponent: () =>
+          import('../tab3/tab3.page').then((m) => m.Tab3Page),
+      },
+      {
+    path: 'recite-words',
+    loadComponent: () => import('../recite-words/recite-words.page').then( m => m.ReciteWordsPage)
+      },
+      {
+        path: '',
+        redirectTo: '/tabs/tab1',
+        pathMatch: 'full',
+      },
+    ],
+  },
+  {
+    path: '',
+    redirectTo: '/tabs/tab1',
+    pathMatch: 'full',
+  },
+];

+ 44 - 0
word-app/src/app/word-detail/word-detail.component.html

@@ -0,0 +1,44 @@
+<div class="word-detail-container">
+  
+  <!-- 单词释义部分 -->
+  <div class="definition-section">
+    <!-- 原有的数据结构不变,只修改样式 -->
+    <div class="definition-group">
+      <!-- 这里通过 TypeScript 动态生成释义 -->
+      <div *ngFor="let definition of allDefinitions; let i = index" 
+           class="definition-item">
+        <span class="definition-text">{{ definition }}</span>
+      </div>
+    </div>
+  </div>
+
+  <!-- 分割线 -->
+  <div class="divider"></div>
+
+  <!-- 例句部分 -->
+  <div class="example-section">
+    <h3 class="section-title">例句</h3>
+    
+    <div class="example-item" *ngFor="let example of examples">
+      <div class="english-text">
+        {{ example.english }}
+      </div>
+      <div class="chinese-text">
+        {{ example.chinese }}
+      </div>
+    </div>
+  </div>
+
+  <!-- 短语部分 -->
+  <div class="phrase-section" *ngIf="phrases.length > 0">
+    <div class="phrase-item" *ngFor="let phrase of phrases">
+      <div class="english-text">
+        {{ phrase.english }}
+      </div>
+      <div class="chinese-text">
+        {{ phrase.chinese }}
+      </div>
+    </div>
+  </div>
+
+</div>

+ 129 - 0
word-app/src/app/word-detail/word-detail.component.scss

@@ -0,0 +1,129 @@
+.word-detail-container {
+  background: white;
+  border-radius: 16px;
+  padding: 0;
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
+}
+
+/* 释义部分样式  */
+.definition-section {
+  padding: 0px 10px 10px 10px;
+  
+  .definition-group {
+    .definition-item {
+      display: block;
+      margin-bottom: 5px;
+      line-height: 1.5;
+      padding-left: 0; /* 移除左侧缩进 */
+      
+      &:last-child {
+        margin-bottom: 0;
+      }
+      
+      .definition-text {
+        display: block;
+        font-size: 16px;
+        color: #000;
+        line-height: 1.6;
+        letter-spacing: 0.3px;
+        font-weight: 400;
+      }
+    }
+  }
+}
+
+/* 分割线 */
+.divider {
+  height: 1px;
+  background-color: rgba(0, 0, 0, 0.1);
+  margin: 0;
+}
+
+/* 例句部分样式 - 保持原有样式 */
+.example-section {
+  padding: 20px 16px;
+  background-color: rgba(56, 128, 255, 0.02);
+  
+  .section-title {
+    font-size: 18px;
+    font-weight: 600;
+    color: #000;
+    margin-bottom: 16px;
+  }
+  
+  .example-item {
+    margin-bottom: 16px;
+    
+    &:last-child {
+      margin-bottom: 0;
+    }
+    
+    .english-text {
+      font-size: 15px;
+      color: #000;
+      line-height: 1.6;
+      margin-bottom: 8px;
+      font-style: italic;
+      font-weight: 400;
+    }
+    
+    .chinese-text {
+      font-size: 14px;
+      color: #666;
+      line-height: 1.5;
+    }
+  }
+}
+
+/* 短语部分样式 - 保持原有样式 */
+.phrase-section {
+  padding: 16px;
+  background-color: rgba(16, 220, 96, 0.02);
+  
+  .phrase-item {
+    margin-bottom: 16px;
+    
+    &:last-child {
+      margin-bottom: 0;
+    }
+    
+    .english-text {
+      font-size: 15px;
+      color: #000;
+      font-weight: 500;
+      line-height: 1.5;
+      margin-bottom: 4px;
+    }
+    
+    .chinese-text {
+      font-size: 14px;
+      color: #666;
+      line-height: 1.4;
+    }
+  }
+}
+
+/* 响应式调整 */
+@media (max-width: 375px) {
+  .word-detail-container {
+    margin-top: 16px;
+  }
+  
+  .definition-section {
+    padding: 16px;
+    
+    .definition-group {
+      .definition-item {
+        .definition-text {
+          font-size: 15px;
+        }
+      }
+    }
+  }
+  
+  .example-section,
+  .phrase-section {
+    padding: 16px;
+  }
+}

+ 22 - 0
word-app/src/app/word-detail/word-detail.component.spec.ts

@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { WordDetailComponent } from './word-detail.component';
+
+describe('WordDetailComponent', () => {
+  let component: WordDetailComponent;
+  let fixture: ComponentFixture<WordDetailComponent>;
+
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      imports: [WordDetailComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(WordDetailComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  }));
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 37 - 0
word-app/src/app/word-detail/word-detail.component.ts

@@ -0,0 +1,37 @@
+import { Component, Input } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { IonicModule } from '@ionic/angular';
+
+
+@Component({
+  selector: 'app-word-detail',
+  templateUrl: './word-detail.component.html',
+  styleUrls: ['./word-detail.component.scss'],
+  standalone: true,
+  imports: [CommonModule, IonicModule]
+})
+export class WordDetailComponent {
+  @Input() allDefinitions: string[] = [];
+
+  // 获取例句
+  get examples() {
+    // 这里应该根据单词动态获取例句
+    // 暂时使用静态数据
+    return [
+      {
+        english: 'This is not a legal document. This is just something you wrote.',
+        chinese: '这又不是法律文件,这只是你随便写的。'
+      }
+    ];
+  }
+
+  // 获取短语
+  get phrases() {
+    // 这里应该根据单词动态获取短语
+    // 暂时使用静态数据
+    return [
+      { english: 'a legal document', chinese: '法律文件' },
+      { english: 'document an experience', chinese: '记录经历' }
+    ];
+  }
+}

BIN
word-app/src/assets/icon/favicon.png


+ 1 - 0
word-app/src/assets/shapes.svg

@@ -0,0 +1 @@
+<svg width="350" height="140" xmlns="http://www.w3.org/2000/svg" style="background:#f6f7f9"><g fill="none" fill-rule="evenodd"><path fill="#F04141" style="mix-blend-mode:multiply" d="M61.905-34.23l96.194 54.51-66.982 54.512L22 34.887z"/><circle fill="#10DC60" style="mix-blend-mode:multiply" cx="155.5" cy="135.5" r="57.5"/><path fill="#3880FF" style="mix-blend-mode:multiply" d="M208.538 9.513l84.417 15.392L223.93 93.93z"/><path fill="#FFCE00" style="mix-blend-mode:multiply" d="M268.625 106.557l46.332-26.75 46.332 26.75v53.5l-46.332 26.75-46.332-26.75z"/><circle fill="#7044FF" style="mix-blend-mode:multiply" cx="299.5" cy="9.5" r="38.5"/><rect fill="#11D3EA" style="mix-blend-mode:multiply" transform="rotate(-60 148.47 37.886)" x="143.372" y="-7.056" width="10.196" height="89.884" rx="5.098"/><path d="M-25.389 74.253l84.86 8.107c5.498.525 9.53 5.407 9.004 10.905a10 10 0 0 1-.057.477l-12.36 85.671a10.002 10.002 0 0 1-11.634 8.42l-86.351-15.226c-5.44-.959-9.07-6.145-8.112-11.584l13.851-78.551a10 10 0 0 1 10.799-8.219z" fill="#7044FF" style="mix-blend-mode:multiply"/><circle fill="#0CD1E8" style="mix-blend-mode:multiply" cx="273.5" cy="106.5" r="20.5"/></g></svg>

+ 5520 - 0
word-app/src/assets/words.txt

@@ -0,0 +1,5520 @@
+abandon#/əˈbændən/#v.遗弃;离开;放弃;终止;陷入#n.放任,狂热
+ability#/əˈbɪləti/#n.能力,能耐;才能
+able#/ˈeɪbl/#adj.能;[经管]有能力的;能干的#n.(Able)人名;(伊朗)阿布勒;(英)埃布尔
+abnormal#/æbˈnɔːrml/#adj.反常的,不规则的;变态的
+aboard#/əˈbɔːrd/#adv.在(飞机、火车、船)上;骑在(马)上;(喻)新入伙;(棒球)在垒上#prep.在(船或飞机)上
+abolish#/əˈbɑːlɪʃ/#vt.废除,废止;取消,革除
+about#/əˈbaʊt/#adv.附近,大约,转向,左右,周围;#prep.在附近,关于,在...周围,忙于
+above#/əˈbʌv/#adj.上面的,上述的,上文的;#adv.在上面;#prep.在...上方,过于,超出
+abroad#/əˈbrɔːd/#adv.在国外;到海外#adj.往国外的#n.海外;异国
+abrupt#/əˈbrʌpt/#adj.生硬的;突然的;唐突的;陡峭的
+absence#/ˈæbsəns/#n.没有;缺乏;缺席;不注意
+absent#/ˈæbsənt/#adj.缺席的;缺少的;心不在焉的;茫然的#vt.使缺席
+absolute#/ˈæbsənt/#adj.绝对的;完全的;专制的#n.绝对;绝对事物
+absolutely#/ˈæbsəluːtli/#adv.绝对地;完全地
+absorb#/əbˈzɔːb/#vt.吸收;吸引;承受;理解;使…全神贯注
+abstract#/ˈæbstrækt/#adj.纯理论的;抽象的;抽象派的#n.摘要;抽象;抽象的概念;抽象派艺术作品#v.摘要;提取;抽象化;退出;转移;使心不在焉
+absurd#/əbˈsɜːrd/#adj.荒谬的;可笑的#n.荒诞;荒诞作品
+abundance#/əˈbʌndəns/#n.充裕,丰富
+abundant#/əˈbʌndənt/#adj.丰富的;充裕的;盛产的
+abuse#/əˈbjuːs/#n.滥用;虐待;辱骂;弊端;恶习,陋习#vt.滥用;虐待;辱骂#n.(Abuse)人名;(英)阿比斯
+academic#/ˌækəˈdemɪk/#adj.学术的;理论的;学院的#n.大学生,大学教师;学者
+academy#/əˈkædəmi/#n.学院;研究院;学会;专科院校
+accelerate#/əkˈseləreɪt/#vt.使……加快;使……增速#vi.加速;促进;增加
+acceleration#/əkˌseləˈreɪʃn/#n.加速,促进;[物]加速度;跳级
+accent#/ˈæksənt/#n.口音;重音;强调;特点;重音符号#vt.强调;重读;带…口音讲话
+accept#/əkˈsept/#vt.接受;承认;承担;承兑;容纳#vi.承认;同意;承兑
+acceptable#/əkˈseptəbl/#adj.可接受的;合意的;可忍受的
+acceptance#/əkˈseptəns/#n.接纳;赞同;容忍
+access#/ˈækses/#n.通路,访问,入门#vt.存取,接近
+accessory#/əkˈsesəri/#n.配件;附件;[法]从犯#adj.副的;同谋的;附属的
+accident#/ˈæksɪdənt/#n.事故;意外;[法]意外事件;机遇
+accidental#/ˌæksɪˈdentl/#adj.意外的;偶然的;附属的;临时记号的#n.次要方面;非主要的特性;临时记号
+accommodate#/əˈkɑːmədeɪt/#vt.容纳;使适应;供应;调解#vi.适应;调解
+accommodation#/əˌkɑːməˈdeɪʃn/#n.住处,膳宿;调节;和解;预订铺位
+accompany#/əˈkʌmpəni/#vt.陪伴,伴随;伴奏#vi.伴奏,伴唱
+accomplish#/əˈkɑːmplɪʃ/#vt.完成;实现;达到
+accord#/əˈkɔːrd/#n.符合;一致;协议;自愿#vt.使一致;给予#vi.符合;一致
+accordance#/əˈkɔːrdns/#n.按照,依据;一致,和谐
+accordingly#/əˈkɔːrdɪŋli/#adv.因此,于是;相应地;照着
+account#/əˈkaʊnt/#n.账户;解释;账目,账单;理由;描述#vi.解释;导致;报账#vt.认为;把…视为
+accumulate#/əˈkjuːmjəleɪt/#vi.累积;积聚#vt.积攒
+accuracy#/ˈækjərəsi/#n.[数]精确度,准确性
+accurate#/ˈækjərət/#adj.精确的
+accuse#/əˈkjuːz/#vt.控告,指控;谴责;归咎于#vi.指责;控告
+accustom#/əˈkʌstəm/#v.使习惯于,使适应
+accustomed#/əˈkʌstəmd/#adj.习惯的;通常的;独有的#v.使习惯于(accustom的过去分词)
+ache#/eɪk/#n.疼痛#vi.觉得疼痛,渴望
+achieve#/əˈtʃiːv/#vt.取得;获得;实现;成功#vi.达到预期的目的,实现预期的结果,如愿以偿
+achievement#/əˈtʃiːvmənt/#n.成就;完成;达到;成绩
+acid#/ˈæsɪd/#n.酸;俚迷幻药#adj.酸的;讽刺的;刻薄的
+acknowledge#/əkˈnɑːlɪdʒ/#vt.承认;答谢;报偿;告知已收到
+acquaint#/əˈkweɪnt/#vt.使熟悉;使认识
+acquaintance#/əˈkweɪntəns/#n.熟人;相识;了解;知道
+acquire#/əˈkwaɪər/#vt.获得;取得;学到;捕获
+acquisition#/ˌækwɪˈzɪʃn/#n.获得物,获得;收购
+acre#/ˈeɪkər/#n.土地,地产;英亩
+across#/əˈkrɔːs/#adv.横过,交叉地,在对面#prep.越过,交叉,在...的那边,在...对面那边
+act#/ækt/#n.幕,法案,法令,动作,举动,节目,(戏剧的)幕#vi.行动,产生...的效果,担当,表演,假装,表现,见效#vt.扮演,装作
+action#/ˈækʃn/#n.行动;活动;功能;战斗;情节#n.(Action)(英)埃克申(人名)
+activate#/ˈæktɪveɪt/#vt.刺激;使活动;使活泼;使产生放射性#vi.激活;有活力
+active#/ˈæktɪv/#adj.积极的;活跃的;主动的;有效的;现役的#n.主动语态;积极分子
+activity#/ækˈtɪvəti/#n.活动;行动;活跃
+actor#/ˈæktər/#n.男演员;行动者;作用物
+actress#/ˈæktrəs/#n.女演员
+actual#/ˈæktʃuəl/#adj.真实的,实际的;现行的,目前的
+actually#/ˈæktʃuəli/#adv.实际上;事实上
+acute#/əˈkjuːt/#adj.严重的,[医]急性的;敏锐的;激烈的;尖声的
+ad#/æd/#abbr.优势(advantage)#n.广告;促销活动;预告片(advertisement,非正式)
+adapt#/əˈdæpt/#vt.使适应;改编#vi.适应
+add#/æd/#vi.加;增加;加起来;做加法#vt.增加,添加;补充说;计算…总和#n.加法,加法运算
+addition#/əˈdɪʃn/#n.添加;[数]加法;增加物
+additional#/əˈdɪʃənl/#adj.附加的,额外的
+address#/əˈdres,ˈædres/#n.地址,致辞,演讲,说话的技巧#vt.向...致辞,演说,写姓名地址,从事,忙于
+adequate#/ˈædɪkwət/#adj.充足的;适当的;胜任的
+adhere#/ədˈhɪr/#vi.坚持;依附;粘着;追随#vt.使粘附
+adjacent#/əˈdʒeɪsnt/#adj.邻近的,毗连的
+adjective#/ˈædʒɪktɪv/#adj.形容词的;从属的#n.形容词
+adjoin#/əˈdʒɔɪn/#vi.毗连,邻接#vt.毗连,邻接
+adjust#/əˈdʒʌst/#vt.调整,使…适合;校准#vi.调整,校准;适应
+administer#/ədˈmɪnɪstər/#vt.管理;执行;给予#vi.给予帮助;执行遗产管理人的职责;担当管理人
+administration#/ədˌmɪnɪˈstreɪʃn/#n.管理;行政;实施;行政机构
+admire#/ədˈmaɪər/#vt.钦佩;赞美#vi.钦佩;称赞
+admission#/ədˈmɪʃn/#n.承认;入场费;进入许可;坦白;录用
+admit#/ədˈmɪt/#vt.承认;准许进入;可容纳#vi.承认;容许
+adolescent#/ˌædəˈlesnt/#adj.青春期的;未成熟的#n.青少年
+adopt#/əˈdɑːpt/#vt.采取;接受;收养;正式通过#vi.采取;过继
+adult#/əˈdʌlt,ˈædʌlt/#adj.成年的;成熟的#n.成年人
+advance#/ədˈvæns/#n.发展;前进;增长;预付款#vt.提出;预付;使……前进;将……提前#vi.前进;进展;上涨#adj.预先的;先行的
+advanced#/ədˈvænst/#adj.先进的;高级的;晚期的;年老的#v.前进;增加;上涨(advance的过去式和过去分词形式)
+advantage#/ədˈvæntɪdʒ/#n.优势;利益;有利条件#vi.获利#vt.有利于;使处于优势
+advent#/ˈædvent/#n.到来;出现;基督降临;基督降临节
+adventure#/ədˈventʃər/#n.冒险;冒险精神;投机活动#vt.冒险;大胆说出#vi.冒险
+adverb#/ˈædvɜːrb/#n.副词#adj.副词的
+adverse#/ədˈvɜːrs,ˈædvɜːrs/#adj.不利的;相反的;敌对的(名词adverseness,副词adversely)
+advertise#/ˈædvərtaɪz/#vt.通知;为…做广告;使突出#vi.做广告,登广告;作宣传
+advertisement#/ˌædvərˈtaɪzmənt/#n.广告,宣传
+advice#/ədˈvaɪs/#n.建议;忠告;劝告;通知
+advisable#/ədˈvaɪzəbl/#adj.明智的,可取的,适当的
+advise#/ədˈvaɪz/#vt.建议;劝告,忠告;通知;警告#vi.建议;与…商量
+advocate#/ˈædvəkeɪt;ˈædvəkət/#v.提倡,拥护;为……辩护#n.拥护者;辩护者;辩护律师,出庭律师;律师;为(某团体)谋利益者
+aerial#/ˈeriəl/#adj.空中的,航空的;空气的;空想的#n.[电讯]天线
+aero#/ˈeroʊ/#adj.航空的,飞行的,飞机的
+aeroplane#/ˈerəpleɪn/#n.飞机(等于airplane)
+aesthetic#/esˈθetɪk/#adj.美的;美学的;审美的,具有审美趣味的#n.审美;美学
+affair#/əˈfer/#n.事情;事务;私事;(尤指关系不长久的)风流韵事
+affect#/əˈfekt/#vt.影响;感染;感动;假装#vi.倾向;喜欢#n.情感;引起感情的因素
+affection#/əˈfekʃn/#n.喜爱,感情;影响;感染
+affiliate#/əˈfɪlieɪt/#v.(使)附属,隶属;加入,加盟,并入;接纳;紧密联系#n.分支机构;子公司;分社;联号
+affirm#/əˈfɜːrm/#vt.肯定;断言#vi.确认;断言
+afflict#/əˈflɪkt/#vt.折磨;使痛苦;使苦恼
+afford#/əˈfɔːrd/#vt.买得起;给予,提供#n.(Afford)(英、美)阿福德(人名)
+afraid#/əˈfreɪd/#adj.害怕的;恐怕;担心的
+Africa#/ˈæfrɪkə/#n.非洲
+African#/ˈæfrɪkən/#adj.(与)非洲(有关)的;非洲人的#n.非洲人(尤指黑人);非洲黑人后裔
+after#/ˈæftər/#prep.在……之后;在……身后;反复;跟随;追求;以……命名#conj.在……之后#adv.后来,以后#adj.后来的,以后的;后部的
+afternoon#/ˌæftərˈnuːn/#n.午后,下午
+afterward#/ˈæftərwərd/#adv.以后,后来
+again#/əˈɡen,əˈɡeɪn/#adv.又,此外;再一次;再说;增加#n.(英、保)阿盖恩
+against#/əˈɡeɪnst/#prep.相反,反对,逆着,靠着,倚着
+age#/eɪdʒ/#n.年龄;时代;寿命,使用年限;阶段#vi.成熟;变老#vt.使成熟;使变老,使上年纪#n.(Age)人名;(瑞典)阿格;(日)扬(姓);(西、荷)阿赫
+agency#/ˈeɪdʒənsi/#n.代理,中介;代理处,经销处;作用
+agenda#/əˈdʒendə/#n.议程;日常工作事项;日程表
+agent#/ˈeɪdʒənt/#n.代理人,代理商;药剂;特工;动因#vt.由…作中介;由…代理#adj.代理的#n.(Agent)人名;(罗)阿真特
+aggravate#/ˈæɡrəveɪt/#vt.加重;使恶化;激怒
+aggressive#/əˈɡresɪv/#adj.侵略性的;好斗的;有进取心的;有闯劲的
+agitation#/ˌædʒɪˈteɪʃn/#n.激动;搅动;煽动;烦乱
+ago#/əˈɡoʊ/#adv.以前#adj.以前的#n.(Ago)(美)阿戈(人名)
+agony#/ˈæɡəni/#n.苦恼;极大的痛苦;临死的挣扎
+agree#/əˈɡriː/#vt.同意,赞成;承认;约定,商定#vi.同意,意见一致;约定,商定
+agreeable#/əˈɡriːəbl/#adj.令人愉快的;适合的;和蔼可亲的
+agreement#/əˈɡriːmənt/#n.协议;同意,一致
+agriculture#/ˈæɡrɪkʌltʃər/#n.农业;农耕;农业生产;农艺,农学
+ahead#/əˈhed/#adv.朝前地,在前面;提前地;领先;(为进步而)向前地;(数量或价值上)更多,更高;将来;获得成功;占优势#adj.在前的,领先的;提前的
+AI#/ˌeɪˈaɪ/#abbr.人工智能
+aid#/eɪd/#n.援助;帮助;助手;帮助者#vt.援助;帮助;有助于#vi.帮助#n.(Aid)人名;(阿拉伯、印、英)艾德
+aim#/eɪm/#v.目的在于;引导;把……对准;瞄准#n.目的;瞄准
+air#/er/#n.空气,大气;天空;样子;曲调#vt.使通风,晾干;夸耀#vi.通风
+aircraft#/ˈerkræft/#n.飞机,航空器
+airline#/ˈerlaɪn/#n.航空公司;航线#adj.航线的
+airplane#/ˈerpleɪn/#n.飞机
+airport#/ˈerpɔːrt/#n.机场;航空站
+alarm#/əˈlɑːrm/#n.闹钟;警报,警告器;惊慌#vt.警告;使惊恐
+alcohol#/ˈælkəhɔːl/#n.酒精,乙醇
+alert#/əˈlɜːrt/#adj.提防的,警惕的#n.警惕,警报
+alien#/ˈeɪliən/#adj.外国的;相异的,性质不同的;不相容的#n.外国人,外侨;外星人#vt.让渡,转让#n.(Alien)人名;(法)阿利安
+alike#/əˈlaɪk/#adj.相似的;相像的#adv.十分相像地,很相似地;两者都,同样地;同等对待地,一视同仁地#n.(Alike)(印、美)艾立凯(人名)
+alive#/əˈlaɪv/#adj.活着的;活泼的;有生气的
+all#/ɔːl/#adj.全部的,所有的,整个的#adv.完全,更加,越发#pron.全部
+allege#/əˈledʒ/#vt.宣称,断言;提出…作为理由
+alleviate#/əˈliːvieɪt/#vt.减轻,缓和
+alliance#/əˈlaɪəns/#n.联盟,联合;联姻
+allocate#/ˈæləkeɪt/#vt.分配;拨出#vi.分配;指定
+allow#/əˈlaʊ/#vt.允许;给予;认可#vi.容许;考虑
+allowance#/əˈlaʊəns/#n.津贴,零用钱;允许;限额#vt.定量供应
+alloy#/ˈælɔɪ;əˈlɔɪ/#n.合金#v.把……铸成合金;使……减低成色#n.(Alloy)(美、法、英、巴、加)阿洛伊(人名)
+ally#/ˈælaɪ/#n.同盟国;伙伴;同盟者;助手#vt.使联盟;使联合#vi.联合;结盟#n.(Ally)人名;(巴基)阿利;(法)阿利;(英)艾丽(女子教名Alice的简称);(尼日利)阿利
+almost#/ˈɔːlmoʊst/#adv.差不多,几乎
+alone#/əˈloʊn/#adj.独自的;单独的;单干的;孤独的;仅仅的;唯一的#adv.独自地;单独地;单干地;只,仅仅;仅仅……就;唯一地;独力地
+along#/əˈlɔːŋ/#prep.沿着;顺着;(事件)进展#adv.一起;向前;来到;越来越(好);一直
+alongside#/əˌlɔːŋˈsaɪd/#prep.在……旁边,沿着……的边;与……一起,合作;与……同时,共存;与……相比#adv.在旁边
+aloud#/əˈlaʊd/#adv.大声地;出声地
+alphabet#/ˈælfəbet/#n.字母表,字母系统;入门,初步#n.Google创建的名为Alphabet的公司,改变Google原有公司架构,旨在使其当下主要业务和长期投资项目间的区别更加清晰。
+already#/ɔːlˈredi/#adv.已经,早已;先前
+also#/ˈɔːlsoʊ/#adv.也;而且;同样#conj.并且;另外#n.(Also)人名;(罗)阿尔索
+alter#/ˈɔːltər/#vt.改变,更改#vi.改变;修改#n.(Alter)(美、德)阿尔特(人名)
+alternate#/ˈɔːltərnət/#adj.交替的,轮流的,预备的#v.交替,轮流,改变
+alternative#/ɔːlˈtɜːrnətɪv/#adj.供选择的;选择性的;交替的#n.二中择一;供替代的选择
+although#/ɔːlˈðoʊ/#conj.尽管,虽然;但是,然而
+altitude#/ˈæltɪtuːd/#n.高地;高度;[数]顶垂线;(等级和地位等的)高级;海拔
+altogether#/ˌɔːltəˈɡeðər/#adv.完全地;总共;总而言之#n.整个;裸体
+aluminium#/ˌæljəˈmɪniəm/#n.铝#adj.铝的
+always#/ˈɔːlweɪz/#adv.永远,一直;总是;常常
+amateur#/ˈæmətər,ˈæmətʃər/#n.业余爱好者;生手,外行#adj.业余爱好的;业余的;外行的;不熟练的
+amaze#/əˈmeɪz/#vt.使吃惊
+ambassador#/æmˈbæsədər/#n.大使;代表;使节
+ambiguous#/æmˈbɪɡjuəs/#adj.模糊不清的,模棱两可的;不明确的,不明朗的;引起歧义的
+ambition#/æmˈbɪʃn/#n.野心,雄心;抱负,志向#vt.追求;有…野心
+ambitious#/æmˈbɪʃəs/#adj.野心勃勃的;有雄心的;热望的;炫耀的
+ambulance#/ˈæmbjələns/#n.[车辆][医]救护车;战时流动医院
+amend#/əˈmend/#vt.修改;改善,改进#vi.改正,改善;改过自新#n.(Amend)人名;(德、英)阿门德
+amends#/əˈmendz/#n.赔偿;赔罪#v.修订(amend的第三人称单数);改进
+America#/əˈmerɪkə/#n.美洲(包括北美和南美洲);美国
+American#/əˈmerɪkən/#n.美国人,美洲人;美国英语#adj.美国的,美洲的;地道美国式的
+among#/əˈmʌŋ/#prep.在……中间,周围是;在……之中,……之一;与……在一起;在三者或以上(中选择);以及;为……所特有;(群体内部)相互间
+amongst#/əˈmʌŋst/#prep.在……当中(等于among)
+amount#/əˈmaʊnt/#n.数量,数额;总数;(感情、特质的)程度#v.总计,合计;等于,相当于;发展成,变成
+ampere#/æm'pɪr/#n.安培(计算电流强度的标准单位)
+ample#/ˈæmpl/#adj.丰富的;足够的;宽敞的#n.(Ample)人名;(西)安普尔
+amplify#/ˈæmplɪfaɪ/#vt.放大,扩大;增强;详述#vi.详述
+amuse#/əˈmjuːz/#vt.娱乐;消遣;使发笑;使愉快
+analogy#/əˈnælədʒi/#n.类比;类推;类似
+analyse#/ˈænəlaɪz/#vt.分析;分解;细察
+analysis#/əˈnæləsɪs/#n.分析;分解;验定
+analytic#/ˌænəˈlɪtɪk/#adj.分析的;解析的;善于分析的
+analytical#/ˌænəˈlɪtɪkl/#adj.分析的;解析的;善于分析的
+ancestor#/ˈænsestər/#n.始祖,祖先;被继承人
+anchor#/ˈæŋkər/#n.锚;抛锚停泊;靠山;新闻节目主播#vt.抛锚;使固定;主持节目#vi.抛锚#adj.末棒的;最后一棒的
+ancient#/ˈeɪnʃənt/#adj.古代的;古老的,过时的;年老的#n.古代人;老人
+and#/ənd,ən,n,ænd/#conj.和,与;就;而且;但是;然后#n.(And)人名;(土、瑞典)安德
+angel#/ˈeɪndʒl/#n.天使,完善可爱的人
+anger#/ˈæŋɡər/#n.怒,愤怒;忿怒#vt.使发怒,激怒;恼火#vi.发怒;恼火#n.(Anger)人名;(罗)安杰尔;(法)安热;(德、捷、瑞典)安格尔
+angle#/ˈæŋɡl/#n.角,角度;视角;立场;角铁;(古)鱼钩#v.斜移;从……角度提供信息;钓鱼;谋取
+Angle#/ˈæŋɡl/#n.盎格鲁人
+angry#/ˈæŋɡri/#adj.生气的;愤怒的;狂暴的;(伤口等)发炎的
+animal#/ˈænɪml/#n.动物#adj.动物的
+ankle#/ˈæŋkl/#n.踝关节,踝
+anniversary#/ˌænɪˈvɜːrsəri/#n.周年纪念日
+announce#/əˈnaʊns/#vt.宣布;述说;预示;播报#vi.宣布参加竞选;当播音员
+announcer#/əˈnaʊnsər/#n.[广播]广播员;宣告者
+annoy#/əˈnɔɪ/#vt.骚扰;惹恼;打搅#vi.惹恼;令人讨厌;打搅#n.烦恼(等于annoyance)
+annual#/ˈænjuəl/#adj.年度的;每年的#n.年刊,年鉴;一年生植物
+anonymous#/əˈnɑːnɪməs/#adj.匿名的,无名的;无个性特征的
+another#/əˈnʌðər/#det.又一,另一;另外的,不同的;类似pron.又一,另一;另外的,不同的;类似#adj.不同的;另一个(人);类似的
+answer#/ˈænsər/#n.答案,回答,答辩,抗辩#v.回答说,答复说,符合,反响,响应
+ant#/ænt/#n.蚂蚁#n.(Ant)人名;(土、芬)安特
+antarctic#/ænˈtɑːrktɪk/#adj.南极的;[地理]南极地带的#n.(theAntarctic)南极洲;南极地区
+anticipate#/ænˈtɪsɪpeɪt/#v.预料,预期;预见,预计(并做准备);期盼,期望;先于……做,早于……行动;在期限内履行(义务),偿还(债务);提前使用
+antique#/ænˈːk/#adj.古老的,年代久远的;过时的,古董的;古风的,古式的#n.古董,古玩;古风,古希腊和古罗马艺术风格#vi.觅购古玩
+anxiety#/æŋˈzaɪəti/#n.焦虑;渴望;挂念;令人焦虑的事
+anxious#/ˈæŋkʃəs/#adj.焦虑的;担忧的;渴望的;急切的
+any#/ˈeni/#adj.任何的,任何一种,所有的#pron.无论那一个,任何
+anybody#/ˈenibɑːdi,ˈenibʌdi/#pron.任何人;有人,别人;随便哪一个人#n.重要人物;平常人
+anyhow#/ˈenihaʊ/#adv.总之;无论如何;不管怎样
+anyone#/ˈeniwʌn/#pron.任何人;某个人;任何……的人;重要人物;(没有)一个人(用于否定句);任何一个人
+anything#/ˈeniθɪŋ/#pron.任何东西,任何事物;随便哪个东西;重要东西;某事物(用于疑问句和条件分句中)#adv.根本,究竟(表否定)
+anyway#/ˈeniweɪ/#adv.无论如何,不管怎样;总之
+anywhere#/ˈeniwer/#adv.在任何地方;无论何处#n.任何地方
+apart#/əˈpɑːrt/#adv.相距;与众不同地;分离着#adj.分离的;与众不同的
+apartment#/əˈpɑːrtmənt/#n.公寓;房间
+apologize#/əˈpɑːlədʒaɪz/#vi.道歉,谢罪;辩解,辩护
+apology#/əˈpɑːlədʒi/#n.道歉;谢罪;辩护;勉强的替代物
+apparatus#/ˌæpəˈrætəs/#n.装置,设备;仪器;器官
+apparent#/əˈpærənt/#adj.显然的;表面上的
+appeal#/əˈpiːl/#n.请求,呼吁,上诉,吸引力,要求;#vi.求助,诉请,要求;#vt.控诉
+appear#/əˈpɪr/#v.出现;显得;似乎#vi.出庭;登场
+appearance#/əˈpɪrəns/#n.外貌,外观;出现,露面
+appendix#/əˈpendɪks/#n.附录;阑尾;附加物
+appetite#/ˈæpɪtaɪt/#n.食欲;嗜好
+applaud#/əˈplɔːd/#vt.赞同;称赞;向…喝彩#vi.喝彩;鼓掌欢迎
+apple#/ˈæpl/#n.苹果
+appliance#/əˈplaɪəns/#n.器具;器械;装置;应用
+applicable#/əˈplɪkəbl/#adj.可适用的;可应用的;合适的
+application#/ˌæplɪˈkeɪʃn/#n.应用;申请;应用程序;敷用;(对事物、学习等)投入
+apply#/əˈplaɪ/#vt.申请;涂,敷;应用#vi.申请;涂,敷;适用;请求
+appoint#/əˈpɔɪnt/#vt.任命;指定;约定#vi.任命;委派
+appointment#/əˈpɔɪntmənt/#n.任命;约定;任命的职位
+appraisal#/əˈpreɪzl/#n.评价;估价(尤指估价财产,以便征税);估计
+appreciable#/əˈpriːʃəbl/#adj.可感知的;可评估的;相当可观的
+appreciate#/əˈpriːʃieɪt/#vt.欣赏;感激;领会;鉴别#vi.增值;涨价
+apprehension#/ˌæprɪˈhenʃn/#n.理解;恐惧;逮捕;忧惧
+approach#/əˈproʊtʃ/#n.接近,逼近,走进,方法,步骤,途径,通路#vt.接近,动手处理#vi.靠近
+appropriate#/əˈproʊpriət/#adj.适当的;恰当的;合适的#vt.占用,拨出
+approval#/əˈpruːvl/#n.批准;认可;赞成
+approve#/əˈpruːv/#vt.批准;赞成;为…提供证据#vi.批准;赞成;满意
+approximate#/əˈprɑːksɪmət/#adj.近似的,大概的#v.接近,近似;粗略估计
+approximately#/əˈprɑːksɪmətli/#adv.大约,近似地;近于
+April#/ˈeɪprəl/#n.四月
+apt#/æpt/#adj.恰当的;有…倾向的;灵敏的#n.(Apt)人名;(法、波、英)阿普特
+Arabian#/əˈreɪbiən/#adj.阿拉伯(人)的,(与)阿拉伯(有关)的#n.(史)阿拉伯人(或居民)
+arbitrary#/ˈɑːrbɪtreri/#adj.[数]任意的;武断的;专制的
+arc#/ɑːrk/#n.弧(度);弧光(全称electricarc);弧形物;天穹#adj.圆弧的;反三角函数的#vt.形成电弧;走弧线#n.(Arc)人名;(法)阿尔克
+arch#/ɑːrtʃ/#n.弓形,拱形;拱门#adj.主要的#vt.使…弯成弓形;用拱连接#vi.拱起;成为弓形#n.(Arch)人名;(德)阿尔希;(英)阿奇
+architect#/ˈɑːrkɪtekt/#n.建筑师缔造者
+architecture#/ˈɑːrkɪtektʃər/#n.建筑学;建筑风格;建筑式样;架构
+arctic#/ˈɑːrktɪk/#adj.北极的;极寒的#n.北极圈;御寒防水套鞋#n.(Arctic)人名;(英)阿克蒂克
+area#/ˈeriə/#n.区域,地区;面积;范围#n.(Area)(西)阿雷亚(人名)
+argue#/ˈɑːrɡjuː/#vi.争论,辩论;提出理由#vt.辩论,争论;证明;说服#n.(Argue)人名;(英、法)阿格
+argument#/ˈɑːrɡjumənt/#n.论证;论据;争吵;内容提要;数,逻自变数;语言学主词,受词
+arise#/əˈraɪz/#vi.出现;上升;起立#n.(Arise)(美、印、德、英)阿里塞(人名)
+arithmetic#/əˈrɪθmətɪk/#n.算术,算法;数字
+arm#/ɑːrm/#n.手臂;武器;袖子;装备;部门#vi.武装起来#vt.武装;备战
+army#/ˈɑːrmi/#n.陆军,军队
+around#/əˈraʊnd/#adv.周围,四周,到处,大约,左右#prep.在...周围,四处
+arouse#/əˈraʊz/#vt.引起;唤醒;鼓励#vi.激发;醒来;发奋
+arrange#/əˈreɪndʒ/#vt.安排;排列;整理#vi.安排;排列;协商
+arrangement#/əˈreɪndʒmənt/#n.布置;整理;准备;安排
+array#/əˈreɪ/#n.数组,阵列;排列,列阵;大批,一系列;衣服#vt.排列,部署;打扮
+arrest#/əˈrest/#v.逮捕;(司法机关)扣留(船只);阻止;吸引;心跳停止,心脏病发作;#n.逮捕,监禁;停止,中止#n.(Arrest)(法)阿雷斯特(人名)
+arrival#/əˈraɪvl/#n.到来;到达;到达者
+arrive#/əˈraɪv/#vi.到达;成功;达成;出生#n.(Arrive)人名;(法)阿里夫
+arrow#/ˈæroʊ/#n.箭,箭头;箭状物;箭头记号#vt.以箭头指示;箭一般地飞向#n.(Arrow)人名;(英)阿罗
+art#/ɑːrt/#n.艺术,艺术品,技术,巧妙,美术
+article#/ˈɑːrtɪkl/#n.文章;物品;条款;[语]冠词#vt.订约将…收为学徒或见习生;使…受协议条款的约束#vi.签订协议;进行控告
+articulate#/ɑːrˈtɪkjuleɪt/#adj.有关节的,发音清晰的#vt.用关节连接,接合,清晰明白地说
+artificial#/ˌɑːrtɪˈfɪʃl/#adj.人造的;仿造的;虚伪的;非原产地的;武断的
+artist#/ˈɑːrtɪst/#n.艺术家;美术家(尤指画家);大师
+artistic#/ɑːrˈtɪstɪk/#adj.艺术的;风雅的;有美感的
+as#/əz,æz/#adv.同样地,被看作,象#prep.当做#conj.与...一样,当...之时,象,因为[域]AmericanSamoa,东萨摩亚[军]AirtoSurface,空对地(As)symb[化]砷(arsenic)
+ascend#/əˈsend/#vi.上升;登高;追溯#vt.攀登,上升
+ascertain#/ˌæsərˈteɪn/#vt.确定;查明;探知
+ascribe#/əˈskraɪb/#vt.归因于;归咎于
+ash#/æʃ/#n.灰,灰烬,[植]岑树
+ashamed#/əˈʃeɪmd/#adj.羞愧的,羞耻的;惭愧的,内疚的;尴尬的;因怕难堪而不愿意的;觉得丢脸的
+Asia#/ˈeɪʒə/#n.亚洲
+Asian#/ˈeɪʒn/#n.亚洲人#adj.亚洲的;亚洲人的
+aside#/əˈsaɪd/#adv.离开,撇开;在旁边#n.旁白;私语,悄悄话;离题的话#prep.在…旁边
+ask#/æsk/#vt.问,询问;要求;需要;邀请;讨价#vi.问,询问;要求#n.(Ask)(芬、瑞典)阿斯克(人名)
+asleep#/əˈsliːp/#adj.睡着的;麻木的;长眠的;不积极的;不专心的#adv.熟睡地;进入睡眠状态(地)
+aspect#/ˈæspekt/#n.方面;方向;形势;外貌
+assault#/əˈsɔːlt/#n.攻击;袭击#vt.攻击;袭击#vi.袭击;动武
+assemble#/əˈsembl/#vt.集合,聚集;装配;收集#vi.集合,聚集
+assembly#/əˈsembli/#n.装配;集会,集合#n.汇编,编译
+assert#/əˈsɜːrt/#vt.维护,坚持;断言;主张;声称
+assess#/əˈses/#vt.评定;估价;对…征税
+asset#/ˈæset/#n.资产;优点;有用的东西;有利条件;财产;有价值的人或物#n.(法)阿塞(人名)
+assign#/əˈsaɪn/#vt.分配;指派;[计][数]赋值#vi.将财产过户(尤指过户给债权人)
+assignment#/əˈsaɪnmənt/#n.分配;任务;作业;功课
+assimilate#/əˈsɪməleɪt/#vt.吸收;使同化;把…比作;使相似#vi.吸收;同化
+assist#/əˈsɪst/#v.援助,帮助
+assistant#/əˈsɪstənt/#n.助手,助理,助教#adj.辅助的,助理的;有帮助的
+associate#/əˈsəʊsieɪt/#vt.使发生联系,使联合#vi.交往,结交#n.合作人,同事#adj.副的
+association#/əˌsəʊsiˈeɪʃn/#n.协会,联盟,社团;联合;联想
+assume#/əˈsuːm/#vi.设想;承担;采取#vt.假定;僭取;篡夺;夺取;擅用;侵占
+assumption#/əˈsʌmpʃn/#n.假定;设想;担任;采取
+assurance#/əˈʃʊrəns/#n.保证,担保;(人寿)保险;确信;断言;厚脸皮,无耻
+assure#/əˈʃʊr/#vt.保证;担保;使确信;弄清楚
+astonish#/əˈstɑːnɪʃ/#v.(使)惊讶;(使)害怕
+astronaut#/ˈæstrənɔːt/#n.宇航员,航天员;太空旅行者
+astronomy#/əˈstrɑːnəmi/#n.天文学
+at#/ət,æt/#prep.在,于,向,对准,在...方面;Austria,奥地利
+athlete#/ˈæθliːt/#n.运动员,体育家;身强力壮的人
+Atlantic#/ətˈlæntɪk/#n.大西洋#adj.大西洋的
+atmosphere#/ˈætməsfɪr/#n.气氛;大气;空气
+atmospheric#/ˌætməsˈfɪrɪk,ˌætməsˈferɪ#adj.大气的,大气层的
+atom#/ˈætəm/#n.原子
+atomic#/əˈtɑːmɪk/#adj.原子的,原子能的;微粒子的
+attach#/əˈtætʃ/#vt.使依附;贴上;系上;使依恋#vi.附加;附属;伴随
+attack#/əˈtæk/#n.攻击;抨击;疾病发作#vt.攻击;抨击;动手干#vi.攻击;腐蚀#n.(Attack)人名;(瑞典)阿塔克
+attain#/əˈteɪn/#vt.达到,实现;获得;到达#vi.达到;获得;到达#n.成就
+attempt#/əˈtempt/#n.企图,试图;攻击#vt.企图,试图;尝试
+attend#/əˈtend/#vt.出席;上(大学等);照料;招待;陪伴#vi.出席;致力于;照料;照顾
+attendance#/əˈtendəns/#n.出席;到场;出席人数;考勤
+attendant#/əˈtendənt/#n.服务员,侍者;随员,陪从;参与者#adj.伴随的;陪伴的
+attention#/əˈtenʃn/#n.注意力;关心;立正!(口令)
+attentive#/əˈtentɪv/#adj.注意的;体贴的;留心的
+attitude#/ˈætɪtuːd/#n.态度;看法;意见;姿势
+attorney#/əˈtɜːrni/#n.律师;代理人;检察官
+attract#/əˈtrækt/#vt.吸引;引起#vi.吸引;有吸引力
+attraction#/əˈtrækʃn/#n.吸引,吸引力;引力;吸引人的事物
+attractive#/əˈtræktɪv/#adj.吸引人的;有魅力的;引人注目的
+attribute#/əˈtrɪbjuːt/#n.属性;特质#vt.归属;把……归于
+audience#/ˈɔːdiəns/#n.观众;听众;读者;接见;正式会见;拜会
+augment#/ɔːɡˈment/#vi.增加;增大#vt.增加;增大#n.增加;增大
+August#/ɔːˈɡʌst/#n.八月#n.(美、德、英、波)奥古斯特(人名)#adj.(august)威严的,令人敬畏的
+aunt#/ænt/#n.阿姨;姑妈;伯母;舅妈
+aural#/ˈɔːrəl/#adj.听觉的;耳的;气味的;先兆的#n.(Aural)人名;(西)奥拉尔
+Australia#/ɔːˈstreɪljə/#n.澳大利亚,澳洲
+Australian#/ɔːˈstreɪliən/#adj.澳大利亚的,澳大利亚人的;(动物地理区划)澳新区的;澳大利亚植物区系界的#n.澳大利亚人
+authentic#/ɔːˈθentɪk/#adj.真正的,真实的;可信的
+author#/ˈɔːθər/#n.作者;作家;创始人#vt.创作出版
+authoritative#/əˈθɔːrəteɪtɪv/#adj.有权威的;命令式的;当局的
+authority#/əˈθɔːrə/#n.权威;权力;当局
+authorize#/ˈɔːθəraɪz/#vt.批准,认可;授权给;委托代替
+auto#/ˈɔːtoʊ/#n.汽车(等于automobile);自动#vi.乘汽车#n.(Auto)人名;(葡)奥托
+automatic#/ˌɔːtəˈmætɪk/#adj.自动的;无意识的;必然的#n.自动机械;自动手枪
+automation#/ˌɔːtəˈmeɪʃn/#n.自动化;自动操作
+automobile#/ˈɔːtəməbiːl/#n.汽车#vt.驾驶汽车[过去式automobiled过去分词automobiled现在分词automobiling]
+autonomy#/ɔːˈtɑːnəmi/#n.自治,自治权
+autumn#/ˈɔːtəm/#n.秋天;成熟期;渐衰期,凋落期#adj.秋天的,秋季的#n.(Autumn)人名;(英)奥特姆
+auxiliary#/ɔːɡˈzɪliəri/#adj.辅助的;副的;附加的;(发动机、设备等)备用的#n.助动词;辅助者,辅助物;附属机构;(北美)志愿队;(海军的)辅助舰队
+avail#/əˈveɪl/#v.有助于;(使)对某人有利#n.效用,利益
+available#/əˈveɪləbl/#adj.可获得的;可购得的;可找到的;有空的
+avenue#/ˈævənuː/#n.大街;林荫大道;(达到某物的)途径,手段,方法,渠道
+average#/ˈævərɪdʒ/#n.平均,平均水平,平均数,海损#adj.一般的,通常的,平均的#vt.平均为,均分,使平衡,达到平均水平#vi.买进,卖出
+avert#/əˈvɜːrt/#vt.避免,防止;转移
+aviation#/ˌeɪviˈeɪʃn/#n.航空;飞行术;飞机制造业
+avoid#/əˈvɔɪd/#vt.避免;避开,躲避;消除
+await#/əˈweɪt/#vt.等候,等待;期待
+awake#/əˈweɪk/#adj.醒着的#v.觉醒,意识到;使醒来,被唤起,激发起
+award#/əˈwɔːrd/#n.奖,奖品#vt.授予,判给
+aware#/əˈwer/#adj.意识到的;知道的;有…方面知识的;懂世故的#n.(Aware)人名;(阿拉伯、索)阿瓦雷
+away#/əˈweɪ/#adv.离去,离开;在远处
+awful#/ˈɔːfl/#adj.可怕的;极坏的;极讨厌的;难受的;使人敬畏的;非常的#adv.极其,非常
+awfully#/ˈɔːfli/#adv.可怕地;十分;非常;很
+awkward#/ˈɔːkwərd/#adj.尴尬的;笨拙的;棘手的;不合适的
+ax#/æks/#v.削减,删除;用斧修整;解雇;询问#n.斧头;爵士乐器(尤指吉他或萨克斯管)#n.(Ax)(德、芬)阿克斯(人名)
+axis#/ˈæksɪs/#n.轴;轴线;轴心国
+baby#/ˈbeɪbi/#n.婴儿,婴孩;孩子气的人#vt.纵容,娇纵;把……当婴儿般对待#adj.婴儿的;幼小的#n.(Baby)人名;(法、葡)巴比;(英)巴比,芭比(女名);(俄)巴贝
+bachelor#/ˈbætʃələr/#n.学士;单身汉;(尚未交配的)小雄兽#n.(Bachelor)人名;(英)巴彻勒
+back#/bæk/#adj.后面的,在后面,早过去的,前(欠)的钱#adv.向后地#n.背部,后面#v.后退,支持
+background#/ˈbækɡraʊnd/#n.背景;隐蔽的位置#vt.作…的背景#adj.背景的;发布背景材料的
+backward#/ˈbækwərd/#adv.adj.向后地(的),相反地(的),追溯,退步,由好变坏
+bacteria#/bækˈtɪriə/#n.[微]细菌
+bad#/bæd/#adj.坏的;严重的;劣质的#n.坏事;坏人#adv.很,非常;坏地;邪恶地#n.(Bad)人名;(罗)巴德
+badge#/bædʒ/#n.徽章;证章;标记#vt.授给…徽章
+badly#/ˈbædli/#adv.非常,很;严重地,厉害地;恶劣地
+badminton#/ˈbædmɪntən/#n.羽毛球
+baffle#/ˈbæfl/#vt.使…困惑;使…受挫折;用挡板控制#n.挡板;困惑#vi.做徒劳挣扎
+bag#/bæɡ/#n.包;袋;猎获物;(俚)一瓶啤酒#vt.猎获;把…装入袋中;放弃;得分;占据,私吞;使膨大;毁掉#vi.松垂;变形
+baggage#/ˈbæɡɪdʒ/#n.行李;[交]辎重(军队的)
+bake#/beɪk/#vt.烤,烘焙#vi.烘面包;被烤干;受热#n.烤;烘烤食品#n.(Bake)人名;(德、瑞典)巴克
+balance#/ˈbæləns/#n.平衡;余额;匀称#vt.使平衡;结算;使相称#vi.保持平衡;相称;抵销#n.(Balance)人名;(西)巴兰塞
+bald#/bɔːld/#adj.光秃的,单调的,枯燥的
+ball#/bɔːl/#n.球;舞会#vi.成团块#vt.捏成球形#n.(Ball)人名;(土)巴勒;(英、西)鲍尔;(法、德、俄、罗、捷)巴尔
+ballet#/bæˈleɪ/#n.芭蕾舞,芭蕾舞曲,芭蕾舞剧;芭蕾舞团;芭蕾式交流#n.(Ballet)(法、美)巴莱(人名)
+balloon#/bəˈluːn/#n.气球
+ban#/bæn/#n.禁令#vt.禁止,取缔(书刊等)
+banana#/bəˈnænə/#n.香蕉;喜剧演员;大鹰钩鼻#n.(Banana)(葡、津)巴纳纳(人名)
+band#/bænd/#n.带,环;[物]波段;(演奏流行音乐的)乐队;人群#vi.用带绑扎;给……镶边
+bandage#/ˈbændɪdʒ/#n.绷带#vt.用绷带包扎
+bang#/bæŋ/#n.刘海;重击;突然巨响#adv.直接地;砰然地;突然巨响地#vt.重击;发巨响;粗俚性交#n.(Bang)(英、乍)班,(芬、德、丹)邦(人名)
+bank#/bæŋk/#n.银行;岸;浅滩;储库#vt.将…存入银行;倾斜转弯#vi.堆积;倾斜转弯#n.(Bank)人名;(英、德、俄)班克;(法、匈)邦克
+bankrupt#/ˈbæŋkrʌpt/#adj.破产的#vt.使破产#n.[经]破产者
+banner#/ˈbænər/#n.横幅图片的广告模式#n.旗帜,横幅,标语#n.人名(英、德、罗)班纳
+bar#/bɑːr/#n.条,棒;酒吧;障碍;法庭#vt.禁止;阻拦#prep.除……外#n.(Bar)人名;(阿拉伯、德、法、俄、罗、捷、波、葡、以)巴尔
+barber#/ˈbɑːrbər/#n.(为男子理发的)理发师;男子理发店#v.为(男子)理发;当理发师#n.(Barber)(美)巴伯(人名)
+bare#/ber/#adj.空的;赤裸的,无遮蔽的#vt.露出,使赤裸#n.(Bare)人名;(英)贝尔
+barely#/ˈberli/#adv.仅仅,勉强;几乎不;公开地;贫乏地
+bargain#/ˈbɑːrɡən/#n.交易;便宜货;契约#vt.(谈价钱后)卖#vi.讨价还价;谈判
+bark#/bɑːrk/#n.树皮;深青棕色;毛皮;皮肤;狗叫#vt.狗叫;尖叫;剥皮#n.(Bark)人名;(英、西、德、捷、法、芬、瑞典)巴克;(阿拉伯、俄)巴尔克
+barn#/bɑːrn/#n.谷仓;畜棚;车库;靶(核反应截面单位)#vt.把……贮存入仓
+barrel#/ˈbærəl/#n.桶;一桶(的量);枪管,炮管;(马等四足动物的)躯干#v.快速移动;把……装入桶内#n.(Barrel)(法、意)巴雷尔(人名)
+barren#/ˈbærən/#adj.贫瘠的;不生育的;无益的;沉闷无趣的;空洞的#n.荒地#n.(Barren)人名;(西、英)巴伦
+barrier#/ˈbæriər/#n.障碍物,屏障;界线#vt.把……关入栅栏#n.(Barrier)(法)巴里耶(人名)
+base#/beɪs/#n.底部,基础,根据地,基地,本部,基数,(运动)出发点#vt.以...作基础,基于...#adj.卑鄙的,低级的
+basement#/ˈbeɪsmənt/#n.地下室;地窖
+basic#/ˈbeɪsɪk/#adj.基本的;基础的#n.基础;要素
+basically#/ˈbeɪsɪkli/#adv.主要地,基本上
+basin#/ˈbeɪsn/#n.水池;流域;盆地;盆#n.(Basin)人名;(俄)巴辛;(法)巴赞
+basis#/ˈbeɪsɪs/#n.基础;底部;主要成分;基本原则或原理
+basket#/ˈbæskɪt/#n.篮子;(篮球比赛的)得分;一篮之量;篮筐#vt.装入篮
+basketball#/ˈbæskɪtbɔːl/#n.篮球;篮球运动
+bat#/bæt/#n.蝙蝠;球棒;球拍;批处理文件的扩展名#vt.用球棒击球;击球率达…#vi.轮到击球;用球棒击球#n.(Bat)人名;(蒙、英)巴特
+batch#/bætʃ/#n.一批;一炉;一次所制之量#vt.分批处理#n.(Batch)人名;(英)巴奇
+bath#/bæθ/#n.沐浴;浴室;浴盆#vt.洗澡#vi.洗澡
+bathe#/beɪð/#vt.沐浴;用水洗#vi.洗澡;沐浴#n.洗澡;游泳#n.(Bathe)人名;(德)巴特;(英)巴思
+bathroom#/ˈbɑːθruːm/#n.浴室;厕所;盥洗室
+battery#/ˈbætəri/#n.[电]电池,蓄电池#n.[法]殴打#n.[军]炮台,炮位
+battle#/ˈbætl/#n.战役;斗争#vi.斗争;作战#vt.与…作战#n.(Battle)人名;(英)巴特尔;(法)巴特勒;(西)巴特莱
+bay#/beɪ/#n.海湾;狗吠声#vt.向…吠叫#vi.吠叫;大声叫嚷#n.(Bay)人名;(越)七;(英、老)贝;(德、意、罗、捷、土、丹)巴伊;(匈)鲍伊;(瑞典)巴伊
+be#/bi,biː/#vt.是;有,存在;做,成为;发生#n.(Be)人名;(缅)拜;(日)部(姓);(朝)培;(中非)贝
+beach#/biːtʃ/#n.海滩;湖滨#vt.将…拖上岸#vi.搁浅;定居#n.(Beach)人名;(英)比奇
+beam#/biːm/#n.横梁;光线;电波;船宽;[计量]秤杆#vt.发送;以梁支撑;用…照射;流露#vi.照射;堆满笑容#n.(Beam)人名;(阿拉伯)贝亚姆;(英)比姆
+bean#/biːn/#n.豆;嘴峰;毫无价值的东西#vt.击…的头部#n.(Bean)人名;(英)比恩
+bear#/ber/#n.熊#v.负担,忍受,带给,具有,挤,向
+beard#/bɪrd/#n.胡须
+bearing#/ˈberɪŋ/#n.[机]轴承;关系;方位;举止#v.忍受(bear的ing形式)
+beast#/biːst/#n.野兽;畜生,人面兽心的人
+beat#/biːt/#n.敲打,拍子,巡逻区域#v.打,打败
+beautiful#/ˈbjuːtɪfl/#adj.美丽的;出色的;迷人的
+beauty#/ˈbjuː/#n.美;美丽;美人;美好的东西
+because#/bɪˈkəz,bɪˈkɔːz/#conj.因为,由于#prep.因为某人(某事物)
+become#/bɪˈkʌm/#vi.成为;变得;变成#vt.适合;相称
+bed#/bed/#n.床;基础;河底,海底#vt.使睡觉;安置,嵌入;栽种#vi.上床;分层
+bee#/biː/#n.蜜蜂,蜂;勤劳的人#n.(Bee)人名;(赤几)贝埃;(东南亚国家华语)美;(英)比(女子教名Beatrix和Beatrice的昵称)
+beef#/biːf/#n.牛肉;肌肉;食用牛;牢骚#vi.抱怨,告发;发牢骚#vt.养;加强
+beer#/bɪr/#n.啤酒#vi.喝啤酒#n.(Beer)人名;(法、德、俄、罗、捷、瑞典)贝尔;(英、西、南非)[纺]比尔
+before#/bɪˈfɔːr/#adv.在前,以前#prep.在...之前#conj.在...之前,与其...宁可
+beforehand#/bɪˈfɔːrhænd/#adv.事先;预先#adj.提前的;预先准备好的
+beg#/beɡ/#vt.乞讨;恳求;回避正题#vi.乞讨;请求#n.(Beg)人名;(德、塞、巴基)贝格
+beggar#/ˈbeɡər/#n.乞丐;穷人;家伙#vt.使贫穷;使沦为乞丐
+begin#/bɪˈɡɪn/#vt.开始#vi.开始;首先
+beginner#/bɪˈɡɪnər/#n.初学者;新手
+beginning#/bɪˈɡɪnɪŋ/#n.开始;起点#v.开始;创建(begin的ing形式)
+behalf#/bɪˈhæf/#n.代表;利益
+behave#/bɪˈheɪv/#vi.表现;(机器等)运转;举止端正;(事物)起某种作用#vt.使守规矩;使表现得…
+behavior#/bɪˈheɪvjər/#n.行为,举止;态度;反应
+behind#/bɪˈhaɪnd/#adv.在后地#prep.在...之后
+being#/ˈbiːɪŋ/#n.存在;生物;身心;生活,有生命;本质#adj.存在的#v.存在;在场;从事;就是;代表(be的现在分词)
+belief#/bɪˈliːf/#n.相信,信赖;信仰;教义
+believe#/bɪˈliːv/#vi.信任;料想;笃信宗教#vt.相信;认为;信任
+bell#/bel/#n.铃,钟;钟声,铃声;钟状物#vt.装钟于,系铃于#vi.鸣钟;成钟状鼓起
+belong#/bɪˈlɔːŋ/#vi.属于,应归入;居住;适宜;应被放置
+beloved#/bɪ'lʌvɪd/#adj.心爱的;挚爱的#n.心爱的人;亲爱的教友
+below#/bɪˈloʊ/#prep.在...下面,#adv.在下,在页底
+belt#/belt/#n.带;腰带;地带#vt.用带子系住;用皮带抽打#vi.猛击#n.(Belt)人名;(英、法、德、西)贝尔特
+bench#/bentʃ/#n.长凳;工作台;替补队员#vt.给…以席位;为…设置条凳#n.(Bench)人名;(英)本奇;(德)本希;(丹)本克
+bend#/bend/#v.弯曲,专心于,屈服#n.弯曲
+beneath#/bɪˈniːθ/#prep.在……之下;(对某人来说)不够好,不相称;低于,次于#n.在下方,在底下
+beneficial#/ˌbenɪˈfɪʃl/#adj.有益的,有利的;可享利益的
+benefit#/ˈbenɪfɪt/#n.利益,好处;救济金#vt.有益于,对…有益#vi.受益,得益
+berry#/ˈberi/#n.浆果(葡萄,番茄等)#vi.采集浆果#n.(Berry)人名;(法、英、德、意、葡)贝里;(匈)拜里
+beside#/bɪˈsaɪd/#prep.在旁边;与……相比;紧靠;除……以外(还);除……以外(不再)#adv.在附近;况且,此外
+besides#/bɪˈsaɪdz/#prep.除……之外(还)#adv.况且,再说;此外,以及
+best#/best/#adj.最好的#adv.最好地,最,极#n.最佳状态或作品,最好的东西
+bet#/bet/#n.赌,打赌#v.赌,赌钱
+betray#/bɪˈtreɪ/#vt.背叛;出卖;泄露(秘密);露出…迹象
+better#/ˈbetər/#adj.较好的#adv.更好的,更多的,更佳的
+between#/bɪˈtwiːn/#prep.(空间、时间、数量等)在……之间;往返于;(表关系)两……之间;合用;一起#adv.(时间或空间)介于……之间;在期间
+bewilder#/bɪˈwɪldər/#vt.使迷惑,使不知所措
+beyond#/bɪˈjɑːnd/#prep.在(或向)……较远的一边;超过,越过;晚于,迟于#adv.在另一边;在(或向)更远处#n.远处的事物;来世,再生
+bias#/ˈbaɪəs/#n.偏见;偏爱;斜纹;乖离率#vt.使存偏见#adj.偏斜的#adv.偏斜地#n.(Bias)人名;(法、德、葡、喀)比亚斯;(英)拜厄斯
+Bible#/ˈbaɪbl/#n.圣经
+bibliography#/ˌbɪbliˈɑːɡrəfi/#n.参考书目;文献目录
+bicycle#/ˈbaɪsɪkl/#n.自行车#vi.骑脚踏车#vt.骑自行车运送
+bid#/bɪd/#vt.出价,投标,祝愿,命令,吩咐#n.出价,投标#v.支付
+big#/bɪɡ/#adj.大的;重要的;量大的#adv.大量地;顺利;夸大地#n.(Big)(土)比格(人名)
+bike#/baɪk/#n.自行车;脚踏车#vi.骑自行车(或摩托车)#n.(Bike)人名;(土、土库、塞)比克
+bill#/bɪl/#n.[法]法案;广告;账单;[金融]票据;钞票;清单#vt.宣布;开账单;用海报宣传
+billion#/ˈbɪljən/#n.十亿;大量#num.十亿#adj.十亿的#n.(Billion)(法)比利翁(人名)
+bind#/baɪnd/#vi.结合;装订;有约束力;过紧#vt.绑;约束;装订;包扎;凝固#n.捆绑;困境;讨厌的事情;植物的藤蔓#n.(Bind)人名;(德)宾德
+biography#/baɪˈɑːɡrəfi/#n.传记;档案;个人简介
+biology#/baɪˈɑːlədʒi/#n.(一个地区全部的)生物;生物学
+bird#/bɜːrd/#n.鸟;家伙;羽毛球#vt.向…喝倒彩;起哄#vi.猎鸟;观察研究野鸟#n.(Bird)人名;(英、西)伯德
+birth#/bɜːrθ/#n.出生;血统,出身;起源
+birthday#/ˈbɜːrθdeɪ/#n.生日,诞辰;诞生的日子
+biscuit#/ˈbɪskɪt/#n.小点心,饼干
+bit#/bɪt/#n.小块,少量,片刻,马嚼子,辅币#vt.上马嚼子,控制vbl.咬#n.[计]位,比特
+bite#/baɪt/#vt.咬;刺痛#n.咬;一口;咬伤;刺痛#vi.咬;刺痛#abbr.机内测试设备(Built-InTestEquipment)#n.(Bite)人名;(匈)比泰
+bitter#/ˈbɪtər/#adj.苦的;痛苦的;尖刻的;充满仇恨的#n.苦味;苦啤酒#adv.激烈地;严寒刺骨地#vt.使变苦#n.(Bitter)人名;(英、法、德、芬、捷、匈)比特
+bitterly#/ˈbɪtərli/#adv.苦涩地,悲痛地,残酷地,怨恨地;极其,非常,强烈地
+bizarre#/bɪˈzɑːr/#adj.奇异的(指态度,容貌,款式等)
+black#/blæk/#n.黑色,黑颜料,黑人#adj.黑色的,弄脏了的,忧郁的#vt.(使)变黑,涂黑
+blackboard#/ˈblækbɔːrd/#n.黑板
+blade#/bleɪd/#n.叶片;刀片,刀锋;剑
+blame#/bleɪm/#vt.责备;归咎于#n.责备;责任;过失
+blank#/blæŋk/#adj.空白的,空着的,失色的,没有表情的#n.空白,美表格
+blanket#/ˈblæŋkɪt/#n.毛毯,毯子;毯状物,覆盖层#adj.总括的,全体的;没有限制的#vt.覆盖,掩盖;用毯覆盖
+blast#/blæst/#n.爆炸;冲击波;一阵#vi.猛攻#vt.爆炸;损害;使枯萎#n.(Blast)人名;(德)布拉斯特
+blaze#/bleɪz/#n.火焰,光辉,情感爆发#vi.燃烧,照耀,激发#vt.在树皮上刻路标,公开宣布
+bleak#/bliːk/#adj.阴冷的;荒凉的,无遮蔽的;黯淡的,无希望的;冷酷的;单调的
+bleed#/bliːd/#vt.使出血;榨取#vi.流血;渗出;悲痛
+blend#/blend/#vt.混合#vi.混合;协调#n.混合;掺合物
+bless#/bles/#vt.祝福;保佑;赞美#n.(Bless)人名;(英、意、德、匈)布莱斯
+blind#/blaɪnd/#adj.盲目的;瞎的#adv.盲目地;看不见地#n.掩饰,借口;百叶窗#vt.使失明;使失去理智#n.(Blind)人名;(法)布兰;(德、瑞典)布林德
+block#/blɑːk/#n.块;街区;大厦;障碍物#vt.阻止;阻塞;限制;封盖#adj.成批的,大块的;交通堵塞的#n.(Block)人名;(英、法、德、西、葡、芬、罗)布洛克
+blood#/blʌd/#n.血,血液;血统#vt.从…抽血;使先取得经验#n.(Blood)人名;(英、西)布拉德
+bloom#/bluːm/#n.花;青春;旺盛#vt.使开花;使茂盛#vi.开花;茂盛#n.(Bloom)人名;(瑞典、西)布洛姆;(英)布卢姆
+blossom#/ˈblɑːsəm/#n.花;开花期;兴旺期;花开的状态;漂亮的人#v.开花;兴旺;成功发展#n.(Blossom)布洛瑟姆(人名)
+blow#/bloʊ/#n.殴打,突然的打击#v.风吹,吹气于,叫,喘气
+blue#/bluː/#n.蓝色#adj.蓝色的,忧郁的,沮丧的
+blunder#/ˈblʌndər/#n.愚蠢(或粗心)的错误,大错#v.犯大错,笨嘴笨舌;跌跌撞撞地走;误入(某地)
+blunt#/blʌnt/#adj.钝的,不锋利的;生硬的;直率的#vt.使迟钝#n.(Blunt)人名;(英)布伦特
+blush#/blʌʃ/#vi.脸红;感到惭愧#n.脸红;红色;羞愧#vt.红著脸表示;使成红色#n.(Blush)人名;(英)布拉什
+board#/bɔːrd/#n.董事会;木板;甲板;膳食#vt.上(飞机、车、船等);用板盖上;给提供膳宿#vi.寄宿#n.(Board)人名;(英、西)博德
+boast#/boʊst/#vt.夸口说,自吹自擂说;以有…而自豪#n.自夸;值得夸耀的事物,引以为荣的事物#vi.自吹自擂#n.(Boast)人名;(英)博斯特
+boat#/boʊt/#n.小船;轮船#vi.划船
+body#/ˈbɑːdi/#n.身体;主体;大量;团体;主要部分#vt.赋以形体#n.(Body)人名;(英、法、罗)博迪
+boil#/bɔɪl/#n.沸点,沸腾,疖子#v.煮沸,激动
+bold#/boʊld/#adj.大胆的,英勇的;黑体的;厚颜无耻的;险峻的#n.(Bold)人名;(英、德、罗、捷、瑞典)博尔德
+bolt#/boʊlt/#n.门闩,螺钉,闪电,跑掉#v.上门闩,囫囵吞下,逃跑
+bomb#/bɑːm/#n.炸弹;长传;气溶胶弹式容器;像炸弹的物体(如火山弹);掺大麻的香烟;(钓鱼的)梨形重物#v.轰炸,投弹;疾行;(考试、演出等)惨败
+bond#/bɑːnd/#n.债券;结合;约定;粘合剂;纽带#vi.结合,团结在一起#vt.使结合;以…作保#n.(Bond)人名;(英、德、西、刚(金)、瑞典)邦德
+bone#/boʊn/#n.骨;骨骼#vt.剔去……的骨;施骨肥于#vi.苦学;专心致志#n.(Bone)(英)博恩;(法、西、罗、塞)博内;(老)奔(人名)
+bonus#/ˈboʊnəs/#n.奖金;红利;额外津贴#n.(Bonus)人名;(西、塞)博努斯
+book#/bʊk/#n.书籍;卷;账簿;名册;工作簿#vt.预订;登记#n.(Book)人名;(中)卜(广东话·威妥玛);(朝)北;(英)布克;(瑞典)博克
+boom#/buːm/#n.繁荣,隆隆声#v.发隆隆声,兴隆,大事宣传
+boost#/buːst/#vt.促进;增加;支援#vi.宣扬;偷窃#n.推动;帮助;宣扬#n.(Boost)人名;(英)布斯特;(德)博斯特
+boot#/buːt/#n.美(长统)靴,靴子#v.导入
+booth#/buːθ/#n.货摊;公用电话亭#n.(Booth)人名;(英)布思;(德、瑞典)博特
+border#/ˈbɔːrdər/#n.边境;边界;国界#vt.接近;与…接壤;在…上镶边#vi.接界;近似#n.(Border)人名;(英)博德
+bore#/bɔːr/#vi.钻孔#vt.钻孔;使烦扰#n.孔;令人讨厌的人#n.(Bore)人名;(法)博尔;(塞、马里)博雷
+born#/bɔːrn/#v.出生;出现(bear的过去分词)#adj.天生的;出生的;天赋的;创造的#n.(Born)(美、德、爱、英、丹)博恩(人名)
+borrow#/ˈbɔːroʊ/#vi.借;借用;从其他语言中引入#vt.借;借用#n.(Borrow)人名;(英)博罗
+bosom#/ˈbʊzəm/#n.胸;胸怀;中间;胸襟;内心;乳房;内部#vt.怀抱;把…藏在心中#adj.知心的;亲密的#n.(Bosom)人名;(西)博索姆
+boss#/bɔːs/#n.老板;首领;工头#vt.指挥,调遣;当…的领导#vi.当首领,发号施令#n.(Boss)人名;(英、法、德、西、瑞典)博斯
+both#/boʊθ/#det.双方,两者pron.双方,两者#adv.双方都,两者都;不仅……而且……#conj.既……且……;并;两者皆#n.(Both)博特(人名)
+bother#/ˈbɑːðər/#vt.烦扰,打扰;使……不安;使……恼怒#vi.操心,麻烦;烦恼#n.麻烦;烦恼
+bottle#/ˈbɑːtl/#n.瓶子;一瓶的容量#vt.控制;把…装入瓶中#vi.(街头艺人演出后)收拢钱币
+bottom#/ˈbɑːtəm/#n.底部;末端;臀部;尽头#adj.底部的#vt.装底;测量深浅;查明真相#vi.到达底部;建立基础#n.(Bottom)人名;(英)博顿
+bough#/baʊ/#n.大树枝#n.(Bough)人名;(英)博夫
+bounce#/baʊns/#v.(使)反跳,弹起,(指支票)被银行退票,弹跳#n.(球)跳起,弹回
+bound#/baʊnd/#n.跃进,跳,范围,限度#adj.正要启程的,开往...去的,被束缚的,装订的#v.跳跃,限制
+boundary#/ˈbaʊndri/#n.边界;范围;分界线
+bow#/baʊ;boʊ/#n.弓;蝴蝶结;琴弓;船头#v.鞠躬,点头;低(头);屈从;(使)弯曲;用琴弓拉奏(弦乐器)#n.(Bow)(美、英、爱尔兰)鲍(人名)
+bowl#/boʊl/#n.碗;木球;大酒杯#vi.玩保龄球;滑动;平稳快速移动#vt.投球;旋转;平稳快速移动
+box#/bɑːks/#n.盒子,箱,包厢,岗亭,一拳#v.装...入盒中,打耳光,拳击
+boy#/bɔɪ/#n.男孩;男人#n.(Boy)(美、印、法、荷)布瓦(人名)
+boycott#/ˈbɔɪkɑːt/#v.联合抵制;拒绝购买;拒绝参加#n.联合抵制#n.(Boycott)博伊科特(人名)
+brace#/breɪs/#n.支柱,带子,振作精神#vt.支住,撑牢,振作起来,奋起#adj.曲柄的#v.支持
+bracket#/ˈbrækɪt/#n.支架,墙上凸出的托架;括号;等级,范围#vt.括在一起;把…归入同一类;排除
+brain#/breɪn/#n.头脑,智力;脑袋#vt.猛击…的头部#n.(Brain)人名;(英)布雷恩
+brake#/breɪk/#n.刹车;阻碍(物);敞篷四轮马车;纤维捣碎机;灌木丛;欧洲蕨#v.刹车;阻碍
+branch#/bræntʃ/#n.分支;分公司;分部;树枝;支流;岔路;(血管)分枝#v.发出新枝;岔开,分岔;出现分歧#n.(Branch)布兰奇(人名)
+brand#/brænd/#n.商标,牌子,烙印#vt.打火印,污辱
+brandy#/ˈbrændi/#n.白兰地酒#n.(Brandy)人名;(法)布朗迪
+brass#/bræs/#n.黄铜;黄铜制品;铜管乐器;厚脸皮;位高权重者#n.(Brass)(英、法、德)布拉斯(人名)
+brave#/breɪv/#adj.勇敢的
+Brazil#/brəˈzɪl/#n.巴西(拉丁美洲国家)
+Brazilian#/brəˈzɪliən/#adj.巴西的;巴西人的#n.巴西人
+bread#/bred/#n.面包;生计#vt.在…上洒面包屑
+breadth#/bredθ/#n.宽度,幅度;宽宏
+break#/breɪk/#n.休息,暂停,破裂,突变#v.打破,违犯,折断,削弱,超过,突变
+breakdown#/ˈbreɪkdaʊn/#n.故障;崩溃;分解;分类;衰弱;跺脚曳步舞
+breakfast#/ˈbrekfəst/#n.早餐;早饭#vi.吃早餐#vt.为…供应早餐
+breast#/brest/#n.乳房,胸部;胸怀;心情#vt.以胸对着;与…搏斗
+breath#/breθ/#n.呼吸,气息;一口气,(呼吸的)一次;瞬间,瞬息;微风;迹象;无声音,气音
+breathe#/briːð/#vi.呼吸;低语;松口气;(风)轻拂#vt.呼吸;使喘息;流露;低声说
+breed#/briːd/#v.(使)繁殖,教养,抚养#n.品种,种类
+breeze#/briːz/#n.微风;轻而易举的事;煤屑;焦炭渣;小风波#vi.吹微风;逃走#n.(Breeze)人名;(法)布雷兹
+bribe#/braɪb/#v.向……行贿;诱哄(尤指小孩)#n.贿赂;(尤指用来哄小孩做事的)好处#n.(Bribe)(美)布里韦(人名)
+brick#/brɪk/#n.砖,砖块;砖形物;心肠好的人#vt.用砖砌#adj.用砖做的;似砖的#n.(Brick)人名;(英、法、瑞典)布里克
+bridge#/brɪdʒ/#n.桥;桥牌;桥接器;船桥#vt.架桥;渡过#n.(Bridge)人名;(英)布里奇
+brief#/briːf/#adj.简短的,简洁的;短暂的,草率的#n.摘要,简报;概要,诉书#vt.简报,摘要;作…的提要#n.(Brief)(英)布里夫(人名)
+bright#/braɪt/#adj.明亮的,鲜明的;聪明的;愉快的#adv.明亮地;光明地;欢快地#n.车头灯光#n.(Bright)人名;(英)布赖特
+brighten#/ˈbraɪtn/#vi.明亮;变亮;活跃;快乐高兴#vt.使闪亮;使生辉;使快乐高兴#n.(Brighten)人名;(英)布赖滕
+brilliant#/ˈbrɪliənt/#adj.灿烂的,闪耀的;杰出的;有才气的;精彩的,绝妙的
+brim#/brɪm/#n.边;边缘;帽檐#vi.满溢;溢出#vt.使……满溢#n.(Brim)(英)布里姆(人名)
+bring#/brɪŋ/#vt.带来;提供;引起;使处于某种情况或境地;使朝某方向移动;指控;强迫(自己)#n.(Bring)(英、瑞典)布林(人名)
+brisk#/brɪsk/#adj.敏锐的,活泼的,轻快的;凛冽的#vi.活跃起来;变得轻快#vt.使……活泼;使……轻快;使……兴旺#n.(Brisk)人名;(法、芬)布里斯克
+bristle#/ˈbrɪsl/#n.刚毛;粗硬短须,胡子楂;刷子毛;猪鬃#v.(毛发)竖起;发怒;被侵犯;戒备
+Britain#/ˈbrɪtn/#n.英国;不列颠
+British#/ˈbrɪtɪʃ/#adj.英国的,大不列颠及北爱尔兰联合王国的;英国人的;英联邦的;大英帝国的#n.英国人
+brittle#/ˈbrɪtl/#adj.易碎的,脆弱的;易生气的
+broad#/brɔːd/#adj.宽的,辽阔的;显著的;大概的#n.宽阔部分#adv.宽阔地#n.(Broad)人名;(英、德)布罗德
+broadcast#/ˈbrɔːdkæst/#n.广播,播音#v.播撒(种子),广播(无线电或电视)广播播送,播放
+broken#/ˈbroʊkən/#adj.破碎的;坏掉的#v.折断;打碎;损坏(break的过去分词)
+bronze#/brɑːnz/#n.青铜;古铜色;青铜制品#adj.青铜色的;青铜制的#vt.镀青铜于#vi.变成青铜色,被晒黑#n.(Bronze)人名;(葡)布龙泽
+brood#/bruːd/#n.(动物中鸟或家禽的)一窝,(同种或同类的)一伙#vt.孵,沉思
+brook#/brʊk/#n.小溪,小河#v.容忍,允许(尤指不同意见)#n.(Brook)(加、美、爱、英)布鲁克(人名)
+broom#/bruːm/#n.扫帚;金雀花;飞天扫帚(出自《哈利·波特》)#vt.扫除#vi.桩顶开花或开裂#n.(Broom)(英)布鲁姆(人名)
+brother#/ˈbrʌðər/#n.兄弟;同事;战友#int.我的老兄!#n.(Brother)人名;(英)布拉泽
+brow#/braʊ/#n.眉,眉毛;额;表情#n.(Brow)人名;(西)布劳
+brown#/braʊn/#adj.棕色的,褐色的;太阳晒黑的#vi.变成褐色#n.褐色,棕色#vt.使变成褐色#n.(Brown)人名;(英、意、芬、捷、德、法、西、葡)布朗
+bruise#/bruːz/#n.擦伤;挫伤;青肿#vt.使受瘀伤;使受挫伤#vi.擦伤;受伤
+brush#/brʌʃ/#n.刷子;画笔;毛笔;争吵;冲突;灌木丛地带;矮树丛;狐狸尾巴#vt.刷;画;#vi.刷;擦过;掠过;(经过时)轻触
+brutal#/ˈbruːtl/#adj.残忍的;野蛮的,不讲理的
+brute#/bruːt/#adj.残忍的,畜生般的#n.残忍的人,畜生
+bubble#/ˈbʌbl/#n.气泡,泡沫,泡状物;透明圆形罩,圆形顶#vi.沸腾,冒泡;发出气泡声#vt.使冒泡;滔滔不绝地说
+bucket#/ˈbʌkɪt/#n.桶,水桶;铲斗;一桶的量;(俚)篮球得分#v.倾盆而下;颠簸着行进#n.(Bucket)(德)布克特(人名)
+buckle#/ˈbʌkl/#n.带扣,搭钩;(尤指鞋的)扣形饰物#v.扣住,用搭扣装饰;屈服,退让;使弯曲变形;(人)精神崩溃#n.(Buckle)(美、英、加)巴克尔(人名)
+bud#/bʌd/#n.芽,萌芽;蓓蕾#vi.发芽,萌芽#vt.使发芽#n.(Bud)人名;(英)巴德;(中)布特(蒙语·汉语拼音);(罗、匈)布德
+budget#/ˈbʌdʒɪt/#n.预算,预算费#vt.安排,预定;把…编入预算#vi.编预算,做预算#adj.廉价的
+buffer#/ˈbʌfər/#n.[计]缓冲区;缓冲器,[车辆]减震器#vt.缓冲
+bug#/bʌɡ/#n.臭虫,小虫;故障;窃听器#vt.烦扰,打扰;装窃听器#vi.装置窃听器;打扰
+build#/bɪld/#vt.建立;建筑#vi.建筑;建造#n.构造;体形;体格
+building#/ˈbɪldɪŋ/#n.建筑;建筑物#v.建筑;建立;增加(build的ing形式)
+bulb#/bʌlb/#n.电灯泡;鳞茎;球状物#vi.生球茎;膨胀成球状
+bulk#/bʌlk/#n.体积,容量;大多数,大部分;大块#vt.使扩大,使形成大量;使显得重要#n.(Bulk)(土)布尔克(人名)
+bull#/bʊl/#n.[动]公牛,粗壮如牛的人
+bullet#/ˈbʊlɪt/#n.子弹;只选某党全部候选人的投票;豆子#vi.射出;迅速行进#n.(Bullet)人名;(法)比莱
+bulletin#/ˈbʊlətɪn/#n.公告,公报#vt.公布,公告
+bump#/bʌmp/#n.肿块,隆起物;撞击#vi.碰撞,撞击;颠簸而行#vt.碰,撞;颠簸#adv.突然地,猛烈地#n.(Bump)人名;(英、西)邦普
+bunch#/bʌntʃ/#n.群;串;突出物#vi.隆起;打褶;形成一串#vt.使成一串;使打褶#n.(Bunch)人名;(英)邦奇
+bundle#/ˈbʌndl/#n.束;捆#vt.捆#vi.匆忙离开
+burden#/ˈbɜːrdn/#n.负担;责任;船的载货量#vt.使负担;烦扰;装货于#n.(Burden)人名;(英)伯登
+bureau#/ˈbjʊroʊ/#n.局,处;衣柜;办公桌#n.(Bureau)人名;(法)比罗
+bureaucracy#/bjʊˈrɑːkrəsi/#n.官僚主义;官僚机构;官僚政治
+burial#/ˈberiəl/#n.埋葬;葬礼;弃绝#adj.埋葬的
+burn#/bɜːrn/#vt.燃烧;烧毁,灼伤;激起……的愤怒#vi.燃烧;烧毁;发热#n.灼伤,烧伤;烙印#n.(Burn)(英)伯恩(人名)
+burst#/bɜːrst/#v.爆裂,炸破,急于,爆发#n.突然破裂,爆发,脉冲
+bury#/ˈberi/#vt.埋葬;隐藏#n.(Bury)人名;(法)比里;(英、西)伯里;(德、意、罗、波、捷、匈)布里;(俄)布雷
+bus#/bʌs/#n.公共汽车#vt.乘公共汽车
+bush#/bʊʃ/#n.灌木;矮树丛#vt.以灌木装饰;使…精疲力竭#vi.丛生;浓密地生长#adj.如灌木般长得低矮的;粗野的
+business#/ˈbɪznəs/#n.商业,交易;生意;事务,业务;职业,行业;
+busy#/ˈbɪzi/#adj.忙碌的;热闹的;正被占用的#vt.使忙于#n.(Busy)人名;(匈)布希;(法)比西
+but#/bʌt/#conj.但是;而是;然而#adv.仅仅,只#prep.除…以外#n.(But)人名;(俄、罗)布特;(越)笔
+butcher#/ˈbʊtʃər/#n.屠夫;肉店;刽子手;(火车或剧院的)小贩#v.屠杀(人);屠宰(动物);弄砸#n.(Butcher)(美、爱、英)布彻(人名)
+butter#/ˈbʌtər/#n.黄油,奶油;像黄油的食品;奉承话#v.涂黄油于;讨好
+butterfly#/ˈbʌtərflaɪ/#n.蝴蝶;蝶泳;举止轻浮的人;追求享乐的人
+button#/ˈbʌtn/#n.按钮;纽扣#vt.扣住;扣紧;在…上装纽扣#vi.扣住;装有纽扣;扣上纽扣#n.(Button)人名;(英)巴顿
+buy#/baɪ/#vt.购买;买得起;获得;贿赂;相信#n.购买;所购的物品;合算的东西#n.(Buy)(法)比伊(人名)
+buzz#/bʌz/#n.嗡嗡声#v.作嗡嗡声,嗡嗡作响,逼近
+by#/baɪ/#prep.由,被;通过;相差……;到……之前;在……旁边#adv.经过;(时间)过去;在旁边;短暂访问#n.(体育比赛)轮空晋级#adj.旁边的,侧面的
+bypass#/ˈbaɪpæs/#n.旁路,支路;旁通管,分流术#v.绕过,避开;忽视,不顾(规章制度);设旁路,迂回
+cabbage#/ˈkæbɪdʒ/#n.卷心菜,甘蓝菜,洋白菜;(俚)脑袋;(非正式、侮辱)植物人(常用于英式英语);(俚)钱,尤指纸币(常用于美式俚语)
+cabin#/ˈkæbɪn/#n.小屋;客舱;船舱#vt.把…关在小屋里#vi.住在小屋里#n.(Cabin)人名;(法)卡班
+cabinet#/ˈkæbɪnət/#n.内阁;橱柜;展览艺术品的小陈列室;外壳#adj.内阁的;私下的,秘密的
+cable#/ˈkeɪbl/#n.缆绳;电缆;海底电报#vt.打电报#vi.打海底电报
+cafe#/kæˈfeɪ/#n.咖啡馆;小餐馆
+cafeteria#/ˌkæfəˈtɪriə/#n.自助餐厅;小餐厅;快餐厅
+cage#/keɪdʒ/#n.笼,兽笼;牢房,监狱#vt.把…关进笼子;把…囚禁起来#n.(Cage)人名;(法)卡热;(英)凯奇
+cake#/keɪk/#n.蛋糕;块状物;利益总额#vt.使结块#vi.结成块状#n.(Cake)人名;(英)凯克;(塞)察凯
+calculate#/ˈkælkjuleɪt/#vi.计算;以为;作打算#vt.计算;预测;认为;打算
+calculation#/ˌkælkjuˈleɪʃn/#n.计算;估计;计算的结果;深思熟虑
+calculator#/ˈkælkjuleɪtər/#n.计算器;计算者
+calendar#/ˈkælɪndər/#n.日历;[天]历法;日程表#vt.将…列入表中;将…排入日程表
+call#/kɔːl/#vi.呼叫;拜访;叫牌#vt.呼叫;称呼;召集#n.电话;呼叫;要求;访问#n.(Call)人名;(瑞典、罗)卡尔;(英)考尔
+calm#/kɑːm/#adj.静的,平静的;沉着的#vt.使平静;使镇定#vi.平静下来;镇定下来#n.风平浪静#n.(Calm)人名;(法、德)卡尔姆
+camel#/ˈkæml/#n.[畜牧][脊椎]骆驼;打捞浮筒;工作作风官僚#adj.驼色的;暗棕色的#vi.工作刻板平庸#n.(Camel)人名;(法)卡梅尔;(阿拉伯)卡迈勒
+camera#/ˈkæmrə/#n.照相机;摄影机#n.(Camera)人名;(英、意、西)卡梅拉
+camp#/kæmp/#n.露营地,阵营#vi.露营,扎营
+campaign#/kæmˈpeɪn/#n.运动;活动;战役,军事行动;竞选#v.领导或参加运动;参加竞选
+campus#/ˈkæmpəs/#n.(大学)校园;大学,大学生活;校园内的草地#n.(Campus)人名;(英)坎帕斯;(意、罗)坎普斯;(法)康皮斯
+can#/kæn;kən/#vt.装进罐中,把食品装罐#n.罐头,铁罐#conj.能,可以
+Canada#/ˈkænədə/#n.加拿大(北美洲国家)
+Canadian#/kəˈneɪdiən/#adj.加拿大的;加拿大人的;加拿大文化的#n.加拿大人;加拿大河(美国河流)
+canal#/kəˈnæl/#n.运河;[地理]水道;[建]管道;灌溉水渠#vt.在…开凿运河#n.(Canal)人名;(英、法、西、意、葡)卡纳尔;(土)贾纳尔
+cancel#/ˈkænsl/#vt.取消;删去#vi.取消,撤销;相互抵消#n.取消,撤销#n.(Cancel)(法)康塞尔(人名)
+cancer#/ˈkænsər/#n.癌症;恶性肿瘤
+candidate#/ˈkændɪdət/#n.候选人,候补者;应试者
+candle#/ˈkændl/#n.蜡烛;烛光;烛形物#vt.对着光检查
+candy#/ˈkændi/#n.糖果,巧克力;冰糖;(糖果包装的)毒品;中看不中用的东西#v.把……制成蜜饯;用糖煮;使结晶
+cannon#/ˈkænən/#n.大炮;加农炮;榴弹炮;机关炮#vi.炮轰;开炮#vt.炮轰#n.(Cannon)人名;(英、葡)坎农
+canoe#/kəˈnuː/#n.独木舟;轻舟#vi.乘独木舟#vt.用独木舟运
+canon#/ˈkænən/#n.标准;教规;正典圣经;教士
+canteen#/kænˈːn/#n.食堂,小卖部;水壶
+canvas#/ˈkænvəs/#n.帆布#vt.用帆布覆盖,用帆布装备#adj.帆布制的
+cap#/kæp/#n.盖;帽子#vi.脱帽致意#vt.覆盖;胜过;给……戴帽;加盖于#n.(Cap)(法、德、罗)卡普(人名);(塞、捷)察普(人名)
+capable#/ˈkeɪpəbl/#adj.有能力的;有才干的;容许……的;可以做(某事)的;综合性的;有资格的
+capacity#/kəˈpæsəti/#n.能力;容量;资格,地位;生产力
+capital#/ˈkæpɪtl/#n.首都,省会;资金;大写字母;资本家#adj.首都的;重要的;大写的#n.(Capital)人名;(法)卡皮塔尔
+capsule#/ˈkæpsl,ˈkæpsuːl/#n.胶囊;蒴果;太空舱;小容器#adj.压缩的;概要的#vt.压缩;简述
+captain#/ˈkæptɪn/#n.队长,首领;船长;上尉;海军上校#vt.指挥;率领
+captive#/ˈkæptɪv/#adj.被俘虏的;被迷住的#n.俘虏;迷恋者
+capture#/ˈkæptʃər/#vt.俘获;夺得;捕捉,拍摄,录制#n.捕获;战利品,俘虏
+car#/kɑːr/#n.汽车;车厢#n.(Car)人名;(土)贾尔;(法、西)卡尔;(塞)察尔
+carbon#/ˈkɑːrbən/#n.[化学]碳;碳棒;复写纸#adj.碳的;碳处理的#n.(Carbon)人名;(西)卡尔翁;(法)卡尔邦;(英)卡本
+card#/kɑːrd/#n.卡片;纸牌;明信片#vt.记于卡片上#n.(Card)(英)卡德(人名)
+care#/ker/#n.关怀;照料;谨慎;忧虑#vi.照顾;关心;喜爱;顾虑#vt.在意;希望或喜欢#n.(Care)人名;(英)凯尔;(塞)察蕾
+career#/kəˈrɪr/#n.生涯;职业;事业;速度,全速#adj.作为毕生职业的#vi.全速前进,猛冲
+careful#/ˈkerfl/#adj.仔细的,小心的
+careless#/ˈkerləs/#adj.粗心的;无忧无虑的;淡漠的#n.(Careless)人名;(英)凯尔利斯
+cargo#/ˈkɑːrɡoʊ/#n.货物,船货#n.(Cargo)人名;(英、西)卡戈
+carpenter#/ˈkɑːrpəntər/#n.木匠,木工#vi.当木匠,做木匠工作#vt.制作#n.(Carpenter)人名;(英、葡、法)卡彭特
+carpet#/ˈkɑːrpɪt/#n.地毯
+carriage#/ˈkærɪdʒ/#n.运输;运费;四轮马车;举止;客车厢
+carrier#/ˈkæriər/#n.[化学]载体;运送者;带菌者;货架#n.(Carrier)人名;(英)卡里尔;(法)卡里耶
+carrot#/ˈkærət/#n.胡萝卜诱饵
+carry#/ˈkæri/#vt.拿,扛;携带;支持;搬运#vi.能达到;被携带;被搬运#n.运载;[计]进位;射程#n.(Carry)人名;(英)卡里
+cart#/kɑːrt/#n.二轮运货马车#vt.用车装载#vi.驾运货马车;用运货车运送#n.(Cart)人名;(法)卡尔;(英、芬)卡特
+cartoon#/kɑːrˈtuːn/#n.卡通片,[电影]动画片;连环漫画#vt.为…画漫画#vi.画漫画
+carve#/kɑːrv/#vt.雕刻;切开;开创#vi.切开;做雕刻工作#n.(Carve)人名;(西、瑞典)卡韦
+case#/keɪs/#n.情况;实例;箱#vt.包围;把…装于容器中#n.(Case)人名;(英)凯斯;(西)卡塞;(法)卡斯
+cash#/kæʃ/#n.现款,现金#vt.将…兑现;支付现款#n.(Cash)人名;(英)卡什
+cassette#/kəˈset/#n.卡带;盒式磁带
+cast#/kæst/#n.投掷,铸件,脱落物,一瞥,演员表#v.投,抛,投射,浇铸,计算,派(角色)
+castle#/ˈkæsl/#n.城堡;象棋中的车#vt.置…于城堡中;筑城堡防御#n.(Castle)人名;(英)卡斯尔
+casual#/ˈkæʒuəl/#adj.随便的;非正式的;临时的;偶然的#n.便装;临时工人;待命士兵
+casualty#/ˈkæʒuəlti/#n.意外事故;伤亡人员;急诊室
+cat#/kæt/#n.猫,猫科动物
+catalog#/ˈkætəlɔːɡ/#n.[图情][计]目录;登记#vt.登记;为…编目录#vi.编目录;按确定价格收入目录(等于catalogue)
+catch#/kætʃ,ketʃ/#vt.赶上;抓住;感染;了解#vi.赶上;抓住#n.捕捉;捕获物;窗钩
+category#/ˈkætəɡɔːri/#n.种类,分类;[数]范畴
+cater#/ˈkeɪtər/#vt.投合,迎合;满足需要;提供饮食及服务#n.(Cater)人名;(英)凯特
+cathedral#/kəˈθiːdrəl/#n.大教堂
+catholic#/ˈkæθlɪk/#adj.天主教的;宽宏大量的#n.天主教徒;罗马天主教
+cattle#/ˈkætl/#n.牛;牲畜(骂人的话);家畜;无价值的人#n.(Cattle)人名;(意)卡特莱
+cause#/kɔːz/#n.原因;事业;目标#vt.引起;使遭受
+caution#/ˈkɔːʃn/#n.小心,谨慎;警告,警示#vt.警告
+cautious#/ˈkɔːʃəs/#adj.谨慎的;十分小心的
+cave#/keɪv/#n.山洞,洞穴;窑洞#v.塌落;屈服;洞穴探险;挖洞穴#int.(旧,校园俚语)当心#n.(Cave)(美、爱)凯夫(人名)
+cavity#/ˈkævəti/#n.腔;洞,凹处
+cease#/siːs/#vi.停止;终了#vt.停止;结束#n.停止
+ceiling#/ˈsiːlɪŋ/#n.天花板;上限
+celebrate#/ˈselɪbreɪt/#vt.庆祝;举行;赞美;祝贺;宣告#vi.庆祝;过节;举行宗教仪式
+cell#/sel/#n.细胞;电池;蜂房的巢室;单人小室#vi.住在牢房或小室中#n.(Cell)人名;(英)塞尔
+cellar#/ˈselər/#n.地窖;酒窖;地下室#vt.把…藏入地窖#n.(Cellar)人名;(捷)采拉尔
+cement#/sɪˈment/#n.水泥,接合剂#vt.接合,用水泥涂,巩固#vi.粘牢
+census#/ˈsensəs/#n.人口普查,人口调查;(官方的)统计,调查#vt.实施统计调查
+cent#/sent/#n.分;一分的硬币;森特(等于半音程的百分之一)#n.(Cent)人名;(法)桑
+center#/ˈsentər/#n.中心,中央;中锋;中心点#vi.居中,被置于中心#vt.集中,使聚集在一点;定中心#adj.中央的,位在正中的#n.(Center)森特(人名)
+centigrade#/ˈsentɪɡreɪd/#adj.摄氏温度的;百分度的#n.摄氏温标
+centimetre#/ˈsentɪmiːtər/#n.厘米;公分
+central#/ˈsentrəl/#adj.中心的;主要的;中枢的#n.电话总机
+centre#/ˈsentər/#n.中心,中央,中心区#v.集中
+century#/ˈsentʃəri/#n.世纪,百年;(板球)一百分
+ceramic#/səˈræmɪk/#adj.陶瓷的;陶器的;制陶艺术的#n.陶瓷;陶瓷制品
+cereal#/ˈsɪriəl/#n.谷类,谷物;谷类食品;谷类植物#adj.谷类的;谷类制成的
+ceremony#/ˈserəmoʊni/#n.典礼,仪式;礼节,礼仪;客套,虚礼
+certain#/ˈsɜːrtn/#adj.某一;必然的;确信;无疑的;有把握的#pron.某些;某几个#n.(Certain)人名;(葡)塞尔塔因;(法)塞尔坦
+certainly#/ˈsɜːrtnli/#adv.当然;行(用于回答);必定
+certainty#/ˈsɜːrtn/#n.必然;确实;确实的事情
+certificate#/sərˈtɪfɪkət/#n.证书;文凭,合格证书;电影放映许可证#v.发给证明书,用证书证明
+certify#/ˈsɜːrtɪfaɪ/#v.证明;保证
+chain#/tʃeɪn/#n.链;束缚;枷锁#vt.束缚;囚禁;用铁链锁住
+chair#/tʃer/#n.椅子;讲座;(会议的)主席位;大学教授的职位#vt.担任(会议的)主席;使…入座;使就任要职#n.(Chair)人名;(法)谢尔
+chairman#/ˈtʃermən/#n.主席,会长;董事长
+chalk#/tʃɔːk/#n.粉笔,白垩#vt.用粉笔写,和以白垩
+challenge#/ˈtʃælɪndʒ/#n.挑战#vt.向...挑战
+chamber#/ˈtʃeɪmbər/#n.(身体或器官内的)室,膛;房间;会所#adj.室内的;私人的,秘密的#vt.把…关在室内;装填(弹药等)#n.(Chamber)人名;(英)钱伯
+champion#/ˈtʃæmpiən/#n.冠军;拥护者;战士#vt.支持;拥护#adj.优胜的;第一流的#n.(Champion)人名;(英)钱皮恩;(法)尚皮翁
+chance#/tʃæns/#n.机会,际遇;运气,侥幸;可能性#vt.偶然发生;冒……的险#vi.碰巧;偶然被发现#adj.意外的,偶然的,碰巧的#n.(Chance)人名;(英)钱斯
+change#/tʃeɪndʒ/#n.改变,变化,转变,找回的零钱,找头,辅币#vt.改变,变革,改造,兑换
+channel#/ˈtʃænl/#n.海峡,水道,沟,路线#vt.引导,开导,形成河道信道,频道
+chaos#/ˈkeɪɑːs/#n.混沌,混乱#n.(Chaos)人名;(西)查奥斯
+chapter#/ˈtʃæptər/#n.章,回;(俱乐部、协会等的)分会;人生或历史上的重要时期#vt.把…分成章节
+character#/ˈkærəktər/#n.性格,品质;特性;角色;[计]字符#vt.印,刻;使具有特征#n.(Character)人名;(英)克拉克特
+characteristic#/ˌkærəktəˈrɪstɪk/#adj.典型的;特有的;表示特性的#n.特征;特性;特色
+characterize#/ˈkærəktəraɪz/#vt.描绘…的特性;具有…的特征#vi.塑造人物
+charge#/tʃɑːrdʒ/#n.负荷,电荷,费用,主管,掌管,充电,充气,装料#v.装满,控诉,责令,告诫,指示,加罪于,冲锋,收费
+charity#/ˈtʃærəti/#n.慈善;施舍;慈善团体;宽容;施舍物
+charm#/tʃɑːrm/#n.魅力,吸引力;魔力#vt.使陶醉;行魔法#vi.有魔力;用符咒
+charming#/ˈtʃɑːrmɪŋ/#adj.迷人的;可爱的#v.使陶醉(charm的现在分词)
+chart#/tʃɑːrt/#n.图表;海图;图纸;排行榜#vt.绘制……的图表;在海图上标出;详细计划;记录;记述;跟踪(进展或发展)#n.(Chart)(泰)察(人名)
+charter#/ˈtʃɑːrtər/#n.宪章;执照;特许状;(法律或政策的)漏洞;(飞机、船等的)租用#v.包租;发给特许执照#adj.包租的#n.(Charter)(美、英)查特(人名)
+chase#/tʃeɪs/#vt.追逐;追捕;试图赢得;雕镂#vi.追逐;追赶;奔跑#n.追逐;追赶;追击#n.(Chase)人名;(英)蔡斯;(法)沙斯
+chat#/tʃæt/#vi.聊天,闲谈;网聊#n.聊天,闲谈;(尤指非正式的)谈话;网聊;石;鸣禽#n.(Chat)(美、泰、英)沙(人名)
+cheap#/tʃiːp/#adj.便宜的;小气的;不值钱的#adv.便宜地
+cheat#/tʃiːt/#vt.欺骗;骗取#vi.欺骗;作弊#n.欺骗,作弊;骗子
+check#/tʃek/#vt.检查,核对;制止,抑制;在…上打勾;托运#vi.核实,查核;中止;打勾;[象棋]将一军#n.美支票;制止,抑制;检验,核对#n.(英)切克(人名)
+cheek#/tʃiːk/#n.面颊,脸颊;臀部#vt.无礼地向…讲话,对…大胆无礼#n.(Cheek)人名;(英)奇克
+cheer#/tʃɪr/#n.愉快,欢呼#v.(使)快活,(对)欢呼
+cheerful#/ˈtʃɪrfl/#adj.快乐的;愉快的;高兴的
+cheese#/tʃiːz/#n.[食品]奶酪;干酪;要人#vt.停止#adj.叛变的;胆小的
+chemical#/ˈkemɪkl/#n.化学制品,化学药品#adj.化学的
+chemist#/ˈkemɪst/#n.化学家;化学工作者;药剂师;炼金术士
+chemistry#/ˈkemɪstri/#n.化学;化学过程
+cheque#/tʃek/#n.支票
+cherish#/ˈtʃerɪʃ/#vt.珍爱;怀有(感情等);抱有(希望等)
+cherry#/ˈtʃeri/#n.樱桃;樱桃树;如樱桃的鲜红色;处女膜,处女#n.(Cherry)人名;(法、阿拉伯)谢里;(英)彻丽(女子教名Charity的昵称)
+chess#/tʃes/#n.国际象棋,西洋棋#n.(Chess)人名;(英)切斯
+chest#/tʃest/#n.胸,胸部;衣柜;箱子;金库
+chew#/tʃuː/#vt.咀爵(食物等)#v.咀嚼,认真考虑
+chicken#/ˈtʃɪkɪn/#n.鸡肉;小鸡;胆小鬼,懦夫#adj.鸡肉的;胆怯的;幼小的
+chief#/tʃiːf/#n.首领;酋长;主要部分#adj.首席的;主要的;主任的#adv.主要地;首要地
+child#/tʃaɪld/#n.儿童,小孩,孩子;产物;子孙;幼稚的人;弟子#n.(英)蔡尔德(人名)
+childhood#/ˈtʃaɪldhʊd/#n.童年时期;幼年时代
+childish#/ˈtʃaɪldɪʃ/#adj.幼稚的,孩子气的
+chill#/tʃɪl/#n.寒冷;寒意;寒心#adj.寒冷的;冷漠的;扫兴的#vt.冷冻,冷藏;使寒心;使感到冷#vi.冷藏;变冷
+chimney#/ˈtʃɪmni/#n.烟囱
+chin#/tʃɪn/#n.下巴,下颚
+China#/ˈtʃaɪnə/#n.中国#adj.中国的;中国制造的#n.(china)瓷器#adj.(china)瓷制的
+china#/ˈtʃaɪnə/#n.瓷器#adj.瓷制的#n.(China)中国#adj.(China)中国的
+Chinese#/ˌtʃaɪˈniːz/#n.中文,汉语;中国人#adj.中国的,中国人的;中国话的
+chip#/tʃɪp/#n.碎片,筹码#v.削成碎片,碎裂芯片
+chocolate#/ˈtʃɔːklət/#n.巧克力,巧克力糖;巧克力色#adj.巧克力色的;巧克力口味的#n.(Chocolate)人名;(葡)绍科拉特
+choice#/tʃɔɪs/#n.选择;选择权;精选品#adj.精选的;仔细推敲的
+choke#/tʃoʊk/#vt.呛;使窒息;阻塞;抑制;扑灭#vi.窒息;阻塞;说不出话来#n.窒息;噎;[动力]阻气门
+choose#/tʃuːz/#vt.选择,决定#vi.选择,挑选
+chop#/tʃɑːp/#n.砍,排骨,官印,商标#vt.剁碎,砍,(风浪)突变
+chord#/kɔːrd/#n.弦;和弦;香水的基调#n.(Chord)人名;(英)科德
+chorus#/ˈkɔːrəs/#n.合唱队;齐声;歌舞队#vt.合唱;异口同声地说#vi.合唱;异口同声地说话#n.(Chorus)人名;(法)肖吕斯
+Christian#/'krɪtʃən/#n.基督徒,信徒#adj.基督教的;信基督教的
+Christmas#/ˈkrɪsməs/#n.圣诞节;圣诞节期间
+chronic#/ˈkrɑːnɪk/#adj.慢性的;长期的;习惯性的#n.(Chronic)人名;(英)克罗尼克
+church#/tʃɜːrtʃ/#n.教堂;礼拜;教派#adj.教会的;礼拜的#vt.领…到教堂接受宗教仪式#n.(Church)人名;(英)丘奇
+cigarette#/ˈsɪɡəret/#n.香烟;纸烟
+cinema#/ˈsɪnəmə/#n.电影;电影院;电影业,电影制作术#n.(Cinema)人名;(意)奇内马
+circle#/ˈsɜːrkl/#n.循环,周期;圆;圈子;圆形物#vi.盘旋,旋转;环行#vt.画圆圈;环绕…移动
+circuit#/ˈsɜːrkɪt/#n.[电子]电路,回路;巡回;一圈;环道#vi.环行#vt.绕回…环行
+circular#/ˈsɜːrkjələr/#adj.循环的;圆形的#n.通知,传单
+circulate#/ˈsɜːrkjəleɪt/#vi.传播,流传;循环;流通#vt.使循环;使流通;使传播
+circulation#/ˌsɜːrkjəˈleɪʃn/#n.流通,传播;循环;发行量;(图书的)借出
+circumference#/sərˈkʌmfərəns/#n.圆周;周长;胸围
+circumstance#/ˈsɜːrkəmstæns/#n.环境;状况;境遇;(尤指)经济状况;命运#vt.处于某种情况
+circus#/ˈsɜːrkəs/#n.马戏;马戏团
+cite#/saɪt/#vt.引用;传讯;想起;表彰
+citizen#/ˈsɪtɪzn/#n.公民;市民;老百姓
+city#/ˈsɪti/#n.城市,都市#adj.城市的;都会的
+civil#/ˈsɪvl/#adj.公民的;民间的;文职的;有礼貌的;根据民法的#n.(Civil)人名;(土)吉维尔;(法)西维尔
+civilian#/səˈvɪliən/#n.平民,百姓#adj.民用的,百姓的,平民的
+civilization#/ˌsɪvələˈzeɪʃn/#n.文明;文化
+civilize#/ˈsɪvəlaɪz/#vt.使文明;教化;使开化#vi.变得文明
+claim#/kleɪm/#n.(根据权利提出)要求,要求权,主张,要求而得到的东西#vt.(根据权利)要求,认领,声称,主张,需要
+clamp#/klæmp/#n.夹子,夹具,夹钳#vt.夹住,夹紧
+clap#/klæp/#vi.鼓掌,拍手;啪地关上#vt.拍手,鼓掌;轻轻拍打某人#n.鼓掌;拍手声#n.(Clap)人名;(西、英)克拉普
+clarify#/ˈklærəfaɪ/#vt.澄清;阐明#vi.得到澄清;变得明晰;得到净化
+clarity#/ˈklærəti/#n.清楚,明晰;透明#n.(Clarity)人名;(英)克拉里蒂
+clash#/klæʃ/#n.冲突,不协调;碰撞声,铿锵声#vi.冲突,抵触;砰地相碰撞,发出铿锵声#vt.使碰撞作声
+clasp#/klæsp/#n.扣子,钩子;握手#vt.紧抱;扣紧;紧紧缠绕#vi.扣住
+class#/klæs/#n.班级,阶级,社会等级,种类,(一节)课#vt.把...分类(或分等级)
+classic#/ˈklæsɪk/#adj.经典的;古典的,传统的;最优秀的#n.名著;经典著作;大艺术家
+classical#/ˈklæsɪkl/#adj.古典的;经典的;传统的;第一流的#n.古典音乐
+classification#/ˌklæsɪfɪˈkeɪʃn/#n.分类;类别,等级
+classify#/ˈklæsɪfaɪ/#vt.分类;分等
+classmate#/ˈklæsmeɪt/#n.同班同学
+classroom#/ˈklɑːsruːm/#n.教室
+clause#/klɔːz/#n.条款;[计]子句#n.(Clause)人名;(法)克洛斯
+claw#/klɔː/#n.爪;螯,钳;爪形器具#vi.用爪抓(或挖)#vt.用爪抓(或挖)
+clay#/kleɪ/#n.[土壤]粘土;泥土;肉体;似黏土的东西#vt.用黏土处理#n.(Clay)人名;(英、法、西、意、葡)克莱
+clean#/kliːn/#adj.清洁的,干净的;清白的#vt.使干净#vi.打扫,清扫#adv.完全地#n.打扫#n.(Clean)人名;(英)克林
+clear#/klɪr/#adj.清楚的;清澈的;晴朗的;无罪的#vt.通过;清除;使干净;跳过#vi.放晴;变清澈#adv.清晰地;完全地#n.清除;空隙#n.(Clear)人名;(英)克利尔
+clearance#/ˈklɪrəns/#n.清除;(货物的)清仓甩卖;空隙;准许;(飞机起降的)许可;(支票)过户,结算;(足球比赛中)解围
+clearly#/ˈklɪrli/#adv.清晰地;明显地;无疑地;明净地
+clerk#/klɜːrk/#n.职员,办事员;店员;书记;记账员;古牧师,教士#vi.当销售员,当店员;当职员#n.(英)克拉克(人名)
+clever#/ˈklevər/#adj.聪明的;机灵的;熟练的[比较级cleverer最高级cleverest]
+client#/ˈklaɪənt/#n.[经]客户;顾客;委托人
+cliff#/klɪf/#n.悬崖;绝壁#n.(Cliff)人名;(英)克利夫
+climate#/ˈklaɪmət/#n.气候;风气;思潮;风土
+climax#/ˈklaɪmæks/#n.高潮;顶点;层进法;极点
+climb#/klaɪm/#v.攀登,爬#n.攀登,爬
+cling#/klɪŋ/#vi.坚持,墨守;紧贴;附着
+clinic#/ˈklɪnɪk/#n.临床;诊所;卫生所,卫生室;医务室
+clip#/klɪp/#n.夹子,回形针,子弹夹#vt.夹住,剪短,修剪
+cloak#/kloʊk/#n.斗蓬,宽大外衣,掩护#vt.用外衣遮蔽,披斗篷
+clock#/klɑːk/#n.时钟;计时器#vt.记录;记时#vi.打卡;记录时间#n.(Clock)人名;(英)克洛克
+clockwise#/ˈklɑːkwaɪz/#adv.顺时针方向地#adj.顺时针方向的
+close#/kloʊz;kloʊs/#v.关,关闭,结束,停止,使靠近,靠拢,会合,包围#n.结束#adj.近的,紧密的,精密的,齐根的,封闭的,亲密的,闷气的#adv.接近,紧密地
+closely#/ˈkloʊsli/#adv.紧密地;接近地;严密地;亲近地
+closet#/ˈklɑːzɪt/#n.壁橱;议事室,密室;小房间#adj.秘密的,私下的;空谈的#vt.把…关在私室中#n.(Closet)人名;(法)克洛塞
+cloth#/klɔːθ/#n.布;织物;桌布#adj.布制的#n.(Cloth)人名;(德)克洛特
+clothe#/kloʊð/#vt.给…穿衣;覆盖;赋予
+clothes#/kloʊðz,kloʊz/#n.衣服
+clothing#/ˈkloʊðɪŋ/#n.(总称)[服装]服装;帆装#v.覆盖(clothe的ing形式);给…穿衣
+cloud#/klaʊd/#n.云;阴云;云状物;一大群;黑斑#vt.使混乱;以云遮蔽;使忧郁;玷污#vi.阴沉;乌云密布#n.(Cloud)克劳德(人名)
+cloudy#/ˈklaʊdi/#adj.多云的;阴天的;愁容满面的
+club#/klʌb/#n.俱乐部,社团;夜总会;棍棒;(扑克牌中的)梅花#vt.用棍棒打;募集#vi.集资;组成俱乐部#adj.俱乐部的#n.(Club)(巴、印、阿)克拉布(人名)
+clue#/kluː/#n.线索;(故事等的)情节#vt.为…提供线索;为…提供情况
+clumsy#/ˈklʌmzi/#adj.笨拙的笨拙地不得当的不得当地
+cluster#/ˈklʌstər/#n.群;簇;丛;串#vi.群聚;丛生#vt.使聚集;聚集在某人的周围#n.(Cluster)人名;(英)克拉斯特
+clutch#/klʌtʃ/#v.紧握;(因害怕或痛苦)突然抓住;突然感到恐惧#n.离合器(踏板);一群;控制;紧握;一窝蛋;女式无带手提包#adj.紧要关头的
+coach#/koʊtʃ/#n.教练;旅客车厢;长途公车;四轮大马车#vt.训练;指导#vi.作指导;接受辅导;坐马车旅行#n.蔻驰(皮革品牌)
+coal#/koʊl/#n.煤;(尤指燃烧着的)煤块;木炭#v.供煤;采煤,提炼煤;把……烧成炭;加煤
+coarse#/kɔːrs/#adj.粗糙的;粗俗的;下等的
+coast#/koʊst/#n.海岸;滑行#v.滑行;(交通工具)快速平稳地移动;得过且过,做事不费力;沿岸航行#v.(Coast)(英、美)科斯特(人名)
+coat#/koʊt/#n.外套#vt.覆盖…的表面#n.(Coat)人名;(法)科阿
+cock#/kɑːk/#n.公鸡;龙头;雄鸟;头目#vt.使竖起;使耸立;使朝上#vi.翘起;竖起;大摇大摆#n.(Cock)人名;(英、西、瑞典)科克
+code#/koʊd/#n.代码,密码;编码;法典#vt.编码;制成法典#vi.指定遗传密码#n.(Code)人名;(英、法、西)科德
+coffee#/ˈkɔːfi/#n.咖啡;咖啡豆;咖啡色#n.(Coffee)人名;(英)科菲
+coherent#/koʊˈhɪrənt/#adj.连贯的,一致的;明了的;清晰的;凝聚性的;互相耦合的;粘在一起的;共格的
+coil#/kɔɪl/#v.盘绕,卷
+coin#/kɔɪn/#n.硬币#vt.铸造(硬币)
+coincide#/ˌkoʊɪnˈsaɪd/#vi.一致,符合;同时发生#vi.(在性格、品质等方面)完全一致,相符
+coincidence#/koʊˈɪnsɪdəns/#n.巧合;一致;同时发生
+cold#/koʊld/#adj.寒冷的;冷淡的,不热情的;失去知觉的#n.寒冷;感冒#adv.完全地
+collaboration#/kəˌlæbəˈreɪʃn/#n.合作;勾结;通敌
+collapse#/kəˈlæps/#n.倒塌,崩溃,失败,虚脱#vi.倒塌,崩溃,瓦解,失败,病倒
+collar#/ˈkɑːlər/#n.衣领;颈圈#vt.抓住;给…上领子;给…套上颈圈#n.(Collar)人名;(法)科拉尔;(西)科利亚尔;(英)科勒
+colleague#/ˈkɑːliːɡ/#n.同事,同僚
+collect#/kəˈlekt/#vt.收集;募捐#vi.收集;聚集;募捐#adv.由收件人付款地#adj.由收件人付款的#n.(Collect)人名;(英)科莱克特
+collection#/kəˈlekʃn/#n.采集,聚集;[税收]征收;收藏品;募捐
+collective#/kəˈlektɪv/#adj.集体的;共同的;集合的;集体主义的#n.集团;集合体;集合名词
+college#/ˈkɑːlɪdʒ/#n.大学;学院;学会
+collide#/kəˈlaɪd/#vi.碰撞;抵触,冲突#vt.使碰撞;使相撞
+collision#/kəˈlɪʒn/#n.碰撞;冲突;(意见,看法)的抵触;(政党等的)倾轧
+colonel#/ˈkɜːrnl/#n.陆军上校#n.(Colonel)人名;(法、罗)科洛内尔
+colonial#/kəˈloʊniəl/#adj.殖民的,殖民地的;(建筑,家具)殖民地时期式样的;(动物,植物)群体的;受英国殖民统治时期的#n.殖民地居民;殖民地时期式样的房屋
+colony#/ˈkɑːləni/#n.殖民地;移民队;种群;动物栖息地
+color#/ˈkʌlər/#n.颜色;肤色;颜料;脸色#vt.粉饰;给...涂颜色;歪曲#vi.变色;获得颜色
+column#/ˈkɑːləm/#n.纵队,列;专栏;圆柱,柱形物
+comb#/koʊm/#n.梳子;蜂巢;鸡冠#vt.梳头发;梳毛#vi.(浪)涌起
+combat#/ˈkɑːmbæt/#n.战斗;搏斗;争论,反对#v.与……战斗;防止,抑制(尤用于新闻报道)#adj.战斗的;为……斗争的#n.(Combat)(法)孔巴(人名)
+combination#/ˌkɑːmbɪˈneɪʃn/#n.结合;组合;联合;[化学]化合
+combine#/kəmˈbaɪn/#vt.使化合;使联合,使结合#vi.联合,结合;化合#n.联合收割机;联合企业
+come#/kʌm/#vi.来;开始;出现;发生;变成;到达#vt.做;假装;将满(…岁)#int.嗨!#n.(Come)人名;(英)科姆;(阿尔巴)乔梅
+comedy#/ˈkɑːmədi/#n.喜剧;喜剧性;有趣的事情
+comet#/ˈkɑːmɪt/#n.[天]彗星#n.(Comet)人名;(法)科梅
+comfort#/ˈkʌmfərt/#n.安慰;舒适;安慰者#vt.安慰;使(痛苦等)缓和
+comfortable#/ˈkʌmftəbl/#adj.舒适的,舒服的#n.盖被
+command#/kəˈmænd/#n.命令,掌握,司令部#v.命令,指挥,克制,支配,博得,俯临
+commander#/kəˈmændər/#n.指挥官,长官;海军中校;英国高级警官
+commemorate#/kəˈmeməreɪt/#vt.庆祝,纪念;成为…的纪念
+commence#/kəˈmens/#v.开始;着手;英获得学位
+commend#/kəˈmend/#vt.推荐;称赞;把…委托#vi.称赞;表扬
+comment#/ˈkɑːment/#n.注释,评论,意见#vi.注释,评论
+commentary#/ˈkɑːmənteri/#n.评论;注释;评注;说明
+commerce#/ˈkɑːmɜːrs/#n.贸易;商业;商务
+commercial#/kəˈmɜːrʃl/#adj.商业的;营利的;靠广告收入的#n.商业广告
+commission#/kəˈmɪʃn/#n.委员会;佣金;服务费;犯;委任;委任状#vt.委任;使服役;委托制作
+commit#/kəˈmɪt/#vt.犯罪;把...交托给;指派…作战;使…承担义务;(公开地)表示意见#vi.忠于(某个人、机构等);承诺
+commitment#/kəˈmɪtmənt/#n.承诺,保证;委托;承担义务;献身;花费金钱、时间、人力等
+committee#/kəˈmɪti/#n.委员会
+commodity#/kəˈmɑːdə/#n.商品,货物;日用品
+common#/ˈkɑːmən/#adj.共同的;普通的;一般的;通常的#n.普通;平民;公有地#n.(Common)(法)科蒙,(英)康芒(人名)
+commonly#/ˈkɑːmənli/#adv.一般地;通常地;普通地
+commonplace#/ˈkɑːmənpleɪs/#n.司空见惯的事,普通的东西;老生常谈#adj.平凡的,普通的;平庸的,陈腐的
+commonwealth#/ˈkɑːmənwelθ/#n.联邦;共和国;国民整体
+communicate#/kəˈmjuːnɪkeɪt/#vi.通讯,传达;相通;交流;感染#vt.传达;感染;显露
+communication#/kəˌmjuːnɪˈkeɪʃn/#n.通讯,[通信]通信;交流;信函
+communism#/ˈkɑːmjunɪzəm/#n.共产主义
+communist#/ˈkɑːmjənɪst/#n.共产党员;共产主义者#adj.共产主义的
+community#/kəˈmjuːnə/#n.社区;[生态]群落;共同体;团体
+commute#/kəˈmjuːt/#vi.(搭乘车、船等)通勤;代偿#vt.减刑;交换;用……交换;使……变成#n.通勤(口语)
+compact#/kəmˈpækt/#adj.袖珍的;紧凑的;坚实的;矮小而健壮的;简洁的#n.小汽车;带镜小粉盒;契约#v.把……压实;使简洁;使紧密,压缩;订立(协定)
+companion#/kəmˈpænjən/#n.同伴;朋友;指南;手册#vt.陪伴#n.(Companion)人名;(英)康帕宁
+company#/ˈkʌmpəni/#n.公司;陪伴,同伴;连队#vi.古交往#vt.古陪伴#n.(Company)(美、瑞)孔帕尼(人名)
+comparable#/ˈkɑːmpərəbl/#adj.类似的,可比较的;同等的,相当的
+comparative#/kəmˈpærətɪv/#adj.比较的;相当的#n.比较级;对手
+compare#/kəmˈper/#v.比较,对比;与……类似,将……比作;相比,匹敌;构成(形容词或副词)的比较级和最高级#n.比较
+comparison#/kəmˈpærɪsn/#n.比较;对照;比喻;比较关系
+compartment#/kəmˈpɑːrtmənt/#n.[建]隔间;区划;卧车上的小客房#vt.分隔;划分
+compass#/ˈkʌmpəs/#n.指南针,罗盘;圆规#vt.包围
+compatible#/kəmˈpætəbl/#adj.兼容的;能共处的;可并立的
+compel#/kəmˈpel/#vt.强迫,迫使;强使发生#n.(Compel)人名;(法)孔佩尔
+compensate#/ˈkɑːmpenseɪt/#vi.补偿,赔偿;抵消#vt.补偿,赔偿;付报酬
+compete#/kəmˈpiːt/#vi.竞争;比赛;对抗
+competence#/ˈkɑːmpɪtəns/#n.能力,胜任;权限;作证能力;足以过舒适生活的收入
+competent#/ˈkɑːmpɪtənt/#adj.胜任的;有能力的;能干的;足够的
+competition#/ˌkɑːmpəˈtɪʃn/#n.竞争;比赛,竞赛
+competitive#/kəmˈpetətɪv/#adj.竞争的;比赛的;求胜心切的
+compile#/kəmˈpaɪl/#vt.编译;编制;编辑;[图情]汇编
+complain#/kəmˈpleɪn/#vi.投诉;发牢骚;诉说#vt.抱怨;控诉
+complaint#/kəmˈpleɪnt/#n.抱怨;诉苦;疾病;委屈
+complement#/ˈkɑːmplɪment;ˈkɑːmplɪm#n.补语;余角;补足物#vt.补足,补助
+complete#/kəmˈpliːt/#adj.完整的;完全的;彻底的#vt.完成,使完满;完成或结束;填写(表格)
+completely#/kəmˈpliːtli/#adv.完全地,彻底地;完整地
+complex#/kəmˈpleks,ˈkɑːmpleks/#adj.复杂的;合成的#n.复合体;综合设施
+complicate#/ˈkɑːmplɪkeɪt/#vt.使复杂化;使恶化;使卷入
+complicated#/ˈkɑːmplɪkeɪtɪd/#adj.难懂的,复杂的
+complication#/ˌkɑːmplɪˈkeɪʃn/#n.并发症;复杂;复杂化;混乱
+compliment#/ˈkɑːmplɪmənt/#n.恭维;称赞;问候;致意;道贺#vt.恭维;称赞
+comply#/kəmˈplaɪ/#vi.遵守;顺从,遵从;答应
+component#/kəmˈpoʊnənt/#n.组成部分;成分;组件,元件#adj.组成的;构成的
+compose#/kəmˈpoʊz/#vt.构成;写作;使平静;排…的版#vi.组成;作曲;排字
+composite#/kəmˈpɑːzət/#adj.合成的,复合的#n.合成物
+composition#/ˌkɑːmpəˈzɪʃn/#n.作文,作曲,作品;[材]构成;合成物;成分
+compound#/ˈkɑːmpaʊnd/#n.[化学]化合物;混合物;复合词;有围栏(或围墙)的场地(内有工厂或其他建筑群)#adj.复合的;混合的#v.合成;混合;恶化,加重;和解,妥协
+comprehension#/ˌkɑːmprɪˈhenʃn/#n.理解;包含
+comprehensive#/ˌkɑːmprɪˈhensɪv/#adj.综合的;广泛的;有理解力的#n.综合学校;专业综合测验
+compress#/kəmˈpres/#vi.受压缩小#vt.压缩,压紧;精简
+comprise#/kəmˈpraɪz/#vt.包含;由…组成
+compromise#/ˈkɑːmprəmaɪz/#n.妥协,和解;妥协(或折中)方案;达成妥协#v.妥协,折中;违背(原则),达不到(标准);(因行为不当)使陷入危险,名誉受损
+compulsory#/kəmˈpʌlsəri/#adj.义务的;必修的;被强制的#n.(花样滑冰、竞技体操等的)规定动作
+compute#/kəmˈpjuːt/#vt.计算;估算;用计算机计算#vi.计算;估算;推断#n.计算;估计;推断
+computer#/kəmˈpjuːtər/#n.计算机;电脑;电子计算机
+comrade#/ˈkɑːmræd/#n.同志;伙伴#n.(Comrade)人名;(尼日利)科姆拉德
+conceal#/kənˈsiːl/#vt.隐藏;隐瞒
+concede#/kənˈsiːd/#vt.承认;退让;给予,容许#vi.让步
+conceive#/kənˈsiːv/#vt.怀孕;构思;以为;持有#vi.怀孕;设想;考虑
+concentrate#/ˈkɑːnsntreɪt/#vi.集中;浓缩;全神贯注;聚集#vt.集中;浓缩#n.浓缩,精选;浓缩液
+concentration#/ˌkɑːnsnˈtreɪʃn/#n.浓度;集中;浓缩;专心;集合
+concept#/ˈkɑːnsept/#n.观念,概念
+conception#/kənˈsepʃn/#n.怀孕;概念;设想;开始
+concern#/kənˈsɜːrn/#vt.影响,牵扯(某人);关系到,涉及;使担心#n.担心,忧虑;关爱,关心;关心的事,负责的事;关系;公司,企业;(非正式)复杂的物体
+concerning#/kənˈsɜːrnɪŋ/#prep.关于;就…而言#v.涉及;使关心(concern的ing形式);忧虑
+concert#/ˈkɑːnsərt/#n.音乐会;一致;和谐#vt.使协调;协同安排#vi.协调;协力#adj.音乐会用的;在音乐会上演出的
+concession#/kənˈseʃn/#n.让步;特许(权);承认;退位
+concise#/kənˈsaɪs/#adj.简明的,简洁的
+conclude#/kənˈkluːd/#vt.推断;决定,作结论;结束#vi.推断;断定;决定
+conclusion#/kənˈkluːʒn/#n.结论;结局;推论
+concrete#/ˈkɑːnkriːt/#adj.混凝土的;实在的,具体的;有形的#vi.凝结#vt.使凝固;用混凝土修筑#n.具体物;凝结物
+condemn#/kənˈdem/#vt.谴责;判刑,定罪;声讨
+condense#/kənˈdens/#vi.浓缩;凝结#vt.使浓缩;使压缩
+condition#/kənˈdɪʃn/#n.条件;情况;环境;身份#vt.决定;使适应;使健康;以…为条件
+conduct#/kənˈdʌkt/#v.组织,实施,进行;指挥(音乐);带领,引导;举止,表现;传导(热或电)#n.行为举止;管理(方式),实施(办法);引导
+conductor#/kənˈdʌktər/#n.导体;售票员;领导者;管理人
+confer#/kənˈfɜːr/#vt.授予;给予#vi.协商#n.(Confer)人名;(英)康弗
+conference#/ˈkɑːnfərəns/#n.会议;讨论;协商;联盟;(正式)讨论会;[工会、工党用语](每年的)大会#vi.举行或参加(系列)会议
+confess#/kənˈfes/#vt.承认;坦白;忏悔;供认#vi.承认;坦白;忏悔;供认
+confidence#/ˈkɑːnfɪdəns/#n.信心;信任;秘密#adj.(美)诈骗的;骗得信任的
+confident#/ˈkɑːnfɪdənt/#adj.自信的;确信的
+confidential#/ˌkɑːnfɪˈdenʃl/#adj.机密的;表示信任的;获信任的
+configuration#/kənˌfɪɡjəˈreɪʃn/#n.配置;结构;外形
+confine#/kənˈfaɪn/#vt.限制,禁闭#n.界限,边界
+confirm#/kənˈfɜːrm/#vt.确认;确定;证实;批准;使巩固
+conflict#/ˈkɑːnflɪkt/#n.冲突,矛盾;斗争;争执#vi.冲突,抵触;争执;战斗
+conform#/kənˈfɔːrm/#vi.符合;遵照;适应环境#vt.使遵守;使一致;使顺从#adj.一致的;顺从的
+confront#/kənˈfrʌnt/#vt.面对;遭遇;比较
+confuse#/kənˈuːz/#vt.使混乱;使困惑
+confusion#/kənˈuːʒn/#n.混淆,混乱;困惑
+congratulate#/kənˈɡrætʃuleɪt/#vt.祝贺;恭喜;庆贺
+congratulation#/kənˌɡrætʃuˈleɪʃn/#n.祝贺;贺辞
+congress#/ˈkɑːŋɡrəs/#n.国会;代表大会;会议;社交
+conjunction#/kənˈdʒʌŋkʃn/#n.结合;[语]连接词;同时发生
+connect#/kəˈnekt/#vt.连接;联合;关连;链接#vi.连接,连结;联合
+connection#/kəˈnekʃn/#n.连接;关系;人脉;连接件
+conquer#/ˈkɑːŋkər/#vt.战胜,征服;攻克,攻取#vi.胜利;得胜
+conquest#/ˈkɑːŋkwest/#n.征服,战胜;战利品#n.(Conquest)人名;(英)康奎斯特
+conscience#/ˈkɑːnʃəns/#n.道德心,良心#n.(Conscience)人名;(法)孔西延斯
+conscientious#/ˌkɑːnʃiˈenʃəs/#adj.认真的;尽责的;本着良心的;小心谨慎的
+conscious#/ˈkɑːnʃəs/#adj.意识到的;故意的;神志清醒的
+consciousness#/ˈkɑːnʃəsnəs/#n.意识;知觉;觉悟;感觉
+consecutive#/kənˈsekjətɪv/#adj.连贯的;连续不断的
+consensus#/kənˈsensəs/#n.一致;舆论;合意
+consent#/kənˈsent/#vi.同意,赞成,答应#n.同意,赞成,允诺
+consequence#/ˈkɑːnsɪkwens/#n.结果;重要性;推论
+consequent#/ˈkɑːnsɪkwent/#adj.随之发生的,作为结果的;(河流、山谷)顺向的;合乎逻辑的#n.(逻辑)后件,推断;(音乐)答句;分母
+consequently#/ˈkɑːnsɪkwentli/#adv.因此;结果;所以
+conservation#/ˌkɑːnsərˈveɪʃn/#n.保存,保持;保护
+conservative#/kənˈsɜːrvətɪv/#adj.保守的#n.保守派,守旧者
+conserve#/kənˈsɜːrv/#vt.保存;将…做成蜜饯;使守恒#n.果酱;蜜饯
+consider#/kənˈsɪdər/#vt.考虑;认为;考虑到;细想#vi.考虑;认为;细想
+considerable#/kənˈsɪdərəbl/#adj.相当大的;重要的,值得考虑的
+considerate#/kənˈsɪdərət/#adj.体贴的;体谅的;考虑周到的
+consideration#/kənˌsɪdəˈreɪʃn/#n.考虑;原因;关心;报酬
+consist#/kənˈsɪst/#vi.由…组成;在于;符合
+consistent#/kənˈsɪstənt/#adj.始终如一的,一致的;坚持的
+consolidate#/kənˈsɑːlɪdeɪt/#vt.巩固,使固定;联合#vi.巩固,加强
+conspicuous#/kənˈspɪkjuəs/#adj.显著的;显而易见的
+constant#/ˈkɑːnstənt/#adj.不变的;恒定的;经常的#n.[数]常数;恒量#n.(Constant)人名;(德)康斯坦特
+constituent#/kənˈstɪtʃuənt/#n.成分;选民;委托人#adj.构成的;选举的;有任命(或选举)权的;立宪的;有宪法制定(或修改)权的
+constitution#/ˌkɑːnstɪˈtuːʃn/#n.宪法;章程;构造;组成;体格
+constrain#/kənˈstreɪn/#vt.驱使;强迫;束缚
+construct#/kənˈstrʌkt/#vt.建造,构造,创立
+construction#/kənˈstrʌkʃn/#n.建设;建筑物;解释;造句
+consult#/kənˈsʌlt/#vt.查阅;商量;向…请教#vi.请教;商议;当顾问
+consultant#/kənˈsʌltənt/#n.顾问;咨询者;会诊医生
+consume#/kənˈsuːm/#vt.消耗,消费;使…着迷;挥霍#vi.耗尽,毁灭;耗尽生命
+consumer#/kənˈsuːmər/#n.消费者;用户,顾客
+consumption#/kənˈsʌmpʃn/#n.消费;消耗;肺痨
+contact#/ˈkɑːntækt/#n.接触,联系#vt.使接触,联系#vi.使接触,联系
+contain#/kənˈteɪn/#vt.包含;控制;容纳;牵制(敌军)#vi.含有;自制
+container#/kənˈteɪnər/#n.集装箱;容器
+contaminate#/kənˈtæmɪneɪt/#vt.污染,弄脏
+contemplate#/ˈkɑːntəmpleɪt/#vt.沉思;注视;思忖;预期#vi.冥思苦想;深思熟虑
+contemporary#/kənˈtempəreri/#adj.发生(属)于同时期的;当代的#n.同代人,同龄人;同时期的东西
+contempt#/kənˈtempt/#n.轻视,蔑视;耻辱
+contend#/kənˈtend/#vi.竞争;奋斗;斗争;争论#vt.主张;为...斗争
+content#/'kɑntent/#n.内容,目录;满足;容量#adj.满意的#vt.使满意#n.(Content)(法)孔唐(人名)
+contest#/ˈkɑːntest/#n.论争,竞赛#v.,争论,争辩,竞赛,争夺
+context#/ˈkɑːntekst/#n.环境;上下文;来龙去脉
+continent#/ˈkɑːntɪnənt/#n.大陆,洲,陆地#adj.自制的,克制的
+continual#/kənˈtɪnjuəl/#adj.持续不断的;频繁的
+continue#/kənˈtɪnjuː/#vi.继续,延续;仍旧,连续#vt.继续说…;使…继续;使…延长
+continuous#/kənˈtɪnjuəs/#adj.连续的,持续的;继续的;连绵不断的
+contract#/ˈkɑːntrækt/#n.合同,契约;婚约;(非正式)暗杀协议;(桥牌)定约#v.收缩,缩短;感染;订约;订(婚);负(债);结交
+contradict#/ˌkɑːntrəˈdɪkt/#vt.反驳;否定;与…矛盾;与…抵触#vi.反驳;否认;发生矛盾
+contradiction#/ˌkɑːntrəˈdɪkʃn/#n.矛盾;否认;反驳
+contrary#/'kɑntreri/#adj.相反的;对立的#adv.相反地#n.相反;反面
+contrast#/ˈkɑːntræst/#vt.使与...对比,使与...对照#vi.和...形成对照#n.对比,对照,(对照中的)差异
+contribute#/kənˈtrɪbjuːt/#vt.贡献,出力;投稿;捐献#vi.有助于,促成,是……的原因之一;发表意见,提议
+contribution#/ˌkɑːntrɪˈbjuːʃn/#n.贡献;捐献;投稿
+contrive#/kənˈtraɪv/#vt.设计;发明;图谋#vi.谋划;设法做到
+control#/kənˈtroʊl/#n.控制;管理;抑制;操纵装置#vt.控制;管理;抑制
+controversial#/ˌkɑːntrəˈvɜːrʃl/#adj.有争议的;有争论的
+controversy#/ˈkɑːntrəvɜːrsi/#n.争论;论战;辩论
+convenience#/kənˈviːniəns/#n.便利;厕所;便利的事物
+convenient#/kənˈviːniənt/#adj.方便的;近便的;实用的;&lt;废语&gt;适当的
+convention#/kənˈvenʃn/#n.大会;[法]惯例;[计]约定;[法]协定;习俗
+conventional#/kənˈvenʃənl/#adj.符合习俗的,传统的;常见的;惯例的
+converge#/kənˈvɜːrdʒ/#vt.使汇聚#vi.聚集;靠拢;收敛
+conversation#/ˌkɑːnvərˈseɪʃn/#n.交谈,会话;社交;交往,交际;会谈;(人与计算机的)人机对话
+conversely#/ˈkɑːnvɜːrsli/#adv.相反地
+conversion#/kənˈvɜːrʒn/#n.转换;变换;[金融]兑换;改变信仰
+convert#/kənˈvɜːrt/#vt.使转变;转换…;使…改变信仰#vi.转变,变换;皈依;改变信仰#n.皈依者;改变宗教信仰者#n.(Convert)人名;(法)孔韦尔
+convey#/kənˈveɪ/#vt.传达;运输;让与
+convict#/kənˈvɪkt;ˈkɑnvɪkt/#vt.证明…有罪;宣告…有罪#n.罪犯
+conviction#/kənˈvɪkʃn/#n.定罪;确信;证明有罪;确信,坚定的信仰
+convince#/kənˈvɪns/#vt.说服;使确信,使信服
+cook#/kʊk/#v.做饭,烹调;(食物)被烧煮;(非正式)篡改,伪造;密谋;干得起劲#n.厨师#n.(Cook)(美)库克(人名)
+cool#/kuːl/#adj.凉爽的;冷静的;出色的#vt.使…冷却;使…平静下来#vi.变凉;平息#n.凉爽;凉爽的空气#adv.冷静地#n.(Cool)人名;(法)科尔;(英)库尔
+cooperate#/koʊˈɑːpəreɪt/#vi.合作,配合;协力
+cooperative#/koʊˈɑːpərətɪv/#adj.合作的;合作社的#n.合作社
+coordinate#/koʊˈɔːrdɪneɪt/#v.调节,配合;使动作协调;(衣服、家具等)搭配;与……形成共价键#adj.同等的,并列的;配位的;坐标的#n.坐标;配套服装;同等的人或物
+cope#/koʊp/#vi.处理;对付;竞争#n.长袍#n.(Cope)人名;(英)科普;(西)科佩
+copper#/ˈkɑːpər/#n.铜;铜币;警察#adj.铜制的#vt.镀铜#n.(Copper)人名;(英)科珀
+copy#/ˈkɑːpi/#n.副本;一册;稿件;作业本;(报纸、杂志的)题材;广告文字#vt.复制;抄写;抄送;抄袭;效仿;收到,听见#vi.复制;抄写
+cord#/kɔːrd/#n.绳索;束缚#vt.用绳子捆绑#n.(Cord)人名;(法)科尔;(英)科德
+cordial#/ˈkɔːrdʒəl/#adj.热情友好的;由衷的;兴奋的#n.甜果汁饮料;镇定药;兴奋剂;甜香酒
+core#/kɔːr/#n.核心;要点;果心;[计]磁心#vt.挖...的核#n.(Core)人名;(英)科尔;(西、意)科雷
+corn#/kɔːrn/#n.(美)玉米;(英)谷物;[皮肤]鸡眼#vt.腌;使成颗粒#n.(Corn)人名;(英、法、瑞典)科恩
+corner#/ˈkɔːrnər/#n.角落,拐角处;地区,偏僻处;困境,窘境#vi.囤积;相交成角#vt.垄断;迫至一隅;使陷入绝境;把…难住#n.(Corner)人名;(法)科尔内;(英)科纳
+corporate#/ˈkɔːrpərət/#adj.法人的;共同的,全体的;社团的;公司的;企业的
+corporation#/ˌkɔːrpəˈreɪʃn/#n.公司;法人(团体);社团;市政当局
+corps#/kɔːr/#n.军团;兵种;兵队;(德国大学的)学生联合会#n.(Corps)(西、德)科尔普斯(人名)
+correct#/kəˈrekt/#adj.(政治或思想)正确的;恰当的;端正的#v.改正;批改(学生作业);校正;指出错误;抵消;校准(仪器);修正、调整(数据)
+correction#/kəˈrekʃn/#n.改正,修正
+correlate#/ˈkɔːrəleɪt/#vi.关联#vt.使有相互关系;互相有关系#n.相关物;相关联的人
+correspond#/ˌkɔːrəˈspɑːnd/#vi.符合,一致;相应;通信
+correspondence#/ˌkɔːrəˈspɑːndəns/#n.通信;一致;相当
+correspondent#/ˌkɔːrəˈspɑːndənt/#n.通讯记者;客户;通信者;代理商行
+corresponding#/ˌkɔːrəˈspɑːndɪŋ/#adj.相当的,相应的;一致的;通信的#v.类似(correspond的ing形式);相配
+corridor#/ˈkɔːrɪdɔːr/#n.走廊
+corrode#/kəˈroʊd/#vt.侵蚀;损害#vi.受腐蚀;起腐蚀作用
+corrupt#/kəˈrʌpt/#adj.腐败的,贪污的;堕落的#vt.使腐烂;使堕落,使恶化#vi.堕落,腐化;腐烂
+cosmic#/ˈkɑːzmɪk/#adj.宇宙的(等于cosmical)
+cost#/kɔːst/#n.成本,价钱,代价#vt.价值为,(使)花费(金钱,时间,劳力等),使失去(生命,健康等),令人付出#vi.花费
+costly#/ˈkɔːstli/#adj.昂贵的;代价高的#n.(Costly)人名;(英)科斯特利
+costume#/ˈkɑːstuːm/#n.服装,装束;戏装,剧装#vt.给…穿上服装
+cottage#/ˈkɑːtɪdʒ/#n.小屋;村舍;(农舍式的)小别墅
+cotton#/ˈkɑːtn/#n.棉花;棉布;棉线#vi.一致;理解;和谐;亲近#adj.棉的;棉制的#n.(Cotton)人名;(英、西、葡)科顿;(法)戈登
+couch#/kaʊtʃ/#n.睡椅,长沙发;床;卧榻#vi.蹲伏,埋伏;躺着#vt.使躺下;表达;弯下#n.(Couch)人名;(英)库奇
+cough#/kɔːf/#v.咳嗽;咳出;突然发出刺耳的声音;厉声说出;供认#n.咳嗽,咳嗽声;咳嗽病#n.(Cough)(美、英)考夫(人名)
+could#/kəd,kʊd/#aux.能够,可以;可能;差点就,本来有可能;很想v.能(can的过去式)
+council#/ˈkaʊnsl/#n.委员会;会议;理事会;地方议会;顾问班子#n.(Council)人名;(英)康斯尔
+counsel#/ˈkaʊnsl/#n.法律顾问;忠告;商议;讨论;决策#vt.建议;劝告#vi.商讨;提出忠告
+count#/kaʊnt/#v.数,计算,计算在内,认为,有价值#n.计数,计算,注意,伯爵
+counter#/ˈkaʊntər/#n.计算器,计数器,计算者,柜台,筹码#adv.prep.相反地
+counterpart#/ˈkaʊntərpɑːrt/#n.副本;配对物;极相似的人或物
+country#/ˈkʌntri/#n.国家,国土;国民;乡下,农村;乡村;故乡#adj.祖国的,故乡的;地方的,乡村的;国家的;粗鲁的;乡村音乐的
+countryside#/ˈkʌntrisaɪd/#n.农村,乡下;乡下的全体居民
+county#/ˈkaʊnti/#n.郡,县
+couple#/ˈkʌpl/#n.对;夫妇;数个#vi.结合;成婚#vt.结合;连接;连合#n.(Couple)人名;(法)库普勒
+courage#/ˈkɜːrɪdʒ/#n.勇气;胆量#n.(Courage)人名;(英)卡里奇;(法)库拉热
+course#/kɔːrs/#n.科目;课程;过程;进程;道路;路线,航向;一道菜#vt.追赶;跑过#vi.指引航线;快跑
+court#/kɔːrt/#n.法院;球场;朝廷;奉承#vt.招致(失败、危险等);向…献殷勤;设法获得#vi.求爱#n.(Court)人名;(英)考特;(法)库尔
+courtesy#/ˈkɜːrtəsi/#n.礼貌;好意;恩惠#adj.殷勤的;被承认的;出于礼节的
+cousin#/ˈkʌzn/#n.堂兄弟姊妹;表兄弟姊妹
+cover#/ˈkʌvər/#n.盖子,封面,藉口#vt.覆盖,铺,掩饰,保护,掩护,包括,包含,适用#vi.覆盖,涂,代替
+cow#/kaʊ/#n.奶牛,母牛;母兽#vt.威胁,恐吓
+coward#/ˈkaʊərd/#n.懦夫,懦弱的人#adj.胆小的,懦怯的#n.(Coward)人名;(英)科沃德
+crack#/kræk/#n.裂缝,噼啪声#v.(使)破裂,裂纹,(使)爆裂#adj.最好的,高明的
+cradle#/ˈkreɪdl/#n.摇篮;发源地;发祥地;支船架#vt.抚育;把...搁在支架上;把...放在摇篮内
+craft#/kræft/#n.工艺;手艺;太空船#vt.精巧地制作#n.(Craft)人名;(英、德、罗)克拉夫特
+crane#/kreɪn/#n.吊车,起重机;鹤#vi.伸着脖子看;迟疑,踌躇#vt.用起重机起吊;伸长脖子#n.(Crane)人名;(意、葡)克拉内;(英、法、西)克兰
+crash#/kræʃ/#n.碰撞,坠落,坠毁,撞击声,爆裂声#v.碰撞,坠落,坠毁,(指商业公司,政府等)破产,垮台
+crawl#/krɔːl/#vi.爬行;匍匐行进#vt.爬行;缓慢地行进#n.爬行;养鱼池;匍匐而行
+crazy#/ˈkreɪzi/#adj.疯狂的;狂热的,着迷的
+cream#/kriːm/#n.奶油,乳脂;精华;面霜;乳酪
+create#/kriˈeɪt/#vt.创造,创作;造成
+creation#/kriˈeɪʃn/#n.创造,创作;创作物,产物
+creative#/kriˈeɪtɪv/#adj.创造性的
+creature#/ˈkriːtʃər/#n.动物,生物;人;创造物
+credit#/ˈkredɪt/#n.信用,信誉;[金融]贷款;学分;信任;声望#vt.相信,信任;把…归给,归功于;赞颂
+creep#/kriːp/#vi.爬行;蔓延;慢慢地移动;起鸡皮疙瘩#n.爬行;毛骨悚然的感觉;谄媚者;非玩家控制的小兵(游戏术语)
+crew#/kruː/#n.队,组;全体人员,全体船员#vi.一起工作#vt.使当船员#n.(Crew)人名;(英、西)克鲁
+cricket#/ˈkrɪkɪt/#n.板球,板球运动;蟋蟀
+crime#/kraɪm/#n.罪行,犯罪;罪恶;犯罪活动#vt.控告……违反纪律
+criminal#/ˈkrɪmɪnl/#adj.犯罪的;刑事的;罪过的,错误的;不道德的;令人震惊的#n.罪犯
+cripple#/ˈkrɪpl/#v.(使)跛;(使)残废;削弱;严重毁坏(机器);给……造成严重问题#n.古,冒犯跛子,残废人
+crisis#/ˈkraɪsɪs/#n.危机;危险期;决定性时刻#adj.危机的;用于处理危机的
+crisp#/krɪsp/#adj.脆的;新鲜的;易碎的#vt.使卷曲;使发脆#vi.卷曲;发脆#n.松脆物;油炸马铃薯片#n.(Crisp)人名;(英)克里斯普
+criterion#/kraɪˈtɪriən/#n.(批评判断的)标准;准则;规范;准据
+critic#/ˈkrɪtɪk/#n.批评家,评论家;爱挑剔的人
+critical#/ˈkrɪtɪkl/#adj.鉴定的;[核]临界的;批评的,爱挑剔的;危险的;决定性的;评论的
+criticism#/ˈkrɪtɪsɪzəm/#n.批评;考证;苛求
+criticize#/ˈkrɪtɪsaɪz/#vt.批评;评论;非难#vi.批评;评论;苛求
+crop#/krɑːp/#n.产量;农作物;庄稼;平头#vt.种植;收割;修剪;剪短#vi.收获
+cross#/krɔːs/#n.交叉,十字;十字架,十字形物#vi.交叉;杂交;横过#vt.杂交;渡过;使相交#adj.交叉的,相反的;乖戾的;生气的
+crow#/kroʊ/#n.乌鸦;鸣叫;(非正式)丑妇;撬棍#v.打鸣;自鸣得意;欢呼
+crowd#/kraʊd/#n.人群;观众;(非正式)一伙人;众多#v.(一批人)(使)挤满;逼近(某人);聚集;(想法或观点)塞满脑子;催促(因而使人生气或不快)
+crown#/kraʊn/#n.王冠;花冠;王权;顶点#vt.加冕;居…之顶;表彰;使圆满完成#n.(Crown)人名;(英)克朗
+crucial#/ˈkruːʃl/#adj.重要的;决定性的;定局的;决断的
+crude#/kruːd/#adj.粗糙的;天然的,未加工的;粗鲁的#n.原油;天然的物质
+cruel#/ˈkruːəl/#adj.残酷的,残忍的;使人痛苦的,让人受难的;无情的,严酷的
+cruise#/kruːz/#vi.巡游,巡航#n.巡游,巡航
+crush#/krʌʃ/#vt.压碎,碾碎,压服,压垮,粉碎,(使)变形
+crust#/krʌst/#n.地壳;外壳;面包皮;坚硬外皮#vi.结硬皮;结成外壳#vt.盖以硬皮;在…上结硬皮
+cry#/kraɪ/#vi.哭,流泪#v.叫,喊#n.哭泣,哭声,叫喊,喊声
+crystal#/ˈkrɪstl/#n.结晶,晶体;水晶;水晶饰品#adj.水晶的;透明的,清澈的#n.(Crystal)人名;(英)克里斯特尔,克丽丝特尔(女名)
+cube#/kjuːb/#n.立方;立方体;骰子#vt.使成立方形;使自乘二次;量…的体积#n.(Cube)人名;(瑞典、德)库贝
+cubic#/ˈkjuːbɪk/#adj.立方体的,立方的#n.(Cubic)人名;(罗)库比克
+cucumber#/ˈkjuːkʌmbər/#n.黄瓜;胡瓜
+cue#/kjuː/#n.提示,暗示;线索#vt.给…暗示#n.(Cue)人名;(西)库埃
+culminate#/ˈkʌlmɪneɪt/#vi.到绝顶;达到高潮;达到顶点#vt.使结束;使达到高潮
+cultivate#/ˈkʌltɪveɪt/#vt.培养;陶冶;耕作
+culture#/ˈkʌltʃər/#n.文化,文明;修养;栽培#vt.[细胞][微]培养(等于cultivate)
+cumulative#/ˈkjuːmjəleɪtɪv/#adj.累积的
+cunning#/ˈkʌnɪŋ/#adj.狡猾的;巧妙的;可爱的#n.狡猾
+cup#/kʌp/#n.杯子;奖杯;酒杯#vt.使成杯状;为…拔火罐
+cupboard#/ˈkʌbərd/#n.碗柜;食橱
+curb#/kɜːrb/#n.抑制;路边;勒马绳#vt.控制;勒住
+cure#/kjʊr/#v.治愈,治疗#n.治愈,痊愈
+curiosity#/ˌkjʊriˈɑːsə/#n.好奇,好奇心;珍品,古董,古玩
+curious#/ˈkjʊriəs/#adj.好奇的,有求知欲的;古怪的;爱挑剔的
+curl#/kɜːrl/#vt.使…卷曲;使卷起来#vi.卷曲;盘绕#n.卷曲;卷发;螺旋状物#n.(Curl)人名;(英)柯尔
+currency#/ˈkɜːrənsi/#n.货币;通货
+current#/ˈkɜːrənt/#adj.现在的;流通的,通用的;最近的;草写的#n.(水,气,电)流;趋势;涌流#n.(Current)(英)柯伦特(人名)
+curriculum#/kəˈrɪkjələm/#n.课程;总课程
+curse#/kɜːrs/#n.诅咒;咒骂#vt.诅咒;咒骂#vi.诅咒;咒骂
+curt#/kɜːrt/#adj.简短而失礼的,唐突无礼的;简略的,简要的;草率的#n.(Curt)(美)库尔特(人名)
+curtain#/ˈkɜːrtn/#n.幕;窗帘#vt.遮蔽;装上门帘
+curve#/kɜːrv/#n.曲线;弯曲;曲线球;曲线图表#vt.弯;使弯曲#vi.成曲形#adj.弯曲的;曲线形的
+cushion#/ˈkʊʃn/#n.垫子;起缓解作用之物;(猪等的)臀肉;银行储蓄#vt.给…安上垫子;把…安置在垫子上;缓和…的冲击
+custom#/ˈkʌstəm/#n.习惯,惯例;风俗;经常光顾;[总称](经常性的)顾客#adj.(衣服等)定做的,定制的
+customary#/ˈkʌstəmeri/#adj.习惯的;通常的#n.习惯法汇编
+customer#/ˈkʌstəmər/#n.顾客;家伙
+cut#/kʌt/#v.切(割、削),(直线等)相交,剪,截,刺穿,刺痛,删节,开辟#n.(刀、剑、鞭等的)切削,削减,删节,伤口,切口
+cycle#/ˈsaɪkl/#n.循环;周期;自行车;整套;一段时间#vt.使循环;使轮转#vi.循环;骑自行车;轮转
+cylinder#/ˈsɪlɪndər/#n.圆筒;汽缸;[数]柱面;圆柱状物
+cynical#/ˈsɪnɪkl/#adj.愤世嫉俗的;冷嘲的
+daily#/ˈdeɪli/#adj.日常的;每日的#n.日报;朝来夜去的女佣#adv.日常地;每日;天天#n.(Daily)人名;(英)戴利
+dairy#/ˈderi/#n.奶制品;乳牛;制酪场;乳品店;牛奶及乳品业#adj.乳品的;牛奶的;牛奶制的;产乳的
+dam#/dæm/#n.10米(等于decametre);水坝;水库;(牙科手术中的)橡皮障;母畜,母兽#v.筑坝;阻止,控制#n.(Dam)(美)丹(人名)
+damage#/ˈdæmɪdʒ/#n.损害;损毁;赔偿金#vi.损害;损毁#vt.损害,毁坏
+damn#/dæm/#v.谴责
+damp#/dæmp/#adj.潮湿的#n.潮湿;气馁;沼气#v.(使)潮湿;(使)沮丧,抑制;灭火;限止(钢琴或其他乐器琴弦)的音;减幅
+dance#/dæns/#n.舞蹈;舞会;舞曲#vi.跳舞;跳跃;飘扬#vt.跳舞;使跳跃#adj.舞蹈的;用于跳舞的#n.(Dance)人名;(英)丹斯;(法)当斯
+danger#/ˈdeɪndʒər/#n.危险;危险物,威胁#n.(Danger)人名;(法)当热
+dangerous#/ˈdeɪndʒərəs/#adj.危险的危险地
+dare#/der/#v.胆敢;激(某人做某事);(诗、文)冒险,挑战#n.挑战;激将#n.(Dare)(美)达雷(人名)
+daring#/ˈderɪŋ/#adj.大胆的,勇敢的#n.胆量,勇气#v.敢(dare的现在分词)#n.(Daring)人名;(英、瑞典)达林
+dark#/dɑːrk/#n.黑暗,夜,黄昏,暗色,无知,模糊#adj.黑暗的,暗的,(头发、皮肤等)黑色的,隐秘的,无知的,隐晦的,模糊的
+darling#/ˈdɑːrlɪŋ/#n.心爱的人;亲爱的#n.(Darling)人名;(英)达林
+dash#/dæʃ/#n.少量(搀加物),冲撞,破折号,锐气,精力,干劲#vi.猛掷,冲撞#vt.泼溅,使猛撞,搀和,使破灭,使沮丧,匆忙完成
+data#/ˈdeɪtə,ˈdætə/#n.数据(datum的复数);资料#n.(Data)(日)驮太(姓);(印、葡)达塔(人名)
+date#/deɪt/#n.日期;约会;年代;枣椰子#vi.过时;注明日期;始于(某一历史时期)#vt.确定…年代;和…约会#n.(Date)人名;(日)伊达(姓);(英)戴特
+daughter#/ˈdɔːtər/#n.女儿;[遗][农学]子代#adj.女儿的;子代的
+dawn#/dɔːn/#n.黎明;开端#vt.破晓;出现;被领悟#n.(Dawn)人名;(西)道恩
+day#/deɪ/#n.一天;时期;白昼#adv.每天;经常在白天地#adj.日间的;逐日的#n.(Day)人名;(英、法、西)戴;(越)岱;(阿拉伯、土)达伊
+daylight#/ˈdeɪlaɪt/#n.白天;日光;黎明;公开
+dazzle#/ˈdæzl/#v.(强光等)使目眩;(美貌、技能等)使倾倒;使眼花缭乱#n.耀眼炫目;令人眼花缭乱的东西(或特性);耀眼的光;灿烂,绚烂
+dead#/ded/#adj.无生命的;呆板的;废弃了的#adv.完全地#n.死者
+deadly#/ˈdedli/#adj.致命的;非常的;死一般的#adv.非常;如死一般地
+deaf#/def/#adj.聋的
+deal#/diːl/#n.交易,(政治上的)密约,待遇,份量,口买卖#vi.处理,应付,做生意#vt.分配,分给(out),发牌,给予
+dear#/dɪr/#adj.昂贵的,亲爱的#int.[表示惊讶,怜悯等],Oh,~!
+death#/deθ/#n.死;死亡;死神;毁灭#n.(Death)人名;(英)迪阿思
+debate#/dɪˈbeɪt/#n.辩论;(正式的)讨论#v.(尤指正式)讨论,辩论;仔细考虑
+debt#/det/#n.债务;借款;罪过
+decade#/ˈdekeɪd,dɪˈkeɪd/#n.十年,十年期;十
+decay#/dɪˈkeɪ/#v.衰退,衰减;衰败;腐烂,腐朽#n.衰退,衰减;衰败;腐烂,腐朽#n.(Decay)(法、美、意、英、希)德凯(人名)
+deceit#/dɪˈsiːt/#n.欺骗;谎言;欺诈手段
+deceive#/dɪˈsiːv/#v.欺骗;行骗
+December#/dɪˈsembər/#n.十二月
+decent#/ˈdiːsnt/#adj.正派的;得体的;相当好的
+decide#/dɪˈsaɪd/#vt.决定;解决;判决#vi.决定,下决心
+decimal#/ˈdesɪml/#adj.小数的;十进位的#n.小数
+decision#/dɪˈsɪʒn/#n.决定,决心;决议
+decisive#/dɪˈsaɪsɪv/#adj.决定性的;果断的,坚定的
+deck#/dek/#n.甲板;(船或公共汽车的)一层;露天平台;转盘装置#vt.装饰;装甲板;打扮#n.(Deck)人名;(英、法、德)德克
+declaration#/ˌdekləˈreɪʃn/#n.(纳税品等的)申报;宣布;公告;申诉书
+declare#/dɪˈkler/#vt.宣布,声明;断言,宣称#vi.声明,宣布
+decline#/dɪˈklaɪn/#n.下降;衰退;斜面#vi.下降;衰落;谢绝#vt.谢绝;婉拒
+decorate#/ˈdekəreɪt/#vt.装饰;布置;授勋给#vi.装饰;布置
+decrease#/dɪˈkriːs;ˈdiːkriːs/#v.减少,减小,降低#n.减少,减小;减少量;减少过程
+dedicate#/ˈdedɪkeɪt/#vt.致力;献身;题献
+deduce#/dɪˈduːs/#vt.推论,推断;演绎出
+deed#/diːd/#n.行动;功绩;证书;[法]契据#vt.立契转让
+deem#/diːm/#vt.认为,视作;相信#vi.认为,持某种看法;作某种评价#n.(Deem)人名;(英)迪姆
+deep#/diːp/#adj.深的,纵深的,远离中心的,深奥的,难懂的,(指人)诡计多端的,低沉的(声音)#adv.深入地,迟#n.深渊,深处
+deepen#/ˈdiːpən/#vt.使加深;使强烈;使低沉#vi.变深;变低沉
+deer#/dɪr/#n.鹿#n.(Deer)人名;(英)迪尔
+defeat#/dɪˈfiːt/#v.击败;挫败(某人);阻止达成(目的);反对(动议或提议);(使)无法理解;(使)无效#n.失败;战胜
+defect#/'diːfekt/#n.缺点,缺陷;不足之处#vi.变节;叛变
+defence#/dɪˈfens/#n.防御;防卫;答辩;防卫设备
+defend#/dɪˈfend/#vt.辩护;防护#vi.保卫;防守
+deficiency#/dɪˈfɪʃnsi/#n.缺陷,缺点;缺乏;不足的数额
+deficit#/ˈdefɪsɪt/#n.赤字;不足额
+define#/dɪˈfaɪn/#vt.定义;使明确;规定#n.(Define)人名;(英)德法恩;(葡)德菲内
+definite#/ˈdefɪnət/#adj.一定的;确切的
+definitely#/ˈdefɪnətli/#adv.清楚地,当然;明确地,肯定地
+definition#/ˌdefɪˈnɪʃn/#n.定义;[物]清晰度;解说
+defy#/dɪˈfaɪ/#vt.藐视;公然反抗;挑衅;使落空#n.挑战;对抗
+degenerate#/dɪˈdʒenəreɪt;dɪˈdʒenərə#v.使退化;恶化;堕落#adj.退化的;堕落的;退化的;简并的#n.堕落的人
+degrade#/dɪˈɡreɪd/#vt.贬低;使……丢脸;使……降级;使……降解#vi.降级,降低;退化
+degree#/dɪˈɡriː/#n.程度,等级;度;学位;阶层
+delay#/dɪˈleɪ/#v.延期;(使)耽搁;推迟#n.延迟的时间;延期;延时;延迟器#n.(Delay)(美)德莱(人名)
+delegate#/ˈdelɪɡət/#n.代表,会议代表;委员会成员#v.授(权),把……委托给他人;委派……为代表,任命
+delegation#/ˌdelɪˈɡeɪʃn/#n.代表团;授权;委托
+delete#/dɪˈliːt/#vt.删除
+deliberate#/dɪˈlɪbərət/#adj.故意的;深思熟虑的;从容的#vt.仔细考虑;商议
+delicate#/ˈdelɪkət/#adj.微妙的;精美的,雅致的;柔和的;易碎的;纤弱的;清淡可口的
+delicious#/dɪˈlɪʃəs/#adj.美味的;可口的
+delight#/dɪˈlaɪt/#n.高兴#vi.高兴#vt.使高兴#n.(Delight)人名;(英)迪莱特
+deliver#/dɪˈlɪvər/#vt.交付;发表;递送;释放;给予(打击);给…接生#vi.实现;传送;履行;投递#n.投球
+delivery#/dɪˈlɪvəri/#n.[贸易]交付;分娩;递送
+delta#/ˈdeltə/#n.(河流的)三角洲;德耳塔(希腊字母的第四个字)#n.(Delta)人名;(英、罗、葡)德尔塔
+demand#/dɪˈmænd/#n.(坚决的或困难的)要求;(顾客的)需求#v.强烈要求;需要;逼问;查问,查询#n.(Demand)(德)德曼德(人名)
+democracy#/dɪˈmɑːkrəsi/#n.民主,民主主义;民主政治
+democratic#/ˌdeməˈkrætɪk/#adj.民主的;民主政治的;大众的
+demonstrate#/ˈdemənstreɪt/#vt.证明;展示;论证#vi.示威
+denial#/dɪˈnaɪəl/#n.否认;拒绝;节制;背弃
+denote#/dɪˈnoʊt/#vt.表示,指示
+denounce#/dɪˈnaʊns/#vt.谴责;告发;公然抨击;通告废除
+dense#/dens/#adj.稠密的;浓厚的;愚钝的
+density#/ˈdensəti/#n.密度
+dentist#/ˈdentɪst/#n.牙科医生牙医诊所
+deny#/dɪˈnaɪ/#vt.否定,否认;拒绝给予;拒绝…的要求#vi.否认;拒绝
+depart#/dɪˈpɑːrt/#vi.离开;出发,起程;违反;去世#adj.逝世的
+department#/dɪˈpɑːrtmənt/#n.部;部门;系;科;局
+departure#/dɪˈpɑːrtʃər/#n.离开;出发;违背
+depend#/dɪˈpend/#vi.依赖,依靠;取决于;相信,信赖
+dependent#/dɪˈpendənt/#adj.依靠的;从属的;取决于…的#n.依赖他人者;受赡养者
+depict#/dɪˈpɪkt/#vt.描述;描画
+deposit#/dɪˈpɑːzɪt/#n.存款;押金;订金;保证金;沉淀物#vt.使沉积;存放#vi.沉淀
+depress#/dɪˈpres/#vt.压抑;使沮丧;使萧条
+depression#/dɪˈpreʃn/#n.沮丧;忧愁;抑郁症;洼地;不景气;低气压区
+deprive#/dɪˈpraɪv/#vt.使丧失,剥夺
+depth#/depθ/#n.[海洋]深度;深奥
+depute#/dɪˈpjuːt/#v.向(某人)授权;委派(某人)#n.受权人
+derive#/dɪˈraɪv/#vt.源于;得自;获得#vi.起源#n.(Derive)(法)德里夫(人名)
+descend#/dɪˈsend/#vi.下降;下去;下来;遗传;屈尊#vt.下去;沿…向下
+descendant#/dɪˈsendənt/#n.后裔,子孙;(由过去类似物发展来的)派生物;(机器等)后继型产品#adj.下降的;祖传的
+descent#/dɪˈsent/#n.下降;血统;袭击#vt.除去…的气味;使…失去香味
+describe#/dɪˈskraɪb/#vt.描述,形容;描绘
+description#/dɪˈskrɪpʃn/#n.描述,描写;类型;说明书
+desert#/dɪ'zɜːt;'dezət/#n.沙漠,应得的赏罚,功过#adj.沙漠的,不毛的,荒凉的#vt.放弃,遗弃,逃跑#vi.逃掉,逃亡,开小差
+deserve#/dɪˈzɜːrv/#vi.应受,应得#vt.应受,应得
+design#/dɪˈzaɪn/#n.设计;构思;设计图样;装饰图案;打算#v.设计,构思;计划;制造,意欲#n.(Design)(巴、印、俄)迪赛(人名)
+designate#/ˈdezɪɡneɪt/#vt.指定;指派;标出;把…定名为#adj.指定的;选定的
+desirable#/dɪˈzaɪərəbl/#adj.可取的,值得拥有的,令人向往的;引起性欲的,性感的#n.称心如意的东西,合意的人,好的品质
+desire#/dɪˈzaɪər/#n.欲望;要求,心愿;性欲#vt.想要;要求;希望得到……#vi.渴望#n.(Desire)(刚(布)、英)德西雷(人名)
+desk#/desk/#n.办公桌;服务台;编辑部;(美)讲道台;乐谱架#adj.书桌的;桌上用的;伏案做的
+despair#/dɪˈsper/#n.绝望;令人绝望的人或事#vi.绝望,丧失信心
+despatch#/dɪˈspætʃ/#v.派遣;发送;迅速处理;杀死;匆匆吃下,匆匆离开(等于dispatch)#n.派遣;发送;急件;报道;杀死(等于dispatch)
+desperate#/ˈdespərət/#adj.不顾一切的;令人绝望的;极度渴望的
+despise#/dɪˈspaɪz/#vt.轻视,鄙视
+despite#/dɪˈspaɪt/#prep.即使,尽管#n.(诗/文)侮辱,伤害;轻视,鄙视;憎恨#vt.废语故意使烦恼,故意伤害;古蔑视,轻蔑
+destination#/ˌdestɪˈneɪʃn/#n.目的地,终点
+destined#/ˈdestɪnd/#adj.注定的;命定的;去往…的#v.注定(destine的过去式和过去分词)
+destiny#/ˈdestəni/#n.命运,定数,天命#n.(Destiny)人名;(英)德斯蒂尼,德斯蒂妮(女名)
+destroy#/dɪˈstrɔɪ/#vt.破坏;消灭;毁坏
+destruction#/dɪˈstrʌkʃn/#n.破坏,毁灭;摧毁
+destructive#/dɪˈstrʌktɪv/#adj.破坏的;毁灭性的;有害的,消极的
+detach#/dɪˈtætʃ/#vt.分离;派遣;使超然
+detail#/ˈdiːteɪl,dɪˈteɪl/#n.细节,琐事;具体信息;次要部分;分队,支队#vt.详述;选派#vi.画详图
+detect#/dɪˈtekt/#vt.察觉;发现;探测
+detection#/dɪˈtekʃn/#n.侦查,探测;发觉,发现;察觉
+detective#/dɪˈtektɪv/#n.警探;私人侦探;刑侦#adj.侦探的;侦察的
+deteriorate#/dɪˈtɪriəreɪt/#vi.恶化,变坏#vt.恶化
+determination#/dɪˌtɜːrmɪˈneɪʃn/#n.决心;果断;测定
+determine#/dɪˈtɜːrmɪn/#v.(使)下决心,(使)做出决定#vt.决定,确定;判定,判决;限定#vi.确定;决定;判决,终止;[主用于法律]了结,终止,结束
+develop#/dɪˈveləp/#vt.开发;进步;使成长;使显影#vi.发育;生长;进化;显露
+development#/dɪˈveləpmənt/#n.发展;开发;发育;住宅小区(专指由同一开发商开发的);[摄]显影
+deviate#/ˈdiːvieɪt/#vi.脱离;越轨#vt.使偏离
+device#/dɪˈvaɪs/#n.装置;策略;图案;设备;终端
+devil#/ˈdevl/#n.魔鬼;撒旦;家伙;恶棍;淘气鬼;冒失鬼#vt.虐待,折磨;(用扯碎机)扯碎;(替作家,律师等)做助手;抹辣味料烤制或煎煮
+devise#/dɪˈvaɪz/#vt.设计;想出;发明;图谋;遗赠给#n.遗赠#n.(Devise)(美、法)德维兹(人名)
+devote#/dɪˈvoʊt/#v.致力于,奉献于;把……用于,作……专用;降祸于,诅咒
+dew#/duː/#n.珠,滴;露水;清新#vt.(露水等)弄湿#vi.结露水#n.(Dew)人名;(德)德夫;(英)迪尤
+diagnose#/ˌdaɪəɡˈnoʊs/#vt.诊断;断定#vi.诊断;判断
+diagram#/ˈdaɪəɡræm/#n.图表;图解#vt.用图解法表示
+dial#/ˈdaɪəl/#n.转盘;刻度盘;钟面#vi.拨号#vt.给…拨号打电话#n.(Dial)人名;(英)戴尔
+dialect#/ˈdaɪəlekt/#n.方言,土话;同源语;行话;个人用语特征#adj.方言的
+dialog#/ˈdaɪəlɔːɡ/#n.对话;会话
+diameter#/daɪˈæmɪtər/#n.直径
+diamond#/ˈdaɪmənd/#n.钻石,金刚石;菱形;方块牌#adj.菱形的;金刚钻的#n.(Diamond)(英、意、葡)戴蒙德;(法)迪亚蒙(人名)
+diary#/ˈdaɪəri/#n.日志,日记;日记簿
+dictate#/ˈdɪkteɪt/#vt.命令;口述;使听写#vi.口述;听写#n.命令;指示
+dictation#/dɪkˈteɪʃn/#n.听写;口述;命令
+dictionary#/ˈdɪkʃəneri/#n.字典;词典
+die#/daɪ/#vi.死亡;凋零;熄灭#vt.死,死于……#n.冲模,钢模;骰子#n.(Die)(法、美、德)迭(人名)
+diet#/ˈdaɪət/#n.饮食;食物;规定饮食#vi.节食#vt.[医]照规定饮食#n.(Diet)人名;(法)迪耶
+differ#/ˈdɪfər/#vt.使…相异;使…不同#vi.相异;意见分歧#n.(Differ)人名;(法)迪费
+difference#/ˈdɪfrəns/#n.差异;不同;争执
+different#/ˈdɪfrənt/#adj.不同的;个别的,与众不同的
+differentiate#/ˌdɪfəˈrenʃieɪt/#vi.区分,区别#vt.区分,区别
+difficult#/ˈdɪfɪkəlt/#adj.困难的;不随和的;执拗的
+difficulty#/ˈdɪfɪkəlti/#n.困难,困境
+diffuse#/dɪˈuːs/#adj.弥漫的;散开的#vt.扩散;传播;漫射#vi.传播;四散
+dig#/dɪɡ/#vt.挖,掘;探究#vi.挖掘#n.戳,刺;挖苦#n.(Dig)人名;(罗)迪格
+digest#/daɪˈdʒest/#vt.消化;吸收;融会贯通#vi.消化#n.文摘;摘要
+digital#/ˈdɪdʒɪtl/#adj.数字的;手指的#n.数字;键
+dignity#/ˈdɪɡnəti/#n.尊严;高贵
+dilemma#/dɪˈlemə,daɪˈlemə/#n.困境;进退两难;两刀论法
+diligent#/ˈdɪlɪdʒənt/#adj.勤勉的;用功的,费尽心血的#n.(Diligent)人名;(法)迪利让
+dilute#/daɪˈluːt/#v.稀释,冲淡;削弱;变稀薄,变淡#adj.稀释的;淡的;(颜色、光线)浅的
+dim#/dɪm/#adj.暗淡的,模糊的,无光泽的,悲观的,怀疑的#vt.使暗淡,使失去光泽#n.美俚笨蛋、傻子
+dimension#/daɪˈmenʃn/#n.方面;[数]维;尺寸;次元;容积#adj.规格的#vt.标出尺寸
+diminish#/dɪˈmɪnɪʃ/#vt.使减少;使变小#vi.减少,缩小;变小
+dine#/daɪn/#vt.宴请#vi.进餐,用餐#n.(Dine)(意、葡)迪内(人名);(英)戴恩(人名);(法)迪纳(人名)
+dinner#/ˈdɪnər/#n.晚餐,晚宴;宴会;正餐#n.(Dinner)人名;(法)迪内
+dip#/dɪp/#v.浸,蘸;下降,减少;浏览;给(动物)洗药浴;将(汽车前灯)调为近光#n.减少;低洼处;药浴液;蘸酱;(短时的)游泳,泡水;浏览
+diploma#/dɪˈploʊmə/#n.毕业证书,学位证书;公文,文书;奖状#vt.发给…毕业文凭
+diplomatic#/ˌdɪpləˈmætɪk/#adj.外交的;外交上的;老练的
+direct#/dəˈrekt,daɪˈrekt/#adj.直接的;直系的;亲身的;恰好的#vt.管理;指挥;导演;指向#vi.指导;指挥#adv.直接地;正好;按直系关系
+direction#/dəˈrekʃn/#n.方向;指导;趋势;用法说明
+directly#/dəˈrektli/#adv.直接地;立即;马上;正好地;坦率地#conj.一…就
+director#/dəˈrektə(r)/#n.主任,主管;导演;人事助理#n.(Director)人名;(英)迪雷克托
+directory#/daɪˈrektəri/#n.[计]目录;工商名录;姓名地址录#adj.指导的;咨询的
+dirt#/dɜːrt/#n.污垢,泥土;灰尘,尘土;下流话
+dirty#/ˈdɜːr/#adj.下流的,卑鄙的;肮脏的;恶劣的;暗淡的#vt.弄脏#vi.变脏
+disable#/dɪsˈeɪbl/#vt.使失去能力;使残废;使无资格
+disadvantage#/ˌdɪsədˈvæntɪdʒ/#n.缺点;不利条件;损失
+disagree#/ˌdɪsəˈɡriː/#vi.不同意;不一致;争执;不适宜
+disappear#/ˌdɪsəˈpɪr/#vi.消失;失踪;不复存在#vt.使…不存在;使…消失
+disappoint#/ˌdɪsəˈpɔɪnt/#vt.使失望
+disaster#/dɪˈzæstər/#n.灾难,灾祸;不幸
+disastrous#/dɪˈzæstrəs/#adj.灾难性的;损失惨重的;悲伤的
+discard#/dɪˈskɑːrd/#vt.抛弃;放弃;丢弃#vi.放弃#n.抛弃;被丢弃的东西或人
+discern#/dɪˈsɜːrn/#vt.觉察出;识别;了解;隐约看见#vi.辨别
+discharge#/dɪsˈtʃɑːrdʒ/#vt.卸下,放出,清偿(债务),履行(义务),解雇,开(炮),放(枪),射(箭)#vi.卸货,流注#n.卸货,流出,放电
+discipline#/ˈdɪsəplɪn/#n.学科;纪律;训练;惩罚#vt.训练,训导;惩戒
+disclose#/dɪsˈkloʊz/#vt.公开;揭露
+discount#/ˈdɪskaʊnt/#n.折扣;贴现率#vi.贴现;打折扣出售商品#vt.打折扣;将…贴现;贬损;低估;忽视
+discourage#/dɪsˈkɜːrɪdʒ/#vt.阻止;使气馁
+discover#/dɪˈskʌvər/#vt.发现;发觉#vi.发现
+discovery#/dɪˈskʌvəri/#n.发现,发觉;被发现的事物
+discrepancy#/dɪˈskrepənsi/#n.不符;矛盾;相差
+discrete#/dɪˈskriːt/#adj.离散的,不连续的#n.分立元件;独立部件
+discriminate#/dɪˈskrɪmɪneɪt/#vt.歧视;区别;辨别#vi.区别;辨别
+discuss#/dɪˈskʌs/#vt.讨论;论述,辩论
+discussion#/dɪˈskʌʃn/#n.讨论,议论
+disease#/dɪˈziːz/#n.病,[医]疾病;弊病#vt.传染;使…有病
+disguise#/dɪsˈɡaɪz/#vt.掩饰;假装;隐瞒#n.伪装;假装;用作伪装的东西
+disgust#/dɪsˈɡʌst/#n.厌恶,嫌恶#vt.使厌恶;使作呕
+dish#/dɪʃ/#n.盘;餐具;一盘食物;外貌有吸引力的人#vt.盛于碟盘中;分发;使某人的希望破灭;说(某人)的闲话#vi.成碟状;闲谈
+dishonour#/dɪsˈɑːnər/#n.耻辱,丢脸;拒付#v.使丢脸;不履行(诺言等);不尊重;拒付,拒绝承兑;(古)强奸
+disk#/dɪsk/#n.[计]磁盘,磁碟片;圆盘,盘状物;唱片
+dislike#/dɪsˈlaɪk/#vt.不喜欢,厌恶#n.嫌恶,反感,不喜爱
+dismay#/dɪsˈmeɪ/#n.沮丧,灰心;惊慌#vt.使沮丧;使惊慌
+dismiss#/dɪsˈmɪs/#vt.解散;解雇;开除;让...离开;不予理会、不予考虑#vi.解散
+disorder#/dɪsˈɔːrdər/#n.混乱;骚乱#vt.使失调;扰乱
+dispatch#/dɪˈspætʃ/#vt.分派,派遣#n.派遣,急件
+disperse#/dɪˈspɜːrs/#vt.分散;使散开;传播#vi.分散#adj.分散的
+displace#/dɪsˈpleɪs/#vt.取代;置换;转移;把…免职;排水
+display#/dɪˈspleɪ/#n.显示;炫耀#vt.显示;表现;陈列#vi.[动]作炫耀行为#adj.展览的;陈列用的
+displease#/dɪsˈpliːz/#vt.使生气;触怒#vi.使生气;使不快
+disposal#/dɪˈspoʊzl/#n.处理;支配;清理;安排
+dispose#/dɪˈspoʊz/#vt.处理;处置;安排;使倾向于#vi.处理;安排;(能够)决定;击败;杀死#n.处置;性情
+disposition#/ˌdɪspəˈzɪʃn/#n.处置;[心理]性情;[军]部署;倾向
+dispute#/dɪ'spjuːt/#n.辩论;争吵;意见不同#v.辩论;对……进行质疑;争夺;抵抗(进攻)
+disregard#/ˌdɪsrɪˈɡɑːrd/#v.忽视,无视,不尊重#n.忽视,无视,不尊重
+disrupt#/dɪsˈrʌpt/#vt.破坏;使瓦解;使分裂;使中断;使陷于混乱#adj.分裂的,中断的;分散的
+dissatisfy#/dɪs'sætɪs,fai/#v.使不满,使失望
+dissipate#/ˈdɪsɪpeɪt/#vt.浪费;使…消散#vi.驱散;放荡
+dissolve#/dɪˈzɑːlv/#vt.使溶解;使分解;使液化#vi.溶解;解散;消失#n.叠化画面;画面的溶暗
+distance#/ˈdɪstəns/#n.距离;远方;疏远;间隔#vt.疏远;把…远远甩在后面
+distant#/ˈdɪstənt/#adj.遥远的;冷漠的;远隔的;不友好的,冷淡的
+distil#/dɪˈstɪl/#vi.蒸馏;提炼;渗出#vt.蒸馏;提取…的精华;使渗出
+distinct#/dɪˈstɪŋkt/#adj.明显的;独特的;清楚的;有区别的
+distinction#/dɪˈstɪŋkʃn/#n.区别;差别;特性;荣誉、勋章
+distinguish#/dɪˈstɪŋɡwɪʃ/#vt.区分;辨别;使杰出,使表现突出#vi.区别,区分;辨别
+distort#/dɪˈstɔːrt/#vt.扭曲;使失真;曲解#vi.扭曲;变形
+distract#/dɪˈstrækt/#vt.转移;分心
+distress#/dɪˈstres/#n.危难,不幸;贫困;悲痛#vt.使悲痛;使贫困
+distribute#/dɪˈstrɪbjuːt/#vt.分配;散布;分开;把…分类
+distribution#/ˌdɪstrɪˈbjuːʃn/#n.分布;分配;供应
+district#/ˈdɪstrɪkt/#n.区域;地方;行政区
+disturb#/dɪˈstɜːrb/#vt.打扰;妨碍;使不安;弄乱;使恼怒#vi.打扰;妨碍
+disturbance#/dɪˈstɜːrbəns/#n.干扰;骚乱;忧虑
+ditch#/dɪtʃ/#n.沟,沟渠,壕沟
+dive#/daɪv/#vi.潜水,跳水,下潜,俯冲#n.潜水,跳水,下潜,俯冲
+diverse#/daɪˈvɜːrs/#adj.不同的,相异的;多种多样的,形形色色的
+diversion#/daɪˈvɜːrʒn/#n.转移;消遣;分散注意力
+divert#/daɪˈvɜːrt/#vt.转移;使…欢娱;使…转向#vi.转移#n.(Divert)人名;(法)迪韦尔
+divide#/dɪˈvaɪd/#v.(使)分开,分成;分配,分担;分隔;(道路)分叉;使产生分歧;(数)除,除以#n.分歧,差异;分水岭;界限
+divine#/dɪˈvaɪn/#adj.神圣的;非凡的;天赐的;极好的#vt.占卜;预言;用占卜勘探#vi.占卜;预言;使用占卜勘探矿#n.牧师;神学家#n.(Divine)人名;(英)迪万
+division#/dɪˈvɪʒn/#n.[数]除法;部门;分配;分割;师(军队);赛区
+divorce#/dɪˈvɔːrs/#n.离婚;分离;离婚判决;离婚的男子#v.与(某人)离婚;分离,脱离;彻底分割
+dizzy#/ˈdɪzi/#adj.晕眩的;使人头晕的;昏乱的;心不在焉的;愚蠢的#vt.使头晕眼花;使混乱;使茫然#n.(Dizzy)人名;(英)迪齐
+do#/duː;də;dʊ/#v.做,干,办(某事)
+dock#/dɑːk/#n.码头;船坞;被告席;尾巴的骨肉部分#vt.使靠码头;剪短#vi.入船坞#n.(Dock)程序坞#n.(Dock)人名;(老)多;(英、法、瑞典)多克
+doctor#/ˈdɑːktər/#n.医生,博士,[古]学者,俚修理师#vt.授以博士学位,诊断,修改,美治疗,搀混(食物、饮料),修改#vi.行医
+doctrine#/ˈdɑːktrɪn/#n.主义;学说;教义;信条
+document#/ˈdɑːkjumənt/#n.文件,公文;[计]文档;证件#vt.记录,记载
+dog#/dɔːɡ/#n.狗;卑鄙的人;(俚)朋友#vt.跟踪;尾随
+dollar#/ˈdɑːlər/#n.美元;元(美国、加拿大、澳大利亚以及其他一些国家的货币单位)#n.(Dollar)人名;(英)多拉尔
+domain#/doʊˈmeɪn/#n.领域;域名;产业;地产#n.(Domain)人名;(英、法)多曼
+dome#/doʊm/#n.圆屋顶#vi.成圆顶状#vt.加圆屋顶于…上#n.(Dome)人名;(法)多姆
+domestic#/dəˈmestɪk/#adj.国内的;家庭的;驯养的;一心只管家务的#n.国货;佣人
+dominant#/ˈdɑːmɪnənt/#adj.显性的;占优势的;支配的,统治的#n.显性
+dominate#/ˈdɑːmɪneɪt/#vt.控制;支配;占优势;在…中占主要地位#vi.占优势;处于支配地位
+donate#/ˈdoʊneɪt/#vt.捐赠;捐献#vi.捐赠;捐献
+donkey#/ˈdɑːŋki/#n.驴子;傻瓜;顽固的人
+doom#/duːm/#n.厄运;死亡;判决;世界末日#vt.注定;判决;使失败#n.(Doom)人名;(泰)伦
+door#/dɔːr/#n.门;家,户;门口;通道#n.(Door)人名;(英)多尔
+dorm#/dɔːrm/#n.宿舍(等于dormitory)#n.(Dorm)人名;(瑞典)多尔姆
+dormitory#/ˈdɔːrmətɔːri/#n.宿舍,学生宿舍#adj.住宅区的
+dose#/doʊs/#n.剂量;一剂,一服#vi.服药#vt.给药;给…服药#n.(Dose)人名;(德)多泽;(意、西、葡、塞)多塞;(英)多斯
+dot#/dɑːt/#n.点,圆点;嫁妆#vi.打上点#vt.加小点于#n.(Dot)人名;(中)多(广东话·威妥玛);(英)多特(女子教名Dorothea和Dorothy的昵称);(越)突
+double#/ˈdʌbl/#n.两倍,[计]双精度型#adj.两倍的,双重的#vt.使加倍#vi.加倍,快步走,加倍努力
+doubt#/daʊt/#n.怀疑;疑问;疑惑#v.怀疑;不信;恐怕;拿不准
+doubtful#/ˈdaʊtfl/#adj.可疑的;令人生疑的;疑心的;不能确定的
+doubtless#/ˈdaʊtləs/#adv.无疑地,肯定地;大概#adj.无疑的,确定的
+down#/daʊn/#adj.向下的#adv.向下,在下面,下去,降下#prep.往下,沿着#n.绒毛,软毛,开阔的高地
+downstairs#/ˌdaʊnˈsterz/#adv.在楼下#adj.楼下的#n.楼下
+downward#/ˈdaʊnwərd/#adj.向下的,下降的#adv.向下
+dozen#/ˈdʌzn/#n.十二个,一打#adj.一打的
+draft#/dræft/#n.草稿,草案,草图#vt.起草,为...打样,设计#v.草拟
+drag#/dræɡ/#v.拖,拖曳,缓慢而费力地行动#n.拖拉
+dragon#/ˈdræɡən/#n.龙;(大型)蜥蜴;凶恶的人;严厉而有警觉性的女人#n.(Dragon)(匈)德劳贡;(英、法、芬、罗、匈)德拉贡(人名)
+drain#/dreɪn/#n.排水沟,消耗,排水#vt.排出沟外,喝干,耗尽#vi.排水,流干
+drainage#/ˈdreɪnɪdʒ/#n.排水;排水系统;污水;排水面积
+drama#/ˈdrɑːmə/#n.戏剧,戏剧艺术;剧本;戏剧性事件#n.(Drama)人名;(刚(金))德拉马
+dramatic#/drəˈmætɪk/#adj.巨大的;急剧的;引人注目的;令人激动的;戏剧的
+dramatization#/ˌdræmətəˈzeɪʃn/#n.编剧;改编成戏剧
+drastic#/ˈdræstɪk/#adj.激烈的;猛烈的#n.烈性泻药
+draw#/drɔː/#vt.画;拉;吸引#vi.拉;拖#n.平局;抽签#n.(Draw)(英)德劳(人名)
+drawback#/ˈdrɔːbæk/#n.缺点,不利条件;退税
+drawer#/drɔːr/#n.抽屉;开票人;出票人;起草者;酒馆侍#n.德)德拉韦尔(人名)
+drawing#/ˈdrɔːɪŋ/#n.图画;牵引;素描术#v.绘画;吸引(draw的ing形式);拖曳
+dread#/dred/#v.惧怕,担心;敬畏#n.恐惧,可怕的人(或物);(鸟群的)惊飞,惊起;将头发编成“骇人”发型的人#adj.可怕的;令人敬畏的
+dream#/driːm/#n.睡梦;梦想,愿望;恍惚;极美好的人(或事物);幻想;梦境般的事#v.做梦,梦见;梦想;虚度光阴;想到;开小差;想象#adj.理想的,完美的
+dress#/dres/#n.女服,童装,服装,衣服#v.(给...)穿衣
+drift#/drɪft/#n.漂流,漂移;趋势;漂流物#vi.漂流,漂移;漂泊#vt.使…漂流;使…受风吹积
+drill#/drɪl/#n.训练;钻孔机;钻子;播种机;演习#vi.钻孔;训练#vt.钻孔;训练;条播#n.(Drill)人名;(德、英)德里尔
+drink#/drɪŋk/#n.饮料,酒,酗酒,一口(或一些)饮料#v.喝,喝酒,(植物、土壤等的)吸水,举杯庆贺
+drip#/drɪp/#n.水滴#v.(使)滴下
+drive#/draɪv/#n.驾车,驱动器,快车道,推进力,驱使,动力,干劲,击球#vt.开车,驱赶,推动、发动(机器等),驾驶(马车,汽车等)#vi.开车,猛击,飞跑#n.[计]驱动器
+driver#/ˈdraɪvər/#n.驾驶员;驱动程序;起子;传动器#n.(Driver)人名;(德)德里弗;(英)德赖弗
+drop#/drɑːp/#v.推动;帮助;宣扬;下降;终止#n.滴;落下;空投;微量;滴剂
+drought#/draʊt/#n.干旱;缺乏#n.(Drought)人名;(英)德劳特
+drown#/draʊn/#vt.淹没;把…淹死#vi.淹死;溺死#n.(Drown)人名;(英)德朗
+drug#/drʌɡ/#n.药;毒品;麻醉药;滞销货#vt.使服麻醉药;使服毒品;掺麻醉药于#vi.吸毒#n.(Drug)(罗)德鲁格(人名)
+drum#/drʌm/#n.鼓,鼓声,鼓形圆桶,[解]鼓膜,鼓室#vi.击鼓,作鼓声#vt.打鼓奏
+drunk#/drʌŋk/#v.喝酒(drink的过去分词)#adj.喝醉的#n.醉汉,醉酒者;酒鬼,酗酒者;非正式纵饮,醉酒
+dry#/draɪ/#adj.干的;口渴的;枯燥无味的;禁酒的#vt.把…弄干#vi.变干#n.干涸#n.(Dry)人名;(法)德里
+dual#/ˈduːəl/#adj.双的;双重的#n.双数;双数词#vt.把……改为双幅车道#n.(Dual)(法)迪阿尔(人名)
+dubious#/ˈduːbiəs/#adj.可疑的;暧昧的;无把握的;半信半疑的
+duck#/dʌk/#n.鸭子;鸭肉;(英)宝贝儿;零分#vi.闪避;没入水中#vt.躲避;猛按…入水#n.(Duck)人名;(德、葡、匈)杜克
+due#/duː/#adj.到期的;预期的;应付的;应得的;恰当的,适当的#n.应付款;应得之物#adv.正(置于方位词前)#n.(Due)迪尤(人名)
+dull#/dʌl/#adj.钝的;迟钝的;无趣的;呆滞的;阴暗的#vt.使迟钝;使阴暗;缓和#vi.减少;变迟钝#n.(Dull)人名;(罗、匈)杜尔;(柬)杜;(英)达尔
+dumb#/dʌm/#adj.哑的,无说话能力的;不说话的,无声音的
+dump#/dʌmp/#vt.倾倒(垃圾),倾卸#n.堆存处
+duplicate#/ˈduːplɪkeɪt/#vt.复制;使加倍#n.副本;复制品#adj.复制的;二重的#vi.复制;重复
+durable#/ˈdʊrəbl/#adj.耐用的,持久的#n.耐用品
+duration#/duˈreɪʃn/#n.持续,持续的时间,期间;音长,音延
+during#/ˈdʊrɪŋ/#prep.在…...的期间;在......期间的某个时候#n.(During)(美、瑞、英)迪兰(人名)
+dusk#/dʌsk/#n.黄昏,薄暮;幽暗,昏暗#adj.微暗的#vt.使变微暗#vi.变微暗
+dust#/dʌst/#n.灰尘;尘埃;尘土#vt.撒;拂去灰尘#vi.拂去灰尘;化为粉末#n.(Dust)人名;(德、俄)杜斯特
+duty#/ˈduː/#n.责任;[税收]关税;职务#n.(Duty)人名;(英)迪蒂
+dwell#/dwel/#vi.居住;存在于;细想某事
+dwelling#/ˈdwelɪŋ/#n.住处;寓所#v.居住(dwell的现在分词)
+dye#/daɪ/#n.染料;染色#v.染;把……染上颜色;被染色#n.(Dye)(美、法)戴伊(人名)
+dying#/ˈdaɪɪŋ/#adj.垂死的
+dynamic#/daɪˈnæmɪk/#adj.动态的;动力的;动力学的;有活力的#n.动态;动力
+each#/iːtʃ/#adv.每个地#adj.各自的;#det.(两个或两个以上的人或物中)各自;#pron.(两个或两个以上的人或物中)每个
+eager#/ˈiːɡər/#adj.渴望的;热切的;热心的#n.(Eager)人名;(英)伊格
+eagle#/ˈiːɡl/#n.鹰;鹰状标饰#n.(Eagle)人名;(英)伊格尔
+ear#/ɪr/#n.耳朵;穗;听觉;倾听#vi.(美俚)听见;抽穗#n.(Ear)人名;(柬)伊
+early#/ˈɜːrli/#adj.早期的;早熟的#adv.提早;在初期#n.(Early)人名;(英)厄尔利
+earn#/ɜːrn/#vt.赚,赚得;获得,挣得;使得到;博得#n.(Earn)人名;(泰)炎
+earnest#/ˈɜːrnɪst/#adj.认真的,热心的;重要的#n.认真;定金;诚挚#n.(Earnest)人名;(英)欧内斯特
+earnings#/ˈɜːrnɪŋz/#n.收入
+earth#/ɜːrθ/#n.地球;地表,陆地;土地,土壤;尘事,俗事;兽穴#vt.把(电线)[电]接地;盖(土);追赶入洞穴#vi.躲进地洞
+earthquake#/ˈɜːrθkweɪk/#n.地震;大动荡
+ease#/iːz/#n.容易;舒适;安逸#v.减轻,缓解;小心缓缓地移动;使容易;放松;(使)贬值;(股票价格、利率等)下降,下跌
+easily#/ˈiːzəli/#adv.容易地;无疑地
+east#/iːst/#n.东方,东,东部地区#adj.东方的,从向东来的#adv.在东方,向东方,朝东方
+easter#/ˈiːstər/#n.复活节
+eastern#/ˈiːstərn/#adj.东方的;朝东的;东洋的#n.东方人;(美国)东部地区的人
+easy#/ˈiːzi/#adj.容易的;舒适的#adv.不费力地,从容地#vi.停止划桨#vt.发出停划命令
+eat#/iːt/#vt.吃,喝;腐蚀;烦扰#vi.进食;腐蚀,侵蚀
+eccentric#/ɪkˈsentrɪk/#adj.古怪的,反常的#n.古怪的人
+echo#/ˈekoʊ/#vt.反射;重复#vi.随声附和;发出回声#n.回音;效仿
+eclipse#/ɪˈklɪps/#n.食,日蚀,月蚀,蒙蔽,衰落#vt.引起日蚀,引起月蚀,超越,使黯然失色
+ecology#/iˈkɑːlədʒi/#n.生态学;社会生态学
+economic#/ˌiːkəˈnɒmɪk/#adj.经济的,经济上的;经济学的
+economical#/ˌiːkəˈnɒmɪkl/#adj.经济的;节约的;合算的
+economics#/ˌiːkəˈnɒmɪks/#n.经济学;国家的经济状况
+economy#/ɪˈkɑːnəmi/#n.经济;节约;理财#n.(Economy)人名;(英)伊科诺米
+edge#/edʒ/#n.边缘;优势;刀刃;锋利#vt.使锐利;将…开刃;给…加上边#vi.缓缓移动;侧着移动#n.(Edge)人名;(英)埃奇
+edible#/ˈedəbl/#adj.可食用的#n.食品;食物
+edit#/ˈedɪt/#vt.编辑;校订#n.编辑工作#n.(Edit)人名;(罗、匈)埃迪特
+edition#/ɪˈdɪʃn/#n.版本;版次;集
+editor#/ˈedɪtər/#n.编者,编辑;社论撰写人;编辑装置
+editorial#/ˌedɪˈtɔːriəl/#adj.编辑的,主编的;社论的#n.(报刊)社论,(美国电台)评论
+educate#/ˈedʒukeɪt/#vt.教育;培养;训练#vi.教育;训练
+education#/ˌedʒuˈkeɪʃn/#n.教育;培养;教育学
+effect#/ɪˈfekt/#n.影响;效果;作用#vt.产生;达到目的
+effective#/ɪˈfektɪv/#adj.有效的,起作用的;实际的,实在的;给人深刻印象
+efficiency#/ɪˈfɪʃnsi/#n.效率;效能;功效
+efficient#/ɪˈfɪʃnt/#adj.有效率的;有能力的;生效的
+effort#/ˈefərt/#n.努力;成就
+egg#/eɡ/#n.蛋;卵子;家伙;鸡蛋#vt.煽动;怂恿#n.(Egg)人名;(法、英)埃格
+ego#/ˈiːɡoʊ/#n.自我;自负;自我意识#n.(Ego)人名;(日)依怙(姓);(法)埃戈
+eight#/eɪt/#num.八;八个;第八;八岁;八点#adj.八的#n.八人划船队
+eighteen#/ˌeɪˈːn/#n.十八,十八个#adj.十八个的,十八的#num.十八
+eighth#/eɪtθ/#adj.第八的;八分之一的#num.第八;八分之一
+eighty#/ˈeɪti/#n.八十;八十岁;八十年代#adj.八十的,八十个的;八十岁的#num.八十
+either#/ˈiːðər,ˈaɪðər/#adj.任一的,(两方中的)每一方的#pron.任一,随便任一个#conj.或者,也
+eject#/ɪˈdʒekt/#vt.喷射;驱逐,逐出
+elaborate#/ɪˈlæbərət;ɪˈlæbəreɪt;ɪˈl#adj.精心制作的;详尽的;煞费苦心的#vt.精心制作;详细阐述;从简单成分合成(复杂有机物)#vi.详细描述;变复杂
+elapse#/ɪˈlæps/#vi.消逝;时间过去#n.流逝;时间的过去
+elastic#/ɪˈlæstɪk/#adj.有弹性的;灵活的;易伸缩的#n.松紧带;橡皮圈
+elbow#/ˈelboʊ/#n.肘部;弯头;扶手#vt.推挤;用手肘推开
+elder#/ˈeldər/#n.年长者,老人,父辈#adj.年长的,资格老的,
+elderly#/ˈeldərli/#adj.上了年纪的;过了中年的;稍老的
+elect#/ɪˈlekt/#vt.选举,推选#v.选择,作出选择,选举,选举,选举
+election#/ɪˈlekʃn/#n.选举;当选;选择权;上帝的选拔
+electric#/ɪˈlektrɪk/#adj.电的;电动的;发电的;导电的;令人震惊的#n.电;电气车辆;带电体
+electrical#/ɪˈlektrɪkl/#adj.有关电的;电气科学的
+electrician#/ɪˌlekˈtrɪʃn/#n.电工;电气技师
+electricity#/ɪˌlekˈtrɪsəti/#n.电力;电流;强烈的紧张情绪
+electron#/ɪˈlektrɑːn/#n.电子
+electronic#/ɪˌlekˈtrɑːnɪk/#adj.电子的#n.电子电路;电子器件
+electronics#/ɪˌlekˈtrɑːnɪks/#n.电子学;电子工业
+elegant#/ˈelɪɡənt/#adj.高雅的,优雅的;讲究的;简炼的;简洁的
+element#/ˈelɪmənt/#n.元素;要素;原理;成分;自然环境#n.(Element)人名;(德)埃勒门特;(英)埃利门特
+elementary#/ˌelɪˈmentri/#adj.基本的;初级的;[化学]元素的
+elephant#/ˈelɪfənt/#n.象;大号图画纸
+elevate#/ˈelɪveɪt/#vt.提升;举起;振奋情绪等;提升…的职位
+elevator#/ˈelɪveɪtər/#n.电梯;升降机;升降舵;起卸机
+eleven#/ɪˈlevn/#n.十一;十一个#adj.十一的;十一个的#num.十一;十一个
+eleventh#/ɪˈlevnθ/#num.第十一;十一和弦#adj.第十一(个)的#n.十一分之一
+elicit#/ɪˈlɪsɪt/#vt.抽出,引出;引起
+eligible#/ˈelɪdʒəbl/#adj.合格的,合适的;符合条件的;有资格当选的#n.合格者;适任者;有资格者
+eliminate#/ɪˈlɪmɪneɪt/#vt.消除;排除
+elimination#/ɪˌlɪmɪˈneɪʃn/#n.消除;淘汰;除去
+elite#/eɪˈliːt,ɪˈliːt/#n.精英;精华;中坚分子
+eloquent#/ˈeləkwənt/#adj.意味深长的;雄辩的,有口才的;有说服力的;动人的
+else#/els/#adv.其他;否则;另外#adj.别的;其他的#n.(Else)人名;(英)埃尔斯;(德)埃尔泽;(芬、丹)埃尔塞
+elsewhere#/ˌelsˈwer/#adv.在别处;到别处
+embark#/ɪmˈbɑːrk/#v.上船(或飞机);(使)上船(或登记);从事
+embarrass#/ɪmˈbærəs/#v.(尤指在社交场合)使窘迫,使尴尬;使困惑;使为难;使复杂化;陷入经济困难;妨碍(人、移动、行动)
+embassy#/ˈembəsi/#n.大使馆;大使馆全体人员
+embed#/ɪmˈbed/#vt.栽种;使嵌入,使插入;使深留脑中
+embody#/ɪmˈbɑːdi/#vt.体现,使具体化;具体表达#n.(Embody)人名;(英)恩博迪
+embrace#/ɪmˈbreɪs/#vt.拥抱;欣然采纳;信奉;包含#vi.拥抱#n.拥抱;采纳
+emerge#/ɪˈmɜːrdʒ/#vi.浮现;摆脱;暴露
+emergency#/ɪˈmɜːrdʒənsi/#n.紧急情况;突发事件;非常时刻#adj.紧急的;备用的
+emit#/iˈmɪt/#vt.发出,放射;发行;发表
+emotion#/ɪˈmoʊʃn/#n.情感;情绪
+emotional#/ɪˈmoʊʃənl/#adj.情绪的;易激动的;感动人的
+emperor#/ˈempərər/#n.皇帝,君主
+emphasis#/ˈemfəsɪs/#n.重点;强调;加强语气
+emphasize#/ˈemfəsaɪz/#vt.强调,着重
+empire#/ˈempaɪər/#n.帝国;帝王统治,君权#n.(Empire)人名;(法)昂皮尔
+empirical#/ɪmˈpɪrɪkl/#adj.经验主义的,完全根据经验的;实证的
+employ#/ɪmˈplɔɪ/#vt.使用,采用;雇用;使忙于,使从事于#n.使用;雇用
+employee#/ɪmˈplɔɪiː/#n.雇员;从业员工
+employer#/ɪmˈplɔɪər/#n.雇主,老板
+employment#/ɪmˈplɔɪmənt/#n.使用;职业;雇用
+empty#/ˈempti/#adj.空的;无意义的;无知的;徒劳的#vt.使失去;使......成为空的#vi.成为空的;流空#n.空车;空的东西
+enable#/ɪˈneɪbl/#v.使能够;使成为可能;授予权利或方法;(计算机)启动
+enclose#/ɪnˈkloʊz/#vt.围绕;装入;放入封套
+enclosure#/ɪnˈkloʊʒər/#n.附件;围墙;围场
+encounter#/ɪnˈkaʊntər/#v.遭遇;邂逅;遇到#n.遭遇;偶然碰见
+encourage#/ɪnˈkɜːrɪdʒ/#vt.鼓励,怂恿;激励;支持
+end#/end/#n.结束;目标;尽头;末端;死亡#vi.结束,终止;终结#vt.结束,终止;终结#n.(End)人名;(英、德)恩德
+endeavor#/ɪnˈdevər/#n.努力;尽力(等于endeavour)#vi.努力;尽力(等于endeavour)#vt.努力;尽力(等于endeavour)
+ending#/ˈendɪŋ/#n.结局;结尾;末梢;词尾#v.结束;终止(end的现在分词)
+endless#/ˈendləs/#adj.无止境的;连续的;环状的;漫无目的的
+endow#/ɪnˈdaʊ/#vt.赋予;捐赠;天生具有
+endurance#/ɪnˈdʊrəns/#n.忍耐力;耐久性;持续时间
+endure#/ɪnˈdʊr/#vt.忍耐;容忍#vi.忍耐;持续
+enemy#/ˈenəmi/#n.敌人,仇敌;敌军#adj.敌人的,敌方的
+energetic#/ˌenərˈdʒetɪk/#adj.精力充沛的;积极的;有力的
+energy#/ˈenərdʒi/#n.[物]能量;精力;活力;精神
+enforce#/ɪnˈfɔːrs/#vt.实施,执行;强迫,强制
+engage#/ɪnˈɡeɪdʒ/#vt.吸引,占用;使参加;雇佣;使订婚;预定;攻击,与……开战;使啮合#vi.从事;参与;答应,保证
+engagement#/ɪnˈɡeɪdʒmənt/#n.婚约;约会;交战;诺言;进场(游戏术语)#n.参与度(指用户点赞、转发、评论、下载文档、观看视频、咨询等交互行为)
+engine#/ˈendʒɪn/#n.引擎,发动机;机车,火车头;工具
+engineer#/ˌendʒɪˈnɪr/#n.工程师;工兵;火车司机#vt.设计;策划;精明地处理#vi.设计;建造
+engineering#/ˌendʒɪˈnɪrɪŋ/#n.工程,工程学#v.设计;管理(engineer的ing形式);建造
+England#/ˈɪŋɡlənd/#n.英格兰
+English#/ˈɪŋɡlɪʃ/#adj.英格兰人的;英格兰的;英文的#n.英语;英格兰人;(台球中的)侧旋#v.把……译成英语#n.(美、加、英、澳)英格利希(人名)
+enhance#/ɪnˈhæns/#vt.提高;加强;增加
+enjoy#/ɪnˈdʒɔɪ/#vt.欣赏,享受;喜爱;使过得快活
+enlarge#/ɪnˈlɑːrdʒ/#vi.扩大;放大;详述#vt.扩大;使增大;扩展
+enlighten#/ɪnˈlaɪtn/#vt.启发,启蒙;教导,开导;照耀
+enormous#/ɪˈnɔːrməs/#adj.庞大的,巨大的;凶暴的,极恶的
+enough#/ɪˈnʌf/#adv.足够地,充足地#n.很多;充足#adj.充足的#int.够了!
+enrich#/ɪnˈrɪtʃ/#vt.使充实;使肥沃;使富足#n.(Enrich)人名;(西)恩里奇
+enroll#/ɪnˈroʊl/#vt.登记;使加入;把...记入名册;使入伍#vi.参加;登记;注册;记入名册
+ensue#/ɪnˈsuː/#v.接着发生,因而发生;追求
+ensure#/ɪnˈʃʊr/#vt.保证,确保;使安全
+entail#/ɪnˈteɪl/#vt.使需要,必需;承担;遗传给;蕴含#n.引起;需要;继承
+enter#/ˈentər/#vt.进入;开始;参加#vi.参加,登场;进去#n.[计]输入;回车#n.(Enter)人名;(英)恩特
+enterprise#/ˈentərpraɪz/#n.企业;事业;进取心;事业心
+entertain#/ˌentərˈteɪn/#vt.娱乐;招待;怀抱;容纳#vi.款待
+entertainment#/ˌentərˈteɪnmənt/#n.娱乐;消遣;款待
+enthusiasm#/ɪnˈθuːziæzəm/#n.热心,热忱,热情
+enthusiastic#/ɪnˌθuːziˈæstɪk/#adj.热情的;热心的;狂热的
+entire#/ɪnˈtaɪər/#adj.全部的,整个的;全体的#n.(Entire)人名;(英)恩泰尔
+entitle#/ɪnˈtaɪtl/#v.给(某人)权利(或资格);给……题名;称呼
+entity#/ˈentəti/#n.实体;存在
+entrance#/ɪnˈtrɑ:ns;ˈentrəns/#n.入口;进入#vt.使出神,使入迷
+entrepreneur#/ˌɑːntrəprəˈnɜːr/#n.企业家;承包人;主办者
+entry#/ˈentri/#n.进入;入口;条目;登记;报关手续;对土地的侵占
+envelope#/ˈenvələʊp/#n.信封,封皮;包膜;[天]包层;包迹
+environment#/ɪnˈvaɪrənmənt/#n.环境,外界
+envisage#/ɪnˈvɪzɪdʒ/#v.设想,想像;正视,面对
+envy#/ˈenvi/#n.嫉妒,妒忌;羡慕#vt.嫉妒,妒忌;羡慕#vi.感到妒忌;显示出妒忌
+episode#/ˈepɪsoʊd/#n.一段经历;插曲;一段情节;(电视连续剧或广播的)一集;插话;有趣的事件
+epoch#/ˈepək/#n.[地质]世;新纪元;新时代;时间上的一点
+equal#/ˈiːkwəl/#adj.平等的;相等的;胜任的#vt.等于;比得上#n.对手;匹敌;同辈;相等的事物
+equality#/iˈkwɑːlə/#n.平等;相等;[数]等式
+equation#/ɪˈkweɪʒn/#n.方程式,等式;相等;[化学]反应式
+equator#/ɪˈkweɪtər/#n.赤道
+equilibrium#/ˌiːkwɪˈlɪbriəm/#n.均衡;平静;保持平衡的能力
+equip#/ɪˈkwɪp/#vt.装备,配备
+equipment#/ɪˈkwɪpmənt/#n.设备,装备;器材
+equivalent#/ɪˈkwɪvələnt/#adj.(在价值、数量等方面)相等的;等价的;等效的;等量的;同意义的#n.对等的人(或事物);当量
+era#/ˈɪrə,ˈerə/#n.时代;年代;纪元#n.(Era)人名;(意、芬、印)埃拉
+erect#/ɪˈrekt/#adj.竖立的,笔直的;因性刺激而勃起的;(毛发)竖起的#v.(使)竖立;建造;创立;安装;勃起
+erosion#/ɪˈroʊʒn/#n.侵蚀,腐蚀
+erroneous#/ɪˈroʊniəs/#adj.错误的;不正确的
+error#/ˈerər/#n.误差;错误;过失
+erupt#/ɪˈrʌpt/#vi.爆发;喷出;发疹;长牙#vt.爆发;喷出
+escape#/ɪˈskeɪp/#n.逃,逃亡,溢出设备,出口,逃跑,[植]野生#vi.逃脱,避开,溜走#vt.逃避,避免,被忘掉
+escort#/ˈeskɔːrt/#n.陪同;护航舰;护卫队;护送者#vt.护送;陪同;为…护航
+especially#/ɪˈspeʃəli/#adv.特别;尤其;格外
+essay#/ˈeseɪ/#n.散文;试图;随笔#vt.尝试;对…做试验
+essence#/ˈesns/#n.本质,实质;精华;香精#n.(Essence)人名;(英)埃森丝
+essential#/ɪˈsenʃl/#adj.基本的;必要的;本质的;精华的#n.本质;要素;要点;必需品
+establish#/ɪˈstæblɪʃ/#v.建立,创立;确立;获得接受;查实,证实
+establishment#/ɪˈstæblɪʃmənt/#n.确立,制定;公司;设施
+estate#/ɪˈsteɪt/#n.房地产;财产;身份
+esthetic#/esˈθetɪk/#adj.审美的(等于aesthetic);感觉的#n.美学;审美家;唯美主义者
+estimate#/ˈestɪmeɪt/#n.估计,估价;判断,看法#v.估计,估量;判断,评价
+eternal#/ɪˈtɜːrnl/#adj.永恒的;不朽的
+ethics#/ˈeθɪks/#n.伦理学;伦理观;道德标准
+ethnic#/ˈeθnɪk/#adj.种族的;人种的
+Europe#/ˈjʊrəp/#n.欧洲
+European#/ˌjʊrəˈpiːən/#adj.欧洲的;欧洲人的;与欧盟有关的#n.欧洲人;欧洲人的后裔;欧盟成员国国民
+evaluate#/ɪˈvæljueɪt/#vt.评价;估价;求…的值#vi.评价;估价
+evaporate#/ɪˈvæpəreɪt/#vt.使……蒸发;使……脱水;使……消失#vi.蒸发,挥发;消失,失踪
+eve#/iːv/#n.夏娃;前夕;傍晚;重大事件关头
+Eve#/iːv/#n.夏娃;前夕;傍晚;重大事件关头
+even#/ˈiːvn/#adj.平的,平滑的,偶数的,一致的,平静的,恰好的,平均的,连贯的#adv.[加强语气]甚至(...也),连...都,即使,恰好,正当#vt.使平坦,使相等#vi.变平,相等#n.偶数,偶校验
+evening#/ˈiːvnɪŋ/#n.晚上;傍晚;(联欢性的)晚会;后期#adj.在晚上的;为晚上的;晚上用的#int.晚上好(等于goodevening)
+event#/ɪˈvent/#n.事件,大事;赛事;项目;结果
+eventually#/ɪˈventʃuəli/#adv.最后,终于
+ever#/ˈevər/#adv.永远;曾经;究竟#n.(Ever)人名;(英)埃弗;(俄)叶韦尔;(西、法)埃韦尔
+every#/ˈevri/#adj.每一的,每个的;每隔……的;(用于强调)所有可能的,完全可能的#n.(Every)(美、荷、瑞典)埃夫里(人名)
+everybody#/ˈevribɑːdi,ˈevribʌdi/#pron.每个人,人人
+everyday#/ˈevrideɪ/#adj.每天的,日常的#n.平时;寻常日子
+everyone#/ˈevriwʌn/#pron.每个人;人人
+everything#/ˈevriθɪŋ/#pron.每件事物,(有关的)一切,万事;形势,情况;最重要的东西#n.(Everything)(印、美、澳)艾维辛(人名)
+everywhere#/ˈevriwer/#adv.到处#n.每个地方
+evidence#/ˈevɪdəns/#n.证据,证明;迹象;明显#vt.证明
+evident#/ˈevɪdənt/#adj.明显的;明白的
+evil#/ˈiːvl,ˈiːvɪl/#adj.邪恶的;不幸的;有害的;讨厌的#n.罪恶,邪恶;不幸
+evoke#/ɪˈvoʊk/#vt.引起,唤起;博得
+evolution#/ˌevəˈluːʃn/#n.演变;进化论;进展
+evolve#/ɪˈvɑːlv/#vt.发展;进化;使逐步形成;推断出#vi.发展,进展;进化;逐步形成
+exact#/ɪɡˈzækt/#adj.准确的,精密的;精确的#vt.要求;强求;急需#vi.勒索钱财
+exactly#/ɪɡˈzæktli/#adv.恰好地;正是;精确地;正确地
+exaggerate#/ɪɡˈzædʒəreɪt/#vt.使扩大;使增大#vi.夸大;夸张
+exam#/ɪɡˈzæm/#n.考试;测验
+examination#/ɪɡˌzæmɪˈneɪʃn/#n.考试;检查;查问
+examine#/ɪɡˈzæmɪn/#vt.检查;调查;检测;考试#vi.检查;调查
+example#/ɪɡˈzæmpl/#n.例子;榜样#vt.作为…的例子;为…做出榜样#vi.举例
+exceed#/ɪkˈsiːd/#vt.超过;胜过#vi.超过其他
+exceedingly#/ɪkˈsiːdɪŋli/#adv.非常;极其;极度地;极端
+excellent#/ˈeksələnt/#adj.卓越的;极好的;杰出的
+except#/ɪkˈsept/#prep.除……之外#conj.只是;除非;除……之外;要不是由于#v.不计,把……除外;反对
+exception#/ɪkˈsepʃn/#n.例外;异议
+exceptional#/ɪkˈsepʃənl/#adj.异常的,例外的#n.超常的学生
+excess#/ɪkˈses/#n.超过,超额;过度,过量;无节制#adj.额外的,过量的;附加的
+excessive#/ɪkˈsesɪv/#adj.过多的,极度的;过分的
+exchange#/ɪksˈtʃeɪndʒ/#n.交换;交流;交易所;兑换#vt.交换;交易;兑换#vi.交换;交易;兑换
+excite#/ɪkˈsaɪt/#v.使兴奋;刺激,使紧张不安;激起,引发;激发,激励;激发(性欲);使……活动
+exciting#/ɪkˈsaɪtɪŋ/#adj.令人兴奋的;使人激动的#v.激动;刺激(excite的ing形式);唤起
+exclaim#/ɪkˈskleɪm/#vi.呼喊,惊叫;大声叫嚷#vt.大声说出
+exclude#/ɪkˈskluːd/#vt.排除;排斥;拒绝接纳;逐出
+exclusive#/ɪkˈskluːsɪv/#adj.独有的;排外的;专一的#n.独家新闻;独家经营的项目;排外者
+exclusively#/ɪkˈskluːsɪvli/#adv.唯一地,专有地,排外地;作为唯一的(消息)来源
+excursion#/ɪkˈskɜːrʒn/#n.偏移;远足;短程旅行;离题;游览,游览团
+excuse#/ɪkˈskjuːs/#n.借口;理由;拙劣样品;假条#v.原谅;为……申辩;准许……离开;给……免去;作为借口;请求宽恕
+execute#/ˈeksɪkjuːt/#vt.实行;执行;处死
+execution#/ˌeksɪˈkjuːʃn/#n.执行,实行;完成;死刑
+executive#/ɪɡˈzekjətɪv/#adj.经营管理的;有执行权的;高级的;供重要人物使用的#n.主管;行政领导;(政府的)行政部门;执行委员会
+exemplify#/ɪɡˈzemplɪfaɪ/#vt.例证;例示
+exempt#/ɪɡˈzempt/#adj.被免除(责任或义务)的,获豁免的#v.免除,豁免#n.被免除义务者(尤指被免税者)
+exercise#/ˈeksərsaɪz/#n.运动;练习;运用;操练;礼拜;典礼#vt.锻炼;练习;使用;使忙碌;使惊恐#vi.运动;练习
+exert#/ɪɡˈzɜːrt/#vt.运用,发挥;施以影响
+exhaust#/ɪɡˈzɔːst/#v.使精疲力尽;耗尽;彻底探讨;排出(气体)#n.废气;排气管
+exhibit#/ɪɡˈzɪbɪt/#vt.展览;显示;提出(证据等)#n.展览品;证据;展示会#vi.展出;开展览会
+exhibition#/ˌeksɪˈbɪʃn/#n.展览,显示;展览会;展览品
+exile#/ˈeksaɪl,ˈeɡzaɪl/#n.流放,充军;放逐,被放逐者;流犯#vt.放逐,流放;使背井离乡
+exist#/ɪɡˈzɪst/#vi.存在;生存;生活;继续存在
+existence#/ɪɡˈzɪstəns/#n.存在,实在;生存,生活;存在物,实在物
+exit#/ˈeksɪt,ˈeɡzɪt/#n.出口,通道;退场#vi.退出;离去
+exotic#/ɪɡˈzɑːtɪk/#adj.异国的;外来的;异国情调的
+expand#/ɪkˈspænd/#vt.扩张;使膨胀;详述#vi.发展;张开,展开
+expansion#/ɪkˈspænʃn/#n.膨胀;阐述;扩张物
+expect#/ɪkˈspekt/#vt.期望;指望;认为;预料#vi.期待;预期
+expectation#/ˌekspekˈteɪʃn/#n.期待;预期;指望
+expedition#/ˌekspəˈdɪʃn/#n.远征;探险队;迅速
+expel#/ɪkˈspel/#vt.驱逐;开除
+expend#/ɪkˈspend/#vt.花费;消耗;用光;耗尽
+expenditure#/ɪkˈspendɪtʃər/#n.支出,花费;经费,消费额
+expense#/ɪkˈspens/#n.损失,代价;消费;开支#vt.向…收取费用#vi.被花掉
+expensive#/ɪkˈspensɪv/#adj.昂贵的;花钱的
+experience#/ɪkˈspɪriəns/#n.经验;经历;体验#vt.经验;经历;体验
+experiment#/ɪkˈsperɪmənt/#n.实验,试验;尝试#v.尝试;试验;进行实验
+experimental#/ɪkˌsperɪˈmentl/#adj.实验的;根据实验的;试验性的
+expert#/ˈekspɜːrt/#n.专家;行家;能手#adj.熟练的;内行的;老练的#v.当专家#n.(Expert)(法、印、俄、罗、巴、荷)埃克斯佩(人名)
+expertise#/ˌekspɜːrˈːz/#n.专门知识;专门技术;专家的意见
+expire#/ɪkˈspaɪər/#vi.期满;终止;死亡;呼气#vt.呼出(空气)
+explain#/ɪkˈspleɪn/#v.说明;解释
+explanation#/ˌekspləˈneɪʃn/#n.说明,解释;辩解
+explicit#/ɪkˈsplɪsɪt/#adj.明确的;清楚的;直率的;详述的
+explode#/ɪkˈsploʊd/#vi.爆炸,爆发;激增#vt.使爆炸;爆炸;推翻
+exploit#/ɪkˈsplɔɪt/#vt.开发,开拓;剥削;开采#n.英雄事迹;英勇行为;奇遇
+explore#/ɪkˈsplɔːr/#vt.探索;探测;探险#vi.探索;探测;探险
+explosion#/ɪkˈsploʊʒn/#n.爆炸;爆发;激增#n.(Explosion)《引爆者》(一部中国动作、犯罪电影)。
+explosive#/ɪkˈspləʊsɪv/#adj.爆炸的;爆炸性的;爆发性的#n.炸药;爆炸物
+export#/ˈekspɔːrt/#n.输出,出口;出口商品#vi.输出物资#vt.输出,出口
+expose#/ɪkˈspoʊz/#vt.揭露,揭发;使曝光;显示
+exposition#/ˌekspəˈzɪʃn/#n.博览会;阐述;展览会
+exposure#/ɪkˈspoʊʒər/#n.暴露;曝光;揭露;陈列
+express#/ɪkˈspres/#vt.表达;快递#adj.明确的;迅速的;专门的#n.快车,快递,专使;捷运公司
+expression#/ɪkˈspreʃn/#n.表现,表示,表达;表情,脸色,态度,腔调,声调;式,符号;词句,语句,措辞,说法
+exquisite#/ɪkˈskwɪzɪt/#adj.精致的;细腻的;优美的,高雅的;异常的;剧烈的#n.服饰过于讲究的男子
+extend#/ɪkˈstend/#vt.延伸;扩大;推广;伸出;给予;使竭尽全力;对…估价#vi.延伸;扩大;伸展;使疏开
+extension#/ɪkˈstenʃn/#n.拓展;延伸;接发;(医学)牵引;(计算机)拓展名;(逻辑)外延
+extensive#/ɪkˈstensɪv/#adj.广泛的;大量的;广阔的
+extent#/ɪkˈstent/#n.程度;范围;长度
+exterior#/ɪkˈstɪriər/#adj.外部的,外面的,外在的;(电影场景)室外的;外界的#n.(建筑)外部,表面;(人的)外型,外貌;(摄影)外景
+external#/ɪkˈstɜːrnl/#adj.外部的;表面的;[药]外用的;外国的;外面的#n.外部;外观;外面
+extinct#/ɪkˈstɪŋkt/#adj.灭绝的,绝种的;熄灭的#vt.使熄灭
+extinguish#/ɪkˈstɪŋɡwɪʃ/#vt.熄灭;压制;偿清
+extra#/ˈekstrə/#adj.额外的,不包括在价目内的,特大的,特佳的#adv.特别地,非常,另外#n.额外的人(或物),(报纸)号外,上等产品,(电影)临时演员
+extract#/ˈekstrækt/#v.提取,提炼;索取,设法得到;选取,摘录;取出,拔出;推断出,引申出;开(方),求(根)#n.摘录,引文;榨出物,汁
+extraordinary#/ɪkˈstrɔːrdəneri/#adj.非凡的;特别的;离奇的;特派的
+extravagant#/ɪkˈstrævəɡənt/#adj.奢侈的;浪费的;过度的;放纵的
+extreme#/ɪkˈstriːm/#adj.极端的;极度的;偏激的;尽头的#n.极端;末端;最大程度;极端的事物
+extremely#/ɪkˈstriːmli/#adv.非常,极其;极端地
+eye#/aɪ/#n.眼睛;视力;眼光;见解,观点#vt.注视,看#n.(Eye)人名;(德)艾厄;(英)艾
+eyesight#/ˈaɪsaɪt/#n.视力;目力
+fabricate#/ˈfæbrɪkeɪt/#vt.制造;伪造;装配
+facet#/ˈfæsɪt/#n.面;方面;小平面#vt.在…上琢面
+facilitate#/fəˈsɪlɪteɪt/#vt.促进;帮助;使容易
+facility#/fəˈsɪləti/#n.设施,设备;(机器等的)特别装置,特殊功能;(特定用途的)场所;才能,天赋
+fact#/fækt/#n.事实;实际;真相
+factor#/ˈfæktər/#n.因素;要素;[物]因数;代理人#vi.做代理商#vt.把…作为因素计入;代理经营;把…分解成#n.(Factor)人名;(英)法克特
+factory#/ˈfæktri,ˈfæktəri/#n.工厂;制造厂;代理店
+faculty#/ˈfæklti/#n.科,系;能力,官能;全体教员
+fade#/feɪd/#vi.褪色;凋谢;逐渐消失#vt.使褪色#adj.平淡的;乏味的#n.[电影][电视]淡出;[电影][电视]淡入#n.(Fade)人名;(法)法德
+Fahrenheit#/ˈfærənhaɪt/#adj.华氏温度计的;华氏的#n.华氏温度计;华氏温标
+fail#/feɪl/#vi.失败,不及格;破产;缺乏;衰退#vt.不及格;使失望;忘记;舍弃#n.不及格#n.(Fail)人名;(葡、捷)法伊尔;(法)法伊
+failure#/ˈfeɪljər/#n.失败;故障;失败者;破产
+faint#/feɪnt/#adj.模糊的;头晕的;虚弱的;[医]衰弱的#vi.昏倒;变得微弱;变得没气力#n.[中医]昏厥,昏倒
+fair#/fer/#adj.公平的;美丽的,白皙的;[气象]晴朗的#adv.公平地;直接地;清楚地#vi.转晴#n.展览会;市集;美人#n.(Fair)人名;(英、芬)费尔
+fairly#/ˈferli/#adv.相当地;公平地;简直#n.(Fairly)人名;(英)费尔利
+faith#/feɪθ/#n.信仰;信念;信任;忠实#n.(Faith)人名;(匈)福伊特;(英)费思,费丝(女名);(瑞典)法伊特
+faithful#/ˈfeɪθfl/#adj.忠实的,忠诚的;如实的;准确可靠的#n.(Faithful)人名;(英)费思富尔
+fake#/feɪk/#n.假货,欺骗#adj.假的#vt.伪造,赝造,捏造,假造,仿造#vi.伪装
+fall#/fɔːl/#n.秋天,落下,瀑布,降低,落差,采伐量,堕落,下降#vi.倒下,落下,来临,失守,变成,垮台,下跌,阵亡#vt.美英方击倒,砍倒(树木)#adj.秋天的
+FALSE#/fɔːls/#adj.错误的;虚伪的;伪造的#adv.欺诈地
+fame#/feɪm/#n.名声,名望;传闻,传说#vt.使闻名,使有名望
+familiar#/fəˈmɪliər/#adj.熟悉的;常见的;亲近的#n.常客;密友#n.(Familiar)(西)法米利亚尔(人名)
+family#/ˈfæməli/#n.家庭;亲属;家族;子女;[生]科;语族;[化]族#adj.家庭的;家族的;适合于全家的
+famine#/ˈfæmɪn/#n.饥荒;饥饿,奇缺
+famous#/ˈfeɪməs/#adj.著名的;极好的,非常令人满意的
+fan#/fæn/#n.扇子,鼓风机,风扇,迷,狂热者,爱好者#vt.煽动,刺激,扇,吹拂#vi.飘动,成扇形散开
+fancy#/ˈfænsi/#adj.奇特的,异样的#vt.想象,设想,认为,爱好,自负#n.爱好,迷恋,想象力
+fantastic#/fænˈtæstɪk/#adj.奇异的;空想的;异想天开的;古怪的;极好的,极出色的;不可思议的;不切实际的;(数量)极大的#n.古怪的人#adv.极其,非常
+fantasy#/ˈfæntəsi/#n.幻想;白日梦;幻觉#adj.虚幻的#vt.空想;想像#vi.耽于幻想;奏幻想曲(等于phantasy)
+far#/fɑːr/#adv.很;遥远地;久远地;到很远的距离;到很深的程度#adj.远的;久远的#n.远方#n.(Far)人名;(德、西、塞)法尔
+fare#/fer/#n.费用,旅客,食物#vi.遭遇,进展,进步,经营,过活
+farewell#/ˌferˈwel/#n.告别,辞别;再见;再会#int.别了!(常含有永别或不容易再见面的意思);再会!#adj.告别的
+farm#/fɑːrm/#n.农场,农庄,农田#vt.耕种#vi.种田,务农,经营农场,从事畜牧
+farmer#/ˈfɑːrmər/#n.农夫,农民#n.(Farmer)(英)法默;(法)法尔梅;(西)法梅尔(人名)
+farther#/ˈfɑːrðər/#adv.更远地;此外;更进一步地#adj.进一步的;更远的(far的比较级)
+fascinate#/ˈfæsɪneɪt/#v.使着迷,使神魂颠倒;(尤指蛇)以眼神震慑(人或动物),使无法动弹
+fashion#/ˈfæʃn/#n.时尚;时装;样式;方式;时髦人物#vt.使用;改变;做成…的形状
+fashionable#/ˈfæʃnəbl/#adj.流行的;时髦的;上流社会的
+fast#/fæst/#adj.快速的,迅速的;紧的,稳固的#adv.迅速地;紧紧地;彻底地#vi.禁食,斋戒#n.斋戒;绝食#n.(Fast)人名;(德、英、俄、芬、捷、瑞典)法斯特
+fasten#/ˈfæsn/#vt.使固定;集中于;扎牢;强加于#vi.扣紧;抓住;集中注意力#n.(Fasten)人名;(英)法森
+fatal#/ˈfeɪtl/#adj.致命的;重大的;毁灭性的;命中注定的#n.(Fatal)人名;(葡、芬)法塔尔
+fate#/feɪt/#n.命运#vt.注定#n.(Fate)人名;(英)费特
+father#/ˈfɑːðər/#n.父亲,爸爸;神父;祖先;前辈#vt.发明,创立;当…的父亲
+fatigue#/fəˈːɡ/#n.疲劳,疲乏;杂役#vt.使疲劳;使心智衰弱#vi.疲劳#adj.疲劳的
+fault#/fɔːlt/#n.故障;[地质]断层;错误;缺点;毛病;(网球等)发球失误#vi.弄错;产生断层#vt.(通常用于疑问句或否定句)挑剔
+faulty#/ˈfɔːl/#adj.有错误的;有缺点的
+favour#/ˈfeɪvər/#n.偏爱;赞同;善行#vt.赞成;喜爱;有助于
+favourable#/ˈfeɪvərəbl/#adj.有利的,顺利的;赞成的
+favourite#/ˈfeɪvərɪt/#adj.特别受喜爱的#n.特别喜爱的人(或物)
+fax#/fæks/#n.传真机;传真信件;传真#v.传真(信件或文档);用传真与(某人)联系#n.(Fax)(瑞、美、巴、德)法克斯(人名)
+fear#/fɪr/#n.害怕;恐惧;敬畏;担心#vt.害怕;敬畏;为…担心#vi.害怕;敬畏;为…担心
+fearful#/ˈfɪrfl/#adj.可怕的;担心的;严重的
+feasible#/ˈfiːzəbl/#adj.可行的;可能的;可实行的
+feast#/fiːst/#n.筵席,宴会;(感官)享受;节日#v.尽情享用,饱餐;宴请;赴宴
+feather#/ˈfeðər/#n.羽毛#vt.用羽毛装饰#vi.长羽毛#n.(Feather)人名;(英)费瑟
+feature#/ˈfiːtʃər/#n.特色,特征;容貌;特写或专题节目#vi.起重要作用#vt.特写;以…为特色;由…主演
+February#/ˈfebrueri/#n.二月
+federal#/ˈfedərəl/#adj.联邦的;同盟的;联邦政府的;联邦制的#adv.联邦政府地#n.(Federal)人名;(英)费德勒尔
+federation#/ˌfedəˈreɪʃn/#n.联合;联邦;联盟;联邦政府
+fee#/fiː/#n.费用;酬金;小费#vt.付费给……#n.(Fee)人名;(英、柬)菲
+feeble#/ˈfiːbl/#adj.微弱的,无力的;虚弱的;薄弱的
+feed#/fiːd/#n.饲养,饲料,(动物或婴儿的)一餐#vt.喂养,饲养,放牧,靠...为生#vi.吃东西,流入
+feedback#/ˈfiːdbæk/#n.反馈;成果,资料;回复
+feel#/fiːl/#vt.感觉;认为;触摸;试探#vi.觉得;摸索#n.感觉;触摸
+feeling#/ˈfiːlɪŋ/#n.感觉,触觉;感情,情绪;同情#adj.有感觉的;有同情心的;富于感情的#v.感觉;认为(feel的现在分词);触摸
+fellow#/ˈfeloʊ/#n.人,家伙,伙伴,学会特别会员,朋友,同事#adj.同伴的,同事的,同道的
+fellowship#/ˈfeloʊʃɪp/#n.团体;友谊;奖学金;研究员职位
+female#/ˈfiːmeɪl/#adj.女性的;雌性的#n.女人;[动]雌性动物
+feminine#/ˈfemənɪn/#adj.女性的;妇女(似)的;阴性的;娇柔的
+fence#/fens/#n.栅栏;围墙;剑术#vt.防护;用篱笆围住;练习剑术#vi.击剑;搪塞;围以栅栏;跳过栅栏
+ferry#/ˈferi/#n.渡船;摆渡;渡口#vt.(乘渡船)渡过;用渡船运送;空运#vi.摆渡;来往行驶#n.(Ferry)人名;(法、德、英、印尼)费里
+fertile#/ˈfɜːrtl/#adj.富饶的,肥沃的;能生育的
+fertilize#/ˈfɜːrtəlaɪz/#vt.使受精;使肥沃
+fertilizer#/ˈfɜːrtəlaɪzər/#n.[肥料]肥料;受精媒介物;促进发展者
+festival#/ˈfestɪvl/#n.节日;庆祝,纪念活动;欢乐#adj.节日的,喜庆的;快乐的
+fetch#/fetʃ/#vt.取来;接来;到达;吸引#vi.拿;取物;卖得#n.取得;诡计
+fever#/ˈfiːvər/#n.发烧,发热;狂热#vt.使发烧;使狂热;使患热病#vi.发烧;狂热;患热病
+few#/fjuː/#adj.很少的;几乎没有的#pron.很少#n.很少数#n.(Few)人名;(英)菲尤
+fibre#/ˈfaɪbər/#n.纤维;纤维制品
+fiction#/ˈfɪkʃn/#n.小说;虚构,编造;谎言
+field#/fiːld/#n.原野,旷野,领域,(一块)田地,牧场,域,战场,运动场#vt.把(谷物等)暴晒于场上,使上场#vi.担任场外队员#adj.田间的,野生的,野外的,田赛的扫描场
+fierce#/fɪrs/#adj.凶猛的;猛烈的;暴躁的#n.(Fierce)(英)菲尔斯(人名)
+fifteen#/ˌfɪfˈːn/#n.十五;十五个;十五人组成的橄榄球队#adj.十五的#num.十五
+fifth#/fɪfθ/#adj.第五的;五分之一的#n.第五;五分之一#num.第五
+fifty#/ˈfɪfti/#n.五十;五十个;编号为50的东西#adj.五十的;五十个的;众多的
+fight#/faɪt/#n.打架,战斗,斗志#vi.打仗,搏斗,对抗,打架#vt.与...打仗,指挥战斗,反对...提案
+figure#/ˈfɪɡjər/#n.数字;人物;图形;价格;(人的)体形;画像#vi.计算;出现;扮演角色#vt.计算;认为;描绘;象征
+file#/faɪl/#n.文件;档案;文件夹;锉刀#vt.提出;锉;琢磨;把…归档#vi.列队行进;用锉刀锉#n.(File)人名;(匈、塞)菲莱
+fill#/fɪl/#vt.装满,使充满;满足;堵塞;任职#vi.被充满,膨胀#n.满足;填满的量;装填物#n.(Fill)人名;(德、俄、匈)菲尔
+film#/fɪlm/#n.电影;薄膜;胶卷;轻烟#vt.在…上覆以薄膜;把…拍成电影#vi.摄制电影;生薄膜;变得朦胧
+filter#/ˈfɪltər/#n.过滤器;滤波器;筛选程序;分流指示灯#v.过滤;渗透;用过滤法除去;慢慢传开;缓行;仅可左转行驶#n.(Filter)(德)菲尔特(人名)
+final#/ˈfaɪnl/#adj.最终的;决定性的;不可更改的#n.决赛;期末考试;当日报纸的末版
+finally#/ˈfaɪnəli/#adv.最后;终于;决定性地
+finance#/ˈfaɪnæns/#n.财政,财政学;金融#vt.负担经费,供给…经费#vi.筹措资金#n.(Finance)人名;(法)菲南斯
+financial#/faɪˈnænʃl/#adj.金融的;财政的,财务的
+find#/faɪnd/#vt.查找,找到;发现;认为;感到;获得#vi.裁决#n.发现#n.(Find)人名;(丹)芬
+finding#/ˈfaɪndɪŋ/#n.发现;裁决;发现物#v.找到;感到(find的ing形式);遇到
+fine#/faɪn/#adj.好的;优良的;细小的,精美的;健康的;晴朗的#n.罚款#vt.罚款;澄清#adv.很好地;精巧地#n.(Fine)人名;(意)菲内;(英)法恩
+finger#/ˈfɪŋɡər/#n.手指;指针,指状物#vt.伸出;用手指拨弄#vi.用指触摸;拨弄#n.(Finger)人名;(英、德、捷)芬格;(俄)芬格尔
+finish#/ˈfɪnɪʃ/#n.完成,结束,磨光,末道漆,完美#vt.完成,结束,用完,毁掉,使完美#vi.结束,终结,停止,终止
+finite#/ˈfaɪnaɪt/#adj.有限的;限定的#n.有限之物
+fire#/ˈfaɪər/#n.火;火灾;炮火;炉火;热情;激情;磨难#vt.点燃;解雇;开除;使发光;烧制;激动;放枪#vi.着火;射击;开枪;激动;烧火
+fireman#/ˈfaɪərmən/#n.消防队员;救火队员;锅炉工#n.(Fireman)人名;(英)法尔曼
+firm#/fɜːrm/#n.商行;商号;公司#adj.坚定的;牢固的;严格的;结实的;坚决的;牢牢控制的;坚挺的#adv.坚信;坚持;稳固地#v.使坚定;使牢固
+first#/fɜːrst/#adv.首先,最初,第一(列举条目等用),优先#adj.第一的#num.第一(个)#n.开始,第一,(比赛)冠军
+fish#/fɪʃ/#n.鱼,鱼肉,鱼类,接合板#vt.钓,钓鱼,查出,用接合板连接#vi.捕鱼,钓鱼,用钩捞取,间接探听,拉摸索寻找
+fisherman#/ˈfɪʃərmən/#n.渔夫;渔人
+fist#/fɪst/#n.拳,拳头;<口>笔迹;掌握;[印]指标参见号#vt.紧握;握成拳;用拳打
+fit#/fɪt/#n.突然发作,适合,痉挛,一阵#adj.合适的,恰当的,健康的,,准备好的#vt.适合,安装,使合身,使适应,使合格#vi.适合,符合
+fitting#/ˈfɪtɪŋ/#adj.适合的,相称的,适宜的#n.试穿,试衣,装配,装置
+five#/faɪv/#n.五,五个;五美元钞票#num.五,五个#adj.五的;五个的#n.(Five)人名;(挪)菲弗
+fix#/fɪks/#vt.使固定,装置,修理,准备,安装,凝视,整理,牢记#vi.固定,注视,决定,选定,确定#n.困境,方位,贿赂
+fixture#/ˈfɪkstʃər/#n.设备;固定装置;固定于某处不大可能移动之物
+flag#/flæɡ/#n.旗,标记#v.标记
+flame#/fleɪm/#n.火焰;热情;光辉#v.焚烧;泛红#n.(Flame)人名;(法)弗拉姆;(西)弗拉梅
+flank#/flæŋk/#n.侧面;侧翼;侧腹#vt.守侧面;位于…的侧面;攻击侧面#vi.侧面与…相接#adv.在左右两边#n.(Flank)人名;(瑞典、匈)弗兰克;(法)弗朗克
+flap#/flæp/#n.拍打,拍打声;神经紧张;(飞机的)襟翼;风门,挡板;[医]皮瓣#vi.拍动;神经紧张;鼓翼而飞;(帽边等)垂下#vt.拍打;扔;拉下帽边;飘动
+flare#/fler/#n.闪光,闪耀#vi.闪光,突然烧起来,闪耀#vt.使闪耀,使张开
+flash#/flæʃ/#n.闪光,闪现,一瞬间;#vi.闪光,闪现,反射,使迅速传便;#vt.使闪光,反射;#adj.闪光的,火速的
+flat#/flæt/#adj.平坦的,扁平的,单调的,倒下的,浅的,干脆的,无聊的,无力的#adv.平直地,仰卧地,恰恰,正好,断然地#n.平面,平地,一层,公寓#v.(使)变平,(使)降半音
+flatter#/ˈflætər/#vt.奉承;谄媚;使高兴
+flavour#/ˈfleɪvər/#n.香味;滋味#vt.给……调味;给……增添风趣
+flaw#/flɔː/#n.瑕疵,缺点;一阵狂风;短暂的风暴;裂缝,裂纹#v.使生裂缝,使有裂纹;使无效;使有缺陷#vi.生裂缝;变得有缺陷
+flee#/fliː/#vi.逃走;消失,消散#vt.逃跑,逃走;逃避
+fleet#/fliːt/#n.舰队(尤指有固定活动地区的舰队),港湾,小河#adj.快速的,敏捷的,浅的#adv.浅#vt.消磨#vi.疾驰,飞逝,掠过
+flesh#/fleʃ/#n.肉;肉体#vt.喂肉给…;使发胖#vi.长胖#n.(Flesh)人名;(英)弗莱什
+flexible#/ˈfleksəbl/#adj.灵活的;柔韧的;易弯曲的
+flight#/flaɪt/#n.飞行;班机;逃走#vt.射击;使惊飞#vi.迁徙#n.(Flight)人名;(英)弗莱特
+fling#/flɪŋ/#vt.掷,抛;嘲笑;使陷入;轻蔑地投射;猛动#n.掷,抛;嘲弄;急冲#vi.猛冲,急行
+float#/floʊt/#n.漂流物,浮舟,漂浮,浮萍,彩车#vi.浮动,飘浮,散播,摇摆,漂浮,动摇(计划等)付诸实行#vt.使漂浮,容纳,淹没,发行,实行,用水注满
+flock#/flɑːk/#n.群;棉束(等于floc)#vt.用棉束填满#vi.聚集;成群而行#n.(Flock)人名;(德、瑞典)弗洛克
+flood#/flʌd/#n.洪水,水灾,(因雨)涨潮,[诗]水#vt.淹没,使泛滥,注满,充满#vi.被水淹,溢出,涌进,喷出,涌出
+floor#/flɔːr/#n.地板,地面;楼层;基底;议员席#vt.铺地板;打倒,击倒;(被困难)难倒
+flour#/ˈflaʊər/#n.面粉;粉状物质#vt.撒粉于;把…磨成粉#n.(Flour)人名;(法)弗卢尔
+flourish#/ˈflɜːrɪʃ/#v.繁荣,茂盛;茁壮成长,处于旺盛时期;挥舞;炫耀#n.夸张动作;出色部分;华丽辞藻;花彩字;(管弦乐)花彩号声
+flow#/floʊ/#n.流程,流动,(河水)泛滥,洋溢#vi.流动,涌流,川流不息,飘扬#vt.溢过,淹没
+flower#/ˈflaʊər/#n.花;精华;开花植物#vi.成熟,发育;开花;繁荣;旺盛#vt.使开花;用花装饰#n.(Flower)人名;(英)弗劳尔
+flu#/fluː/#n.流感#n.(Flu)人名;(法)弗吕
+fluctuate#/ˈflʌktʃueɪt/#vi.波动;涨落;动摇#vt.使波动;使动摇
+fluent#/ˈfluːənt/#adj.流畅的,流利的;液态的;畅流的
+fluid#/ˈfluːɪd/#n.流体,液体#adj.流动的;不固定的,易变的;流畅的,优美的;液压传动的
+flush#/flʌʃ/#n.奔流,晕红,激动,萌芽,活力旺盛,发烧,一手同花的五张牌,惊鸟;#adj.挥霍的,直接的,泛滥的;#adv.齐平地,直接地;#vi.(脸)发红,奔涌,充沛,惊飞;#vt.淹没,冲洗,使脸红,使齐平,使惊飞,使激动
+flutter#/ˈflʌtər/#n.摆动,鼓翼,烦扰#vi.鼓翼,飘动,悸动,乱跳,烦扰#vt.拍(翅),使焦急
+fly#/flaɪ/#vi.飞;驾驶飞机;飘扬#vt.飞行;飞越;使飘扬#n.飞行;苍蝇;两翼昆虫#adj.敏捷的#n.(Fly)人名;(法)弗利;(英)弗莱
+foam#/foʊm/#n.泡沫;水沫;灭火泡沫#vi.起泡沫;吐白沫;起着泡沫流动#vt.使起泡沫;使成泡沫状物
+focus#/ˈfoʊkəs/#n.焦点;中心;清晰;焦距#vt.使集中;使聚焦#vi.集中;聚焦;调节焦距#n.(Focus)人名;(瑞典)福库斯
+fog#/fɑːɡ/#n.雾;烟雾,尘雾;迷惑#vt.使模糊;使困惑;以雾笼罩#vi.被雾笼罩;变模糊#n.(Fog)人名;(丹)福
+foil#/fɔɪl/#n.箔,金属薄片,[建]叶形片,烘托,衬托#vt.衬托,阻止,挡开,挫败,贴箔于
+fold#/foʊld/#n.折,羊栏,折痕,信徒#vt.折叠,包,合拢,抱住,笼罩,调入,交迭#vi.折叠起来,彻底失败
+folk#/foʊk/#n.民族;人们;亲属(复数);民间音乐,民谣#adj.传统民间的,民俗的;流传民间的#n.(Folk)(英、匈、捷)福克(人名)
+follow#/ˈfɑːloʊ/#vt.跟随;遵循;追求;密切注意,注视;注意;倾听#vi.跟随;接着#n.跟随;追随
+following#/ˈfɑːloʊɪŋ/#n.下列各项,部下,党羽#adj.下列的,其次的#prep.在...之后
+fond#/fɑːnd/#adj.喜欢的;温柔的;宠爱的#n.(Fond)人名;(法)丰;(瑞典)丰德
+food#/fuːd/#n.食物;养料
+fool#/fuːl/#n.傻瓜,愚人,笨蛋;(旧时宫廷的)小丑,弄臣;受骗者;奶油果泥#vt.欺骗,愚弄,戏弄#vi.开玩笑,犯傻#adj.愚蠢的;傻的
+foolish#/ˈfuːlɪʃ/#adj.愚蠢的;傻的
+foot#/fʊt/#n.脚;英尺;步调;末尾#vi.步行;跳舞;总计#vt.支付;给……换底#n.(Foot)人名;(英)富特
+football#/ˈfʊtbɔːl/#n.足球,橄榄球#vi.踢足球;打橄榄球
+footstep#/ˈfʊtstep/#n.脚步;脚步声;足迹
+for#/fər,fɔːr/#prep.(表示目的)为了,因为,至于,对于,适合于#conj.因为
+forbid#/fərˈbɪd/#vt.禁止;不准;不允许;<正式>严禁
+forbidden#/fərˈbɪdn/#adj.禁止的,严禁的vbl.forbid的过去分词
+force#/fɔːrs/#n.力量;武力;军队;魄力#vt.促使,推动;强迫;强加#n.(Force)人名;(意)福尔切;(英、法)福斯
+forecast#/ˈfɔːrkæst/#n.(天气、财经等的)预测,预报;预想#v.预报,预测;预示;预言;进行预报,作预测
+forehead#/ˈfɔːrhed,ˈfɔːrəd/#n.额,前额
+foreign#/ˈfɔːrən/#adj.外国的;外交的;异质的;不相关的
+foreigner#/ˈfɔːrənər/#n.外地人,外国人
+foremost#/ˈfɔːrmoʊst/#adj.最重要的;最先的#adv.首先;居于首位地
+foresee#/fɔːrˈsiː/#vt.预见;预知
+forest#/ˈfɔːrɪst/#n.森林,林区;(森林似的)一丛;皇家林地,御猎场#v.植林于;被森林覆盖#n.(Forest)福雷斯特(人名)
+forever#/fərˈevər/#adv.永远;不断地;常常
+forget#/fərˈɡet/#vt.忘记;忽略#vi.忘记#n.(Forget)人名;(法)福尔热
+forgive#/fərˈɡɪv/#vt.原谅;免除(债务、义务等)#vi.表示原谅
+fork#/fɔːrk/#n.叉;餐叉;耙#vt.叉起;使成叉状#vi.分叉;分歧#n.(Fork)人名;(英、德)福克
+form#/fɔːrm/#n.形式,形状;形态,外形;方式;表格#vt.构成,组成;排列,组织;产生,塑造#vi.形成,构成;排列#n.(Form)人名;(英)福姆;(法、德)福尔姆
+formal#/ˈfɔːrml/#adj.正式的;拘谨的;有条理的#n.正式的社交活动;夜礼服#n.(Formal)人名;(法)福马尔
+format#/ˈfɔːrmæt/#n.格式;版式;开本#vt.使格式化;规定…的格式#vi.设计版式
+formation#/fɔːrˈmeɪʃn/#n.形成;构造;编队
+former#/ˈfɔːrmər/#adj.从前的,前者的;前任的#n.模型,样板;起形成作用的人#n.(Former)人名;(法)福尔梅;(德、捷)福尔默
+formidable#/fəˈmɪdəbl/#adj.强大的;可怕的;令人敬畏的;艰难的
+formula#/ˈfɔːrmjələ/#n.[数]公式,准则;配方;婴儿食品
+formulate#/ˈfɔːrmjuleɪt/#vt.规划;用公式表示;明确地表达
+fort#/fɔːrt/#n.堡垒;要塞;(美)边界贸易站#vt.设要塞保卫#vi.构筑要塞#n.(Fort)人名;(法)福尔;(德、英、西、葡、匈)福特
+forth#/fɔːrθ/#adv.向前,向外;自…以后#n.(Forth)人名;(德)福特;(英)福思
+forthcoming#/ˌfɔːrθˈkʌmɪŋ/#adj.即将来临的#n.来临
+fortnight#/ˈfɔːrtnaɪt/#n.两星期
+fortunate#/ˈfɔːrtʃənət/#adj.幸运的;侥幸的;吉祥的;带来幸运的
+fortunately#/ˈfɔːrtʃənətli/#adv.幸运地
+fortune#/ˈfɔːrtʃən/#n.财富;命运;运气#vt.给予财富#vi.偶然发生#n.(Fortune)人名;(英)福琼;(法)福蒂纳
+forty#/ˈfɔːr/#n.四十#adj.四十的;四十个的
+forum#/ˈfɔːrəm/#n.论坛,讨论会;法庭;公开讨论的广场
+forward#/ˈfɔːrwərd/#adj.早的,迅速的,前进的#vt.转寄,促进,运送#adv.向前地,向将来#n.[体](足球等)前锋
+fossil#/ˈfɑːsl/#n.化石;僵化的事物;顽固不化的人#adj.化石的;陈腐的,守旧的
+foster#/ˈfɑːstər/#v.促进;抚育(他人子女一段时间);收养;把(孩子)交托给养父母#adj.代养的,寄养的#n.(Foster)福斯特(人名)
+foul#/faʊl/#adj.犯规的;邪恶的;污秽的;淤塞的#vt.犯规;弄脏;淤塞;缠住,妨害#vi.犯规;腐烂;缠结#n.犯规;缠绕#adv.违反规则地,不正当地
+found#/faʊnd/#vt.创立,建立;创办#v.找到(find的过去分词)
+foundation#/faʊnˈdeɪʃn/#n.基础;地基;基金会;根据;创立
+fountain#/ˈfaʊntn/#n.喷泉,泉水;源泉#n.(Fountain)人名;(英)方丹
+four#/fɔːr/#num.四,四个,第四(卷,章,叶等)
+fourteen#/ˌfɔːrˈːn/#num.十四;十四个;十四岁#n.十四的记号;十四岁;十四点钟#adj.十四的;十四个的;十四岁的
+fourth#/fɔːrθ/#adj.第四的,第四个的;四分之一的#n.第四,月的第四日;四分之一#num.第四
+fox#/fɑːks/#n.狐狸;狡猾的人;狐皮;狐狸精,性感的女子#v.使猜不透;欺骗,使迷惑;耍狡猾手段#n.(Fox)(英、美、德、丹、爱)福克斯(人名)
+fraction#/ˈfrækʃn/#n.分数;部分;小部分;稍微
+fracture#/ˈfræktʃər/#n.破裂,断裂;[外科]骨折#vi.破裂;折断#vt.使破裂
+fragile#/ˈfrædʒl/#adj.脆的;易碎的
+fragment#/ˈfræɡmənt;fræɡˈment/#n.碎片;片段或不完整部分#vt.使成碎片#vi.破碎或裂开
+frame#/freɪm/#n.结构,体格#vt.构成,设计,制定,使适合,陷害#vi.英方有成功希望#n.帧,画面,框架
+framework#/ˈfreɪmwɜːrk/#n.框架,骨架;结构,构架
+France#/fræns/#n.法国;法郎士(姓氏)
+frank#/fræŋk/#adj.坦白的,直率的;老实的#n.免费邮寄特权#vt.免费邮寄#n.(Frank)弗兰克(人名)
+fraud#/frɔːd/#n.欺骗;骗子;诡计#n.(Fraud)人名;(法)弗罗
+free#/friː/#adj.免费的;自由的,不受约束的;[化学]游离的#vt.使自由,解放;释放#adv.自由地;免费#n.(Free)人名;(英)弗里
+freedom#/ˈfriːdəm/#n.自由,自主;直率#n.(Freedom)人名;(英)弗里德姆
+freely#/ˈfriːli/#adv.自由地;免费地;大量地;慷慨地;直率地
+freeze#/friːz/#v.(使)结冰,(使)冷冻,冻结
+freight#/freɪt/#n.货运;运费;船货#v.运送;装货;使充满
+French#/frentʃ/#adj.法国的;法语的;法国人的#n.法国人;法语#n.(美、英、加、澳)弗伦奇(人名)
+frequency#/ˈfriːkwənsi/#n.频率;频繁
+frequent#/ˈfriːkwənt;friˈkwent/#adj.频繁的;时常发生的;惯常的#vt.常到,常去;时常出入于
+frequently#/ˈfriːkwəntli/#adv.频繁地,经常地;时常,屡次
+fresh#/freʃ/#adj.新鲜的;清新的;淡水的;无经验的#n.开始;新生;泛滥#adv.刚刚,才;最新地
+friction#/ˈfrɪkʃn/#n.摩擦,[力]摩擦力
+Friday#/ˈfraɪdeɪ,ˈfraɪdi/#n.星期五
+fridge#/frɪdʒ/#n.电冰箱#n.(Fridge)人名;(英)弗里奇
+friend#/frend/#n.朋友;助手;赞助者#n.(Friend)人名;(英)弗兰德
+friendly#/ˈfrendli/#adj.友好的;亲切的;支持的;融洽的,和睦的#n.友谊赛#n.(Friendly)(英)弗兰德利(人名)
+friendship#/ˈfrendʃɪp/#n.友谊;友爱;友善#n.(Friendship)人名;(英)弗兰德希普
+frighten#/ˈfraɪtn/#vt.使惊吓;吓唬…#vi.害怕,惊恐
+fringe#/frɪndʒ/#n.边缘;穗;刘海#adj.边缘的;附加的#vt.加穗于
+frog#/frɑːɡ/#n.青蛙;[铁路]辙叉;饰扣#vi.捕蛙#n.(Frog)人名;(俄)弗罗格
+from#/frəm,frʌm,frɑːm/#prep.从,今后,来自,由于
+front#/frʌnt/#n.前面;正面;前线#vt.面对;朝向;对付#vi.朝向#adj.前面的;正面的#adv.在前面;向前#n.(Front)人名;(法)弗龙
+frontier#/frʌnˈtɪr/#n.前沿;边界;国境#adj.边界的;开拓的#n.(Frontier)人名;(法)弗龙捷
+frost#/frɔːst/#n.严寒天气,冰冻;霜;冷淡;(非正式)失败#v.结霜于;结霜;受冻,冻坏;在……上撒糖霜#n.(Frost)(英、美、德)弗罗斯特(人名)
+frown#/fraʊn/#vi.皱眉;不同意#vt.皱眉,蹙额#n.皱眉,蹙额
+fruit#/fruːt/#n.水果;产物#vi.结果实#vt.使……结果实#n.(Fruit)人名;(法)弗吕;(英)弗鲁特
+fruitful#/ˈfruːl/#adj.富有成效的;多产的;果实结得多的
+frustrate#/ˈfrʌstreɪt/#vt.挫败;阻挠;使感到灰心#vi.失败;受挫#adj.挫败的;无益的
+fry#/fraɪ/#v.油炸,油煎;(被阳光)灼伤;(非正式)用电刑处死#n.鱼苗;油炸食品;炒杂烩菜;油炸食品聚餐会;炸薯条#n.(Fry)(美)弗赖伊(人名)
+fuel#/ˈuːəl/#n.燃料;刺激因素;(为身体提供能量的)食物#vt.给……提供燃料;刺激,煽动;推动#vi.得到燃料#n.(Fuel)(美)傅爱乐(人名)
+fulfil#/fʊlˈfɪl/#vt.履行;完成;实践;满足
+full#/fʊl/#adj.完全的,完整的;满的,充满的;丰富的;完美的;丰满的;详尽的#adv.十分,非常;完全地;整整#vt.把衣服缝得宽大#n.全部;完整
+fun#/fʌn/#vi.非正式开玩笑#n.乐趣;玩笑
+function#/ˈfʌŋkʃn/#n.功能;[数]函数;职责;盛大的集会#vi.运行;活动;行使职责
+fund#/fʌnd/#n.基金;资金;存款#vt.投资;资助#n.(Fund)人名;(德)丰德
+fundamental#/ˌfʌndəˈmentl/#adj.基本的,根本的#n.基本原理;基本原则
+funeral#/ˈuːnərəl/#n.葬礼;麻烦事#adj.丧葬的,出殡的
+funny#/ˈfʌni/#adj.有趣的,好笑的,滑稽的,奇异的,古怪的#n.滑稽人物
+fur#/fɜːr/#n.皮,皮子;毛皮;软毛#n.水垢#vt.用毛皮覆盖;使穿毛皮服装#n.(Fur)人名;(法)菲尔;(瑞典)富尔
+furious#/ˈfjʊriəs/#adj.激烈的;狂怒的;热烈兴奋的;喧闹的
+furnace#/ˈfɜːrnɪs/#n.火炉,熔炉
+furnish#/ˈfɜːrnɪʃ/#vt.提供;供应;装备
+furniture#/ˈfɜːrnɪtʃər/#n.家具;设备;储藏物
+further#/ˈfɜːrðər/#adv.更远地;远非(如此);进一步地;而且;处于更高阶段#adj.更多的,附加的;更远的;进一步的,深一层的#v.促进,增进,助长
+furthermore#/ˌfɜːrðərˈmɔːr/#adv.此外;而且
+fuse#/fjuːz/#n.保险丝,熔丝#v.熔合
+fusion#/ˈuːʒn/#n.融合;熔化;熔接;融合物;[物]核聚变
+fuss#/fʌs/#n.大惊小怪;反对,抗议;繁琐的手续;(为小事)大发牢骚#v.瞎操心;忙乱;打扰;过分关怀;过于讲究细节;吵闹#n.(Fuss)(美)菲斯(人名)
+future#/ˈuːtʃər/#n.未来;前途;期货;将来时#adj.将来的,未来的
+gain#/ɡeɪn/#n.增加;利润;收获#vt.获得;增加;赚到#vi.增加;获利#n.(Gain)人名;(英、匈、法)盖恩
+galaxy#/ˈɡæləksi/#n.[天]星系;银河系(theGalaxy);一群显赫的人#n.三星智能手机品牌2015年三星中国公布Galaxy的中文名称为“盖乐世”(Galaxy)[复数galaxies]
+gallery#/ˈɡæləri/#n.画廊;走廊;旁听席;地道#vt.在…修建走廊;在…挖地道#vi.挖地道#n.(Gallery)人名;(英)加勒里
+gallon#/ˈɡælən/#n.加仑(容量单位)#n.(Gallon)人名;(法、意、瑞典)加隆
+gamble#/ˈɡæmbl/#v.赌博;打赌;冒险,投机;孤注一掷;冒险假设#n.冒险;赌博;打赌#n.(Gamble)(美)甘布勒(人名)
+game#/ɡeɪm/#n.游戏;比赛;猎物,野味#adj.勇敢的#vi.赌博#n.(Game)人名;(英)盖姆;(法)加姆;(西)加梅
+gang#/ɡæŋ/#n.群;一伙;一组#vt.使成群结队;结伙伤害或恐吓某人#vi.成群结队#n.(Gang)人名;(法)冈;(罗)甘格;(英)甘
+gaol#/dʒeɪl/#n.监狱,监禁(同jail)#v.把……投入监狱,监禁(同jail)#n.(Gaol)(美、印)高娅乐(人名)
+gap#/ɡæp/#n.间隙;缺口;差距;分歧#vi.裂开#vt.使形成缺口
+garage#/ˈɡærɑːʒ/#n.车库;汽车修理厂;飞机库#vt.把……送入车库;把(汽车)开进车库#n.(阿拉伯)贾拉杰(人名)
+garbage#/ˈɡɑːrbɪdʒ/#n.垃圾;废物#n.(Garbage)人名;(法)加尔巴热
+garden#/ˈɡɑːrdn/#n.花园;菜园#vt.栽培花木#vi.从事园艺;在园中种植#n.(Garden)人名;(英、意、巴基)加登
+gardener#/ˈɡɑːrdnər/#n.园丁;花匠;园艺家#n.(Gardener)人名;(英)加德纳
+garment#/ˈɡɑːrmənt/#n.衣服,服装;外表,外观#vt.给…穿衣服#n.(Garment)人名;(英)加门特
+gas#/ɡæs/#n.气体;[矿业]瓦斯;汽油;毒气#vt.加油;毒(死)#vi.加油;放出气体;空谈#n.(Gas)人名;(法、德、西)加斯
+gaseous#/ˈɡæsiəs,ˈɡeɪsiəs/#adj.气态的,气体的;无实质的
+gasoline#/ˈɡæsəliːn/#n.汽油
+gasp#/ɡæsp/#vi.喘气;喘息;渴望#vt.气喘吁吁地说;喘着气说话#n.喘气
+gate#/ɡeɪt/#n.大门;出入口;门道#vt.给…装大门#n.(Gate)人名;(英)盖特;(法、瑞典)加特
+gather#/ˈɡæðər/#vt.收集;收割;使…聚集;使…皱起#vi.聚集;化脓;皱起#n.聚集;衣褶;收获量#n.(Gather)人名;(德)加特
+gauge#/ɡeɪdʒ/#n.计量器;标准尺寸;容量规格;针织物的细度#vt.测量;估计;给……定规格
+gay#/ɡeɪ/#adj.同性恋的;与同性恋相关的;快乐的;放荡的;艳丽的#n.同性恋者#n.(Gay)(西)加伊;(英、法、瑞典、毛里塔)盖伊(人名)
+gaze#/ɡeɪz/#vi.凝视;注视#n.凝视;注视#n.(Gaze)(俄、意)加泽;(德)加策(人名)
+gear#/ɡɪr/#n.齿轮,传动装置#v.调整,(使)适合,换档
+gene#/dʒiːn/#n.[遗]基因,遗传因子
+general#/ˈdʒenrəl/#adj.一般的,普通的;综合的;大体的#n.一般;将军,上将;常规#n.(General)人名;(英)杰纳勒尔
+generalize#/ˈdʒenrəlaɪz/#vt.概括;推广;使...一般化#vi.形成概念
+generally#/ˈdʒenrəli/#adv.通常;普遍地,一般地
+generate#/ˈdʒenəreɪt/#vt.使形成;发生;生殖;产生物理反应
+generation#/ˌdʒenəˈreɪʃn/#n.一代;产生;一代人;生殖
+generator#/ˈdʒenəreɪtər/#n.发电机;发生器;生产者
+generous#/ˈdʒenərəs/#adj.慷慨的,大方的;宽宏大量的;有雅量的
+genetic#/dʒəˈnetɪk/#adj.遗传的;基因的;起源的
+genius#/ˈdʒiːniəs/#n.天才,天赋;精神#n.(Genius)妙选
+gentle#/ˈdʒentl/#adj.温和的;文雅的#vt.使温和,使驯服#n.蛆,饵#n.(Gentle)人名;(英)金特尔
+gentleman#/ˈdʒentlmən/#n.先生;绅士;有身份的人
+gently#/ˈdʒentli/#adv.轻轻地;温柔地,温和地
+genuine#/ˈdʒenjuɪn/#adj.真实的,真正的;诚恳的
+geography#/dʒiˈɑːɡrəfi/#n.地理;地形
+geology#/dʒiˈɑːlədʒi/#n.地质学;地质情况
+geometry#/dʒiˈɑːmətri/#n.几何学几何结构
+germ#/dʒɜːrm/#n.[植]胚芽,萌芽;细菌#vi.萌芽
+German#/ˈdʒɜːrmən/#adj.德国的;德语的,德国人的#n.德语;德国人;德裔,有德国血统的人
+Germany#/ˈdʒɜːrməni/#n.德国
+gesture#/ˈdʒestʃər/#n.姿态;手势#vi.作手势;用动作示意#vt.用动作表示
+get#/ɡet/#vt.使得;获得;受到;变成#n.生殖;幼兽#vi.成为;变得;到达
+ghost#/ɡoʊst/#n.鬼,幽灵#vt.作祟于;替…捉刀;为人代笔#vi.替人代笔
+giant#/ˈdʒaɪənt/#n.巨人;伟人;巨大的动物;巨型植物;大公司;(天文)巨星#adj.巨大的;巨人般的;伟大的
+gift#/ɡɪft/#n.礼物;天赋;赠品#vt.赋予;向…赠送#n.(Gift)人名;(英)吉夫特
+gigantic#/dʒaɪˈɡæntɪk/#adj.巨大的,庞大的
+girl#/ɡɜːrl/#n.女孩;姑娘,未婚女子;女职员,女演员;(男人的)女朋友#n.(Girl)(捷)吉尔(人名)
+give#/ɡɪv/#vt.给;产生;让步;举办;授予#n.弹性;弯曲;伸展性#vi.捐赠;面向;有弹性;气候转暖#n.(Give)人名;(意)吉韦
+given#/ˈɡɪvn/#adj.赠予的;沉溺的;规定的#prep.考虑到#v.给予(give的过去分词)#n.(Given)人名;(英、土)吉文
+glad#/ɡlæd/#adj.高兴的;乐意的#vt.使......高兴#n.(Glad)人名;(塞、瑞典)格拉德;(英)格莱德;(法、挪)格拉
+glance#/ɡlæns/#vi.扫视,匆匆一看#n.一瞥,眼光,匆匆一看
+glare#/ɡler/#v.怒目而视,瞪眼看;发出刺眼的光#n.怒视,瞪眼;刺眼;耀眼的光;受公众注目;张扬;俗艳#adj.光滑的
+glass#/ɡlæs/#n.玻璃;玻璃制品;镜子#vt.反映;给某物加玻璃#vi.成玻璃状#n.(Glass)人名;(英、法、德、意)格拉斯
+gleam#/ɡliːm/#n.微光;闪光;瞬息的一现#vi.闪烁;隐约地闪现#vt.使闪烁;使发微光
+glide#/ɡlaɪd/#vi.滑翔;滑行;悄悄地走;消逝#vt.使滑行;使滑动#n.滑翔;滑行;滑移;滑音
+glimpse#/ɡlɪmps/#n.一瞥,一看#vi.瞥见#vt.瞥见
+glitter#/ˈɡlɪtər/#v.闪光;闪烁#n.闪光;灿烂;华而不实;(眼中的)光亮
+global#/ˈɡloʊbl/#adj.全球的;总体的;球形的
+globe#/ɡloʊb/#n.地球;地球仪;球体#vt.使…成球形#vi.成球状
+gloomy#/ˈɡluːmi/#adj.黑暗的;沮丧的;阴郁的
+glorious#/ˈɡlɔːriəs/#adj.光荣的;辉煌的;极好的
+glory#/ˈɡlɔːri/#n.光荣,荣誉;赞颂#vi.自豪,骄傲;狂喜#n.(Glory)人名;(法)格洛里
+glove#/ɡlʌv/#n.手套#vt.给…戴手套
+glow#/ɡloʊ/#vi.发光,发热
+glue#/ɡluː/#n.胶,胶水#v.(用胶水)粘合;(非正式)专注于
+go#/ɡoʊ/#vi.走;达到;运转;趋于#n.去;进行;尝试#vt.忍受;出产;以……打赌
+goal#/ɡoʊl/#n.目标;球门,得分数;终点#vi.攻门,射门得分
+goat#/goʊt/#n.山羊;替罪羊(美俚);色鬼(美俚)
+God#/ɡɑːd/#n.神;(大写首字母时)上帝#vt.膜拜,崇拜#n.(God)人名;(索、阿拉伯)古德
+gold#/ɡoʊld/#n.金,黄金;金色;金币#adj.金的,金制的;金色的#n.(Gold)人名;(英、法、德、西、罗、捷、瑞典)戈尔德
+golden#/ˈɡoʊldən/#adj.金色的,黄金般的;珍贵的;金制的#n.(Golden)人名;(英、法、罗、德、瑞典)戈尔登
+golf#/ɡɑːlf/#n.高尔夫球;高尔夫球运动#vi.打高尔夫球#n.(Golf)人名;(西、挪)戈尔夫
+good#/ɡʊd/#adj.好的;优良的;愉快的;虔诚的#n.好处;善行;慷慨的行为#adv.好#n.(Good)人名;(英)古德;(瑞典)戈德
+goodbye#/ˌɡʊdˈbaɪ/#int.再见;告别
+goodness#/ˈɡʊdnəs/#n.善良,美德;仁慈,慷慨;精华,养分#int.(表示吃惊或愤怒)天哪;上帝的替代语
+goods#/ɡʊdz/#n.商品;动产;合意的人;真本领
+goose#/ɡuːs/#n.鹅;鹅肉;傻瓜;雌鹅#vt.突然加大油门;嘘骂#n.(Goose)人名;(德)戈泽;(英)古斯
+gorgeous#/ˈɡɔːrdʒəs/#adj.华丽的,灿烂的;极好的
+gossip#/ˈɡɑːsɪp/#n.小道传闻;随笔;爱说长道短的人#vi.闲聊;传播流言蜚语
+govern#/ˈɡʌvərn/#vt.管理;支配;统治;控制#vi.居支配地位;进行统治#n.(Govern)人名;(英)戈文
+government#/ˈɡʌvərnmənt/#n.政府;政体;管辖
+governor#/ˈɡʌvərnər/#n.主管人员;统治者,管理者;[自]调节器;地方长官
+gown#/ɡaʊn/#n.长袍,长外衣;礼服;睡袍;法衣#vt.使穿睡衣
+grab#/ɡræb/#vt.攫取;霸占;将…深深吸引#vi.攫取;夺取#n.攫取;霸占;夺取之物
+grace#/ɡreɪs/#n.优雅;恩惠;魅力;慈悲#vt.使优美#n.(Grace)人名;(英)格雷斯,格雷丝(女名);(法)格拉斯
+graceful#/ˈɡreɪsfl/#adj.优雅的;优美的
+gracious#/ˈɡreɪʃəs/#adj.亲切的;高尚的;和蔼的;雅致的#int.天哪;哎呀
+grade#/ɡreɪd/#n.年级;等级;成绩;级别;阶段#vt.评分;把…分等级#vi.分等级;逐渐变化#n.(Grade)人名;(英)格雷德;(法、德、西、葡、塞、瑞典)格拉德
+gradual#/ˈɡrædʒuəl/#adj.逐渐的;平缓的#n.弥撒升阶圣歌集
+gradually#/ˈɡrædʒuəli/#adv.逐步地;渐渐地
+graduate#/ˈɡrædʒuət/#n.(大学)毕业生,研究生#v.(使)(大学)毕业
+grain#/ɡreɪn/#n.粮食;颗粒;谷物;纹理;晶粒;旧格令(质量单位,等于0.0648克)#vi.成谷粒#vt.使成谷粒#n.(Grain)(法)格兰(人名)
+grammar#/ˈɡræmər/#n.语法;语法书
+grammatical#/ɡrəˈmætɪkl/#adj.文法的;符合语法规则的
+gramme#/ɡræm/#n.克#n.(Gramme)人名;(法)格拉姆
+grand#/ɡrænd/#adj.宏伟的;豪华的;极重要的#n.大钢琴;一千美元#n.(Grand)人名;(法)格朗;(英、瑞典)格兰德
+granddaughter#/ˈɡrændɔːtər/#n.孙女;外孙女
+grandfather#/ˈɡrænfɑːðər/#n.祖父;始祖#vt.不受新规定限制
+grandmother#/ˈɡrænmʌðər/#n.祖母;女祖先#vt.当…的祖母#vi.当祖母
+grandson#/ˈɡrænsʌn/#n.孙子;外孙
+grant#/ɡrænt/#v.(合法地)授予,允许;(勉强)承认,同意#n.(政府)拨款,补助金;授予,给予;合法转让,正式授予#n.(Grant)(美)格朗(人名)
+Grant#/ɡrænt/#n.(美)格朗(人名)#v.(grant)(正式)准许,授予;(勉强)承认,同意#n.(grant)拨款;正式授予;合法转让
+grape#/ɡreɪp/#n.葡萄;葡萄酒;葡萄树;葡萄色#n.(Grape)人名;(法)格拉普;(德、瑞典)格拉佩
+graph#/ɡræf/#n.图表;曲线图#vt.用曲线图表示#n.(Graph)人名;(英)格拉夫
+grasp#/ɡræsp/#v.抓牢,握紧;试图抓住;理解,领悟;毫不犹豫地抓住(机会)#n.抓,握;理解,领会;力所能及,把握;权力,控制
+grass#/ɡræs/#n.草;草地,草坪#vt.放牧;使……长满草;使……吃草#vi.长草#n.(Grass)人名;(法、德、俄、瑞典、英)格拉斯
+grateful#/ˈɡreɪtfl/#adj.感谢的;令人愉快的,宜人的
+gratitude#/ˈɡrætɪtuːd/#n.感谢(的心情);感激
+grave#/ɡreɪv;ɡrɑːv/#n.墓穴,坟墓#adj.严重的,(颜色)黯淡的,(声音)低沉的#v.雕刻,铭记
+gravity#/ˈɡrævəti/#n.重力,地心引力;严重性;庄严
+gray#/ɡreɪ/#adj.灰色的;苍白的;灰白头发的;阴郁的#n.灰色;暗淡的光线#vi.成为灰色或灰白#vt.使成灰色或灰白#n.(Gray)人名;(意)格拉伊;(英、法、葡、瑞典)格雷
+graze#/ɡreɪz/#vt.放牧;擦伤#vi.吃草;擦伤#n.放牧;轻擦
+grease#/ɡriːs/#n.油脂;润滑油;(非正式)贿赂#v.涂脂于;给……加润滑油;(非正式)向某人行贿
+great#/ɡreɪt/#adj.伟大的,重大的;极好的,好的;主要的#n.大师;大人物;伟人们
+greatly#/ˈɡreɪtli/#adv.很,大大地;非常
+greedy#/ˈɡriːdi/#adj.贪婪的;贪吃的;渴望的
+Greek#/ɡriːk/#n.希腊语;希腊人;(有希腊字母名称的)大学生联谊会会员#adj.希腊的;希腊人的,希腊语的#n.(美)格雷克(人名)
+green#/ɡriːn/#adj.绿色的;青春的#n.绿色;青春#vt.使…变绿色#vi.变绿色#n.(Green)人名;(英、意)格林;(瑞典、芬)格伦
+greenhouse#/ˈɡriːnhaʊs/#n.温室造成温室效应的
+greet#/ɡriːt/#vt.欢迎,迎接;致敬,致意;映入眼帘#n.(Greet)人名;(英)格里特
+greeting#/ˈɡriːtɪŋ/#n.问候,招呼;祝贺#v.致敬,欢迎(greet的现在分词)
+grey#/ɡreɪ/#adj.灰色的;灰白的#vt.使变成灰色;使变老#vi.变成灰色;老化#n.灰色#n.(Grey)人名;(英、法)格雷
+grief#/ɡriːf/#n.悲痛;忧伤;不幸
+grieve#/ɡriːv/#vt.使悲伤,使苦恼#vi.悲痛,哀悼#n.(Grieve)人名;(英)格里夫
+grim#/ɡrɪm/#adj.严肃的;令人沮丧的;阴沉的;糟糕的#n.(Grim)(英、德、俄、捷、匈)格里姆(人名)
+grin#/ɡrɪn/#v.露齿而笑,咧着嘴笑;龇牙咧嘴#n.露齿笑,咧着嘴笑#n.(Grin)(俄、美)格林(人名)
+grind#/ɡraɪnd/#vt.磨碎;磨快#vi.磨碎;折磨#n.磨;苦工作#n.(Grind)人名;(法、德)格林德
+grip#/ɡrɪp/#n.紧握;柄;支配;握拍方式;拍柄绷带#vt.紧握;夹紧#vi.抓住#n.(Grip)人名;(英、瑞典)格里普
+groan#/ɡroʊn/#vi.呻吟;抱怨;发吱嘎声#vt.呻吟;抱怨#n.呻吟;叹息;吱嘎声
+grocer#/ˈɡroʊsər/#n.杂货店;食品商
+grocery#/ˈɡroʊsəri/#n.食品杂货店;(groceries)食品杂货
+grope#/ɡroʊp/#vi.摸索;探索#vt.摸索#n.摸索;触摸#n.(Grope)人名;(德)格罗佩
+gross#/ɡroʊs/#adj.总共的;粗野的;恶劣的;显而易见的;恶心的#vt.总共收入#n.总额,总数#n.(Gross)人名;(英、法、德、意、葡、西、俄、芬、罗、捷、匈)格罗斯
+ground#/ɡraʊnd/#n.地面,土地,战场,场所,范围#adj.土地的,地面上的#vt.把...放在地上,使搁浅,打基础#vi.具有基础,着陆,搁浅vbl.grind的过去式
+group#/ɡruːp/#n.组;团体#adj.群的;团体的#vi.聚合#vt.把…聚集;把…分组
+grow#/ɡroʊ/#vi.发展;生长;渐渐变得…#vt.使生长;种植;扩展#n.(Grow)(英)格罗(人名)
+growth#/ɡroʊθ/#n.增长;发展;生长;种植
+guarantee#/ˌɡærənˈː/#n.保证;担保;保证人;保证书;抵押品#vt.保证;担保
+guard#/ɡɑːrd/#n.守卫;警戒;护卫队;防护装置#vi.警惕#vt.保卫;监视#n.(Guard)人名;(英)格尔德
+guardian#/ˈɡɑːrdiən/#n.[法]监护人,保护人;守护者#adj.守护的#n.(Guardian)人名;(西)瓜尔迪安
+guess#/ɡes/#vt.猜测;认为;推测;猜中#vi.猜;推测;猜中#n.猜测;推测#n.(Guess)人名;(英)格斯;(德)居斯
+guest#/ɡest/#n.客人,宾客;顾客#vt.款待,招待#vi.作客,寄宿#adj.客人的;特邀的,客座的#n.(Guest)人名;(英)格斯特
+guidance#/ˈɡaɪdns/#n.指导,引导;领导
+guide#/ɡaɪd/#n.指南;向导;入门书#vt.引导;带领;操纵#vi.担任向导#n.(Guide)人名;(法、葡)吉德
+guideline#/ˈɡaɪdlaɪn/#n.指导方针参考
+guilty#/ˈɡɪlti/#adj.有罪的;内疚的
+gulf#/ɡʌlf/#n.海湾;深渊;分歧;漩涡#vt.吞没
+gum#/ɡʌm/#n.口香糖;树胶;橡皮;牙龈;牙床#vt.用胶粘,涂以树胶;使……有粘性#n.(Gum)古姆(人名)
+gun#/ɡʌn/#n.枪支;枪状物;持枪歹徒#vi.用枪射击;加大油门快速前进#vt.向…开枪;开大油门#n.(Gun)人名;(瑞典)贡;(英)冈;(俄、意)古恩
+gunpowder#/ˈɡʌnpaʊdər/#n.火药;有烟火药
+guy#/ɡaɪ/#n.男人,家伙#vt.嘲弄,取笑#vi.逃跑#n.(Guy)人名;(西)吉;(法)居伊;(英)盖伊
+gymnasium#/dʒɪmˈneɪziəm/#n.体育馆;健身房
+habit#/ˈhæbɪt/#n.习惯,习性;嗜好#vt.使穿衣
+habitual#/həˈbɪtʃuəl/#adj.习惯的;惯常的;习以为常的
+hair#/her/#n.头发;毛发;些微
+haircut#/ˈherkʌt/#n.理发;发型
+half#/hæf/#n.一半;半场;半学年#adv.一半地;部分地#adj.一半的;不完全的;半途的#n.(Half)人名;(阿拉伯)哈勒夫;(德)哈尔夫;(英)哈夫
+hall#/hɔːl/#n.过道,走廊;门厅;会堂,大厅;学生宿舍#n.(Hall)(土)哈勒;(德、波、丹、芬、瑞典)哈尔;(英)霍尔;(法)阿尔(人名)
+halt#/hɔːlt/#n.停止,暂停,中断#vt.使停止,使立定#vi.立定,停止,踌躇,有缺点
+hamburger#/ˈhæmbɜːrɡər/#n.汉堡包,火腿汉堡;牛肉饼,肉饼;碎牛肉#n.(Hamburger)人名;(英)汉堡;(瑞典)汉布里耶;(德)汉布格尔
+hammer#/ˈhæmər/#n.铁锤,槌,锤子#v.锤击,锤打
+hamper#/ˈhæmpər/#vt.妨碍;束缚;使困累#n.食盒,食篮;阻碍物
+hand#/hænd/#n.手,手艺;帮助;指针;插手#vt.传递,交给;支持;搀扶#n.(Hand)人名;(英、瑞典)汉德
+handbook#/ˈhændbʊk/#n.手册;指南
+handful#/ˈhændfʊl/#n.少数;一把;棘手事
+handicap#/ˈhændikæp/#n.障碍;不利条件,不利的因素#vt.妨碍,阻碍;使不利
+handkerchief#/ˈhæŋkətʃɪf/#n.手帕;头巾,围巾
+handle#/ˈhændl/#n.柄,把手,把柄,口实,手感#vt.触摸,运用,买卖,处理,操作#vi.搬运,易于操纵#n.[计]句柄
+handsome#/ˈhænsəm/#adj.(男子)英俊的;可观的;大方的,慷慨的;健美而端庄的
+handwriting#/ˈhændraɪtɪŋ/#n.笔迹;书法;书写;手稿#v.亲手写(handwrite的ing形式)
+handy#/ˈhændi/#adj.有用的;便利的;手边的;手巧的,灵活的#n.(Handy)(美、印、加)汉迪(人名)
+hang#/hæŋ/#n.悬挂的方式,(动作的)暂停,中止#vt.悬挂,附着,装饰,绞死,踌躇,使悬而未决,垂下#vi.悬着,垂下,被绞死,悬而不决
+happen#/ˈhæpən/#vi.发生;碰巧;偶然遇到
+happiness#/ˈhæpinəs/#n.幸福
+happy#/ˈhæpi/#adj.幸福的;高兴的;巧妙的#n.(Happy)人名;(英、瑞典、喀)哈皮
+harbour#/ˈhɑːrbər/#n.(=harbor)海港
+hard#/hɑːrd/#adj.硬的,坚固的,(问题,工作等)困难的,艰苦的,猛烈的,确实的#adv.努力地,辛苦地,坚硬地,牢固地,接近地,猛烈地
+harden#/ˈhɑːrdn/#v.(使)变硬,变坚固;更严肃;(使)变坚强;(使)变冷酷;变明确;(股票等)升水#n.(Harden)(美、英、加、瑞典)哈登(人名)
+hardly#/ˈhɑːrdli/#adv.几乎不,简直不;刚刚
+hardship#/ˈhɑːrdʃɪp/#n.困苦;苦难;艰难险阻
+hardware#/ˈhɑːrdwer/#n.计算机硬件;五金器具
+hare#/her/#n.野兔#n.(Hare)人名;(印)哈雷;(英)黑尔;(法)阿尔
+harm#/hɑːrm/#n.伤害;损害#vt.伤害;危害;损害#n.(Harm)人名;(德)哈尔姆
+harmful#/ˈhɑːrmfl/#adj.有害的;能造成损害的
+harmony#/ˈhɑːrməni/#n.协调;和睦;融洽;调和#n.(Harmony)人名;(英)哈莫尼
+harness#/ˈhɑːrnɪs/#n.马具;背带,吊带;甲胄;挽具状带子;降落伞背带;日常工作#v.治理,利用;套;驾驭;披上甲胄;将(两只动物)拴在一起
+harsh#/hɑːrʃ/#adj.严厉的;严酷的;刺耳的;粗糙的;刺目的;丑陋的#n.(Harsh)哈什(人名)
+harvest#/ˈhɑːrvɪst/#n.收获;产量;结果#vt.收割;得到#vi.收割庄稼
+haste#/heɪst/#n.匆忙;急忙;轻率#vi.匆忙;赶紧#vt.赶快#n.(Haste)人名;(英)黑斯特;(法)阿斯特
+hasten#/ˈheɪsn/#vt.加速;使赶紧;催促#vi.赶快;急忙
+hasty#/ˈheɪsti/#adj.轻率的;匆忙的;草率的;懈怠的#n.(Hasty)人名;(英)黑斯蒂[比较级hastier最高级hastiest]
+hat#/hæt/#n.帽子#vt.给……戴上帽子#vi.供应帽子;制造帽子#n.(Hat)(中)(广东话·威妥玛)核(人名)
+hatch#/hætʃ/#n.孵化;舱口#vt.孵;策划#vi.孵化#n.(Hatch)(西)阿奇;(英)哈奇(人名)
+hate#/heɪt/#vt.憎恨;厌恶;遗憾#vi.仇恨#n.憎恨;反感#n.(Hate)人名;(法)阿特
+hateful#/ˈheɪtfl/#adj.可憎的;可恨的;可恶的
+hatred#/ˈheɪtrɪd/#n.憎恨;怨恨;敌意
+haul#/hɔːl/#n.用力拖拉,拖,拉,捕获物,努力得到的结果,(尤指)一网捕获的鱼量,拖运距离#vi.拖,拉,改变方向,改变主意#vt.拖拉,拖运
+haunt#/hɔːnt/#vt.常出没于…;萦绕于…;经常去…#vi.出没;作祟#n.栖息地;常去的地方
+have#/həv,əv,hæv/#vt.有;让;拿;从事;允许aux.已经#n.(Have)人名;(芬)哈韦;(德)哈弗
+hawk#/hɔːk/#n.鹰;鹰派人物;掠夺的人;灰泥托板#v.叫卖;清嗓子;严密监视;放鹰袭击;飞行觅食#n.(Hawk)奥克(人名)
+hay#/heɪ/#n.干草#vt.把晒干#vi.割草晒干
+hazard#/ˈhæzərd/#n.冒险,危险,冒险的事#vt.冒...的危险,赌运气,使遭危险
+he#/hi,iː,i,hiː/#pron.他;(泛指的)人;上帝#n.男性,男子;雄性动物#n.(He)(中、美、丹)赫(人名)
+head#/hed/#n.头,头脑,领袖,(队伍,名单等)最前的部分,人,顶点#vt.作为...的首领,朝向,前进,用头顶#vi.成头状物,出发#adj.头的,主要的
+headache#/ˈhedeɪk/#n.头痛;麻烦;令人头痛之事
+heading#/ˈhedɪŋ/#n.标题
+headline#/ˈhedlaɪn/#n.大标题;内容提要;栏外标题;头版头条新闻#vt.给…加标题;使成为注意中心;大力宣传
+headmaster#/ˌhedˈmæstər/#n.校长
+headquarters#/ˈhedkwɔːrtərz/#n.总部;指挥部;司令部
+heal#/hiːl/#vt.治愈,痊愈;和解#vi.痊愈#n.(Heal)人名;(英)希尔
+health#/helθ/#n.健康;卫生;保健;兴旺
+healthy#/ˈhelθi/#adj.健康的,健全的;有益于健康的
+heap#/hiːp/#n.堆;许多;累积#vt.堆;堆积#vi.堆起来#n.(Heap)人名;(芬)海亚普;(东南亚国家华语)协;(英)希普
+hear#/hɪr/#vt.听到,听;听说;审理#vi.听;听见
+hearing#/ˈhɪrɪŋ/#n.听力;审讯,听讯#v.听见(hear的ing形式)#n.(Hearing)人名;(英)希尔林
+heart#/hɑːrt/#n.心脏;感情;勇气;心形;要点#vt.鼓励;铭记#vi.结心#n.(Heart)人名;(英)哈特
+heat#/hiːt/#n.高温;压力;热度;热烈#vt.使激动;把…加热
+heating#/ˈhiːtɪŋ/#n.[热]加热;[建]供暖;暖气设备#adj.加热的;供热的#v.[热]加热(heat的现在分词)
+heave#/hiːv/#vt.举起;使起伏;投掷;恶心;发出(叹息等)#vi.起伏;举起;喘息;呕吐#n.举起;起伏;投掷;一阵呕吐
+heaven#/ˈhevn/#n.天堂;天空;极乐#n.(Heaven)(英)希文(人名)
+heavily#/ˈhevɪli/#adv.在很大程度上;严重地;大量地;以猛力,沉重地;缓慢又高声地;缓慢而忧郁地,悲伤地;令人心情沉重
+heavy#/ˈhevi/#adj.沉重的;繁重的,巨大的;拥挤的;阴沉的#n.重物;严肃角色#adv.大量地;笨重地
+hedge#/hedʒ/#n.树篱;防止损失的手段;模糊措辞;障碍#v.用树篱笆围住;避免作正面答复;避免损失;限制#n.(Hedge)(美、英、加、澳、印、法)赫奇(人名)
+heel#/hiːl/#n.脚后跟;踵#vt.倾侧#vi.倾侧#n.(Heel)人名;(德)黑尔
+height#/haɪt/#n.高地;高度;身高;顶点
+heighten#/ˈhaɪtn/#vt.提高;增高;加强;使更显著#vi.升高;变强
+heir#/er/#n.[法]继承人;后嗣;嗣子
+helicopter#/ˈhelɪkɑːptər/#n.[航]直升飞机#vi.[航]乘直升飞机#vt.由直升机运送
+hell#/hel,ˈheləvə/#n.地狱,苦境,阴间,地狱中的人,训斥#vi.狂饮,飞驰#int.该死!
+hello#/həˈləʊ/#int.喂;哈罗,你好,您好(表示问候,惊奇或唤起注意时的用语)#n.(Hello)(法)埃洛(人名)
+helmet#/ˈhelmɪt/#n.钢盔,头盔#n.(Helmet)人名;(德)黑尔梅特
+help#/help/#vt.帮助;促进;治疗;补救#n.帮助;补救办法;帮忙者;有益的东西#vi.帮助;有用;招待#n.(Help)人名;(芬)海尔普
+helpful#/ˈhelpfl/#adj.有帮助的;有益的
+helpless#/ˈhelpləs/#adj.无助的;无能的;没用的
+hemisphere#/ˈhemɪsfɪr/#n.半球
+hen#/hen/#n.母鸡;女人;雌禽#n.(Hen)人名;(日)边(姓);(法)昂;(波、柬)亨
+hence#/hens/#adv.因此;今后
+henceforth#/ˌhensˈfɔːrθ/#adv.从此以后
+her#/hə(r)/#pron.她(she的宾格);她的(she的所有格);她(指某个国家;一艘船)#n.(法)埃尔(人名)
+herd#/hɜːrd/#n.兽群,畜群;放牧人#vi.成群,聚在一起#vt.放牧;使成群#n.(Herd)人名;(英、芬)赫德
+here#/hɪr/#adv.在这里;此时#int.嘿!;喂!#n.这里#n.(Here)人名;(罗)赫尔施
+heritage#/ˈherɪtɪdʒ/#n.遗产;传统;继承物;继承权#n.(Heritage)人名;(英)赫里蒂奇
+hero#/ˈhɪroʊ,ˈhiːroʊ/#n.英雄;男主角,男主人公
+heroic#/həˈroʊɪk/#adj.英雄的;英勇的;记叙英雄及其事迹的;夸张的#n.史诗;英勇行为
+heroine#/ˈheroʊɪn/#n.女主角;女英雄;女杰出人物
+hers#/hɜːrz,ɜːrz/#pron.(上文提过的女性)她的,属于她的#n.(Hers)(法、美、英)埃尔(人名)
+herself#/həˈself/#pron.她自己(she的反身代词);她亲自
+hesitate#/ˈhezɪteɪt/#vi.踌躇,犹豫;不愿#vt.踌躇,犹豫;有疑虑,不愿意
+hi#/haɪ/#int.嗨!(表示问候或用以唤起注意)#n.(Hi)人名;(柬)希
+hide#/haɪd/#vt.隐藏;隐瞒;鞭打#vi.隐藏#n.躲藏;兽皮;躲藏处
+hierarchy#/ˈhaɪərɑːrki/#n.层级;等级制度
+high#/haɪ/#adj.高的;高级的;崇高的;高音调的#n.高水平;天空;由麻醉品引起的快感;高压地带#adv.高;奢侈地#n.(High)人名;(英)海伊
+highlight#/ˈhaɪlaɪt/#v.突出;强调;使显著;加亮;着亮彩于(头发)#n.最精彩的部分;最重要的事情;强光部分
+highly#/ˈhaɪli/#adv.高度地;非常;非常赞许地
+highway#/ˈhaɪweɪ/#n.公路,大路;捷径
+hill#/hɪl/#n.小山;丘陵;斜坡;山冈#n.(Hill)(法、西)伊尔;(德、英、匈、捷、罗、芬、瑞典)希尔(人名)
+hillside#/ˈhɪlsaɪd/#n.山坡,山腹;山腰
+him#/hɪm,ɪm/#pron.他(宾格)#n.(Him)人名;(东南亚国家华语)欣;(柬)亨;(中)谦(广东话·威妥玛)
+himself#/hɪmˈself/#pron.他自己;他亲自,他本人
+hinder#/ˈhɪndər/#vi.成为阻碍#vt.阻碍;打扰#adj.后面的#n.(Hinder)人名;(芬)欣德
+hinge#/hɪndʒ/#n.铰链,折叶;关键,转折点;枢要,中枢#v.用铰链连接;依…为转移;给…安装铰链;(门等)装有蝶铰
+hint#/hɪnt/#n.暗示;线索#vt.暗示;示意#vi.示意#n.(Hint)人名;(英)欣特;(法)安特
+hire#/ˈhaɪər/#v.租用;聘用;临时聘用#n.租借;新雇员;租金#n.(Hire)(印、美)希尔(人名)
+his#/hɪz,ɪz/#pron.他的#n.(His)人名;(法)伊斯
+historian#/hɪˈstɔːriən/#n.历史学家
+historic#/hɪˈstɔːrɪk/#adj.有历史意义的;历史上著名的
+historical#/hɪˈstɔːrɪkl/#adj.历史的;史学的;基于史实的
+history#/ˈhɪstri/#n.历史,历史学;历史记录;来历
+hit#/hɪt/#vt.打击;袭击;碰撞;偶然发现;伤…的感情#vi.打;打击;碰撞;偶然碰上#n.打;打击;(演出等)成功;讽刺
+hitherto#/ˌhɪðərˈtuː/#adv.迄今;至今
+hobby#/ˈhɑːbi/#n.嗜好;业余爱好#n.(Hobby)人名;(英)霍比
+hoist#/hɔɪst/#v.升起,吊起;抬高,举起#n.起重机;吊车;升降机;升起,增加;信号旗;旗宽#n.(Hoist)(美、印、英、加)霍伊斯特(人名)
+hold#/hoʊld/#vt.持有;拥有;保存;拘留;约束或控制;召开,举行#vi.支持;有效;持续#n.控制;保留#n.(Hold)人名;(英、德、捷)霍尔德
+hole#/hoʊl/#n.洞,孔;洞穴,穴;突破口#vi.凿洞,穿孔;(高尔夫球等)进洞#vt.凿洞#n.(Hole)人名;(瑞典、挪)霍勒;(英)霍尔
+holiday#/ˈhɑːlədeɪ/#n.假日;节日;休息日#vi.外出度假#n.(Holiday)人名;(英)霍利迪
+hollow#/ˈhɑːloʊ/#adj.空的;中空的,空腹的;凹的;虚伪的#n.洞;山谷;窟窿#vt.使成为空洞#vi.形成空洞#adv.彻底地;无用地#n.(Hollow)人名;(英)霍洛
+holy#/ˈhoʊli/#adj.圣洁的,神圣的;至善的#n.神圣的东西(俚)太棒了#n.(Holy)人名;(英、德、匈)霍利
+home#/hoʊm/#n.家,住宅;产地;家乡;避难所#adv.在家,回家;深入地#adj.国内的,家庭的;有效的#vt.归巢,回家#n.(Home)人名;(德、芬)霍梅;(英、尼)霍姆
+homogeneous#/ˌhoʊməˈdʒiːniəs/#adj.均匀的;[数]齐次的;同种的;同类的,同质的
+honest#/ˈɑːnɪst/#adj.诚实的,实在的;可靠的;坦率的
+honesty#/ˈɑːnəs/#n.诚实,正直
+honey#/ˈhʌni/#n.蜂蜜;宝贝;甜蜜#adj.甘美的;蜂蜜似的#vt.对…说甜言蜜语;加蜜使甜#vi.奉承;说甜言蜜语#n.(Honey)人名;(英)霍尼
+honeymoon#/ˈhʌnimuːn/#n.蜜月;蜜月假期;(新生事物、新建关系等的)短暂的和谐时期#vi.度蜜月
+honour#/ˈɑːnər/#n.荣誉;尊敬;勋章#vt.尊敬;[金融]承兑;承兑远期票据#n.(Honour)人名;(英)昂纳
+honourable#/ˈɑːnərəbl/#adj.荣誉的;值得尊敬的;表示尊敬的;正直的(honorable的英式写法)
+hook#/hʊk/#n.挂钩,吊钩#vt.钩住;引上钩#vi.钩住;弯成钩状#n.(Hook)人名;(德、荷)霍克;(英)胡克
+hope#/hoʊp/#v.希望;希望能够#n.希望;希望的东西;被寄予希望的人(或物);好的迹象;信赖感;可能性#n.(Hope)(美)奥普(人名)
+hopeful#/ˈhoʊpfl/#adj.有希望的;有前途的#n.有希望成功的人
+hopeless#/ˈhoʊpləs/#adj.绝望的;不可救药的
+horizon#/həˈraɪzn/#n.[天]地平线;视野;眼界;范围
+horizontal#/ˌhɔːrɪˈzɑːntl/#adj.水平的;地平线的;同一阶层的#n.水平线,水平面;水平位置
+horn#/hɔːrn/#n.喇叭,号角;角#vt.装角于#n.(Horn)人名;(英、德、匈、捷、罗、波、芬、希、瑞典)霍恩;(法)奥尔恩;(柬)洪
+horrible#/ˈhɔːrəbl/#adj.可怕的;极讨厌的
+horror#/ˈhɔːrər/#n.惊骇;惨状;极端厌恶;令人恐怖的事物
+horse#/hɔːrs/#n.马;骑兵;脚架;非正式海洛因;非正式马力#vt.使骑马;系马于;捉弄#vi.骑马;作弄人#n.(Horse)(瑞典)霍尔瑟(人名)
+horsepower#/ˈhɔːrspaʊər/#n.马力(功率单位)
+hose#/hoʊz/#n.软管;长筒袜;男性穿的紧身裤#vt.用软管浇水;痛打
+hospital#/ˈhɑːspɪtl/#n.医院#n.(Hospital)人名;(英)霍斯皮特尔
+hospitality#/ˌhɑːspɪˈtæləti/#n.好客;殷勤
+host#/hoʊst/#n.[计]主机;主人;主持人;许多#vt.主持;当主人招待#vi.群集;做主人
+hostage#/ˈhɑːstɪdʒ/#n.人质;抵押品
+hostess#/ˈhoʊstəs/#n.女主人,女老板;女服务员;舞女;女房东
+hostile#/ˈhɑːstl,ˈhɑːstaɪl/#adj.敌对的,敌方的;怀敌意的#n.敌对
+hot#/hɑːt/#adj.热的;辣的;热情的;激动的;紧迫的#adv.热;紧迫地#vi.变热#vt.增加;给......加温#n.(Hot)(塞)霍特(人名);(法)奥特(人名)
+hotel#/hoʊˈtel/#n.旅馆;酒吧;餐馆;(无线电通讯中)字母H的代码#n.(Hotel)(美)奥泰尔(人名)
+hour#/ˈaʊər/#n.小时;钟头;课时;…点钟#n.(Hour)人名;(法)乌尔;(柬)胡
+house#/haʊs/#n.住宅;家庭;机构;议会;某种用途的建筑物#vt.覆盖;给…房子住;把…储藏在房内#vi.住#n.(House)人名;(英)豪斯
+household#/ˈhaʊshoʊld/#n.一家人,一户;同住一所房子的人;王室(theHousehold)#adj.家庭的,家用的;家喻户晓的#n.(Household)(美、瑞)豪斯霍尔德(人名)
+housewife#/ˈhaʊswaɪf/#n.家庭主妇
+hover#/ˈhʌvər/#vi.盘旋,翱翔;徘徊#n.徘徊;盘旋;犹豫#vt.孵;徘徊在…近旁#n.(Hover)人名;(英、德)霍弗
+how#/haʊ/#adv.如何;多少;多么#n.方法;方式#conj.如何#n.(How)人名;(英)豪
+however#/haʊˈevər/#adv.无论如何;不管怎样(接副词或形容词);然而;可是#conj.无论以何种方式;不管怎样
+hug#/hʌɡ/#vt.搂#n.紧紧拥抱
+huge#/hjuːdʒ/#adj.巨大的;庞大的;无限的#n.(Huge)人名;(英)休奇
+human#/ˈhjuːmən/#adj.人的;人类的#n.人;人类#n.(Human)人名;(英)休曼
+humanity#/hjuːˈmænəti/#n.人类;人道;仁慈;人文学科
+humble#/ˈhʌmbl/#adj.谦逊的;简陋的;(级别或地位)低下的;不大的#vt.使谦恭;轻松打败(尤指强大的对手);低声下气
+humid#/ˈhjuːmɪd/#adj.潮湿的;湿润的;多湿气的
+humidity#/hjuːˈmɪdəti/#n.[气象]湿度;湿气
+humorous#/ˈhjuːmərəs/#adj.诙谐的,幽默的;滑稽的,可笑的
+humour#/ˈhjuːmər/#n.幽默(等于humor);诙谐#vt.迁就;使满足
+hundred#/ˈhʌndrəd/#n.一百;许多#adj.一百的;许多的#num.百;百个
+hunger#/ˈhʌŋɡər/#n.饿,饥饿;渴望#vi.渴望;挨饿#vt.使……挨饿#n.(Hunger)(德、波)洪格尔;(英)亨格(人名)
+hungry#/ˈhʌŋɡri/#adj.饥饿的;渴望的;荒年的;不毛的
+hunt#/hʌnt/#v.打猎,猎取,搜索,搜寻,猎获#n.打猎,猎取,搜索,搜寻,狩猎
+hurl#/hɜːrl/#vt.丢下;用力投掷;愤慨地说出#vi.猛投;猛掷#n.用力的投掷
+hurricane#/ˈhɜːrəkeɪn/#n.飓风,暴风
+hurry#/ˈhɜːri/#v.(使)赶紧,(使)匆忙,加速#n.匆忙,仓促
+hurt#/hɜːrt/#v.刺痛,伤害,(使)痛心,(使)伤感情,危害,损害,受伤#n.伤痛,伤害
+husband#/ˈhʌzbənd/#n.丈夫#v.节约使用(资源)#n.(Husband)(美、爱、英)赫斯本德(人名)
+hut#/hʌt/#n.小屋;临时营房#vt.使住在小屋中;驻扎#vi.住在小屋中;驻扎#n.(Hut)人名;(阿拉伯、罗、塞)胡特
+hydrogen#/ˈhaɪdrədʒən/#n.[化学]氢
+hypothesis#/haɪˈpɑːθəsɪs/#n.假设
+hysterical#/hɪˈsterɪkl/#adj.歇斯底里的;异常兴奋的
+I#/aɪ/#pron.我#n.碘元素;字母I#abbr.不及物动词(intransitiveverb)
+ice#/aɪs/#n.冰;冰淇淋;矜持;(俚)钻石#vt.冰镇;结冰#vi.结冰#adj.冰的#n.(Ice)人名;(英)艾斯;(法)伊斯
+idea#/aɪˈdiːə/#n.想法;主意;概念
+ideal#/aɪˈdiːəl/#adj.理想的;完美的;想象的;不切实际的#n.理想;典范
+identical#/aɪˈdentɪkl/#adj.同一的;完全相同的#n.完全相同的事物
+identification#/aɪˌdentɪfɪˈkeɪʃn/#n.鉴定,识别;认同;身份证明
+identify#/aɪˈdentɪfaɪ/#vt.确定;鉴定;识别,辨认出;使参与;把……看成一样#vi.确定;认同;一致
+identity#/aɪˈdentəti/#n.身份;同一性,一致;特性;恒等式
+ideology#/ˌaɪdiˈɑːlədʒi,ˌɪdiˈɑːlədʒi/#n.意识形态;思想意识;观念学
+idiom#/ˈɪdiəm/#n.成语,习语;土话
+idle#/ˈaɪdl/#adj.闲置的;懒惰的;停顿的#vi.无所事事;虚度;空转#vt.虚度;使空转
+if#/ɪf/#conj.(表条件)如果,(表假设)要是,是否,即使#n.条件,设想
+ignite#/ɪɡˈnaɪt/#vt.点燃;使燃烧;使激动#vi.点火;燃烧
+ignorance#/ˈɪɡnərəns/#n.无知,愚昧;不知,不懂
+ignorant#/ˈɪɡnərənt/#adj.无知的;愚昧的
+ignore#/ɪɡˈnɔːr/#vt.驳回诉讼;忽视;不理睬
+ill#/ɪl/#adj.生病的;坏的;邪恶的;不吉利的#adv.不利地;恶劣地;几乎不#n.疾病;不幸#n.(Ill)人名;(捷、匈)伊尔
+illegal#/ɪˈliːɡl/#adj.非法的;违法的;违反规则的#n.非法移民,非法劳工
+illness#/ˈɪlnəs/#n.病;疾病
+illuminate#/ɪˈluːmɪneɪt/#vt.阐明,说明;照亮;使灿烂;用灯装饰#vi.照亮
+illusion#/ɪˈluːʒn/#n.幻觉,错觉;错误的观念或信仰
+illustrate#/ˈɪləstreɪt/#vt.阐明,举例说明;图解#vi.举例
+illustration#/ˌɪləˈstreɪʃn/#n.说明;插图;例证;图解
+image#/ˈɪmɪdʒ/#n.影像;想象;肖像;偶像#vt.想象;反映;象征;作…的像#n.(Image)人名;(法)伊马热
+imaginary#/ɪˈmædʒɪneri/#adj.虚构的,假想的;想象的;虚数的
+imagination#/ɪˌmædʒɪˈneɪʃn/#n.[心理]想象力;空想;幻想物
+imaginative#/ɪˈmædʒɪnətɪv/#adj.富于想象的;有创造力的
+imagine#/ɪˈmædʒɪn/#vt.想象;猜想;臆断#vi.想象;猜想;想象起来
+imitate#/ˈɪmɪteɪt/#vt.模仿,仿效;仿造,仿制
+imitation#/ˌɪmɪˈteɪʃn/#n.模仿,仿造;仿制品#adj.人造的,仿制的
+immediate#/ɪˈmiːdiət/#adj.立即的;直接的;最接近的
+immediately#/ɪˈmiːdiətli/#adv.立即,立刻;直接地#conj.一…就
+immense#/ɪˈmens/#adj.巨大的,广大的;无边无际的;非常好的
+immerse#/ɪˈmɜːrs/#vt.沉浸;使陷入
+immigrant#/ˈɪmɪɡrənt/#adj.移民的;迁入的#n.移民,侨民
+immune#/ɪˈmjuːn/#adj.免疫的;免于……的,免除的#n.免疫者;免除者
+impact#/ˈɪmpækt/#n.影响;效果;碰撞;冲击力#vt.挤入,压紧;撞击;对…产生影响#vi.影响;撞击;冲突;压紧(on,upon,with)
+impair#/ɪmˈper/#vt.损害;削弱;减少
+impart#/ɪmˈpɑːrt/#vt.告知,传授;透露,透漏;赋予,给予(尤指抽象事物)
+impatient#/ɪmˈpeɪʃnt/#adj.焦躁的;不耐心的
+imperative#/ɪmˈperətɪv/#adj.必要的,不可避免的;紧急的;命令的,专横的;势在必行的;[语]祈使的#n.必要的事;命令;需要;规则;[语]祈使语气
+imperial#/ɪmˈpɪriəl/#adj.帝国的;皇帝的;至高无上的;威严的#n.纸张尺寸;特等品#n.(Imperial)人名;(西)因佩里亚尔
+impetus#/ˈɪmpɪtəs/#n.动力;促进;冲力;动量
+implement#/ˈɪmplɪmənt;ˈɪmpləˌmen#vt.实施,执行;实现,使生效#n.工具,器具;手段
+implication#/ˌɪmplɪˈkeɪʃn/#n.含义;暗示;牵连,卷入;可能的结果,影响
+implicit#/ɪmˈplɪsɪt/#adj.含蓄的;暗示的;盲从的
+imply#/ɪmˈplaɪ/#vt.意味;暗示;隐含
+import#/ˈɪmpɔːrt/#n.进口,进口货;输入;意思,含义;重要性#vt.输入,进口;含…的意思#vi.输入,进口
+importance#/ɪmˈpɔːrtns/#n.价值;重要;重大;傲慢
+important#/ɪmˈpɔːrtnt/#adj.重要的,重大的;有地位的;有权力的
+impose#/ɪmˈpoʊz/#vi.利用;欺骗;施加影响#vt.强加;征税;以…欺骗
+impossible#/ɪmˈpɑːsəbl/#adj.不可能的;不可能存在的;难以忍受的;不真实的#n.不可能;不可能的事
+impress#/ɪmˈpres/#vt.盖印;强征;传送;给予某人深刻印象#vi.给人印象#n.印象,印记;特征,痕迹
+impression#/ɪmˈpreʃn/#n.印象;效果,影响;压痕,印记;感想;曝光(衡量广告被显示的次数。打开一个带有该广告的网页,则该广告的impression次数增加一次)
+impressive#/ɪmˈpresɪv/#adj.感人的;令人钦佩的;给人以深刻印象的
+imprison#/ɪmˈprɪzn/#vt.监禁;关押;使…下狱
+improve#/ɪmˈpruːv/#vt.改善,增进;提高……的价值#vi.增加;变得更好
+improvement#/ɪmˈpruːvmənt/#n.改进,改善;提高
+impulse#/ˈɪmpʌls/#n.冲动;[电子]脉冲;刺激;神经冲动;推动力#vt.推动
+in#/ɪn/#prep.在...之内(上),在...期间,从事于,符合,穿着;#adv.进入,朝里,在家,已到达(来临);#adj.在里面的,执政的;#n.执政者,入口;India,印度;In,元素铟(indium);IntelligentNetwork,智能网络
+inaugurate#/ɪˈnɔːɡjəreɪt/#vt.创新;开辟;开创;举行开幕典礼;举行就职典礼
+incentive#/ɪnˈsentɪv/#n.动机;刺激
+inch#/ɪntʃ/#n.英寸;身高;少许#vt.使缓慢地移动#vi.慢慢前进#n.(Inch)人名;(英)英奇
+incidence#/ˈɪnsɪdəns/#n.发生率;影响;[光]入射;影响范围
+incident#/ˈɪnsɪdənt/#n.事件,事变;插曲#adj.[光]入射的;附带的;易发生的,伴随而来的
+incidentally#/ˌɪnsɪˈdentli/#adv.顺便;偶然地;附带地
+incline#/ɪnˈklaɪn/#v.倾向于;(使)倾向于;赞同(某人或某事);有……倾向;(使)倾斜;低头#n.斜坡;斜面
+include#/ɪnˈkluːd/#vt.包含,包括
+inclusive#/ɪnˈkluːsɪv/#adj.包含的,包括的;包含全部费用的;
+income#/ˈɪnkʌm,ˈɪnkəm/#n.收入,收益;所得
+incorporate#/ɪnˈkɔːrpəreɪt/#vt.包含,吸收;体现;把……合并#vi.合并;混合;组成公司#adj.合并的;一体化的;组成公司的
+incorrect#/ˌɪnkəˈrekt/#adj.错误的,不正确的;不适当的;不真实的
+increase#/ɪnˈkriːs;ˈɪnkriːs/#v.增加;增大;提高;增强#n.增加;增多;增长#n.(Increase)(英、美、印、尼日尼亚)英克里斯(人名)
+increasingly#/ɪnˈkriːsɪŋli/#adv.越来越多地;渐增地
+incredible#/ɪnˈkredəbl/#adj.不能相信的,难以置信的;极好的,极大的
+incur#/ɪnˈkɜːr/#v.招致,遭受;引致,带来……
+indeed#/ɪnˈdiːd/#adv.的确;实在;真正地;甚至#int.真的(表示惊讶、怀疑、讽刺等)
+indefinite#/ɪnˈdefɪnət/#adj.不确定的;无限的;模糊的
+independence#/ˌɪndɪˈpendəns/#n.独立性,自立性;自主
+independent#/ˌɪndɪˈpendənt/#adj.独立的;单独的;无党派的;不受约束的#n.独立自主者;无党派者
+index#/ˈɪndeks/#n.指标;指数;索引;指针#vi.做索引#vt.指出;编入索引中
+India#/ˈɪndiə/#n.印度(南亚国家)
+Indian#/ˈɪndiən/#adj.印度的,印度人的,印第安人的#n.印度人,印第安人,印第安语
+indicate#/ˈɪndɪkeɪt/#vt.表明;指出;预示;象征
+indication#/ˌɪndɪˈkeɪʃn/#n.指示,指出;迹象;象征
+indicative#/ɪnˈdɪkətɪv/#adj.象征的;指示的;表示…的#n.陈述语气;陈述语气的动词形式
+indifferent#/ɪnˈdɪfrənt/#adj.冷淡的;不关心的;中等的;平庸的;一般的;相当差的;中立的;不分化的#n.冷漠的人
+indignant#/ɪnˈdɪɡnənt/#adj.愤愤不平的;义愤的
+indignation#/ˌɪndɪɡˈneɪʃn/#n.愤慨;愤怒;义愤
+indirect#/ˌɪndəˈrekt/#adj.间接的;迂回的;非直截了当的
+indispensable#/ˌɪndɪˈspensəbl/#adj.不可缺少的;绝对必要的;责无旁贷的#n.不可缺少之物;必不可少的人
+individual#/ˌɪndɪˈvɪdʒuəl/#adj.个人的;个别的;独特的#n.个人,个体
+indoors#/ˌɪnˈdɔːrz/#adv.在室内,在户内
+induce#/ɪnˈduːs/#vt.诱导;引起;引诱;感应
+indulge#/ɪnˈdʌldʒ/#vt.满足;纵容;使高兴;使沉迷于…#vi.沉溺;满足;放任
+industrial#/ɪnˈdʌstriəl/#adj.工业的,产业的;从事工业的;供工业用的;来自勤劳的#n.工业股票;工业工人
+industrialize#/ɪnˈdʌstriəlaɪz/#vt.使工业化#vi.实现工业化
+industry#/ˈɪndəstri/#n.产业;工业;勤勉
+inefficient#/ˌɪnɪˈfɪʃnt/#adj.无效率的,效率低的;无能的
+inertia#/ɪˈnɜːrʃə/#n.[力]惯性;惰性,迟钝;不活动
+inevitable#/ɪnˈevɪtəbl/#adj.必然的,不可避免的
+inexpensive#/ˌɪnɪkˈspensɪv/#adj.便宜的
+infant#/ˈɪnfənt/#n.婴儿;幼儿;未成年人#adj.婴儿的;幼稚的;初期的;未成年的#n.(Infant)人名;(英)因方特
+infect#/ɪnˈfekt/#vt.感染,传染
+infectious#/ɪnˈfekʃəs/#adj.传染的;传染性的;易传染的
+infer#/ɪnˈfɜːr/#vt.推断;推论#vi.推断;作出推论
+inference#/ˈɪnfərəns/#n.推理;推论;推断
+inferior#/ɪnˈfɪriər/#adj.差的;自卑的;下级的,下等的#n.下级;次品
+infinite#/ˈɪnfɪnət/#adj.无限的,无穷的;无数的;极大的#n.无限;[数]无穷大;无限的东西(如空间,时间)
+inflation#/ɪnˈfleɪʃn/#n.膨胀;通货膨胀;夸张;自命不凡
+inflict#/ɪnˈflɪkt/#vt.造成;使遭受(损伤、痛苦等);给予(打击等)
+influence#/ˈɪnfluəns/#n.影响;势力;感化;有影响的人或事#vt.影响;改变
+influential#/ˌɪnfluˈenʃl/#adj.有影响的;有势力的#n.有影响力的人物
+inform#/ɪnˈfɔːrm/#vt.通知;告诉;报告#vi.告发;告密
+information#/ˌɪnfərˈmeɪʃn/#n.信息,资料;知识;情报
+ingenious#/ɪnˈdʒiːniəs/#adj.有独创性的;机灵的,精制的;心灵手巧的
+ingredient#/ɪnˈɡriːdiənt/#n.原料;要素;组成部分#adj.构成组成部分的
+inhabit#/ɪnˈhæbɪt/#vt.栖息;居住于;占据#vi.(古)居住;栖息
+inhabitant#/ɪnˈhæbɪtənt/#n.居民;居住者
+inherit#/ɪnˈherɪt/#vt.继承;遗传而得#vi.成为继承人
+inhibit#/ɪnˈhɪbɪt/#vt.抑制;禁止
+initial#/ɪˈnɪʃl/#adj.最初的;字首的#vt.用姓名的首字母签名#n.词首大写字母;原始细胞
+initiate#/ɪˈnɪʃieɪt/#vt.开始,创始;发起;使初步了解#n.开始;新加入者,接受初步知识者#adj.新加入的;接受初步知识的
+initiative#/ɪˈnɪʃətɪv/#n.主动权;积极性;首创精神;新方案;倡议#adj.初步的,基础的
+inject#/ɪnˈdʒekt/#vt.注入;注射
+injection#/ɪnˈdʒekʃn/#n.注射;注射剂;充血;射入轨道
+injure#/ˈɪndʒər/#vt.伤害,损害
+injury#/ˈɪndʒəri/#n.伤害,损害;受伤处
+ink#/ɪŋk/#n.墨水,油墨;(乌贼分泌的)墨液#vt.给…上油墨(以供印刷、签订合同等);签名(在…上);涂油墨
+inland#/'ɪnlənd/#adj.内陆的,内地的;国内的#adv.在内地,向内地;向内陆,在内陆#n.内地;内陆
+inlet#/ˈɪnlet/#n.入口,进口;插入物;水湾#v.引进;嵌入;插入;
+inn#/ɪn/#n.客栈;旅馆#vi.住旅馆#n.(Inn)人名;(柬)因
+inner#/ˈɪnər/#adj.内部的;内心的;精神的#n.内部
+innocent#/ˈɪnəsnt/#adj.无辜的;无罪的;无知的#n.天真的人;笨蛋#n.(Innocent)人名;(英、西)因诺森特;(法)伊诺桑
+innovation#/ˌɪnəˈveɪʃn/#n.创新,革新;新方法
+innumerable#/ɪˈnuːmərəbl/#adj.无数的,数不清的
+input#/ˈɪnpʊt/#n.投入;输入电路#vt.[自][电子]输入;将…输入电脑
+inquire#/ɪnˈkwaɪər/#vt.询问;查究;问明#vi.询问;查究;询价
+inquiry#/ɪnˈkwaɪəri;ˈɪnkwəri/#n.探究;调查;质询;询盘,询价
+insane#/ɪnˈseɪn/#adj.疯狂的;精神病的;极愚蠢的
+insect#/ˈɪnsekt/#n.昆虫;卑鄙的人
+inside#/ˌɪnˈsaɪd/#n.里面,内部,内脏,内情#adj.内部的,秘密的,于室内工作的#adv.在里面#prep.在...之内
+insight#/ˈɪnsaɪt/#n.洞察力;洞悉#n.(Insight)人名;(英)因赛特
+insist#/ɪnˈsɪst/#vt.坚持,强调#vi.坚持,强调
+inspect#/ɪnˈspekt/#vt.检查;视察;检阅#vi.进行检查;进行视察
+inspection#/ɪnˈspekʃn/#n.视察,检查
+inspiration#/ˌɪnspəˈreɪʃn/#n.灵感;鼓舞;吸气;妙计
+inspire#/ɪnˈspaɪər/#vt.激发;鼓舞;启示;产生;使生灵感
+install#/ɪnˈstɔːl/#vt.安装;任命;安顿
+installation#/ˌɪnstəˈleɪʃn/#n.安装,装置;就职
+installment#/ɪnˈstɔːlmənt/#n.安装;分期付款;部分;就职
+instance#/ˈɪnstəns/#n.实例;情况;建议#vt.举...为例
+instant#/ˈɪnstənt/#adj.立即的;紧急的;紧迫的#n.瞬间;立即;片刻
+instantaneous#/ˌɪnstənˈteɪniəs/#adj.瞬间的;即时的;猝发的
+instantly#/ˈɪnstəntli/#adv.立即地;马上地;即刻地#conj.一…就…
+instead#/ɪnˈsted/#adv.代替;反而;相反
+instinct#/ˈɪnstɪŋkt/#n.本能,直觉;天性#adj.充满着的
+institute#/ˈɪnstɪtuːt/#n.(尤指科学、教育的)机构,研究所,学会;机构建筑;(与法律相关的)注释,概要#v.实行,建立;授予……职位;提出(诉讼)
+institution#/ˌɪnstɪˈtuːʃn/#n.制度;建立;(社会或宗教等)公共机构;习俗
+instruct#/ɪnˈstrʌkt/#vt.指导;通知;命令;教授
+instruction#/ɪnˈstrʌkʃn/#n.指令,命令;指示;教导;用法说明
+instrument#/ˈɪnstrəmənt/#n.仪器;工具;乐器;手段;器械#vt.给……装测量仪器
+instrumental#/ˌɪnstrəˈmentl/#adj.乐器的;有帮助的;仪器的,器械的#n.器乐曲;工具字,工具格
+insufficient#/ˌɪnsəˈfɪʃnt/#adj.不足的;不能胜任的,缺乏能力的
+insulate#/ˈɪnsəleɪt/#vt.隔离,使孤立;使绝缘,使隔热
+insult#/ɪnˈsʌlt;ˈɪnsʌlt/#v.侮辱;辱骂;损害#n.侮辱;凌辱;无礼
+insurance#/ɪnˈʃʊrəns/#n.保险;保险费;保险契约;赔偿金
+insure#/ɪnˈʃʊr/#vt.给……保险;北美确保,保证#vi.投保;北美确保
+intact#/ɪnˈtækt/#adj.完整的;原封不动的;未受损伤的
+integral#/ˈɪntɪɡrəl/#adj.积分的;完整的,整体的;构成整体所必须的#n.积分;部分;完整
+integrate#/ˈɪntɪɡreɪt/#vt.使…完整;使…成整体;求…的积分;表示…的总和#vi.求积分;取消隔离;成为一体#adj.整合的;完全的#n.一体化;集成体
+integrity#/ɪnˈteɡrəti/#n.完整;正直;诚实;廉正
+intellect#/ˈɪntəlekt/#n.智力,理解力;思维逻辑领悟力;智力高的人
+intellectual#/ˌɪntəˈlektʃuəl/#adj.智力的;聪明的;理智的#n.知识分子;凭理智做事者
+intelligence#/ɪnˈtelɪdʒəns/#n.智力;情报工作;情报机关;理解力;才智,智慧;天分
+intelligent#/ɪnˈtelɪdʒənt/#adj.智能的;聪明的;理解力强的
+intelligible#/ɪnˈtelɪdʒəbl/#adj.可理解的;明了的;仅能用智力了解的
+intend#/ɪnˈtend/#vt.打算;想要;意指#vi.有打算
+intense#/ɪnˈtens/#adj.强烈的;紧张的;非常的;热情的
+intensify#/ɪnˈtensɪfaɪ/#vi.增强,强化;变激烈#vt.使加强,使强化;使变激烈
+intensity#/ɪnˈtensəti/#n.强度;强烈;[电子]亮度;紧张
+intensive#/ɪnˈtensɪv/#adj.加强的;集中的;透彻的;加强语气的#n.加强器
+intent#/ɪnˈtent/#n.意图;目的;含义#adj.专心的;急切的;坚决的
+intention#/ɪnˈtenʃn/#n.意图;目的;意向;愈合
+intentional#/ɪnˈtenʃənl/#adj.故意的;蓄意的;策划的
+interact#/ˌɪntərˈækt/#vt.互相影响;互相作用#vi.互相影响;互相作用#n.幕间剧;幕间休息
+interaction#/ˌɪntərˈækʃn/#n.相互作用,相互影响;交流;[数]交互作用;互动
+interest#/ˈɪntrəst/#n.兴趣,爱好;利息;利益;趣味;同行#vt.使……感兴趣;引起……的关心;使……参与
+interesting#/ˈɪntrəstɪŋ/#adj.有趣的;引起兴趣的,令人关注的
+interfere#/ˌɪntərˈfɪr/#vi.干涉;妨碍;打扰#vt.冲突;介入
+interference#/ˌɪntərˈfɪrəns/#n.干扰,冲突;干涉
+interim#/ˈɪntərɪm/#adj.临时的,暂时的;中间的;间歇的#n.过渡时期,中间时期;暂定
+interior#/ɪnˈtɪriər/#n.内部,里面;内景;内陆,腹地;内政,内务;本质#adj.内部的,里面的;内位的;内陆的,腹地的;内务的,内政的;心灵的,精神的;本质的
+intermediate#/ˌɪntərˈmiːdiət/#adj.中间的,过渡的;中级的,中等的#n.中级生;(化合物)中间体,中间物;中介,媒介#v.充当调解人,起媒介作用
+intermittent#/ˌɪntərˈmɪtənt/#adj.间歇的;断断续续的;间歇性
+internal#/ɪnˈtɜːrnl/#adj.内部的;体内的;(机构)内部的;国内的;本身的;内心的;(大学生)本校生的#n.内脏;内部特征
+international#/ˌɪntərˈnæʃnəl/#adj.国际的;国际通用的#n.国际体育比赛(选手);外国人#n.(International)共产国际(组织)
+interpret#/ɪnˈtɜːrprət/#vt.说明;口译#vi.解释;翻译
+interpretation#/ɪnˌtɜːrprəˈteɪʃn/#n.解释;翻译;演出
+interpreter#/ɪnˈtɜːrprətər/#n.解释者;口译者;注释器
+interrupt#/ˌɪntəˈrʌpt/#vt.中断;打断;插嘴;妨碍#vi.打断;打扰#n.中断
+interruption#/ˌɪntəˈrʌpʃn/#n.中断;干扰;中断之事
+intersection#/ˌɪntərˈsekʃn/#n.交叉;十字路口;交集;交叉点
+interval#/ˈɪntərvl/#n.间隔;间距;幕间休息
+intervene#/ˌɪntərˈviːn/#vi.干涉;调停;插入
+interview#/ˈɪntərvjuː/#n.接见,采访;面试,面谈#vt.采访;接见;对…进行面谈;对某人进行面试
+intimate#/ˈɪntɪmət/#adj.亲密的;私人的;精通的;有性关系的#n.知己;至交#vt.暗示;通知;宣布
+intimidate#/ɪnˈtɪmɪdeɪt/#vt.恐吓,威胁;胁迫
+into#/ˈɪntuː/#prep.到……里面;触及,碰撞;朝,向;转向;关于;转变成;造成(某种结果);除;对……很有兴趣#n.(Into)(美)因托(人名)
+intricate#/ˈɪntrɪkət/#adj.复杂的;错综的,缠结的
+intrigue#/ɪnˈtriːɡ/#n.阴谋;诡计;复杂的事;私通#vt.用诡计取得;激起...的兴趣#vi.私通;密谋
+intrinsic#/ɪnˈtrɪnzɪk/#adj.本质的,固有的
+introduce#/ˌɪntrəˈduːs/#vt.介绍;引进;提出;采用
+introduction#/ˌɪntrəˈdʌkʃn/#n.介绍;引进;采用;入门;传入
+intuition#/ˌɪntuˈɪʃn/#n.直觉;直觉力;直觉的知识
+invade#/ɪnˈveɪd/#vt.侵略;侵袭;侵扰;涌入#vi.侵略;侵入;侵袭;侵犯
+invalid#/ɪnˈvælɪd/#adj.无效的;有病的;残疾的#n.病人;残疾者#vt.使伤残;使退役#vi.变得病弱;因病而奉命退役
+invaluable#/ɪnˈvæljuəbl/#adj.无价的;非常贵重的
+invariably#/ɪnˈveriəbli/#adv.总是;不变地;一定地
+invasion#/ɪnˈveɪʒn/#n.入侵,侵略;侵袭;侵犯
+invent#/ɪnˈvent/#vt.发明;创造;虚构
+invention#/ɪnˈvenʃn/#n.发明;发明物;虚构;发明才能
+inventor#/ɪnˈventər/#n.发明家;[专利]发明人;创造者
+inventory#/ˈɪnvəntɔːri/#n.存货,存货清单;详细目录;财产清册#vt.给……开列清单
+invert#/ɪnˈvɜːrt/#vt.使…转化;使…颠倒;使…反转;使…前后倒置#n.颠倒的事物;倒置物;倒悬者#adj.转化的
+invest#/ɪnˈvest/#vt.投资;覆盖;耗费;授予;包围#vi.投资,入股;花钱买
+investigate#/ɪnˈvestɪɡeɪt/#v.调查;研究
+investigation#/ɪnˌvestɪˈɡeɪʃn/#n.调查;调查研究
+investment#/ɪnˈvestmənt/#n.投资;投入;封锁
+invisible#/ɪnˈvɪzəbl/#adj.无形的,看不见的;无形的;不显眼的,暗藏的
+invitation#/ˌɪnvɪˈteɪʃn/#n.邀请;引诱;请帖;邀请函
+invite#/ɪnˈvaɪt/#vt.邀请,招待;招致#n.邀请
+involve#/ɪnˈvɑːlv/#vt.包含;牵涉;使陷于;潜心于
+inward#/ˈɪnwərd/#adj.向内的;内部的;精神的;本质上的;熟悉的#adv.向内;内心里#n.内部;内脏;密友#n.(Inward)人名;(英)英沃德
+iron#/ˈaɪərn/#n.熨斗;烙铁;坚强#vt.熨;用铁铸成#adj.铁的;残酷的;刚强的#vi.熨衣;烫平#n.(Iron)人名;(英)艾恩
+irony#/ˈaɪrəni/#n.讽刺;反语;具有讽刺意味的事#adj.铁的;似铁的
+irregular#/ɪˈreɡjələr/#adj.不整齐的;不规则的;不正常的;非正规的;不按时的;便秘的(委婉语)#n.不规则物;不合规格的产品;非正规军人员
+irrespective#/ˌɪrɪˈspektɪv/#adj.不考虑的,不顾的#adv.不考虑地,不顾地
+irrigation#/ˌɪrɪˈɡeɪʃn/#n.灌溉;[临床]冲洗;冲洗法
+irritate#/ˈɪrɪteɪt/#vt.刺激,使兴奋;激怒#vi.引起恼怒,引起不愉快
+island#/ˈaɪlənd/#n.岛;岛屿;安全岛;岛状物#adj.岛的#vt.孤立;使成岛状#n.(Island)人名;(英)艾兰
+isolate#/ˈaɪsəleɪt/#vt.使隔离,使孤立,使绝缘,离析#n.隔离种群
+issue#/ˈɪʃuː/#n.问题;流出;期号;发行物#vt.发行,发布;发给;放出,排出#vi.发行;流出;造成……结果;传下
+it#/ɪt/#pron.它;Italy,意大利;InformationTechnology,信息技术
+Italian#/ɪˈtæliən/#adj.意大利的;意大利语的;意大利文化的#n.意大利人;意大利语
+Italy#/ˈɪtəli/#n.意大利(欧洲南部国家)
+item#/ˈaɪtəm/#n.条款,项目;一则;一件商品(或物品)#adv.又,同上#v.记下;逐条列出
+its#/ɪts/#pron.它的#n.(Its)人名;(俄)伊茨
+itself#/ɪtˈself/#pron.它自己;它本身
+ivory#/ˈaɪvəri/#n.象牙;乳白色;长牙#adj.乳白色的;象牙制的#n.(Ivory)人名;(英)艾沃里
+jacket#/ˈdʒækɪt/#n.羽绒滑雪衫;西装短外套;短上衣,夹克;土豆皮;书籍的护封;文件套,公文夹#vt.给…穿夹克;给…装护套;给…包上护封;<口>打
+jail#/dʒeɪl/#n.监狱;监牢;拘留所#vt.监禁;下狱#n.(Jail)人名;(英)杰尔
+jam#/dʒæm/#n.果酱;拥挤;困境;扣篮#vt.使堵塞;挤进,使塞满;混杂;压碎#vi.堵塞;轧住#n.(Jam)人名;(伊朗、巴基)贾姆
+January#/ˈdʒænjueri/#n.一月
+Japan#/dʒəˈpæn/#n.日本(东亚国家名)
+Japanese#/ˌdʒæpəˈniːz/#adj.日本(人)的;日语的#n.日本人;日语
+jar#/dʒɑːr/#n.罐;广口瓶;震动;刺耳声#vi.冲突;不一致;震惊;发刺耳声#vt.震动;刺激;使震动#n.(Jar)人名;(罗)扎尔
+jaw#/dʒɔː/#n.颌;下巴;狭窄入口;唠叨#vi.教训;唠叨#vt.教训;对…唠叨#n.(Jaw)人名;(冈)乔
+jazz#/dʒæz/#n.爵士乐,爵士舞;喧闹#vi.奏爵士乐,跳爵士舞;游荡#vt.奏爵士乐;使活泼#adj.爵士乐的;喧吵的#n.(Jazz)人名;(德)雅茨
+jealous#/ˈdʒeləs/#adj.妒忌的;猜疑的;唯恐失去的;戒备的
+jeopardize#/ˈdʒepərdaɪz/#vt.危害;使陷危地;使受危困
+jerk#/dʒɜːrk/#n.急拉;猛的一动;肌肉抽搐;蠢人;没品的人#vi.痉挛;急拉;颠簸地行进#vt.猛拉#adj.香料腌制的#n.(Jerk)耶尔克(人名)
+jet#/dʒet/#n.喷射,喷嘴;喷气式飞机;黑玉#adj.墨黑的#vt.射出#vi.射出;[航]乘喷气式飞机
+jew#/dʒuː/#n.犹太人;犹太教徒;守财奴#vt.杀价;欺骗
+jewel#/ˈdʒuːəl/#n.宝石;珠宝#vt.镶以宝石;饰以珠宝
+jewish#/ˈdʒuːɪʃ/#adj.犹太人的;犹太族的
+job#/dʒɑːb/#n.工作,零活,口职位,事情,圣经约伯,极有耐心的人#vi.做零工,打杂,做股票经纪,假公济私#vt.代客买卖(股票,货物等),批发,承包,欺骗
+join#/dʒɔɪn/#vt.参加;结合;连接#vi.加入;参加;结合#n.结合;连接;接合点#n.(Join)人名;(法)茹安
+joint#/dʒɔɪnt/#n.接缝,接合处,接合点,关节,(牛、羊等的腿)大块肉#adj.共同的,联合的,连接的,合办的#vt.连接,接合,使有接头#vi.贴合,生节
+joke#/dʒoʊk/#n.玩笑,笑话;笑柄#vt.开…的玩笑#vi.开玩笑#n.(Joke)人名;(英)乔克;(塞)约凯
+jolly#/ˈdʒɑːli/#adj.欢乐的,高兴的,快活的
+journal#/ˈdʒɜːrnl/#n.日报,杂志;日记;分类账
+journalist#/ˈdʒɜːrnəlɪst/#n.新闻工作者;报人;记日志者
+journey#/ˈdʒɜːrni/#n.旅行;行程#vi.旅行#n.(Journey)人名;(英)朱尼,朱妮(女名)
+joy#/dʒɔɪ/#n.欢乐,快乐;乐趣;高兴#vi.欣喜,欢喜#vt.高兴,使快乐
+joyful#/ˈdʒɔɪfl/#adj.欢喜的;令人高兴的
+judge#/dʒʌdʒ/#n.法官;裁判员;鉴定人#v.判断;猜测(大小、数量等);裁判;评价;审判,判决#n.(Judge)(美、爱、英)贾奇(人名)
+judgement#/ˈdʒʌdʒmənt/#n.意见;判断力;[法]审判;评价
+juice#/dʒuːs/#n.(水果)汁,液;果汁
+July#/dʒuˈlaɪ/#n.七月
+jump#/dʒʌmp/#n.跳跃,上涨,惊跳#vt.跳跃,跃过,突升,使跳跃#vi.跳跃,暴涨
+junction#/ˈdʒʌŋkʃn/#n.连接,接合;交叉点;接合点
+June#/dʒuːn/#n.六月;琼(人名,来源于拉丁语,含义是“年轻气盛的六月”)
+jungle#/ˈdʒʌŋɡl/#n.丛林,密林;危险地带#adj.丛林的;蛮荒的
+junior#/ˈdʒuːniər/#n.年少者,晚辈,下级,(年龄、职位等)较低者,大学三年级学生#adj.年少的,下级的,后进的
+jury#/ˈdʒʊri/#n.[法]陪审团;评判委员会#adj.应急的#n.(Jury)人名;(西)胡里;(英、法)朱里;(德)尤里
+just#/dʒʌst/#adj.正义的,公正的,正确的,应得的,有充分根据的#adv.正好,仅仅,刚才,只是,不过
+justice#/ˈdʒʌstɪs/#n.司法,法律制裁;正义;法官,审判员#n.(Justice)人名;(英)贾斯蒂斯,贾斯蒂丝(女名)
+justification#/ˌdʒʌstɪfɪˈkeɪʃn/#n.理由;辩护;认为有理,认为正当;释罪
+justify#/ˈdʒʌstɪfaɪ/#vi.证明合法;整理版面#vt.证明……是正当的;替……辩护
+keen#/kiːn/#adj.敏锐的,敏捷的;渴望的;强烈的;热心的;锐利的#n.痛哭,挽歌#n.(Keen)人名;(英)基恩;(德)肯;(肯)金
+keep#/kiːp/#vt.保持;经营;遵守;饲养#vi.保持;继续不断#n.保持;生计;生活费#n.(Keep)人名;(英)基普
+keeper#/ˈkiːpər/#n.监护人;饲养员;看守人;管理人
+kettle#/ˈketl/#n.壶;[化工]釜;罐;鼓#n.(Kettle)人名;(英)凯特尔
+key#/kiː/#n.钥匙,关键,解答,(打字机等的)键,调子,对译本,(开钟表、发条的)栓,要害#vt.调节...的音调,锁上,插上栓,提供线索#vi.使用钥匙#n.[乐]键,调,基调
+keyboard#/ˈkiːbɔːrd/#n.键盘#vt.键入;用键盘式排字机排字#vi.用键盘进行操作;作键盘式排字机排字
+kick#/kɪk/#v.踢#n.踢
+kid#/kɪd/#n.小孩;小山羊#vt.欺骗;取笑;戏弄#vi.欺骗;取笑;戏弄#adj.小山羊皮制的;较年幼的#n.(Kid)人名;(英)基德
+kidney#/ˈkɪdni/#n.[解剖]肾脏;腰子;个性#n.(Kidney)人名;(英)基德尼
+kill#/kɪl/#vt.杀死;扼杀;使终止;抵消#vi.杀死#n.杀戮;屠杀#adj.致命的;致死的#n.(Kill)人名;(德)基尔
+kilogram#/ˈkɪləɡræm/#n.公斤;千克
+kilometer#/kɪˈlɑːmɪtər/#n.[计量]公里;[计量]千米(等于kilometre)
+kind#/kaɪnd/#n.种类;性质#adj.和蔼的;宽容的;令人感激的#n.(Kind)人名;(德、俄、法、捷)金德;(瑞典)欣德
+kindness#/ˈkaɪndnəs/#n.仁慈;好意;友好的行为#n.(Kindness)人名;(英)坎德尼斯
+king#/kɪŋ/#n.国王,君主,(部落的)首领,纸牌中的K#vt.立...为王#vi.做国王,统治
+kingdom#/ˈkɪŋdəm/#n.王国;界;领域#n.(Kingdom)人名;(英)金德姆
+kiss#/kɪs/#n.吻,(风,浪等)拂#vt.吻,轻拂#vi.接吻
+kit#/kɪt/#n.工具箱;成套工具#vt.装备#vi.装备#n.(Kit)人名;(俄)基特;(东南亚国家华语)吉;(英)基特,姬特(女名)(教名Christopher、Katherine的昵称)
+kitchen#/ˈkɪtʃɪn/#n.厨房;炊具;炊事人员#n.(Kitchen)人名;(英)基钦
+kite#/kaɪt/#n.风筝#vi.使用空头支票;像风筝一样飞;轻快地移动#vt.骗钱;涂改(支票)#n.(Kite)(塞)基特;(英)凯特(人名)
+knee#/niː/#n.膝盖,膝#vt.用膝盖碰#n.(Knee)人名;(英)尼
+kneel#/niːl/#vi.跪下,跪
+knife#/naɪf/#n.刀;匕首#vt.用刀切;(口)伤害#vi.劈开;划过
+knit#/nɪt/#vi.编织;结合;皱眉#vt.编织;结合#n.编织衣物;编织法
+knob#/nɑːb/#n.把手;瘤;球形突出物#vi.鼓起#vt.使有球形突出物#n.(Knob)人名;(匈、捷)克诺布
+knock#/nɑːk/#vi.敲;打;敲击#vt.敲;打;敲击;批评#n.敲;敲打;爆震声
+knot#/nɑːt/#n.(绳等的)结;节瘤,疙瘩;海里/小时(航速单位)#vt.打结#vi.打结#n.(Knot)人名;(英)诺特
+know#/noʊ/#vt.知道;认识;懂得#vi.了解;熟悉;确信
+knowledge#/ˈnɑːlɪdʒ/#n.知识,学问;知道,认识;学科#n.(Knowledge)人名;(南非)诺利奇
+lab#/læb/#n.实验室,研究室
+label#/ˈleɪbl/#n.标签,签条,商标,标志#vt.贴标签于,指...为,分类,标注[计]加上或修改磁盘的标签
+labor#/ˈleɪbər/#n.劳动;工作;劳工;分娩#vi.劳动;努力;苦干#vt.详细分析;使厌烦#n.(Labor)人名;(德、塞、法)拉博尔;(英)拉博
+laboratory#/ˈlæbrətɔːri/#n.实验室,研究室
+labour#/ˈleɪbər/#n.劳动力,人工;分娩#vi.劳动;分娩;费力地前进
+lace#/leɪs/#n.花边;鞋带;饰带;少量烈酒#vt.饰以花边;结带子#vi.系带子#n.(Lace)人名;(意)拉切
+lack#/læk/#n.缺乏,不足#v.缺乏,不足,没有;需要#n.(Lack)(美、德)拉克(人名)
+ladder#/ˈlædər/#n.阶梯;途径;梯状物#vi.成名;发迹#vt.在……上装设梯子
+lady#/ˈleɪdi/#n.女士,夫人;小姐;妻子
+lag#/læɡ/#n.落后;迟延;防护套;囚犯;桶板#vt.给......保温#vi.滞后;缓缓而行;蹒跚#adj.最后的#n.(Lag)(俄)拉格(人名)
+lake#/leɪk/#n.湖;深红色颜料;胭脂红#vt.(使)血球溶解#vi.(使)血球溶解#n.(Lake)人名;(德、塞、瑞典)拉克;(英)莱克
+lamb#/læm/#n.羔羊,小羊;羔羊肉#vt.生小羊,产羔羊#vi.生小羊,产羔羊#n.(Lamb)人名;(英)兰姆;(德)兰布
+lame#/leɪm/#adj.跛足的;僵痛的;不完全的;无说服力的;差劲的,蹩脚的#vi.变跛#vt.使跛;使成残废
+lamp#/læmp/#n.灯;照射器#vt.照亮#vi.发亮#n.(Lamp)人名;(英、德、匈、瑞典)兰普
+land#/lænd/#n.国土;陆地;地面#vt.使…登陆;使…陷于;将…卸下#vi.登陆;到达#n.(Land)人名;(英、德、葡、瑞典)兰德
+landing#/ˈlændɪŋ/#n.登陆;码头;楼梯平台#v.登陆(land的ing形式)#n.(Landing)人名;(冈、瑞典、塞内)兰丁
+landlady#/ˈlændleɪdi/#n.女房东;女地主;女店主
+landlord#/ˈlændlɔːrd/#n.房东,老板;地主
+landscape#/ˈlændskeɪp/#n.风景,山水画,地形,前景#v.美化
+lane#/leɪn/#n.小巷;[航][水运]航线;车道;罚球区#n.(Lane)人名;(英、俄)莱恩;(老)兰;(德、法、意、葡、塞、瑞典)拉内#n.兵线(游戏术语)
+language#/ˈlæŋɡwɪdʒ/#n.语言;语言文字;表达能力
+lantern#/ˈlæntərn/#n.灯笼;提灯;灯笼式天窗
+lap#/læp/#n.一圈;大腿;下摆;山坳#vt.使重叠;拍打;包围;缠绕;舔舐;领先一圈#vi.重叠;轻拍;围住#n.(Lap)(越)拉普(人名)
+large#/lɑːrdʒ/#adj.大的;多数的;广博的#adv.大大地;夸大地#n.大#n.(Large)人名;(英)拉奇;(法)拉尔热
+largely#/ˈlɑːrdʒli/#adv.主要地;大部分;大量地
+laser#/ˈleɪzər/#n.激光#n.(Laser)人名;(德)拉泽
+last#/læst/#adj.最后的,临终的,末尾的,最近的,结论性的#vi.持续,支持,维持#vt.使维持,楦#adv.最后,后来#n.最后,末尾,临终,鞋楦头
+late#/leɪt/#adj.晚的;迟的;已故的;最近的#adv.晚;迟;最近;在晚期
+lately#/ˈleɪtli/#adv.近来,不久前
+latent#/ˈleɪtnt/#adj.潜在的;潜伏的;隐藏的
+later#/ˈleɪtər/#adv.后来;稍后;随后#adj.更迟的;更后的#n.(Later)人名;(德)拉特
+Latin#/ˈlætn/#n.拉丁语;拉丁人;拉丁音乐#adj.拉丁语的,用拉丁语写成的;拉丁语系国家(或民族)的;拉丁人的#n.(Latin)(美)拉京(人名)
+latitude#/ˈlætɪtuːd/#n.纬度;界限;活动范围
+latter#/ˈlætər/#adj.后者的;近来的;后面的;较后的#n.(Latter)(英、德、捷)拉特(人名)
+laugh#/læf/#v.笑,发出笑声;笑着说#n.笑(声);引人发笑的事或人
+laughter#/ˈlæftər/#n.笑;笑声
+launch#/lɔːntʃ/#v.发射(导弹、火箭等);发起,发动;使……下水;开始;起飞#n.发射;发行,投放市场;下水;汽艇
+laundry#/ˈlɔːndri/#n.洗衣店,洗衣房;要洗的衣服;洗熨;洗好的衣服
+lavatory#/ˈlævətɔːri/#n.厕所,盥洗室
+law#/lɔː/#n.法;法学;规律;法制
+lawn#/lɔːn/#n.草地;草坪#n.(Lawn)人名;(缅)朗
+lawyer#/ˈlɔɪər/#n.律师;法学家#n.(Lawyer)人名;(英)劳耶
+lay#/leɪ/#vt.放置,铺设,产(卵)提出,平息,布置#vi.下蛋,打赌#n.位置,层面,形势,短叙事诗#adj.世俗的,外行的vbl.lie的过去式
+layer#/ˈleɪər/#n.层,阶层
+layman#/ˈleɪmən/#n.外行;门外汉;俗人;一般信徒#n.(Layman)人名;(英)莱曼
+layout#/ˈleɪaʊt/#n.布局;设计;安排;陈列
+lazy#/ˈleɪzi/#adj.懒惰的;懒洋洋的;怠惰的;慢吞吞的#n.(Lazy)人名;(德)拉齐
+lead#/liːd;led/#vt.领导;致使;引导;指挥#vi.导致;用水砣测深#n.领导;铅;导线;榜样#n.(Lead)(英)利德(人名)
+leader#/ˈliːdər/#n.领导者;首领;指挥者#n.(Leader)(英)利德(人名)
+leadership#/ˈliːdərʃɪp/#n.领导能力;领导阶层
+leading#/ˈliːdɪŋ;ˈledɪŋ/#adj.领导的;主要的#n.领导;铅板;行距#v.领导(lead的ing形式)
+leaf#/liːf/#n.叶子;(书籍等的)一张;扇页#vi.生叶;翻书页#vt.翻…的页,匆匆翻阅#n.(Leaf)人名;(英)利夫
+leaflet#/ˈliːflət/#n.小叶;传单
+league#/liːɡ/#n.联盟;社团;范畴#vt.使…结盟;与…联合#vi.团结;结盟#n.(League)人名;(英)利格
+leak#/liːk/#n.漏洞,漏出,漏出物,泄漏,俚撒尿#vi.漏,泄漏#vt.使渗漏
+lean#/liːn/#n.倾斜,倾斜度,倚靠,倾向#adj.瘦的,贫乏的,歉收的#vi.倚靠,倾斜,依赖,倾向,偏向#vt.使倾斜
+leap#/liːp/#v.跳,跳越,跳跃#n.跳跃,飞跃
+learn#/lɜːrn/#vt.学习;得知;认识到#vi.学习;获悉
+learned#/ˈlɜːrnɪd/#adj.有学问的,学术上的
+learning#/ˈlɜːrnɪŋ/#n.学习;学问#v.学习(learn的现在分词)
+lease#/liːs/#n.租约;租期;租赁物;租赁权#vt.出租;租得#vi.出租
+least#/liːst/#adj.最小的;最少的(little的最高级)#adv.最小;最少#n.最小;最少
+leather#/ˈleðər/#n.皮革;皮革制品#vt.用皮革包盖;抽打#adj.皮的;皮革制的#n.(Leather)人名;(英)莱瑟
+leave#/liːv/#vt.离开;留下;遗忘;委托#vi.离开,出发;留下#n.许可,同意;休假
+lecture#/ˈlektʃər/#n.演讲;讲稿;教训#vt.演讲;训诫#vi.讲课;讲演
+left#/left/#adj.左边的;左派的;剩下的#adv.在左面#n.左边;左派;激进分子#v.离开(leave的过去式)
+leg#/leɡ/#n.腿;支柱
+legal#/ˈliːɡl/#adj.法律的;合法的;法定的;依照法律的#n.(Legal)(法)勒加尔(人名)
+legend#/ˈledʒənd/#n.传奇;说明;图例;刻印文字#n.(Legend)人名;(西)莱亨德;(英)莱金德
+legislation#/ˌledʒɪsˈleɪʃn/#n.立法;法律
+legitimate#/lɪˈdʒɪtɪmət/#adj.合法的;正当的;合理的;正统的#vt.使合法;认为正当(等于legitimize)
+leisure#/ˈliːʒər/#n.闲暇;空闲;安逸#adj.空闲的;有闲的;业余的#n.(Leisure)人名;(英)莱热
+lemon#/ˈlemən/#n.柠檬;柠檬汁;柠檬树;柠檬色;废物;蠢人#adj.浅黄色的,柠檬色的#n.(Lemon)(美)莱蒙(人名)
+lend#/lend/#vt.贷;增添,提供;把……借给#vi.贷款#n.(Lend)人名;(德)伦德
+length#/leŋkθ/#n.长度,长;时间的长短;语音长
+lens#/lenz/#n.透镜,镜头;眼睛中的水晶体;晶状体;隐形眼镜;汽车的灯玻璃#vt.给……摄影
+less#/les/#n.较少,较小#adj.少的,小的#adv.较少地,更小地,不及#prep.减去
+lessen#/ˈlesn/#vt.使…变小;使…减轻;使…变少#vi.减少;减轻;变小#n.(Lessen)人名;(德、罗)莱森
+lesson#/ˈlesn/#n.教训;课#vt.教训;上课
+lest#/lest/#conj.唯恐,以免;(引出产生某种情感的原因)唯恐,担心
+let#/let/#vt.允许,让;出租;假设;妨碍#vi.出租;被承包#n.障碍;出租屋#n.(Let)人名;(缅)莱;(俄)莱特
+letter#/ˈletər/#n.信;字母,文字;证书;文学,学问;字面意义#vt.写字母于#vi.写印刷体字母#n.(Letter)(美、英、巴西)莱特(人名)
+level#/ˈlevl/#n.水平;标准;水平面#adj.水平的;平坦的;同高的#vi.瞄准;拉平;变得平坦#vt.使同等;对准;弄平#n.(Level)人名;(法)勒韦尔
+lever#/ˈlevər/#n.杠杆;控制杆#vt.用杠杆撬动;把…作为杠杆#vi.用杠杆撬#n.(Lever)人名;(法)勒韦;(英)利弗;(德)莱韦尔
+liability#/ˌlaɪəˈbɪləti/#n.责任;债务;倾向;可能性;不利因素
+liable#/ˈlaɪəbl/#adj.有责任的,有义务的;应受罚的;有…倾向的;易…的
+liar#/ˈlaɪər/#n.说谎的人#n.(Liar)(俄、美、德)莉娅尔(人名)
+liberal#/ˈlɪbərəl/#adj.自由主义的;慷慨的;不拘泥的;宽大的#n.自由主义者#n.(Liberal)人名;(葡)利贝拉尔
+liberate#/ˈlɪbəreɪt/#vt.解放;放出;释放
+liberation#/ˌlɪbəˈreɪʃn/#n.释放,解放
+liberty#/ˈlɪbərti/#n.自由;许可;冒失#n.(Liberty)人名;(英)利伯蒂
+librarian#/laɪˈbreriən/#n.图书馆员;图书管理员
+library#/ˈlaɪbreri/#n.图书馆,藏书室;文库
+license#/ˈlaɪsns/#n.执照,许可证;特许(同licence)#vt.许可;特许;发许可证给
+lick#/lɪk/#vt.舔;卷过;鞭打#vt.(非正式)战胜#vi.舔;轻轻拍打#n.舔;打;少许#n.(Lick)人名;(英、匈)利克
+lid#/lɪd/#n.盖子;眼睑;限制#vt.给…盖盖子#n.(Lid)人名;(捷、挪)利德
+lie#/laɪ/#vi.躺;说谎;位于;展现#vt.谎骗#n.谎言;位置#n.(Lie)人名;(罗、挪、瑞典)利;(中)李(普通话·威妥玛)
+lieutenant#/luːˈtenənt/#n.中尉;副官;助理人员
+life#/laɪf/#n.生活,生存;寿命
+lifetime#/ˈlaɪftaɪm/#n.一生;寿命;终生;使用期#adj.一生的;终身的
+lift#/lɪft/#n.举起,电梯,起重机,搭车#vt.升高,提高,举起,空运#vi.升起,(指雾等)消散,耸立
+light#/laɪt/#n.光,日光,发光体,灯#adj.轻的,发光的,明亮的,浅的#vt.点燃,照亮#adv.轻地#vi.点着,变亮
+lighten#/ˈlaɪtn/#vi.减轻;发亮#vt.使照亮;使轻松
+lightly#/ˈlaɪtli/#adv.轻轻地;轻松地;容易地;不费力地
+lightning#/ˈlaɪtnɪŋ/#n.闪电;突然;(非正式)突如其来的好运#adj.闪电般快的,飞快的;突然的#v.闪电
+like#/laɪk/#n.爱好,同样的人(或物)#adj.相似的,同样的#vt.喜欢,希望,愿意#vi.喜欢,希望#prep.象,如同#adv.可能
+likelihood#/ˈlaɪklihʊd/#n.可能性,可能
+likely#/ˈlaɪkli/#adj.很可能的;合适的;有希望的#adv.很可能;或许
+likewise#/ˈlaɪkwaɪz/#adv.同样地;也
+limb#/lɪm/#n.肢,臂;分支;枝干#vt.切断…的手足;从…上截下树枝#n.(Limb)人名;(朝)林;(英)利姆
+lime#/laɪm/#n.石灰;酸橙;绿黄色#vt.撒石灰于;涂粘鸟胶于#adj.绿黄色的#n.(Lime)人名;(法)利姆
+limit#/ˈlɪmɪt/#n.限制;限度;界线#vt.限制;限定
+limitation#/ˌlɪmɪˈteɪʃn/#n.限制;限度;极限;追诉时效;有效期限;缺陷
+limited#/ˈlɪmɪtɪd/#adj.有限的#n.高级快车
+limp#/lɪmp/#adj.柔软的,无力的;软弱的#vi.跛行,一拐一拐地走;缓慢费力地前进#n.跛行#n.(Limp)人名;(英)林普
+line#/laɪn/#n.路线,航线;排;绳#vt.排成一行;划线于;以线条标示;使…起皱纹#vi.排队;站成一排#n.(Line)人名;(英)莱恩;(俄)利涅
+linear#/ˈlɪniər/#adj.线的,线型的;直线的,线状的;长度的
+linen#/ˈlɪnɪn/#n.亚麻布,亚麻线;亚麻制品#adj.亚麻的;亚麻布制的#n.(Linen)利嫩(人名)
+liner#/ˈlaɪnər/#n.班轮,班机;衬垫;画线者
+linger#/ˈlɪŋɡər/#vi.徘徊;苟延残喘;磨蹭#vt.消磨;缓慢度过#n.(Linger)人名;(德、捷、瑞典)林格;(法)兰热
+link#/lɪŋk/#n.链环,连结物,火把,链接#vt.连结,联合,挽#vi.连接起来
+lion#/ˈlaɪən/#n.狮子;名人;勇猛的人;社交场合的名流#n.(Lion)人名;(西、葡)利昂;(德、法、意、捷、瑞典)利翁;(英)莱昂
+lip#/lɪp/#n.嘴唇;边缘#vt.以嘴唇碰#adj.口头上的#vi.用嘴唇#n.(Lip)人名;(法)利普;(中)猎(广东话·威妥玛);(柬)利;(东南亚国家华语)立
+liquid#/ˈlɪkwɪd/#adj.液体的;清澈的;明亮的;易变的#n.液体,流体;流音
+liquor#/ˈlɪkər/#n.酒,含酒精饮料;溶液;液体;烈酒#vi.喝酒,灌酒#vt.使喝醉
+list#/lɪst/#n.目录,名单,列表,序列,数据清单,明细表,条纹,[总称]各种上市证券#vt.列出,列于表上,记入名单内,装布条#vi.列于表上
+listen#/ˈlɪsn/#vi.听,倾听;听从,听信#n.听,倾听
+listener#/ˈlɪsənər/#n.听者,认真倾听的人;收听广播节目的人
+liter#/ˈliːtər/#n.[计量]公升(容量单位)#n.(Liter)人名;(英)利特
+literacy#/ˈlɪtərəsi/#n.读写能力;精通文学
+literal#/ˈlɪtərəl/#adj.文字的;逐字的;无夸张的
+literary#/ˈlɪtəreri/#adj.文学的;书面的;精通文学的
+literature#/ˈlɪtrətʃər;ˈlɪtrətʃʊr/#n.文学;文献;文艺;著作
+litter#/ˈlɪtər/#n.垃圾;轿,担架;一窝(动物的幼崽);凌乱#vt.乱丢;给…垫褥草;把…弄得乱七八糟#vi.产仔;乱扔废弃物#n.(Litter)人名;(匈、德)利特
+little#/ˈlɪtl/#adj.小的;很少的;短暂的;小巧可爱的#adv.完全不#n.少许;没有多少;短时间#n.(Little)人名;(英)利特尔
+live#/lɪv;laɪv/#adj.活的,生动的,精力充沛的,实况转播的,点燃的#vi.活着,生活,居住,流在人们记忆中#vt.过着,度过,经历#adv.以实况地
+lively#/ˈlaɪvli/#adj.活泼的;生动的;真实的;生气勃勃的#n.(Lively)人名;(英)莱夫利
+liver#/ˈlɪvər/#n.肝脏;生活者,居民
+living#/ˈlɪvɪŋ/#n.生活,生计,生存空间,居住面积#adj.活的,起作用的,逼真的,现存的
+load#/loʊd/#n.负载,负荷;工作量;装载量#vi.[力]加载;装载;装货#vt.使担负;装填
+loaf#/loʊf/#n.条,一条面包;块;游荡#vt.游荡;游手好闲;虚度光阴#vi.游荡;游手好闲;虚度光阴
+loan#/loʊn/#n.贷款;借款#vi.借出#vt.借;借给
+lobby#/ˈlɑːbi/#n.大厅;休息室;会客室;游说议员的团体#vt.对……进行游说#vi.游说议员
+local#/ˈloʊkl/#adj.当地的,地方性的;局部的;局域的;本地通话的;(火车)慢车的#n.当地人;附近的小酒馆;慢车;当地的分支机构;炒股散户;本地新闻;局部
+locality#/loʊˈkæləti/#n.所在;位置;地点
+locate#/ˈloʊkeɪt/#vt.位于;查找…的地点#vi.定位;定居
+location#/loʊˈkeɪʃn/#n.位置;地点;外景拍摄场地
+lock#/lɑːk/#n.锁#v.锁,锁上,锁住#n.锁定,解锁
+locomotive#/ˌloʊkəˈmoʊtɪv/#n.机车;火车头;(学校啦啦队)节奏由慢到快的欢呼#adj.产生动力的,与动力有关的;运动的,移动的
+lodge#/lɑːdʒ/#n.门房,(猎人住的)山林小屋,(游览区的)旅馆,(地方社团的)集会处#vi.临时住宿,寄宿(某人家)#vt.容纳,寄存,把...射入,存放,(向有关当局)提出(声明)
+loft#/lɔft/#n.阁楼;顶楼;鸽房#vt.把…储放在阁楼内#vi.将球高击#n.(Loft)人名;(丹)洛夫特
+lofty#/ˈlɔːi/#adj.高的;崇高的;高级的;高傲的#n.(Lofty)人名;(英)洛夫蒂
+log#/lɔːɡ/#n.航行日志,原木,园形木材,园木#v.把...记入航行日志,伐木,把...锯成段
+logic#/ˈlɑːdʒɪk/#n.逻辑;逻辑学;逻辑性
+logical#/ˈlɑːdʒɪkl/#adj.合逻辑的,合理的;逻辑学的
+lonely#/ˈloʊnli/#adj.寂寞的;偏僻的#n.孤独者
+long#/lɔːŋ/#adj.长的,长期的,做多头的,高的#vi.渴望,热望#adv.长期地,始终#n.长时间,(市场上)做多头的人,[语音]长音节
+longitude#/ˈlɑːndʒɪtuːd/#n.[地理]经度;经线
+look#/lʊk/#vt.看;期待;注意;面向;看上去像#vi.看;看起来;注意;面向#n.看;样子;面容#n.(Look)人名;(瑞典)洛克;(英)卢克
+loop#/luːp/#n.环,线(绳)圈,弯曲部分,回路,回线,(铁路)让车道,(飞机)翻圈飞行#vt.使成环,以圈结,以环连结#vi.打环,翻筋斗#n.循环
+loose#/luːs/#n.解放,放任,放纵#adj.宽松的,不精确的,不牢固的,散漫的,自由的#vt.释放,放枪,开船#vi.变松,开火#adv.松散地
+loosen#/ˈluːsn/#vt.放松;松开#vi.放松;松开#n.(Loosen)人名;(德)洛森
+lord#/lɔːrd/#n.主;上帝#int.主,天啊#vt.使成贵族#vi.作威作福,称王称霸#n.(Lord)人名;(瑞典)洛德;(法)洛尔
+lorry#/ˈlɔːri/#n.(英)卡车;[车辆]货车;运料车#n.(Lorry)人名;(法、德)洛里
+lose#/luːz/#vt.浪费;使沉溺于;使迷路;遗失;错过#vi.失败;受损失#n.(Lose)人名;(英)洛斯;(德)洛泽
+loss#/lɔːs/#n.减少;亏损;失败;遗失#n.(Loss)人名;(匈)洛什;(法、德、意)洛斯
+lot#/lɑːt/#n.所有;(一)群,(一)批;待售物品;场地;份额;许多;命运;阄#adv.很,非常#pron.大量,许多;所有#vt.分组,把……划分
+loud#/laʊd/#adj.大声的,高声的;不断的;喧吵的#adv.大声地,高声地,响亮地#n.(Loud)人名;(英)劳德
+loudly#/ˈlaʊdli/#adv.大声地,响亮地
+loudspeaker#/ˌlaʊdˈspiːkər/#n.喇叭,扬声器;扩音器
+lounge#/laʊndʒ/#n.休息室;闲逛;躺椅;(英)酒吧间#vi.闲逛;懒洋洋地躺卧;闲混#vt.虚度光阴
+love#/lʌv/#n.爱,热爱,爱情,爱好,性爱,情人,零#vt.爱,热爱,爱好,爱慕#vi.爱
+lovely#/ˈlʌvli/#adj.可爱的;令人愉快的;爱恋的;秀丽的,优美的#n.美女;可爱的东西
+lover#/ˈlʌvər/#n.爱人,恋人;爱好者;情人#n.(Lover)(英)洛弗(人名)
+low#/loʊ/#adj.低的,浅的;卑贱的;粗俗的;消沉的#adv.低声地;谦卑地,低下地#n.低;低价;低点;牛叫声#vi.牛叫#n.(Low)(英、德)洛(人名)
+lower#/'loər/#adj.较低的,下级的,下等的,下游的#vi.降低,跌落,减弱#vt.放下,降下,减弱,贬低
+loyal#/ˈlɔɪəl/#adj.忠诚的,忠心的;忠贞的#n.效忠的臣民;忠实信徒#n.(Loyal)人名;(英、德、西、匈、法)洛亚尔
+loyalty#/ˈlɔɪəlti/#n.忠诚;忠心;忠实;忠于…感情
+lubricate#/ˈluːbrɪkeɪt/#vi.润滑;涂油;起润滑剂作用#vt.使…润滑;给…加润滑油
+luck#/lʌk/#n.运气;幸运;带来好运的东西#vi.靠运气,走运;凑巧碰上#n.(Luck)人名;(德、瑞典)卢克;(英)勒克;(法)吕克
+lucky#/ˈlʌki/#adj.幸运的;侥幸的
+luggage#/ˈlʌɡɪdʒ/#n.行李;皮箱
+lumber#/ˈlʌmbər/#n.美木材,无用的杂物(如破旧家俱),废物,隆隆声#vt.砍伐木材,乱堆#vi.伐木,喧闹地向前走,笨重地行动
+luminous#/ˈluːmɪnəs/#adj.发光的;明亮的;清楚的
+lump#/lʌmp/#n.块,块状;肿块;瘤;很多;笨人#vt.混在一起;使成块状;忍耐;笨重地移动#vi.结块#adj.成团的;总共的#adv.很;非常
+lunar#/ˈluːnər/#adj.月亮的,月球的;阴历的;银的;微亮的#n.(Lunar)人名;(西)卢纳尔
+lunch#/lʌntʃ/#n.午餐#vt.吃午餐;供给午餐#vi.吃午餐;供给午餐
+lung#/lʌŋ/#n.肺;呼吸器#n.(Lung)人名;(越)珑;(罗、塞、匈、瑞典、德)伦格
+luxury#/ˈlʌkʃəri/#n.奢侈,奢华;奢侈品;享受#adj.奢侈的
+machine#/məˈʃiːn/#n.机械,机器;机构;机械般工作的人#vt.用机器制造#n.(Machine)(意)马基内(人名)
+mad#/mæd/#adj.疯狂的,愚蠢的,狂欢的,非常激动的,狂热的,着迷的#n.狂怒
+madam#/ˈmædəm/#n.夫人;女士;鸨母
+magazine#/ˈmæɡəziːn/#n.杂志;弹药库;胶卷盒
+magic#/ˈmædʒɪk/#n.魔法,巫术,戏法#adj.魔术的,有魔力的,不可思议的
+magnet#/ˈmæɡnət/#n.磁铁;[电磁]磁体;磁石#n.(Magnet)人名;(塞)马格内特;(西)马涅特;(法)马涅
+magnetic#/mæɡˈnetɪk/#adj.地磁的;有磁性的;有吸引力的
+magnificent#/mæɡˈnɪfɪsnt/#adj.高尚的;壮丽的;华丽的;宏伟的
+magnify#/ˈmæɡnɪfaɪ/#vt.放大;赞美;夸大#vi.放大;有放大能力
+magnitude#/ˈmæɡnɪtuːd/#n.大小;量级;[地震]震级;重要;光度
+maid#/meɪd/#n.女仆;少女#vt.侍候;做新娘的女傧相#vi.当女仆
+mail#/meɪl/#n.邮件;邮政,邮递;盔甲#vt.邮寄;给…穿盔甲#vi.邮寄;寄出#n.(Mail)人名;(法)马伊
+main#/meɪn/#n.主要部分,体力,力量,大陆,要点,干线#adj.主要的,重要的,全力的#n.[计]主群组
+mainland#/ˈmeɪnlænd/#n.大陆;本土#adj.大陆的;本土的#n.(Mainland)人名;(英)梅因兰
+mainly#/ˈmeɪnli/#adv.主要地,大体上
+maintain#/meɪnˈteɪn/#vt.维持;继续;维修;主张;供养
+maintenance#/ˈmeɪntənəns/#n.维护,维修;保持;生活费用
+majesty#/ˈmædʒəsti/#n.威严;最高权威,王权;雄伟;权威
+major#/ˈmeɪdʒər/#n.美[教]主修课,[律]成年人,[乐]大调#adj.主修的,成年的,大调的#vi.主修
+majority#/məˈdʒɔːrə/#n.多数;成年
+make#/meɪk/#vt.制造,安排,使成为,认为,产生,获得,进行,构成#vi.开始,前进,增大,被制造,被处理#n.制造,构造,性情
+male#/meɪl/#adj.男性的;雄性的#n.男人;雄性动物#n.(Male)(柬)马尔;(意、西、塞)马莱;(英)梅尔(人名)
+mall#/mɔːl/#n.商场,购物广场;步行商业区;步行道;铁圈球球场#n.(Mall)(美、瑞)迈勒(人名)
+man#/mæn/#n.男人,人类,人,丈夫,雇工;#vt.为...配备人手,操纵,在...就位,使振奋;MetropolitanAreaNetwork城域网
+manage#/ˈmænɪdʒ/#vt.管理;经营;控制;设法#vi.处理;应付过去
+management#/ˈmænɪdʒmənt/#n.管理;管理人员;管理部门;操纵;经营手段
+manager#/ˈmænɪdʒər/#n.经理;管理人员
+manifest#/ˈmænɪfest/#n.载货单,旅客名单#adj.显然的,明白的#vi.出现#vt.表明,证明
+manipulate#/məˈnɪpjuleɪt/#vt.操纵;操作;巧妙地处理;篡改
+mankind#/mænˈkaɪnd/#n.人类;男性
+manly#/ˈmænli/#adj.男子气概的;强壮的;适于男人的#adv.雄赳赳地#n.(Manly)(英)曼利(人名)
+manner#/ˈmænər/#n.方式;习惯;种类;规矩;风俗#n.(Manner)人名;(德、芬、瑞典)曼纳
+manoeuvre#/məˈnuːvər/#n.[亦作maneuvre]策略,调动#v.用策略,调动,演习,(敏捷地)操纵
+manual#/ˈmænjuəl/#adj.体力的;手控的;用手的#n.说明书;小册子;(牧师主持圣礼时用)礼仪书;用手操作的器具
+manufacture#/ˌmænjuˈfæktʃər/#n.制造;产品;制造业#vt.制造;加工;捏造#vi.制造
+manufacturer#/ˌmænjuˈfæktʃərər/#n.制造商;[经]厂商
+manuscript#/ˈmænjuskrɪpt/#n.[图情]手稿;原稿#adj.手写的
+many#/ˈmeni/#det.许多pron.许多;许多人#adj.许多的#n.大多数人#n.(Many)(美、法、加、印)马尼(人名)
+map#/mæp/#n.地图,图#v.绘制地图[计]由LINK工具生成的一种文本文件,其中包含有被连接的程序的某些信息,例如程序中的组信息和公共符号信息等
+marble#/ˈmɑːrbl/#n.大理石;大理石制品;弹珠#adj.大理石的;冷酷无情的#n.(Marble)人名;(英)马布尔
+march#/mɑːrtʃ/#vi.(坚定地向某地)前进;行军,进军;游行示威;进展,进行#vt.使前进;使行军#n.行进,前进;行军;游行示威;进行曲
+margin#/ˈmɑːrdʒɪn/#n.边缘;利润,余裕;页边的空白#vt.加边于;加旁注于#n.(Margin)人名;(俄、意)马尔金
+marginal#/ˈmɑːrdʒɪnl/#adj.微不足道的,不重要的;边缘的;临界的;末端的#n.边缘席位
+marine#/məˈriːn/#adj.船舶的;海生的;海产的;航海的,海运的#n.海运业;舰队;水兵;(海军)士兵或军官#n.(Marine)人名;(西)马里内;(英)马林
+mark#/mɑːrk/#n.标志;符号;痕迹;分数#vi.作记号#vt.标志;做标记于;打分数#n.(Mark)马克(人名)
+market#/ˈmɑːrkɪt/#n.市场;行情;股票市场;市面;集市;销路;商店#vt.在市场上出售#vi.做买卖#n.(Market)人名;(塞)马尔凯特
+marriage#/ˈmærɪdʒ/#n.结婚;婚姻生活;密切结合,合并#n.(Marriage)人名;(英)马里奇
+married#/ˈmærid/#adj.已婚的,有配偶的;婚姻的,夫妇的;密切结合的#n.已婚者#v.结婚,与…结婚(marry的过去式)
+marry#/ˈmæri/#vt.嫁;娶;与……结婚#vi.结婚#n.(Marry)人名;(阿拉伯)马雷;(法)马里
+marsh#/mɑːrʃ/#n.沼泽;湿地#adj.沼泽的;生长在沼泽地的#n.(Marsh)人名;(俄)马尔什;(英、瑞典)马什
+marshal#/ˈmɑːrʃl/#n.元帅;司仪#vt.整理;引领;编列#vi.排列#n.(Marshal)人名;(英)马歇尔
+marvelous#/ˈmɑːrvələs/#adj.了不起的;非凡的;令人惊异的;不平常的
+Marxism#/ˈmɑːrksɪzəm/#n.马克思主义
+Marxist#/ˈmɑːrksɪst/#n.马克思主义者#adj.马克思主义的
+masculine#/ˈmæskjəlɪn/#adj.男性的;阳性的;男子气概的#n.男性;阳性,阳性词
+mask#/mæsk/#n.面具;口罩;掩饰;[计]掩膜#vi.掩饰;戴面具;化装#vt.掩饰;戴面具;使模糊
+mass#/mæs/#n.块,团;群众,民众;大量,众多;质量#adj.群众的,民众的;大规模的,集中的#vi.聚集起来,聚集#vt.使集合
+massive#/ˈmæsɪv/#adj.大量的;巨大的,厚重的;魁伟的
+master#/ˈmæstər/#n.主人,雇主,(男)教师,熟练技工,师傅,大师,硕士,称呼少爷#adj.主人的,熟练的,高明的,主要的#vt.征服,控制,精通
+masterpiece#/ˈmæstərpiːs/#n.杰作;绝无仅有的人
+mat#/mæt/#n.席子,垫子#v.铺席子
+match#/mætʃ/#n.火柴,比赛,竞赛,匹配,(足球,捧球,蓝球)比赛#v.相配,相称,比赛,相比,匹配
+mate#/meɪt/#n.配偶,对手,助手#vt.使配对,使一致,结伴#vi.成配偶,紧密配合
+material#/məˈtɪriəl/#n.材料,原料,物资,素材,布料#adj.物质的,肉体的,具体的,重要的,实质性的
+materialism#/məˈtɪriəlɪzəm/#n.唯物主义;唯物论;物质主义
+mathematical#/ˌmæθəˈmætɪkl/#adj.数学的,数学上的;精确的
+mathematics#/ˌmæθəˈmætɪks/#n.数学;数学运算
+maths#/mæθs/#n.数学#n.(Maths)人名;(瑞典)马茨
+matter#/ˈmætər/#n.物质;事件#vi.有关系;要紧#n.(Matter)人名;(英、法)马特;(西)马特尔
+mature#/məˈtʃʊr,məˈtʊr/#adj.成熟的;充分考虑的;到期的;成年人的#vi.成熟;到期#vt.使…成熟;使…长成;慎重作出
+maximum#/ˈmæksɪməm/#n.[数]极大,最大限度;最大量#adj.最高的;最多的;最大极限的
+may#/meɪ/#aux.可以,能够;可能,也许;祝,愿;会,能
+maybe#/ˈmeɪbi/#adv.也许;可能;大概#n.可能性;不确定性
+mayor#/ˈmeɪər/#n.市长#n.(Mayor)人名;(英)梅厄;(法、西、俄)马约尔
+me#/mi;miː/#pron.我(宾格)#n.自我;极端自私的人;自我的一部分#n.(Me)人名;(日)马(姓);(朝)袂;(阿拉伯、柬、老)梅
+meadow#/ˈmedoʊ/#n.草地;牧场#n.(Meadow)人名;(英)梅多
+meal#/miːl/#n.一餐,一顿饭;膳食#vi.进餐
+mean#/miːn/#adj.低劣的,卑鄙的,普通的,吝啬的,简陋的,平均的,惭愧的,不舒服的#vt.意谓,想要,预定#vi.用意,有意义#n.平均数,中间,中庸
+means#/miːnz/#n.手段;方法;财产#vt.用意;意味着;预示;意义重大(mean的第三人称单数)#vi.意欲(mean的第三人称单数)
+meantime#/ˈmiːntaɪm/#n.其时,其间#adv.同时;其间
+meanwhile#/ˈmiːnwaɪl/#adv.同时,其间#n.其间,其时
+measurable#/ˈmeʒərəbl/#adj.可测量的;重要的;重大的
+measure#/ˈmeʒər/#n.测量;措施;程度;尺寸#vt.测量;估量;权衡#vi.测量;估量
+measurement#/ˈmeʒərmənt/#n.测量;[计量]度量;尺寸;量度制
+meat#/miːt/#n.肉,肉类(食用)
+mechanic#/məˈkænɪk/#n.技工,机修工#adj.手工的#n.(Mechanic)人名;(英)梅凯尼克
+mechanical#/məˈkænɪkl/#adj.机械的;力学的;呆板的;无意识的;手工操作的
+mechanically#/məˈkænɪkli/#adv.机械地;呆板地;物理上地
+mechanics#/məˈkænɪks/#n.力学(用作单数);结构;技术;机械学(用作单数)
+mechanism#/ˈmekənɪzəm/#n.机制;原理,途径;进程;机械装置;技巧
+medal#/ˈmedl/#n.勋章,奖章;纪念章#n.(Medal)人名;(西、捷)梅达尔
+media#/ˈmiːdiə/#n.媒体;媒质(medium的复数);血管中层;浊塞音;中脉
+mediate#/ˈmiːdieɪt/#vi.调解;斡旋;居中#vt.调停;传达#adj.间接的;居间的
+medical#/ˈmedɪkl/#adj.医学的;药的;内科的#n.医生;体格检查
+medicine#/ˈmedɪsn/#n.药;医学;内科;巫术#vt.用药物治疗;给…用药
+medieval#/ˌmediˈiːvl,ˌmiːdˈiːvl/#adj.中世纪的;原始的;仿中世纪的;老式的
+Mediterranean#/ˌmedɪtəˈreɪniən/#n.地中海#adj.地中海的
+medium#/ˈmiːdiəm/#adj.中间的,中等的;半生熟的;(投球)中速的#n.方法;媒体;媒介;中间物;溶剂;灵媒;中庸
+meet#/miːt/#vt.满足;遇见;对付#vi.相遇;接触#n.集会#adj.合适的;适宜的#n.(Meet)人名;(英)米特
+meeting#/ˈmiːtɪŋ/#n.会议;会见;集会;汇合点#v.会面;会合(meet的现在分词)
+melody#/ˈmelədi/#n.旋律;歌曲;美妙的音乐#n.(Melody)人名;(英)梅洛迪
+melon#/ˈmelən/#n.瓜;甜瓜;大肚子;圆鼓鼓像瓜似的东西#n.(Melon)人名;(意、西、葡)梅隆
+melt#/melt/#vi.熔化,溶解;渐混#vt.使融化;使熔化;使软化;使感动#n.熔化;熔化物
+member#/ˈmembər/#n.成员;会员;议员
+membership#/ˈmembərʃɪp/#n.资格;成员资格;会员身份
+memorial#/məˈmɔːriəl/#n.纪念碑,纪念馆;纪念仪式;纪念物#adj.记忆的;纪念的,追悼的
+memory#/ˈmeməri/#n.记忆,记忆力;内存,[计]存储器;回忆#n.(Memory)人名;(英)梅默里
+menace#/ˈmenəs/#n.威胁;恐吓#vi.恐吓;进行威胁#vt.威胁;恐吓
+mend#/mend/#vt.修理,修补;改善;修改#vi.改善,好转#n.好转,改进;修补处
+mental#/ˈmentl/#adj.精神的;脑力的;疯的#n.精神病患者
+mention#/ˈmenʃn/#vt.提到,谈到;提及,论及;说起#n.提及,说起#n.(Mention)人名;(法)芒雄
+menu#/ˈmenjuː/#n.菜单饭菜
+merchant#/ˈmɜːrtʃənt/#n.商人,批发商;店主#adj.商业的,商人的#n.(Merchant)人名;(英)麦钱特
+mercury#/ˈmɜːrkjəri/#n.[化]汞,水银[天]水星温度表精神,元气
+mercy#/ˈmɜːrsi/#n.仁慈,宽容;怜悯;幸运;善行#n.(Mercy)人名;(英)默西,默茜(女名);(法)梅西
+mere#/mɪr/#adj.仅仅的;只不过的#n.小湖;池塘#n.(Mere)人名;(日)目连(姓);(西)梅雷
+merely#/ˈmɪrli/#adv.仅仅,只不过;只是
+merge#/mɜːrdʒ/#vt.合并;使合并;吞没#vi.合并;融合#n.(Merge)人名;(意)梅尔杰
+meridiem#/mə'ridi:əm/#n.正午
+merit#/ˈmerɪt/#n.优点,价值;功绩;功过#vt.值得#vi.应受报答
+merry#/ˈmeri/#adj.愉快的;微醉的;嬉戏作乐的#n.甜樱桃#n.(Merry)人名;(英、法、西)梅里
+mess#/mes/#n.混乱;食堂,伙食团;困境;脏乱的东西#vt.弄乱,弄脏;毁坏;使就餐#vi.把事情弄糟;制造脏乱;玩弄#n.(Mess)人名;(德、罗)梅斯
+message#/ˈmesɪdʒ/#n.消息;差使;启示;预言;广告词#vi.报信,报告;[通信]报文#vt.通知
+messenger#/ˈmesɪndʒər/#n.报信者,送信者;先驱#n.(Messenger)人名;(德)梅森格;(英)梅辛杰
+metal#/ˈmetl/#n.金属;合金#vt.以金属覆盖#adj.金属制的#n.(Metal)(捷、瑞典)梅塔尔(人名)
+metallic#/məˈtælɪk/#adj.金属的,含金属的
+meter#/ˈmiːtər/#n.米;仪表;[计量]公尺;韵律#vt.用仪表测量#vi.用表计量#n.(Meter)人名;(英)米特;(塞)梅特
+method#/ˈmeθəd/#n.方法;条理;类函数
+metre#/ˈmiːtər/#n.米;公尺;韵律#n.(Metre)人名;(英)米特
+metric#/ˈmetrɪk/#adj.公制的;米制的;公尺的#n.度量标准
+metropolitan#/ˌmetrəˈpɑːlɪtən/#adj.大都市的;大主教辖区的;宗主国的#n.大城市人;大主教;宗主国的公民
+microcomputer#/ˈmaɪkroʊkəmpjuːtər/#n.微电脑;[计]微型计算机
+microphone#/ˈmaɪkrəfoʊn/#n.扩音器,麦克风
+microscope#/ˈmaɪkrəskoʊp/#n.显微镜
+midday#/ˌmɪdˈdeɪ/#n.中午;正午#adj.正午的
+middle#/ˈmɪdl/#adj.中间的,中部的;中级的,中等的#n.中间,中央;腰部
+midnight#/ˈmɪdnaɪt/#n.午夜,半夜12点钟#adj.半夜的;漆黑的
+midst#/mɪdst/#n.当中,中间#prep.在…中间(等于amidst)
+might#/maɪt/#aux.可能,也许,可以(may的过去式)n.强大力量,威力,势力#n.(Might)(美)迈特(人名)
+migrate#/ˈmaɪɡreɪt/#vi.移动;随季节而移居;移往#vt.使移居;使移植
+mild#/maɪld/#adj.温和的;轻微的;淡味的;文雅的;不含有害物质的#n.(英国的一种)淡味麦芽啤酒#n.(Mild)(瑞典、德、捷、芬)米尔德(人名)
+mile#/maɪl/#n.英里;一英里赛跑;较大的距离#n.(Mile)人名;(塞、匈、法)米莱
+militant#/ˈmɪlɪtənt/#adj.好战的#n.富有战斗性的人;好斗者;激进分子
+military#/ˈmɪləteri/#adj.军事的;军人的;适于战争的#n.军队;军人
+milk#/mɪlk/#n.牛奶;乳状物#vt.榨取;挤…的奶#vi.挤奶#n.(Milk)人名;(英)米尔克
+mill#/mɪl/#n.压榨机,磨坊,磨粉机,工厂,制造厂#vt.碾磨,磨细,搅拌,使乱转,打#vi.乱转,被碾磨
+millimetre#/ˈmɪlimiːtər/#n.毫米;千分之一米
+million#/ˈmɪljən/#n.百万;无数#adj.百万的;无数的#num.百万#n.(Million)(美、法)米利翁(人名)
+mind#/maɪnd/#n.理智,精神;意见;智力;记忆力#vt.介意;专心于;照料#vi.介意;注意
+mine#/maɪn/#n.矿,矿藏;矿山,矿井;地雷,水雷#vt.开采,采掘;在…布雷#vi.开矿,采矿;埋设地雷#pron.我的#n.(Mine)人名;(德、塞、土、毛里塔)米内
+miner#/ˈmaɪnər/#n.矿工;开矿机#n.(Miner)人名;(英)迈纳;(西)米内尔
+mineral#/ˈmɪnərəl/#n.矿物;(英)矿泉水;无机物;苏打水(常用复数表示)#adj.矿物的;矿质的
+mingle#/ˈmɪŋɡl/#vi.混合;交往#vt.使混合;使相混#n.(Mingle)人名;(加纳、英)明格尔
+miniature#/ˈmɪnətʃər,ˈmɪnətʃʊr/#adj.微型的,小规模的#n.缩图;微型画;微型图画绘画术#vt.是…的缩影
+minimal#/ˈmɪnɪml/#adj.最低的;最小限度的
+minimize#/ˈmɪnɪmaɪz/#vt.使减到最少;小看,极度轻视#vi.最小化
+minimum#/ˈmɪnɪməm/#n.最小值;最低限度;最小化;最小量#adj.最小的;最低的
+minister#/ˈmɪnɪstər/#n.部长;大臣;牧师#vi.执行牧师职务;辅助或伺候某人
+ministry#/ˈmɪnɪstri/#n.(政府的)部门;宗教团体的领袖;(尤其是新教)牧师
+minor#/ˈmaɪnər/#adj.未成年的;次要的;较小的;小调的;二流的#n.未成年人;小调;辅修科目#vi.辅修#n.(Minor)人名;(英)迈纳;(德、法、波、俄)米诺尔
+minority#/maɪˈnɔːrə/#n.少数民族;少数派;未成年
+minus#/ˈmaɪnəs/#adj.负的,减的#prep.减去#n.负数
+minute#/ˈmɪnɪt/#n.分,分钟;片刻,一会儿;备忘录,笔记;会议记录#vt.将……记录下来#adj.微小的,详细的
+miracle#/ˈmɪrəkl/#n.奇迹,奇迹般的人或物;惊人的事例#n.(Miracle)人名;(英)米勒克尔;(意、西)米拉克莱
+mirror#/ˈmɪrər/#n.镜子;真实的写照;榜样#vt.反射;反映
+miserable#/ˈmɪzrəbl/#adj.悲惨的;痛苦的;卑鄙的
+misery#/ˈmɪzəri/#n.痛苦,悲惨;不幸;苦恼;穷困#n.(Misery)人名;(法)米斯里
+misfortune#/ˌmɪsˈfɔːrtʃən/#n.不幸;灾祸,灾难
+mislead#/ˌmɪsˈliːd/#vt.误导;带错
+miss#/mɪs/#n.过错,避免,失败,小姐,姑娘#vt.未得到,未达到,未听到,思念,未觉察,错过,遗漏,逃脱#vi.失败,击不中
+missile#/ˈmɪsl/#n.导弹;投射物#adj.导弹的;可投掷的;用以发射导弹的
+missing#/ˈmɪsɪŋ/#adj.失踪的;缺少的#v.错过(miss的ing形式);想念;漏掉#n.(Missing)人名;(德)米辛
+mission#/ˈmɪʃn/#n.使命,任务;代表团;布道#vt.派遣;向……传教
+missionary#/ˈmɪʃəneri/#n.传教士#adj.传教的;传教士的;传教士般的
+mist#/mɪst/#n.薄雾;视线模糊不清;模糊不清之物#vi.下雾;变模糊#vt.使模糊;使蒙上薄雾
+mistake#/mɪˈsteɪk/#n.错误;误会;过失#vt.弄错;误解#vi.弄错;误解
+Mister#/ˈmɪstər/#n.先生
+mistress#/ˈmɪstrəs/#n.情妇;女主人;主妇;女教师;女能人
+misunderstand#/ˌmɪsʌndərˈstænd/#vt.误解;误会
+mix#/mɪks/#v.使混和,混淆,混合#n.混合
+mixture#/ˈmɪkstʃər/#n.混合;混合物;混合剂
+moan#/moʊn/#vi.抱怨,悲叹;呻吟#n.呻吟声;悲叹#vt.抱怨;呻吟着说#n.(Moan)人名;(法)莫昂
+mobile#/ˈmoʊbl/#adj.可移动的;机动的;易变的;非固定的#n.移动电话
+mobilize#/ˈmoʊbəlaɪz/#vt.动员,调动;集合,组织;使…流通;使…松动#vi.组织;动员起来
+mock#/mɑːk/#v.嘲笑,骗,挫败,嘲弄#adj.假的#n.嘲弄,模仿,仿制品
+mode#/moʊd/#n.模式;方式;风格;时尚#n.(Mode)人名;(德、英、法、乍、瑞典)莫德
+model#/ˈmɑːdl/#n.模型;典型;模范;模特儿;样式#vt.模拟;塑造;模仿#vi.做模型;做模特儿#adj.模范的;作模型用的#n.(Model)人名;(德、俄、英)莫德尔
+moderate#/ˈmɑːdərət/#adj.稳健的,温和的;适度的,中等的;有节制的#vi.变缓和,变弱#vt.节制;减轻
+modern#/ˈmɑːdərn/#adj.现代的,近代的;时髦的#n.现代人;有思想的人
+modest#/ˈmɑːdɪst/#adj.谦虚的,谦逊的;适度的;端庄的;羞怯的#n.(Modest)人名;(罗)莫代斯特;(德)莫德斯特;(俄)莫杰斯特
+modify#/ˈmɑːdɪfaɪ/#vt.修改,修饰;更改#vi.修改
+moist#/mɔɪst/#adj.潮湿的;湿润的;多雨的;含泪的#n.潮湿
+moisture#/ˈmɔɪstʃər/#n.水分;湿度;潮湿;降雨量
+molecule#/ˈmɑːlɪkjuːl/#n.[化学]分子;微小颗粒,微粒
+moment#/ˈmoʊmənt/#n.片刻,瞬间,时刻;重要,契机#n.(Moment)人名;(英)莫门特
+momentum#/moʊˈmentəm/#n.势头;[物]动量;动力;冲力
+Monday#/ˈmʌndeɪ,ˈmʌndi/#n.星期一
+money#/ˈmʌni/#n.钱;货币;财富#n.(Money)人名;(英)莫尼;(西、法)莫内
+monitor#/ˈmɑːnɪtər/#n.监视器;监听器;监控器;显示屏;班长#vt.监控
+monkey#/ˈmʌŋki/#n.猴子;顽童#vi.胡闹;捣蛋#vt.嘲弄
+monopoly#/məˈnɑːpəli/#n.垄断;垄断者;专卖权
+monster#/ˈmɑːnstər/#n.怪物;巨人,巨兽;残忍的人#adj.巨大的,庞大的
+month#/mʌnθ/#n.月,一个月的时间
+monthly#/ˈmʌnθli/#adj.每月的,每月一次的;有效期为一个月的#n.月刊#adv.每月,每月一次
+monument#/ˈmɑːnjumənt/#n.纪念碑;历史遗迹;不朽的作品#vt.为…树碑
+mood#/muːd/#n.情绪,语气;心境;气氛#n.(Mood)人名;(英)穆德;(瑞典)莫德
+moon#/muːn/#n.月亮;月球;月光;卫星#vi.闲荡;出神#vt.虚度#n.(Moon)(瑞典)莫恩;(柬)蒙;(英)穆恩;(缅)孟(人名)
+moral#/ˈmɔːrəl/#adj.道德的;精神上的;品性端正的#n.道德;寓意#n.(Moral)人名;(德、法、西、葡、土)莫拉尔
+morality#/məˈræləti/#n.道德;品行,美德
+more#/mɔːr/#adv.更多;此外;更大程度地#adj.更多的;附加的#pron.更多的数量#n.更多#n.(More)人名;(英、法)莫尔;(意、西、以)莫雷
+moreover#/mɔːrˈoʊvər/#adv.而且;此外
+morning#/ˈmɔːrnɪŋ/#n.早晨;黎明;初期
+mortal#/ˈmɔːrtl/#adj.凡人的;致死的;终有一死的;不共戴天的#n.人类,凡人#n.(Mortal)人名;(法、葡)莫塔尔
+mortgage#/ˈmɔːrɡɪdʒ/#n.抵押;抵押贷款额#v.抵押;以某人的前途作代价
+mosquito#/məˈskiːtoʊ/#n.蚊子
+most#/moʊst/#adv.最;非常,极其;最多;几乎#adj.大部分的,多数的;最多的#n.大部分,大多数#n.(Most)人名;(德、俄、法、芬、捷、英)莫斯特
+mostly#/ˈmoʊstli/#adv.主要地;通常;多半地
+motel#/moʊˈtel/#n.汽车旅馆#n.(Motel)人名;(德)莫特尔
+mother#/ˈmʌðər/#n.母亲;大娘;女修道院院长#vt.生下;养育;像母亲般关怀或照管#adj.母亲的;出生地的
+motion#/ˈmoʊʃn/#n.动作;移动;手势;请求;意向;议案#vi.运动;打手势#vt.运动;向…打手势
+motivate#/ˈmoʊtɪveɪt/#v.刺激,使有动机,激发…的积极性;成为……的动机;给出理由;申请
+motive#/ˈmoʊtɪv/#n.动机,目的;主题#adj.发动的;成为动机的#vt.使产生动机,激起
+motor#/ˈmoʊtər/#n.发动机,马达;汽车#adj.汽车的;机动的#vi.乘汽车#vt.以汽车载运
+mould#/moʊld/#n.[亦作mold]肥土,壤土,[亦作mold]霉,模具#v.用土覆盖,发霉,铸造
+mount#/maʊnt/#n.乘用马,衬纸,山,装配#vi.乘马,爬上,增长#vt.爬上,使上马,装上,设置,安放,制作...的标本,上演
+mountain#/ˈmaʊntn/#n.山;山脉#n.(Mountain)人名;(英)芒廷
+mourn#/mɔːrn/#v.哀悼;忧伤;服丧
+mouse#/maʊs/#n.鼠标;老鼠;胆小羞怯的人#vt.探出#vi.捕鼠;窥探
+mouth#/maʊθ/#n.口,嘴;河口#vt.做作地说,装腔作势地说;喃喃地说出#vi.装腔作势说话
+mouthful#/ˈmaʊθfʊl/#n.一口,满口
+move#/muːv/#v.移动;改变;进展;采取行动;搬家;调动;离开;感动;激起;促使;提议;走棋;快点;出售#n.行动,举措;移动;改变;迁居;步骤;走棋
+movement#/ˈmuːvmənt/#n.运动;活动;运转;乐章
+movie#/ˈmuːvi/#n.电影;电影院;电影业#adj.电影的
+much#/mʌtʃ/#adv.非常,很#adj.大量的#n.许多,大量#pron.许多,大量#n.(Much)人名;(德)穆赫;(英)马奇
+mud#/mʌd/#n.泥;污蔑;(非正式)干杯#v.弄脏,用泥涂
+muddy#/ˈmʌdi/#adj.泥泞的;模糊的;混乱的#vt.使污浊;使沾上泥;把…弄糊涂#vi.变得泥泞;沾满烂泥
+mug#/mʌɡ/#n.杯子;脸;苦读者#vi.扮鬼脸,做怪相#vt.行凶抢劫
+multiple#/ˈmʌltɪpl/#adj.多重的;多样的;许多的#n.倍数;[电]并联
+multiply#/ˈmʌltɪplaɪ/#vt.乘;使增加;使繁殖;使相乘#vi.乘;繁殖;增加#adv.多样地;复合地#adj.多层的;多样的
+multitude#/ˈmʌltɪtuːd/#n.大量,多数;群众,人群
+municipal#/mjuːˈnɪsɪpl/#adj.市政的,市的;地方自治的
+murder#/ˈmɜːrdər/#n.谋杀,凶杀#vt.谋杀,凶杀#v.谋杀
+murderer#/ˈmɜːrdərər/#n.凶手;谋杀犯
+murmur#/ˈmɜːrmər/#n.低语;低语声;低声抱怨;潺潺声#vi.低声说;私下抱怨;发出轻柔持续的声音#vt.低声说
+muscle#/ˈmʌsl/#n.肌肉;力量#vt.加强;使劲搬动;使劲挤出#vi.使劲行进
+muscular#/ˈmʌskjələr/#adj.肌肉的;肌肉发达的;强健的
+museum#/mjuˈziːəm/#n.博物馆
+mushroom#/ˈmʌʃrʊm,ˈmʌʃruːm/#n.蘑菇,伞菌;蘑菇形物体;暴发户#adj.蘑菇的;蘑菇形的;迅速生长的#vi.迅速增加;采蘑菇;迅速生长
+music#/ˈmjuːzɪk/#n.音乐,乐曲
+musical#/ˈmjuːzɪkl/#adj.音乐的;悦耳的#n.音乐片
+musician#/mjuˈzɪʃn/#n.音乐家
+must#/məst,mʌst/#aux.必须;一定;应该,得n.绝对必要的事物;待发酵的葡萄汁;发霉,潮气#n.(Must)(美)穆斯特(人名)
+mute#/mjuːt/#adj.哑的;沉默的;无声的#vt.减弱……的声音;使……柔和#n.哑巴;弱音器;闭锁音#n.(Mute)人名;(塞)穆特
+mutter#/ˈmʌtər/#vi.咕哝;喃喃自语#vt.咕哝;抱怨地说;低声含糊地说#n.咕哝;喃喃低语#n.(Mutter)(法)米泰;(德、匈、西)穆特;(英)马特(人名)
+mutton#/ˈmʌtn/#n.羊肉
+mutual#/ˈmjuːtʃuəl/#adj.共同的;相互的,彼此的
+my#/maɪ/#pron.我的#int.哎呀(表示惊奇等);喔唷#n.(My)人名;(越)美;(老、柬)米
+myself#/maɪˈself/#pron.我自己;我亲自;我的正常的健康状况和正常情绪
+mysterious#/mɪˈstɪriəs/#adj.神秘的;不可思议的;难解的
+mystery#/ˈmɪstəri/#n.秘密,谜;神秘,神秘的事物;推理小说,推理剧;常作mysteries秘技,秘诀
+myth#/mɪθ/#n.神话;虚构的人,虚构的事
+nail#/neɪl/#n.指甲,钉,钉子#vt.钉,将...钉牢
+naive#/naɪˈiːv/#adj.天真的,幼稚的
+naked#/ˈneɪkɪd/#adj.裸体的;无装饰的;无证据的;直率的
+name#/neɪm/#n.名字,名称,姓名,名誉#vt.命名,提名,叫出,指定#adj.姓名的,据以取名的
+namely#/ˈneɪmli/#adv.也就是;即是;换句话说
+nap#/næp/#n.小睡,打盹儿;细毛;孤注一掷#vt.使拉毛#vi.小睡;疏忽#n.(Nap)人名;(朝、越)纳
+narrative#/ˈnærətɪv/#n.叙述;故事;讲述#adj.叙事的,叙述的;叙事体的
+narrow#/ˈnæroʊ/#adj.狭窄的,有限的;勉强的;精密的;度量小的#n.海峡;狭窄部分,隘路#vt.使变狭窄#vi.变窄
+nasty#/ˈnæsti/#adj.污秽的,肮脏的,令人厌恶的,淫秽的,下流的,凶相的,威胁的
+nation#/ˈneɪʃn/#n.国家;民族;国民#n.(Nation)人名;(英)内申
+national#/ˈnæʃnəl/#adj.国家的;国民的;民族的;国立的#n.国民
+nationality#/ˌnæʃəˈnæləti/#n.国籍,国家;民族;部落
+native#/ˈneɪtɪv/#adj.本国的;土著的;天然的;与生俱来的;天赋的#n.本地人;土产;当地居民
+natural#/ˈnætʃrəl/#adj.自然的;物质的;天生的;不做作的#n.自然的事情;白痴;本位音#n.(Natural)人名;(西)纳图拉尔
+naturally#/ˈnætʃrəli/#adv.自然地;自然而然地;轻而易举地;天生地;大方地
+nature#/ˈneɪtʃər/#n.自然;性质;本性;种类#n.(Nature)人名;(法)纳蒂尔
+naughty#/ˈnɔː/#adj.顽皮的,淘气的;不听话的;没规矩的;不适当的;下流的
+naval#/ˈneɪvl/#adj.海军的;军舰的#n.(Naval)人名;(西、德、印)纳瓦尔
+navigation#/ˌnævɪˈɡeɪʃn/#n.航行;航海
+navy#/ˈneɪvi/#n.海军深蓝色的
+near#/nɪr/#adj.亲近的,亲密的,近,(车,马等)左侧的,吝啬的#adv.(时间,空间方面)近,不远#prep.在...近旁,近...#v.接近,走近
+nearby#/ˌnɪrˈbaɪ/#adj.附近的,邻近的#adv.在附近#prep.在…附近
+nearly#/ˈnɪrli/#adv.差不多,几乎;密切地
+neat#/niːt/#adj.灵巧的;整洁的;优雅的;齐整的;未搀水的;平滑的
+necessarily#/ˌnesəˈserəli/#adv.必要地;必定地,必然地
+necessary#/ˈnesəseri/#adj.必要的;必需的;必然的#n.必需品#n.(Necessary)(英)内塞瑟里(人名)
+necessity#/nəˈsesəti/#n.需要;必然性;必需品
+neck#/nek/#n.脖子;衣领;海峡#vi.搂著脖子亲吻;变狭窄#vt.使变细;与…搂著脖子亲吻#n.(Neck)人名;(德、意、英)内克
+necklace#/ˈnekləs/#n.项链
+need#/niːd/#n.需要,必需,必需品,要求,贫困#vt.需要modal#v.必要,必须
+needle#/ˈniːdl/#n.针;指针;刺激;针状物#vi.缝纫;做针线#vt.刺激;用针缝#n.(Needle)人名;(英)尼德尔
+needless#/ˈniːdləs/#adj.不必要的,不需要的
+negative#/ˈneɡətɪv/#adj.[数]负的;消极的;否定的;阴性的#n.否定;负数;[摄]底片#vt.否定;拒绝
+neglect#/nɪˈɡlekt/#v.忽视,忽略;疏忽;漏做#n.忽略,忽视;未被重视
+negligible#/ˈneɡlɪdʒəbl/#adj.微不足道的,可以忽略的
+negotiate#/nɪˈɡoʊʃieɪt/#vt.谈判,商议;转让;越过#vi.谈判,交涉
+Negro#/ˈniːɡroʊ/#n.冒犯旧黑人#adj.冒犯旧黑人的
+neighbour#/ˈneɪbər/#n.邻居;同胞;仁慈的人#vt.邻接#vi.住在邻近;毗邻;友善,和睦#adj.邻居的;邻近的
+neighbourhood#/ˈneɪbərhʊd/#n.邻近;周围;邻居关系;附近一带
+neither#/ˈniːðər,ˈnaɪðər/#conj.也不;既不#adv.两个都不;既不……也不#adj.两者都不的#pron.两者都不
+nephew#/ˈneuː,ˈnevjuː/#n.侄子;外甥
+nerve#/nɜːrv/#n.神经;勇气;[植]叶脉#vt.鼓起勇气
+nervous#/ˈnɜːrvəs/#adj.神经的;紧张不安的;强健有力的
+nest#/nest/#n.巢,窝;安乐窝;温床#vt.筑巢;嵌套#vi.筑巢;找鸟巢#n.(Nest)人名;(德)内丝特;(英)内丝特(女子教名Agnes威尔士语的昵称)
+net#/net/#n.网,网络,网状物,净利,实价#adj.净余的,纯粹的#vt.用网捕,净赚,得到#vi.编网[域]Nerworkoperationsandservicecenters,网络服务商
+network#/ˈnetwɜːrk/#n.网络;广播网;网状物
+neutral#/ˈnuːtrəl/#adj.中立的,中性的;中立国的;非彩色的#n.中立国;中立者;非彩色;齿轮的空档
+never#/ˈnevər/#adv.从未;决不
+nevertheless#/ˌnevərðəˈles/#adv.然而,不过;虽然如此
+new#/nuː/#adj.新的,新鲜的;更新的;初见的#adv.新近#n.(New)人名;(英)纽
+newly#/ˈnuːli/#adv.最近;重新;以新的方式
+news#/nuːz/#n.新闻,消息;新闻报导
+newspaper#/ˈnuːzpeɪpər/#n.报纸报社旧报纸
+next#/nekst/#adj.紧接在后的;贴近的;其次的#adv.然后;下次;其次#n.下一个人或事件#prep.靠近;居于…之后det.下次;紧接在后的;另一个
+nice#/naɪs/#adj.精密的;美好的;细微的;和蔼的#n.(Nice)人名;(英)尼斯
+nickel#/ˈnɪkl/#n.镍;镍币;五分镍币#vt.镀镍于#n.(Nickel)人名;(德、英)尼克尔
+niece#/niːs/#n.外甥女,侄女#n.(Niece)人名;(英)尼斯
+night#/naɪt/#n.夜晚,晚上;黑暗,黑夜#adj.夜晚的,夜间的
+nightmare#/ˈnaɪtmer/#n.恶梦,噩梦;梦魇般的经历#adj.可怕的;噩梦似的
+nine#/naɪn/#n.九,九个#num.九;九个#adj.九的,九个的#n.(Nine)人名;(塞)尼内
+nineteen#/ˌnaɪnˈːn/#num.十九#n.十九个;十九岁;十九号
+ninety#/ˈnaɪnti/#n.九十#adj.九十的;九十岁的#num.九十
+ninth#/naɪnθ/#num.第九;第九名;九度音#n.九分之一#adj.第九的;九分之一的
+nitrogen#/ˈnaɪtrədʒən/#n.[化学]氮
+no#/noʊ/#n.否定,投反对票者#adj.没有,不许,反对#adv.不,并不,毫不[域]Norway,挪威
+noble#/ˈnoʊbl/#adj.高尚的;贵族的;惰性的;宏伟的#n.贵族#vt.抓住;逮捕#n.(Noble)人名;(英、法、意)诺布尔;(西)诺夫莱;(阿拉伯)努布莱
+nobody#/ˈnoʊbədi/#pron.无人,没有人;谁也不#n.无名小卒,小人物
+nod#/nɑːd/#v.点头;点头表示;打盹;摆动;(英足)顶球#n.点头;点头表示;打盹;摆动;同意,让步
+noise#/nɔɪz/#n.[环境]噪音;响声;杂音#vt.谣传#vi.发出声音;大声议论#n.(Noise)人名;(英)诺伊斯
+noisy#/ˈnɔɪzi/#adj..嘈杂的;喧闹的;聒噪的
+Nominal#/ˈnɑːmɪnl/#adj.名义上的;有名无实的;[会计]票面上的#n.[语]名词性词
+nominate#/ˈnɑːmɪneɪt/#vt.推荐;提名;任命;指定
+none#/nʌn/#adv.决不,毫不#pron.一个也没有,毫无
+nonsense#/ˈnɑːnsens,ˈnɑːnsns/#n.胡说;废话#adj.荒谬的#int.胡说!
+noon#/nuːn/#n.中午;正午;全盛期#n.(Noon)人名;(朝)嫩;(英、巴基)努恩
+nor#/nɔːr/#conj.也不;也不是#adv.也不;也没有#n.(Nor)人名;(中)挪(广东话·威妥玛);(马来、俄)诺尔;(柬)诺
+norm#/nɔːrm/#n.标准,规范
+normal#/ˈnɔːrml/#adj.正常的;正规的;标准的#n.正常;标准;常态;法线(数学)#n.(Normal)人名;(德)诺马尔
+normally#/ˈnɔːrməli/#adv.正常地;通常地,一般地
+north#/nɔːrθ/#n.北,北方#adj.北方的;朝北的#adv.在北方,向北方
+northeast#/ˌnɔːrθˈiːst/#n.东北方,东北部#adj.东北的;向东北的;(风等)来自东北的#adv.在东北;向东北;(风等)来自东北
+northern#/ˈnɔːrðərn/#adj.北部的;北方的#n.北部方言
+northwest#/ˌnɔːrθˈwest/#n.西北方;西北部#adj.(风)来自西北的;在西北部的#adv.在西北,向西北,来自西北地
+nose#/noʊz/#n.鼻子;嗅觉;突出的部分;探问;(飞机、太空船等的)头部,头锥;特有的气味#vt.嗅;用鼻子触#vi.小心探索着前进;探问
+not#/nɑːt/#adv.表示否定,不#n.“非”(计算机中逻辑运算的一种)
+notable#/ˈnoʊtəbl/#adj.值得注意的,显著的;著名的#n.名人,显要人物
+note#/noʊt/#n.笔记;音符;票据;注解;纸币;便笺;照会;调子#vt.注意;记录;注解#n.(Note)(美、法)诺特(人名)
+notebook#/ˈnoʊtbʊk/#n.笔记本,笔记簿;手册
+nothing#/ˈnʌθɪŋ/#pron.没有什么;无关紧要的东西;(计算机数量上的)零;不值钱#adv.毫不;绝不#n.无;零;无关紧要的事#adj.没前途的;没价值的
+notice#/ˈnəʊtɪs/#n.通知,布告;注意;公告#vt.通知;注意到;留心#vi.引起注意
+noticeable#/ˈnoʊtɪsəbl/#adj.显而易见的,显著的;值得注意的
+notify#/ˈnoʊtɪfaɪ/#vt.通告,通知;公布
+notion#/ˈnoʊʃn/#n.概念;见解;打算
+notorious#/noʊˈtɔːriəs/#adj.声名狼藉的,臭名昭著的
+notwithstanding#/ˌnɒtwɪθˈstændɪŋ/#prep.尽管,虽然#adv.尽管,仍然#conj.虽然,尽管
+noun#/naʊn/#n.名词#n.(Noun)人名;(以)努恩
+nourish#/ˈnɜːrɪʃ/#vt.滋养;怀有;使健壮
+novel#/ˈnɑːvl/#adj.新奇的;异常的#n.小说#n.(Novel)人名;(法、西、英)诺韦尔
+novelty#/ˈnɑːvl/#n.新奇;新奇的事物;新颖小巧而廉价的物品
+November#/noʊˈvembər/#n.十一月
+now#/naʊ/#adv.现在;如今;立刻#adj.现在的#n.现在;目前#conj.由于;既然
+nowadays#/ˈnaʊədeɪz/#adv.现今;时下#n.当今
+nowhere#/ˈnoʊwer/#adv.无处;任何地方都不;毫无结果#n.无处;任何地方;无名之地#adj.不存在的;毫无结果的;不知名的
+nuclear#/ˈnuːkliər/#adj.原子能的;[细胞]细胞核的;中心的;原子核的
+nucleus#/ˈnuːkliəs/#n.核,核心;原子核
+nuisance#/ˈnuːsns/#n.讨厌的人;损害;麻烦事;讨厌的东西
+number#/ˈnʌmbər/#n.数;(杂志等的)期;号码;数字;算术#vi.计入;总数达到#vt.编号;计入;数…的数目;使为数有限
+numerical#/nuːˈmerɪkl/#adj.数值的;数字的;用数字表示的(等于numeric)
+numerous#/ˈnuːmərəs/#adj.许多的,很多的
+nurse#/nɜːrs/#n.护士,保姆#vt.护理,看护#v.照料
+nursery#/ˈnɜːrsəri/#n.苗圃;托儿所;温床
+nut#/nʌt/#n.螺母,螺帽;坚果;难对付的人,难解的问题#vi.采坚果#n.(Nut)人名;(阿拉伯)努特;(柬)努
+nylon#/ˈnaɪlɑːn/#n.尼龙,[纺]聚酰胺纤维;尼龙袜
+oak#/oʊk/#n.橡树;橡木色;橡木家具#adj.栎树的;栎木制的#n.(Oak)人名;(英)奥克
+oar#/ɔːr/#n.桨;橹;桨手#vt.划(船)#vi.划行
+oath#/oʊθ/#n.誓言,誓约;诅咒,咒骂
+obedient#/əˈbiːdiənt/#adj.顺从的,服从的;孝顺的
+obey#/əˈbeɪ/#vt.服从,听从;按照……行动#vi.服从,顺从;听话#n.(Obey)人名;(英、法)奥贝
+object#/ˈɑːbdʒekt,ˈɑːbdʒɪkt/#n.目标;物体;客体;宾语#vt.提出…作为反对的理由#vi.反对;拒绝
+objection#/əbˈdʒekʃn/#n.异议,反对;缺陷,缺点;妨碍;拒绝的理由
+objective#/əbˈdʒektɪv/#n.目的;目标;(军事行动的)攻击目标;物镜;宾格#adj.客观的;客观存在的;(疾病症状)客观的,他觉的;目标的;宾格的
+obligation#/ˌɑːblɪˈɡeɪʃn/#n.义务;职责;债务
+oblige#/əˈblaɪdʒ/#vt.迫使;强制;赐,施恩惠;责成;义务#vi.帮忙;施恩惠
+obscene#/əbˈsiːn/#adj.淫秽的;猥亵的;可憎的
+obscure#/əbˈskjʊr/#adj.昏暗的,朦胧的;晦涩的,不清楚的;隐蔽的;不著名的,无名的#vt.使…模糊不清,掩盖;隐藏;使难理解#n.某种模糊的或不清楚的东西
+observation#/ˌɑːbzərˈveɪʃn/#n.观察;监视;观察报告
+observe#/əbˈzɜːrv/#vt.庆祝#vt.观察;遵守;说;注意到;评论#vi.观察;说;注意到;评论
+observer#/əbˈzɜːrvər/#n.观察者;[天]观测者;遵守者
+obstacle#/ˈɑːbstəkl/#n.障碍,干扰,妨碍;障碍物
+obtain#/əbˈteɪn/#vi.获得;流行#vt.获得
+obvious#/ˈɑːbviəs/#adj.明显的;显著的;平淡无奇的
+obviously#/ˈɑːbviəsli/#adv.明显地显然地
+occasion#/əˈkeɪʒn/#n.时机,机会;场合;理由#vt.引起,惹起
+occasional#/əˈkeɪʒənl/#adj.偶然的,临时的;(家具)特定场合才使用的;(文章等)特殊场合所作的;不定期雇用的
+occasionally#/əˈkeɪʒnəli/#adv.偶尔;间或
+occupation#/ˌɑːkjuˈpeɪʃn/#n.职业;占有;消遣;占有期
+occupy#/ˈɑːkjupaɪ/#vt.占据,占领;居住;使忙碌
+occur#/əˈkɜːr/#vi.发生;出现;存在
+occurrence#/əˈkɜːrəns/#n.发生;出现;事件;发现
+ocean#/ˈoʊʃn/#n.海洋;大量#n.(Ocean)(罗)奥切安(人名)
+Oceania#/ˌoʊʃiˈɑːniə/#n.大洋洲
+October#/ɑːkˈtoʊbər/#n.[天]十月
+odd#/ɑːd/#adj.奇数的;古怪的;剩余的;临时的;零散的#n.奇数;怪人;奇特的事物#n.(Odd)人名;(英、西、挪、瑞典)奥德
+odor#/ˈoʊdər/#n.气味;名声#n.(Odor)人名;(匈)欧多尔
+odour#/ˈoʊdər/#n.气味;声誉
+of#/əv,ʌv/#prep.属于;……的;……的一部分;住在(某地);关于;由……组成的;因为;(表示人或事的时空位置)在,当
+off#/ɔːf/#adj.远的,空闲的,不工作的#adv.离开,在远方,离去,分离,中断,完成#prep.从...离开,脱离
+offence#/əˈfens/#n.犯罪;违反;过错;攻击
+offend#/əˈfend/#vt.冒犯;使…不愉快#vi.违反;进攻;引起不舒服
+offensive#/əˈfensɪv/#adj.攻击的;冒犯的;无礼的;讨厌的#n.攻势;攻击
+offer#/ˈɔːfər/#vt.提供;出价;试图#n.提议;出价;意图;录取通知书#vi.提议;出现;献祭;求婚
+office#/ˈɑːfɪs/#n.办公室;政府机关;官职;营业处
+officer#/ˈɑːfɪsər/#n.军官,警官;公务员,政府官员;船长#vt.指挥#n.(Officer)人名;(英)奥菲瑟
+official#/əˈfɪʃl/#adj.官方的;正式的;公务的#n.官员;公务员;高级职员
+offset#/ˈɔːfset/#n.偏移量,抵销,弥补,分支,平版印刷,胶印#vt.弥补,抵销,用平版印刷#vi.偏移,形成分支
+offspring#/ˈɔːfsprɪŋ/#n.后代,子孙;产物
+often#/ˈɔːfn,ˈɔːən/#adv.常常,时常;往往,大多
+oh#/oʊ/#int.哦;哎呀(表示惊讶或恐惧等)
+oil#/ɔɪl/#n.油;石油;油画颜料#vt.加油;涂油;使融化#vi.融化;加燃油
+okay#/oʊˈkeɪ/#int.好,行#adj.可以;对;不错的;安全的#adv.可以;对;很好地#n.同意,批准#v.同意,批准
+old#/oʊld/#adj.陈旧的,古老的;年老的#n.古时#n.(Old)人名;(英)奥尔德
+omit#/əˈmɪt/#vt.省略;遗漏;删除;疏忽
+on#/ɑːn/#prep.在...之上,依附于,临近,靠近,向,在...时候,关于,涉及#adv.在上,向前,行动中,作用中
+once#/wʌns/#adv.一次;曾经#conj.一旦#n.一次,一回
+one#/wʌn/#pron.一个人,任何人,一方#num.一,一个#adj.一方的,某一,同样的
+oneself#/wʌnˈself/#pron.自己;亲自;(不受他人影响的)自己
+onion#/ˈʌnjən/#n.洋葱;洋葱头
+only#/ˈoʊnli/#adv.只,仅仅;不料#adj.唯一的,仅有的;最合适的#conj.但是;不过;可是
+onto#/ˈɑːntə,ˈɑːntu/#prep.在...之上
+opaque#/oʊˈpeɪk/#adj.不透明的;不传热的;迟钝的#n.不透明物#vt.使不透明;使不反光
+open#/ˈoʊpən/#adj.公开的;敞开的;空旷的;坦率的;营业着的#vi.开始;展现#vt.公开;打开#n.公开;空旷;户外
+opening#/ˈoʊpənɪŋ/#n.开始;机会;通路;空缺的职位#adj.开始的#v.开放(open的ing形式);打开;公开
+opera#/ˈɑːprə/#n.歌剧;歌剧院;歌剧团#n.(Opera)人名;(意)奥佩拉
+operate#/ˈɑːpəreɪt/#vi.运转;动手术;起作用#vt.操作;经营;引起;对…开刀;行动
+operation#/ˌɑːpəˈreɪʃn/#n.操作;经营;[外科]手术;[数][计]运算
+operational#/ˌɑːpəˈreɪʃənl/#adj.操作的;运作的
+operator#/ˈɑːpəreɪtər/#n.经营者;操作员;运营商;话务员;行家;接线员
+opinion#/əˈpɪnjən/#n.意见;主张
+opponent#/əˈpoʊnənt/#n.对手;反对者;敌手#adj.对立的;敌对的
+opportunity#/ˌɑːpərˈtuːnə/#n.时机,机会
+oppose#/əˈpoʊz/#vt.反对;对抗,抗争#vi.反对
+opposite#/ˈɑːpəzɪt/#adj.相反的;对面的;对立的#n.对立面;反义词#prep.在…的对面#adv.在对面
+oppress#/əˈpres/#vt.压迫,压抑;使……烦恼;使……感到沉重
+optical#/ˈɑːptɪkl/#adj.光学的;眼睛的,视觉的
+optimism#/ˈɑːptɪmɪzəm/#n.乐观;乐观主义
+optimistic#/ˌɑːptɪˈmɪstɪk/#adj.乐观的;乐观主义的
+optimum#/ˈɑːptɪməm/#adj.最适宜的#n.最佳效果;最适宜条件
+option#/ˈɑːpʃn/#n.[计]选项;选择权;买卖的特权
+optional#/ˈɑːpʃənl/#adj.可选择的,随意的
+or#/ɔːr/#conj.或,或者;还是;要不然#n.(Or)人名;(中)柯(广东话·威妥玛);(柬)奥;(土、匈、土库、阿塞、瑞典)奥尔
+oral#/ˈɔːrəl/#adj.口头的,口述的#n.口试#n.(Oral)人名;(土)奥拉尔
+orange#/'ɔrɪndʒ/#n.柑,桔,橙,橙色
+orbit#/ˈɔːrbɪt/#n.轨道;眼眶;势力范围;生活常规#vi.盘旋;绕轨道运行#vt.绕…轨道而行
+orchestra#/ˈɔːrkɪstrə/#n.管弦乐队;乐队演奏处
+order#/ˈɔːrdər/#n.命令;顺序;规则;订单;(生物学)目#vt.命令;整理;订购#vi.命令;订货
+orderly#/ˈɔːrdərli/#adj.有秩序的;整齐的;值班的#n.勤务兵;传令兵;护理员#adv.有秩序地
+ordinary#/ˈɔːrdneri/#adj.普通的;平凡的;平常的#n.普通;平常的人(或事)
+ore#/ɔːr/#n.矿;矿石#n.(Ore)人名;(意、瑞典)奥雷;(英)奥尔
+organ#/ˈɔːrɡən/#n.器官;机构;风琴;管风琴;嗓音;阴茎#n.(Organ)人名;(英)奥根
+organic#/ɔːrˈɡænɪk/#adj.[有化]有机的;组织的;器官的;根本的
+organism#/ˈɔːrɡənɪzəm/#n.有机体;生物体;微生物
+organization#/ˌɔːrɡənəˈzeɪʃn/#n.组织;机构;体制;团体
+organize#/ˈɔːrɡənaɪz/#vt.组织;使有系统化;给予生机;组织成立工会等#vi.组织起来;成立组织
+orient#/ˈɔːrient/#n.东方,东方诸国(指地中海以东各国)#adj.东方的,上升的,灿烂的#vi.适应形势,向东#vt.使朝东,使适应,确定方向
+oriental#/ˌɔːriˈentl/#adj.东方的;东方人的#n.东方人
+orientation#/ˌɔːriənˈteɪʃn/#n.方向;定向;适应;情况介绍
+origin#/ˈɔːrɪdʒɪn/#n.起源;原点;出身;开端
+original#/əˈrɪdʒənl/#adj.最初的,原始的,独创的,新颖的#n.原物,原作
+originate#/əˈrɪdʒɪneɪt/#vt.引起;创作#vi.发源;发生;起航
+ornament#/ˈɔːrnəmənt/#n.装饰;[建][服装]装饰物;教堂用品#vt.装饰,修饰
+orphan#/ˈɔːrfn/#n.孤儿;孤行#v.使成为孤儿#adj.孤儿的;无双亲的
+Orthodox#/ˈɔːrθədɑːks/#adj.东正教派的;正教的#n.东正教徒;正教徒#adj.(orthodax)正统的;传统的;惯常的;普通的#n.(orthodax)正统的人;正统的事物
+other#/ˈʌðər/#adj.其他的,另外的#pron.另外一个
+otherwise#/ˈʌðərwaɪz/#adv.否则;另外;在其他方面#adj.另外的;其他方面的;原本,本来#conj.其他;如果不;然后
+ought#/ɔːt/#v.(表示责任、愿望或忠告等)应该,应当;(表示可能)大概,应该#n.责任,义务#pron.(古)任何事物(等于aught)
+ounce#/aʊns/#n.盎司;少量;雪豹
+our#/ɑːr,ˈaʊər/#pron.我们的
+ours#/ɑːrz,ˈaʊərz/#pron.我们的,属于我们的#n.(Ours)(美)乌尔斯(人名)
+ourselves#/ɑːˈselvz/#pron.我们自己;我们亲自
+out#/aʊt/#adj.外面的,下台的,出局的#adv.在外,出声地,显露出来地,明显地,从头至尾地#n.外面,外出,外观#vt.赶出,击倒,使退场#vi.外出,暴露#prep.通过
+outcome#/ˈaʊtkʌm/#n.结果,结局;成果
+outdoor#/ˈaʊtdɔːr/#adj.户外的;露天的;野外的(等于out-of-door)
+outdoors#/ˌaʊtˈdɔːrz/#adv.在户外#n.户外#adj.户外的(等于outdoor)
+outer#/ˈaʊtər/#adj.外面的,外部的;远离中心的#n.环外命中
+outlet#/ˈaʊtlet/#n.出口,排放孔;[电]电源插座;销路;发泄的方法;批发商店
+outline#/ˈaʊtlaɪn/#n.轮廓;大纲;概要;略图#vt.概述;略述;描画…轮廓
+outlook#/ˈaʊtlʊk/#n.展望;态度,观点;景色#vt.比……好看;用目光压倒#vi.朝外看
+output#/ˈaʊtpʊt/#n.输出,输出量;产量;出产#vt.输出
+outset#/ˈaʊtset/#n.开始;开端
+outside#/ˌaʊtˈsaɪd/#n.外面,外表,外界#adj.外面的,外表的,外界的#adv.在外面,外表,出界#prep.在...外
+outskirt#/'aʊt,skɜːrt/#n.郊区,市郊
+outstanding#/aʊtˈstændɪŋ/#adj.杰出的;显著的;未解决的;未偿付的#n.未偿贷款
+outward#/ˈaʊtwərd/#adj.向外的;外面的;公开的;外服的;肉体的#adv.向外(等于outwards);在外;显而易见地#n.外表;外面;物质世界
+outwards#/ˈaʊtwərdz/#adv.向外地
+oval#/ˈoʊvl/#adj.椭圆的;卵形的#n.椭圆形;卵形#n.(Oval)人名;(法)奥瓦尔
+oven#/ˈʌvn/#n.炉,灶;烤炉,烤箱#n.(Oven)人名;(荷)奥芬
+over#/ˈoʊvər/#adv.结束,越过,从头到尾#prep.在...之上,越过#adj.上面的#vt.额外的东西,越过#n.额外的东西
+overall#/ˌoʊvərˈɔːl;ˈoʊvərɔːl/#adj.全部的;全体的;一切在内的#adv.全部地;总的说来#n.工装裤;罩衫
+overcoat#/ˈoʊvərkoʊt/#n.大衣,外套
+overcome#/ˌoʊvərˈkʌm/#vt.克服;胜过#vi.克服;得胜
+overflow#/ˌoʊvərˈfloʊ/#v.(尤指液体)溢出;(容器)满得溢出;挤满人了;淹没(某一表面或地区);过度延伸#n.泛滥;挤不下或多余的人(或物);溢流管;数据过载
+overhead#/ˌoʊvərˈhed;ˈoʊvərˌhed/#adj.在头上的,高架的#n.企业一般管理费用,天花板#adv.在头顶上,在空中,在高处
+overhear#/ˌoʊvərˈhɪr/#vt.无意中听到;偷听#vi.无意中听到;偷听到
+overlap#/ˌoʊvərˈlæp/#v.(与...)交迭
+overlook#/ˌoʊvərˈlʊk/#vt.忽略;俯瞰;远眺;不计较,宽恕;施魔法于;监督;检查#n.忽视;眺望;从高处能看到的景色
+overnight#/ˌoʊvərˈnaɪt/#adv.在夜间;突然;一夜之间#adj.晚上的,只供一夜的;突然的#v.过夜;连夜快递(某物)#n.一夜的逗留
+overseas#/ˌoʊvərˈsiːz/#adv.在海外,向国外#adj.海外的,国外的
+overtake#/ˌoʊvərˈteɪk/#vt.赶上;压倒;突然来袭#vi.超车
+overthrow#/ˌoʊvərˈθroʊ;ˈoʊvərθroʊ#v.推翻,倾覆;瓦解;投(球)过远;背弃#n.推翻,打倒,倾覆;投球过猛;(拱门、门廊上方的)铁艺装饰板
+overtime#/ˈoʊvərtaɪm/#n.[劳经]加班时间;延长时间;加时赛#adj.超时的;加班的#vt.使超过时间#adv.加班地
+overwhelm#/ˌoʊvərˈwelm/#vt.淹没;压倒;受打击;覆盖;压垮
+owe#/oʊ/#vt.欠;感激;应给予;应该把……归功于#vi.欠钱#n.(Owe)人名;(瑞典、挪)奥弗
+owl#/aʊl/#n.猫头鹰;枭;惯于晚上活动的人
+own#/oʊn/#vt.拥有;承认#vi.承认#adj.自己的;特有的#n.(Own)(阿拉伯)奥恩(人名)
+owner#/ˈoʊnər/#n.[经]所有者;物主
+ownership#/ˈoʊnərʃɪp/#n.所有权;物主身份
+ox#/ɑːks/#n.牛;公牛
+oxide#/ˈɑːksaɪd/#n.[化学]氧化物
+pamphlet#/ˈpæmflət/#n.小册子
+panic#/ˈpænɪk/#n.恐慌,惊慌;大恐慌#adj.恐慌的;没有理由的#vt.使恐慌#vi.十分惊慌#n.(Panic)人名;(罗)帕尼克
+paradise#/ˈpærədaɪs/#n.天堂至福境地
+paradox#/ˈpærədɑːks/#n.悖论,反论;似是而非的论点;自相矛盾的人或事#n.(Paradox)《杀破狼:贪狼》(一部剧情动作电影)
+paralyze#/ˈpærəˌlaɪz/#vt.使麻痹;使瘫痪
+parameter#/pəˈræmɪtər/#n.参数;系数;参量
+participant#/pɑːrˈtɪsɪpənt/#n.参与者,参加者#adj.参与的
+partition#/pɑːrˈtɪʃn/#n.划分,分开;[数]分割;隔墙;隔离物#vt.[数]分割;分隔;区分
+pastime#/ˈpæstaɪm/#n.娱乐,消遣
+pasture#/ˈpæstʃər/#n.草地;牧场;牧草#vt.放牧;吃草#n.(Pasture)人名;(英)帕斯彻;(法)帕斯蒂尔
+patent#/ˈpeɪt(ə)nt/#n.专利权;专利证;专利品#adj.专利的;特许生产或销售的;显著的;公开的;(脉管等)开放的#v.取得……的专利权;授予专利
+pathetic#/pəˈθetɪk/#adj.可怜的,悲哀的;感伤的;乏味的
+patriotic#/ˌpeɪtriˈɑːtɪk/#adj.爱国的
+patrol#/pəˈtroʊl/#n.巡逻;巡逻队;侦察队#vt.巡逻;巡查#vi.巡逻;巡查
+pave#/peɪv/#v.(用石板或砖)铺(路),铺砌,铺设;为某事物铺平道路,创造条件#n.(Pave)(法、塞尔维亚、克罗地亚)帕韦(人名)
+pearl#/pɜːrl/#n.珍珠;珍珠色;杰出者;珍品#adj.镶珍珠的;珍珠状的#vi.采珍珠;成珍珠状#vt.使成珠状;用珍珠装饰;使呈珍珠色
+pedal#/ˈpedl/#n.(车辆,乐器的)踏板#v.骑(自行车);踩踏板#adj.脚的;脚踏的
+pedestrian#/pəˈdestriən/#adj.徒步的;缺乏想像力的#n.行人;步行者
+peel#/piːl/#v.剥,剥落;削;(槌球中)击(他人的球)穿过铁环门#n.皮#n.(Peel)人名;(英)皮尔
+peer#/pɪr/#n.同等地位的人,同龄人;贵族#v.凝视,盯着看;隐现;看见;匹配#n.(Peer)(美、爱、英)皮尔(人名)
+penalty#/ˈpenəlti/#n.罚款,罚金;处罚
+pension#/'penʃən/#n.退休金,抚恤金;津贴;膳宿费#vt.发给养老金或抚恤金
+perception#/pərˈsepʃn/#n.认识能力;知觉,感觉;洞察力;看法;获取
+perfection#/pərˈfekʃn/#n.完善;完美
+perfume#/pərˈuːm/#n.香水;香味#vt.洒香水于…;使…带香味#vi.散发香气
+periodic#/ˌpɪriˈɑːdɪk/#adj.周期的;定期的
+periodical#/ˌpɪriˈɑːdɪkl/#adj.[数]周期的;定期的#n.期刊;杂志
+perish#/ˈperɪʃ/#vt.使麻木;毁坏#vi.死亡;毁灭;腐烂;枯萎
+perpetual#/pərˈpetʃuəl/#adj.永久的;不断的;四季开花的;无期限的
+perplex#/pərˈpleks/#vt.使困惑,使为难;使复杂化
+pest#/pest/#n.害虫;有害之物;讨厌的人#n.(Pest)人名;(德、捷)佩斯特
+petition#/pəˈtɪʃn/#n.请愿;请愿书;祈求;[法]诉状#vi.请愿;请求#vt.请愿;请求;恳求
+petty#/ˈpeti/#adj.琐碎的;小气的;小规模的#n.(Petty)人名;(英、法)佩蒂
+phase#/feɪz/#n.月相;时期,阶段#vt.分阶段进行;使定相
+phenomenon#/fəˈnɑːmɪnən/#n.现象;奇迹;杰出的人才
+philosopher#/fəˈlɑːsəfər/#n.哲学家;哲人
+philosophy#/fəˈlɑːsəfi/#n.哲学;哲理;人生观
+phone#/foʊn/#n.电话;耳机,听筒#vt.打电话#vi.打电话#n.(Phone)人名;(老、缅)蓬
+photograph#/ˈfoʊtəɡræf/#n.照片,相片#v.摄影,为......照相;在照片上显得
+photographic#/ˌfoʊtəˈɡræfɪk/#adj.摄影的;逼真的;(尤指记忆)详细准确的
+phrase#/freɪz/#n.短语,习语,措辞,乐句#v.措词,将(乐曲)分成乐句
+physical#/ˈfɪzɪkl/#adj.物理的;身体的;物质的;根据自然规律的,符合自然法则的#n.体格检查
+physician#/fɪˈzɪʃn/#n.医师,内科医师;抚慰者
+physicist#/ˈfɪzɪsɪst/#n.物理学家;唯物论者
+physics#/ˈfɪzɪks/#n.物理学;物理现象
+piano#/piˈænoʊ/#n.钢琴#n.(Piano)人名;(法、意、葡)皮亚诺
+pick#/pɪk/#vi.挑选;采摘;挖#vt.拾取;精选;采摘;掘#n.选择;鹤嘴锄;挖;掩护#n.(Pick)人名;(英、法、德、捷、匈、瑞典)皮克
+picnic#/ˈpɪknɪk/#n.野餐#vi.去野餐
+picture#/ˈpɪktʃər/#n.照片,图画;影片;景色;化身#vt.画;想像;描写
+pie#/paɪ/#n.馅饼;饼图;爱说话的人#vt.使杂乱
+piece#/piːs/#n.块;件;篇;硬币#vt.修补;接合;凑合
+pierce#/pɪrs/#v.(锋利尖锐物体)刺穿;穿孔于(耳朵、鼻子);(光、声)穿透,刺破;突破#n.穿孔
+pig#/pɪɡ/#n.猪;猪肉#vi.生小猪;像猪一样过活#n.警察(俚语,带有攻击性)
+pigeon#/ˈpɪdʒɪn/#n.鸽子#n.(Pigeon)人名;(法)皮容;(英)皮金
+pile#/paɪl/#n.堆;大量;建筑群#vt.累积;打桩于#vi.挤;堆积;积累#n.(Pile)人名;(西)皮莱;(英)派尔
+pill#/pɪl/#n.药丸;弹丸,子弹;口服避孕药#vt.把…制成丸剂;使服用药丸;抢劫,掠夺(古语)#vi.做成药丸;服药丸#n.(Pill)人名;(英)皮尔
+pillar#/ˈpɪlər/#n.柱子,柱形物;栋梁;墩#vt.用柱支持#n.(Pillar)人名;(英)皮勒
+pillow#/ˈpɪloʊ/#n.枕头#vt.垫;枕于…;使…靠在#vi.枕着头;靠在枕上#n.(Pillow)人名;(英)皮洛
+pilot#/ˈpaɪlət/#n.飞行员;领航员#adj.试点的#v.驾驶;领航;试用#n.(Pilot)人名;(意、印)皮洛特;(法)皮洛
+pin#/pɪn/#n.大头针,别针,针;栓;琐碎物;引脚#vt.钉住;压住;将……用针别住
+pinch#/pɪntʃ/#n.捏,撮,收缩,紧急关头,匮乏,压力#vt.掐,夹痛,修剪,勒索,使感缺乏,使萎缩,偷#vi.收缩,节省
+pine#/paɪn/#n.松树;松木;凤梨,菠萝#v.渴望;痛苦;憔悴;为……悲哀;哀悼#n.(Pine)派因(人名)
+pink#/pɪŋk/#n.粉红色,石竹花,化身,极致,精华#adj.粉红的#vt.刺,扎,刺痛,使变粉红色#vi.变粉红色
+pint#/paɪnt/#n.品脱;一品脱的量;一品脱牛奶或啤酒#n.(Pint)人名;(德、俄、匈)平特
+pioneer#/ˌpaɪəˈnɪr/#n.先锋;拓荒者#vt.开辟;倡导;提倡#vi.作先驱
+pipe#/paɪp/#n.管;烟斗;笛#vi.吹笛;尖叫#vt.用管道输送;尖声唱;用管乐器演奏#n.(Pipe)人名;(匈)皮佩;(英)派普
+pipeline#/ˈpaɪplaɪn/#n.管道;输油管;传递途径
+pistol#/ˈpɪstl/#n.手枪;信号枪#vt.用手枪射击#n.(Pistol)人名;(罗)皮斯托尔
+pit#/pɪt/#n.深坑,深渊,陷阱,(物体或人体表面上的)凹陷,(英国剧场的)正厅后排、正厅后排的观众#vt.窖藏,使凹下,去...之核,使留疤痕,使竞争#vi.起凹点,凹陷
+pitch#/pɪtʃ/#n.程度,斜度,树脂,投掷,定调,(船只)前后颠簸,倾斜,沥青#vt.投,掷,向前倾跌,定位于,用沥青涂,扎营#vi.搭帐篷,投掷,坠落,倾斜
+pity#/ˈpɪti/#n.怜悯,同情;遗憾#vt.对……表示怜悯;对……感到同情
+place#/pleɪs/#n.地方;住所;座位#vt.放置;任命;寄予#vi.名列前茅;取得名次#n.(Place)人名;(罗)普拉切;(法)普拉斯;(英)普莱斯
+plague#/pleɪɡ/#n.瘟疫,鼠疫;灾祸,天灾;麻烦事,讨厌的人;愿上天降灾难于……(用于诅咒)#v.使折磨,使苦恼;纠缠,缠扰;使得灾祸
+plain#/pleɪn/#adj.平的;简单的;朴素的;清晰的#n.平原;无格式;朴实无华的东西#adv.清楚地;平易地#n.(Plain)人名;(英)普莱恩;(法)普兰
+plan#/plæn/#n.计划;平面图#vt.计划;设计;打算#vi.计划;打算#n.(Plan)人名;(瑞典)普兰;(法)普朗
+plane#/pleɪn/#n.飞机;平面;程度,水平#vi.刨;乘飞机旅行;翱翔#vt.刨平;用刨子刨;掠过水面#adj.平的;平面的#n.(Plane)人名;(塞、瑞典、法)普拉内
+planet#/ˈplænɪt/#n.行星#n.(Planet)人名;(法)普拉内;(西、葡)普拉内特
+plant#/plænt/#n.工厂,车间;植物;设备;庄稼#vt.种植;培养;栽培;安置#vi.种植#n.(Plant)(英、西、意)普兰特(人名);(法)普朗(人名)
+plantation#/plænˈteɪʃn/#n.栽植;殖民;大农场#adj.适用于种植园或热带、亚热带国家的
+plaster#/ˈplæstər/#n.石膏;灰泥;膏药#vt.减轻;粘贴;涂以灰泥;敷以膏药;使平服#n.(Plaster)人名;(英、德)普拉斯特
+plastic#/ˈplæstɪk/#n.塑料;塑料学;非正式信用卡#adj.塑料制的;人造的,不自然的;(物质、材料)可塑的;产生立体感的;塑性的;有创造力的;适应环境变化的
+plate#/pleɪt/#n.碟;金属板;金属牌;感光底片#vt.电镀;给…装甲#n.(Plate)人名;(英、德、俄、西、意、瑞典)普拉特
+plateau#/plæˈtoʊ/#n.高原;稳定水平;托盘;平顶女帽#vi.达到平衡;达到稳定时期
+platform#/ˈplætfɔːrm/#n.平台;月台,站台;坛;讲台;厚底松糕鞋
+play#/pleɪ/#vt.游戏;扮演;演奏;播放;同…比赛#vi.演奏;玩耍;上演;参加比赛#n.游戏;比赛;剧本#n.(Play)人名;(法、瑞典)普莱
+player#/ˈpleɪər/#n.运动员,比赛者;游戏者,做游戏的人;演奏者,表演者;演员;播放器
+playground#/ˈpleɪɡraʊnd/#n.运动场,操场;游乐场
+plea#/pliː/#n.恳求,请求;辩解,辩护;借口,托辞
+plead#/pliːd/#vt.借口;为...辩护;托称#vi.恳求;辩护
+pleasant#/ˈpleznt/#adj.令人愉快的;舒适的;讨人喜欢的;和蔼可亲的#n.(Pleasant)(英)普莱曾特(人名)
+please#/pliːz/#vt.使喜欢;使高兴,使满意#vi.讨人喜欢;令人高兴#int.请(礼貌用语)
+pleasure#/ˈpleʒər/#n.快乐;希望;娱乐;令人高兴的事#vt.使高兴;使满意#vi.高兴;寻欢作乐
+pledge#/pledʒ/#n.保证,誓言;抵押;抵押品,典当物#vt.保证,许诺;用……抵押;举杯祝……健康#n.(Pledge)人名;(英)普莱奇
+plentiful#/ˈplentɪfl/#adj.丰富的;许多的;丰饶的;众多的
+plenty#/ˈplenti/#n.丰富,大量;充足#adj.足够的,很多的#adv.足够#pron.大量;充足;富裕#n.(Plenty)普伦蒂(人名)
+plot#/plɑːt/#n.情节;图表;阴谋;(专用的)小块土地#vt.密谋;绘图;划分;标绘#vi.密谋;策划;绘制#n.(Plot)(捷、法)普洛特;普洛(人名)
+plough#/plaʊ/#vt.犁;耕#vi.用犁耕田;开路#n.犁;耕地(等于plow)#n.(Plough)人名;(英)普劳
+pluck#/plʌk/#n.勇气#v.拔去(鸡、鸭等)毛,采集
+plug#/plʌɡ/#n.插头;塞子;栓#vi.塞住;用插头将与电源接通#vt.插入;塞住;接插头
+plunge#/plʌndʒ/#v.使突然地下落;猛插;骤降;陡峭地向下倾斜;颠簸;跳进;(使)陷入;栽种#n.突然跌落;(价格、数量等)骤降;投入;跳进;跳水,快速游泳
+plural#/ˈplʊrəl/#adj.(语法)复数(形式)的;多样的#n.(语法)复数(形式);(讽)黑人
+plus#/plʌs/#prep.加上#adj.正的,加的
+pocket#/ˈpɑːkɪt/#n.口袋;钱;容器#vt.隐藏;忍受;将…放入衣袋#vi.形成袋或囊#adj.小型的,袖珍的;金钱上的
+poem#/ˈpoʊəm/#n.诗
+poet#/ˈpoʊət/#n.诗人
+poetry#/ˈpoʊətri/#n.诗;诗意,诗情;诗歌艺术
+point#/pɔɪnt/#n.要点;得分;标点;[机]尖端#vt.指向;弄尖;加标点于#vi.表明;指向#n.(Point)人名;(法)普安
+poison#/ˈpɔɪzn/#n.毒药,败坏道德之事,毒害#vt.毒害,败坏,使中毒#vi.放毒,下毒
+poisonous#/ˈpɔɪzənəs/#adj.有毒的;恶毒的;讨厌的
+poke#/poʊk/#vi.刺,捅;戳;伸出;刺探;闲荡#vt.刺,捅;戳;拨开#n.戳;刺;袋子;懒汉
+polar#/ˈpoʊlər/#adj.极地的;两极的;正好相反的#n.极面;极线#n.(Polar)人名;(德、西)波拉尔
+pole#/poʊl/#n.杆;极点;电极#vt.用竿支撑#n.(Pole)人名;(英)波尔;(俄)波列;(塞)波莱
+police#/pəˈliːs/#n.警察,警方;治安#vt.监督;管辖;维持治安;为…配备警察#adj.警察的;有关警察的
+policeman#/pəˈliːsmən/#n.警察,警员;[分化]淀帚(橡皮头玻璃搅棒)
+policy#/ˈpɑːləsi/#n.政策,方针;保险单
+polish#/ˈpɑːlɪʃ/#n.磨光,光泽,上光剂,优雅,精良#vt.擦亮,发亮,磨光,推敲#vi.发亮,变光滑#adj.波兰的#n.波兰人Polish波兰(Poland)的
+Polish#/ˈpɑːlɪʃ/#adj.波兰的#n.波兰人;波兰语
+polite#/pəˈlaɪt/#adj.有礼貌的,客气的;文雅的;上流的;优雅的
+political#/pəˈlɪtɪkl/#adj.政治的;党派的
+politician#/ˌpɑːləˈtɪʃn/#n.政治家,政客
+politics#/ˈpɑːlətɪks/#n.政治,政治学;政治活动;政纲
+poll#/poʊl/#n.选举之投票,民意测验#v.投票,获得选票,选举中获得
+pollute#/pəˈluːt/#vt.污染;玷污;败坏
+pollution#/pəˈluːʃn/#n.污染;污染物
+pond#/pɑːnd/#n.池塘;(thepond)(非正式)大西洋#v.拦截(流水等液体)形成小湖#n.(Pond)(美、爱)庞德(人名)
+ponder#/ˈpɑːndər/#vt.仔细考虑;衡量#vi.考虑;沉思#n.(Ponder)人名;(英)庞德
+pool#/puːl/#n.联营;撞球;水塘;共同资金#vi.联营,合伙经营#vt.合伙经营#n.(Pool)人名;(英、西)普尔;(芬、德)波尔
+poor#/pʊr,pɔːr/#adj.贫穷的;可怜的;贫乏的;卑鄙的#n.(Poor)(美)普尔(人名)
+pop#/pɑːp/#n.取出,砰然声,枪击,流行乐曲;#adj.流行的,热门的,通俗的;#vt.开枪打,抛出,取出,突然伸出,突然行动;#adv.突然,砰地;#vi.发出爆裂声,爆开,射击,突然出现,瞪大;#n.口汽水;PostOfficeProtocol,电子邮件协议
+Pope#/poʊp/#n.蒲伯(英国诗人);罗马教皇
+popular#/ˈpɑːpjələr/#adj.流行的,通俗的;受欢迎的;大众的;普及的
+population#/ˌpɑːpjuˈleɪʃn/#n.人口;[生物]种群,[生物]群体;全体居民;[统计学]总体
+porch#/pɔːrtʃ/#n.门廊;走廊
+pore#/pɔːr/#n.(皮肤上的)毛孔;(植物的)气孔,孔隙#v.仔细打量,审视;凝视;认真研读,审阅;深思熟虑#n.(Pore)(美、印)波雷(人名)
+pork#/pɔːrk/#n.猪肉#vt.与女子性交#n.(Pork)人名;(俄)波尔克
+porridge#/ˈpɔːrɪdʒ/#n.粥,糊;麦片粥#vt.服刑
+port#/pɔːrt/#n.港口,口岸;(计算机的)端口;左舷;舱门#vi.转向左舷#vt.持(枪);左转舵#n.(Port)人名;(英)波特;(法)波尔;(德、俄、匈、捷)波尔特
+portable#/ˈpɔːrtəbl/#adj.手提的,便携式的;轻便的#n.手提式打字机
+porter#/'potər/#n.门房;服务员;行李搬运工;守门人#n.(Porter)人名;(英、西、葡)波特;(德)波特
+portion#/ˈpɔːrʃn/#n.部分;一份;命运#vt.分配;给…嫁妆
+portrait#/ˈpɔːrtrət/#n.肖像;描写;半身雕塑像#n.(Portrait)人名;(法)波特雷
+portray#/pɔːrˈtreɪ/#vt.描绘;扮演
+Portugal#/ˈpɔːrtʃʊɡl/#n.葡萄牙(欧洲西南部国家)
+Portuguese#/ˌpɔːrtʃuˈɡiːz/#adj.葡萄牙的;葡萄牙人的;葡萄牙语的;葡萄牙文化的#n.葡萄牙语;葡萄牙人
+pose#/poʊz/#vt.造成,形成;摆姿势;装模作样;提出…讨论#vi.摆姿势;佯装;矫揉造作#n.姿势,姿态;装模作样
+position#/pəˈzɪʃn/#n.位置;姿态;处境,地位;观点;职位,工作;站位#v.安置;把……放在适当位置
+positive#/ˈpɑːzətɪv/#adj.积极的;[数]正的,[医][化学]阳性的;确定的,肯定的;实际的,真实的;绝对的#n.正数;[摄]正片
+possess#/pəˈzes/#vt.控制;使掌握;持有;迷住;拥有,具备
+possession#/pəˈzeʃn/#n.拥有;财产;领地;自制;着迷
+possibility#/ˌpɑːsəˈbɪlə/#n.可能性;可能发生的事物
+possible#/ˈpɑːsəbl/#adj.可能的;合理的;合适的#n.可能性;合适的人;可能的事物
+possibly#/ˈpɑːsəbli/#adv.可能地;也许;大概
+post#/poʊst/#n.岗位;邮件;标杆#vt.张贴;公布;邮递;布置#vi.快速行进#n.(Post)人名;(英、西、捷、瑞典、荷)波斯特
+postage#/ˈpoʊstɪdʒ/#n.邮资,邮费
+poster#/ˈpoʊstər/#n.海报,广告;招贴#n.(Poster)人名;(英)波斯特
+postman#/ˈpoʊstmən/#n.邮递员;邮差
+postpone#/poʊˈspoʊn/#vt.使……延期;把……放在次要地位;把……放在后面#vi.延缓,延迟;延缓发作
+postulate#/ˈpɑːstʃəleɪt;ˈpɑːstʃələt/#vt.假定;要求;视…为理所当然#n.基本条件;假定
+pot#/pɑːt/#n.壶;盆;罐#vt.把…装罐;射击;节略#vi.随手射击#n.(Pot)人名;(柬)布特;(捷)波特;(法)波
+potato#/pəˈteɪtoʊ/#n.[作物]土豆,[作物]马铃薯
+potential#/pəˈtenʃl/#adj.潜在的,可能的;势的#n.潜能,可能性;电势
+pound#/paʊnd/#n.英镑;重击,重击声;兽栏;拘留所#vt.捣烂;敲打;监禁,拘留#vi.连续重击,猛击#n.(Pound)人名;(英)庞德
+pour#/pɔːr/#v.灌,倒;倾泻;(雨)倾盆而下;涌进,涌出;斟(饮料);纷至沓来#n.灌,注;倾泻;倾盆大雨#n.(Pour)(美、捷)保尔(人名)
+poverty#/ˈpɑːvər/#n.贫困;困难;缺少;低劣
+powder#/ˈpaʊdər/#n.粉;粉末;[化工][军]火药;尘土#vt.使成粉末;撒粉;搽粉于#vi.搽粉;变成粉末
+power#/ˈpaʊər/#n.能力,力量,动力,权力,[数]幂,[物]功率#vt.使...有力量,供以动力,激励
+powerful#/ˈpaʊərfl/#adj.强大的;强有力的#adv.很;非常
+practicable#/ˈpræktɪkəbl/#adj.可用的;行得通的;可实行的
+practical#/ˈpræktɪkl/#adj.实际的;实用性的
+practically#/ˈpræktɪkli/#adv.实际地;几乎;事实上
+practice#/ˈpræktɪs/#n.实践;练习;惯例#vi.练习;实习;实行#vt.练习;实习;实行
+practise#/ˈpræktɪs/#v.练习,实践;经常做;从事;实施,实行;信奉;阴谋策划
+praise#/preɪz/#v.赞扬;(尤指唱歌)歌颂(上帝)#n.赞扬,称赞;(对上帝的)颂扬;崇拜
+pray#/preɪ/#vt.祈祷;恳求;央求#vi.祈祷;请;恳求#n.(Pray)人名;(匈)普劳伊;(英)普雷
+prayer#/prer/#n.祈祷,祷告;恳求;祈祷文
+preach#/priːtʃ/#vt.说教;讲道;鼓吹;传道;反复灌输#vi.说教;讲道;鼓吹;宣扬#n.说教
+precaution#/prɪˈkɔːʃn/#n.预防,警惕;预防措施#vt.警惕;预先警告
+precede#/prɪˈsiːd/#vt.领先,在…之前;优于,高于#vi.领先,在前面
+preceding#/prɪˈsiːdɪŋ/#adj.在前的;前述的#v.在...之前(precede的ing形式)
+precious#/ˈpreʃəs/#adj.宝贵的;珍贵的;矫揉造作的#n.(Precious)人名;(英)普雷舍斯,普雷舍丝(女名)
+precipitate#/prɪˈsɪpɪteɪt/#n.沉淀物#vt.猛抛,使陷入,促成,使沉淀#vi.猛地落下#adj.突如其来的,陡然下降(或下落)的,贸然轻率的
+precise#/prɪˈsaɪs/#adj.精确的;明确的;严格的
+precision#/prɪˈsɪʒn/#n.精度,[数]精密度;精确#adj.精密的,精确的
+preclude#/prɪˈkluːd/#vt.排除;妨碍;阻止
+predecessor#/ˈpredəsesər/#n.前任,前辈
+predict#/prɪˈdɪkt/#v.预言,预知,预卜;做预报;断言
+predominant#/prɪˈdɑːmɪnənt/#adj.主要的;卓越的;支配的;有力的;有影响的
+preface#/ˈprefəs/#n.前言;引语#vt.为…加序言;以…开始#vi.作序
+prefer#/prɪˈfɜːr/#vt.更喜欢;宁愿;提出;提升#vi.喜欢;愿意
+preferable#/ˈprefrəbl/#adj.更好的,更可取的;更合意的
+preference#/ˈprefrəns/#n.偏爱,倾向;优先权
+pregnant#/ˈpreɡnənt/#adj.怀孕的;富有意义的
+prejudice#/ˈpredʒudɪs/#n.偏见;侵害#vt.损害;使有偏见
+preliminary#/prɪˈlɪmɪneri/#adj.初步的;开始的;预备的#n.初步行动;准备工作;预赛,预试
+premature#/ˌpriːməˈtʃʊr,ˌpriːməˈtʊr/#adj.早产的;不成熟的;比预期早的#n.早产儿;过早发生的事物
+premier#/prɪˈmɪr,prɪˈmjɪr/#adj.首要的;第一的;最初的#n.总理,首相;(加拿大的)地区总理
+premise#/ˈpremɪs/#n.前提,假定;(常复数)商店、餐馆、公司等使用的房屋及土地;(常复数)上诉各项#v.以……为前提;引出,预先提出;说明
+premium#/ˈpriːmiəm/#n.额外费用;奖金;保险费;溢价#adj.高价的;优质的
+preparation#/ˌprepəˈreɪʃn/#n.预备;准备
+prepare#/prɪˈper/#vt.准备;使适合;装备;起草#vi.预备;做好思想准备
+preposition#/ˌprepəˈzɪʃn/#n.介词;前置词
+prescribe#/prɪˈskraɪb/#vi.规定;开药方#vt.规定;开处方
+prescription#/prɪˈskrɪpʃn/#n.药方;指示;惯例#adj.凭处方方可购买的
+presence#/ˈprezns/#n.存在;出席;参加;风度;仪态
+present#/ˈpreznt/#n.赠品,礼物,现在,瞄准#adj.现在的,出席的,当面的#vt.介绍,引见,给,赠送,上演,提出,呈现#vi.举枪瞄准
+presentation#/ˌpriːzenˈteɪʃn/#n.展示;描述,陈述;介绍;赠送
+presently#/ˈprezntli/#adv.(美)目前;不久
+preserve#/prɪˈzɜːrv/#vt.保存;保护;维持;腌;禁猎#n.保护区;禁猎地;(某人或群体的)专门活动;果酱;蜜饯;腌菜
+preside#/prɪˈzaɪd/#vi.主持,担任会议主席#vt.管理
+president#/ˈprezɪdənt/#n.总统;董事长;校长;主席;总裁
+press#/pres/#n.压,按,印刷,压力,拥挤,紧握,新闻#vt.压,压榨,紧抱,逼迫#vi.压,逼迫,拥挤,受压
+pressure#/ˈpreʃər/#n.压力;压迫,[物]压强#vt.迫使;密封;使……增压
+prestige#/preˈsːʒ/#n.威望,声望;声誉#adj.令人敬仰的;受尊重的;贵重的#n.(Prestige)(英)普雷斯蒂奇(人名)
+presumably#/prɪˈzuːməbli/#adv.大概;推测起来;可假定
+presume#/prɪˈzuːm/#vt.假定;推测;擅自;意味着#vi.相信;擅自行为
+pretend#/prɪˈtend/#vi.假装,伪装,佯装#adj.假装的#vt.假装,伪装,模拟
+pretext#/ˈpriːtekst/#n.借口;托辞#vt.以…为借口
+pretty#/ˈprɪti/#adj.漂亮的,可爱的,优美的,机灵的,恰当的
+prevail#/prɪˈveɪl/#vi.盛行,流行;战胜,获胜
+prevalent#/ˈprevələnt/#adj.流行的;普遍的,广传的
+prevent#/prɪˈvent/#vt.预防,防止;阻止#vi.妨碍,阻止
+previous#/ˈpriːviəs/#adj.以前的;早先的;过早的#adv.在先;在…以前
+previously#/ˈpriːviəsli/#adv.以前;预先;仓促地
+prey#/preɪ/#n.猎物;受害者,牺牲品;(情绪易受伤的)脆弱的人;掠夺品#v.捕食;伤害;折磨,困扰#n.(Prey)(美、德、爱)普赖(人名)
+price#/praɪs/#n.价格;价值;代价#vt.给……定价;问……的价格#n.(Price)人名;(英)普赖斯;(法)普里斯;(葡、瑞典)普里塞
+pride#/praɪd/#n.自豪;骄傲;自尊心;狮群#vt.使得意,以...自豪#vi.自豪#n.(Pride)人名;(英)普赖德
+priest#/priːst/#n.牧师;神父;教士#vt.使成为神职人员;任命…为祭司#n.(Priest)人名;(英、德)普里斯特
+primarily#/praɪˈmerəli/#adv.首先;主要地,根本上
+primary#/ˈpraɪmeri/#adj.主要的;初级的;基本的#n.原色;最主要者
+prime#/praɪm/#adj.主要的;最好的;基本的#adv.极好地#n.初期;青年;精华;全盛时期#vt.使准备好;填装#vi.作准备#n.(Prime)人名;(英)普赖姆;(德)普里梅
+primitive#/ˈprɪmətɪv/#adj.原始的,远古的;简单的,粗糙的#n.原始人
+prince#/prɪns/#n.王子,国君;亲王;贵族#n.(Prince)人名;(英、葡)普林斯;(法)普兰斯;
+princess#/ˈprɪnses/#n.公主;王妃;女巨头#n.(Princess)人名;(英)普琳西丝;
+principal#/ˈprɪnsəpl/#adj.主要的;资本的#n.首长;校长;资本;当事人
+principle#/ˈprɪnsəpl/#n.原理,原则;主义,道义;本质,本义;根源,源泉
+print#/prɪnt/#n.印刷业;印花布;印刷字体;印章;印记#vt.印刷;打印;刊载;用印刷体写;在…印花样#vi.印刷;出版;用印刷体写
+prior#/ˈpraɪər/#adj.优先的,在前的#n.预先#adv.在
+priority#/praɪˈɔːrə/#n.优先;优先权;[数]优先次序;优先考虑的事
+prison#/ˈprɪzn/#n.监狱;监禁;拘留所#vt.监禁,关押#n.(Prison)人名;(德)普里松
+prisoner#/ˈprɪznər/#n.囚犯,犯人;俘虏;刑事被告
+privacy#/ˈpraɪvəsi/#n.隐私;秘密;隐居;隐居处
+private#/ˈpraɪvət/#adj.私人的,私有的,私营的,秘密的#n.士兵
+privilege#/ˈprɪvəlɪdʒ/#n.特权;优待#vt.给予…特权;特免
+prize#/praɪz/#n.奖品;奖赏;战利品#vt.珍视;捕获;估价#adj.获奖的
+probability#/ˌprɑːbəˈbɪlə/#n.可能性;机率;[数]或然率
+probable#/ˈprɑːbəbl/#adj.很可能的;可信的#n.很可能的事;大有希望的候选者
+probably#/ˈprɑːbəbli/#adv.大概;或许;很可能
+probe#/proʊb/#n.探针;调查#vi.调查;探测#vt.探查;用探针探测#n.(Probe)人名;(法)普罗布
+problem#/ˈprɑːbləm/#n.难题;引起麻烦的人#adj.成问题的;难处理的
+procedure#/prəˈsiːdʒər/#n.程序,手续;步骤
+proceed#/proʊˈsiːd/#vi.开始;继续进行;发生;行进#n.收入,获利
+proceeding#/prəˈsiːdɪŋ/#n.进行;程序;诉讼;事项#v.开始;继续做;行进(proceed的ing形式)
+process#/'prɑses/#n.过程,作用,方法,程序,步骤,进行,推移#vt.加工,处理
+procession#/prəˈseʃn/#n.队伍,行列;一列,一排;列队行进#vi.列队行进#vt.沿著……行进
+proclaim#/prəˈkleɪm/#vt.宣告,公布;声明;表明;赞扬
+produce#/prəˈduːs/#vt.生产;引起;创作;生育,繁殖#n.农产品,产品#vi.生产,创作
+product#/ˈprɑːdʌkt/#n.产品;结果;[数]乘积;作品
+production#/prəˈdʌkʃn/#n.成果;产品;生产;作品
+productive#/prəˈdʌktɪv/#adj.能生产的;生产的,生产性的;多产的;富有成效的
+productivity#/ˌproʊdʌkˈtɪvə,ˌprɑːdʌkˈ#n.生产力;生产率;生产能力
+profession#/prəˈfeʃn/#n.职业,专业;声明,宣布,表白
+professional#/prəˈfeʃənl/#adj.专业的;职业的;职业性的#n.专业人员;职业运动员
+professor#/prəˈfesər/#n.教授;教师;公开表示信仰的人
+proficiency#/prəˈfɪʃnsi/#n.精通,熟练
+profile#/ˈproʊfaɪl/#n.侧面;轮廓;外形;剖面;简况#vt.描…的轮廓;扼要描述#vi.给出轮廓
+profit#/ˈprɑːfɪt/#n.利润;利益#vi.获利;有益#vt.有益于#n.(Profit)(法)普罗菲(人名)
+profitable#/ˈprɑːfɪtəbl/#adj.有利可图的;赚钱的;有益的
+profound#/prəˈfaʊnd/#adj.深厚的;意义深远的;渊博的
+program#/ˈproʊɡræm/#n.程序;计划;大纲#vt.用程序指令;为…制订计划;为…安排节目#vi.编程序;安排节目;设计电脑程式
+progress#/ˈprɑːɡres,ˈprɑːɡrəs/#n.进步,发展;前进#vi.前进,进步;进行#n.(Progress)人名;(赞)普罗格雷斯
+progressive#/prəˈɡresɪv/#adj.进步的;先进的#n.改革论者;进步分子
+prohibit#/prəˈhɪbɪt,proʊˈhɪbɪt/#vt.阻止,禁止
+project#/ˈprɑːdʒekt/#n.计划,方案,事业,企业,工程#v.设计,计划,投射,放映,射出,发射(导弹等),凸出
+prolong#/prəˈlɔːŋ/#vt.延长;拖延
+prominent#/ˈprɑːmɪnənt/#adj.突出的,显著的;杰出的;卓越的
+promise#/ˈprɑːmɪs/#n.许诺,允诺;希望#vt.允诺,许诺;给人以……的指望或希望#vi.许诺;有指望,有前途
+promising#/ˈprɑːmɪsɪŋ/#adj.有希望的,有前途的#v.许诺,答应(promise的现在分词形式)
+promote#/prəˈmoʊt/#vt.促进;提升;推销;发扬#vi.成为王后或其他大于卒的子
+prompt#/prɑːmpt/#n.提示,付款期限#vt.提示,鼓动,促使,(给演员)提白#adj.敏捷的,迅速的,即时的#adv.准时地
+prone#/proʊn/#adj.俯卧的;有…倾向的,易于…的#n.(Prone)人名;(意、法)普罗内
+pronoun#/ˈproʊnaʊn/#n.代词
+pronounce#/prəˈnaʊns/#vt.发音;宣判;断言#vi.发音;作出判断
+pronunciation#/prəˌnʌnsiˈeɪʃn/#n.发音;读法
+proof#/pruːf/#n.证明;证据;校样;考验;验证;试验#adj.防…的;不能透入的;证明用的;耐…的#vt.试验;校对;使不被穿透
+propaganda#/ˌprɑːpəˈɡændə/#n.宣传;传道总会
+propagate#/ˈprɑːpəɡeɪt/#vt.传播;传送;繁殖;宣传#vi.繁殖;增殖
+propel#/prəˈpel/#vt.推进;驱使;激励;驱策
+proper#/ˈprɑːpər/#adj.适当的;本身的;特有的;正派的#adv.完全地#n.(Proper)人名;(英、德)普罗珀
+properly#/ˈprɑːpərli/#adv.适当地;正确地;恰当地
+property#/ˈprɑːpər/#n.性质,性能;财产;所有权
+prophet#/ˈprɑːfɪt/#n.先知;预言者;提倡者
+proportion#/prəˈpɔːrʃn/#n.比例,占比;部分;面积;均衡#vt.使成比例;使均衡;分摊
+proportional#/prəˈpɔːrʃənl/#adj.比例的,成比例的;相称的,均衡的#n.[数]比例项
+proposal#/prəˈpoʊzl/#n.提议,建议;求婚
+propose#/prəˈpoʊz/#vt.建议;打算,计划;求婚#vi.建议;求婚;打算
+proposition#/ˌprɑːpəˈzɪʃn/#n.命题;提议;主题;议题#vt.向……提议;向……求欢
+prose#/proʊz/#n.散文;单调#adj.散文的;平凡的;乏味的#vi.写散文;乏味地讲话#vt.把…写成散文
+prospect#/ˈprɑːspekt/#n.前途;预期;景色#vi.勘探,找矿#vt.勘探,勘察
+prospective#/prəˈspektɪv/#adj.未来的;预期的
+prosperity#/prɑːˈsperəti/#n.繁荣,成功
+prosperous#/ˈprɑːspərəs/#adj.繁荣的;兴旺的
+protect#/prəˈtekt/#vt.保护,防卫;警戒
+protection#/prəˈtekʃn/#n.保护;防卫;护照
+protective#/prəˈtektɪv/#adj.防护的;关切保护的;保护贸易的
+protein#/ˈproʊːn/#n.蛋白质;朊#adj.蛋白质的
+protest#/ˈprəʊtest/#n.抗议,反对;(多来自公证人)拒付证书#v.抗议,反对;坚决表示,断言;拒付
+prototype#/ˈproʊtətaɪp/#n.原型;样本;标准,模范;全真模型;[电]原型滤波网络#vt.制作原型
+proud#/praʊd/#adj.自豪的;得意的;自负的;突出的#n.(Proud)人名;(英)普劳德
+prove#/pruːv/#vt.证明;检验;显示#vi.证明是
+provide#/prəˈvaɪd/#vt.提供;规定;准备;装备#vi.规定;抚养;作准备
+provided#/prəˈvaɪdɪd/#conj.假如,倘若#v.提供,给予(provide的过去式和过去分词)
+province#/ˈprɑːvɪns/#n.省;领域;职权
+provision#/prəˈvɪʒn/#n.规定;条款;准备;[经]供应品#vt.供给…食物及必需品
+provocative#/prəˈvɑːkətɪv/#adj.刺激的,挑拨的;气人的#n.刺激物,挑拨物;兴奋剂
+provoke#/prəˈvoʊk/#vt.驱使;激怒;煽动;惹起
+proximity#/prɑːkˈsɪməti/#n.接近,[数]邻近;接近;接近度,距离;亲近
+psychological#/ˌsaɪkəˈlɑːdʒɪkl/#adj.心理的;心理学的;精神上的
+public#/ˈpʌblɪk/#adj.公众的;政府的;公用的;公立的#n.公众;社会;公共场所#n.(Public)人名;(英)帕布利克
+publication#/ˌpʌblɪˈkeɪʃn/#n.出版;出版物;发表
+publicity#/pʌbˈlɪsəti/#n.宣传,宣扬;公开;广告;注意
+publish#/ˈpʌblɪʃ/#vt.出版;发表;公布#vi.出版;发行;刊印
+pudding#/ˈpʊdɪŋ/#n.布丁
+puff#/pʌf/#n.一阵喷烟,肿块,蓬松,吹嘘,宣传广告#v.喷出,张开,夸张,(使)膨胀,(使)骄傲,喘息,鼓吹,吹捧
+pull#/pʊl/#vt.拉;拔;拖#vi.拉,拖;拔#n.拉,拉绳;拉力,牵引力;拖#n.(Pull)人名;(法)皮尔;(德、瑞典)普尔
+pulse#/pʌls/#n.[电子]脉冲;脉搏#vt.使跳动#vi.跳动,脉跳
+pump#/pʌmp/#n.泵,抽水机#vt.(用泵)抽(水),抽吸
+punch#/pʌntʃ/#n.冲压机;打洞器;钻孔机#vt.开洞;以拳重击#vi.用拳猛击#n.(Punch)人名;(马来)蓬芝;(英)庞奇
+punctual#/ˈpʌŋktʃuəl/#adj.准时的,守时的;精确的
+punish#/ˈpʌnɪʃ/#vt.惩罚;严厉对待;贪婪地吃喝#vi.惩罚
+punishment#/ˈpʌnɪʃmənt/#n.惩罚;严厉对待,虐待
+pupil#/ˈpjuːpl/#n.学生;[解剖]瞳孔;未成年人
+puppet#/ˈpʌpɪt/#n.木偶;傀儡;受他人操纵的人
+purchase#/ˈpɜːrtʃəs/#v.购买;获得,赢得;升起,举起#n.购买;购买的东西;支点;财产置得;(地产的)年收益;紧握;起重装置
+pure#/pjʊr/#adj.纯的;纯粹的;纯洁的;清白的;纯理论的#n.(Pure)人名;(俄)普雷
+purely#/ˈpjʊrli/#adv.纯粹地;仅仅,只不过;完全地;贞淑地;清洁地
+purify#/ˈpjʊrɪfaɪ/#vt.净化;使纯净#vi.净化;变纯净
+purity#/ˈpjʊrəti/#n.[化学]纯度;纯洁;纯净;纯粹#n.(Purity)人名;(肯)普丽蒂
+purple#/ˈpɜːrpl/#adj.紫色的;帝王的;华而不实的#n.紫色;紫袍#vi.变成紫色#vt.使成紫色
+purpose#/ˈpɜːrpəs/#n.目的;用途;意志#vt.决心;企图;打算
+purse#/pɜːrs/#n.(女士)手提袋;(国家、家庭、团体等的)财力#vt.(嘴巴)皱起,使缩拢;撅嘴
+pursue#/pərˈsuː/#vt.继续;从事;追赶;纠缠#vi.追赶;继续进行
+pursuit#/pərˈsuːt/#n.追赶,追求;职业,工作
+push#/pʊʃ/#vt.推动,增加;对…施加压力,逼迫;按;说服#vi.推进;增加;努力争取#n.推,决心;大规模攻势;矢志的追求
+put#/pʊt/#vt.放;表达;移动;安置;赋予#vi.出发;击;航行;发芽#n.掷;笨蛋;投击;怪人#adj.固定不动的#n.(Put)人名;(泰、缅)布
+puzzle#/ˈpʌzl/#v.迷惑,(使)困惑;(因迷惑)而苦思;使……为难#n.谜,智力游戏;拼版玩具;不解之谜;谜一样的人或事物
+qualification#/ˌkwɑːlɪfɪˈkeɪʃn/#n.资格;条件;限制;赋予资格
+qualify#/ˈkwɑːlɪfaɪ/#vt.限定,修饰;使具有资格;证明…合格#vi.取得资格,有资格
+qualitative#/ˈkwɑːlɪteɪtɪv/#adj.定性的;质的,性质上的
+quality#/ˈkwɑːlə/#n.质量,[统计]品质;特性;才能#adj.优质的;高品质的;英俚棒极了
+quantify#/ˈkwɑːntɪfaɪ/#vt.量化;为…定量;确定数量#vi.量化;定量
+quantitative#/ˈkwɑːntəteɪtɪv/#adj.定量的;量的,数量的
+quantity#/ˈkwɑːntə/#n.量,数量;大量;总量
+quarrel#/ˈkwɑːrəl/#n.吵架,口角;反目,失和;争吵(或抱怨)的原因;方头凿,方头投掷物;方镞箭#v.吵架,争论;反对;挑剔;抱怨
+quart#/kwɔːrt/#n.夸脱(容量单位);一夸脱的容器
+quarter#/ˈkwɔːrtər/#n.四分之一;地区;季度;一刻钟;两角五分;节#vi.住宿;驻扎#vt.将…四等分;供某人住宿#num.四分之一
+quarterly#/ˈkwɔːrtərli/#adj.季度的,按季度的;一年四次的#adv.按季度,[农]一季一次地;纵横四分地#n.季刊#n.(Quarterly)人名;(英)夸特利
+quartz#/kwɔːrts/#n.石英
+queen#/kwiːn/#n.女王,王后;(纸牌中的)皇后;(蜜蜂等的)蜂王#vt.使…成为女王或王后#vi.做女王#n.(Queen)人名;(英)奎因
+queer#/kwɪr/#n.同性恋者#adj.奇怪的,可疑的,不舒服的#vt.搞糟#n.同性恋者
+quench#/kwentʃ/#vt.熄灭,[机]淬火;解渴;结束;冷浸#vi.熄灭;平息
+quest#/kwest/#n.追求;寻找;任务(游戏术语)#vi.追求;寻找#vt.探索#n.(Quest)人名;(德)奎斯特
+question#/ˈkwestʃən/#n.问题,疑问;询问;疑问句#vt.询问;怀疑;审问#vi.询问;怀疑;审问
+questionnaire#/ˌkwestʃəˈner/#n.问卷;调查表
+queue#/kjuː/#n.队列;长队;辫子#vi.排队;排队等候#vt.将…梳成辫子;使…排队
+quick#/kwɪk/#adj.快的,迅速的,敏捷的,急剧的,活泼的#adv.快#n.活人,生物,要点,本质,核心,感觉敏锐的部位
+quicken#/ˈkwɪkən/#vi.加快;变活跃;进入胎动期#vt.加快;鼓舞;使复活
+quickly#/ˈkwɪkli/#adv.迅速地;很快地
+quiet#/ˈkwaɪət/#adj.安静的;安定的;不动的;温顺的#n.安静;和平#vt.使平息;安慰#vi.平静下来
+quilt#/kwɪlt/#n.被子;棉被#vt.东拼西凑地编;加软衬料后缝制#vi.缝被子
+quit#/kwɪt/#vt.离开;放弃;停止;使…解除#vi.离开;辞职;停止#n.离开;[计]退出#adj.摆脱了…的;已经了结的#n.(Quit)人名;(英)奎特
+quite#/kwaɪt/#adv.很;相当;完全
+quiver#/ˈkwɪvər/#n.颤抖;箭袋;震动#vi.颤抖;振动#vt.使…颤动;抖动
+quiz#/kwɪz/#n.考查;恶作剧;课堂测验#vt.挖苦;张望;对…进行测验
+quotation#/kwoʊˈteɪʃn/#n.[贸易]报价单;引用语;引证
+quote#/kwoʊt/#vt.引用,引证,提供,提出,报(价)
+rabbit#/ˈræbɪt/#n.兔子,野兔#vt.让…见鬼去吧#vi.猎兔
+race#/reɪs/#n.种族,种族气质,种族特征,赛跑,急流,姜根#vi.赛跑,疾走#vt.与...赛跑,使空转
+racial#/ˈreɪʃl/#adj.种族的;人种的
+rack#/ræk/#n.[机]齿条;架子;拷问台#vi.变形;随风飘;小步跑#vt.折磨;榨取#n.(Rack)人名;(法、德、意、匈)拉克
+racket#/ˈrækɪt/#n.球拍;吵闹,喧闹#vt.过着花天酒地的生活#vi.过着花天酒地的生活
+radar#/ˈreɪdɑːr/#n.[雷达]雷达,无线电探测器#n.(Radar)人名;(塞)拉达尔
+radiant#/ˈreɪdiənt/#adj.辐射的;容光焕发的;光芒四射的#n.光点;发光的物体
+radiate#/ˈreɪdieɪt/#vt.辐射;传播;流露;发射;广播#vi.辐射;流露;发光;从中心向各方伸展#adj.辐射状的,有射线的
+radiation#/ˌreɪdiˈeɪʃn/#n.辐射;放射物
+radical#/ˈrædɪkl/#adj.激进的;根本的;彻底的#n.基础;激进分子;[物化]原子团;[数]根数
+radio#/ˈreɪdioʊ/#n.收音机;无线电广播设备#vi.用无线电进行通信#vt.用无线电发送#n.(Radio)人名;(西)拉迪奥
+radioactive#/ˌreɪdioʊˈæktɪv/#adj.[核]放射性的;有辐射的
+radioactivity#/ˌreɪdioʊækˈtɪvəti/#n.放射性;[核]放射能力;[核]放射现象
+radish#/ˈrædɪʃ/#n.萝卜,小萝卜#n.(Radish)人名;(俄)拉季什;(塞)拉迪什
+radium#/ˈreɪdiəm/#n.[化学]镭
+radius#/ˈreɪdiəs/#n.半径,半径范围;[解剖]桡骨;辐射光线;有效航程#n.(Radius)人名;(意、印尼)拉迪乌斯;(英)雷迪厄斯;(法)拉迪于斯
+rag#/ræɡ/#n.破布;碎屑#vt.戏弄;责骂#vi.变破碎;穿着讲究
+rage#/reɪdʒ/#n.愤怒;狂暴,肆虐;情绪激动#vi.大怒,发怒;流行,风行#n.(Rage)人名;(丹)拉厄
+raid#/reɪd/#n.袭击;突袭;搜捕;抢劫#vi.突袭#vt.袭击,突袭#n.(Raid)(阿拉伯)拉伊德(人名)#abbr.(Raid)独立硬盘冗余阵列(RedundantArrayofInexpensiveDisks)
+rail#/reɪl/#n.铁轨;扶手;横杆;围栏#vi.抱怨;责骂#vt.铺铁轨;以横木围栏
+railroad#/ˈreɪlroʊd/#n.铁路;铁路公司#v.迫使……仓促行事;强使……草率通过;轻率判处;在铁路工作;乘火车旅行
+railway#/ˈreɪlweɪ/#n.(英)铁路;轨道;铁道部门#vi.乘火车旅行
+rain#/reɪn/#n.雨;下雨;雨天;雨季#vi.下雨;降雨#vt.大量地给;使大量落下#n.(Rain)人名;(法)兰;(英)雷恩;(罗、捷)赖恩
+rainbow#/ˈreɪnboʊ/#n.彩虹;五彩缤纷的排列;幻想#adj.五彩缤纷的;彩虹状的#vt.使呈彩虹状;如彩虹般装饰#vi.呈彩虹状#n.(Rainbow)人名;(英)雷恩博
+rainy#/ˈreɪni/#adj.下雨的;多雨的#n.(Rainy)人名;(英)雷尼
+raise#/reɪz/#vt.提高;筹集;养育;升起;饲养,种植#vi.上升#n.高地;上升;加薪#n.(Raise)(意、法、英、美)雷兹(人名)
+rake#/reɪk/#n.耙子,斜度,向船尾的倾斜,放荡者#v.搜索,掠过,用耙子耙,(使)倾斜
+rally#/ˈræli/#v.重整旗鼓,给予新力量,(使)恢复健康,力量,决心,集结#n.集会
+random#/ˈrændəm/#adj.[数]随机的;任意的;胡乱的#n.随意#adv.胡乱地
+range#/reɪndʒ/#n.范围;幅度;排;山脉#vi.(在...内)变动;平行,列为一行;延伸;漫游;射程达到#vt.漫游;放牧;使并列;归类于;来回走动
+rank#/ræŋk/#n.排;等级;军衔;队列#adj.讨厌的;恶臭的;繁茂的#vt.排列;把…分等#vi.列为;列队#n.(Rank)人名;(英、德、芬、捷)兰克
+rapid#/ˈræpɪd/#adj.迅速的,急促的;飞快的;险峻的#n.急流;高速交通工具,高速交通网
+rapidly#/ˈræpɪdli/#adv.迅速地;很快地;立即
+rare#/rer/#adj.稀有的;稀薄的;半熟的#adj.杰出的;极度的;非常好的#adv.非常;极其#vi.用后腿站起;渴望
+rarely#/ˈrerli/#adv.很少地;难得;罕有地
+rat#/ræt/#n.鼠;卑鄙小人,叛徒#vi.捕鼠;背叛,告密#n.(Rat)(法、意、印、瑞典)拉特;(泰)叻(人名)
+rate#/reɪt/#n.比率,率;速度;价格;等级#vt.认为;估价;责骂#vi.责骂;被评价#n.(Rate)人名;(法、塞)拉特
+rather#/ˈræðər/#adv.宁可,宁愿;相当;准确地说;或多或少地#conj.而不是#int.当然啦(回答问题时用)#n.(Rather)人名;(英)拉瑟
+rating#/ˈreɪtɪŋ/#n.等级;等级评定;额定功率#v.对…评价(rate的ing形式)#n.(Rating)人名;(德)拉廷
+ratio#/ˈreɪʃioʊ/#n.比率,比例
+rational#/ˈræʃnəl/#adj.合理的;理性的#n.有理数
+raw#/rɔː/#adj.生的;未加工的;阴冷的;刺痛的;擦掉皮的;无经验的;(在艺术等方面)不成熟的#n.擦伤处#vt.擦伤#n.(Raw)人名;(英)罗
+ray#/reɪ/#n.射线;光线;鳐鱼#vt.放射;显出#vi.放射光线;浮现#n.(Ray)雷(人名)
+razor#/ˈreɪzər/#n.剃(须)刀#v.用剃刀剃,用剃刀刮
+reach#/riːtʃ/#vi.达到;延伸;伸出手;传开#vt.达到;影响;抵达;伸出#n.范围;延伸;河段;横风行驶#n.(Reach)人名;(柬)列
+react#/riˈækt/#vi.反应,作出反应;产生(化学)反应;
+reaction#/riˈækʃn/#n.反应,感应;反动,复古;反作用
+read#/riːd/#vt.阅读;读懂,理解#vi.读;读起来#n.阅读;读物#adj.有学问的#n.(Read)人名;(英)里德
+reader#/ˈriːdər/#n.读者;阅读器;读物#n.(Reader)人名;(英)里德
+readily#/ˈredɪli/#adv.容易地;乐意地;无困难地
+reading#/ˈriːdɪŋ/#n.阅读,朗读;读物;读数#adj.阅读的#v.阅读(read的ing形式)
+ready#/ˈredi/#adj.准备好;现成的;迅速的;情愿的;快要…的#n.现款;预备好的状态#adv.迅速地;预先#vt.使准备好#n.(Ready)人名;(英)雷迪
+real#/ˈriːəl/#adj.实际的;真实的;实在的#adv.真正地;确实地#n.现实;实数#n.(Real)(德、西、葡、法)雷亚尔;(英)里尔(人名)
+realistic#/ˌriːəˈlɪstɪk/#adj.现实的;现实主义的;逼真的;实在论的
+reality#/riˈæləti/#n.现实;实际;真实
+realize#/ˈriːəlaɪz/#vt.实现;认识到;了解;将某物卖得,把(证券等)变成现钱;变卖
+really#/ˈriːəli/#adv.实际上,事实上;真正地,真实地;真的吗?(表语气)
+realm#/relm/#n.领域,范围;王国
+reap#/riːp/#vt.收获,获得;收割#vi.收割,收获#n.(Reap)人名;(英)里普
+rear#/rɪr/#n.后面;后方部队;屁股#adj.后方的,后面的;背面的#v.抚养;培养;喂养,饲养;栽种,培植;(马等动物)用后腿直立;竖起#adv.向后;在后面
+reason#/ˈriːzn/#n.理由;理性;动机#vi.推论;劝说#vt.说服;推论;辩论#n.(Reason)人名;(英)里森
+reasonable#/ˈriːznəbl/#adj.合理的,公道的;通情达理的
+rebel#/ˈrebl/#n.造反者,叛逆者,反抗者,叛乱者#adj.造反的,叛逆的,反抗的#v.造反,反叛,反抗,叛乱
+rebellion#/rɪˈbeljən/#n.叛乱;反抗;谋反;不服从
+recall#/rɪˈkɔːl/#vt.召回;回想起,记起;取消#n.召回;回忆;撤消
+receipt#/rɪˈsiːt/#n.收到;收据;收入#vt.收到
+receive#/rɪˈsiːv/#vt.收到;接待;接纳#vi.接收
+receiver#/rɪˈsiːvər/#n.(电话)听筒;无线电接收机;(破产公司的)官方接管人;接受者,收受者;购买(或接受)赃物的人;接球手;接受罐,聚集器;机匣
+recent#/ˈriːsnt/#adj.最近的;近代的
+recently#/ˈriːsntli/#adv.最近;新近
+reception#/rɪˈsepʃn/#n.接待;接收;招待会;感受;反应
+recession#/rɪˈseʃn/#n.衰退;不景气;后退;凹处
+recipe#/ˈresəpi/#n.食谱;[临床]处方;秘诀;烹饪法
+recipient#/rɪˈsɪpiənt/#n.容器,接受者;容纳者#adj.容易接受的;容纳的
+reciprocal#/rɪˈsɪprəkl/#adj.互惠的;相互的;倒数的,彼此相反的#n.[数]倒数;互相起作用的事物
+recite#/rɪˈsaɪt/#vt.背诵;叙述;列举#vi.背诵;叙述
+reckless#/ˈrekləs/#adj.鲁莽的,不顾后果的;粗心大意的#n.(Reckless)人名;(英)雷克利斯
+reckon#/ˈrekən/#vt.测算,估计;认为;计算#vi.估计;计算;猜想,料想
+reclaim#/rɪˈkleɪm/#vt.开拓;回收再利用;改造某人,使某人悔改#vi.抗议,喊叫#n.改造,感化;再生胶
+recognition#/ˌrekəɡˈnɪʃn/#n.识别;承认,认出;重视;赞誉;公认
+recognize#/ˈrekəɡnaɪz/#vt.认出,识别;承认;接受,认可;赞赏#vi.确认,承认;具结
+recollect#/ˌrekəˈlekt/#v.回忆,想起
+recommend#/ˌrekəˈmend/#vt.推荐,介绍;劝告;使受欢迎;托付#vi.推荐;建议
+recommendation#/ˌrekəmenˈdeɪʃn/#n.推荐;建议;推荐信
+reconcile#/ˈrekənsaɪl/#vt.使一致;使和解;调停,调解;使顺从
+record#/ˈrekərd;rɪˈkɔːrd/#n.履历,档案,诉状,最高纪录,报告,唱片#vt.记录,标明,将...录音#vi.录音,被录音#adj.创纪录的
+recorder#/rɪˈkɔːrdər/#n.录音机;记录器;记录员;八孔直笛
+recover#/rɪˈkʌvər/#vt.恢复;弥补;重新获得#vi.恢复;胜诉;重新得球#n.还原至预备姿势#n.(Recover)人名;(西)雷科韦尔
+recovery#/rɪˈkʌvəri/#n.恢复,复原;痊愈;重获
+recreation#/ˌriːkriˈeɪʃn/#n.娱乐;消遣;休养
+recruit#/rɪˈkruːt/#v.征募;聘用;通过招募组建;补充;(非正式)说服;(使)恢复健康#n.招聘;新兵;新成员
+rectangular#/rekˈtæŋɡjələr/#adj.矩形的;成直角的
+rectify#/ˈrektɪfaɪ/#vt.改正;精馏;整流
+recur#/rɪˈkɜːr/#vi.复发;重现;采用;再来;循环;递归
+recycle#/ˌriːˈsaɪkl/#v.回收利用;使再循环;重新使用#n.回收利用,循环使用
+red#/red/#n.红色,红衣服,红颜料,赤字,亏空#adj.红(色)的,革命的
+reduce#/rɪˈduːs/#vt.减少;降低;使处于;把…分解#vi.减少;缩小;归纳为
+reduction#/rɪˈdʌkʃn/#n.减少;下降;缩小;还原反应
+redundant#/rɪˈdʌndənt/#adj.多余的,过剩的;被解雇的,失业的;冗长的,累赘的
+reed#/riːd/#n.[作物]芦苇;簧片;牧笛;不可依靠的人#vt.用芦苇盖;用芦苇装饰#n.(Reed)人名;(西、意、瑞典)雷德;(英)里德
+reel#/riːl/#n.(棉纱,电线等的)卷轴,(磁带等的)一盘,旋转,蹒跚#vt.卷...于轴上,使旋转#vi.蹒跚地走,旋转,眩晕,骚乱,退缩,摇晃
+refer#/rɪˈfɜːr/#vi.参考;涉及;提到;查阅#vt.涉及;委托;归诸于;使…求助于
+reference#/ˈrefrəns/#n.参考,参照;涉及,提及;参考书目;介绍信;证明书#vi.引用#vt.引用
+refine#/rɪˈfaɪn/#vt.精炼,提纯;改善;使…文雅
+reflect#/rɪˈflekt/#vt.反映;反射,照出;表达;显示;反省#vi.反射,映现;深思
+reflection#/rɪˈflekʃn/#n.反射;沉思;映象
+reflexion#/rɪˈflekʃn/#n.反射;沉思;映象
+reform#/rɪˈfɔːrm/#v.改革,革新;重组;(使)改过自新;(石油炼制)重整#n.改革,改良;改正#adj.改革的;改革教会的
+refrain#/rɪˈfreɪn/#vi.节制,克制;避免;制止#n.叠句,副歌;重复
+refresh#/rɪˈfreʃ/#vt.更新;使……恢复;使……清新;消除……的疲劳#vi.恢复精神;喝饮料,吃点心;补充给养
+refreshment#/rɪˈfreʃmənt/#n.点心;起提神作用的东西;精力恢复
+refrigerator#/rɪˈfrɪdʒəreɪtər/#n.冰箱,冷藏库
+refuge#/ˈreuːdʒ/#n.避难;避难所;庇护#vt.给予…庇护;接纳…避难#vi.避难;逃避
+refugee#/ˌreuˈdʒiː/#n.难民,避难者;流亡者,逃亡者
+refusal#/rɪˈuːzl/#n.拒绝;优先取舍权;推却;取舍权
+refuse#/rɪˈuːz;ˈreuːs/#vt.拒绝,谢绝#n.废物,垃圾
+refute#/rɪˈuːt/#vt.反驳,驳斥;驳倒
+regard#/rɪˈɡɑːrd/#n.注意;尊重;问候;凝视#vt.注重,考虑;看待;尊敬;把…看作;与…有关#vi.注意,注重;注视#n.(Regard)人名;(西、意)雷加德;(法)勒加尔
+regarding#/rɪˈɡɑːrdɪŋ/#prep.关于,至于;就……而论#v.看待;(以特定方式)注视;注意;听从;涉及(regard的现在分词)
+regardless#/rɪˈɡɑːrdləs/#adj.不管的,不顾的;不注意的#adv.不顾后果地;不加理会;不管怎样,无论如何
+regime#/reɪˈʒiːm/#n.政权,政体;社会制度;管理体制
+region#/ˈriːdʒən/#n.地区;范围;部位
+register#/ˈredʒɪstər/#n.记录,登记簿,登记,注册,寄存器#vt.记录,登记,注册,提示,把...挂号#vi.登记,注册,挂号
+regret#/rɪˈɡret/#vt.后悔;对……感到遗憾;礼貌或正式地表示惋惜或抱歉;对(损失或缺乏)感到痛惜#vi.遗憾#n.遗憾,歉意
+regular#/ˈreɡjələr/#adj.经常的;定期的;有规律的;合格的;整齐的;普通的#n.常客;正式队员;中坚分子#n.(Regular)(以)雷古拉尔(人名)
+regularly#/ˈreɡjələrli/#adv.定期地;有规律地;整齐地;匀称地
+regulate#/ˈreɡjuleɪt/#vt.调节;规定;控制;校准;有系统地管理
+regulation#/ˌreɡjuˈleɪʃn/#n.管理;规则;校准#adj.规定的;平常的
+rehearsal#/rɪˈhɜːrsl/#n.排演;预演;练习;训练;叙述
+reign#/reɪn/#n.君主统治时期;任期;(运动员)持荣誉头衔时期;主宰期#v.统治;成为最佳;盛行,支配
+rein#/reɪn/#n.缰绳;驾驭;统治;支配#vt.控制;驾驭;勒住#vi.勒住马#n.(Rein)人名;(西、阿拉伯)雷因;(法)兰;(英、荷、捷、德、芬、瑞典)赖因;(爱沙)雷恩
+reinforce#/ˌriːɪnˈfɔːrs/#vt.加强,加固;强化;补充#vi.求援;得到增援;给予更多的支持#n.加强;加固物;加固材料
+reject#/rɪˈdʒekt/#vt.拒绝;排斥;抵制;丢弃#n.被弃之物或人;次品
+rejoice#/rɪˈdʒɔɪs/#vi.高兴;庆祝#vt.使高兴
+relate#/rɪˈleɪt/#vt.叙述;使…有联系#vi.涉及;认同;符合;与…有某种联系
+relation#/rɪˈleɪʃn/#n.关系;叙述;故事;亲属关系
+relationship#/rɪˈleɪʃnʃɪp/#n.关系;关联
+relative#/ˈrelətɪv/#adj.相对的;有关系的;成比例的#n.亲戚;相关物;[语]关系词;亲缘植物
+relatively#/ˈrelətɪvli/#adv.相当地;相对地,比较地
+relativity#/ˌreləˈtɪvəti/#n.相对论;相关性;相对性
+relax#/rɪˈlæks/#vi.放松,休息;松懈,松弛;变从容;休养#vt.放松;使休息;使松弛;缓和;使松懈
+relay#/ˈriːleɪ,rɪˈleɪ/#n.接力赛;轮班,轮换;继电器;中继设备#v.传达,转发;转播;重新铺设
+release#/rɪˈliːs/#n.释放,让渡,豁免,发行的书,释放证书#vt.释放,解放,放弃,让与,免除,发表#n.版本,发布
+relevant#/ˈreləvənt/#adj.相关的;切题的;中肯的;有重大关系的;有意义的,目的明确的
+reliability#/rɪˌlaɪəˈbɪləti/#n.可靠性
+reliable#/rɪˈlaɪəbl/#adj.可靠的;可信赖的#n.可靠的人
+reliance#/rɪˈlaɪəns/#n.信赖;信心;受信赖的人或物
+relief#/rɪˈliːf/#n.救济;减轻,解除;安慰;浮雕
+relieve#/rɪˈliːv/#vt.解除,减轻;使不单调乏味;换……的班;解围;使放心
+religion#/rɪˈlɪdʒən/#n.宗教;宗教信仰
+religious#/rɪˈlɪdʒəs/#adj.宗教的;虔诚的;严谨的;修道的#n.修道士;尼姑
+reluctant#/rɪˈlʌktənt/#adj.不情愿的;勉强的;顽抗的
+rely#/rɪˈlaɪ/#vi.依靠;信赖
+remain#/rɪˈmeɪn/#vi.保持;依然;留下;剩余;逗留;残存#n.废语留待;余留
+remainder#/rɪˈmeɪndər/#n.[数]余数,残余;剩余物;其余的人#adj.剩余的;吃剩的#vt.廉价出售;削价出售#vi.廉价出售;削价出售
+remains#/rɪˈmeɪnz/#n.残余物,剩饭菜;古迹,遗迹;遗骸#v.保持(remain的第三人称单数)
+remark#/rɪˈmɑːrk/#n.注意;言辞#vt.评论;觉察#vi.谈论
+remarkable#/rɪˈmɑːrkəbl/#adj.卓越的;非凡的;值得注意的
+remedy#/ˈremədi/#n.补救;疗法;解决办法;(硬币的)公差#v.补救,纠正,改进;治疗
+remember#/rɪˈmembər/#vt.记得;牢记;纪念;代…问好#vi.记得,记起
+remind#/rɪˈmaɪnd/#vt.提醒;使想起
+remnant#/ˈremnənt/#n.剩余#adj.剩余的#n.(Remnant)人名;(英)雷姆南特
+remote#/rɪˈmoʊt/#adj.遥远的;偏僻的;疏远的#n.远程
+removal#/rɪˈmuːvl/#n.免职;移动;排除;搬迁
+remove#/rɪˈmuːv/#vt.移动,迁移;开除;调动#vi.移动,迁移;搬家#n.移动;距离;搬家
+renaissance#/ˈrenəsɑːns/#n.(艺术等的)新生,复活#n.(Renaissance)文艺复兴,文艺复兴风格
+render#/ˈrendər/#vt.呈递,归还,着色,汇报,致使,放弃,表演,实施#vi.给予补偿#n.交纳,粉刷,打底
+renew#/rɪˈnuː/#vt.使更新;续借;续费;复兴;重申#vi.更新;重新开始
+rent#/rent/#n.租金#vt.出租;租用;租借#vi.租;出租#n.(Rent)人名;(瑞典)伦特
+repair#/rɪˈper/#v.修理;修复,补救;(使)重归于好;(结伴)去#n.修理;修补过的部位;具体情况,物质条件;常去;常去的场所
+repay#/rɪˈpeɪ/#vi.偿还;报答;报复#vt.回报;报复;付还
+repeat#/rɪˈpiːt/#n.重复,反复#vt.重做,复述,向他人转述,复制,使再现#vi.重复,留有味道
+repeatedly#/rɪˈpiːtɪdli/#adv.反复地;再三地;屡次地
+repel#/rɪˈpel/#vt.击退;抵制;使厌恶;使不愉快
+repent#/rɪˈpent/#vi.后悔;忏悔#vt.后悔;对…感到后悔#adj.[植]匍匐生根的;[动]爬行的
+repertoire#/ˈrepərtwɑːr/#n.全部节目;计算机指令系统;(美)某人或机器的全部技能
+repetition#/ˌrepəˈtɪʃn/#n.重复;背诵;副本
+replace#/rɪˈpleɪs/#vt.取代,代替;替换,更换;归还,偿还;把…放回原处
+replacement#/rɪˈpleɪsmənt/#n.更换;复位;代替者;补充兵员
+reply#/rɪˈplaɪ/#vi.回答;[法]答辩;回击#n.回答;[法]答辩#vt.回答;答复
+report#/rɪˈpɔːrt/#n.报告;报道;成绩单#vt.报告;报导;使报到#vi.报告;报到;写报导#n.(Report)人名;(匈)雷波特
+reporter#/rɪˈpɔːrtər/#n.记者
+represent#/ˌreprɪˈzent/#vt.代表;表现;描绘;回忆;再赠送#vi.代表;提出异议
+representation#/ˌreprɪzenˈteɪʃn/#n.代表;表现;表示法;陈述
+representative#/ˌreprɪˈzentətɪv/#adj.典型的,有代表性的;代议制的;表现的,体现的;与表象有关的#n.代表;典型;众议员;销售代表
+reproach#/rɪˈproʊtʃ/#n.责备;耻辱#vt.责备;申斥
+reproduce#/ˌriːprəˈduːs/#vt.复制;再生;生殖;使…在脑海中重现#vi.复制;繁殖
+republic#/rɪˈpʌblɪk/#n.共和国;共和政体
+republican#/rɪˈpʌblɪkən/#adj.共和国的;共和政体的;共和主义的;拥护共和政体的#n.共和主义者
+reputation#/ˌrepjuˈteɪʃn/#n.名声,名誉;声望
+request#/rɪˈkwest/#n.请求;需要#vt.要求,请求
+require#/rɪˈkwaɪər/#vt.需要;要求;命令
+requirement#/rɪˈkwaɪərmənt/#n.要求;必要条件;必需品
+rescue#/ˈreskjuː/#v.营救,援救;(非正式)防止……丢失#n.营救,解救,援救;营救行动
+research#/rɪ'sɜːtʃ/#n.研究;调查#vi.研究;调查#vt.研究;调查[过去式researched过去分词researched现在分词researching]
+researcher#/rɪˈsɜːtʃə(r)/#n.研究员
+resemblance#/rɪˈzembləns/#n.相似;相似之处;相似物;肖像
+resemble#/rɪˈzembl/#vt.类似,像
+resent#/rɪˈzent/#vt.怨恨;愤恨;厌恶
+reservation#/ˌrezərˈveɪʃn/#n.预约,预订;保留
+reserve#/rɪˈzɜːrv/#n.储备(物),储藏量,预备队#vt.储备,保存,保留,预定,预约
+reside#/rɪˈzaɪd/#vi.住,居住;属于
+residence#/ˈrezɪdəns/#n.住宅,住处;居住
+resident#/ˈrezɪdənt/#n.居民#adj.居住的,常驻的
+residential#/ˌrezɪˈdenʃl/#adj.住宅的;与居住有关的
+resign#/rɪˈzaɪn/#vt.辞职;放弃;委托;使听从#vi.辞职#n.辞去职务
+resignation#/ˌrezɪɡˈneɪʃn/#n.辞职;放弃;辞职书;顺从
+resist#/rɪˈzɪst/#vi.抵抗,抗拒;忍耐#vt.抵抗;忍耐,忍住#n.[助剂]抗蚀剂;防染剂
+resistance#/rɪˈzɪstəns/#n.阻力;电阻;抵抗;反抗;抵抗力
+resistant#/rɪˈzɪstənt/#adj.抵抗的,反抗的;顽固的#n.抵抗者
+resolution#/ˌrezəˈluːʃn/#n.[物]分辨率;决议;解决;决心
+resolve#/rɪˈzɑːlv/#vt.决定;溶解;使……分解;决心要做……;[主化]解析#vi.解决;决心;分解#n.坚决;决定要做的事
+resonance#/ˈrezənəns/#n.[力]共振;共鸣;反响
+resort#/rɪˈzɔːrt/#n.凭借,手段;度假胜地;常去之地#vi.求助,诉诸;常去;采取某手段或方法
+resource#/rɪˈsɔːs/#n.资源,财力;办法;智谋#vi.向...提供资金
+respect#/rɪˈspekt/#n.尊敬,尊重;方面;敬意#vt.尊敬,尊重;遵守
+respectful#/rɪˈspektfl/#adj.恭敬的;有礼貌的
+respective#/rɪˈspektɪv/#adj.分别的,各自的
+respectively#/rɪˈspektɪvli/#adv.分别地;各自地,独自地
+respond#/rɪˈspɑːnd/#vi.回答;作出反应;承担责任#vt.以…回答#n.应答;唱和
+response#/rɪˈspɑːns/#n.响应;反应;回答
+responsibility#/rɪˌspɑːnsəˈbɪlə/#n.责任,职责;义务
+responsible#/rɪˈspɑːnsəbl/#adj.负责的,可靠的;有责任的
+rest#/rest/#n.休息,静止,支持物,台,架,[音]休止符,其余,其他#vi.休息,睡眠,静止,依靠,搁在,保持(状态),取决于#vt.使休息,使静止,睡眠,依靠,搁在
+restaurant#/ˈrestrɑːnt,ˈrestərɑːnt/#n.餐馆;[经]饭店
+restless#/ˈrestləs/#adj.焦躁不安的;不安宁的;得不到满足的
+restore#/rɪˈstɔːr/#vt.恢复;修复;归还#vi.恢复;还原
+restrain#/rɪˈstreɪn/#vt.抑制,控制;约束;制止
+restraint#/rɪˈstreɪnt/#n.抑制,克制;约束
+restrict#/rɪˈstrɪkt/#vt.限制;约束;限定
+restriction#/rɪˈstrɪkʃn/#n.限制;约束;束缚
+result#/rɪˈzʌlt/#n.结果;成绩;答案;比赛结果#vi.结果;导致;产生
+resultant#/rɪˈzʌltənt/#adj.由此导致的,因而发生的#n.合力,合成速率;结果
+resume#/rɪˈzuːm/#n.摘要,概略,美履历#vt.再继续,重新开始,重新占用,再用,恢复
+retail#/ˈriːteɪl;rɪˈteɪl/#n.零售#v.零售,(以某价格)零售;详述;散播(私密消息)#adv.以零售方式#adj.零售的#n.(Retail)(印)勒塔伊(人名)
+retain#/rɪˈteɪn/#vt.保持;雇;记住
+retell#/ˌriːˈtel/#vt.复述;再讲;重述
+retention#/rɪˈtenʃn/#n.保留;扣留,滞留;记忆力;闭尿
+retire#/rɪˈtaɪər/#vi.退休;撤退;退却;(陪审团)退庭#vt.退休;离开;收回#n.退休;退隐;退兵信号
+retort#/rɪˈtɔːrt/#v.反驳,回嘴;蒸馏;在曲颈瓶里加热;(对侮辱或伤害)进行报复#n.反驳,顶嘴;曲颈瓶,蒸馏瓶;蒸馏,干馏
+retreat#/rɪˈtriːt/#n.撤退;休息寓所#vi.撤退;退避;向后倾#vt.退(棋);使后退
+retrieve#/rɪˈtriːv/#vt.[计]检索;恢复;重新得到#vi.找回猎物#n.[计]检索;恢复,取回
+retrospect#/ˈretrəspekt/#n.回顾,追溯#vi.回顾,追溯;回想#vt.回顾;追忆
+return#/rɪˈtɜːrn/#n.回来,返回,来回票,利润,回答#adj.返回的,回程的,报答的,反向的,重现的#vi.回返,归还#vt.归还,回报,报告,获得,回答,返回
+reveal#/rɪˈviːl/#vt.显示;透露;揭露;泄露#n.揭露;暴露;门侧,窗侧
+revelation#/ˌrevəˈleɪʃn/#n.启示;揭露;出乎意料的事;被揭露的真相
+revenge#/rɪˈvendʒ/#n.报复;复仇#vt.报复;替…报仇;洗雪#vi.报仇;雪耻
+reverse#/rɪˈvɜːrs/#n.相反,背面,反面,倒退#adj.相反的,倒转的,颠倒的#vt.颠倒,倒转
+review#/rɪˈvjuː/#n.回顾;复习;评论;检讨;检阅#vt.回顾;检查;复审#vi.回顾;复习功课;写评论
+revise#/rɪˈvaɪz/#vt.修正;复习;校订#vi.修订;校订;复习功课#n.修订;校订#n.(Revise)人名;(法)勒维斯
+revive#/rɪˈvaɪv/#vi.复兴;复活;苏醒;恢复精神#vt.使复兴;使苏醒;回想起;重演,重播
+revolt#/rɪˈvoʊlt/#n.违抗,反抗;起义,叛乱#v.反抗,反叛;叛逆,违抗;(使)厌恶,反感
+revolution#/ˌrevəˈluːʃn/#n.革命;旋转;运行;循环
+revolutionary#/ˌrevəˈluːʃəneri/#adj.革命的;旋转的;大变革的#n.革命者
+revolve#/rɪˈvɑːlv/#vi.旋转;循环出现;反复考虑#vt.使…旋转;使…循环;反复考虑#n.旋转;循环;旋转舞台
+reward#/rɪˈwɔːrd/#n.[劳经]报酬;报答;酬谢#vt.[劳经]奖励;奖赏
+rhythm#/ˈrɪðəm/#n.节奏;韵律
+rib#/rɪb/#n.肋骨;排骨;肋状物#vt.戏弄;装肋于
+ribbon#/ˈrɪbən/#n.带;缎带;(勋章等的)绶带;带状物;勋表#vi.形成带状#vt.把…撕成条带;用缎带装饰
+rice#/raɪs/#n.稻;米饭#vt.把…捣成米糊状#n.(Rice)人名;(瑞典)里瑟;(塞)里采;(英)赖斯
+rich#/rɪtʃ/#adj.富有的;肥沃的;昂贵的#adj.油腻的,含有很多脂肪#n.(Rich)人名;(丹)里克;(捷)里赫;(英、西)里奇;(葡、法)里什
+rid#/rɪd/#v.使摆脱,使去掉#n.(Rid)(俄、德、英、美)里德(人名)
+riddle#/ˈrɪdl/#n.谜,谜语,神秘人物#v.解谜,出谜,迷惑
+ride#/raɪd/#v.骑,乘#n.骑,乘
+rider#/ˈraɪdər/#n.骑手;附文;扶手#n.(Rider)人名;(英)赖德;(西)里德尔
+ridge#/rɪdʒ/#n.山脊;山脉;屋脊#vt.使成脊状;作垄#vi.成脊状#n.(Ridge)人名;(英)里奇
+ridiculous#/rɪˈdɪkjələs/#adj.可笑的;荒谬的
+rifle#/ˈraɪfl/#n.步枪;来复枪#vt.用步枪射击;抢夺;偷走
+rig#/rɪɡ/#v.操纵;装配;装扮;装上索具;为……提供服装#n.装备;钻探设备;服装;帆装;重型铰接式开车
+right#/raɪt/#adj.正确的;直接的;右方的#vi.复正;恢复平稳#n.正确;右边;正义;权利#adv.正确地;恰当地;彻底地#vt.纠正#n.(Right)人名;(英)赖特
+rigid#/ˈrɪdʒɪd/#adj.严格的;僵硬的,死板的;坚硬的;精确的
+rigorous#/ˈrɪɡərəs/#adj.严格的,严厉的;严密的;严酷的
+rim#/rɪm/#n.边,边缘;轮辋;圆圈#vi.作…的边,装边于#vt.作…的边,装边于#n.(Rim)人名;(俄)里姆
+ring#/rɪŋ/#n.环,环形物,环状,铃声,声调,打电话,拳击场#vt.包围,套住,按铃,敲钟#vi.成环形,响,鸣,敲钟,回响,按铃
+riot#/ˈraɪət/#n.暴乱;放纵;蔓延#vi.骚乱;放荡#vt.浪费,挥霍#n.(Riot)人名;(法)里奥;(西)里奥特
+rip#/rɪp/#vt.撕;锯#vi.裂开,被撕裂#n.裂口,裂缝#n.(Rip)人名;(塞)里普
+ripe#/raɪp/#adj.熟的,成熟的;时机成熟的#n.里佩(Ripe,意、瑞典人名)
+ripen#/ˈraɪpən/#vt.使成熟#vi.成熟
+ripple#/ˈrɪpl/#n.波纹;涟漪;[物]涟波#vi.起潺潺声#vt.在…上形成波痕#n.(Ripple)人名;(英)里普尔
+rise#/raɪz/#n.上升,增加,上涨,高地,小山,发生,出现#vi.升起,起身,发源,起义,高耸,增长,上升,复活#vt.使飞起
+risk#/rɪsk/#n.风险;危险;冒险#vt.冒…的危险#n.(Risk)人名;(英、阿拉伯)里斯克
+ritual#/ˈrɪtʃuəl/#n.仪式;惯例;礼制#adj.仪式的;例行的;礼节性的
+rival#/ˈraɪvl/#n.竞争对手;可与……匹敌的人;同行者#v.与…竞争;比得上某人;赶上(某人);竞争#adj.竞争的#n.(Rival)(俄)里瓦尔(人名)
+river#/ˈrɪvər/#n.河,江#n.(River)人名;(英)里弗
+road#/roʊd/#n.公路,马路;道路;手段#vt.(狗)沿臭迹追逐(猎物)#adj.(美)巡回的#n.(Road)人名;(英)罗德
+roar#/rɔːr/#n.咆哮;吼;轰鸣#vi.咆哮;吼叫;喧闹#vt.咆哮;呼喊;使……轰鸣#n.(Roar)人名;(挪)罗阿尔
+roast#/roʊst/#v.烤,烘,烘烤,暴露于某种热力下以得温暖
+rob#/rɑːb/#v.抢劫,掠夺;(非正式)敲诈;(非正式)盗窃;使……丧失,非法剥夺;(英足)夺(对手)的球
+robber#/ˈrɑːbər/#n.强盗;盗贼
+robbery#/ˈrɑːbəri/#n.抢劫,盗窃;抢掠
+robe#/roʊb/#n.长袍,礼服;制服#vi.穿长袍#vt.使穿长袍#n.(Robe)(德、罗、塞)罗贝;(英、法)罗布(人名)
+robot#/ˈroʊbɑːt/#n.机器人;遥控设备,自动机械;机械般工作的人
+robust#/roʊˈbʌst/#adj.强健的;健康的;粗野的;粗鲁的
+rock#/rɑːk/#n.岩石;摇滚乐;暗礁#vt.摇动;使摇晃#vi.摇动;摇晃#n.(Rock)人名;(英、德、匈、意、瑞典)罗克
+rocket#/ˈrɑːkɪt/#n.火箭;火箭武器;烟花;芝麻菜;(非正式)严厉斥责#v.迅速增加;飞速移动;迅速成功;用火箭武器攻击;用火箭运载
+rod#/rɑːd/#n.棒;惩罚;枝条;权力#n.(Rod)人名;(英、法、德、捷、希)罗德;(阿拉伯)鲁德;(老)罗
+role#/roʊl/#n.角色;任务#n.(Role)人名;(意、塞、赤几)罗莱
+roll#/roʊl/#adj.滚动,滚转,(使)摇摆,(使)摇晃,卷起,卷拢#vt.辗,轧#n.(一)卷,卷形物,摇晃,摆动,名单
+roller#/ˈroʊlər/#n.[机]滚筒;[机]滚轴;辊子;滚转机#n.(Roller)人名;(英、德、俄、匈、罗、捷、瑞典)罗勒;(法)罗莱
+Roman#/ˈroʊmən/#n.罗马人;古罗马语#adj.罗马的;罗马人的
+romance#/ˈroʊmæns/#n.传奇;浪漫史;风流韵事;冒险故事#vi.虚构;渲染;写传奇#n.(Romance)人名;(西)罗曼塞
+romantic#/roʊˈmæntɪk/#adj.浪漫的;多情的;空想的#n.浪漫的人#vt.使…浪漫化
+roof#/ruːf/#n.屋顶;最高处,顶部;最高限度#vt.给…盖屋顶,覆盖#n.(Roof)人名;(英)鲁夫
+room#/ruːm,rʊm/#n.房间,屋子,寓所,场所,地位,空间,机会,余地
+root#/ruːt/#n.根;根源;词根;祖先#vi.生根;根除#vt.生根,固定;根源在于#n.(Root)人名;(英)鲁特;(德、瑞典)罗特
+rope#/roʊp/#n.绳,绳索#vt.捆,绑#vi.拧成绳状#n.(Rope)人名;(英)罗普;(芬)罗佩
+rose#/roʊz/#n.蔷薇属,玫瑰,玫瑰红;vbl.rise的过去式;Rose罗斯(女子名);RemoteOperationsServiceElements,远程操作服务单元
+rot#/rɑːt/#v.(使)腐烂,(使)腐败#n.腐烂,腐败
+rotary#/ˈroʊtəri/#adj.旋转的,转动的;轮流的#n.旋转式机器;[动力]转缸式发动机
+rotate#/ˈroʊteɪt/#vi.旋转;循环#vt.使旋转;使转动;使轮流#adj.[植]辐状的
+rotation#/roʊˈteɪʃn/#n.旋转;循环,轮流
+rotten#/ˈrɑːtn/#adj.腐烂的;堕落的;恶臭的;虚弱的;极坏的#adv.非常#n.(Rotten)人名;(法、德)罗滕
+rough#/rʌf/#adj.粗糙的,粗略的,大致的,粗野的,粗暴的,粗略叙述的#v.大体描述#adv.粗糙地
+roughly#/ˈrʌfli/#adv.粗糙地;概略地
+round#/raʊnd/#n.圆,圆形物,巡回,一轮;#adj.圆的,丰满的,大概的,完全的,率直的;#prep.围着,附近,绕过,在...周围;#vt.弄圆,使成圆形,绕行,完成,四舍五入#vi.变圆,发胖,环行,拐弯,进展;#adv.围绕着,循环地,在周围,迂回地,朝反方向,挨个
+rouse#/raʊz/#vt.唤醒;激起,使振奋;惊起#vi.醒来;奋起#n.觉醒;奋起#n.(Rouse)人名;(英)劳斯
+route#/ruːt,raʊt/#n.路线,路程,通道#v.发送
+routine#/ruːˈːn/#n.常规,惯例;生活乏味;(演出中的)一套动作;(计算机)例行程序#adj.常规的,例行的;平常的;乏味的#v.按惯例安排
+row#/roʊ;raʊ/#n.行,排;划船;街道;吵闹#vt.划船;使……成排#vi.划船;争吵#n.(Row)人名;(英)罗
+royal#/ˈrɔɪəl/#adj.皇家的;盛大的;女王的;高贵的;第一流的#n.王室;王室成员
+royalty#/ˈrɔɪəlti/#n.皇室;版税;王权;专利税
+rub#/rʌb/#vt.擦;摩擦;惹怒#vi.擦;摩擦;擦破#n.摩擦;障碍;磨损处#n.(Rub)人名;(捷)鲁布
+rubber#/ˈrʌbər/#n.橡胶;橡皮;合成橡胶;避孕套#adj.橡胶制成的#vt.涂橡胶于;用橡胶制造#vi.扭转脖子看;好奇地引颈而望#n.(Rubber)(西鲁)韦尔(人名)
+rubbish#/ˈrʌbɪʃ/#n.垃圾,废物,废话
+rude#/ruːd/#adj.粗鲁的;无礼的;狂暴的;未开化的#n.(Rude)(美)鲁德(人名)
+rug#/rʌɡ/#n.小地毯;毛皮地毯;男子假发#n.(Rug)人名;(塞)鲁格
+ruin#/ˈruːɪn/#v.(使)破产,(使)堕落,毁灭#n.毁灭,崩溃,(pl.)废墟,遗迹
+rule#/ruːl/#n.规则,惯例,统治,章程,破折号,准则,标准,控制#vt.规定,统治,支配,裁决#vi.统治,管辖,裁定#n.规则,水线
+ruler#/ˈruːlər/#n.尺;统治者;[测]划线板,划线的人
+rumour#/ˈruːmər/#n.谣言#vt.传闻
+run#/rʌn/#vi.经营;奔跑;运转#vt.管理,经营;运行;参赛#n.奔跑;赛跑;趋向;奔跑的路程#n.(Run)人名;(塞)鲁恩
+runner#/ˈrʌnər/#n.跑步者;走私者;推销员;送信人#n.(Runner)(英)朗纳(人名)
+rupture#/ˈrʌptʃər/#n.破裂;决裂;疝气#vi.破裂;发疝气#vt.使破裂;断绝;发生疝
+rural#/ˈrʊrəl/#adj.农村的,乡下的;田园的,有乡村风味的
+rush#/rʌʃ/#n.冲进;匆促;急流;灯心草#adj.急需的#vt.使冲;突袭;匆忙地做;飞跃#vi.冲;奔;闯;赶紧;涌现#n.(Rush)人名;(英)拉什
+Russian#/ˈrʌʃn/#adj.俄国的;俄语的#n.俄国人;俄语
+rust#/rʌst/#n.锈;生锈;[植保]锈病#vt.使生锈;腐蚀#vi.生锈;成铁锈色;变迟钝#n.(Rust)人名;(英)拉斯特;(德、捷、瑞典)鲁斯特;(法)吕斯特
+rusty#/ˈrʌsti/#adj.生锈的,腐蚀的;铁锈色的,锈色的;迟钝的
+sack#/sæk/#n.麻布袋;洗劫#vt.解雇;把……装入袋;劫掠#n.(Sack)人名;(英、法、葡、瑞典)萨克;(德)扎克
+sacred#/ˈseɪkrɪd/#adj.神的;神圣的;宗教的;庄严的
+sacrifice#/ˈsækrɪfaɪs/#n.牺牲;祭品;供奉#vt.牺牲;献祭;亏本出售#vi.献祭;奉献
+sad#/sæd/#adj.难过的;悲哀的,令人悲痛的;凄惨的,阴郁的(形容颜色)
+saddle#/ˈsædl/#n.鞍,鞍状物;车座;拖具#vt.承受;使负担;装以马鞍#vi.跨上马鞍
+sadly#/ˈsædli/#adv.悲哀地;悲痛地
+sadness#/ˈsædnəs/#n.悲哀;悲伤,悲痛;使人悲伤的事
+safe#/seɪf/#adj.安全的;可靠的;平安的#n.保险箱;冷藏室;纱橱#n.(Safe)人名;(几)萨菲
+safeguard#/ˈseɪfɡɑːrd/#n.保护;保卫;保护措施;预防措施#v.保护;护卫
+safely#/ˈseɪfli/#adv.安全地稳定地
+safety#/ˈseɪfti/#n.安全;保险;安全设备;保险装置;安打
+sail#/seɪl/#vi.航行;启航,开船#n.帆,篷;航行#vt.航行
+sailor#/ˈseɪlər/#n.水手,海员;乘船者#n.(Sailor)人名;(英)赛勒
+saint#/seɪnt/#n.圣人;圣徒;道德崇高的人#adj.神圣的#vt.成为圣徒
+sake#/seɪk;ˈsɑːki/#n.目的;利益;理由;日本米酒#n.(Sake)人名;(罗)萨克;(日)酒(姓)
+salad#/ˈsæləd/#n.色拉;尤指莴苣#n.(Salad)人名;(阿拉伯)萨拉德
+salary#/ˈsæləri/#n.薪水,工资#v.给……薪金
+sale#/seɪl/#n.销售;出售;拍卖;销售额;廉价出售#n.(Sale)人名;(意、塞、瑞典)萨莱;(英、萨摩)塞尔;(法)萨尔
+salesman#/ˈseɪlzmən/#n.推销员;售货员
+salt#/sɔːlt/#n.食盐,风趣,刺激#adj.含盐的,咸的,风趣的,辛辣的#vt.加盐于,用盐腌SALT[缩写]限制战略武器会谈
+salute#/səˈluːt/#n.致敬,欢迎;敬礼#vt.行礼致敬,欢迎#vi.致意,打招呼;行礼
+same#/seɪm/#adj.相同的;同一的;上述的(通常与the连用);无变化的#pron.同样的事物或人(通常与the连用)#adv.同样地(通常与the连用)#n.(Same)人名;(意)萨梅
+sample#/ˈsæmpl/#n.标本,样品,例子#vt.取样,采样,抽取...的样品,试验的一部分,尝试
+sanction#/ˈsæŋkʃn/#n.制裁,处罚;认可;支持#vt.制裁,处罚;批准;鼓励
+sand#/sænd/#n.沙,沙子,[pl.]沙滩,沙地#v.撒沙子
+sandwich#/ˈsænwɪtʃ/#n.三明治(状物);夹心面包片;(奶油)夹心蛋糕;教学与实习交替培训课程#v.夹入(或挤进)……中间;粘合;把..……做成三明治
+sandy#/ˈsændi/#adj.沙地的;多沙的;含沙的#n.(Sandy)人名;(法、喀、罗、西、英)桑迪(教名Alasdair、Alastair、Alexander、Alister、Elshender的昵称)
+satellite#/ˈsætəlaɪt/#n.卫星;人造卫星;卫星国家#adj.卫星的
+satisfaction#/ˌsætɪsˈfækʃn/#n.满意,满足;赔偿;乐事;赎罪
+satisfactory#/ˌsætɪsˈfæktəri/#adj.满意的;符合要求的;赎罪的
+satisfy#/ˈsætɪsfaɪ/#vi.令人满意;令人满足#vt.满足;说服,使相信;使满意,使高兴
+saturate#/ˈsætʃəreɪt/#vt.浸透,使湿透;使饱和,使充满#adj.浸透的,饱和的;深颜色的
+Saturday#/'sætədei/#n.星期六
+sauce#/sɔːs/#n.酱油;沙司;调味汁#vt.使增加趣味;给…调味#n.(Sauce)(西)绍塞;(法)索斯(人名)
+saucer#/ˈsɔːsər/#n.茶托,浅碟;浅碟形物;微波或射频辐射用抛物面反射器构成的定向天线;投掷比赛用的圆盘
+sausage#/ˈsɔːsɪdʒ/#n.香肠;腊肠;装香肠的碎肉
+savage#/ˈsævɪdʒ/#adj.野蛮的;残酷的;狂怒的;荒凉的#n.未开化的人;粗鲁的人;残暴成性的人#vt.乱咬;粗暴的对待#n.(Savage)人名;(西)萨瓦赫;(英、德)萨维奇
+save#/seɪv/#vt.节省;保存;储蓄;解救#vi.节省;挽救#prep.除...之外#n.救援#n.(Save)人名;(法)萨夫;(意、保、西、罗、塞、瑞典)萨薇(女名),萨韦
+saving#/ˈseɪvɪŋ/#n.节约;挽救;存款#adj.节约的;挽救的;补偿的;保留的#prep.考虑到;除...之外#n.(Saving)人名;(瑞典)萨温
+saw#/sɔː/#n.锯;格言#v.锯;锯成;用锯;乱剪;拉锯似的来回移动#v.看见;明白,了解(see的过去式)
+say#/seɪ/#vt.讲;说明;例如;声称;假设;指明#vi.讲;表示;念;假定;背诵#n.(Say)人名;(土)萨伊;(法、老、柬)赛;(英)塞伊;(匈、罗)绍伊
+scale#/skeɪl/#n.刻度,衡量,比例,数值范围,比例尺,天平,等级#vt.依比例决定,攀登,测量#vi.剥落,生水垢,重,攀登,衡量
+scan#/skæn/#vt.扫描;浏览;细看;详细调查;标出格律#vi.扫描;扫掠#n.扫描;浏览;审视;细看
+scandal#/ˈskændl/#n.丑闻;流言蜚语;诽谤;公愤
+scar#/skɑːr/#n.伤痕,疤痕#v.结疤,使留下伤痕,创伤
+scarce#/skers/#adj.缺乏的,不足的;稀有的#adv.仅仅;几乎不;几乎没有
+scarcely#/ˈskersli/#adv.几乎不,简直不;几乎没有;决不;刚……就……;仅仅,刚刚;勉强,刚;根本不可能;不可能,不会
+scare#/sker/#v.(使)害怕;受惊吓;吓跑#n.恐惧;惊吓;(社会上的)大恐慌#adj.骇人的
+scared#/skerd/#adj.害怕的#v.使害怕(scare的过去分词)
+scarf#/skɑːrf/#n.围巾;嵌接,嵌接处;头巾领巾#vt.披嵌接;用围巾围#n.(Scarf)人名;(英)斯卡夫[复数scarfs或scarves]
+scatter#/ˈskætər/#v.撒播;散开;散布;驱散;散布于……上;散射(电磁辐射或粒子);(棒球)有效投(球)#n.零星散布的东西;离差;散射
+scene#/siːn/#n.场面;情景;景象;事件
+scenery#/ˈsiːnəri/#n.风景;景色;舞台布景
+scent#/sent/#n.气味;嗅觉;痕迹;察觉能力#vt.闻到;发觉;使充满…的气味;循着遗臭追踪#vi.发出…的气味;有…的迹象;嗅着气味追赶#n.(Scent)人名;(英)森特
+sceptical#/ˈskeptɪkl/#adj.怀疑的;怀疑论的;习惯怀疑的
+schedule#/ˈskedʒuːl/#n.时间表,进度表#v.确定时间
+scheme#/skiːm/#n.计划;组合;体制;诡计#vi.搞阴谋;拟订计划#vt.计划;策划#n.(Scheme)人名;(瑞典)谢默
+scholar#/ˈskɑːlər/#n.学者;奖学金获得者
+scholarship#/ˈskɑːlərʃɪp/#n.奖学金;学识,学问
+school#/skuːl/#n.学校;学院;学派;鱼群#vt.教育
+science#/ˈsaɪəns/#n.科学;技术;学科;理科#n.(Science)人名;(英)赛恩斯
+scientific#/ˌsaɪənˈtɪfɪk/#adj.科学的,系统的
+scientist#/ˈsaɪəntɪst/#n.科学家
+scissors#/ˈsɪzərz/#n.剪刀;剪式跳法#v.剪开;删除(scissor的第三人称单数)
+scold#/skoʊld/#vi.责骂;叱责#vt.骂;责骂#n.责骂;爱责骂的人
+scope#/skoʊp/#n.范围;余地;视野;眼界;导弹射程#vt.审视
+score#/skɔːr/#n.分数;二十;配乐;刻痕#vt.获得;评价;划线,刻划;把…记下#vi.得分;记分;刻痕#n.(Score)人名;(英)斯科尔
+scorn#/skɔːrn/#n.轻蔑;嘲笑;藐视的对象#v.轻蔑;藐视;不屑做
+scout#/skaʊt/#n.搜索,侦察;侦察员;侦察机#vt.侦察;跟踪,监视;发现#vi.侦察;巡视;嘲笑
+scrap#/skræp/#n.碎片;残余物;打架;少量#vt.废弃;使解体;拆毁#adj.废弃的;零碎的#vi.吵架
+scrape#/skreɪp/#n.刮,擦,擦痕,刮擦声,困境#vi.刮掉,擦掉,刮出刺耳声#vt.刮,擦,擦伤,挖成
+scratch#/skrætʃ/#n.擦伤;抓痕;刮擦声;乱写#adj.打草稿用的;凑合的;碰巧的#vt.抓;刮;挖出;乱涂#vi.抓;搔;发刮擦声;勉强糊口;退出比赛
+scream#/skriːm/#vi.尖叫;呼啸;发出尖锐刺耳的声音;令人触目惊心#vt.尖声喊叫;大叫大嚷着要求#n.尖叫声;尖锐刺耳的声音;极其滑稽可笑的人
+screen#/skriːn/#n.屏,幕;屏风#vt.筛;拍摄;放映;掩蔽#vi.拍电影#n.(Screen)人名;(英)斯克林
+screw#/skruː/#vt.旋,拧;压榨;强迫#n.螺旋;螺丝钉;吝啬鬼#vi.转动,拧
+script#/skrɪpt/#n.脚本;手迹;书写用的字母#vt.把…改编为剧本#vi.写电影脚本
+scrutiny#/ˈskruːtəni/#n.详细审查;监视;细看;选票复查
+sculpture#/ˈskʌlptʃər/#n.雕塑;雕刻;刻蚀#vt.雕塑;雕刻;刻蚀#vi.从事雕刻
+sea#/siː/#n.海;海洋;许多;大量
+seal#/siːl/#n.密封;印章;海豹;封条;标志#vt.密封;盖章#vi.猎海豹#n.(Seal)西尔(人名)
+seam#/siːm/#n.缝;接缝#vt.缝合;接合;使留下伤痕#vi.裂开;产生裂缝
+seaman#/ˈsiːmən/#n.海员,水手;水兵#n.(Seaman)人名;(英)西曼;(意、瑞典)塞亚曼
+seaport#/ˈsiːpɔːrt/#n.海港;港口都市
+search#/sɜːrtʃ/#v.搜索,搜寻;调查,搜查;搜身;探求;思索;(在计算机上)搜索#n.搜寻;探究,查究;检索#n.(Search)(印、美)瑟奇(人名)
+season#/ˈsiːzn/#n.时期;季节;赛季#vt.给…调味;使适应#vi.变得成熟;变干燥
+seat#/siːt/#n.座位;所在地;职位#vt.使…坐下;可容纳…的;使就职
+second#/ˈsekənd;sɪˈkɑːnd/#n.秒,片刻,第二者,第二人,助手,次货,二等品#adj.另一个,又一个#num.第二#vt.赞成,支持
+secondary#/ˈsekənderi/#adj.第二的;中等的;次要的;中级的#n.副手;代理人
+secondly#/ˈsekəndli/#adv.其次;第二
+secret#/ˈsiːkrət/#adj.秘密的,机密的;不公开的;善于掩饰自己的#n.秘密,机密;秘诀;奥秘;默祷#n.(Secret)(法)塞克雷(人名)
+secretary#/ˈsekrəteri/#n.秘书;书记;部长;大臣
+section#/ˈsekʃn/#n.截面;部分;部门;地区;章节#vi.被切割成片;被分成部分#vt.把…分段;将…切片;对…进行划分
+sector#/ˈsektər/#n.部门;扇形,扇区;象限仪;函数尺#vt.把…分成扇形
+secure#/sɪˈkjʊr/#adj.安全的;无虑的;有把握的;稳当的#vt.保护;弄到;招致;缚住#vi.获得安全;船抛锚;停止工作
+security#/sɪˈkjʊrəti/#n.安全,安全性;保证;证券;抵押品#adj.安全的;保安的;保密的
+see#/siː/#vt.看见;理解;领会;觉察;拜访#vi.看;看见;领会#n.(See)(英)西伊;(柬)塞;(德)泽(人名)
+seed#/siːd/#n.种子;根据;精液;萌芽;子孙;原由#vt.播种;结实;成熟;去…籽#vi.播种;(植物)结实#n.(Seed)人名;(英)锡德
+seek#/siːk/#vt.寻求;寻找;探索;搜索#vi.寻找;探索;搜索
+seem#/siːm/#vi.似乎;像是;装作#n.(Seem)人名;(英)西姆
+seemingly#/ˈsiːmɪŋli/#adv.看来似乎;表面上看来
+segment#/ˈseɡmənt/#n.段,部分;(水果或花的)瓣,(动物的)节;弓形;音段;(广播或节目的)时间段#v.分割;(细胞)分裂
+segregate#/ˈseɡrɪɡeɪt/#vt.使隔离;使分离;在…实行种族隔离
+seize#/siːz/#vt.抓住;夺取;理解;逮捕#vi.抓住;利用;(机器)卡住
+seldom#/ˈseldəm/#adv.很少,不常
+select#/sɪˈlekt/#vt.选择,挑选#adj.精选的
+selection#/sɪˈlekʃn/#n.选择,挑选;选集;精选品
+self#/self/#n.自己,自我;本质;私心#adj.同一的#vt.使自花授精;使近亲繁殖#vi.自花授精#n.(Self)(英)塞尔夫(人名)
+selfish#/ˈselfɪʃ/#adj.自私的;利己主义的
+sell#/sel/#vt.销售;推销;出卖;欺骗#vi.卖;出售;受欢迎;有销路#n.销售;失望;推销术#n.(Sell)人名;(德)泽尔;(英、芬、瑞典)塞尔
+seller#/ˈselər/#n.卖方,售货员#n.(Seller)人名;(匈)谢勒;(西)塞列尔
+semester#/sɪˈmestər/#n.学期;半年
+semiconductor#/ˈsemikəndʌktər/#n.[电子][物]半导体
+seminar#/ˈsemɪnɑːr/#n.讨论会,研讨班
+senate#/ˈsenət/#n.参议院,上院;(古罗马的)元老院
+senator#/ˈsenətər/#n.参议员;(古罗马的)元老院议员;评议员,理事#n.(Senator)人名;(瑞典、斯威)塞纳托尔
+send#/send/#vt.发送,寄;派遣;使进入;发射#vi.派人;寄信#n.上升运动#n.(Send)人名;(德)森德
+senior#/ˈsiːniər/#adj.高级的;年长的;地位较高的;年资较深的,资格较老的#n.上司;较年长者;毕业班学生#n.(Senior)人名;(英)西尼尔
+sensation#/senˈseɪʃn/#n.感觉;轰动;感动
+sense#/sens/#n.感觉,官能;观念;道理;理智#vt.感觉到;检测#n.(Sense)(美)森斯(人名)
+sensible#/ˈsensəbl/#adj.明智的;通情达理的;合乎情理的;意识到的,能感觉到的#n.可感觉到的东西
+sensitive#/ˈsensətɪv/#adj.敏感的;感觉的;[仪]灵敏的;感光的;易受伤害的;易受影响的#n.敏感的人;有灵异能力的人
+sentence#/ˈsentəns/#n.[语][计]句子,命题;宣判,判决#vt.判决,宣判
+sentiment#/ˈsentɪmənt/#n.感情,情绪;情操;观点;多愁善感
+separate#/ˈseprət/#adj.分开的,分离的,个别的,单独的#v.分开,隔离,分散,分别
+separately#/ˈseprətli/#adv.分别地;分离地;个别地
+separation#/ˌsepəˈreɪʃn/#n.分离,分开;间隔,距离;[法]分居;缺口
+September#/sepˈtembər/#n.九月
+sequence#/ˈsiːkwəns/#n.[数][计]序列;顺序;续发事件#vt.按顺序排好
+series#/ˈsɪriːz/#n.系列,连续;[电]串联;级数;丛书
+serious#/ˈsɪriəs/#adj.严肃的,严重的;认真的;庄重的;危急的
+seriously#/ˈsɪriəsli/#adv.认真地;严重地,严肃地
+servant#/ˈsɜːrvənt/#n.仆人,佣人;公务员;雇工#n.(Servant)人名;(西)塞尔万特;(法)塞尔旺
+serve#/sɜːrv/#vt.招待,供应;为…服务;对…有用;可作…用#vi.服役,服务;适合,足够;发球;招待,侍候#n.发球,轮到发球#n.(Serve)人名;(法)塞尔夫
+service#/ˈsɜːrvɪs/#n.服务,服侍;服役;仪式#adj.服务性的;耐用的;服现役的#vt.维修,检修;保养#n.(Service)人名;(英)瑟维斯
+session#/ˈseʃn/#n.会议;(法庭的)开庭;(议会等的)开会;学期;讲习会
+set#/set/#vt.放置,安置;使处于某种状况;设置;摆放餐具;#vi.落山;出发;凝结;#n.一套,一副;集合;布景;电视机;#adj.固定的;位于…的;顽固的;安排好的;
+setting#/ˈsetɪŋ/#n.环境;安装;布置;[天]沉落#v.放置;沉没;使…处于某位置(set的ing形式)
+settle#/ˈsetl/#vi.解决;定居;沉淀;下陷#vt.解决;安排;使…定居#n.有背长椅#n.(Settle)人名;(英)塞特尔
+settlement#/ˈsetlmənt/#n.解决,处理;[会计]结算;沉降;殖民
+seven#/ˈsevn/#num.七个,七#n.七个人;七点钟;七岁#adj.七的;七个的#n.(Seven)(土、法、俄)谢文(人名)
+seventeen#/ˌsevnˈːn/#n.十七,十七个#adj.十七岁的;十七的,十七个的#num.十七#n.(Seventeen)人名;(瑞典)塞文滕
+seventh#/ˈsevnθ/#num.第七
+seventy#/ˈsevnti/#n.七十;七十个;七十岁;七十年代#adj.七十的;七十个的;七十岁的#num.七十
+several#/ˈsevrəl/#adj.几个的;各自的#pron.几个;数个
+severe#/sɪˈvɪr/#adj.严峻的;严厉的;剧烈的;苛刻的
+severely#/sɪˈvɪrli/#adv.严重地;严格地,严厉地;纯朴地
+sew#/soʊ/#vt.缝合,缝上;缝纫#vi.缝纫,缝
+sex#/seks/#n.性;性别;性行为;色情#vt.引起…的性欲;区别…的性别
+sexual#/ˈsekʃuəl/#adj.性的;性别的;有性的
+shabby#/ˈʃæbi/#adj.破旧的;卑鄙的;吝啬的;低劣的
+shade#/ʃeɪd/#n.荫,阴暗,荫凉处,图案阴影,黑暗,颜色深浅,遮光物,帘#vi.渐变#vt.遮蔽,使阴暗,使渐变,微减
+shadow#/ˈʃædoʊ/#n.阴影;影子;幽灵;庇护;隐蔽处#vt.遮蔽;使朦胧;尾随;预示#vi.变阴暗#adj.影子内阁的
+shady#/ˈʃeɪdi/#adj.成荫的;阴暗的;名声不好的#n.(Shady)人名;(阿拉伯)沙迪
+shaft#/ʃæft/#n.竖井;通风井;(电梯的)升降机井;杆,柄#vt.欺骗;苛待
+shake#/ʃeɪk/#vt.动摇;摇动;震动;握手#vi.动摇;摇动;发抖#n.摇动;哆嗦
+shall#/ʃəl,ʃæl/#aux.应;会;将;必须
+shallow#/ˈʃæloʊ/#adj.浅的;肤浅的#n.[地理]浅滩#vt.使变浅#vi.变浅#n.(Shallow)人名;(英)沙洛
+shame#/ʃeɪm/#n.羞耻,羞愧;憾事,带来耻辱的人#vt.使丢脸,使羞愧#n.(Shame)人名;(科特)沙梅
+shampoo#/ʃæmˈpuː/#n.洗发;洗发精#vt.洗发
+shape#/ʃeɪp/#n.形状;模型;身材;具体化#vt.形成;塑造,使成形;使符合#vi.形成;成形;成长#n.(Shape)人名;(瑞典)沙佩
+share#/ʃer/#v.分享,共用;分配;有同样的感情(或经历);分担#n.份,份额;股份;责任,贡献#n.(Share)(美)沙雷(人名)
+sharp#/ʃɑːrp/#adj.急剧的;锋利的;强烈的;敏捷的;刺耳的#adv.急剧地;锐利地;突然地#n.尖头#vt.磨快;把音调升高#vi.升音演奏#n.(Sharp)人名;(英)夏普
+sharpen#/ˈʃɑːrpən/#vt.削尖;磨快;使敏捷;加重#vi.尖锐;变锋利
+sharply#/ˈʃɑːrpli/#adv.急剧地;锐利地
+shatter#/ˈʃætər/#vt.粉碎;打碎;破坏;破掉;使散开#vi.粉碎;损坏;落叶#n.碎片;乱七八糟的状态
+shave#/ʃeɪv/#vi.剃须,剃毛#vt.剃,削去;修剪;切成薄片;掠#n.刮脸,剃胡子;修面;口侥幸逃过,幸免;剃刀,刮刀
+she#/ʃi,ʃiː/#pron.她(主格);它(用来指雌性动物或国家、船舶、地球、月亮等)#n.女人;雌性动物#n.(She)人名;(中)佘(普通话·威妥玛)
+shear#/ʃɪr/#v.剪(羊或其他动物的)毛;剪(头发);(受剪切力作用而)断裂#n.切变#n.(Shear)(美)希尔(人名)
+shed#/ʃed/#vt.摆脱;使落下#vi.流出;脱落;散布#n.小屋,棚;分水岭
+sheep#/ʃiːp/#n.羊,绵羊;胆小鬼
+sheer#/ʃɪr/#adj.绝对的;透明的;峻峭的;纯粹的#adv.完全;陡峭地#vi.偏航#vt.使偏航;使急转向#n.偏航;透明薄织物
+sheet#/ʃiːt/#n.薄片,纸张;薄板;床单#vt.覆盖;盖上被单;使成大片#vi.成片流动;大片落下#adj.片状的#n.(Sheet)人名;(英)希特
+shelf#/ʃelf/#n.架子;搁板;搁板状物;暗礁
+shell#/ʃel/#n.壳,贝壳;炮弹;外形#vi.剥落;设定命令行解释器的位置#vt.剥皮;炮轰
+shelter#/ˈʃeltər/#n.庇护;避难所;遮盖物#vt.保护;使掩蔽#vi.躲避,避难#n.(Shelter)人名;(英)谢尔特
+shepherd#/ˈʃepərd/#n.牧羊人;牧师;指导者#v.牧羊;带领,护送;指导;看管#n.(Shepherd)(英、美、菲)谢泼德(人名)
+shield#/ʃiːld/#n.盾;防护物;保护者#vt.遮蔽;包庇;避开;保卫#vi.防御;起保护作用#n.(Shield)(英)希尔德(人名)
+shift#/ʃɪft/#n.移动,轮班,移位,变化,办法,手段#vt.替换,转移,改变,移转,推卸,变速#vi.转换,移动,转变,推托,变速
+shilling#/ˈʃɪlɪŋ/#n.先令#n.(Shilling)人名;(英)希林
+shine#/ʃaɪn/#v.照耀,发光#vt.擦亮#n.光泽,光亮
+ship#/ʃɪp/#n.船,海船,舰#v.装上船,航运,载运,在船上工作
+shipment#/ˈʃɪpmənt/#n.装货#n.装载的货物#n.出货量
+shirt#/ʃɜːrt/#n.衬衫;汗衫,内衣
+shiver#/ˈʃɪvər/#v.颤抖,哆嗦;打碎#n.颤抖,哆嗦;(因恐惧产生的)寒颤;碎片#n.(Shiver)(美、斯)希弗(人名)
+shock#/ʃɑːk/#n.打击,震动,冲突,休克,突击,禾束堆,乱蓬的头发#vt.使震动,使休克,使受电击,震惊得#vi.震动,吓人#adj.蓬乱的,浓密的
+shoe#/ʃuː/#n.鞋;蹄铁;外胎#vt.给……穿上鞋;穿……鞋#n.(Shoe)人名;(英)休
+shoot#/ʃuːt/#vt.射击,射中;拍摄;发芽;使爆炸;给…注射#vi.射击;发芽;拍电影#n.射击;摄影;狩猎;急流
+shop#/ʃɑːp/#n.商店;店铺#vt.购物#vi.购物;买东西
+shopkeeper#/ˈʃɑːpkiːpər/#n.店主,老板
+shopping#/ˈʃɑːpɪŋ/#n.购物,买东西#v.购物(shop的ing形式)
+shore#/ʃɔːr/#n.海滨;沿海国家(或地区);支柱;涨潮线与落潮线之间的地带#v.用支柱撑住;支撑,使稳住;帮助,支持#n.(Shore)(美、英、加)肖尔(人名)
+short#/ʃɔːrt/#adj.短的;不足的;矮的,低的#n.短;缺乏;短路;短裤#adv.不足;突然;唐突地#n.(Short)(英)肖特(人名)
+shortage#/ˈʃɔːrtɪdʒ/#n.缺乏,缺少;不足
+shortcoming#/ˈʃɔːrtkʌmɪŋ/#n.缺点;短处
+shortly#/ˈʃɔːrtli/#adv.立刻;简短地;唐突地
+shot#/ʃɑːt/#n.发射;炮弹;射手;镜头#adj.用尽的;破旧的;杂色的,闪光的#v.射击(shoot的过去式和过去分词)
+should#/ʃəd,ʃʊd/#aux.应该;就;可能;将要;本当;竟然
+shoulder#/ˈʃoʊldər/#n.肩,肩膀;肩部#vt.肩负,承担#vi.用肩推挤,用肩顶
+shout#/ʃaʊt/#vi.呼喊;喊叫;大声说#vt.呼喊;大声说#n.呼喊;呼叫
+show#/ʃoʊ/#vt.显示;说明;演出;展出#vi.显示;说明;指示#n.显示;表演;炫耀#n.(Show)(美、巴西)肖(人名)
+shower#/ˈʃaʊər/#n.淋浴;(倾泻般出现的)一阵,一大批;阵雨#vt.大量地给予;把……弄湿#vi.淋浴;下阵雨
+shrewd#/ʃruːd/#adj.精明的;狡猾的;机灵的#n.精明(的人);机灵(的人)
+shriek#/ʃriːk/#v.尖叫;尖声说;促人注意;(无生命的东西)发出尖锐刺耳声;明显地不协调#n.尖声;尖锐的响声;感叹号(非正式)
+shrink#/ʃrɪŋk/#v.收缩,(使)皱缩,缩短
+shrug#/ʃrʌɡ/#vt.耸肩,耸肩表示#n.耸肩#vi.耸肩
+shut#/ʃʌt/#vt.关闭;停业;幽禁#vi.关上;停止营业#n.关闭#adj.关闭的;围绕的#n.(Shut)人名;(俄)舒特;(中)室(广东话·威妥玛)
+shutter#/ˈʃʌtər/#n.快门;百叶窗;关闭物;遮板#vt.为…装百叶窗;以百叶窗遮闭
+shuttle#/ˈʃʌtl/#n.航天飞机;穿梭;梭子;穿梭班机、公共汽车等#vt.使穿梭般来回移动;短程穿梭般运送#vi.穿梭往返
+shy#/ʃaɪ/#adj.害羞的;畏缩的,胆怯的#vi.投;畏缩;惊退;厌恶#vt.投;乱掷#n.投掷;惊跳#n.(Shy)人名;(英)夏伊
+sick#/sɪk/#adj.厌恶的;病态的;不舒服;渴望的;恶心的;生病的#n.病人#vt.使狗去咬;呕吐;追击#n.(Sick)(德、西)西克(人名)
+sickness#/ˈsɪknəs/#n.疾病;呕吐;弊病
+side#/saɪd/#n.方面;侧面;旁边#vi.支持;赞助;偏袒#adj.旁的,侧的#vt.同意,支持#n.(Side)人名;(英)赛德
+sideways#/ˈsaɪdweɪz/#adv.向侧面地,向一旁地;平级变动地;间接地#adj.向侧面的,向一旁的;平级变动的;间接的;非正统的
+sigh#/saɪ/#v.叹气;叹着气说;(风)呼啸,悲鸣#n.叹息,叹气;(尤指风发出的)叹息般的声音
+sight#/saɪt/#n.视力;景象;眼界;见解#vt.看见;瞄准#vi.瞄准;观看#adj.见票即付的;即席的
+sightseeing#/ˈsaɪtsiːɪŋ/#n.观光;游览#adj.观光的;游览的#v.观光(sightsee的ing形式);游览
+sign#/saɪn/#n.迹象;符号;记号;手势;指示牌#vi.签署;签名#vt.签署;示意
+signal#/ˈsɪɡnəl/#n.信号;暗号;导火线#vt.标志;用信号通知;表示#adj.显著的;作为信号的#vi.发信号#n.(Signal)人名;(瑞典)西格纳尔
+signature#/ˈsɪɡnətʃər/#n.署名;签名;信号
+significance#/sɪɡˈnɪfɪkəns/#n.意义;重要性;意思
+significant#/sɪɡˈnɪfɪkənt/#adj.重大的;有效的;有意义的;值得注意的;意味深长的#n.象征;有意义的事物
+signify#/ˈsɪɡnɪfaɪ/#vt.表示;意味;预示#vi.有重要性;要紧;冒充内行
+silence#/ˈsaɪləns/#n.沉默;寂静;缄默;不谈;无声状态#vt.使沉默;使安静;压制;消除噪音#int.安静!;别作声!
+silent#/ˈsaɪlənt/#adj.沉默的;寂静的;无记载的#n.无声电影
+silicon#/ˈsɪlɪkən/#n.[化学]硅;硅元素
+silk#/sɪlk/#n.丝绸;蚕丝;丝织物#adj.丝的;丝绸的;丝制的#vi.(玉米)处于长须的阶段中#n.(Silk)人名;(英、瑞典)西尔克
+silly#/ˈsɪli/#adj.愚蠢的;不明事理的;没头脑的#n.傻瓜#n.(Silly)人名;(匈)希伊;(法)西利
+silver#/ˈsɪlvər/#n.银,银子#vt.镀银
+similar#/ˈsɪmələr/#adj.相似的#n.类似物
+similarly#/ˈsɪmələrli/#adv.类似地,差不多地;同样地,也
+simple#/ˈsɪmpl/#adj.简单的;单纯的;天真的#n.笨蛋;愚蠢的行为;出身低微者#n.(Simple)人名;(法)桑普勒
+simplicity#/sɪmˈplɪsəti/#n.朴素;简易;天真;愚蠢
+simplify#/ˈsɪmplɪfaɪ/#vt.简化;使单纯;使简易
+simply#/ˈsɪmpli/#adv.简单地;仅仅;简直;朴素地;坦白地
+simulate#/ˈsɪmjuleɪt/#vt.模仿;假装;冒充#adj.模仿的;假装的
+simultaneous#/ˌsaɪmlˈteɪniəs/#adj.同时的;联立的;同时发生的#n.同时译员
+sin#/sɪn/#n.罪恶;罪孽;过失#vi.犯罪;犯过失#vt.犯罪#n.(Sin)(罗)西恩;(匈)欣;(柬、阿拉伯)辛;(缅)信(人名)
+since#/sɪns/#prep.自……以后;(表示气愤)何曾#conj.自……以来;因为#adv.自……以后;此后;之前#n.(Since)(法、美)新斯(人名)
+sincere#/sɪnˈsɪr/#adj.真诚的;诚挚的;真实的
+sing#/sɪŋ/#vi.唱歌;歌颂;鸣叫;呼号#vt.唱;用诗赞颂;唱着使#n.演唱;鸣声;呼啸声#n.(Sing)人名;(老、德、泰)辛
+singer#/ˈsɪŋər/#n.歌手,歌唱家#n.(Singer)(美)桑热(人名)
+single#/ˈsɪŋɡl/#adj.单一的;单身的;单程的#n.一个;单打;单程票#vt.选出#vi.击出一垒安打
+singular#/ˈsɪŋɡjələr/#adj.单数的;单一的;非凡的;异常的#n.单数
+sink#/sɪŋk/#vi.沉下,(使)下沉#n.水槽,水池接收器
+sir#/sɜːr,sər/#n.先生;(用于姓名前)爵士;阁下;(中小学生对男教师的称呼)先生;老师#n.(苏丹、德)西尔(人名)
+sister#/ˈsɪstər/#n.姐妹;(称志同道合者)姐妹;修女;护士#adj.姐妹般的;同类型的
+sit#/sɪt/#vi.坐;位于#vt.使就座#n.(Sit)(美、加)西特(人名)
+site#/saɪt/#n.地点;位置;场所#vt.设置;为…选址
+situated#/ˈsɪtʃueɪtɪd/#adj.位于…的;处于…境遇的#v.使位于;使处于(situate的过去分词)
+situation#/ˌsɪtʃuˈeɪʃn/#n.情况;形势;处境;位置
+six#/sɪks/#num.数字6;六个;六个人(或物)一组;六岁;六点钟#n.(Six)(美、德)西克斯(人名)
+sixteen#/ˌsɪksˈːn/#num.十六;十六个#adj.十六的;十六个的
+sixth#/sɪksθ/#n.第六;(比赛或竞赛的)第六名;六分之一;六年级;六度音程;六度音#adj.(与the连用)第六的,第六个的;六分之一的
+sixty#/ˈsɪksti/#num.六十,六十个;六十几,六十年代;六十岁
+size#/saɪz/#n.大小;尺寸#adj.一定尺寸的#vt.依大小排列#vi.可比拟
+skate#/skeɪt/#n.冰鞋,溜冰,老马,可鄙的人#vi.滑冰,滑过
+skeleton#/ˈskelɪtn/#n.骨架,骨骼;纲要;骨瘦如柴的人#adj.骨骼的;骨瘦如柴的;概略的
+skeptical#/ˈskeptɪkl/#adj.怀疑的;(哲学)怀疑论的,不可知论的
+sketch#/sketʃ/#n.素描;略图;梗概#vt.画素描或速写#vi.画素描或速写#n.(Sketch)人名;(英)斯凯奇
+ski#/skiː/#n.滑雪橇#vi.滑雪#adj.滑雪(用)的
+skill#/skɪl/#n.技能,技巧;本领,技术#n.(Skill)人名;(瑞典)希尔
+skilled#/skɪld/#adj.熟练的;有技能的;需要技能的
+skillful#/ˈskɪlfl/#adj.熟练的;巧妙的
+skim#/skɪm/#v.撇去
+skin#/skɪn/#n.皮肤;外皮#vt.剥皮#vi.愈合;长皮
+skip#/skɪp/#vi.跳跃;跳绳;遗漏;跳读#vt.跳过;遗漏#n.跳跃;跳读#n.(Skip)人名;(英)斯基普
+skirt#/skɜːrt/#n.裙子#vt.绕过,回避;位于…边缘#vi.沿边走,绕开;环绕
+sky#/skaɪ/#n.天空;顶点#vt.把…投向空中;把…挂得过高#vi.踢或击高空球;把桨叶翘得过高;飞涨#n.(Sky)人名;(英)斯凯
+slack#/slæk/#n.松弛,静止,淡季,闲散,家常裤#adj.松弛的,不流畅的,疏忽的,软弱的,漏水的,呆滞的,懒散的#adv.马虎地,缓慢地#vt.使松弛,使缓慢,马虎从事#vi.松懈,减弱,松驰
+slam#/slæm/#v.砰地关上,砰地放下,猛力抨击,冲击#n.砰,猛击,撞击,冲击
+slap#/slæp/#vt.拍,掌击,拍击#n.拍,掌击,拍击
+slaughter#/ˈslɔːtər/#n.屠宰,残杀,屠杀#v.屠宰,残杀,屠杀
+slave#/sleɪv/#n.奴隶;从动装置#vi.苦干;拼命工作#n.(Slave)人名;(塞、罗)斯拉韦
+slavery#/ˈsleɪvəri/#n.奴役;奴隶制度;奴隶身份
+sleep#/sliːp/#vi.睡,睡觉#n.睡眠#n.(Sleep)人名;(英)斯利普
+sleepy#/ˈsliːpi/#adj.困倦的,瞌睡的;(地方)冷清的,寂静的;(生意,产业等)没有活力的
+sleeve#/sliːv/#n.[机]套筒,[机]套管;袖子,[服装]袖套#vt.给……装袖子;给……装套筒
+slender#/ˈslendər/#adj.细长的;苗条的;微薄的
+slice#/slaɪs/#n.薄片;部分;菜刀,火铲#vt.切下;把…分成部分;将…切成薄片#vi.切开;割破
+slide#/slaɪd/#v.(使)滑动,(使)滑行#n.滑,滑动,幻灯片
+slight#/slaɪt/#adj.轻微的,少量的;脆弱的;细长的;不重要的#vt.轻视,忽略;怠慢#n.怠慢;轻蔑
+slightly#/ˈslaɪtli/#adv.些微地,轻微地;纤细地,瘦小的
+slim#/slɪm/#adj.苗条的;修长的;微小的;差的#vt.使…体重减轻;使…苗条#vi.减轻体重;变细#n.(Slim)人名;(阿拉伯)萨利姆;(英、西)斯利姆
+slip#/slɪp/#n.滑倒,事故,片,纸片;#vi.滑动,滑倒,失足,减退;#vt.使滑动,滑过,摆脱,闪开,塞入;#adj.滑动的,活络的,有活结的;SerialLineInterfaceProtocol,串行线路接口协议
+slipper#/ˈslɪpər/#n.拖鞋#vt.用拖鞋打
+slippery#/ˈslɪpəri/#adj.滑的;狡猾的;不稳定的
+slit#/slɪt/#n.狭长的切口;裂缝#v.使有狭缝;撕裂;使成长条;眯起眼睛
+slogan#/ˈsloʊɡən/#n.标语;呐喊声
+slope#/sloʊp/#n.斜坡;倾斜;斜率;扛枪姿势#vi.倾斜;逃走#vt.倾斜;使倾斜;扛
+slot#/slɑːt/#n.位置;狭槽;水沟;硬币投币口#vt.跟踪;开槽于#n.(Slot)人名;(英、荷)斯洛特
+slow#/sloʊ/#adj.慢的;减速的;迟钝的#vi.变慢;变萧条#vt.放慢;阻碍#adv.慢慢地;迟缓地#n.(Slow)人名;(英)斯洛
+slowly#/ˈsloʊli/#adv.缓慢地,慢慢地
+slum#/slʌm/#n.贫民窟;(不宜居住的)房屋;脏乱的地方#v.(为猎奇或救济)去贫民窟;将就适应,过穷日子
+sly#/slaɪ/#adj.狡猾的;淘气的;诡密的#n.(Sly)人名;(英)斯莱
+small#/smɔːl/#adj.少的,小的;微弱的;几乎没有的;不重要的;幼小的#adv.小小地;卑鄙地#n.小件物品;矮小的人#n.(Small)人名;(英)斯莫尔
+smart#/smɑːrt/#adj.聪明的;巧妙的;敏捷的;厉害的;潇洒的;剧烈的;时髦的#n.(Smart)(法)斯马尔;(英、德)斯马特(人名)
+smash#/smæʃ/#v.打碎,粉碎#n.打碎,粉碎#adj.出色的
+smell#/smel/#n.气味,嗅觉;臭味#v.嗅,闻;有……气味;察觉到;发出……的气味#n.(Smell)(美、俄、英、印、新)史默乐(人名)
+smile#/smaɪl/#v.微笑;微笑着表示;露出(某种笑容)#n.微笑,笑容;喜色#n.(Smile)(俄、印度、美)斯米莱(人名)
+smog#/smɑːɡ/#n.烟雾
+smoke#/smoʊk/#n.烟;抽烟;无常的事物#vi.冒烟,吸烟;抽烟;弥漫#vt.吸烟;抽
+smooth#/smuːð/#adj.顺利的;光滑的;平稳的#vt.使光滑;消除(障碍等);使优雅;缓和#n.平滑部分;一块平地#vi.变平静;变平滑#adv.光滑地;平稳地;流畅地
+smoothly#/ˈsmuːðli/#adv.平稳地,平滑地;顺利地,流畅地;平静地;均匀地
+smuggle#/ˈsmʌɡl/#vt.走私;偷运#vi.走私,私运;偷带
+snack#/snæk/#n.小吃,点心;快餐;易办到的事,小事一桩#v.吃点心(或快餐、小吃)
+snake#/sneɪk/#n.蛇;阴险的人#vi.迂回前进#vt.拉(木材等);迂回前进
+snap#/snæp/#vt.突然折断,拉断;猛咬;啪地关上#vi.咬;厉声说;咯嗒一声关上#n.猛咬;劈啪声;突然折断#adj.突然的
+snatch#/snætʃ/#v.攫取#n.攫取
+snow#/snoʊ/#n.雪,积雪;下雪#vi.降雪#vt.使纷纷落下;使变白#n.(Snow)人名;(英)斯诺
+snowstorm#/ˈsnoʊstɔːrm/#n.暴风雪;雪暴
+snowy#/ˈsnoʊi/#adj.下雪的,多雪的;被雪覆盖的;洁白无瑕的
+so#/soʊ/#adv.如此,这么;确是如此#conj.所以;因此#pron.这样#n.(So)人名;(柬)索
+soak#/soʊk/#vt.吸收,吸入;沉浸在(工作或学习中);使……上下湿透#vi.浸泡;渗透#n.浸;湿透;大雨
+soap#/soʊp/#n.肥皂#vt.将肥皂涂在……上;俚对……拍马屁#vi.用肥皂擦洗
+soar#/sɔːr/#vi.急升,激增;高飞;升空;翱翔;(树木、建筑物等)高耸;(情绪)高涨#n.高飞;高涨#n.(Soar)(英、葡)索尔(人名)
+sob#/sɑːb/#vi.啜泣,呜咽;(风等)发出呜咽声#vt.哭诉,啜泣#n.啜泣,呜咽
+sober#/ˈsoʊbər/#adj.冷静的,清醒的;未醉的#vt.使严肃;使醒酒,使清醒#n.(Sober)索伯(人名)
+soccer#/ˈsɑːkər/#n.英式足球,足球
+social#/ˈsoʊʃl/#adj.社会的,社交的;群居的#n.联谊会;联欢会
+socialism#/ˈsoʊʃəlɪzəm/#n.社会主义
+socialist#/ˈsoʊʃəlɪst/#n.社会主义者,社会党党员#adj.社会主义的,社会党的
+society#/səˈsaɪəti/#n.社会;交往;社团;社交界
+sociology#/ˌsoʊsiˈɑːlədʒi/#n.社会学;群体生态学
+sock#/sɑːk/#n.短袜;一击#vt.重击;给……穿袜#adv.正着地;不偏不倚地#adj.非常成功的#n.(Sock)人名;(德)佐克
+soda#/ˈsoʊdə/#n.苏打;碳酸水#n.(Soda)人名;(意)索达;(日)曾田(姓)
+soft#/sɔː/#adj.软的,柔软的;温柔的,温和的;软弱的;笨的#adv.柔软地;温和地#n.柔性;柔软的东西;柔软部分
+softly#/ˈsɔːli/#adv.轻声地;温柔地;柔和地
+software#/ˈsɔːwer/#n.软件
+soil#/sɔɪl/#n.土地;土壤;国家;粪便;务农;温床#vt.弄脏;污辱#vi.变脏
+solar#/ˈsoʊlər/#adj.太阳的;日光的;利用太阳光的;与太阳相关的#n.日光浴室#n.(Solar)(法、英、意、西、塞、捷)索拉尔(人名)
+soldier#/ˈsoʊldʒər/#n.军人;[昆]兵蚁;懒汉;一片烤面包#vi.当兵;磨洋工;坚持干;假称害病
+sole#/soʊl/#adj.单独的,唯一的#n.脚底,鞋底,基础#v.换鞋底
+solely#/ˈsoʊlli/#adv.单独地;仅仅
+solemn#/ˈsɑːləm/#adj.庄严的,严肃的;隆重的,郑重的
+solid#/ˈsɑːlɪd/#adj.固体的;可靠的;立体的;结实的;一致的#n.固体;立方体#n.(Solid)人名;(瑞典)索利德
+solidarity#/ˌsɑːlɪˈdærəti/#n.团结,团结一致
+solitary#/ˈsɑːləteri/#adj.孤独的;独居的#n.独居者;隐士
+solo#/ˈsoʊloʊ/#n.独奏;独唱;独奏曲#adj.独奏的;独唱的;单独的#vt.单人攀登;单独驾#vi.单独表演;放单飞#adv.单独地
+soluble#/ˈsɑːljəbl/#adj.[化学]可溶的,可溶解的;可解决的
+solution#/səˈluːʃn/#n.解决方案;溶液;溶解;解答
+solve#/sɑːlv/#vt.解决;解答;溶解#vi.作解答
+some#/səm,sʌm/#adj.一些,少许,若干,有些,大约,相当的#pron.一些,若干,有些,某些
+somebody#/ˈsʌmbədi/#pron.有人,某人;重要人物#n.大人物,重要人物
+somehow#/ˈsʌmhaʊ/#adv.以某种方法;莫名其妙地
+someone#/ˈsʌmwʌn/#pron.有人,某人;重要人物
+something#/ˈsʌmθɪŋ/#pron.某事,某物#adj.有点象,大约
+sometime#/ˈsʌmtaɪm/#adv.改天;来日;在某一时候#adj.以前的;某一时间的
+sometimes#/ˈsʌmtaɪmz/#adv.有时,间或
+somewhat#/ˈsʌmwʌt/#adv.有点,稍微#pron.某物;几分
+somewhere#/ˈsʌmwer/#adv.在某处;到某处#n.某个地方
+son#/sʌn/#n.儿子;孩子(对年轻人的称呼);男性后裔#n.(Son)人名;(土、老、柬)松;(法、罗)索恩;(日)存(名);(日)孙(姓);(越)山
+song#/sɔŋ/#n.歌曲;歌唱;诗歌;鸣声#n.(Song)人名;(泰)颂;(柬)松;(英)桑;(老)宋;(越)双;(东南亚国家华语)松
+soon#/suːn/#adv.快;不久,一会儿;立刻;宁愿
+sophisticated#/səˈfɪstɪkeɪtɪd/#adj.复杂的;精致的;久经世故的;富有经验的#v.使变得世故;使迷惑;篡改(sophisticate的过去分词形式)
+sore#/sɔːr/#adj.疼痛的,痛心的;剧烈的,极度的;恼火的,发怒的;厉害的,迫切的#n.溃疡,痛处;恨事,伤心事#n.(Sore)人名;(法)索尔;(意)索雷
+sorrow#/ˈsɑːroʊ/#n.悲伤;懊悔;伤心事#vi.懊悔;遗憾;感到悲伤#vt.为…悲痛
+sorry#/ˈsɑːri/#adj.遗憾的;对不起的,抱歉的#int.对不起,抱歉(表示委婉的拒绝等)
+sort#/sɔːrt/#n.种类;方式;品质;[计](资料、数据的)分类,排序#vi.分类;协调;交往#vt.将…分类;将…排序;挑选出某物
+soul#/soʊl/#n.灵魂;心灵;精神;鬼魂#n.一种人,某种人(强调具有某种特质的人)#adj.美国黑人文化的#n.(Soul)(英、法)苏尔(人名)
+sound#/saʊnd/#n.声音,语音,噪音,吵闹,海峡,听力范围,探条#adj.健全的,可靠的,合理的,有效彻底的,健康的#adv.彻底地,充分地#vi.发出声音,回响,测深,听起来#vt.使发声,宣告,听诊,测...深,试探
+soup#/suːp/#n.汤,羹;马力#vt.加速;增加马力
+sour#/ˈsaʊər/#adj.酸的;发酵的;刺耳的;酸臭的;讨厌的#vi.发酵;变酸;厌烦#vt.使变酸;使失望#n.酸味;苦事#n.(Sour)人名;(柬)索
+source#/sɔːrs/#n.来源;水源;原始资料#n.(Source)人名;(法)苏尔斯
+south#/saʊθ/#n.南;(罗盘的)南方#adj.位于南方的;(风)来自南方的;南部居民的#adv.向南,朝南#v.朝南移动;(天体)穿过子午线#n.(South)(美)苏(人名)
+southeast#/ˌsaʊθˈiːst/#n.东南,东南方;东南地区,东南部#adj.东南的,东南部的;(风)来自东南的#adv.在东南,朝东南;来自东南
+southern#/ˈsʌðərn/#adj.南的;南方的#n.南方人#n.(Southern)人名;(英)萨瑟恩
+southwest#/ˌsaʊθˈwest/#n.西南方#adj.西南的#adv.往西南;来自西南
+sovereign#/ˈsɑːvrɪn/#n.君主;独立国;金磅#adj.至高无上的;有主权的;拥有最高统治权的;不折不扣的;有效的#n.(Sovereign)(美、加、俄、英、印、澳)索夫林(人名)
+Soviet#/,sovɪ'et/#n.苏维埃,苏联政府;苏联人#adj.苏维埃的;苏联的;苏联人的
+sow#/soʊ;saʊ/#vt.播种;散布;使密布#vi.播种#n.母猪#n.(Sow)人名;(几、马里、乍、毛里塔、塞内)索乌
+space#/speɪs/#n.空间;太空;距离#vi.留间隔#vt.隔开
+spacecraft#/ˈspeɪskræft/#n.[航]宇宙飞船,航天器
+spaceship#/ˈspeɪsʃɪp/#n.[航]宇宙飞船
+spacious#/ˈspeɪʃəs/#adj.宽敞的,广阔的;无边无际的
+spade#/speɪd/#n.铁锹,铲子;(扑克牌中的)黑桃#v.铲;把……弄实抹平#n.(Spade)(英)斯佩德;(法)斯帕德(人名)
+span#/spæn/#n.跨度,跨距;范围#vt.跨越;持续;以手指测量#n.(Span)人名;(捷)斯潘
+Spanish#/ˈspænɪʃ/#adj.西班牙的;西班牙人的;西班牙语的;西班牙文化的#n.西班牙语;西班牙人
+spare#/sper/#adj.多余的,剩下的,高而瘦的人的,少量的,贫乏的,备用的#v.节约,节省,不伤害,宽恕,分让,提供给某人
+spark#/spɑːrk/#n.火花,火星,闪光,情郎,花花公子,活力,电信技师,瞬间放电#vi.闪烁,发火花,求婚#vt.发动,鼓舞,使有朝气,求婚
+sparkle#/ˈspɑːrkl/#v.(使)闪耀;(使)发光;(酒类饮料)发泡;活跃,生机勃勃;活泼机智#n.闪耀;火花;起泡;亮点;活力,活跃机智;生动新颖
+sparrow#/ˈspæroʊ/#n.麻雀;矮小的人
+spatial#/ˈspeɪʃl/#adj.空间的;存在于空间的;受空间条件限制的
+speak#/spiːk/#vi.说话;演讲;表明;陈述#vt.讲话;发言;讲演
+speaker#/ˈspiːkər/#n.演讲者;扬声器;说话者;说某种语言的人#n.(Speaker)人名;(英)斯皮克
+spear#/spɪr/#n.矛,枪#vt.用矛刺#n.(Spear)人名;(英)斯皮尔
+special#/ˈspeʃl/#n.特派员,专车,专刊#adj.特别的,特殊的,专门的,专用的
+specialist#/ˈspeʃəlɪst/#n.专家;专门医师#adj.专家的;专业的
+speciality#/ˌspeʃiˈæləti/#n.专业,专长;特性;特产
+specialize#/ˈspeʃəlaɪz/#vi.专门从事;详细说明;特化#vt.使专门化;使适应特殊情况;详细说明
+specially#/ˈspeʃəli/#adv.特别地;专门地
+species#/ˈspiːʃiːz/#n.[生物]物种;种类#adj.物种上的
+specific#/spəˈsɪfɪk/#adj.特殊的,特定的;明确的;详细的;[药]具有特效的#n.特性;细节;特效药
+specifically#/spəˈsɪfɪkli/#adv.特别地;明确地
+specification#/ˌspesɪfɪˈkeɪʃn/#n.规格;说明书;详述
+specify#/ˈspesɪfaɪ/#vt.指定;详细说明;列举;把…列入说明书
+specimen#/ˈspesɪmən/#n.样品,样本;标本
+spectacle#/ˈspektəkl/#n.景象;场面;奇观;壮观;盛大的演出;(复)眼镜
+spectacular#/spekˈtækjələr/#adj.壮观的,惊人的;公开展示的
+spectator#/ˈspekteɪtər/#n.观众;旁观者
+spectrum#/ˈspektrəm/#n.光谱;频谱;范围;余象
+speculate#/ˈspekjuleɪt/#vi.推测;投机;思索#vt.推断
+speech#/spiːtʃ/#n.演讲;讲话;[语]语音;演说
+speed#/spiːd/#n.迅速,速度,速率#v.加快,速飞,飞跑
+spell#/spel/#n.符咒,魅力,一段时间,轮班#vt.拼写,拼成,意味着,轮值,招致,迷住#vi.轮替,拼字
+spelling#/ˈspelɪŋ/#n.拼写;拼字;拼法#v.拼写;意味着(spell的ing形式);迷住#n.(Spelling)人名;(英)斯佩林
+spend#/spend/#vt.度过,消磨(时光);花费;浪费;用尽#vi.花钱;用尽,耗尽#n.预算
+sphere#/sfɪr/#n.范围;球体#vt.包围;放入球内;使…成球形#adj.球体的
+spider#/ˈspaɪdər/#n.蜘蛛;设圈套者;三脚架
+spill#/spɪl/#n.溢出,溅出,摔下,木片,小塞子,暴跌,溢出量#vt.使溢出,使散落,洒,使流出,使摔下,倒出#vi.溢出,涌流,充满
+spin#/spɪn/#vi.旋转;纺纱;吐丝;晕眩#vt.使旋转;纺纱;编造;结网#n.旋转;疾驰
+spiral#/ˈspaɪrəl/#adj.螺旋形的#n.螺旋#v.盘旋
+spirit#/ˈspɪrɪt/#n.精神;心灵;情绪;志气;烈酒#vt.鼓励;鼓舞;诱拐
+spiritual#/ˈspɪrɪtʃuəl/#adj.精神的,心灵的;宗教的;(人)高尚的#n.圣歌(尤指美国南部黑人的)
+spit#/spɪt/#vi.吐痰;吐口水;发出劈啪声#vt.吐,吐出;发出;发射#n.唾液
+splash#/splæʃ/#n.溅,飞溅,斑点#v.溅,泼,溅湿
+splendid#/ˈsplendɪd/#adj.辉煌的;灿烂的;极好的;杰出的
+split#/splɪt/#vt.分离;使分离;劈开;离开;分解#vi.离开;被劈开;断绝关系#n.劈开;裂缝#adj.劈开的
+spoil#/spɔɪl/#vt.溺爱;糟蹋;破坏;掠夺#vi.掠夺;变坏;腐败#n.次品;奖品
+spokesman#/ˈspoʊksmən/#n.发言人;代言人
+sponge#/spʌndʒ/#n.海绵,海绵体,海绵状物,(外科用的)棉球,纱布#v.用海绵等冼涤、揩拭、擦拭或清除,用海绵吸收(液体),(俗)依赖某人生活,诈取某人钱财,海绵般吸收
+sponsor#/ˈspɑːnsər/#n.赞助者;主办者;保证人#vt.赞助;发起
+spontaneous#/spɑːnˈteɪniəs/#adj.自发的;自然的;无意识的
+spoon#/spuːn/#n.匙,勺子;一杓的量#vt.用匙舀;使成匙状#vi.轻轻向上击
+sport#/spɔːrt/#n.运动;游戏;娱乐;运动会;玩笑#vi.游戏#vt.游戏;参加体育运动;夸耀#adj.运动的
+sportsman#/ˈspɔːrtsmən/#n.运动员;运动家;冒险家#n.(Sportsman)人名;(英)斯波茨曼
+spot#/spɑːt/#n.地点;斑点#vt.认出;弄脏;用灯光照射#vi.沾上污渍;满是斑点#adj.现场的;现货买卖的#adv.准确地;恰好
+spouse#/spaʊs,spaʊz/#n.配偶#vt.和…结婚#n.(Spouse)人名;(英)斯波斯
+spray#/spreɪ/#n.喷雾,喷雾剂;喷雾器;水沫;(用作装饰的)小树枝,小花枝#vt.喷射#vi.喷#n.(Spray)(英)斯普雷(人名)
+spread#/spred/#vi.传播;伸展#vt.传播,散布;展开;伸展;铺开#n.传播;伸展#adj.伸展的
+spring#/sprɪŋ/#n.春天,跃起,泉,弹簧,发条,弹性,弹力,根源#v.跳,跃,跃出,使跳跃,使爆炸,触发
+springtime#/ˈsprɪŋtaɪm/#n.春天;春季;初期
+sprinkle#/ˈsprɪŋkl/#v.撒,洒;用……点缀,在……中穿插;下小雨;零星分布#n.撒,洒;少量,一点;稀疏小雨;(撒在糕饼上作装饰用的)彩糖,糖屑
+spur#/spɜːr/#n.马刺;鞭策;山嘴;(公路或铁路的)支线;骨刺#v.用踢马刺驱马前进;激励;促进;紧贴主干剪短(副梢)#n.(Spur)(美)斯普尔(人名)
+spy#/spaɪ/#n.间谍;密探#v.从事间谍活动;突然看见;认出
+square#/skwer/#adj.平方的;正方形的;直角的;正直的#vt.使成方形;与…一致#vi.一致;成方形#n.平方;广场;正方形#adv.成直角地
+squeeze#/skwiːz/#n.压榨,挤#v.压榨,挤,挤榨
+squirrel#/ˈskwɜːrəl/#n.松鼠;松鼠毛皮#vt.贮藏
+stab#/stæb/#vt.刺;刺伤;戳;刺穿;直入#vi.刺;刺伤;戳;刺痛#n.刺;戳;尝试;突发的一阵#n.(Stab)人名;(泰)萨达
+stability#/stəˈbɪləti/#n.稳定性;坚定,恒心
+stabilize#/ˈsteɪbəlaɪz/#vt.使稳固,使安定#vi.稳定,安定
+stable#/ˈsteɪbl/#adj.稳定的
+stack#/stæk/#n.堆,一堆,堆栈#v.堆叠
+stadium#/ˈsteɪdiəm/#n.体育场;露天大型运动场
+staff#/stæf/#n.棒,杖,杆,支柱,全体职员,[军]参谋机构,[音]五线谱#vt.供给人员,充当职员
+stage#/steɪdʒ/#n.阶段;舞台;戏剧;驿站#vt.举行;上演;筹划#vi.举行;适于上演;乘驿车旅行#n.(Stage)人名;(英)斯特奇
+stagger#/ˈstæɡər/#vt.蹒跚;使交错;使犹豫#vi.蹒跚;犹豫#n.蹒跚;交错安排#adj.交错的;错开的
+stain#/steɪn/#vt.玷污;败坏;给…着色#vi.污染;被玷污;被染污#n.污点;瑕疵;着色剂
+stair#/ster/#n.楼梯,阶梯;梯级#n.(Stair)人名;(英、葡)斯泰尔
+staircase#/ˈsterkeɪs/#n.楼梯
+stake#/steɪk/#n.桩,棍子;赌注;火刑;奖金#vt.资助,支持;系…于桩上;把…押下打赌#vi.打赌#n.(Stake)人名;(瑞典)斯塔克
+stale#/steɪl/#adj.陈腐的;不新鲜的#vi.变陈旧;撒尿;变得不新鲜#vt.使变旧;变得不新鲜#n.尿#n.(Stale)人名;(塞)斯塔莱
+stall#/stɔːl/#n.货摊,畜栏,厩,出售摊#v.(使)停转,(使)停止,迟延
+stamp#/stæmp/#n.邮票;印记;标志;跺脚#vt.铭记;标出;盖章于…;贴邮票于…;用脚踩踏#vi.跺脚;捣碎;毁掉#n.(Stamp)人名;(德)施坦普;(英)斯坦普
+stand#/stænd/#vi.站立;位于;停滞#vt.使站立;忍受;抵抗#n.站立;立场;看台;停止;货摊;证人席;支架
+standard#/ˈstændərd/#n.标准;水准;旗;度量衡标准#adj.标准的;合规格的;公认为优秀的#n.(Standard)人名;(英)斯坦达德;(德)施坦达德
+standpoint#/ˈstændpɔɪnt/#n.立场;观点
+star#/stɑːr/#n.星,恒星;明星;星形物#vt.用星号标于;由…主演,由…担任主角#vi.担任主角#adj.明星的,主角的;星形的#n.(Star)人名;(瑞典)斯塔尔;(德)施塔尔
+stare#/ster/#vi.凝视,盯着看;显眼#vt.凝视,盯着看#n.凝视;注视#n.(Stare)人名;(瑞典)斯塔勒
+start#/stɑːrt/#vt.开始;启动#vi.出发#n.开始;起点
+startle#/ˈstɑːrtl/#vt.使吓一跳;使惊奇#vi.惊吓;惊跳;惊奇#n.惊愕;惊恐
+starve#/stɑːrv/#vi.饿死;挨饿;渴望#vt.使饿死;使挨饿
+state#/steɪt/#n.国家;州;情形#vt.规定;声明;陈述#adj.国家的;州的;正式的#n.(State)(罗、瑞典)斯塔特;(英)斯泰特(人名)
+statement#/ˈsteɪtmənt/#n.声明;陈述,叙述;报表,清单
+statesman#/ˈsteɪtsmən/#n.政治家;国务活动家
+static#/ˈstætɪk/#adj.静态的;静电的;静力的#n.静电;静电干扰
+station#/ˈsteɪʃn/#n.车站;驻地;地位;身份#vt.配置;安置;驻扎
+stationary#/ˈsteɪʃəneri/#adj.固定的;静止的;定居的;常备军的#n.不动的人;驻军
+statistical#/stəˈtɪstɪkl/#adj.统计的;统计学的
+statistics#/stəˈtɪstɪks/#n.统计;统计学;[统计]统计资料;统计数字
+statue#/ˈstætʃuː/#n.雕像,塑像#vt.以雕像装饰
+status#/ˈsteɪtəs/#n.地位;状态;情形;重要身份
+stay#/steɪ/#vi.停留;坚持;暂住;停下#vt.坚持;暂住;抑制#n.逗留;停止;支柱
+steadily#/ˈstedəli/#adv.稳定地;稳固地;有规则地
+steady#/ˈstedi/#adj.稳定的;不变的;沉着的#vi.稳固#vt.使稳定;稳固;使坚定#adv.稳定地;稳固地#n.关系固定的情侣;固定支架
+steal#/stiːl/#vt.剽窃;偷偷地做;偷窃#vi.窃取;偷偷地行动;偷垒#n.偷窃;便宜货;偷垒;断球
+steam#/stiːm/#n.蒸汽;蒸汽动力;水汽;精力#vi.冒水汽;蒸;用蒸汽动力推动;疾行;非正式开始战斗;抢劫#adj.蒸汽的
+steamer#/ˈsːmər/#n.轮船;蒸汽机;蒸笼
+steel#/stiːl/#n.钢铁;钢制品;坚固#vt.钢化;使冷酷#adj.钢制的;钢铁业的;坚强的#n.(Steel)(德)施特尔;(英)斯蒂尔(人名)
+steep#/stiːp/#adj.陡峭的;不合理的;夸大的;急剧升降的#vt.泡;浸;使…充满#vi.泡;沉浸#n.峭壁;浸渍
+steer#/stɪr/#vt.控制,引导;驾驶#vi.驾驶,掌舵;行驶#n.阉牛#n.(Steer)人名;(英)斯蒂尔;(德、匈)施特尔
+stem#/stem/#n.干;茎;船首;血统#vt.阻止;除去…的茎;给…装柄#vi.阻止;起源于某事物;逆行#abbr.理工科的统称(science,technology,engineering,math)
+step#/step/#n.步,脚步;步骤;步伐;梯级#vi.踏,踩;走#vt.走,迈步;竖立(桅杆)于桅座上
+stereo#/ˈsterioʊ/#n.立体声;立体声系统#adj.立体的;立体声的;立体感觉的
+stereotype#/ˈsteriətaɪp/#n.陈腔滥调,老套;成见;模式化形象;铅版,铅版(浇铸或印刷)#v.对……形成模式化的看法,对……存有成见;套用老套,使一成不变;使用铅版
+stern#/stɜːrn/#adj.严厉的;坚定的;严峻的;认真的#n.船尾;末端;(幽默)(人的)臀部#n.(Stern)(英、以、法、瑞典、西)斯特恩(人名)
+steward#/ˈstuːərd/#n.管家;乘务员;膳务员;工会管事#vi.当服务员;当管事#vt.管理#n.(Steward)人名;(英)斯图尔德
+stewardess#/ˈstuːərdəs/#n.女管家;女干事;女服务员
+stick#/stɪk/#vt.刺,戳;伸出;粘贴#vi.坚持;伸出;粘住#n.棍;手杖;呆头呆脑的人#n.(Stick)(芬)斯蒂克(人名)
+sticky#/ˈstɪki/#adj.粘的;粘性的
+stiff#/stɪf/#adj.硬的,僵直的,拘谨的,呆板的,艰难的,费劲的,僵硬的
+stiffen#/ˈstɪfn/#vi.变硬;变猛烈;变粘#vt.使变硬;使粘稠
+still#/stɪl/#n.寂静,剧照,照片#adj.静止的,静寂的#adv.还,仍,更,还要,尽管如此,依然静止画面,静态图片
+stimulate#/ˈstɪmjuleɪt/#vt.刺激;鼓舞,激励#vi.起刺激作用;起促进作用
+stimulus#/ˈstɪmjələs/#n.刺激;激励;刺激物
+sting#/stɪŋ/#n.刺痛;讽刺,刺激;刺毛#vt.刺;驱使;使…苦恼;使…疼痛#vi.刺痛;被刺痛;感到剧痛#n.(Sting)人名;(英)斯廷;(德)施廷
+stir#/stɜːr/#v.搅拌;微动;(使)活动;激发,打动;(非正式)挑拨;传播#n.搅拌;激动;(非正式)监狱
+stitch#/stɪtʃ/#n.针脚,线迹;一针#vt.缝,缝合#vi.缝,缝合
+stock#/stɑːk/#n.树干,库存,股票,股份,托盘,祖先,血统,原料#adj.股票的,普通的,常备的,存货的,繁殖用的#vt.装把手于,进货,备有,放牧#vi.出新芽,采购
+stocking#/ˈstɑːkɪŋ/#n.长袜
+stomach#/ˈstʌmək/#n.胃;腹部;胃口#vt.忍受;吃下#vi.忍受
+stone#/stoʊn/#n.石头;结石;[宝]宝石#adj.石的,石制的#vt.向扔石块;用石头铺#n.(Stone)人名;(捷)斯托内;(瑞典)斯托内;(英)斯通
+stony#/ˈstoʊni/#adj.石头覆盖的;石头制的;像石头的;无情的;石质的
+stool#/stuːl/#n.凳子;粪便;厕所#vi.长新枝;分檗#vt.引诱,诱捕
+stoop#/stuːp/#vi.弯腰;屈服;堕落#n.弯腰,屈背;屈服#vt.辱没,堕落;俯曲#n.(Stoop)人名;(法、荷、葡)斯托普
+stop#/stɑːp/#vt.停止;堵塞;断绝#vi.停止;中止;逗留;被塞住#n.停止;车站;障碍;逗留
+storage#/ˈstɔːrɪdʒ/#n.存储;仓库;贮藏所
+store#/stɔːr/#n.商店;储备,贮藏;仓库#vt.贮藏,储存#n.(Store)人名;(德)施托雷
+storey#/ˈstɔːri/#n.[建]楼层;叠架的一层#n.(Storey)人名;(西、瑞典)斯托雷;(英)斯托里
+storm#/stɔːrm/#n.暴风雨;大动荡#vi.起风暴;横冲直撞;狂怒咆哮#vt.猛攻;怒骂#n.(Storm)人名;(瑞典)斯托姆;(德)施托姆;(英、西、芬)斯托姆
+stormy#/ˈstɔːrmi/#adj.暴风雨的;猛烈的;暴躁的
+story#/ˈstɔːri/#n.故事;小说;描述;新闻报道;来历;假话;层;一种测量单位(1story等于3.3米)#vt.用历史故事画装饰#vi.说谎#n.(Story)斯托里(人名)
+stove#/stoʊv/#n.火炉;窑;温室#vt.用火炉烤#n.(Stove)人名;(瑞典)斯托韦
+straight#/streɪt/#adj.直的,诚实的,正直的,率直的,整齐的#adv.直,直接,一直
+straightforward#/ˌstreɪtˈfɔːrwərd/#adj.简单的;坦率的;明确的;径直的#adv.直截了当地;坦率地
+strain#/streɪn/#n.张力;拉紧;负担;扭伤;血缘#vi.拉紧;尽力#vt.拉紧;滥用;滤去;竭力#n.(Strain)人名;(英)斯特兰#n.(植物、动物的)品种;种类
+strange#/streɪndʒ/#adj.奇怪的;陌生的;外行的#adv.奇怪地;陌生地,冷淡地#n.(Strange)人名;(英)斯特兰奇;(瑞典、塞)斯特朗格
+stranger#/ˈstreɪndʒər/#n.陌生人;外地人;局外人#n.(Stranger)人名;(瑞典)斯特朗格;(英)斯特兰杰
+strap#/stræp/#n.带子,皮带,金属带;鞭打#v.用带捆绑,用带固定;包扎;鞭打
+strategic#/strəˈːdʒɪk/#adj.战略上的,战略的
+strategy#/ˈstrætədʒi/#n.战略,策略
+straw#/strɔː/#n.稻草;吸管;一文不值的东西#adj.稻草的;无价值的#n.(Straw)人名;(英)斯特劳
+strawberry#/ˈstrɔːberi/#n.草莓;草莓色
+stream#/striːm/#n.溪流;流动;潮流;光线;(数据)流#vi.流;涌进;飘扬#vt.流出;涌出;使飘动
+streamline#/ˈstriːmlaɪn/#vt.把…做成流线型;使现代化;组织;使合理化;使简单化#n.流线;流线型#adj.流线型的
+street#/striːt/#n.街道#adj.街道的#n.(Street)人名;(英、葡)斯特里特;(德)施特雷特
+strength#/streŋkθ/#n.力量;力气;兵力;长处
+strengthen#/ˈstreŋθn/#vt.加强;巩固#vi.变强;变坚挺
+stress#/stres/#n.压力;强调;紧张;重要性;重读#vt.强调;使紧张;加压力于;用重音读#n.(Stress)人名;(意)斯特雷斯
+stretch#/stretʃ/#v.伸展,伸长#n.一段时间,一段路程,伸展
+strict#/strɪkt/#adj.严格的;绝对的;精确的;详细的
+strictly#/ˈstrɪktli/#adv.严格地;完全地;确实地
+stride#/straɪd/#n.大步;步幅;进展#vt.跨过;大踏步走过;跨坐在…#vi.跨;跨过;大步行走
+strike#/straɪk/#n.罢工,打击,殴打#vt.打,撞击,冲击,罢工,打动,划燃,到达,侵袭#vi.打,打击,罢工,抓,敲,搏动,打动,穿透
+striking#/ˈstraɪkɪŋ/#adj.显著的,突出的,惊人的;打击的;罢工的#v.打(strike的ing形式)
+string#/strɪŋ/#n.线,弦,细绳;一串,一行#vt.悬挂;系;扎;用线(或细绳等)串,把……连在一起
+strip#/strɪp/#vt.剥,剥去#n.条,带
+stripe#/straɪp/#n.条纹,斑纹;种类#vt.加条纹于…
+strive#/straɪv/#vi.努力;奋斗;抗争
+stroke#/stroʊk/#n.击,敲,报时的钟声,(网球等)一击,(划船等)一划,(绘画等)一笔,一次努力,打击#vt.抚摸
+strong#/strɔːŋ/#adj.坚强的;强壮的;牢固的;擅长的#adv.强劲地;猛烈地#n.(Strong)人名;(英)斯特朗
+strongly#/ˈstrɔːŋli/#adv.坚定地;强有力地;强烈地(说服);(气味)浓重地
+structural#/ˈstrʌktʃərəl/#adj.结构的;建筑的
+structure#/ˈstrʌktʃər/#n.结构;构造;建筑物#vt.组织;构成;建造
+struggle#/ˈstrʌɡl/#v.奋斗;艰难地行进;斗争;搏斗;争夺;挣扎成名#n.斗争;冲突;使劲;奋斗;难事
+stubborn#/ˈstʌbərn/#adj.顽固的;顽强的;难处理的
+student#/ˈstuːdnt/#n.学生;学者#n.(Student)人名;(德)施图登特
+studio#/ˈstuːdioʊ/#n.工作室;[广播][电视]演播室;画室;电影制片厂
+study#/ˈstʌdi/#n.学习,研究;课题;书房;学问#vt.学习;考虑;攻读;细察#vi.研究;用功#n.(Study)人名;(英)斯塔迪
+stuff#/stʌf/#n.东西;材料;填充物;素材资料#vt.塞满;填塞;让吃饱#vi.吃得过多
+stumble#/ˈstʌmbl/#vi.踌躇,蹒跚;失足;犯错#vt.使…困惑;使…绊倒#n.绊倒;蹒跚而行
+stupid#/ˈstuːpɪd/#adj.愚蠢的;麻木的;乏味的#n.傻瓜,笨蛋
+sturdy#/ˈstɜːrdi/#adj.坚定的;强健的;健全的#n.羊晕倒病#n.(Sturdy)人名;(英)斯特迪
+style#/staɪl/#n.风格;时尚;类型;字体#vt.设计;称呼;使合潮流#vi.设计式样;用刻刀作装饰画#n.(Style)人名;(英)斯泰尔
+subject#/ˈsʌbdʒɪkt/#n.题目,主题,科目,学科,国民,[语法]主语#adj.受他国统治的,未独立的,受制于...的,受...影响的,以...为条件的#vt.使屈从于...,使隶属
+subjective#/səbˈdʒektɪv/#adj.主观的;个人的;自觉的
+submarine#/ˌsʌbməˈriːn/#n.潜水艇;海底生物#adj.海底的;水下的#vt.用潜水艇攻击#vi.在下疾行;在下滑动
+submerge#/səbˈmɜːrdʒ/#vt.淹没;把…浸入;沉浸#vi.淹没;潜入水中;湮没
+submit#/səbˈmɪt/#vt.使服从;主张;呈递;提交#vi.服从,顺从
+subordinate#/səˈbɔːrdɪnət/#n.部属,下属,下级;从属,次要#vt.使……居下位;使……服从#adj.从属的,隶属的;次要的
+subscribe#/səbˈskraɪb/#vi.订阅;捐款;认购;赞成;签署#vt.签署;赞成;捐助
+subsequent#/ˈsʌbsɪkwənt/#adj.随后的
+subsidiary#/səbˈsɪdieri/#adj.辅助的,次要的;附属的;子公司的#n.子公司;辅助者
+subsidy#/ˈsʌbsədi/#n.补贴;津贴;补助金
+substance#/ˈsʌbstəns/#n.物质;实质;资产;主旨
+substantial#/səbˈstænʃl/#adj.大量的;实质的;内容充实的#n.本质;重要材料
+substitute#/ˈsʌbstɪtuːt/#n.代用品;代替者#vi.替代#vt.代替
+subtle#/ˈsʌtl/#adj.微妙的;精细的;敏感的;狡猾的;稀薄的
+subtract#/səbˈtrækt/#vt.减去;扣掉
+suburb#/ˈsʌbɜːrb/#n.郊区;边缘
+subway#/ˈsʌbweɪ/#n.地铁;地道#vi.乘地铁
+succeed#/səkˈsiːd/#vi.成功;继承;继任;兴旺#vt.继承;接替;继……之后
+success#/səkˈses/#n.成功,成就;胜利;大获成功的人或事物
+successful#/səkˈsesfl/#adj.成功的;一帆风顺的
+successfully#/səkˈsesfəli/#adv.成功地;顺利地
+succession#/səkˈseʃn/#n.连续;继位;继承权;[生态]演替
+successive#/səkˈsesɪv/#adj.连续的;继承的;依次的;接替的
+successor#/səkˈsesər/#n.继承者;后续的事物
+such#/sʌtʃ/#adj.这样的,如此的#pron.这样的,类似的#n.(Such)(英)萨奇,(德)祖赫(人名)
+suck#/sʌk/#vt.吸吮;吸取#vi.吸吮;糟糕;巴结#n.吮吸
+sudden#/ˈsʌdn/#adj.突然的,意外的;快速的#n.突然发生的事
+suddenly#/ˈsʌdənli/#adv.突然地;忽然
+sue#/suː/#vt.控告;请求#vi.控告;提出请求#n.(Sue)人名;(日)末(名);(法)休;(英)休(女子教名Susan、Susanna的昵称)
+suffer#/ˈsʌfər/#vt.遭受;忍受;经历#vi.遭受,忍受;受痛苦;经验;受损害#n.(Suffer)人名;(意)苏费尔
+suffice#/səˈfaɪs/#vt.使满足;足够…用;合格#vi.足够;有能力
+sufficient#/səˈfɪʃnt/#adj.足够的;充分的
+sufficiently#/səˈfɪʃntli/#adv.充分地;足够地
+sugar#/ˈʃʊɡər/#n.糖;食糖;甜言蜜语#vt.加糖于;粉饰#vi.形成糖#n.(Sugar)人名;(英)休格
+suggest#/səˈdʒest,səɡˈdʒest/#vt.提议,建议;启发;使人想起;显示;暗示
+suggestion#/səˈdʒestʃən,səɡˈdʒestʃən#n.建议;示意;微量,细微的迹象
+suicide#/ˈsuːɪsaɪd/#n.自杀;自杀行为;自杀者#adj.自杀的#vt.自杀#vi.自杀
+suit#/suːt/#v.合适,适合,相配,合式,适宜于#n.一套衣服
+suitable#/ˈsuːtəbl/#adj.适当的;相配的
+suitcase#/ˈsuːtkeɪs/#n.[轻]手提箱;衣箱
+sulphur#/ˈsʌlfər/#n.硫磺;硫磺色#vt.使硫化;用硫磺处理
+sum#/sʌm/#n.金额;总数#vi.概括#vt.总结;合计#n.(Sum)人名;(英)萨姆;(柬)孙;(俄、德、捷)苏姆;(越)森
+summarize#/ˈsʌməraɪz/#vt.总结;概述#vi.作总结;作概括
+summary#/ˈsʌməri/#n.总结,概要#adj.总结性的;简略的,扼要的;(司法程序)即决的;简易判罪的
+summer#/ˈsʌmər/#n.夏季;全盛时期#vi.避暑;过夏天#adj.夏季的#n.(Summer)人名;(德)祖默;(英)萨默
+summit#/ˈsʌmɪt/#n.顶点;最高级会议;最高阶层#adj.最高级的;政府首脑的
+summon#/ˈsʌmən/#vt.召唤;召集;鼓起;振作
+sun#/sʌn/#n.太阳#vt.使晒#vi.晒太阳#n.(Sun)人名;(中)孙(普通话·威妥玛);(柬)孙;(缅)素;(土)松
+Sunday#/'sʌndi/#n.星期日;礼拜日
+sunlight#/ˈsʌnlaɪt/#n.日光#n.(Sunlight)人名;(英)森莱特
+sunny#/ˈsʌni/#adj.阳光充足的,和煦的;快活的;性情开朗的
+sunrise#/ˈsʌnraɪz/#n.日出;黎明#n.(Sunrise)人名;(德)松里泽
+sunset#/ˈsʌnset/#n.日落,傍晚
+sunshine#/ˈsʌnʃaɪn/#n.阳光;愉快;晴天;快活#n.(Sunshine)人名;(英)森夏恩
+super#/ˈsuːpər/#adj.特级的;极好的#n.特级品,特大号;临时雇员#n.(Super)人名;(英)休珀
+superb#/suːˈpɜːrb/#adj.极好的;华丽的;宏伟的#n.(Superb)人名;(罗)苏佩尔布
+superficial#/ˌsuːpərˈfɪʃl/#adj.表面的;肤浅的;表面文章的;外表的;(人)浅薄的
+superior#/suːˈpɪriər/#adj.上级的;优秀的,出众的;高傲的#n.上级,长官;优胜者,高手;长者
+superiority#/suːˌpɪriˈɔːrə/#n.优越,优势;优越性
+supermarket#/ˈsuːpərmɑːrkɪt/#n.超级市场;自助售货商店
+supersonic#/ˌsuːpərˈsɑːnɪk/#adj.超音速的;超声波的#n.超音速;超声波
+supervise#/ˈsuːpərvaɪz/#v.监督;管理;指导;主管;照看
+supper#/ˈsʌpər/#n.晚餐,晚饭;夜宵
+supplement#/ˈsʌplɪmənt/#n.增补(物);补品;增刊;(书籍的)附录;额外服务费用;补角#v.增补,补充
+supplementary#/ˌsʌplɪˈmentri/#adj.补充的;追加的#n.补充者;增补物
+supply#/səˈplaɪ/#n.供给,补给;供应品#vt.供给,提供;补充#vi.供给;替代
+support#/səˈpɔːrt/#vt.支撑,扶持,支持,支援,拥护,维持,赡养,忍受#n.支撑,支持,支援,维持,赡养,支持者,支柱
+suppose#/səˈpoʊz/#vt.假设;认为;让(虚拟语气);推想#vi.猜想;料想#conj.假使……结果会怎样
+suppress#/səˈpres/#vt.抑制;镇压;废止
+supreme#/suːˈpriːm/#adj.最高的;至高的;极大的
+sure#/ʃʊr/#adj.确信的;可靠的;必定的#adv.当然;的确#n.(Sure)(法、印、美、德)休尔(人名)
+surely#/ˈʃʊrli/#adv.当然;无疑;坚定地;稳当地
+surface#/ˈsɜːrfɪs/#n.表面;表层;外观#adj.表面的,肤浅的#vi.浮出水面#vt.使浮出水面;使成平面#n.(Surface)人名;(英)瑟菲斯
+surge#/sɜːrdʒ/#n.汹涌;大浪,波涛;汹涌澎湃;巨涌#v.汹涌;起大浪,蜂拥而来
+surgeon#/ˈsɜːrdʒən/#n.外科医生#n.(Surgeon)人名;(法)叙尔容
+surgery#/ˈsɜːrdʒəri/#n.外科;外科手术;手术室;诊疗室
+surname#/ˈsɜːrneɪm/#n.姓,姓氏;绰号,别名#vt.给…起别名;给…姓氏
+surpass#/sərˈpæs/#vt.超越;胜过,优于;非…所能办到或理解
+surplus#/ˈsɜːrplʌs/#n.剩余;[贸易]顺差;盈余;过剩#adj.剩余的;过剩的
+surprise#/sərˈpraɪz/#n.惊奇,诧异;突然袭击#vt.使惊奇;奇袭#adj.令人惊讶的
+surprising#/sərˈpraɪzɪŋ/#adj.令人惊讶的;意外的#v.使惊奇;意外发现(surprise的ing形式)
+surprisingly#/sərˈpraɪzɪŋli/#adv.惊人地;出人意料地
+surrender#/səˈrendər/#vt.使投降;放弃;交出;听任#vi.投降;屈服;自首#n.投降;放弃;交出;屈服
+surround#/səˈraʊnd/#vt.围绕;包围#n.围绕物#adj.环绕立体声的
+surroundings#/səˈraʊndɪŋz/#n.环境;周围的事物
+survey#/ˈsɜːrveɪ/#n.调查;测量;审视;纵览#vt.调查;勘测;俯瞰#vi.测量土地
+survival#/sərˈvaɪvl/#n.幸存,残存;幸存者,残存物
+survive#/sərˈvaɪv/#vt.幸存;生还;幸免于;比...活得长#vi.幸存;活下来
+susceptible#/səˈseptəbl/#adj.易受影响的;易感动的;容许……的#n.易得病的人
+suspect#/səˈspekt/#v.怀疑;猜想#n.嫌疑犯#adj.靠不住的;可疑的
+suspend#/səˈspend/#vt.延缓,推迟;使暂停;使悬浮#vi.悬浮;禁赛
+suspension#/səˈspenʃn/#n.悬浮;暂停;停职
+suspicion#/səˈspɪʃn/#n.怀疑;嫌疑;疑心;一点儿#vt.怀疑
+suspicious#/səˈspɪʃəs/#adj.可疑的;怀疑的;多疑的
+sustain#/səˈsteɪn/#vt.维持;支撑,承担;忍受;供养;证实
+swallow#/ˈswɑːloʊ/#vt.忍受;吞没#vi.吞下;咽下#n.燕子;一次吞咽的量#n.(Swallow)(英)斯沃洛(人名)
+swamp#/swɑːmp/#n.沼泽,湿地,煤层聚水#v.陷入沼泽,淹没,覆没
+swan#/swɑːn/#n.天鹅;天鹅星座#vi.游荡,闲荡#n.(Swan)人名;(英、芬、德)斯旺
+swarm#/swɔːrm/#n.一大群;蜂群;人群;一大群小型天体同时在空中出现#v.成群来回移动;蜂拥而至;挤满;爬;(蜜蜂)成群飞离蜂巢
+sway#/sweɪ/#vt.影响;统治;使摇动#vi.影响;摇摆#n.影响;摇摆;统治#n.(Sway)人名;(以)斯韦
+swear#/swer/#vt.发誓;咒骂#vi.发誓,宣誓;诅咒#n.宣誓;诅咒
+sweat#/swet/#n.汗#v.(使)出汗
+sweater#/ˈswetər/#n.毛线衣,运动衫;大量出汗的人,发汗剂
+sweep#/swiːp/#v.扫,打扫,清扫,席卷,冲光,扫过,掠过
+sweet#/swiːt/#adj.甜的;悦耳的;芳香的;亲切的#n.糖果;乐趣;芳香;宝贝(俚)酷毙了#n.(Sweet)人名;(英)斯威特
+swell#/swel/#v.(使)膨胀,增大
+swift#/swɪft/#n.[鸟]雨燕,(梳棉机等的)大滚筒#adj.迅速的,快的,敏捷的,立刻的#adv.迅速地,敏捷地
+swim#/swɪm/#vi.游泳;漂浮;浸;眩晕#vt.游过;使浮起#n.游泳;漂浮;眩晕#adj.游泳时穿戴的
+swing#/swɪŋ/#v.摇摆,摆动,回转,旋转#n.秋千,摇摆,摆动
+Swiss#/swɪs/#adj.瑞士的;瑞士人的;瑞士风格的#n.瑞士人#n.(美)史威史(人名)
+switch#/swɪtʃ/#n.开关,电闸,转换#vt.转换,转变
+symbol#/ˈsɪmbl/#n.象征;符号;标志
+symmetry#/ˈsɪmətri/#n.对称(性);整齐,匀称
+sympathetic#/ˌsɪmpəˈθetɪk/#adj.同情的;交感神经的;共鸣的;赞同的;和谐的;合意的#n.交感神经;容易感受的人
+sympathize#/ˈsɪmpəθaɪz/#vi.同情,怜悯;支持
+sympathy#/ˈsɪmpəθi/#n.同情;慰问;赞同
+symphony#/ˈsɪmfəni/#n.交响乐;谐声,和声
+symposium#/sɪmˈpoʊziəm/#n.讨论会,座谈会;专题论文集;酒宴,宴会
+symptom#/ˈsɪmptəm/#n.[临床]症状;征兆
+synthesis#/ˈsɪnθəsɪs/#n.综合,[化学]合成;综合体
+synthetic#/sɪnˈθetɪk/#adj.综合的;合成的,人造的#n.合成物
+system#/ˈsɪstəm/#n.制度,体制;系统;方法
+table#/ˈteɪbl/#n.桌子;表格;平地层#vt.制表;搁置;嵌合#adj.桌子的#n.(Table)人名;(罗)塔布莱
+tablet#/ˈtæblət/#n.碑;药片;写字板;小块;平板电脑#vt.用碑牌纪念;将(备忘录等)写在板上;将…制成小片或小块
+tackle#/ˈtækl/#n.工具,复滑车,滑车,用具,装备,扭倒#vt.固定,应付(难事等),处理,解决,抓住#vi.捉住,扭住,扭倒
+tactics#/ˈtæktɪks/#n.策略;战术;用兵学
+tag#/tæɡ/#n.标签;名称;结束语;附属物#vt.给……加上标签;尾随,紧随;连接;起浑名#vi.紧随#n.(Tag)塔(人名)
+tail#/teɪl/#n.尾巴;踪迹;辫子;燕尾服#vt.尾随;装上尾巴#vi.跟踪;变少或缩小#adj.从后面而来的;尾部的
+tailor#/ˈteɪlər/#n.裁缝#v.专门制作,订做;调整;迎合#n.(Tailor)(美、爱、英)泰勒(人名)
+take#/teɪk/#v.拿,拿走,取,抓,占领,获得,接受,感受#n.捕获量
+tale#/teɪl/#n.故事;传说;叙述;流言蜚语#n.(Tale)人名;(塞)塔莱
+talent#/ˈtælənt/#n.才能;天才;天资
+talk#/tɔːk/#v.谈话,讲,谈论,议论,说服某人做某事#n.谈话,会谈,讲演,讲话
+tall#/tɔːl/#adj.高的;长的;过分的;夸大的#adv.夸大地#n.(Tall)人名;(马里、阿拉伯)塔勒;(芬、罗、瑞典)塔尔;(英)托尔;(土)塔勒
+tame#/teɪm/#adj.驯服的;平淡的;乏味的;顺从的#vt.驯养;使变得平淡;制服#vi.变得驯服#n.(Tame)人名;(捷)塔梅
+tan#/tæn/#n.日晒后的颜色,棕褐色,茶色#adj.棕褐色的,茶色#v.晒黑,晒成褐色
+tangle#/ˈtæŋɡl/#v.(使)缠结在一起;(使)乱成一团;处于混乱状态;(和……)争吵;打架#n.缠结;混乱,纷乱;争吵;打架;大型棕色海藻(尤指昆布)
+tank#/tæŋk/#n.坦克;水槽;池塘#vt.把…贮放在柜内;打败#vi.乘坦克行进#n.(Tank)人名;(德、土、阿塞、土库、挪)汤克
+tap#/tæp/#v.轻敲;装上嘴子;窃听;采用;在树上切口;委任;非法劝说转会#n.水龙头;阀门;轻打;窃听;踢踏舞;熄灯号;葬礼号#n.(Tap)塔(人名)
+tape#/teɪp/#n.胶带;磁带;带子;卷尺#vt.录音;用带子捆扎;用胶布把…封住#vi.用磁带录音#n.(Tape)人名;(英)泰普
+tar#/tɑːr/#n.焦油;柏油;水手#vt.涂以焦油;玷污#n.(Tar)人名;(东南亚国家华语)大;(罗、塞、匈、阿拉伯)塔尔
+target#/ˈtɑːrɡɪt/#n.目标,指标;(攻击的)对象;靶子#v.把...作为目标;面向,对准(某群体)#n.(Target)美国塔吉特公司
+tariff#/ˈtærɪf/#n.关税表;收费表#vt.定税率;征收关税
+task#/tæsk/#n.(困难的)任务,工作;(语言教学中的)活动#v.派给某人(任务);对(手段或能力)要求极高
+taste#/teɪst/#n.味道;品味;审美#vt.尝;体验#vi.尝起来;有…的味道#n.(Taste)人名;(法)塔斯特
+tax#/tæks/#n.税金;重负#v.向……课税;使……负重担;缴纳车辆牌照税;批评;审定诉讼费#n.(Tax)(美、荷、奥、印、俄、德)塔克斯(人名)
+taxi#/ˈtæksi/#n.出租汽车;(非洲的)小巴士;出租汽船#v.(飞机)滑行;乘出租车;用出租车送
+tea#/tiː/#n.茶叶;茶树;茶点#vt.给…沏茶#vi.喝茶;进茶点#n.(Tea)人名;(柬)迪
+teach#/tiːtʃ/#vt.教;教授;教导#vi.教授;讲授;当老师#n.(Teach)人名;(英)蒂奇
+teacher#/ˈːtʃər/#n.教师;导师#n.(Teacher)人名;(英)蒂彻
+teaching#/ˈːtʃɪŋ/#n.教学;教义#v.教学;教导(teach的ing形式)
+team#/tiːm/#n.队;组#vt.使合作#vi.合作#n.(Team)人名;(柬)甸
+tear#/ˈtɛː;ˈtɪə/#v.撕掉,扯下;撕破;拔掉;拉伤;(非正式)狂奔;饱经……摧残;流眼泪#n.眼泪;(撕破的)洞或裂缝,撕扯#n.(Tear)(美)蒂尔(人名)
+tease#/tiːz/#vt.取笑;戏弄;梳理;欺负;强求;使起毛#n.戏弄;爱纠缠的小孩;挑逗者;卖弄风骚的女孩#vi.取笑
+technical#/ˈteknɪkl/#adj.工艺的,科技的;技术上的;专门的
+technician#/tekˈnɪʃn/#n.技师,技术员;技巧纯熟的人
+technique#/tekˈniːk/#n.技巧,技术;手法
+technology#/tekˈnɑːlədʒi/#n.技术;工艺;术语
+tedious#/ˈːdiəs/#adj.沉闷的;冗长乏味的
+teenager#/ˈːneɪdʒər/#n.十几岁的青少年;十三岁到十九岁的少年
+telegram#/ˈtelɪɡræm/#n.电报#vt.用电报发送#vi.发电报
+telegraph#/ˈtelɪɡræf/#n.[通信]电报机,电报#vt.电汇;流露出;打电报给…#vi.打电报
+telephone#/ˈtelɪfoʊn/#n.(美)电话;电话机;电话耳机#vi.打电话#vt.打电话给…
+telescope#/ˈtelɪskoʊp/#n.望远镜#v.叠套缩短;精简,压缩;(车)相撞而嵌进
+television#/ˈtelɪvɪʒn/#n.电视,电视机;电视业
+tell#/tel/#vt.告诉,说;辨别;吩咐;断定#vi.讲述;告发,泄密;识别#n.(Tell)人名;(英、德、瑞典)特尔;(罗、意)泰尔;(阿拉伯)塔勒
+temper#/ˈtempər/#n.脾气;(钢等)回火;性情;倾向#vt.使回火;锻炼;调和;使缓和#vi.回火;调和
+temperament#/ˈtemprəmənt/#n.气质,性情,性格;急躁
+temperature#/ˈtemprətʃər,ˈtemprətʃʊr/#n.温度;体温;气温;发烧
+temple#/ˈtempl/#n.庙宇;寺院;神殿;太阳穴#n.(Temple);(法)唐普勒(人名);(英)坦普尔(人名)
+tempo#/ˈtempoʊ/#n.速度,发展速度;拍子#n.(Tempo)人名;(意)滕波
+temporary#/ˈtempəreri/#adj.暂时的,临时的#n.临时工,临时雇员
+tempt#/tempt/#vt.诱惑;引起;冒…的风险;使感兴趣
+temptation#/tempˈteɪʃn/#n.引诱;诱惑物
+ten#/ten/#num.十个,十#n.(Ten)登(人名)
+tenant#/ˈtenənt/#n.承租人;房客;佃户;居住者#vt.租借(常用于被动语态)#n.(Tenant)人名;(法)特南
+tend#/tend/#vi.趋向,倾向;照料,照顾#vt.照料,照管
+tendency#/ˈtendənsi/#n.倾向,趋势;癖好
+tender#/ˈtendər/#adj.嫩的,温柔的,软弱的
+tennis#/ˈtenɪs/#n.网球(运动)#n.(Tennis)(英)坦尼斯(人名)
+tense#/tens/#adj.紧张的;拉紧的#vt.变得紧张;使拉紧#vi.拉紧,变得紧张#n.时态
+tent#/tent/#n.帐篷;住处;帷幕#vt.用帐篷遮盖;使在帐篷里住宿#vi.住帐蓬;暂时居住#n.(Tent)人名;(罗、瑞典)滕特
+tentative#/ˈtentətɪv/#adj.试验性的,暂定的;踌躇的#n.假设,试验
+tenth#/tenθ/#num.第十#n.第十个;十分之一;十度音#adj.第十个的;十分之一的
+term#/tɜːrm/#n.术语;学期;期限;条款;(代数式等的)项#vt.把…叫做#n.(Term)人名;(泰)丁
+terminal#/ˈtɜːrmɪnl/#n.航空站;终点站;终端机;线接头;末端;晚期病人#adj.晚期的;无可挽回的;末端的;终点的;期末的;(花朵等)顶升的
+terminate#/ˈtɜːrmɪneɪt/#vt.使终止;使结束;解雇#vi.结束,终止;结果#adj.结束的
+terrace#/ˈterəs/#n.平台;梯田;阳台#vt.使成梯田,使成阶地;使有平台屋顶#vi.成阶地;成梯田;筑成坛#adj.(女服)叠层式的#n.(Terrace)人名;(英)特勒斯
+terrain#/təˈreɪn/#n.[地理]地形,地势;领域;地带
+terrible#/ˈterəbl/#adj.可怕的;很糟的;令人讨厌的#adv.很,非常
+terrific#/təˈrɪfɪk/#adj.极好的;极其的,非常的;可怕的
+terrify#/ˈterɪfaɪ/#vt.恐吓;使恐怖;使害怕
+territory#/ˈterətɔːri/#n.领土,领域;范围;地域;版图
+terror#/ˈterər/#n.恐怖;恐怖行动;恐怖时期;可怕的人#n.(Terror)人名;(南非)特罗尔
+test#/test/#n.测验,考查;测试;检验;化验#v.测验;化验,检查;试验,测试;考验
+testify#/ˈtestɪfaɪ/#vt.证明,证实;作证#vi.作证;证明
+testimony#/ˈtestɪmoʊni/#n.[法]证词,证言;证据
+text#/tekst/#n.[计]文本;课文;主题#vt.发短信
+textbook#/ˈtekstbʊk/#n.教科书,课本
+textile#/ˈtekstaɪl/#n.纺织品,织物#adj.纺织的
+texture#/ˈtekstʃər/#n.质地;纹理;结构;本质,实质#vt.使具有浮凸纹理;使质地不平
+than#/ðən,ðæn/#conj.比#prep.与...相比较
+thank#/θæŋk/#vt.感谢#n.感谢#int.谢谢
+thanksgiving#/ˌθæŋksˈɡɪvɪŋ/#n.感恩
+that#/ðæt/#adj.那,那个#pron.那,那个#conj.引导从句
+the#/ðə;ði;ðiː/#art.这;那#adv.更加(用于比较级,最高级前)
+theatre#/ˈθiːətər/#n.电影院,戏院;戏剧;阶梯式讲堂
+theft#/θeft/#n.盗窃;偷;赃物
+their#/ðer/#pron.他们的,她们的;它们的#n.(Their)人名;(英)蒂尔;(芬、瑞典)泰尔
+theirs#/ðerz/#pron.他们的,她们的,它们的;他的,她的
+them#/ðəm;ðem/#pron.他们;她们;它们#n.(Them)(老)探(人名)
+theme#/θiːm/#n.主题;主旋律;题目#adj.以奇想主题布置的
+themselves#/ðəmˈselvz/#pron.他们自己;他们亲自
+then#/ðen/#adv.当时;然后;那么;此外;而且;总之#adj.当时的#n.那时
+theoretical#/ˌθiːəˈretɪkl/#adj.理论的;理论上的;假设的;推理的
+theory#/ˈθiːəri,ˈθɪri/#n.理论;原理;学说;推测
+therapy#/ˈθerəpi/#n.治疗,疗法
+there#/ðer/#adv.在那里;在那边;在那点上#int.你瞧#n.那个地方
+thereafter#/ˌðerˈæftər/#adv.其后;从那时以后
+thereby#/ˌðerˈbaɪ/#adv.从而,因此;在那附近;在那方面
+therefore#/ˈðerfɔːr/#adv.因此;所以
+thermal#/ˈθɜːrml/#adj.热的;热量的;保热的#n.上升的热气流
+thermometer#/θərˈmɑːmɪtər/#n.温度计;体温计
+these#/ðiːz/#det.这些(this的复数)pron.这些(this的复数)#adj.这些的(this的复数)
+thesis#/ˈθiːsɪs/#n.论文;论点
+they#/ðeɪ/#pron.他们;它们;她们
+thick#/θɪk/#adj.厚的,粗的,稠的,浓的#n.最拥挤部份,活动最多部份,事物的粗大浓密部份
+thickness#/ˈθɪknəs/#n.厚度;层;浓度;含混不清
+thief#/θiːf/#n.小偷,贼
+thin#/θɪn/#adj.薄的;瘦的;稀薄的;微弱的#vt.使瘦;使淡;使稀疏#vi.变薄;变瘦;变淡#adv.稀疏地;微弱地#n.细小部分#n.(Thin)(越)辰;(柬)廷(人名)
+thing#/θɪŋ/#n.事情;东西;事物;情况
+think#/θɪŋk/#vt.想;认为;想起;想像;打算#vi.想;认为#n.想;想法#adj.思想的
+third#/θɜːrd/#num.第三,三分之一
+thirdly#/ˈθɜːrdli/#adv.第三
+thirst#/θɜːrst/#n.渴望;口渴;热望#vi.渴望;口渴
+thirsty#/ˈθɜːrs/#adj.口渴的,口干的;渴望的,热望的
+thirteen#/ˌθɜːrˈːn/#n.十三;十三岁;十三个#num.十三#adj.十三的;十三个的
+thirty#/ˈθɜːr/#n.三十年代#num.三十#adj.三十个的
+this#/ðɪs/#pron.这,这个;这样;今,本;……的这个;有个#adj.这,这个(离说话人较近的)#adv.这样地,这么#n.(This)(法、美、印、巴)蒂斯(人名)
+thorn#/θɔːrn/#n.刺;荆棘#n.(Thorn)(英、法、德、丹、瑞典)托恩(人名)
+thorough#/ˈθɜːroʊ/#adj.彻底的;十分的;周密的
+those#/ðoʊz/#det.那些(that的复数)pron.那些(that的复数)
+though#/ðoʊ/#conj.虽然,尽管#adv.虽然;不过;然而
+thought#/θɔːt/#n.思想;思考;想法;关心#v.想,思考;认为(think的过去式和过去分词)
+thoughtful#/ˈθɔːl/#adj.深思的;体贴的;关切的
+thousand#/ˈθaʊznd/#n.一千;一千个;许许多多
+thread#/θred/#n.线;螺纹;思路;衣服;线状物;玻璃纤维;路线#vt.穿过;穿线于;使交织#vi.通过;穿透过
+threat#/θret/#n.威胁,恐吓;凶兆
+threaten#/ˈθretn/#vt.威胁;恐吓;预示#vi.威胁;可能来临
+three#/θriː/#n.三,三个#num.三#adj.三的,三个的
+threshold#/ˈθreʃhoʊld/#n.入口;门槛;开始;极限;临界值
+thrill#/θrɪl/#n.激动;震颤;紧张#vt.使…颤动;使…紧张;使…感到兴奋或激动#vi.颤抖;感到兴奋;感到紧张
+thrive#/θraɪv/#vi.繁荣,兴旺;茁壮成长
+throat#/θroʊt/#n.喉咙;嗓子,嗓音;窄路#vt.开沟于;用喉音说
+throne#/θroʊn/#n.王座;君主;王权#vi.登上王座#vt.使登王位#n.(Throne)人名;(瑞典)特罗内;(英)特罗恩
+throng#/θrɔːŋ/#n.人群;众多#vt.群集;挤满#vi.蜂拥而至;群集#adj.拥挤的
+through#/θruː/#prep.穿过,通过,从开始到结束,经由,以#adv.从头到尾,自始至终,直达地,彻底,完全#adj.直达的,直通的
+throughout#/θruːˈaʊt/#adv.自始至终;遍及#prep.自始至终;遍及
+throw#/θroʊ/#vt.投;抛;掷;举行(派对)#vi.抛;投掷#n.投掷;冒险
+thrust#/θrʌst/#v.插;插入;推挤;插入;用向某人刺去;猛然或用力推;伸展;强使接受;竖起,挺出#n.推力;刺;要旨,重点;强攻;冲断层,逆断层;苛评
+thumb#/θʌm/#n.拇指;(手套的)拇指部分#v.翻阅;以拇指拨弄;作搭车手势
+thunder#/ˈθʌndər/#n.雷;轰隆声;恐吓#vi.打雷;怒喝#vt.轰隆地发出;大声喊出
+Thursday#/'θɜːrzdei/#n.星期四
+thus#/ðʌs/#adv.因此;从而;这样;如此
+tick#/tɪk/#n.滴答声,记号,勾号,扁虱#v.滴答地响,标以记号,作滴答声
+ticket#/ˈtɪkɪt/#n.票;入场券,标签;(美)候选人名单;证明书;交通罚款单#vt.加标签于;指派;对…开出交通违规罚单
+tide#/taɪd/#n.趋势,潮流;潮汐#vt.随潮漂流
+tidy#/ˈtaɪdi/#adj.整齐的;相当大的#vt.整理;收拾;弄整齐#vi.整理;收拾#n.椅子的背罩#n.(Tidy)人名;(英)泰迪
+tie#/taɪ/#n.带子,线,鞋带,不分胜负,关系,领带,领结,平局#vt.系,打结,扎,约束,与...成平局#vi.被用带(或绳子等)系住,结合,打结,不分胜负
+tiger#/ˈtaɪɡər/#n.老虎;凶暴的人#n.(Tiger)人名;(英)泰格;(法)蒂热;(瑞典)蒂格
+tight#/taɪt/#adj.紧的;密封的;绷紧的;麻烦的;严厉的;没空的;吝啬的#adv.紧紧地;彻底地#n.(Tight)人名;(英)泰特
+tile#/taɪl/#n.瓷砖,瓦片#vt.铺以瓦;铺以瓷砖#n.(Tile)人名;(俄、塞、萨摩)蒂勒
+till#/tɪl/#prep.直到,在...以前,迄#conj.在...以前,直到...为止#vt.耕种#n.(商店)铁柜,放钱的抽屉,备用现金,冰渍
+tilt#/tɪlt/#v.倾斜,翘起;俯仰(摄影机);以言词或文字抨击#n.倾斜;(意欲赢得某物或战胜某人的)企图,尝试#n.(Tilt)(美、英)蒂尔特(人名)
+timber#/ˈtɪmbər/#n.木材;木料#n.(Timber)人名;(瑞典)廷贝尔
+time#/taɪm/#n.时间;时代;次数;节拍;倍数#vt.计时;测定…的时间;安排…的速度#adj.定时的;定期的;分期的#n.(Time)人名;(俄)季梅;(英)泰姆;(罗)蒂梅
+timely#/ˈtaɪmli/#adj.及时的;适时的#adv.及时地;早
+timetable#/ˈtaɪmteɪbl/#n.时间表;时刻表;课程表
+timid#/ˈtɪmɪd/#adj.胆小的;羞怯的
+tin#/tɪn/#n.锡;罐头,罐;马口铁#adj.锡制的#vt.涂锡于;给…包马口铁#n.(Tin)人名;(缅、柬)丁;(印尼)婷;(越)信;(泰、土)廷
+tiny#/ˈtaɪni/#adj.微小的;很少的#n.(Tiny)人名;(葡、印)蒂尼
+tip#/tɪp/#n.顶,尖端,梢,倾斜,轻击,末端,小费,秘密消息#vt.在...顶端装附加物,使倾斜,使翻倒,暗示,轻击,给,泄露,给小费#vi.倾斜,翻倒,倾覆,踮脚走,给小费#n.提示,技巧
+tire#/ˈtaɪər/#v.疲劳,疲倦;厌倦,厌烦#n.轮胎;头饰(同tyre)#n.(Tire)(法、俄、土)蒂雷(人名)
+tired#/ˈtaɪərd/#adj.疲倦的;厌倦的,厌烦的#v.疲倦;对…腻烦(tire的过去分词形式)
+tissue#/ˈtɪʃuː/#n.组织;纸巾;薄纱;一套#vt.饰以薄纱;用化妆纸揩去
+title#/ˈtaɪtl/#n.冠军;标题;头衔;权利;字幕#vt.加标题于;赋予头衔;把…称为#adj.冠军的;标题的;头衔的
+to#/tə,tu,tuː/#prep.向,往,给...,于...,直到...为止,在...之前,比,对,[表示程度、范围]到,达[域]Tonga,汤加
+toast#/toʊst/#n.干杯;烤面包;接受敬酒的人;(在某领域)广受赞誉的人#vt.向…祝酒,为…干杯#vi.烤火,取暖;使暖和;烘烤(面包片等)
+tobacco#/təˈbækoʊ/#n.烟草,烟叶;烟草制品;抽烟
+today#/təˈdeɪ/#adv.今天,今日;现今,当代#n.今天,今日;现今,当代#n.(Today)(印度、美、俄)托迪(人名)
+toe#/toʊ/#n.脚趾;足尖#vt.用脚尖走;以趾踏触#vi.动脚尖;用足尖跳舞#n.(Toe)人名;(布基)托埃;(缅)梭;(朝)堆;(日)土江(姓)
+together#/təˈɡeðər/#adv.一起;同时;相互;连续地;总共#adj.新潮的;情绪稳定的,做事有效率的
+toilet#/ˈtɔɪlət/#n.厕所,盥洗室;梳妆,打扮#vi.梳妆,打扮#vt.给…梳妆打扮
+token#/ˈtoʊkən/#n.表示,向征,记号,代币#adj.象征的,表意的
+tolerance#/ˈtɑːlərəns/#n.宽容,容忍;耐力;公差
+tolerant#/ˈtɑːlərənt/#adj.宽容的;容忍的;有耐药力的
+tolerate#/ˈtɑːləreɪt/#vt.忍受;默许;宽恕
+tomato#/təˈmeɪtoʊ/#n.番茄,西红柿
+tomb#/tuːm/#n.坟墓;死亡#vt.埋葬#n.(Tomb)人名;(英)图姆
+tomorrow#/təˈmɑːroʊ/#adv.在明天,在明日;在未来#n.明天,明日;未来,来日(尤指不久的将来)
+ton#/tʌn/#n.吨;很多,大量#n.(Ton)人名;(西、俄、捷、荷)托恩;(柬)敦;(东南亚国家华语)通;(朝)敦
+tone#/toʊn/#n.语气;色调;音调;音色#vt.增强;用某种调子说#vi.颜色调和;呈现悦目色调#n.(Tone)人名;(罗、塞、乍)托内;(英)托恩
+tongue#/tʌŋ/#n.舌头;语言#vt.舔;斥责;用舌吹#vi.说话;吹管乐器#n.(Tongue)人名;(英)唐
+tonight#/təˈnaɪt/#adv.在今晚,今夜#n.今晚,今夜
+too#/tuː/#adv.太;也;很;还;非常;过度
+tool#/tuːl/#n.工具,用具;器械,机床;手段#vi.使用工具;用机床装备工厂#vt.用工具给……加工
+tooth#/tuːθ/#n.牙齿#vt.给……装齿#vi.啮合#n.(Tooth)人名;(英)图思
+top#/tɑːp/#n.顶部,顶端,极点,顶蓬,陀螺,(常用复数)根菜植物的叶子,上部,盖子#adj.最高的,顶上的,头等的#vt.盖,戴,高耸,达到顶端,截去(植物)顶端,高过,超越#vi.结束,完成,胜过
+topic#/ˈtɑːpɪk/#n.主题(等于theme);题目;一般规则;总论
+torch#/tɔːrtʃ/#n.火把,火炬;手电筒;启发之物#vi.像火炬一样燃烧#vt.用火炬点燃
+torrent#/ˈtɔːrənt/#n.奔流;倾注;迸发;连续不断;急流,激流;(话语、感情的)迸发#n.(Torrent)(西、法、美等)托伦特(人名)
+tortoise#/ˈtɔːrtəs/#n.龟,[脊椎]乌龟(等于testudo);迟缓的人
+torture#/ˈtɔːrtʃər/#n.折磨;拷问;歪曲#v.折磨;拷问;歪曲
+toss#/tɔːs/#v.投,掷
+total#/ˈtoʊtl/#adj.全部的;完全的;整个的#vt.总数达#vi.合计#n.总数,合计#n.(Total)人名;(法、德)托塔尔
+touch#/tʌtʃ/#n.触,触觉,接触,联系,轻触,碰,缺点,格调#vt.接触,触摸,触及,达到,涉及,点缀,使接触,感动#vi.触摸,接近,涉及,提到
+tough#/tʌf/#adj.艰苦的,困难的;坚强的,不屈不挠的;坚韧的,牢固的;强壮的,结实的#n.恶棍#vt.坚持;忍受,忍耐#adv.强硬地,顽强地#n.(Tough)人名;(英)图赫
+tour#/tʊr/#n.旅游,旅行;巡回演出#vt.旅行,在……旅游;在……作巡回演出#vi.旅行,旅游;作巡回演出#n.(Tour)(瑞典、英)托尔;图尔(人名)
+tourist#/ˈtʊrɪst/#n.旅行者,观光客#adj.旅游的#vt.在旅行参观#vi.旅游;观光#adv.坐旅游车厢;坐经济舱
+tow#/toʊ/#v.拖;牵引;拽#n.拖;麻的粗纤维;拖具#n.(Tow)(美、新加坡、马来西亚)道(人名)
+toward#/tɔːrd/#prep.向;趋向;对于;接近(时间);靠近;用于,为了(同towards)#adj.即将来到的,进行中的#n.(Toward)(美、加、沙特)特沃德
+towards#/tɔːrdz/#prep.朝,向;趋向;接近(目的);将近(某一时间);对于;向……致敬;用于;有助于
+towel#/ˈtaʊəl/#n.毛巾,手巾;[纸]纸巾#vt.用毛巾擦#vi.用毛巾擦干身体
+tower#/ˈtaʊər/#n.塔;高楼;堡垒#vi.高耸;超越#n.(Tower)人名;(英)托尔
+town#/taʊn/#n.城镇,市镇;市内商业区#n.(Town)人名;(英)汤
+toy#/tɔɪ/#n.玩具;小装饰品;不值钱的东西#vi.玩弄;调情;随随便便地对待#adj.作为玩具的;玩物似的#n.(Toy)(美)托伊(人名)
+trace#/treɪs/#n.痕迹,踪迹,微量,迹线,缰绳#vt.描绘,映描,画轮廓,追踪,回溯,探索#vi.上溯,沿路走
+track#/træk/#n.轨道;足迹,踪迹;小道#vt.追踪;通过;循路而行;用纤拉#vi.追踪;走;留下足迹
+tract#/trækt/#n.束;大片土地,地带;小册子#n.(Tract)人名;(英)特拉克特
+tractor#/ˈtræktər/#n.拖拉机;牵引机
+trade#/treɪd/#n.贸易,交易;行业;职业#vi.交易,买卖;以物易物#vt.用……进行交换
+tradition#/trəˈdɪʃn/#n.惯例,传统;传说
+traditional#/trəˈdɪʃənl/#adj.传统的;惯例的
+traffic#/ˈtræfɪk/#n.交通;运输;贸易;[通信]通信量#vt.用…作交换;在…通行#vi.交易,买卖
+tragedy#/ˈtrædʒədi/#n.悲剧;灾难;惨案
+tragic#/ˈtrædʒɪk/#adj.悲剧的;悲痛的,不幸的
+trail#/treɪl/#n.踪迹,痕迹,形迹#vt.跟踪,追踪,拉,拖,拖拉,(指植物)蔓生,蔓延,(指人)没精打采地走
+train#/treɪn/#n.火车;行列;长队;裙裾#v.培养;训练;瞄准#n.(Train)人名;(英)特雷恩;(法)特兰;(意)特拉因
+training#/ˈtreɪnɪŋ/#n.训练;培养;瞄准;整枝#v.训练;教养(train的ing形式)
+trait#/treɪt/#n.特性,特点;品质;少许#n.(Trait)(美、法)特雷(人名)
+traitor#/ˈtreɪtər/#n.叛徒;卖国贼;背信弃义的人
+tram#/træm/#n.电车轨道;煤车#vt.用煤车运载#vi.乘电车
+tramp#/træmp/#v.重步行走,踏,践,践踏
+transaction#/trænˈzækʃn/#n.交易;事务;办理;会报,学报
+transcend#/trænˈsend/#vt.胜过,超越
+transfer#/trænsˈfɜːr/#n.迁移,移动,传递,转移,调任,转帐,过户,转让#vt.转移,调转,调任,传递,转让,改变#vi.转移,转学,换车
+transform#/trænsˈfɔːrm/#vt.改变,使…变形;转换#vi.变换,改变;转化
+transformation#/ˌtrænsfərˈmeɪʃn/#n.[遗]转化;转换;改革;变形
+transformer#/trænsˈfɔːrmər/#n.[电]变压器;促使变化的人
+transient#/ˈtrænʃnt/#adj.短暂的;路过的#n.瞬变现象;过往旅客;候鸟
+transistor#/trænˈzɪstə(r)/#n.晶体管(收音机)
+transit#/ˈtrænzɪt,ˈtrænsɪt/#n.经过,通行,搬运,运输,运输线,转变#vt.横越,通过,经过#vi.通过#n.[天]中天,经纬仪
+transition#/trænˈsɪʃn/#n.过渡;转变;[分子生物]转换;变调
+translate#/trænzˈleɪt/#vt.翻译;转化;解释;转变为;调动#vi.翻译
+translation#/trænzˈleɪʃn/#n.翻译;译文;转化;调任
+transmission#/trænzˈmɪʃn/#n.传动装置,[机]变速器;传递;传送;播送
+transmit#/trænsˈmɪt/#vt.传输;传播;发射;传达;遗传#vi.传输;发射信号
+transparent#/trænsˈpærənt/#adj.透明的;显然的;坦率的;易懂的
+transplant#/trænsˈplɑːnt/#v.移植;移栽;使移居#n.移植;移植器官;被移植物;移居者
+transport#/ˈtrænspɔːrt/#n.运输;运输机;狂喜;流放犯#vt.运输;流放;使狂喜
+transportation#/ˌtrænspɔːrˈteɪʃn/#n.运输;运输系统;运输工具;流放
+trap#/træp/#n.圈套,陷阱,诡计,活板门,存水弯,汽水闸,(双轮)轻便马车#vi.设圈套,设陷阱#vt.诱捕,诱骗,计捉,设陷,坑害,使受限制
+travel#/ˈtrævl/#v.旅行,传播#vi.行进,传播#n.旅行
+traverse#/'trævɜːs/#n.横贯,横断,横木,障碍,否认,反驳,(建筑)通廊#vt.横过,穿过,经过,在...来回移动,反对,详细研究#vi.横越,横断,旋转,来回移动#adj.横断的,横的
+tray#/treɪ/#n.托盘;文件盒
+treason#/ˈtriːzn/#n.[法]叛国罪;不忠
+treasure#/ˈtreʒər/#n.财富,财产;财宝;珍品#vt.珍爱;珍藏#n.(Treasure)(英、美、爱)特雷热(人名)
+treat#/triːt/#vt.治疗;对待;探讨;视为#vi.探讨;请客;协商#n.请客;款待#n.(Treat)人名;(英)特里特
+treatment#/ˈtriːtmənt/#n.治疗,疗法;处理;对待
+treaty#/ˈtriː/#n.条约,协议;谈判
+tree#/triː/#n.树;木料;树状物#vt.把...赶上树#vi.爬上树;逃上树#n.(Tree)人名;(英)特里
+tremble#/ˈtrembl/#vi.发抖;战栗;焦虑;摇晃#vt.使挥动;用颤抖的声音说出#n.颤抖;战栗;摇晃
+tremendous#/trəˈmendəs/#adj.极大的,巨大的;惊人的;极好的
+trench#/trentʃ/#n.沟,沟渠;战壕;堑壕#vt.掘沟#vi.挖战壕;侵害#n.(Trench)人名;(英、西)特伦奇
+trend#/trend/#n.趋势,倾向;走向#vi.趋向,伸向#vt.使…趋向#n.(Trend)人名;(英)特伦德
+trial#/ˈtraɪəl/#n.试验;审讯;努力;磨炼#adj.试验的;审讯的#n.(Trial)(法)特里亚尔(人名)
+triangle#/ˈtraɪæŋɡl/#n.三角(形);三角关系;三角形之物;三人一组
+tribe#/traɪb/#n.部落;族;宗族;一伙#n.(Tribe)人名;(英)特赖布
+tribute#/ˈtrɪbjuːt/#n.礼物;[税收]贡物;颂词;(尤指对死者的)致敬,悼念,吊唁礼物
+trick#/trɪk/#n.诡计;恶作剧;窍门;花招;骗局;欺诈#vt.欺骗;哄骗;装饰;打扮#vi.哄骗;戏弄#adj.特技的;欺诈的;有诀窍的#n.(Trick)人名;(英)特里克
+trifle#/ˈtraɪfl/#n.少量;琐事;不值钱的东西;屈莱弗甜食#v.轻浮地说(或做);虚度,浪费;轻视
+trigger#/ˈtrɪɡər/#n.扳机;起因,引起反应的事;触发器,引爆装置#v.触发,引起;开动(装置)#n.(Trigger)特里杰(人名)
+trim#/trɪm/#adj.整齐的,整洁的#vt.整理,修整,装饰
+trip#/trɪp/#n.(短途)旅行,绊倒,摔倒,失足,往返,差错,支吾,旅程#vt.使跌倒,使犯错,使失败,挑剔#vi.轻快地走,摔倒,绊倒,失足,结巴,远足,犯错,旅行
+triple#/ˈtrɪpl/#adj.三倍的;三方的#n.三倍数;三个一组#vi.增至三倍#vt.使成三倍
+triumph#/ˈtraɪʌmf/#n.胜利,凯旋;欢欣#vi.获得胜利,成功
+trivial#/ˈtrɪviəl/#adj.不重要的,琐碎的;琐细的
+troop#/truːp/#n.军队;组;群;多数#vi.群集;成群而行;结队#vt.把(骑兵)编成骑兵连
+tropical#/ˈtrɑːpɪkl/#adj.热带的;热情的;酷热的
+trouble#/ˈtrʌbl/#n.麻烦;烦恼;故障;动乱#vt.麻烦;使烦恼;折磨#vi.费心,烦恼
+troublesome#/ˈtrʌblsəm/#adj.麻烦的;讨厌的;使人苦恼的
+trousers#/ˈtraʊzərz/#n.裤子,长裤
+truck#/trʌk/#n.卡车;交易;手推车#vi.驾驶卡车;以物易物#vt.交易;以卡车运输#adj.(美)运货汽车的#n.(Truck)人名;(德)特鲁克
+true#/truː/#adj.真实的;正确的#adv.真实地;准确地#n.真实;准确#vt.装准#n.(TRUE)人名;(英)特鲁
+truly#/ˈtruːli/#adv.真实地,不假;真诚地#n.(Truly)人名;(英)特鲁利
+trumpet#/ˈtrʌmpɪt/#n.喇叭;喇叭声#vt.吹喇叭;吹嘘#vi.吹喇叭;发出喇叭般的声音
+trunk#/trʌŋk/#n.树干;躯干;象鼻;汽车车尾的行李箱#vt.把…放入旅行箱内#adj.干线的;躯干的;箱子的#n.(Trunk)人名;(德、匈、西)特伦克
+trust#/trʌst/#n.信任,信赖;责任;托拉斯#vt.信任,信赖;盼望;赊卖给#vi.信任,信赖;依靠#n.(Trust)人名;(英)特拉斯特
+truth#/truːθ/#n.真理;事实;诚实;实质
+try#/traɪ/#vt.试图,努力;试验;审判;考验#vi.尝试;努力;试验#n.尝试;努力;试验#n.(Try)人名;(英、印尼)特里;(柬)德里
+tub#/tʌb/#n.浴盆;桶#vt.把…装入桶;为…洗盆浴#vi.洗盆浴;(衣服等)被放在桶里洗
+tube#/tuːb/#n.管;电子管;隧道;电视机#vt.使成管状;把…装管;用管输送#vi.乘地铁;不及格
+tuck#/tʌk/#n.缝摺,活力,鼓声,船尾突出部下方,食物(尤指点心、蛋糕)#vt.打摺,卷起,挤进,塞,使隐藏#vi.折成摺子,缩拢
+Tuesday#/'tjʊzdei/#n.星期二
+tug#/tʌɡ/#v.(用力地)拉,拖;(迅速地)穿衣服;较量;用拖船拖;竞争;努力做#n.拖船;拖曳;苦干;一股强烈的感情;(系在马鞍上的)圆环
+tuition#/tuˈɪʃn/#n.学费;讲授
+tumble#/ˈtʌmbl/#vi.摔倒;倒塌;滚动;打滚;仓惶地行动#vt.使摔倒;使滚翻;弄乱#n.跌倒;翻筋斗;跌跤[过去式tumbled过去分词tumbled现在分词tumbling]
+tune#/tuːn/#n.曲调;和谐;心情#vt.调整;使一致;为…调音#vi.[电子][通信]调谐;协调#n.(Tune)人名;(英)图恩
+tunnel#/ˈtʌnl/#n.隧道;坑道;洞穴通道#vt.挖;在…打开通道;在…挖掘隧道#vi.挖掘隧道;打开通道
+turbine#/ˈtɜːrbaɪn/#n.[动力]涡轮;[动力]涡轮机
+turbulent#/ˈtɜːrbjələnt/#adj.动荡的;湍流的;与紊流有关的
+turkey#/ˈtɜːrki/#n.火鸡;笨蛋;失败之作
+turn#/tɜːrn/#vt.转动,使旋转;转弯;翻过来;兑换#vi.转向;转变;转动#n.转弯;变化;(损害或有益于别人的)行为,举动,举止#n.(Turn)人名;(德、匈)图恩
+turning#/ˈtɜːrnɪŋ/#n.转向;旋转;回转;转弯处#v.旋转(turn的ing形式)
+turnip#/ˈtɜːrnɪp/#n.萝卜;芜菁甘蓝,大头菜
+turnover#/ˈtɜːrnoʊvər/#n.翻覆;[贸易]营业额;流通量;半圆卷饼;失误#adj.翻过来的;可翻转的
+tutor#/ˈtuːtər/#n.导师;家庭教师;助教;(尤指音乐)课本#v.辅导;约束;当家庭教师,当大学导师
+twelfth#/twelfθ/#adj.第十二的,第十二个的;十二分之一的#n.第十二;月的第十二日
+twelve#/twelv/#n.十二;十二个#num.十二;十二个#adj.十二的;十二个的
+twentieth#/ˈtwentiəθ/#n.第二十;二十分之一#adj.第二十的;二十分之一的
+twenty#/ˈtwenti/#n.二十;二十年代#num.二十#adj.二十的
+twice#/twaɪs/#adv.两次;两倍
+twin#/twɪn/#n.双胞胎中一人,孪生子#adj.双胞胎的,一对的,相似的#vi.生双胞胎,成对#vt.孪生,使成对
+twinkle#/ˈtwɪŋkl/#v.闪烁;(眼睛)闪亮,闪闪发光;发亮;轻快移动#n.(眼睛的)闪亮;欣喜的神情;闪烁
+twist#/twɪst/#n.一扭,扭曲,盘旋,曲折,歪曲,手法,螺旋状#vt.拧,扭曲,绞,搓,捻,使苦恼,使转动,编织#vi.扭弯,扭曲,缠绕,扭动,呈螺旋形
+two#/tuː/#n.两个#adj.两个的#num.二
+type#/taɪp/#n.类型,品种;模范;样式#vt.打字;测定(血等)类型#vi.打字#n.(Type)人名;(英)泰普
+typewriter#/ˈtaɪpraɪtər/#n.打字机
+typhoon#/taɪˈfuːn/#n.[气象]台风
+typical#/ˈtɪpɪkl/#adj.典型的;特有的;象征性的
+typist#/ˈtaɪpɪst/#n.打字员,打字者
+tyre#/ˈtaɪər/#n.轮胎,轮箍#v.装轮胎于……#n.(Tyre)(美、英、加)泰尔(人名)
+ugly#/ˈʌɡli/#adj.丑陋的;邪恶的;令人厌恶的
+ultimate#/ˈʌltɪmət/#adj.最终的;极限的;根本的#n.终极;根本;基本原则
+ultimately#/ˈʌltɪmətli/#adv.最后;根本;基本上
+ultraviolet#/ˌʌltrəˈvaɪələt/#adj.紫外的;紫外线的#n.紫外线辐射,紫外光
+umbrella#/ʌmˈbrelə/#n.雨伞;保护伞;庇护;伞形结构
+unable#/ʌnˈeɪbl/#adj.不会的,不能的;[劳经]无能力的;不能胜任的
+unanimous#/juˈnænɪməs/#adj.全体一致的;意见一致的;无异议的
+unbearable#/ʌnˈberəbl/#adj.难以忍受的;承受不住的
+uncertain#/ʌnˈsɜːrtn/#adj.无把握的;多变的;不确定的;信心不足的;靠不住的
+uncle#/ˈʌŋkl/#n.叔叔;伯父;伯伯;舅父;姨丈;姑父
+uncomfortable#/ʌnˈkʌmftəbl/#adj.不舒服的;不安的
+unconscious#/ʌnˈkɑːnʃəs/#adj.无意识的;失去知觉的;不省人事的;未发觉的
+uncover#/ʌnˈkʌvər/#vt.发现;揭开;揭露#vi.发现;揭示;揭去盖子
+under#/ˈʌndər/#prep.在...之下,在...之内,在...领导下,低于,假借#adv.在下
+underestimate#/ˌʌndərˈestɪmeɪt/#vt.低估;看轻#n.低估
+undergo#/ˌʌndərˈɡoʊ/#vt.经历,经受;忍受
+undergraduate#/ˌʌndərˈɡrædʒuət/#n.大学本科生;大学肄业生#adj.大学本科生的;大学肄业生的
+underground#/ˌʌndərˈɡraʊnd/#adv.在地下;秘密地#adj.位于地下的;地下的;先锋派的,急进探索的#v.铺(电缆)于地下#n.地铁;秘密政治组织
+underline#/ˌʌndərˈlaɪn/#vt.强调;在…下面划线;预告#n.下划线;下期节目预告
+underlying#/ˌʌndərˈlaɪɪŋ/#adj.潜在的;根本的;在下面的;优先的#v.放在…的下面;为…的基础;优先于(underlie的ing形式)
+undermine#/ˌʌndərˈmaɪn/#vt.破坏,渐渐破坏;挖掘地基
+underneath#/ˌʌndərˈniːθ/#adv.在下面#prep.在...的下面
+understand#/ˌʌndərˈstænd/#vt.理解;懂;获悉;推断;省略;明白#vi.理解;懂得;熟悉
+understanding#/ˌʌndərˈstændɪŋ/#n.谅解,理解;理解力;协议#adj.了解的;聪明的;有理解力的#v.理解;明白(understand的ing形式)
+undertake#/ˌʌndərˈteɪk/#vt.承担,保证;从事;同意;试图
+undertaking#/ˌʌndərˈteɪkɪŋ/#n.事业;企业;保证;殡仪业#v.同意;担任;许诺(undertake的ing形式)
+undo#/ʌnˈduː/#vt.取消;解开;破坏;扰乱#vi.撤消
+undoubtedly#/ʌnˈdaʊtɪdli/#adv.确实地,毋庸置疑地
+uneasy#/ʌnˈiːzi/#adj.不舒服的;心神不安的;不稳定的
+unemployment#/ˌʌnɪmˈplɔɪmənt/#n.失业;失业率;失业人数
+unexpected#/ˌʌnɪkˈspektɪd/#adj.意外的,想不到的
+unfair#/ˌʌnˈfer/#adj.不公平的,不公正的
+unfold#/ʌnˈfoʊld/#vt.打开;呈现#vi.展开;显露
+unfortunate#/ʌnˈfɔːrtʃənət/#adj.不幸的;令人遗憾的;不成功的
+unfortunately#/ʌnˈfɔːrtʃənətli/#adv.不幸地
+unhappy#/ʌnˈhæpi/#adj.不快乐的;不幸福的;不适当的
+uniform#/ˈjuːnɪfɔːrm/#adj.统一的;一致的;相同的;均衡的;始终如一的#n.制服#vt.使穿制服;使成一样
+unify#/ˈjuːnɪfaɪ/#v.整合,联合;统一,使成一体
+union#/ˈjuːniən/#n.联盟,协会;工会;联合
+unique#/juˈniːk/#adj.独特的,稀罕的;[数]唯一的,独一无二的#n.独一无二的人或物#n.(Unique)人名;(英)尤妮克
+unit#/ˈjuːnɪt/#n.单位,单元;装置;[军]部队;部件
+unite#/juˈnaɪt/#vt.使…混合;使…联合;使…团结#vi.团结;联合;混合
+unity#/ˈjuːnə/#n.团结;一致;联合;个体#n.(Unity)人名;(英)尤妮蒂
+universal#/ˌjuːnɪˈvɜːrsl/#adj.普遍的;通用的;宇宙的;全世界的;全体的#n.一般概念;普通性
+universe#/ˈjuːnɪvɜːrs/#n.宇宙;世界;领域
+university#/ˌjuːnɪˈvɜːrsə/#n.大学;综合性大学;大学校舍
+unjust#/ˌʌnˈdʒʌst/#adj.不公平的,不公正的;非正义的
+unkind#/ˌʌnˈkaɪnd/#adj.不友善的,不亲切的;刻薄的;(天气)恶劣的
+unknown#/ˌʌnˈnoʊn/#adj.未知的;陌生的,默默无闻的#n.未知数;未知的事物,默默无闻的人
+unless#/ənˈles/#conj.除非;若非#prep.除……之外
+unlike#/ˌʌnˈlaɪk/#prep.不像,和……不同;与……不同,与……相反;非……的特征,不是……的特点#adj.不同的,不相似的,不像的#conj.不同于
+unlikely#/ʌnˈlaɪkli/#adj.不太可能的;没希望的#adv.未必
+unload#/ˌʌnˈloʊd/#vt.卸;摆脱…之负担;倾销#vi.卸货;退子弹
+unlucky#/ʌnˈlʌki/#adj.不幸的;倒霉的;不吉利的
+unnecessary#/ʌnˈnesəseri/#adj.不必要的;多余的,无用的
+unpleasant#/ʌnˈpleznt/#adj.讨厌的;使人不愉快的
+unsatisfactory#/ˌʌnˌsætɪsˈfæktəri/#adj.不令人满意的;不满足的;不符合要求的
+unstable#/ʌnˈsteɪbl/#adj.不稳定的;动荡的;易变的
+unsuitable#/ʌnˈsuːtəbl/#adj.不适合的;不适宜的;不相称的
+until#/ənˈtɪl/#conj.到……时,直到……为止#prep.到……时,直到……为止
+unusual#/ʌnˈjuːʒuəl/#adj.不寻常的;与众不同的;不平常的
+unusually#/ʌnˈjuːʒuəli/#adv.特别地,及其,非常;异常地,不同寻常地
+unwilling#/ʌnˈwɪlɪŋ/#adj.不愿意的;不情愿的;勉强的
+up#/ʌp/#adv.向上,到(较高的地方,北方),起来,起床#prep.向上,在上,沿#adj.向上的,上行的
+update#/ˌʌpˈdeɪt/#vt.更新;校正,修正;使现代化#n.更新;现代化
+upgrade#/ˈʌpɡreɪd/#n.升级,上升,上坡#adv.往上#vt.使升级,提升,改良品种
+uphold#/ʌpˈhoʊld/#vt.支撑;鼓励;赞成;举起
+upon#/əˈpɑːn/#prep.在……之上;即将来临#adv.在上面地;此后
+upper#/ˈʌpər/#adj.上面的,上部的;较高的#n.鞋面;兴奋剂(常用复数uppers)#n.(Upper)(英)厄珀(人名)
+upright#/ˈʌpraɪt/#adj.正直的,诚实的;垂直的,直立的;笔直的;合乎正道的#n.垂直;竖立
+upset#/ʌpˈset/#vt.使心烦;颠覆;扰乱#vi.翻倒#adj.心烦的;混乱的;弄翻的#n.混乱;翻倒;颠覆
+upstairs#/ˌʌpˈsterz/#adv.在(或向)楼上;在(或向)上一层;智力上#adj.楼上的#n.楼上
+upward#/ˈʌpwərd/#adj.向上的;上升的#adv.向上地;增涨地
+upwards#/ˈʌpwərdz/#adv.向上;在上部;向上游
+urge#/ɜːrdʒ/#vt.力劝,催促;驱策,推进#n.强烈的欲望,迫切要求;推动力#vi.强烈要求
+urgent#/ˈɜːrdʒənt/#adj.紧急的;急迫的
+us#/əs,ʌs/#pron.我们
+usage#/ˈjuːsɪdʒ/#n.使用;用法;惯例
+use#/juːz/#n.使用;用途;发挥#vt.使用,运用;利用;耗费#n.(Use)(德)乌泽(人名)
+used#/juːst;juːzd/#adj.习惯的;二手的,使用过的#v.用(use的过去式和过去分词)
+useful#/ˈjuːsfl/#adj.有用的,有益的;有帮助的
+useless#/ˈjuːsləs/#adj.无用的;无效的
+user#/ˈjuːzər/#n.用户;使用者#n.(User)(土)乌塞尔(人名)
+usual#/ˈjuːʒuəl,ˈjuːʒəl/#adj.通常的,惯例的;平常的
+usually#/ˈjuːʒəli/#adv.通常,经常
+utility#/juːˈtɪləti/#n.实用;效用;公共设施;功用#adj.实用的;通用的;有多种用途的
+utilize#/ˈjuːtəlaɪz/#vt.利用
+utmost#/ˈʌtmoʊst/#adj.极度的;最远的#n.极限;最大可能
+utter#/ˈʌtər/#adj.完全的;彻底的;无条件的#v.说出;发出,表达;发射;使用伪钞#n.(Utter)(美、瑞、德、加、法、俄、匈)乌特(人名)
+vacant#/ˈveɪkənt/#adj.空虚的;空的;空缺的;空闲的;茫然的#n.(Vacant)(法)瓦康(人名)
+vacation#/veɪˈkeɪʃn/#n.假期;(房屋)搬出#vi.休假,度假
+vacuum#/ˈvækjuːm/#n.真空;空缺,空白;真空吸尘器#adj.真空的;利用真空的;产生真空的#vt.用真空吸尘器清扫
+vague#/veɪɡ/#adj.模糊的;含糊的;不明确的;暧昧的#n.(Vague)人名;(法)瓦格;(英)韦格
+vain#/veɪn/#adj.徒劳的;自负的;无结果的;无用的
+valid#/ˈvælɪd/#adj.有效的;有根据的;合法的;正当的
+validity#/vəˈlɪdəti/#n.[计]有效性;正确;正确性
+valley#/ˈvæli/#n.山谷;流域;溪谷#n.(Valley)人名;(英)瓦利;(法)瓦莱
+valuable#/ˈvæljuəbl/#adj.有价值的;贵重的;可估价的#n.贵重物品
+value#/ˈvæljuː/#n.值;价值;价格;重要性;确切涵义#vt.评价;重视;估价
+valve#/vælv/#n.阀;[解剖]瓣膜;真空管;活门#vt.装阀于;以活门调节#n.(Valve)人名;(俄、芬)瓦尔韦
+van#/væn/#n.先锋;厢式货车;增值网#vt.用车搬运#n.(Van)人名;(老、泰、柬、缅)万
+vanish#/ˈvænɪʃ/#vi.消失;突然不见;成为零#vt.使不见,使消失#n.弱化音
+vanity#/ˈvænəti/#n.虚荣心;空虚;浮华;无价值的东西
+vapour#/ˈveɪpər/#n.蒸汽,烟雾#vi.自我吹嘘
+variable#/ˈveriəbl,ˈværiəbl/#adj.变量的;可变的;易变的,多变的;变异的,[生物]畸变的#n.[数]变量;可变物,可变因素
+variation#/ˌveriˈeɪʃn/#n.变化,变更,变动;[生物]变异,变种;变奏曲
+variety#/vəˈraɪəti/#n.多样;种类;杂耍;变化,多样化
+various#/ˈveriəs,ˈværiəs/#adj.各种各样的;多方面的
+vary#/ˈveri,ˈværi/#vi.变化;变异;违反#vt.改变;使多样化;变奏#n.(Vary)人名;(英、法、罗、柬)瓦里
+vase#/veɪs,veɪz/#n.瓶;花瓶#n.(Vase)(塞、罗、芬)瓦塞(人名)
+vast#/væst/#adj.广阔的;巨大的;大量的;巨额的#n.浩瀚;广阔无垠的空间#n.(Vast)人名;(法)瓦斯特
+vegetable#/ˈvedʒtəbl/#n.蔬菜;植物;植物人#adj.蔬菜的;植物的
+vegetation#/ˌvedʒəˈteɪʃn/#n.植被;植物,草木;呆板单调的生活
+vehicle#/ˈviːəkl,ˈviːhɪkl/#n.[车辆]车辆;工具;交通工具;运载工具;传播媒介;媒介物
+veil#/veɪl/#n.面纱;面罩;遮蔽物;托词#vt.遮蔽;掩饰;以面纱遮掩;用帷幕分隔#vi.蒙上面纱;出现轻度灰雾#n.(Veil)人名;(法)韦伊;(德)法伊尔
+vein#/veɪn/#n.血管;叶脉;[地质]岩脉;纹理;翅脉;性情#vt.使成脉络;像脉络般分布于#n.(Vein)人名;(英)维因;(塞)魏因
+velocity#/vəˈlɑːsə/#n.[物]速度
+velvet#/ˈvelvɪt/#n.天鹅绒,丝绒;天鹅绒似的东西#adj.天鹅绒的
+vent#/vent/#n.通风孔,出烟孔,出口,(感情等的)发泄#v.放出,排出,发泄
+ventilate#/ˈventɪleɪt/#vt.使通风;给…装通风设备;宣布
+venture#/ˈventʃər/#n.冒险旅行;(有风险的)企业#v.敢于冒险;小心地说(或做);冒着失去……的风险#n.(Venture)(法)旺蒂尔(人名)
+verb#/vɜːrb/#n.动词;动词词性;动词性短语或从句#n.(Verb)(俄)韦尔布(人名)
+verbal#/ˈvɜːrbl/#adj.口头的;言语的;动词的;照字面的#n.动词的非谓语形式
+verdict#/ˈvɜːrdɪkt/#n.结论;裁定
+verge#/vɜːrdʒ/#n.边缘;绿地;极限;山墙突瓦;权杖(作为职位标志)#v.濒临,接近;趋向;处在边缘#n.(Verge)(英、美、法、加、西)贝尔赫(人名)
+verify#/ˈverɪfaɪ/#vt.核实;查证
+versatile#/ˈvɜːrsətl/#adj.多才多艺的;通用的,万能的;多面手的
+verse#/vɜːrs/#n.诗,诗篇;韵文;诗节#vi.作诗#vt.使熟练,使精通#n.(Verse)人名;(德)费尔泽
+version#/ˈvɜːrʒn/#n.版本;译文;倒转术
+versus#/ˈvɜːrsəs/#prep.对,对抗;与……相对,与……相比
+vertical#/ˈvɜːrtɪkl/#adj.垂直的,直立的;[解剖]头顶的,顶点的;[植]纵长的,直上的#n.垂直线,垂直面;垂直位置
+very#/ˈveri/#adv.很,甚,及其,非常,完全#adj.真正的,真实的,恰好的,绝对的,十足的,特别的
+vessel#/ˈvesl/#n.船,舰;[组织]脉管,血管;容器,器皿#n.(Vessel)人名;(荷)费塞尔;(俄、意、捷)韦塞尔
+vest#/vest/#n.背心;汗衫#vt.授予;使穿衣#vi.归属;穿衣服#n.(Vest)人名;(英)维斯特;(匈)韦什特
+veteran#/ˈvetərən/#n.老兵;老手;富有经验的人;老运动员#adj.经验丰富的;老兵的
+veto#/ˈviːtoʊ/#n.否决权#vt.否决;禁止#vi.否决;禁止
+vex#/veks/#vt.使烦恼;使困惑;使恼怒#vi.烦恼
+via#/ˈvaɪə,ˈviːə/#prep.经由,通过;凭借,借助于
+vibrate#/ˈvaɪbreɪt/#vi.振动;颤动;摇摆;踌躇#vt.使振动;使颤动
+vibration#/vaɪˈbreɪʃn/#n.振动;犹豫;心灵感应
+vice#/vaɪs/#n.恶习;缺点;[机]老虎钳;卖淫#prep.代替#vt.钳住#adj.副的;代替的#n.(Vice)人名;(塞)维采
+vicinity#/vəˈsɪnəti/#n.邻近,附近;近处
+vicious#/ˈvɪʃəs/#adj.恶毒的;恶意的;堕落的;有错误的;品性不端的;剧烈的#n.(Vicious)人名;(英)维舍斯
+victim#/ˈvɪktɪm/#n.受害人,牺牲品,牺牲者;受骗者,上当的人;祭品,牺牲;无助者,被动者
+victorious#/vɪkˈtɔːriəs/#adj.胜利的;凯旋的
+victory#/ˈvɪktəri/#n.胜利;成功;克服#n.(Victory)人名;(西)维多利;(英)维克托里
+video#/ˈvɪdioʊ/#n.[电子]视频;录像,录像机;电视#adj.视频的;录像的;电视的#v.录制
+view#/vjuː/#n.观察;视野;意见;风景#vt.观察;考虑;查看
+viewpoint#/ˈvjuːpɔɪnt/#n.观点,看法;视角
+vigorous#/ˈvɪɡərəs/#adj.有力的;精力充沛的
+village#/ˈvɪlɪdʒ/#n.村庄;村民;(动物的)群落
+vine#/vaɪn/#n.藤;葡萄树;藤本植物;攀缘植物;藤蔓植物#vi.长成藤蔓;爬藤#n.(Vine)人名;(葡)维内;(英)瓦因
+vinegar#/ˈvɪnɪɡər/#n.醋
+violate#/ˈvaɪəleɪt/#vt.违反;侵犯,妨碍;亵渎
+violence#/ˈvaɪələns/#n.暴力;侵犯;激烈;歪曲
+violent#/ˈvaɪələnt/#adj.暴力的;猛烈的
+violet#/ˈvaɪələt/#n.紫罗兰;堇菜;羞怯的人#adj.紫色的;紫罗兰色的#n.(Violet)人名;(西)比奥莱特;(法)维奥莱;(印、匈、英)维奥莱特
+violin#/ˌvaɪəˈlɪn/#n.小提琴;小提琴手#n.(Violin)(意)维奥林(人名)
+virgin#/ˈvɜːrdʒɪn/#n.处女,(晚近用法)处男#adj.处女的,童贞的,纯洁的,洁白无瑕疵的,未被玷污的,原始的,处于原耒状态的,未采伐过的森林美国著名游戏软件公司
+virtual#/ˈvɜːrtʃuəl/#adj.[计]虚拟的;实质上的,事实上的(但未在名义上或正式获承认)
+virtually#/ˈvɜːrtʃuəli/#adv.事实上,几乎;实质上
+virtue#/ˈvɜːrtʃuː/#n.美德;优点;贞操;功效#n.(Virtue)人名;(英)弗丘
+virus#/ˈvaɪrəs/#n.[病毒]病毒;恶毒;毒害#n.(Virus)人名;(西)比鲁斯
+visible#/ˈvɪzəbl/#adj.明显的;看得见的;现有的;可得到的#n.可见物;进出口贸易中的有形项目
+vision#/ˈvɪʒn/#n.视力;美景;眼力;幻象;想象力;幻视(漫威漫画旗下超级英雄)#vt.想象;显现;梦见
+visit#/ˈvɪzɪt/#n.拜访,访问,游览,参观,(作客)逗留,视察,调查#vt.拜访,访问,参观,视察,降临#vi.访问,参观,闲谈
+visitor#/ˈvɪzɪtər/#n.访问者,参观者;视察者;候鸟
+visual#/ˈvɪʒuəl/#adj.视觉的,视力的;栩栩如生的
+visualize#/ˈvɪʒuəlaɪz/#vt.形象,形象化;想像,设想#vi.显现
+vital#/ˈvaɪtl/#adj.至关重要的;生死攸关的;有活力的#n.(Vital)(法、德、意、俄、葡)维塔尔;(西)比塔尔(人名)
+vitamin#/ˈvaɪtəmɪn/#n.[生化]维生素;[生化]维他命
+vivid#/ˈvɪvɪd/#adj.生动的;鲜明的;鲜艳的
+vocabulary#/vəˈkæbjəleri/#n.词汇;词表;词汇量
+vocal#/ˈvoʊkl/#adj.歌唱的;声音的,有声的#adj.直言不讳的#n.声乐作品;元音#n.Vocal)人名;(西)博卡尔
+vocational#/voʊˈkeɪʃənl/#adj.职业的,行业的
+voice#/vɔɪs/#n.声音;嗓音;发言权;愿望#vt.表达;吐露
+void#/vɔɪd/#adj.无效的;空的;无人(居住)的;缺乏的#n.空间;空白;空虚感#v.使无效;排放(大小便)#n.(Void)(美、俄、印)沃伊德(人名)
+volcano#/vɑːlˈkeɪnoʊ/#n.火山
+volleyball#/ˈvɑːlibɔːl/#n.排球
+volt#/voʊlt/#n.伏特(电压单位);环骑;闪避#n.(Volt)人名;(捷)沃尔特
+volume#/ˈvɑːljuːm,ˈvɑːljəm/#n.量;体积;卷;音量;大量;册#adj.大量的#vi.成团卷起#vt.把…收集成卷
+voluntary#/ˈvɑːlənteri/#adj.自愿的;志愿的;自发的;故意的#n.志愿者;自愿行动
+volunteer#/ˌvɑːlənˈtɪr/#n.志愿者;志愿兵#adj.志愿的#vi.自愿#vt.自愿
+vote#/voʊt/#n.投票,选举;选票;得票数,选票总数;选举权#vt.提议,使投票;选举,投票决定;公认#vi.选举,投票#n.(Vote)人名;(英、法)沃特
+voyage#/ˈvɔɪɪdʒ/#n.航行;航程;旅行记#vi.航行;航海#vt.飞过;渡过
+vulgar#/ˈvʌlɡər/#adj.粗俗的;通俗的;本土的#n.平民,百姓
+vulnerable#/ˈvʌlnərəbl/#adj.易受攻击的,易受……的攻击;易受伤害的;有弱点的
+wage#/weɪdʒ/#n.工资;报酬;代价;报应#v.进行,发动(运动、战争等);开展#n.(Wage)(美)伟杰(人名)
+waggon#/ˈwæɡən/#n.四轮运货马车;运货车
+waist#/weɪst/#n.腰,腰部
+wait#/weɪt/#vt.等候;推迟;延缓#vi.等待;耽搁;伺候用餐#n.等待;等候#n.(Wait)人名;(英)韦特;(捷)魏特
+waiter#/ˈweɪtər/#n.服务员,侍者
+wake#/weɪk/#vt.唤醒;唤起;为……守灵#vi.醒来;唤醒;警觉#n.守夜;航迹#n.(Wake)(英)韦克(人名)
+waken#/ˈweɪkən/#vt.唤醒;使觉醒#vi.醒来;觉醒
+walk#/wɔːk/#vi.步,行,走#n.步行,散步,步,行道
+wall#/wɔːl/#n.墙壁,围墙;似墙之物#vt.用墙围住,围以墙#adj.墙壁的#n.(Wall)人名;(英)沃尔;(德、芬、捷、瑞典)瓦尔
+wallet#/ˈwɑːlɪt/#n.钱包,皮夹#n.(Wallet)人名;(英)沃利特;(法)瓦莱
+wander#/ˈwɑːndər/#vi.徘徊;漫步;迷路;离题#vt.游荡,漫游#n.(Wander)人名;(英)万德(女子教名)
+want#/wɑːnt/#vt.需要;希望;应该;缺少#n.需要;缺乏;贫困;必需品#vi.需要;缺少
+war#/wɔːr/#n.战争,斗争;军事,战术;冲突,对抗,竞争#vi.打仗,作战;对抗
+ward#/wɔːrd/#n.病房;保卫;监视;区,选区#vt.避开;保卫;守护#n.(Ward)(英)沃德;(德、芬、瑞典、葡)瓦尔德(人名)
+warehouse#/ˈwerhaʊs/#n.仓库;货栈;大商店#vt.储入仓库;以他人名义购进(股票)
+warfare#/ˈwɔːrfer/#n.战争;冲突
+warm#/wɔːrm/#adj.温暖的;热情的#vi.同情;激动;变温暖#vt.使…兴奋;使…温暖;使…感兴趣#n.取暖;加热#n.(Warm)人名;(英)沃姆;(德)瓦姆
+warmth#/wɔːrmθ/#n.温暖;热情;激动
+warn#/wɔːrn/#vt.警告,提醒;通知#vi.发出警告,发出预告#n.(Warn)人名;(英)沃恩;(德)瓦恩
+warrant#/ˈwɔːrənt/#n.根据;证明;正当理由;委任状#vt.保证;担保;批准;辩解
+wash#/wɑːʃ/#n.洗,洗涤,冲洗,洗涤剂,洼地,洗的衣服,冲积物#vt.洗,洗涤,洗清,粉刷,冲出,弄湿,流过,镀金于#vi.洗涤,洗澡,被冲蚀,漂浮#adj.耐洗的,(证券交易)虚假的
+waste#/weɪst/#n.浪费;废物;荒地;损耗;地面风化物#vt.浪费;消耗;使荒芜#vi.浪费;变消瘦;挥霍钱财#adj.废弃的;多余的;荒芜的
+watch#/wɑːtʃ/#vt.观察;注视;看守;警戒#n.手表;监视;守护;值班人#vi.观看,注视;守候,看守
+water#/ˈwɔːtər/#n.水;海水;雨水;海域,大片的水#vt.使湿;供以水;给…浇水#vi.加水;流泪;流口水#n.(Water)人名;(英)沃特
+waterfall#/ˈwɔːtərfɔːl/#n.瀑布;瀑布似的东西#n.(Waterfall)人名;(英)沃特福尔
+waterproof#/ˈwɔːtərpruːf/#adj.防水的,不透水的#vt.使防水#n.防水材料
+watertight#/ˈwɔːtərtaɪt/#adj.水密的;不漏水的;无懈可击的
+watt#/wɑːt/#n.瓦特#n.(Watt)人名;(英、葡)瓦特
+wave#/weɪv/#v.挥手;挥手示意;挥舞;飘扬;使(头发)略呈波形#n.海浪;心潮;涌现的人(或物);挥手;波;(头发)卷曲;(感情)爆发
+wavelength#/ˈweɪvleŋθ/#n.[物]波长
+wax#/wæks/#n.蜡;蜡状物#vt.给…上蜡#vi.月亮渐满;增大#adj.蜡制的;似蜡的#n.(Wax)人名;(德、罗、匈、英)瓦克斯
+way#/weɪ/#n.方法;道路;方向;行业;习惯#adv.大大地;远远地#adj.途中的#n.(Way)人名;(中)见Wei;(英、缅)韦
+we#/wi,wiː/#pron.我们(主格);笔者,本人(作者或演讲人使用);朕,寡人#n.(We)人名;(缅)韦
+weak#/wiːk/#adj.[经]疲软的;虚弱的;无力的;不牢固的
+weaken#/ˈwiːkən/#vt.减少;使变弱;使变淡#vi.变弱;畏缩;变软弱
+weakness#/ˈwiːknəs/#n.弱点;软弱;嗜好
+wealth#/welθ/#n.财富;大量;富有
+wealthy#/ˈwelθi/#adj.富有的;充分的;丰裕的#n.富人
+weapon#/ˈwepən/#n.武器,兵器
+wear#/wer/#vt.穿,戴#v.(~out)磨损,用旧,(~out)穿着
+weary#/ˈwɪri/#adj.疲倦的;厌烦的;令人厌烦的#vi.疲倦;厌烦#vt.使疲倦;使厌烦
+weather#/ˈweðər/#n.天气;气象;气候;处境#vt.经受住;使风化;侵蚀;使受风吹雨打#vi.风化;受侵蚀;经受风雨#adj.露天的;迎风的#n.(Weather)人名;(英)韦瑟
+weave#/wiːv/#vt.编织;编排;使迂回前进#vi.纺织;编成;迂回行进#n.织物;织法;编织式样
+web#/web/#n.网;卷筒纸;蹼;织物;圈套#vt.用网缠住;使中圈套#vi.形成网
+wedding#/ˈwedɪŋ/#n.婚礼,婚宴;结婚;结合#v.与…结婚(wed的ing形式)#n.(Wedding)人名;(德)韦丁
+wedge#/wedʒ/#n.楔子;楔形物;不和#v.楔入;挤进;楔住#n.(Wedge)韦奇(人名)
+Wednesday#/'wenzdei/#n.星期三
+weed#/wiːd/#n.野草,杂草#v.除草,铲除
+week#/wiːk/#n.周,星期
+weekday#/ˈwiːkdeɪ/#n.平日,普通日;工作日
+weekend#/ˈwiːkend/#n.周末,周末休假;周末聚会#adj.周末的,周末用的#vi.度周末
+weekly#/ˈwiːkli/#adj.每周的;周刊的;一周一次的#n.周刊#adv.每周一次;逐周
+weep#/wiːp/#v.哭泣,流泪;哭着说;哀悼;渗出(液体)#n.哭泣,落泪
+weigh#/weɪ/#vt.权衡;考虑;称…重量#vi.重量为…;具有重要性;成为…的重荷;起锚#n.权衡;称重量
+weight#/weɪt/#n.重量,重力;负担;砝码;重要性#vt.加重量于,使变重#n.(Weight)人名;(英)韦特;(捷)魏格特
+welcome#/ˈwelkəm/#n.欢迎#vt.欢迎#int.欢迎#adj.受欢迎的
+weld#/weld/#vt.焊接;使结合;使成整体#vi.焊牢#n.焊接;焊接点#n.(Weld)人名;(英)韦尔德
+welfare#/ˈwelfer/#n.福利;幸福;福利事业;安宁#adj.福利的;接受社会救济的
+well#/wel/#adv.很好地;充分地;满意地;适当地#adj.良好的;健康的;适宜的#n.井;源泉#v.涌出#n.(Well)人名;(英、德、荷)韦尔
+west#/west/#n.西;西方;西部#adj.西方的;朝西的#adv.在西方;向西方;自西方#n.(West)人名;(英、德、芬、瑞典)韦斯特
+western#/ˈwestərn/#adj.西方的,西部的;有西方特征的#n.西方人;西部片,西部小说#n.(Western)人名;(英)韦斯顿
+westward#/ˈwestwərd/#adj.向西的;西方的#adv.向西#n.西部;西方#n.(Westward)(英、美)韦史特华尔德(人名)
+wet#/wet/#adj.[气象][物]潮湿的;有雨的#n.雨天;湿气#vt.弄湿#vi.变湿#n.(Wet)人名;(英、纳米、南非)韦特
+what#/wʌt/#pron.什么;多么;多少#adj.什么;多么;何等#adv.到什么程度,在哪一方面#int.什么;多么
+whatever#/wətˈevər/#pron.凡是...,无论什么#adj.无论怎样的,无论哪一种的,什么也
+wheat#/wiːt/#n.小麦;小麦色#n.(Wheat)人名;(英)惠特
+wheel#/wiːl/#n.车轮;方向盘;转动#vt.转动;使变换方向;给…装轮子#vi.旋转;突然转变方向;盘旋飞行
+when#/wen/#conj.就在那个时候,在...的时候#adv.什么时候,...的时候#pron.什么时侯,那时
+whenever#/wenˈevər/#conj.无论何时,无论什么情况;每当;别的什么时候(也可以)#adv.不论何时,随便什么时候;究竟什么时候
+where#/wer/#adv.在哪里#pron.哪里#conj.在…的地方#n.地点
+whereas#/ˌwerˈæz/#conj.然而;鉴于#n.序言,开场白;条件语句
+whereby#/werˈbaɪ/#conj.凭借;通过…;借以;与…一致#adv.凭此;借以
+wherever#/werˈevər/#adv.无论什么地方;究竟在哪里#conj.无论在哪里;无论什么情况下
+whether#/ˈweðər/#conj.是否;不论#pron.两个中的哪一个
+which#/wɪtʃ/#pron.哪个,哪几个,...的,...那个#adj.哪个
+whichever#/wɪtʃˈevər/#pron.任何一个;无论哪个;无论哪些#adj.无论哪个;无论哪些det.任何一个;无论哪个;无论哪些
+while#/waɪl/#n.一会儿,时间#conj.当...的时候,虽然#vt.消磨#prep.古方直到
+whilst#/waɪlst/#conj.当……的时候;与……同时;然而;虽然,尽管;直到……为止(等于while)#adv.在……时候(等于while)
+whip#/wɪp/#n.鞭子,车夫#v.鞭打,抽打,突然移动
+whirl#/wɜːrl/#v.(使)旋转,急动,急走#n.旋转,—连串快速的活动
+whisky#/ˈwɪski/#n.威士忌酒#adj.威士忌酒的
+whisper#/ˈwɪspər/#v.耳语;私下说,密谈;飒飒地响;造谣#n.耳语(声);轻柔的声音;谣传;(诗、文)飒飒声;蛛丝马迹,暗示
+whistle#/ˈwɪsl/#n.口哨;汽笛;呼啸声;一套衣服;一手同花色牌#v.吹口哨;发啸叫声;吹哨示意;鸣汽笛;呼啸而行
+white#/waɪt/#adj.白色的;白种的;纯洁的#n.白色;洁白;白种人#vt.古使变白,把……涂白#n.(White)怀特(人名)
+whitewash#/ˈwaɪtwɑːʃ/#n.粉饰;白色涂料;石灰水#vt.掩饰;把…刷白
+who#/huː/#pron.谁;什么人
+whoever#/huːˈevər/#pron.无论谁;任何人#n.《爱谁谁》(电影名)
+whole#/hoʊl/#adj.完整的;纯粹的#n.整体;全部
+wholly#/ˈhoʊlli/#adv.完全地;全部;统统
+whom#/huːm/#pron.谁(who的宾格)
+whose#/huːz/#pron.谁的(疑问代词)
+why#/waɪ/#adv.为什么;(反问,表示不必)何必;……的原因#int.哎呀,呦;呃#n.原因,理由
+wicked#/ˈwɪkɪd/#adj.邪恶的;恶劣的;不道德的;顽皮的#adv.俚语非常,很
+wide#/waɪd/#adj.广泛的;宽的,广阔的;张大的;远离目标的#adv.广泛地;广阔地;充分地#n.大千世界#n.(Wide)人名;(瑞典、芬)维德
+widely#/ˈwaɪdli/#adv.广泛地
+widen#/ˈwaɪdn/#vt.放宽#vi.变宽#n.(Widen)人名;(德)维登
+widespread#/ˈwaɪdspred/#adj.普遍的,广泛的;分布广的
+widow#/ˈwɪdoʊ/#n.寡妇;未排足的行;寡妇鸟#v.使丧偶
+width#/wɪdθ,wɪtθ/#n.宽度;广度
+wife#/waɪf/#n.妻子,已婚妇女;夫人
+wild#/waɪld/#adj.野生的;野蛮的;狂热的;荒凉的#n.荒野#adv.疯狂地;胡乱地#n.(Wild)人名;(英)怀尔德;(法、德、葡、捷、匈)维尔德
+will#/wɪl/#n.意志,决心,意向,遗嘱#v.aux.将,愿意,必须
+willing#/ˈwɪlɪŋ/#adj.乐意的;自愿的;心甘情愿的#v.决心;用意志力驱使;将(财产等)遗赠某人(will的现在分词)#n.(Willing)人名;(德、芬、瑞典)维林;(英)威林
+win#/wɪn/#vt.赢得;在…中获胜#vi.赢;获胜;成功#n.赢;胜利#n.(Win)人名;(德、荷、缅)温;(英)温(女子教名Winifred的昵称)
+wind#/wɪnd;waɪnd/#n.风;呼吸;气味;卷绕#vt.缠绕;上发条;使弯曲;吹号角;绕住或缠住某人#vi.缠绕;上发条;吹响号角#n.(Wind)人名;(英、德、瑞典)温德
+window#/ˈwɪndoʊ/#n.窗;窗口;窗户
+wine#/waɪn/#n.酒,葡萄酒;紫红色#vi.喝酒#vt.请…喝酒#n.(Wine)人名;(英)瓦恩
+wing#/wɪŋ/#n.翼;翅膀;飞翔;派别;侧厅,耳房,厢房#vt.使飞;飞过;空运;增加…速度;装以翼#vi.飞行#n.(Wing)人名;(英、印尼)温
+winner#/ˈwɪnər/#n.获胜者;(可能)成功的人(或事物);赢得比赛的一分;能赢的牌;最大的得益者#n.(Winner)(美、德、英)温纳(人名)
+winter#/ˈwɪntər/#n.冬季;年岁;萧条期#vi.过冬#adj.冬天的;越冬的#n.(Winter)人名;(英、德、匈、罗、捷、西、芬、瑞典、法)温特
+wipe#/waɪp/#vt.擦;消除;涂上#vi.擦;打#n.擦拭;用力打
+wire#/ˈwaɪər/#n.电线;金属丝;电报#vt.拍电报;给…装电线#vi.打电报#n.(Wire)人名;(英)怀尔
+wireless#/ˈwaɪərləs/#adj.无线的;无线电的#n.无线电#vt.用无线电报与…联系;用无线电报发送#vi.打无线电报;打无线电话
+wisdom#/ˈwɪzdəm/#n.智慧,才智;明智;学识;至理名言#n.(Wisdom)人名;(英)威兹德姆
+wise#/waɪz/#adj.明智的;聪明的;博学的#vt.使知道;教导#vi.了解#n.(Wise)人名;(英)怀斯
+wish#/wɪʃ/#n.愿望,心愿,请求,所愿望的事物,祝愿#v.希望,想要,但愿,祝贺
+wit#/wɪt/#n.智慧;才智;智力#n.(Wit)人名;(泰)威;(英、德、波)威特#v.古知道;即
+with#/wɪð,wɪθ/#prep.有,以,用,同...,由于,和...一致,赞成,关于,就
+withdraw#/wɪðˈdrɔː/#vt.撤退;收回;撤消;(从银行)取钱,提款;退股#vi.撤退;离开
+withhold#/wɪðˈhəʊld/#vt.保留,不给;隐瞒;抑制#vi.忍住;克制
+within#/wɪˈðɪn/#prep.在……之内;在……里面#adv.在内部;在里面#n.里面;内部
+without#/wɪˈðaʊt/#prep.没有;不和……在一起;不带;在……外部#adv.没有,缺乏;在外面#conj.不那样的话;除非#n.外部,外面
+withstand#/wɪθˈstænd/#vt.抵挡;禁得起;反抗#vi.反抗
+witness#/ˈwɪtnəs/#n.证人;目击者;证据#vt.目击;证明;为…作证#vi.作证人#n.(Witness)人名;(津)威特尼斯
+wolf#/wʊlf/#n.狼;色狼;残忍贪婪之人#vt.大吃;狼吞虎咽地吃#n.(Wolf)人名;(以、捷、芬、瑞典、德、匈、法、罗、荷、英)沃尔夫
+woman#/ˈwʊmən/#n.妇女;女性;成年女子
+wonder#/ˈwʌndər/#n.奇迹,惊奇,惊愕#vt.对...感到惊讶,惊奇,想知道#vi.惊讶,怀疑#adj.非凡的,奇妙的
+wonderful#/ˈwʌndərfl/#adj.极好的,精彩的,绝妙的;奇妙的;美妙;胜;神妙
+wood#/wʊd/#n.木材;木制品;树林#vi.收集木材#vt.植林于;给…添加木柴#n.(Wood)人名;(英、法、西、葡、阿拉伯)伍德
+wooden#/ˈwʊdn/#adj.木制的;僵硬的,呆板的
+wool#/wʊl/#n.羊毛;毛线;绒线;毛织品;毛料衣物#n.(Wool)人名;(英)伍尔
+woollen#/ˈwʊlən/#adj.羊毛制的;毛纺织业的#n.毛织品#n.(Woollen)(美、英、德)伍伦(人名)
+work#/wɜːrk/#n.工作,劳动,操作,职业,[物]功,手工,作品,机件#v.(使)工作,(使)运转,起作用,造成,产生,经营,(使)渐渐移动,煅制
+worker#/ˈwɜːrkər/#n.工人,劳动者;职蚁#n.(Worker)(英)沃克(人名)
+workman#/ˈwɜːrkmən/#n.工匠;技工;男工#n.(Workman)人名;(英)沃克曼
+workshop#/ˈwɜːrkʃɑːp/#n.车间;研讨会;工场;讲习班
+world#/wɜːrld/#n.世界;领域;世俗;全人类;物质生活
+worm#/wɜːrm/#n.虫,蠕虫,蚯蚓,蜗杆,螺纹,小人物;#vi.蠕行,慢慢前进;#vt.使蠕行,慢慢地走,给(烟草作物)除虫
+worry#/ˈwɜːri/#v.(使)担心,(使)发愁;骚扰,烦扰;撕咬(动物)#n.担心;让人发愁的事(或人)
+worse#/wɜːrs/#adj.更坏的;更差的;更恶劣的(bad的比较级);(病情)更重的(ill的比较级)#adv.更糟;更坏;更恶劣地;更坏地#n.更坏的事;更恶劣的事
+worship#/ˈwɜːrʃɪp/#n.崇拜;礼拜;尊敬#vt.崇拜;尊敬;爱慕#vi.拜神;做礼拜
+worst#/wɜːrst/#adj.最差的,最坏的;最不利的;效能最低的#n.最坏;最坏的时候#adv.最坏地;最不利地#n.(Worst)人名;(英、德)沃斯特
+worth#/wɜːrθ/#adj.值…的#n.价值;财产#n.(Worth)人名;(英)沃思;(德)沃特
+worthless#/ˈwɜːrθləs/#adj.无价值的;不值钱的;卑微的
+worthwhile#/ˌwɜːrθˈwaɪl/#adj.重要的;令人愉快的;有趣的;值得(花时间、金钱、努力等)的;有价值的,有益的;值得做的
+worthy#/ˈwɜːrði/#adj.值得的;有价值的;配得上的,相称的;可尊敬的;应…的#n.杰出人物;知名人士#n.(Worthy)人名;(英)沃西
+would#/wʊd,wəd,əd/#v.将,将会(will的过去式);会,就;想;请;愿意;也许;老是;要是;表原来的目的
+wound#/wuːnd;waʊnd/#n.创伤,伤口#vt.使受伤#vi.受伤,伤害
+wrap#/ræp/#vt.包;缠绕;隐藏;掩护#vi.包起来;缠绕;穿外衣;非正式完成拍摄,杀青#n.外套;围巾
+wreath#/riːθ/#n.花冠;圈状物#vt.环绕(等于wreathe)#vi.盘旋(等于wreathe)
+wreck#/rek/#n.破坏;失事;残骸;失去健康的人#vt.破坏;使失事;拆毁#vi.失事;营救失事船只
+wrench#/rentʃ/#n.扳手,扳钳;扭伤;痛苦;歪曲;猛扭#vt.扭伤;猛扭;曲解;折磨#vi.扭伤;猛扭;猛绞#n.(Wrench)人名;(英)伦奇
+wretched#/ˈretʃɪd/#adj.可怜的;卑鄙的;令人苦恼或难受的
+wrinkle#/ˈrɪŋkl/#n.皱纹#vi.起皱#vt.使起皱纹
+wrist#/rɪst/#n.手腕;腕关节#vt.用腕力移动
+write#/raɪt/#vi.写,写字;写作,作曲;写信#vt.写,书写;写信给;著述
+writer#/ˈraɪtər/#n.作家;作者;期权卖方
+writing#/ˈraɪtɪŋ/#n.书写;写作技能;著书立说,写作的职业;作品,著作;文字;笔迹#v.书写;写作(write的现在分词)
+wrong#/rɔːŋ/#adj.错误的,不正当的,道德不好的,失常的#adv.错误地#n.坏事,错误,不公正
+yacht#/jɑːt/#n.游艇,快艇;轻舟#v.乘游艇,驾游艇;驾帆船比赛#n.(Yacht)(美、加、土、法、荷、俄)约特(人名)
+yard#/jɑːrd/#n.院子;码(英制中丈量长度单位,1码=3英尺);庭院;帆桁#vt.把…关进或围在畜栏里#n.(Yard)人名;(英)亚德
+yawn#/jɔːn/#v.打哈欠;张得很开;(令人恐惧地)豁开#n.打哈欠;乏味的人(事物)
+year#/jɪr/#n.年;年度;历年;年纪;一年的期间;某年级的学生
+yearly#/ˈjɪrli/#adj.每年的#adv.每年;一年一次#n.年刊;年鉴
+yell#/jel/#vi.大叫,叫喊#n.喊声,叫声#vt.喊叫着说
+yellow#/ˈjeloʊ/#adj.黄色的;黄皮肤的#adj.胆小的#n.黄色;黄种人;黄色颜料#vi.变黄或发黄#vt.使变黄或发黄
+yes#/jes/#adv.是,是的#n.是(表示肯定)
+yesterday#/ˈjestədeɪ/#adv.在昨天#n.昨天;最近,往昔
+yet#/jet/#adv.还;但是;已经#conj.但是;然而#n.(Yet)人名;(东南亚国家华语)一
+yield#/jiːld/#v.出产(产品或作物);产出(效果、收益等);生息;屈服;放弃;停止争论;给(车辆)让路;(在外力、重压等下)屈曲#n.产量;利润,红利率
+yoke#/joʊk/#n.轭;束缚;牛轭#vt.结合;给…上轭#vi.结合;匹配#n.(Yoke)人名;(日)与家(姓)
+you#/jə,juː/#pron.你;你们#n.(You)人名;(柬)尤;(东南亚国家华语)猷
+young#/jʌŋ/#adj.年轻的;初期的;没有经验的#n.年轻人;(动物的)崽,仔#n.(Young)人名;(中)杨(广东话·威妥玛);(柬)永;(英、葡)扬
+youngster#/ˈjʌŋstər/#n.年轻人;少年
+your#/jʊr,jər/#pron.你的,你们的
+yourself#/jɔːˈself/#pron.你自己
+youth#/juːθ/#n.青年;青春;年轻;青少年时期#n.(Youth)《芳华》(电影名)
+youthful#/ˈjuːθfl/#adj.年轻的;早期的
+zeal#/ziːl/#n.热情;热心;热诚
+zealous#/ˈzeləs/#adj.热心的,热情的,积极的#n.(Zealous)人名;(英)泽勒斯
+zebra#/ˈziːbrə/#n.[脊椎]斑马#adj.有斑纹的(Zebra)斑马(文具品牌);斑马公司(指盈利性和有责任感的公司)
+zero#/ˈzɪroʊ,ˈziːroʊ/#n.零点,零度#num.零#n.(Zero)人名;(意)泽罗
+zinc#/zɪŋk/#n.锌;(用于屋顶等的)镀锌铁板#v.镀锌于,用锌处理
+zone#/zoʊn/#n.地带;地区;联防#vi.分成区#vt.使分成地带;环绕#n.(Zone)人名;(塞)佐内
+zoo#/zuː/#n.动物园#n.(Zoo)人名;(朝)朱;(阿拉伯)祖

+ 3 - 0
word-app/src/environments/environment.prod.ts

@@ -0,0 +1,3 @@
+export const environment = {
+  production: true
+};

+ 16 - 0
word-app/src/environments/environment.ts

@@ -0,0 +1,16 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+export const environment = {
+  production: false
+};
+
+/*
+ * For easier debugging in development mode, you can import the following file
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
+ *
+ * This import should be commented out in production mode because it will have a negative impact
+ * on performance if an error is thrown.
+ */
+// import 'zone.js/plugins/zone-error';  // Included with Angular CLI.

+ 37 - 0
word-app/src/global.scss

@@ -0,0 +1,37 @@
+/*
+ * App Global CSS
+ * ----------------------------------------------------------------------------
+ * Put style rules here that you want to apply globally. These styles are for
+ * the entire app and not just one component. Additionally, this file can be
+ * used as an entry point to import other CSS/Sass files to be included in the
+ * output CSS.
+ * For more information on global stylesheets, visit the documentation:
+ * https://ionicframework.com/docs/layout/global-stylesheets
+ */
+
+/* Core CSS required for Ionic components to work properly */
+@import "@ionic/angular/css/core.css";
+
+/* Basic CSS for apps built with Ionic */
+@import "@ionic/angular/css/normalize.css";
+@import "@ionic/angular/css/structure.css";
+@import "@ionic/angular/css/typography.css";
+@import "@ionic/angular/css/display.css";
+
+/* Optional CSS utils that can be commented out */
+@import "@ionic/angular/css/padding.css";
+@import "@ionic/angular/css/float-elements.css";
+@import "@ionic/angular/css/text-alignment.css";
+@import "@ionic/angular/css/text-transformation.css";
+@import "@ionic/angular/css/flex-utils.css";
+
+/**
+ * Ionic Dark Mode
+ * -----------------------------------------------------
+ * For more info, please see:
+ * https://ionicframework.com/docs/theming/dark-mode
+ */
+
+/* @import "@ionic/angular/css/palettes/dark.always.css"; */
+/* @import "@ionic/angular/css/palettes/dark.class.css"; */
+@import '@ionic/angular/css/palettes/dark.system.css';

+ 26 - 0
word-app/src/index.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8" />
+  <title>Ionic App</title>
+
+  <base href="/" />
+
+  <meta name="color-scheme" content="light dark" />
+  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+  <meta name="format-detection" content="telephone=no" />
+  <meta name="msapplication-tap-highlight" content="no" />
+
+  <link rel="icon" type="image/png" href="assets/icon/favicon.png" />
+
+  <!-- add to homescreen for ios -->
+  <meta name="mobile-web-app-capable" content="yes" />
+  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+</head>
+
+<body>
+  <app-root></app-root>
+</body>
+
+</html>

+ 14 - 0
word-app/src/main.ts

@@ -0,0 +1,14 @@
+import { bootstrapApplication } from '@angular/platform-browser';
+import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router';
+import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone';
+
+import { routes } from './app/app.routes';
+import { AppComponent } from './app/app.component';
+
+bootstrapApplication(AppComponent, {
+  providers: [
+    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
+    provideIonicAngular(),
+    provideRouter(routes, withPreloading(PreloadAllModules)),
+  ],
+});

+ 55 - 0
word-app/src/polyfills.ts

@@ -0,0 +1,55 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ *      file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes recent versions of Safari, Chrome (including
+ * Opera), Edge on the desktop, and iOS and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/guide/browser-support
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/**
+ * By default, zone.js will patch all possible macroTask and DomEvents
+ * user can disable parts of macroTask/DomEvents patch by setting following flags
+ * because those flags need to be set before `zone.js` being loaded, and webpack
+ * will put import in the top of bundle, so user need to create a separate file
+ * in this directory (for example: zone-flags.ts), and put the following flags
+ * into that file, and then add the following code before importing zone.js.
+ * import './zone-flags';
+ *
+ * The flags allowed in zone-flags.ts are listed here.
+ *
+ * The following flags will work for all browsers.
+ *
+ * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
+ * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
+ * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+ *
+ *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
+ *  with the following flag, it will bypass `zone.js` patch for IE/Edge
+ *
+ *  (window as any).__Zone_enable_cross_context_check = true;
+ *
+ */
+
+import './zone-flags';
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js';  // Included with Angular CLI.
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */

+ 14 - 0
word-app/src/test.ts

@@ -0,0 +1,14 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting(),
+);

+ 2 - 0
word-app/src/theme/variables.scss

@@ -0,0 +1,2 @@
+// For information on how to create your own theme, please refer to:
+// https://ionicframework.com/docs/theming/

+ 6 - 0
word-app/src/zone-flags.ts

@@ -0,0 +1,6 @@
+/**
+ * Prevents Angular change detection from
+ * running with certain Web Component callbacks
+ */
+// eslint-disable-next-line no-underscore-dangle
+(window as any).__Zone_disable_customElements = true;

+ 15 - 0
word-app/tsconfig.app.json

@@ -0,0 +1,15 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "./out-tsc/app",
+    "types": []
+  },
+  "files": [
+    "src/main.ts",
+    "src/polyfills.ts"
+  ],
+  "include": [
+    "src/**/*.d.ts"
+  ]
+}

+ 31 - 0
word-app/tsconfig.json

@@ -0,0 +1,31 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "baseUrl": "./",
+    "outDir": "./dist/out-tsc",
+    "forceConsistentCasingInFileNames": true,
+    "esModuleInterop": true,
+    "strict": true,
+    "noImplicitOverride": true,
+    "noPropertyAccessFromIndexSignature": true,
+    "noImplicitReturns": true,
+    "noFallthroughCasesInSwitch": true,
+    "sourceMap": true,
+    "declaration": false,
+    "experimentalDecorators": true,
+    "moduleResolution": "node",
+    "importHelpers": true,
+    "target": "es2022",
+    "module": "es2020",
+    "lib": ["es2018", "dom"],
+    "skipLibCheck": true,
+    "useDefineForClassFields": false
+  },
+  "angularCompilerOptions": {
+    "enableI18nLegacyMessageIdFormat": false,
+    "strictInjectionParameters": true,
+    "strictInputAccessModifiers": true,
+    "strictTemplates": true
+  }
+}

+ 18 - 0
word-app/tsconfig.spec.json

@@ -0,0 +1,18 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "./out-tsc/spec",
+    "types": [
+      "jasmine"
+    ]
+  },
+  "files": [
+    "src/test.ts",
+    "src/polyfills.ts"
+  ],
+  "include": [
+    "src/**/*.spec.ts",
+    "src/**/*.d.ts"
+  ]
+}