From be0b8687f32f86a68cb57ca789fb77685aa32388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E4=B8=B6=E9=9A=8F=E5=BF=83=E9=A3=9E?= <420443292@qq.com> Date: Wed, 30 Aug 2023 06:25:50 +0800 Subject: [PATCH] update --- .editorconfig | 9 + .eslintignore | 4 + .eslintrc.js | 3 + .gitignore | 43 + .prettierignore | 6 + .prettierrc.yaml | 4 + README.MD | 104 + build/icon.icns | Bin 0 -> 202292 bytes build/icon.ico | Bin 0 -> 43682 bytes build/icon.png | Bin 0 -> 129442 bytes electron-builder.json5 | 57 + package-lock.json | 4383 ++++++ package.json | 30 + resources/icon.ico | Bin 0 -> 43682 bytes resources/icon.png | Bin 0 -> 129442 bytes src/icons.svg | 32 + src/index.html | 55 + src/main.js | 90 + src/preload.js | 22 + src/renderer.js | 26 + src/style.css | 165 + um-react/.drone.yml | 33 + um-react/.editorconfig | 15 + um-react/.env | 4 + um-react/.eslintignore | 3 + um-react/.eslintrc.cjs | 27 + um-react/.gitattributes | 1 + um-react/.gitignore | 29 + um-react/.husky/pre-commit | 4 + um-react/.husky/pre-push | 4 + um-react/.npmrc | 3 + um-react/.prettierignore | 5 + um-react/LICENSE | 21 + um-react/docs/adb_dump.md | 9 + um-react/docs/develop-with-libparakeet.zh.md | 50 + um-react/docs/getting-started.zh.md | 35 + um-react/index.html | 25 + um-react/package-lock.json | 11743 ++++++++++++++++ um-react/package.json | 85 + um-react/patches/sql.js@1.8.0.patch | 12 + um-react/pnpm-lock.yaml | 7608 ++++++++++ um-react/public/favicon-16x16.png | Bin 0 -> 641 bytes um-react/public/favicon.ico | Bin 0 -> 4286 bytes um-react/public/pwa-192x192.png | Bin 0 -> 10263 bytes um-react/public/pwa-512x512.png | Bin 0 -> 32881 bytes um-react/scripts/deploy.sh | 110 + um-react/scripts/publish.sh | 21 + um-react/scripts/read_json.mjs | 12 + um-react/src/__tests__/sanity-check.test.tsx | 21 + um-react/src/assets/no-cover.svg | 9 + .../AndroidADBPullInstruction.tsx | 157 + .../AndroidADBPullInstruction/adb_dump.ps1 | 14 + .../AndroidADBPullInstruction/adb_dump.sh | 2 + um-react/src/components/AppRoot.tsx | 49 + um-react/src/components/CurrentYear.tsx | 22 + um-react/src/components/FileInput.tsx | 43 + um-react/src/components/FilePathBlock.tsx | 10 + um-react/src/components/Footer.tsx | 45 + um-react/src/components/ImportSecretModal.tsx | 46 + um-react/src/components/Key/MacCommandKey.tsx | 15 + um-react/src/components/Key/ShiftKey.tsx | 15 + um-react/src/components/SDKVersion.tsx | 33 + um-react/src/components/SelectFile.tsx | 52 + um-react/src/crypto/parseKuwo.ts | 25 + um-react/src/crypto/strlen.ts | 9 + um-react/src/decrypt-worker/client.ts | 12 + um-react/src/decrypt-worker/constants.ts | 9 + .../src/decrypt-worker/crypto/CryptoBase.ts | 17 + .../decrypt-worker/crypto/CryptoFactory.ts | 45 + .../decrypt-worker/crypto/kgm/kgm_pc.key.ts | 6 + .../src/decrypt-worker/crypto/kgm/kgm_pc.ts | 18 + .../kgm_type4_file_key_expansion_table.txt | 1 + .../kgm_type4_slot_key_expansion_table.txt | 1 + .../src/decrypt-worker/crypto/kwm/kwm.key.ts | 1 + um-react/src/decrypt-worker/crypto/kwm/kwm.ts | 28 + .../crypto/migu/migu3d_keyless.ts | 15 + .../decrypt-worker/crypto/ncm/ncm_pc.key.ts | 2 + .../src/decrypt-worker/crypto/ncm/ncm_pc.ts | 21 + .../decrypt-worker/crypto/qmc/qmc_v1.key.ts | 16 + .../src/decrypt-worker/crypto/qmc/qmc_v1.ts | 16 + .../decrypt-worker/crypto/qmc/qmc_v2.key.ts | 3 + .../src/decrypt-worker/crypto/qmc/qmc_v2.ts | 52 + .../crypto/transparent/transparent.ts | 14 + .../src/decrypt-worker/crypto/xiami/xiami.ts | 51 + .../crypto/xmly/xmly_android.key.ts | 17 + .../crypto/xmly/xmly_android.ts | 29 + um-react/src/decrypt-worker/types.ts | 10 + .../src/decrypt-worker/util/DecryptError.ts | 17 + um-react/src/decrypt-worker/util/buffer.ts | 2 + .../src/decrypt-worker/util/qmc2KeyCrypto.ts | 4 + .../src/decrypt-worker/util/transformBlob.ts | 38 + .../src/decrypt-worker/util/utf8Encoder.ts | 10 + um-react/src/decrypt-worker/worker.ts | 12 + .../decrypt-worker/worker/handler/decrypt.ts | 102 + um-react/src/dummy.mjs | 2 + .../src/features/file-listing/AlbumImage.tsx | 24 + .../src/features/file-listing/FileError.tsx | 38 + .../src/features/file-listing/FileListing.tsx | 17 + .../src/features/file-listing/FileRow.tsx | 115 + .../file-listing/FileRowResponsiveGrid.tsx | 27 + .../features/file-listing/SongMetadata.tsx | 22 + .../__tests__/FileListing.test.tsx | 18 + .../file-listing/__tests__/FileRow.test.tsx | 24 + .../__tests__/__fixture__/file-list.ts | 46 + .../features/file-listing/fileListingSlice.ts | 153 + um-react/src/features/settings/Settings.tsx | 159 + um-react/src/features/settings/keyFormats.ts | 73 + .../settings/panels/KWMv2/InstructionsPC.tsx | 9 + .../settings/panels/KWMv2/KWMv2EKeyItem.tsx | 81 + .../settings/panels/PanelKWMv2Key.tsx | 141 + .../settings/panels/PanelQMCv2Key.tsx | 197 + .../settings/panels/QMCv2/InstructionsIOS.tsx | 51 + .../panels/QMCv2/InstructionsIOSCondition.tsx | 101 + .../settings/panels/QMCv2/InstructionsMac.tsx | 48 + .../settings/panels/QMCv2/InstructionsPC.tsx | 9 + .../settings/panels/QMCv2/QMCv2EKeyItem.tsx | 69 + .../settings/panels/QMCv2/iosAllowBackup.webp | Bin 0 -> 5236 bytes .../src/features/settings/persistSettings.ts | 63 + .../src/features/settings/settingsSelector.ts | 49 + .../src/features/settings/settingsSlice.ts | 190 + um-react/src/hooks.ts | 6 + um-react/src/main.tsx | 17 + um-react/src/store.ts | 18 + um-react/src/tabs/MainTab.tsx | 18 + um-react/src/tabs/SettingsTab.tsx | 15 + um-react/src/test-utils/setup-jest.ts | 31 + um-react/src/test-utils/test-helper.tsx | 26 + um-react/src/theme.ts | 45 + um-react/src/themes/Tabs.tsx | 74 + um-react/src/util/ConcurrentQueue.ts | 48 + um-react/src/util/DatabaseKeyExtractor.ts | 50 + um-react/src/util/DecryptionQueue.ts | 15 + um-react/src/util/MMKVParser.ts | 125 + um-react/src/util/WorkerEventBus.ts | 94 + .../util/__tests__/ConcurrentQueue.test.ts | 109 + .../util/__tests__/DecryptionQueue.test.ts | 32 + .../src/util/__tests__/MMKVParser.test.ts | 19 + .../src/util/__tests__/__fixture__/test.mmkv | Bin 0 -> 288 bytes .../src/util/__tests__/enumObject.test.ts | 24 + .../src/util/__tests__/levenshtein.test.ts | 17 + .../src/util/__tests__/pathHelper.test.ts | 13 + um-react/src/util/__tests__/splitN.ts.test.ts | 10 + um-react/src/util/fnWrapper.ts | 20 + um-react/src/util/formatHex.ts | 3 + um-react/src/util/levenshtein.ts | 77 + um-react/src/util/logUtils.ts | 45 + um-react/src/util/nextTick.ts | 14 + um-react/src/util/objects.ts | 9 + um-react/src/util/pathHelper.ts | 3 + um-react/src/util/splitN.ts | 20 + um-react/src/util/sqlite.ts | 15 + um-react/src/vite-env.d.ts | 1 + um-react/tsconfig.json | 33 + um-react/tsconfig.node.json | 12 + um-react/tsconfig.prod.json | 9 + um-react/vite.config.ts | 108 + um-react/vitest.config.ts | 43 + 157 files changed, 28972 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .prettierrc.yaml create mode 100644 README.MD create mode 100644 build/icon.icns create mode 100755 build/icon.ico create mode 100644 build/icon.png create mode 100755 electron-builder.json5 create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 resources/icon.ico create mode 100644 resources/icon.png create mode 100644 src/icons.svg create mode 100644 src/index.html create mode 100644 src/main.js create mode 100644 src/preload.js create mode 100644 src/renderer.js create mode 100644 src/style.css create mode 100644 um-react/.drone.yml create mode 100644 um-react/.editorconfig create mode 100644 um-react/.env create mode 100644 um-react/.eslintignore create mode 100644 um-react/.eslintrc.cjs create mode 100644 um-react/.gitattributes create mode 100644 um-react/.gitignore create mode 100755 um-react/.husky/pre-commit create mode 100755 um-react/.husky/pre-push create mode 100644 um-react/.npmrc create mode 100644 um-react/.prettierignore create mode 100644 um-react/LICENSE create mode 100644 um-react/docs/adb_dump.md create mode 100644 um-react/docs/develop-with-libparakeet.zh.md create mode 100644 um-react/docs/getting-started.zh.md create mode 100644 um-react/index.html create mode 100644 um-react/package-lock.json create mode 100644 um-react/package.json create mode 100644 um-react/patches/sql.js@1.8.0.patch create mode 100644 um-react/pnpm-lock.yaml create mode 100644 um-react/public/favicon-16x16.png create mode 100644 um-react/public/favicon.ico create mode 100644 um-react/public/pwa-192x192.png create mode 100644 um-react/public/pwa-512x512.png create mode 100755 um-react/scripts/deploy.sh create mode 100755 um-react/scripts/publish.sh create mode 100755 um-react/scripts/read_json.mjs create mode 100644 um-react/src/__tests__/sanity-check.test.tsx create mode 100644 um-react/src/assets/no-cover.svg create mode 100644 um-react/src/components/AndroidADBPullInstruction/AndroidADBPullInstruction.tsx create mode 100644 um-react/src/components/AndroidADBPullInstruction/adb_dump.ps1 create mode 100644 um-react/src/components/AndroidADBPullInstruction/adb_dump.sh create mode 100644 um-react/src/components/AppRoot.tsx create mode 100644 um-react/src/components/CurrentYear.tsx create mode 100644 um-react/src/components/FileInput.tsx create mode 100644 um-react/src/components/FilePathBlock.tsx create mode 100644 um-react/src/components/Footer.tsx create mode 100644 um-react/src/components/ImportSecretModal.tsx create mode 100644 um-react/src/components/Key/MacCommandKey.tsx create mode 100644 um-react/src/components/Key/ShiftKey.tsx create mode 100644 um-react/src/components/SDKVersion.tsx create mode 100644 um-react/src/components/SelectFile.tsx create mode 100644 um-react/src/crypto/parseKuwo.ts create mode 100644 um-react/src/crypto/strlen.ts create mode 100644 um-react/src/decrypt-worker/client.ts create mode 100644 um-react/src/decrypt-worker/constants.ts create mode 100644 um-react/src/decrypt-worker/crypto/CryptoBase.ts create mode 100644 um-react/src/decrypt-worker/crypto/CryptoFactory.ts create mode 100644 um-react/src/decrypt-worker/crypto/kgm/kgm_pc.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/kgm/kgm_pc.ts create mode 100644 um-react/src/decrypt-worker/crypto/kgm/kgm_type4_file_key_expansion_table.txt create mode 100644 um-react/src/decrypt-worker/crypto/kgm/kgm_type4_slot_key_expansion_table.txt create mode 100644 um-react/src/decrypt-worker/crypto/kwm/kwm.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/kwm/kwm.ts create mode 100644 um-react/src/decrypt-worker/crypto/migu/migu3d_keyless.ts create mode 100644 um-react/src/decrypt-worker/crypto/ncm/ncm_pc.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/ncm/ncm_pc.ts create mode 100644 um-react/src/decrypt-worker/crypto/qmc/qmc_v1.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/qmc/qmc_v1.ts create mode 100644 um-react/src/decrypt-worker/crypto/qmc/qmc_v2.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/qmc/qmc_v2.ts create mode 100644 um-react/src/decrypt-worker/crypto/transparent/transparent.ts create mode 100644 um-react/src/decrypt-worker/crypto/xiami/xiami.ts create mode 100644 um-react/src/decrypt-worker/crypto/xmly/xmly_android.key.ts create mode 100644 um-react/src/decrypt-worker/crypto/xmly/xmly_android.ts create mode 100644 um-react/src/decrypt-worker/types.ts create mode 100644 um-react/src/decrypt-worker/util/DecryptError.ts create mode 100644 um-react/src/decrypt-worker/util/buffer.ts create mode 100644 um-react/src/decrypt-worker/util/qmc2KeyCrypto.ts create mode 100644 um-react/src/decrypt-worker/util/transformBlob.ts create mode 100644 um-react/src/decrypt-worker/util/utf8Encoder.ts create mode 100644 um-react/src/decrypt-worker/worker.ts create mode 100644 um-react/src/decrypt-worker/worker/handler/decrypt.ts create mode 100644 um-react/src/dummy.mjs create mode 100644 um-react/src/features/file-listing/AlbumImage.tsx create mode 100644 um-react/src/features/file-listing/FileError.tsx create mode 100644 um-react/src/features/file-listing/FileListing.tsx create mode 100644 um-react/src/features/file-listing/FileRow.tsx create mode 100644 um-react/src/features/file-listing/FileRowResponsiveGrid.tsx create mode 100644 um-react/src/features/file-listing/SongMetadata.tsx create mode 100644 um-react/src/features/file-listing/__tests__/FileListing.test.tsx create mode 100644 um-react/src/features/file-listing/__tests__/FileRow.test.tsx create mode 100644 um-react/src/features/file-listing/__tests__/__fixture__/file-list.ts create mode 100644 um-react/src/features/file-listing/fileListingSlice.ts create mode 100644 um-react/src/features/settings/Settings.tsx create mode 100644 um-react/src/features/settings/keyFormats.ts create mode 100644 um-react/src/features/settings/panels/KWMv2/InstructionsPC.tsx create mode 100644 um-react/src/features/settings/panels/KWMv2/KWMv2EKeyItem.tsx create mode 100644 um-react/src/features/settings/panels/PanelKWMv2Key.tsx create mode 100644 um-react/src/features/settings/panels/PanelQMCv2Key.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/InstructionsIOS.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/InstructionsMac.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/InstructionsPC.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/QMCv2EKeyItem.tsx create mode 100644 um-react/src/features/settings/panels/QMCv2/iosAllowBackup.webp create mode 100644 um-react/src/features/settings/persistSettings.ts create mode 100644 um-react/src/features/settings/settingsSelector.ts create mode 100644 um-react/src/features/settings/settingsSlice.ts create mode 100644 um-react/src/hooks.ts create mode 100644 um-react/src/main.tsx create mode 100644 um-react/src/store.ts create mode 100644 um-react/src/tabs/MainTab.tsx create mode 100644 um-react/src/tabs/SettingsTab.tsx create mode 100644 um-react/src/test-utils/setup-jest.ts create mode 100644 um-react/src/test-utils/test-helper.tsx create mode 100644 um-react/src/theme.ts create mode 100644 um-react/src/themes/Tabs.tsx create mode 100644 um-react/src/util/ConcurrentQueue.ts create mode 100644 um-react/src/util/DatabaseKeyExtractor.ts create mode 100644 um-react/src/util/DecryptionQueue.ts create mode 100644 um-react/src/util/MMKVParser.ts create mode 100644 um-react/src/util/WorkerEventBus.ts create mode 100644 um-react/src/util/__tests__/ConcurrentQueue.test.ts create mode 100644 um-react/src/util/__tests__/DecryptionQueue.test.ts create mode 100644 um-react/src/util/__tests__/MMKVParser.test.ts create mode 100644 um-react/src/util/__tests__/__fixture__/test.mmkv create mode 100644 um-react/src/util/__tests__/enumObject.test.ts create mode 100644 um-react/src/util/__tests__/levenshtein.test.ts create mode 100644 um-react/src/util/__tests__/pathHelper.test.ts create mode 100644 um-react/src/util/__tests__/splitN.ts.test.ts create mode 100644 um-react/src/util/fnWrapper.ts create mode 100644 um-react/src/util/formatHex.ts create mode 100644 um-react/src/util/levenshtein.ts create mode 100644 um-react/src/util/logUtils.ts create mode 100644 um-react/src/util/nextTick.ts create mode 100644 um-react/src/util/objects.ts create mode 100644 um-react/src/util/pathHelper.ts create mode 100644 um-react/src/util/splitN.ts create mode 100644 um-react/src/util/sqlite.ts create mode 100644 um-react/src/vite-env.d.ts create mode 100644 um-react/tsconfig.json create mode 100644 um-react/tsconfig.node.json create mode 100644 um-react/tsconfig.prod.json create mode 100644 um-react/vite.config.ts create mode 100644 um-react/vitest.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..cf640d5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a6f34fe --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +node_modules +dist +out +.gitignore diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..d1e1ab6 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['eslint:recommended', '@electron-toolkit', '@electron-toolkit/eslint-config-prettier'] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2992f49 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# Logs +logs/ +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules/ +coverage/ +dist/ +dist-ssr/ +release/**/* +*.local +src/renderer/**/* +src/default/**/* + +# Editor directories and files +.vscode/ +!.vscode/extensions.json +.idea/ +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Ignore the same patterns in the "um-react" directory +um-react/logs/ +um-react/*.log +um-react/npm-debug.log* +um-react/yarn-debug.log* +um-react/yarn-error.log* +um-react/pnpm-debug.log* +um-react/lerna-debug.log* + +um-react/node_modules/ +um-react/coverage/ +um-react/dist/ +um-react/dist-ssr/ +um-react/*.local diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..9c6b791 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +out +dist +pnpm-lock.yaml +LICENSE.md +tsconfig.json +tsconfig.*.json diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..35893b3 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,4 @@ +singleQuote: true +semi: false +printWidth: 100 +trailingComma: none diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..5883873 --- /dev/null +++ b/README.MD @@ -0,0 +1,104 @@ +# 关于仓库官方 + +本仓库原始地址(已 DMCA):https://github.com/unlock-music/unlock-music + +本仓库目前官方地址:https://git.unlock-music.dev/um/um-react + +你所看到的这个仓库是依照 MIT 协议授权的,除electron部分(不限于electron构建)外,代码与[本人](https://github.com/dfvips)无关。 + +# Unlock Music 音乐解锁 Electron 应用程序 + +[![Build Status](https://ci.unlock-music.dev/api/badges/um/web/status.svg)](https://github.com/dfvips/unlock-music-react-electron) +- 在Electron应用程序中解锁加密的音乐文件。 Unlock encrypted music file in the Electron App. +- 无需依赖浏览器,开箱即可使用。 + +## 自行构建Electron应用程序 + +- 环境要求 + - Linux、MacOs、Windows + - python3、nodejs、npm + +- 开发环境 + ```sh + cd um-react && npm install --frozen-lockfile & npm install + npm run start / npm run dev + ``` +- 打包 + ```sh + npm run build / npm run build:win / npm run build:mac + ``` +- 前端静态页面构建后的产物可以在 `src/renderer` 目录找到。 +- Electron构建后的产物可以在 `release` 目录找到。 + +## 开箱即用版本 + +https://github.com/dfvips/unlock-music-electron/releases +# Unlock Music 音乐解锁 (React) + +[![Build Status](https://ci.unlock-music.dev/api/badges/um/um-react/status.svg)](https://ci.unlock-music.dev/um/um-react) + +- 在浏览器中解锁加密的音乐文件。 Unlock encrypted music file in the browser. +- Unlock Music 项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循[授权协议]。 +- Unlock Music 的 CLI 版本可以在 [unlock-music/cli] 找到,大批量转换建议使用 CLI 版本。 +- 我们新建了 Telegram 群组 [`@unlock_music_chat`] ,欢迎加入! +- CI 自动构建已经部署,可以在 [Packages][um-react-packages] 下载。 + +[授权协议]: https://git.unlock-music.dev/um/um-react/src/branch/main/LICENSE +[unlock-music/cli]: https://git.unlock-music.dev/um/cli +[`@unlock_music_chat`]: https://t.me/unlock_music_chat +[um-react-packages]: https://git.unlock-music.dev/um/-/packages/generic/um-react/ + +## 支持的格式 + +- [x] QQ 音乐 QMCv1 (.qmc0/.qmc2/.qmc3/.qmcflac/.qmcogg/.tkm) +- [x] QQ 音乐 QMCv2 PC 端 (.mflac/.mgg/.mflac0/.mgg1/.mggl) +- [x] 网易云音乐 (.ncm) +- [x] 虾米音乐 (.xm) +- [x] 酷我音乐 (.kwm) +- [x] 酷狗音乐 (.kgm/.vpr) +- [x] 喜马拉雅 Android 端 (.x2m/.x3m) +- [x] 咪咕音乐格式 (.mg3d) +- [ ] ~~QQ 音乐海外版JOOX Music (.ofl_en)~~ + +不支持的格式?请提交样本(加密文件)与客户端信息(或一并上传其安装包)到[仓库的问题追踪区][project-issues]。如果文件太大,请上传到不需要登入下载的网盘,如 [mega.nz](https://mega.nz)、[OneDrive](https://www.onedrive.com/) 等。 + +如果遇到解密出错的情况,请一并携带错误信息并简单描述错误的重现过程。 + +[project-issues]: https://git.unlock-music.dev/um/um-react/issues/new + +## 开发相关 + +从源码运行或编译生产版本,请参考文档「[新手上路](./docs/getting-started.zh.md)」。 + +### 面向 libparakeet SDK 开发 + +⚠️ 如果只是进行前端方面的更改,你可以跳过该节。 + +请参考文档「[面向 `libparakeet-js` 开发](./docs/develop-with-libparakeet.zh.md)」。 + +### 架构 + +- 浏览器主线程: 渲染界面,处理 UI 更新 +- Web Worker: 负责计算方面的内容,如内容解密。 + +数据传输: 生成 blob url (`URL.createObjectURL`) 然后透过 `postMessage` 传递给线程,线程利用 `fetch` API 来获取文件信息。 + +### 贡献代码 + +欢迎贡献代码。请确保: + +- 单元测试的覆盖率不低于主分支的覆盖率; +- 提交前请使用 Prettier 对代码进行格式化; +- 提交前请确保 ESLint 不会报告 warning / error; + +满足上述条件后发起 Pull Request,仓库管理员审阅后将合并到主分支。 + +## TODO + +- 待定 + - [ ] 各类算法 [追踪 `crypto` 标签](https://git.unlock-music.dev/um/um-react/issues?labels=67) + - [ ] #7 简易元数据编辑器 +- 完成 + - [x] #8 ~~添加单元测试~~ 框架加上了,以后慢慢添加更多测试即可。 + - [x] #2 解密内容探测 (解密过程) + - [x] #6 文件拖放 (利用 `react-dropzone`?) diff --git a/build/icon.icns b/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..c1a48e89f8c141ac02a79a8674c74c40732b861b GIT binary patch literal 202292 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�bUH|F7S#9&z|{P3 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 z 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�YN`MepT7}PbEM4T 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≶fEs?2rFgv1?Lo0t#p7^kV|#KtBPw?renyMxk_Z0F5+80Frpu3KmGA+@d& zGz6Wb!;%2~-IQQUdwvw=Hgs+fc&XOn@-`Egc_?Ing} zpd<-Zb-%N{auUxRfixek!`Y|o|0$~hW#aje zi(Wnu0%dpceQag|H2#srU|ZDl40!oN;BS_i z?wR1r>IBeZ^y+_;wi~1eHa&F!p5e`XjU@leNfmcJ$fc#<(@Ac(sePv+gkl@SeFLV} z9KmO95TNm||Bv+WawzauBdhQOqo?HPerZxQyxla2OfpI`zbWd$0=QFU`AM|K*B{ zzl@snk&XNHwZLsWo+2wO$$<_BB53L6Z@(?o?yA zcQ-`n10cGV%dXAMYfysTqMS6$@3}WV@GfZOx5E2!Z@0t!RxXC1tUpkrxxCD0Tia63 zjcz}on1Sw4%74fGlh5-oB?l5Vn0ZUAQ9cJ1%k#UPHWZmc-!7`J@y9E`Quj>fxW6|Z zgGy#nFjzk)@KpIxhfc{5CGqS~=k?2=IvFAx5F?{(V8eN>S;((GLcH{p`{Hi9S1-{* zjn_a2LSHv4r3*mxcNu_eGjo&dj-^m#T$DH4Z>331IKZtSX7YaobpgTerHG&I31{SL zT~|aTxWx#aYn{w=mhT=3Ab$cQlI@9PU`?}rPNd%c1f``Dt~);VF*w*K>w%ZMJ1LxZ z=ZCMD0(E>cCnVO$0-gI=)%6cu>Uo^cEHKtgl(+MPo0TGd9)nKU8Q3lUj69?0^Wy6tA45`b(C;aEqb&2*x*`(1tA3hiGbaR!L5& z=d{MUV4W9G111$4Du`F{u#ew{6LNR& z)+`0YaK-93PmvyU@=Pzdxb$P!fSekxh+Lrvg{sX99FW$#S)lH}Q#nfF51^C6l*e3U zZ|*ncC>3mvuH+~c-G@#pQ10Sxf?=fvUeN>(JG4rs2(^Xa>hsQmqf1E5Kv&%6_ouh?JzvuV#zhg3XA{rkJu0RC8l~Pn(pGDq0cgtC9 znUymOLU*hh1Ld+T8R5C2K?TKHDN(K{4#0t1*^UMN(87%!atR^;qej2zvE;qiJ|}7J zx*8$~fT~eW)ZhZEBuGIbN%%409IzG~$9mYY-t;w*BBHix zEF>{FJ0zxscvqfZQ@K?R<8eAzJP&stm{OUgg6O{h{TGecuGw5160IxDckgZN_TfDa zDtT6Y*TkSJQIgEF1dPa2k19ls-^ZZ}a@l@Ee7~3D1^Q&VryxiNZORHtEjoFcK-eIS z7*Hmw-@sd17c8?>66xQU-W_6{5P;GewY6!5o*!#?LC_uFnQQL%nn6ejEt{aYp9V$tv95W2khz?&;nldfqBPv-@c$| zGS|UKEXUq01V9;oLZsk}=W5;a4~U+^EA=)O9e-Jck0g!_>Q128G~Iy%-5Nde5=pvk z)cdHPdE_+HbfL+5kP}wITh<4gkyl>2f#W@a*zg$*yu62q5mqsq^@ochJq^ zF9H>i1S$|u$L_mSOJbA7;kV4Z{f(jc$iIxRCveJm{_jip+ z(anl30*t^bSOWTkOG&J*Q5e|cgjMbg55KRTp;<|GAK~$ul4D||hQ7&VdR&8DK;{Hk z6UyA3F|}*H0z`bf+x-)FnPXpoeU&fqpC{*DFbG4^>{$jG@p` zK{Limic8kuA3@dW&AeF6m`nV2^EUkRF6Ih($=hdm50=N z@((W<+`vyL8mJir@ugAz{%_I$QiCD~|9@qJO!q?W?1B9O6Yy3cNK;)$Ennry%l`xR Cm}(&a literal 0 HcmV?d00001 diff --git a/build/icon.ico b/build/icon.ico new file mode 100755 index 0000000000000000000000000000000000000000..684856186d9f37f0421c98e2ae8df008032753cd GIT binary patch literal 43682 zcmXte1yGw!+jW8$cWBX4+_e<9;>F$F-HMY?v`C>irD$bp73+ka)u+Jl zw!2|gl&=U(x2wKq2317(lFG{XV(Qp8fCGoS;nU+g%TNKt99cuS2+liLo8K9r;&^=Y z4%RH!N3L^uUP^zwYE?As?_fL}ctWFI+^G<{%&S|XzHyRUrS!K%y_qpWVd_mH>b^u? zGXbrihw}?>L*^_O_ied;x%fW=$iBz!lzXY8eC zvmF2R{`c=J(DsFDUb8m)#n2-U0~A2T$IaLfPbItBO_tUuo#>aT?1Yv+{F)nP5GDEv5K&h#NL_Z86z`Z3_u^zdC+ z?oV#N)eTaetCSbioa6Bgt(^3hTvhNti_$)d@(-bKE>F3e3RSydG(%<3T9DA*27m!Z+?u}2B}cum0s zs+mn_xD`;_Mn^|qjQ>Or@=ju)b>%?L^mVvUo93gR?cdvs4wqT^lxO6cIue6tl=D?Z zw%ou}-(o)5S5MK;(n6*YPkXuBZ@l02@^BtQqqtM*QG&c?Eu*7pnFTkaynN`Iz!y3Y z<{5?`vqhrOG~P?CsO_Sc=hL+4b(Vdao&(bUvIi=X?t=dOaj7+7`LQJqKU%T(+Ih+8 zUW|{*{*HwztjDXUfgR&rm)p+d8spaxGK$w9%SS(RKL0uUqoAf=WuF>ezO0t2xdezt z6tWU2!y5Xdm)Vnq;6a%m)@oJL`cme>%SL$5I_}3B)(3j;89i3W-tUOD(jgsT>>N9bhy#|mS&3fjWJN;)S&B4 zQha3y#iZ0BKKeE24&4AA+vW*HBKDTn6k=bCmWrW_407^tc*&|=(|?4X+EqL zZ7-0_viIA9YkxsNVdeP^wxp5#~)2G_WFgrvGTN6zvbS z(u$C?4W^YYAqtlQsy|j$NQ>*CsBVfBp3~It{1dZkp7*gZ_kf0w0y%VA1fHyKFFCim z)fD^$EgpgA#c`9gl%64!HHIi<#?1S^VtJ}bOe={a#ZIgZcy{*8gV#3opp+UBilzfi zgCEK}ZA%8F&YKx>G`}V3aLG&512wJ{$r&Vl`<#+KeCSsqHg{Gg55LK*Rf}@gN`36A z<|C}JGJe&OR@tu1H)0rGg_hYP(RB9h_N0A=&A%6DayK3liI zs`0KH#@V26kNtbi#h2BLLH4(eR45M(+U<46S9S%m9f(wkw%=|>_7Y89$$k_wgoJ&y z|K6J{mzgU@RL<0AOi~Q?@$c-mLd^^e4BQyG#g+jLzu(7_hEVaz{VsD?ylz!zZB3pz z9x6?GGb@LLpc+`J$lzV@74pjYy^-tKP)r*d!eO!{-;-jibe+*CiVdP6mtKX|f3d zfvte37|P6ch3k=fryc2yBYhV5tAi)+#)QK1%p&XHP{!H1galLpq$2eIm(2&aJROZL zY2V6}W;H}LF862P`GCWdnAIe}chq7uBZ0D9uY0lzOvLj$mrddBf1U>OhtkvYX<{^bO*yO_@BmH)4FiH7^YR zIwUN8kglEFdI!42o8k-;)#3O)C+obfS?IZOsVwrTk0+tPHo3#@t<#*@@dXxz;eaY3 zX<6ZL9gC8E>UU`kMt_?;cR9C2#?t!9%dSx)rtfTt8L}&iUo^{mc=8@InV<3N)!+Wd z69`xA<=kI=cqr?^v# zCqB8xm?taDulC)32$i$Q)a7}UotHmIhu)+=vtvoRoTK)Bl5o|LMPt;*8QpwX62&A8JrMU;5CmrLHI@UX_&~3tHRXMg(m)d7KYV(u#1T|)k`7Gf z>@4B$9IQL>FJCs@5Kbo`HWRZNMPF(A+f%r2(>HlrWJbR*q}NRx-u_o^VI!*8;(;$% zHC9Wcn;(zF+^W}!w0Mlm!?=?r!;gM`9Foh6Xr!9;ek@dxb}Q{Y<}@J``S1IZk8#-d z>Lt;+XqxC4^3)F7nS6QgIv$QGcKcCW>Mxm3coG>$`#${ziSCd!rw{LM%dXN{PxX2b zZvC%b@A=>YieyjtN%A}|wLCF9*x#iIRl@2Np;COGOz&FyJu{s~R?jf5{GT<}T8GU_ zVf4CrKAQy%9V^9+6-|b?mJ-yp76<)J%}M+*sn?f< zY4G>4RUrxgZ<=2ytq!j+J5Xq;-cr^ejrv?4mTe<1owlY$$2*Xp624K=n)gd?&05Q~ z$2%-ke^rOTY!ElAl^-JFb(kKUY*pOO7YDX0|z+vLuP| z;@-8*);x^)+{KHKyW=Qj8kG%`RL`-`G}Ox7+$WsY4?u7`(Awor5!OmbHWUu=X+GwL zy(;mm7PGm*tKMwmK>~@utm2Dt(DOK_L4UJ=wL_87Dcjs%fkTY5JzC9U$?zK9BB`4l z%c6}{7rcqXC5FS1Jsujx`F}FjvEoNKGm@30-G8NP*}%0-ifRwWLI1anU)ZQ(ZF!tR zM(A-UCxJzO_(xYbg*P=GhI!n`?!4*eKDlV+HPfT^-)IN}fy#4Ce-d8XTrkVNY4?Xj z#@4!vvH0k+08T0T>Hzg93#8=xctAcR>5!@SwtRK0Om)SOZcaq| z^us9rr&hs$?&EMzotF!O9kPvi+JFM|;2!HH(qa9V{{g0hjZ2Rtpn^EV^}_tfW7>;g zS3|x!O`koV3uab_PCTP)oC<61L>Io-@X{5{LzU-F@>yt};tkCnep}U#2SaBC%?&62 zhtvBjak$5ZvS2I5n7+SCr9I>Co*pNP@hK*?s!@~Fi`VHw9UBa)vy8w-yj2g21B@Dr zoG%sU)92g#gRHx^-OKWDOz{$G8q7q8;HS&KLSC8VI z*9T>(gi>6a8Q%TarzFELG#nB3X%OW6Qucq2k`_-8*pAn?X+>D1ZqfQ&u~{%Vq&3;S z5I^D$LHd?JZ29n?B(wXWDgkQ4tmNQCUD;882-Sai@}1oaWYj3Hc;?^t8y9@UidbW! zvbdhCE7n&Dm`WvD(I|F~bw!M+@GvY6W`Wu13a4*cwL$-rGh*R<-t{s%(dyuc$AXH6 z5RzPtE(eeu!HTZq<7SoI&dU3~t$Qhra#%;-S#+;N$wbGRL`!#5O^j`%rsso zTgD+mn6Og&KN3_cD1xu+`6*?;do;K0?et52&U||0yiI#O)OV{f&vpAxiQ673b$q(LYChmZ@O@Uqy|9 z{*EzZjENvwgULvbc07+QdCzOgu9TJ$+MeGD9BXGMv{eqB@h=%kXs4{4ytMwe>rO0_#Q=> zeKbn=kGe4B#)l!SHqhao+LV95D;bq`-^3mTB~~d+O$`qHFGs!O)&Bu$ZlAsaQ315R z=HV}14z%QUY@b0wQwSVMwY%|Xt{t2}QUGG&mo<#=< z%@MufIc~?Aej|!({vEG5W43W{VBq_!@icWIhagV}M{usSJ5_$zQb3Ji#}w_`k7wR7 z$du+48{2IpjI%Yap+26$n+_P7!*9hv6P?VU*Em(U4h!5=!>$c-7FDJ2eoKm&kV|kT zjv=~1uw_dx0eo;{vmH_btnlMC>Yk$R9~)=l9|&g|3~8~F+`;`7Jo#}h|>70nQ19u@!9N6AU3gey zT)p3fU4N?7=4L+S z&_g9JqAJ<9ZF%06zZmIuir_ug2LL)cOnK65MEmglS`Zo7G(fJjyc8b4wIfibV<*uZdp)*> zuY6`iTf``+4qj<=pNL#oRMEkO`M-ZWqf^nDc5GKhkPj?jSf9xIy7h!Md+`)gqxExd z%$5(Gh!J3G;Nfc4^+tJsf$I>(6S(L#af4j|_pS=m=VL(kg+8tU;UE%D7dPNKH=CCh zv#I z4c~}2X_DXys+932sxwYtbZ7ggYcy#P)l=KfQ^={E!LaLMe75+}ZM)3+(wbi0x~}&> zplP)U5|jlqfj6I3f8zs{jfb=tXDA>=2AZ~!_LhR?H@|!&u!?hN=L};Xvxh#9v{Mq93nA3 z$Ag+lle#XgZeGy&hI4qo#*OrFidHBNKy$Z|+}o~tY+PAI(_a0hqYQ$1hrJq^0drOc z(XLN~2%PPeb42=j1i{LLAF)a>p^H9u6=asDQM(v&cQH0J!Gd-nUqt2PsJi|9;7c0< zU8i8!o{;?2p+vD7CWrPy{oL+-@4fw0!h7CYx%BL zfrbpYsn=5$|BW`t;Cw{BVkj!0X!O#xKp4B1B|WjN1E%`6<;aK$rbgBYRRc+&FBDr1 z>Ub?NC|i}FD@Am?TQ8XR@NiN!Rxu8LIgRE_0a$;?V-@37FP@i-`Wb^ZOHY{?nt9_( zWydiu(nC~@xZR<8J;kbnH2`QM$92OMLU4b043e927mbYnk;HB+@4w$@!PQF#=AZeE z)NLZFkjbx(t83C{F+@bo>T+|ZkF8>S*y1N*Tja^EvkU(v;#pp0Ux(%Cs$Ko#)`aRr zw@y2JQ^w))Zz2ru(H#LCs@c)5E`@!p!s+K!f5|VSQapxl^J)-lIWM(ymyGXe>Hm)f5{J4tOkIs=Vm?-5*UOsAQ!+VS5 zch)HXs;D3U#Sf!GEf2-CN0SK-H=b(J)1<`d6ne-aP#ripAft_xf^gidFx^B)%q)lH zKJtDXF!b3F|8q)X9`p2r7}Iof?5aGvHXv{#@&iE5a3NIPwPE4?Wxv*)eZ{^leR>>b z$yCB~ohY5D;Igu1rYhAL3~TVmmnl(uE!#U4pfw!a;3B<}B|n|(F8=Uq_=Twz|xv=&@F!Ys`_MaZyrag$dLB{OJaembRf z5pfLvIQjk4r7$u_?6w%Sa0I+@^IxYyJ4};fDI$BVccq7_ozXxO0H5*}z38HrIPBMn` zOzw}{^773=VfMW+{35n%ycl$s%ZJqN2dZXe{(Q<&q-yOl;*!gb3IR(*o`#Eo=SU_T zd2<1%%TQa|ZjjX{x|1GF{3~pBzd3}?^A=b2bN}iM9fqEm)wRTuqKNCH>j^5By&-aT z@kfSowAUV*iEpE~k zjZ7{kGl@p=Yf4zx*-(l6g%s$#EB%?$4i;2boRa19DQ%f>%8s+@K3ZX>>$oP&H zF;cejHyRj+AC)|ap7ed&uF=HzlOl9L?NbSp)Ru;5&@Nk(DE~H(z((a~YYEf)Wdqf( zRytv8$*i(54D7TuoQswC9lv}~%uhKPVD>I6lXApJ*6PWL)#V~te?lBJ5*Xnk4hz3JXx{(vWoLwa6)Y7B0s8ocFWA}H(})bv~nE$8m|-h7>EYI>Xx(l3yNBL(+M*>MHIz+aRco}4A=v*_bwzZ`q?4m!JEjxE?fqT>^XakyM*sk%}r zu2~lfpa-N5oyx=)5r!BNMGWQD!q@r@x%dW=WGOmwnaZGPp;4ToxTNbQ$tcvDqGk@U zad?WRcM43I$dcW2=8FB?jXL6V0c4e}84{a7F_gKfH8jgxd0$a4K$XzM0sQ})mFms) z5e{*y=Pa*uh53l(*^HWfVk-;FTbR1=yOyf&PKvqV7f8p-+TDnU%1k9R^Jb=5o}`8K zviD7xE6PwEcN^tp1j^~7$eKDB1h`6=&}J3oHSo@v9SB@3QYBEt`eBkGVkHR<#?~Q- z-nC8992CBICjRfv=ZO^pc%!579*-C0Dgi~**U|8)zmZgrU##4&PwKw&DP11d)|laf z%jN^QX8u5~#Sd1l+#{otv8Ac)Ien;QwosOE-ty(os=)%PwlLXpa4)rlQyl4tI0Cwk z7$8b50mXnlLM2<0U7j2<{$E#>Ctlmy9N?VUP#~Wo?sFK*W_mOL|1C@Nk!}pdYTPBo zJ=}sX|6{{XUUQvl&gn2NYTFSg1vTOCS@%>_(k1XLTG!VK2iBIKq*C`Vi2e-QRAQ(B zClYX)GXh1Kx+LqvY>M3@GFccxJF4ypm@I^X;VxM&k12=ItdARc7+3T~#~Asn5lH-E z9d?f5wXNQTOyG;ee|a$o&&n+NutD68FB|H>F<+Iuj$-W!sV9Hz27k-6MXddGD&gO( zL(HrN-hhQbf1ngD>=@s#Q_23h&--=BppCWfx*22^N0$|dLFj}nQP_Q^^zM)L?hX;8 zTF8x#=W8d|(00cydLi3Y`hmJ!WhPZZ&u8DgzlY5M;L}Gzf0nb(&rn_qha8gnT z#4jLrxXyE}aw=*h;&Cx2QE5<WHF;sn@YJT})2et5FE7)4^vkToTvNt1(6@7tV z#lOCYvWj4I_}uZzZ{7&R|3C$?Jab2gxD-04m|r>B@3c>A6DlLm)*f}U*ayyRoK8y# zG3QTE$7ix?b%u6GN+9$#AqS(lQ*3Zb^gdlyPLI{75{N$b_v5k0(4cYtTlzd9sM$oY zsvs_n$qvAx#NVz?fmAq_#K42713~R#{&J|1Vbz0REL%2P`k{5hB90eezus$$VsPyxQ=#9wQ85l|9Ij zXhx}X3|vI78^LmKX-BJgk3eO%YV+t@qn{| z&EK44h5*`B=y6^%5|Nmom%$wWJU$bUfBDgpcS}+r{S=gODaAHj=#{ zrmPjG@_u4?fCoLN0-azFavy#>oCY*#v1^Dr-YDw0$9H-We$6FA+(C2&UOzPM(%|l^ zCxsj)7@}*zcwcEQCIwiKyswVUcFWX9jt=PoE5f$@#ooae9@Xmf^>uScF2qDJ^&un4 zpPI!DvGMAhW3o_0?bQE#ULEmx!Jj0Duy`1wrPdN_N?3)h)|4(WV_ZLoJn8COyA^KW#q7V%!wXCvQwdK=KIPm zebbky1;7&$zqV!<5y~y|Cd^~Y&*0aR91|W%+Yoeclkj}|1I9#JE49%_DwLQ$5J4lk z=qDdZ&LV@3Mg)@iWon(>;rNO2_u1brTYD)nl3daiO7AfR@R1SL{DcKz3weAP&m`R^ zRBH4v_loM%bY#8&=zMY^lf_Muq$md-kXms>ABkt4Z6EKS8M&kl5nFkF^(VYYIIOiCxP-_iwEn?(CEFdOL$>62b3Uph)Fc#sOFl2gWcDQf3 zO{W%O_`5~n9jA_;Qvu2>fQQe@Q}Uibgw50ndw6TDVi$KPa7DcuL|KbG^LRI8f#CZE zfTiH{{up7#Bh{_+96PpupI@&R**k{Djqp1G@Wx(%_jB*jAL&TGcU7b>&kXb9riRcv zkxv!aryC$6%fAvPXjz)mzmZV!&W|YSGihr3&*o#UK1gK!qF%Hadg5)e^$ZKhu+=xY zbn}onr8yyeAnORn4H2XLW_(M}ZW`N`M?jmDt4kTUq=X)ZGaNy0peOoXiApOAYO zJA(36p(x1S=HG-IZL%`_0F&;NIox!tW9TP$$P8Q+Kg8$5r;yn%_RKy)wtYZS7Jt-7 z4205QKk2_jA}z=C;yT6ICyV3TPW#{f+&=p|GW`*SiM@*Hqf>o2EMT;8_QpLCz^Aob zC%%RYd3SQKi-as1X0+1k)QbvpEqXf2bpbn`pdC{qnwe^EEHX5~Q-W5|co+fu7lB%N zKan8u(25T@FD(N}Y-c&+_je`YX6A1oLZ>$YUDh1Hi1T7e`b#aPF1g2PC(c zMN3dK?XCAwt$oVKB(5z0(SkMIg(L8TQUY{f?8vVM1-As2TW4X%EQ5Epn@&{B&y6B7 znQv|^+sV_N)_!!vu~K)1i`~lMGIz5TGyz9QHPO7@sb1LXgwe&f%Q?4ExNwN0j=8qvNDCwp3@Pi$sCiv z{inqkf6N=8Tn4oqJR((c{d#2*v&TaLUy74D#=RsfLg7-o&ct^nt(9;zg2VhO?nSX% zmmQS&k`~mCpl0RgMjr0`_M|ix>Eq`n+6WR?pxBB$MPu$FzeJBy)8NX)%Z-}Dz#-8KEj z{&0h*js>~cX`mx%0JxS_?}fBuW*J`XViB>h2ky`vgy-2zrrCWkhRYqFFvx9UQc%b! z-LN+R=1=#d*fTjAeuj`AE15jP{X{jdxs!Qr#qA{6J zJ^WdJ(%Rgtx2250KFHM^HGc$!Gx`}h^3oWe-iqMNH{_R&xW0b}8C~;CoHsezA2rX+ zjHUyGDE^3&TG*U#c^4ywJnbL-f*b)&7oRY!ny>B2dtq=vL8R8?fg+_4BPz`~N@)Pd zp1ZCJs}Ly%Q1yzBz5)-I9W0qPa1Gb&?!R)opJNb-#=T_`I494~9Tcs{6v^RE#+s;s z>2}`PISxH1-ZZeAloh3+M1wuB%@M%wnQEZXE!&orWDrdl8gG=>hkDZO1g*}b+(#af zz<%}A67CWfsCu$HOMr;ReMys;I)}rCeEdS&P4uE~pCFhJP5Smw3I5UrOPIk7F-{D1552+>DstJ7*Na57_b+|Z7 zbg#&5RO`brLD$etBKRH@@5m+le{{iWU#5q& zQm~=fBY&chw>R#rE4i^C>NoY%%{Ab^A&NpYrTuqy*zo}Go4mxX92VvMhbG_Q$wYX=h4SZ@q^UTeQ@c~lSkDpw$ zs4w@%B>g}Se@qiumDI&IW7TY+WZg%lCbI3vk50lxKOh*8#y~sw+~d>YbdZP5r!0KM zy^3YOg4mQ07|vZt!iLWiFk&g*PyYb}@*U5xgP0fi?%GFI#09H8lkS1~uXHxUU6c<} zXj&Y%P9gJEvBBWY^LJlHccd9EYeNSPLP!u=cAZ7r!ONh%(LZlK5u2Uow0(JBHH<3y zd#68#AL@4VsU65LP<7mC#IEylO!?%*@jUaxL*!~{P|R{NzC@<_cS|$BbiC9j67lhG z*`$;w_X}q##O-V^u_@(v@7z2rDX@UFND;bCDDyxeA&OPfI;7h3BMFJ?Heg*%Ccm0? z_}Q7OBb7tc?9YyVafDPVwTaATDCQ=Eoo-h^F*`9tu%}D)kp>*s65*SOP_OhalXNhH z5=vXaR$xre#zoy?tn0K2)=R9==iY<{$mi5ka{R@H+NWmvkHuG=J?`P@~1kijn?N zEq=f|kFOrAD{_aXEwb^?kGai-i(OZ2W=Vfk2|7Z42uN3_=%J^(>r^6gkJ&sKtl)?O z>w4yfN-AmiWWNV9*FCICVCpN>kWmn36yhnwfOk7h zhZ!kR1alaUG-J0`5wJCd$q&&#!#AD!H0W5@$}Q46Xgs!k+4SwKA#if!StS)IEdI|{ z2b;V^5Qb|vrqqSUJAYMgyDkQ&ojvDR`Lm(7G6?uQ?>F*Qfp}dNiUqUpea9GrF;;GwM@?z6wFs5E8r;oP#M+>HgVo_Xr~w&5T(4 z-48KB1+pUWwkLdx$zM#=kS{(I*~O7D!!kF|GX4_xZ_@KdkZx;U=@Y%t?#diK^H{RR z7=&n4e`}3x2V$AKNy3!yYk{WL4;m=fNyTPOh>|pf-BaWQUK0Emw@GxNncdZO(6N#x z?YV@H!DRi_>H3?qT+B~HTvYAduYaPC+^k$KfhNr0jcBb?9u!HYi(3MrCwroc*FKik zr8o7Xb83R0E#KM;`IzL0!56m8*G_h8wgzOl*jd+M*p)q>^`kCb&$8M@hHp-rQ*CMIBh~V+j>w(Eg?;Xtb=5AZ4XtSZ8 zP~@$ffTto42XB^}(wV=VAeM{|3zM-)^C^c@qS#keMNpY`j|s=$n4N%~7<1@zRx>yK zH8yQ*r2G2}ujj17ghy#qvqhGTdw%Hic3RbyzLqK9`^RJIQph%@%KR~Dr9JVi%Q7Rg zout2jB}P(oj!#q%a`iIbVU+=OQhW{t|9BVYr_+HZ#Pg%*FZOj+BuT2n`DQ8X^l8_& z6`c3aEV)N)OUB;%Z_~wvwYXo*Z!>W?WS$28ScO7->KcZO*o=N{otv z_}_RA7o)mZFi`bdP$;dA=B^Wp5Mb=IN^5EYDPc2b0$Bubgx858I$jUm;1I?}6t!}E z;{JIKTp9mb+~WL8G1^XIT&B9rFsX6H<$PbBW?d+qk@vHN%IRe)=zYclU?X9O&c zS>g#@)?cn(=M6|RK`FbX7H{NdwJ)`1?=bEP+C-2xkU}1HWhkyV<5?;Eo&8o~ z2VX(@@k#cV?e!VoSd8|MS=KrHo+&Y3v7m~A+E0G5(P&8xRE{?lfon!&Jm$-^%or|M zgvRn%-n3Ysl;43?+k8%cki0KDKXz899Nk~;#5Dq=7*r`ju97773?v;jKpI2G6$GZ!doQh7M-t5P zs3R0xl-R%AF+sT^k);hfm4_1?f%kVYn=bAei8*p66qxx=2ufzv z#gr!TyQd6W)VPuu_y1^qHc^^etE&W!x4?>?Dx!kz@mOE8qcDblZESk1Ei! zqYuvdRfviX-=G`;bDX93G!EMd@53s8=SSCHcDnxls^|$F%9H&&t*KEY zj#+=1f61qD{Fyct-y`n8J4cq*{5v{F+e^zG*9b9VCS<}P=8d@Uv?6zVIO~dBR^Et9`s@nK5ojjN44%D=-h8gf>RO6K2W$P*W|9j%S_yf(wSUw zp9gvEin(9Ao7JLXMAc_h+$dF zP1>XwzD8e!QY_{888O3f)HyZ#QP1kLn?>pqR3`6tM}Dn)oYP-E1-2AgfZ`axVCr2r z6!tx*FskNQ$4?KHYM#Rke!UTwd)Liw@HB|3_Y#->HOP{PhFe%uzB20jGT*g;pU_|0 zC_Q;WO4)u+F<G2n!?-(&Z2ICa-Jpf;O%0kxPI2od8SW%59|j6>~ffqHsCzWoR{sl>;Y6% z;5ScyEZ9`d{V0$%wYM2eyKOi^kEDjbusA40HzU>fKN&7Yc1U~|6=>%^Xkcf7-9A5F zf^mt^0*6&zeLV1fD*nZ>>r0%&ar?n3#T2&aNx8z2^sY_G%EN8x@)?^sXf?SRo5=a& z=Zm|u>hriy=&@@@dqg{qXVr}&UBI|@K{kZP*li(;`1Yzhs!~YOKvb%tD-L0>XYEBk z$Cbkj94#t4WspT?><5eD0`H(S03%e+nJ1AqbM<1pz?P3OaW`~Hwi92{16?B(Q5Xi(+7oHF;A(Fv!BWZR(5)sT*7FeUGTQ>YpMs!hOA<`3JOLXc$ zZn1`T>{M@D4Ple2>L{Go0NKtxFXG(`+WR7(a`h1_mhi^g>L>xg4M50-b=Myvsx3QK7eyqmD~@>N{M(WF&~Kx%0es%DRx zB5C-ko%r6gK1dlVHWe!c-qAbF=PdOG>^Oz-%BCJ5KM|jyo>gcD?Zc%R4)BV9Chu!~ z3pXsl(1t&2e8;jCmv!^mAXY#;-dDQXwd*bv&ho;-`r(vjPZqAdV^!~)-cXDVJ@|EV zjorY~vZ-SgwRi6N_wTksGCNz)qR*wQCyY#WU29Vr~gZ(q_|g?4MN3=WGiYaIi3@XHEj*VzQWv-u9r93ADh znTLGO=4NVj#$xjm5#J1O5ePn0(&MYBhxcohl6Y&0p8I=JOUn?bYwfoGGXP*Xfpr4P zeR{GBc#CmS6)WnalVBvnkNDAv=irAiytUoz6=)D#$i?Q zh^w<@+(9SxZ?fjad^~1r{~41}#L1p+3}Y5$NnfoYOgOREVvPAEhJ=dpvvKjne!{{K%~BEN&k;?^>%dFe@d<|?(_-3zBr|QYyWPbO5NKp=I9>a$Ba^fmCdHaR* zpkx}{YdT7QBKFE>m))yu^HW4D$~(TR+aNJtVuYsT0nU?!ct9dGy8zgUON-;u0l-1b{N!%gv`$Zd}QECw6G@7eWI z0EJi|IZ-seBrkQjqkaHnW*!+$4P&hnXL$@vuyO?;7TUNy#fzi0o|9Y*=*)qBEhA%q z;>i*0nuMtt28$+>!kSmWo8)xT48J^+5)b}bCJNlG1lCA1u-SJ;J#8F`nPIe?J-x);2dpYPzNO;A1~Nnn0b_tdOk@En z?TCe-x)41{f!211#;-GYouR0C6Nr$@uiV=WmX}f{R9W#qJu_rJ=&-)3P$nNRyiVy+ zvJ3gAMAw*^hl^Ks@}~S$Da^3Q?a&PhWM}pmEpA3jmSKir?i4uCCBZ@h+wJm9&&#Wn zG<9D%b2ID12qILq>9@=KBetD;*`5QkZk}3rIBfJM_;}x*J!I-)(pi>N_s=Mgem>zJ z6K3}RK!t1uSB{P^;W*cK$NT1V(q%{|o!VMgNlJDV#SGw3y6@;fj8wSj7#1xq-?~b( zn(70m-9vdb(^~vK)1%6${&7q_6UO2n(8tL0aFLYwhk?kn zqbNHjlfe!aa&VKwh5nW^#n8w~?hubNLDq8oOOP^unsIH?yn5eVjg|Y`F!+06BKB2u zvirHE_zV5>rP{B7S z+2c``7;}GNLoX&ex4nb>OQ@U9D0I3RYL%tW_Qe zr?Pcf1-56}3i+sdSrUHZlC?*^IPw+YW6wj*Id~h80@5Uso`yxjf}Q}z+d?U;xB4~1 z@;hG@3>fDb-%ar+iH+nX@g3@YqOSrvbxBZ-KzJYEfe2M-pdX0~?tBpk;LZQ*%~!ByrT|Ye zHIOI$EDN_1(O4&XZAkZJ$|gW5-2QU#6tfB%X0P9@vW&WK0o#XKk4if~q#B7}Dl&E$ zkHFFrg1M}!au$d(W(trrWUR`VUA5zka5YleYt1(1&e7_1`STzFeI|bXa|c%|U3Zcf z9JS3IukmL^d7?^N6DO&0X|v->_Umel0~fb|%HJrMP%!~T(1n1*BOp-JWZ=_K_OM;{&X{no^aUhBpr%AjE2=f=wmL7?G~7>+7^7Ax=X z5|jp@j^N%$R1X_PKnW%#0wtJ2O#DL`9vvG|D1g6ewIn9j^#9TH6@F2^Pqe#qcQ;5k zNC;925|Yy09nu{OBHba~jdXWNcT2<4jdU;U-S6+-`xm^Q_lbFC&YW|m4FKzsTOvp> z=TXB?0u-xy6f3A>1bqajQlhJx&Zfa;?oe&bgO)^k*}HFslI;0}8*$*jMhuvSd)C&8 z#Rw9kDw{2D`=pie&tFpaF&l%yaEe?>JF*idoKPoN>8)jBxqG@zwYK@Iag~zxWnj7Q zW#~48{GAQZNL)4uc}(nU*%TdKgFhTcbVIF3)rX=>ZB7aKU2b6DKbMBf2<;R;Mp54% zgjZ_)L1DhNBIP|>uN*0hJCSS}JVCMw=>cc7DRxOiXX_E-%Bt%rh7Ws_3=kG&Meid;`+{X-3_n zP-lnAH)6*X{bG3+$^FxdPSrGQy%siKQmc?=v3$eA_iK{zp0mim5Nbb9`9RhCK*^|1 zGAq%=L_`Hd5|$hkioGfIS$HjD4p^A8S&Pv;AxMT0YO2`L)y&37GrLDhJ^P4v4EyUg z3VbwZ%`D3G0UIoe1meqx)`z>}k}$CZf9C0y)Hpn1KsyV|CD0BSJ3YR#PLNNR$D+}E zK5Ol;N7iz9H@!e%WC(WNuUDEcI!>2x+izr(8 zi3Y@-a0h8u^3#{r-jR|Wn;RU4H120#Fd_VljN(r8fg@_;FKvVW$j6~L8p;Jl+$OCt z$Y%*La@3rdR%_W^qNd>jxr+8btMNYR%esn*grlCbPa_mPO<80HF7*uZea{PIp0oScxU&7+?x~eq0$X2gobi)PAUPe+3G!$Mc3epc zs3(Wt+J0r+Rue00PSD_G01cnkCVWw@0of>(_sUl*d3fo#-9;Mumr2-Z9`BF#2lSBI z{YqSH0|p{!HVPDYs31f(_%@9r;S)Ffh3zxFM<{xi0O4dH5l9Lg zIY{YokrF~x2ArS!PR@FfsocyZNuzaL_HjxQ;naN7|yNrw9sbsb~HMz47mlv6IH*2HGnDF#Z;q)&gbE$qC9H@}p{7H5d(6edBX zFXL?NYsj>cTkoF!$Y0ome|WF% za*RM(@#M96iE1XEB0g}08aZU=0yI9e-18;$0$WEyYE%;aNS79>UCzijz^|rfRKe!* zhfil&oiWo4HE>`Wj||>c2Rs{=j7)vvv>Tp~46g|!N3qI>B>?p-Kv|o-HMo6%P|h-5 z`7mRsOI&uSgthU&0EP~e zi1vj7`9Njf-64Gh`v+u?`*)b$2)eoA^)I-U)-8i)=}pm=r^<>GubVIV=3iaFVdmV8 zzl4nuDeSeM!ud>vNnbin=N4>0i}^OsaPiZ*S>?2_U?GFGI=pyu`TQY;pnDn(ltZ!{ zMb}_#z{(hD=d+=bDtIURR|*{ZUBJ|_Q=H7%;>g>CZbIn3vuv80vA#Uy6*m#1RbPZ> zSz^qEy70d7*DqzA`bi+q3+*m{xXd zj@?u+cwMVxoc)bqR6(h8l8>72(z#gmVh4G1HT$jjkSApw&?hq@Cs)a#ucm1nY;u)y z+>RQUq0r!3Xb~io4Y2mY)@9TW=lYT}9l1WQBu*0lmcfH$|6c(`(~$zbi}+s32e)w8 zwuW$p#|ZFjd!=6!9lnPMOp0q!Z+*l|HDqHdWq{KpIDFXDv)~(sGz`JVPxYy5o{m4o zE4eSx-D5vSv?G{&sLk{EOq6`V!1f zNN&g}N&beS$CDrdkIx}E^{3vZFPWdP7Q(XWOxnD>|Jb^Leql;Vq~%e~m9k`7+F?Ad zYe+C}aN zH6OSesi8Q3Dk?at zWm8=tG~6o!VX9IPM>u+7!u~^_@f$8j#k5{7xCh%diQ9@&PT)q<6vMN@INS0Fee2tq z$r6lFU$hrNn;X1txmjh13T!eyC!rBu8QnFpcc0zk7!R zOE*tP4$=S^(f>@Tnbltu3CZKxJ{=Q~7QEGA8(CHD3^~?;>oiXxi1;0^^Il`LbaPf+$ zy_4U7#d}YI8PjPC61794K#-*`^+MM45Buv0moKH0a$cVa&)-$NFY$SeVbpq}RlEC<8!<9q zA)6=mwb?A(qMG|Tp|j|}(8!}mwA24h1riq94qg8d zYNv?bl~0;6Ar?Or*bxl;A!Bp;-`hq494SHQE!^&Rb^%FDwhP@BqPM*Rh44L&1d)Ge zN{|x`pq_k##>^+2K||ic#!mzRyw@&rN4L0%P@NLdfL_H zkvY*740Ts>t4SHMx;aM$Pob8@j&t!g-st`0dP&+Z2bWy}MXnpymtvyA^F0rZWU?P0 zV~%3WEV|`(WjP=pHRpNx#&|%}Bqu=Uh2$Z$@5&RHR(>F3e6+8ZP;Q`#(s36AZ3}cr ztYbcdM|NXW;qBnE%>)Yii<{Ia!(X&LGd_|pDKl3u_0a1GcJ=2iq~M-x!|f89)%o+_ zF7>nzq+>K!TwFe<{kh_zK6MW$bG-JKMgHp{U!p|h0YrP`s6@;dL4ml8E_7GWQ8nYx+r0+6MZh-!4&=h?V3|TafR`mwOGWM zY7u`nGgPg1VMDukIKR(gu#b0Mk-CPp-!I+s&5=NTCehShA+&0muMT7#4~^eLp|3eb zguY||o0zk&mYNWjd&i&jBtg)BhS&f4k&jM`w8ii}Y+)*yWHQPvy2Bf@AF6@t1@tuWhA8vsfvgidr6-lHe8UnOo!@3C9oC9rEe( z_&t@i1Sf{k*l5rCpT5i#XIru6=fEt#kGl9h!RL5yjA%6IOQ~>bZFH zc4XZ4Adxq}4gA;|(ICQ@u>5!!Oih{1~$t)RFuR^?hvn2|B>?@jr7uP4nw}piLRNKn0;_DUBm~NLLahW~yX5s-eoS8Ceacy9O@GSjT(X(PooAiB(}D(wbQ~NvHEZ;QP@gY% zAhc=}CwM*QBlB=nSJ2@sp7%>iw>q|O*g%^I4*;ZMUEcYkm9%yajnREWT}(&@thWfi zCJ=nBX9)$xcSBv->_3h77x)Tc4T3@OWnIod(3I<#t@As-R>_>iPoJP0ts5jCBr4c` z%VvKj-njsC{_&>NG@qMus$QDrYZkSovso@o$n5%#0Lry;U6m89h(F)!i=? z)+(9Zg*+(A7SYmSpU~R#rKs=H-~Y%FZCZv{@(g% z=hKs&BFoH7dvay(Ohqr(UsHXq)fml=?h)5bR`=IpV|TzepKC=H`4#rec|l9&<7Xv% z))Upb82ppbBaF>|NOkEEv4U)+$ezm%HL#TM*p*v+eGbWpn!$5yAKzkAeuTG$te1M; zBpnMC4WN)5Q@S@57!f{e&^$);^7vytShkJv1X&*7ZQ!M<@(;00zBqjz(Qkv@ukB0Y z_KJ!ajoOq@l6n+`0(gh#8^8M5~=aBk6?W*ldxnM^e7#CnU^^%Cfb=`_A;MV8>~%*uH9s>S)pLVi8`dhPm& z%B$&R?NzXUkfctFq|3qm>vdxS$dQN&)Hb05Xs`fVUHrZh;RRwRBU*YMs|k74bRy#e z#?$Qv^cmqU*E-5`(^C+v_YU#sX4-!z)zqTm176~ltm*$3@|IWwiLqbJ?LYB#9MwwK z4x+aaf@syo0g4u%h~QhF&3_xlg}Q!?ECz_SlX|F#C7PJ+4LGM?d23eu z@RB#CN|L7}XjMtbxqHJLyY_D3&*A)~0wVyo6aFf%`IvXbXc>J3%;ZMqV*I}yTSd;Z zkqGeS$va4bwP1aALe|5@GZ+whL+q5vLbNfRHaMhAE&blRMXpES2J%&($y)zF?LAG- zkdaN#cJ;E!%!RG3RTCRJ0SalgYi|3PBMvd|GsD~7SWS={oxS|xr}h^*|9ZQdZWYPr zdU0$?Q7F=*uSk?V&m+B}?s_@u80~H%z9J>o%dBnWZdbw8oi(RGPh%Kvpc?`WR<5f! zfxn8icEY1wKZf0UtIl1RdYQ#U}vtSMH5rht%VxT`ei3 zP5YakQ;qfbjY+x!fb&M65nEzw0UypV6}Z-?nWTC8zrWxR9Letc)M1V-QAPDZl$cwx zd7^*1R8o{T3J|Suj#>To3mvbvc(HE#7QGK?V#J>s#MTD;RGqz&PFcsrm-^*6X~=9% zZ8`1?b^2F;svcV0Ut#OZe+i{h;;!`je)xN--_EA6cIP6pdkgo^^hBE9NNOMq_II_rp&#H{?M7DFhm%nd1+R$c4nCQ@Q%; zBtNDLiy@AD-dssx#N}EyJxQ+BYMZ3C+d_GHnl;UZ{r`VwjGhkNRfHy@lS-aY4lm)v zrag=Q_fKi2_FnxOd80f*NpYylsvTZK(>nE&@#dv_GrkD|g5&_f1^oJ0v9zv;IQOc~Qf0I!dOm*m?E&OIA)Q>EcH2HVVtwjrlX1&TH0qg_$LV z<-0~-vB;7pY+9^+W}F8l8QBMyieu=l)BEI<0h<8fG_S%sXYRa%=A<_q?rn{pt+08d zPm-#`AS*JU^)TrupN1m#(pOVLiD@>O+fQ<50sj>nf+M>`Tvi1UqpXG zIn_#m86?fZ;nY$h=p6bKQ78g|N*JyFOVD>v%@F-r@2`WB2oG7e-h^e<&r^^z=n6X5eg}!(PQ~w+Qx#=Tu50&}hW>y6_>{f2%+dpb76d-^N_&laIBKcR5DyqLiF>d^4p{y9L|HU2cW z(Hg7dJ&Ax_=hfX&a;@`*wx7RWGD82S=G+M|xK)-Dc^+65E_BreBo{b2^>dutS*xc4 zam%ChGJa>Yi4eJ5+*vC?&Koh>;ULgN{12wypy2{bePrnYocIoNXs^c-UmE-anAE0= zGOg7!fFkZ!FGf*+8nb_NItvB%#F?a-W1FoYc~^MtZYS2GP#<|F9#YW=0iyal?wO?t zAN(u)p*+Mif8lY=-J|d#nJYFQ{SW9PKaP;BIB8ccoA16DzvORfFvc*n{!@W3Q?-f! z9NE+O*i^fV7tnE^DBkcf1^((s^TdJ*U=q>#$C+u!b)eAfk8L4wOWIQZJf8mV+eK1a!hajWOIZo4BKfWRNK@}3~+t$m#z zBS6*?UnH*b=cpLato{ECL16atgALgRZ`NE4w19^Hej z4E$0( zk8Ym-u9mEewz0(j?1TV_ok!nEHGmO*gtuUtn|5f|VeX-M-{ zTc^9Bmh^s;_p`YoS@4Db@(BZx4vh2_2M|UJM784h=-;O@S*<=TruTdm&D!`VayG-rGOj78du_qRfbF2mVn(tBA*pacjC8;2~t-yVFXTQD`sZ<8YIorjW~Dly;NEl3iU_wok&^>CM*O>*3 z)bsXaAAI=hoTfMgS5x78;M*_SY1opN?v%Yj3iQAzBhGiGY#a=tu) z5GF7o>~vbeT#>Lok|(x}f@~8!=`5x=mV__~D1ek=J~wsA=s~Y;HieJ*{cep_P(p+(Ch{+<$Q~ zA~dSO5oE+&OXZ?skHa=v)?YISB=s5Tlde{~$nfOjV%FdL@oU0(=2aKjj{`Y@ja_dB zD#NWxk1sESo9Uk9peY_*!HQf3OwbS4=EdI_-Pn3& zN>c;K^xCr1MxYxY9gWp&Bwvwt&&M%xNpDCO7t_+RCo-tJYWvW^YIY{1LnD_$`$Bn$ zT(EdIHh=oT&3b-`SQd(e`{PfD#jDl2pfItSp}lXR&XQ-xNu6mkvu)T<7q``NPevgHPj zfDdwX-A~6Dsd%uWSU5U)@26doV^wl9`*|l(_UZOAfvwXmEzjmfnoCo+_9hxe_c8Au zi2nM!APdO1z2qM3UUB(@Y7(=EoUuU^u=`l**6+6Ud)B;H{>ES+G%)8d>XEQ+TLScp zz?znNIMUf}F4Dh9SMyx8}z;W~0)9Z12DtErK(3f)e95bs00IH{Zu~8c+Czs#SKo zZCWwMAFca*PmUN+dbR0>AV#>_U_I%naZ(M>=D9dvvg+p++>?fvew1FT0%MGu;(TuS z8OSAkw~w;Ki5i4`6{m~?R=rgKL(_HPA7ISIl&o_fr7Buu^ot>_xOUl|OtERhW@p~@ ze9xs_Uo$Cf*UB_Ksq;M~lR@LsjUv*tA=L?tC^fzqT0;rnN$MHnAGC)7Y9@Qem3cKx zEi1}HlPTPcqVn#4duE6WBO#~+rJ7w=U6Gp#0K7cIy|7kQm1H&4NW$!R`CPreR!YpR|Gx@1hjtEkHY1NfFPg2+M%Yw0EBuQb^;}f6G zW#EB8_Q#$HB&cCE<=yad!lSEt1PDf_VmB%w_^^&!Q)oiBZXE*49PWb$wKsW_Tb1c+ zD%^KT-Z~iMj2v8xvmuO%yH}?MG0W>c-0sef3+%{shu69%f8zQ=y>ahS=t{=p)ya-oI%n`sFd@4<4< zM{oieZ;ygIu>eq*93&Xm7zQ(Hg1Z!Q$l|MhUsL*tcuzG@I5)HHQ)@W!qipvFQpfb; z{JEnJ>7X^=dpU-!8iq#4}v7uSc{tjfxy@7DM8ucqLu z*Ue%GbF29>G2R-!$LeH|#d+T&8`JTt) z$ISp}*7t4?vYcpp7XW`Wd%#WZO;tpVKk-j>^+TzU2bGej-~)yvyyk3OYs*k~iG_<& zhPc8!d{RR#ahH%)paL-lPY6cyT-qIf#r;B}XUmx4zEA~RNv>xR+P{Rq`))cATA_tG zXv03WB)QmC#_z{~`)JNxiO&p((K-2<<@H+HanK$?ulSniz}X%T-$KjQ!Oc) z?_;*8VF{(hxbHVOmAGm7so|@PCg*nezye?TdrhpmnJvnJd zyFL045}~!>N4@+<;ne+>`bwp^y4M{iSo|+r;kkDjKMkUGy$>UBVwU$^#)MP&VSuND zOh+btBy?%O!IPIfW8C7WuJThM&wWS|eEOo9 zTjG~uI594*Hz!m0bOCE-CV%+YvvpJ0-HqXaBE8!}%zLG*UL$*ew_TaKs@wWW*wojN zh$NOyg;u-oU&fRtoSHgtQu5Z=mG_S#j~;tg`O1X+m^uvMo_RlHEl}m+=YZmxH4(@) zGp5n+U-PeX8AdpTxA!bXDT2DMf&0yudR^alURtmQ03{Wvhj!* z0za{su13qmYMeaAAP=h$+ebgr^idt?!7`Mi8$0IpFy}Y!Wxz-9(I(b0Q4~y;d>PU@ z=f@_}!5jvx|1H=Nq>aP%c)f0xuSA3cNV1zUC0GibIBu@Xxlyk~Vdg&hODbfRj=!ct zjfU3Qp(MHY?%PA{7Xs=Qw*+KN#F54K3Y^a{KgS#g-Djo6&DuHRHhRCnNvz68J;v6` zcW5A7-6ZXFizjH$;V;iPraBi)iEO`M30uF+1EZL{I8}I(R4E%|l>5M+krpgw8Jf7wX!K2?hh}6B_vzULG{+dqTssvJl zbJgMbsQFmpW=Lnc(@qhiy)O?*(UG?ZZV({5>wp_~TY7^<(=T*J5tIkQF+)4>Rr=N# zZ{2@Y4{#spBgLCK=ho0J*laYtXiq;>K595Sru^J`;g=PoYQUb0yRkTZy)b}s#baLv zE=~$_#7`w?Z~Nk=cJ6yZ=GdKI?H>$Hf!`}9?h&GuvZpr&M!z?ypw1K-WHOx$!F?^u z!Aq}Z4b+hYWs}Dzpb)$d6@`*fC$E_)eO$_uq8Vu?a~B2IljX`~Bcwx4_rzw^H^Y}& z_V5gghVB2y*4J^u0OvNlY%WC{6CkV6fVzhE8xPe7=39f0xbqTPv^0sRw{QCYeDAnq z6H^{4&0$IpP}<+Nn$2Qp+GREQkY`ZAWyE_wEH#BW36K3hu}+`9-O`i@1i<6y=MsFSrhP8Y`?}_js znY!YVOPn05XR5qg0+6m3J*gz&213tpNthj@+y)}cR3X8?#;p%UQ(?}~(jxMF@(NNk z>@t{ZqwC9JHd(jvhSP)@xY|@vWwV~F-J9?5s#+BKmOx?|RGvs;2l2&RiGZTYSz^`i za4vT%YqDXW>ZyK8Lfb9ZLPbVTPX2K*h=FZhkyENH7%$8x^X60pIJhY5q8?l43Iln$ z+zLsDN52@q%iAZ8#pX7qn{f;AXTJk1Y-5{`N|TQw&&3F2ykx5*-hSLpp~nIcP}I0f zvC0}5jpI4IiQ=Y3tPU9UMvjWMZT+!zJBnRX$-yH1s-d6Mv{Y4Mc{DOS_PA+v9HuIt zd;77r1T(SO4lD6E#Zh0H7`ezV^ZNSM+^?%8FF9Fr;%_cXinyF=z$-+C)JXaCxd9#3 z%U^GOTi+(}I=r$D!qKy{Asee2B^GNT7dz+CUtAL%bNM#Q8Wq9x)xRPGvTlz48GRD^8Q~{YpUmxbq55DjtNb;5)2#jPaGwmpIS+ zjXU(v6uf5ZWW{H2m)zV|XIkR?6_9BXQ)_L#;1!|S?tUgz{F5ed;{D~~Ty8aH?R8ND zo`B8B#LvIm6%HF$cO6t6#`i*gqOTaiuW~Z2g0-mbQ}OG=i(5U@imWWJNawYm5?%b7 zx7mEYXB8f*=meni%Z8f!42z5VQ1Kr`7n$fxC)}_`KE6^-dGnC%!)e|R!z8ZDUObM8 zv8;N4t06@JVGc^r)9N1C%@m$;V7YK_0i9OF!VQ*DlV6h;ZoG$6^iTV_J%pkFX^-4D z%xD{|T7=8|`ZjY6?BSHjRr*7NM@M>ty-D0jMai(h0}P6Jk)p`Uh+m+L%{!y|5Uvbe zcHa!2+l#`gRAp_-LA0K|%r>)*-P8R{zjN;6S#jL}LdC>qH=MiDt5NCZgSVvpxFw5A zdIuSAuDs0$A_$GZ;9&K1omazALk4mk)bN_P!)xYn{7-pqV~(M^cCt@n{4tRZ4$D z_sTrr)rgO)tS)kn00rd0xnhXBKhqqKf+iO79YrxCI%}t*ifMUW9tB{cONI~C4?{~# zn`vCuINgRO+@HQQW^{nT z4a_V~1k_TZK=I{46b)d^Y8!7v@=IrPBx$g4hL{$65f-8eIge{zCzITH5wC*&55i4S z|1_>RtUj{;EU63Z`4AQx>`p~YbO^R~EFZ$00k~yXU zqlE=l!ig+FR_`jGsR~yvJC0TIW>9)G{g{^d929ffsdCf*KY1lsVdGtS)g+6f` z{!k^3&Q++$8^qO&Rhc8QXL^%<+Mwy`Axa3&%3CUHe2njV$*uG-x3C^;b{3;wx7Zb85Al@}RLtT>;bnUP_ zK1B|@4PL5SRS7|V_cZ?3SYSTrBd=$Jd3J7F{$lD~|1qCHF7+E8sY{<%K?LDwpL|T;KS>E!n1M_g7Si;hZf4x;9+6hWZ>)nKG9#2kZg6~gFb?y}B%AOu+ zx+v-jxawN9LZ_RYODV4nwVR3~y?-ANv&-0ePd=!x+OW>%DlhVtN|}aQGW-84s>|!i zEn|@>?keGa?P@6DZ92oRTDN|E4b8c$yNzz$#Afq*dML9r;|}`8HLT=z93>8pECPG_ zY)yA)iO+tdkY(HSt}9aDf+HHcy3lw$+k$GRh%^3ps1N~h?7nO?Jn56;f@Pxiv)kLO6Ttt`u|%LSQ> zPBO0kqGT1+%Jt?PAFopz7VrU`?@itmWmc!@FB$^YR%}B+ODUDYa^6b7N0=mTPrFm%IZkYdkzyqUV1q8Lsq+88NLR?9Z6@)bmKAJ8+2xOpg&v%JRGE;+#S75XV^nOmAHuOy|I~&xGlA2 z5rB~Qngox6{0Ow$V5t?x#SMbgFcYWRB~snPW+mf(&%KBtPDpsY^PG)TORJbQ zKMf}|G}H}cg>)(*l!zZP$*u}1ulN6bs7l$N%W!dcQvXo*#+qkNeg#yA7l?upu0tPq z?=hW1yx^2PFP{uD;L0|B+8Cjx{i&F~%$8*Xv#-^b#0H&U>7#h(HZzqzqE!dR^0zjv zjsR7k+3K949rTex?N6_jU1Md*_fTd4tFRH8JpJ?%9O%LVM9*8VU2!#^^sjXOu0b8z zz}(#g=^m>LecnNr7&9@Gz=(Rx2FQQTliYU74MBxP1Cx;)G-BV?B(p^~RXDwN@lvxj zY~RJOzk@3=r-{1O_g0Pla5-dZ<&2fbWM@R3JeeQpMT7?%4c5#FHI{g|7h_{02AJ>i zx1?y3T^!QtTVgxF-Larbve&rrli&F2XDut~`24ZMCO`6vh@RXb{wc4J+H!Z*y_i z@hgukiP9JE4k8?MV0+WY8QnyM+-aC;ChSyzdh+LSf*u)IIFdgGS{kkz=zy~h;1E<9 z9ZgJEb%^ouMn9eW)2E=NIHxGRr`!F6-PP&5rcDyBkKBaF26Nu*y&TnlvoU>r_Lk=A zEqzGYKlCK21U9kmkbD*P|LuAC*T!nrq#R8ceJV=*^S1;e`OoN+k;08c&+xi)kJiYq zLK2_fW#>uNyTa1WP$(Eb-ZB_`<#SyTO;{c389{7%HB|j4f{#94BL~nx@f{7daxXN| zoN6uqMmJm>{<@9qjH^q)zZ;&BrG6cN6dG6ZD91lcqK%CXG$@DWC8%Smv=~{s?# z+#L#J)OTt0rGPUWM~9;4Q)A#lHG5st+4C zM$NI)*(ImFDh+(o7W-J#vV@s%AWChTx@0xPbcjzg(?!7n5^fF^2i zTr44{r6bNNQ1{5i`qw6s$`8rNN{IDymP^JmJ#01IyBi78V??=v) zDOE{hOb1%SaHG$zo}rfM!u`m?RHMQr4)_NnGS<{ieBfwtS@ket(q6AXFryJs31Icx zjjDIQiiFP>)~e2+Te%-+|9H3|A4%qipVfR$l-L@8RU*E0x*!C-%?!Cz1bdva)N4X( zZ}14a-C0t1ur=sSZ;q?zraAreCyE5IKZNM((&gcL)Nuq%c?eq_a~oNje{x@u8E|L# z4k;&Z9aw-zT0pO;ny@F?qlbL_D;I!m-5+;}oD4zYTv(}!fxYjgo9yAI2ioL`c8`wcPRs1#w!_&2 zez4hgS^pH0-x~^SD(4KPcKv@LRp%e7tQqe5>05MC9o#=sQOA7iDD0oPAHXf-_hvXi zHKtGKc2kLaNVk5xf^rbT_~CvTPE|pPG1Wo98VN3Jn2cbg5mod-FSCSI$D@M4cf^G% zaAkL&S|`}j8Qz9}W+blY@#WgHd><-$C^-f}YU9wMEdluS+1VA`^@cwG=Lp9l0vuYp zMoB}kR=%ltA9MJhdvR0NR-E7oOE*3Tbo3-X@agX36;(0{#coOBCK&!UiXZ`g&x}&! z8(r7Y#vkmdx@8*peqY*REy!2+eFAnQx26Yp&xnbmtplo3O#c+u*Ycf<%vC$_@k9tO z9`m8)bbd6;xy6Ocb{?TxZS4eS$C);9&SWIbP3ZU@E*Oa zFe7e~O{*(5FmneC2Eu3(ir=`;`M#$Bx(M?ryDKVA_mOWokSWH;_9@)gY1A_0A5R@iuG9v_KYL^11HB7| zwZeBUpiU+~J|J9x<@61Ni8?tzIia@-a$Y*!aUXA%Sb)r9-bw2PJnetE+#jFD-)1#t ziDW-gL~16_FM!e%(0Xf;H|`#JHMhLd~7M<8`p)ImjE? z`)cx}0uKoi`S?0duS0fhB)SQ6?~?JZ4mpvsO_*wb14Ajw9}~J%u_*u>M{mqh^+*df zhkcQzj+Kw^TGQQZjW*QdbW>9A()R)LBw#8(vBdfLcWzT?iF$6Y3;lMyHb5~9O-TyZ z|AoE{({R|j*P)BX^Z;x{&93Q82sf9R9#i-Px6CM+OWuGf#gF^+zRNo# zf{EIE!BZTuw34CUQ&IMc+8${{3ZetQ^jg9^{o8on_;Q48Iw|0_w~h4AAHuHq^9)mN z{07>+K(`0BDg|%IpvOYi0JRF^JEu3j&mzLf*@kj3;D~wO(ypA~tfmZ=P8uQ`)YgmIqG!X-eu<2 z;7ma23~+S4@S;^b_L!$bYZRhN%8p@a!|iwQG9!W^1Df+PLIt|f&Dmu;3pCgEWM;E( zf%Vw;pH;O$Y;Wr_8jzB8N_Rf-U-#FkOoTYXKwVSM#@u|?yuFj19gMnwgM2fXeZT8C zrdKf8Lb0r9Q#byt&Rt z+bhp~$0CQur2Ur}1qkS%1$Pka*7<6YSh36JV29}cU1GJfj;t8I_F4=E19qncGo!^{ zOdN*naZA9r4f5;|PC(F|v5#9-?A{J!j>+TeYT8i^GD=Iy zk8%N#)oII=-kD<1C%yq`UUykD;}K5U4>w}(<9ar*k6=_9+6DNTK5?w2Iaq7)`NSL< zi0>Q)zpib2mHF^zm~QLf!DcjEU#hRMai~l{O9W=q);a$Aw=4 zt5BfoFD78YKEGc#|GgpD|H+RJ*@}W1^6ep2=L!Z1^AR&4U3l6*J@}t_7!4q-kt5of zYe7V*`r%Qm>H_{-%uf0uKI9ZP@>h&ZAZ1rTMT9zzN~+Zq)1b85#HHD)njhfeMJ_zB zydixxrbY^T>@&oACxc?n&j$VqCojsv?={9p;`ztW+t=QXW!8_iBw~p9CD0h;WL~)k z31@h>9}F)?00677oYW_E$i(@vwEgyjcdK#5GIEU>`jmWGL@{zr{>zD3)7d1mgO{>y z%ndrRw3rO`T~^J&uRzZI4zS7_F8*og7&!`@=F)$Uwh|p&J1Y`)FVWa0;gWsKG|*jj z@`y1Y4m+|$pO;b)Qm3CpoyKphv#u^WlUYHhj=bQWapUm^c?Op1Cggw28#l<;$m zY#Qpk>=-UC{w?^*e&u;T#7gbIntq15agaLfYK-~e%TLm$NgRo-qD92sQ5vzVe~565 z{0ntqve&Blpne8ViRa8AtH?*ICH5N(ZitmUwfvv5I8{!#b_y>r^Iv4XgVev?gCr7@ znjaPDckBLYw1v5Sh!cu}s^K05lx)6YawiN&_Edl?iFTF(V=+72by$B8f^3d)GiU$6 z(&UdvbChl@RKj1p(X4OUZ^TL1;B7(9t9GH?|kW;y-Nh6qGmjeDg~-tX<3sGhpN>jmW;0*5{16M-m|WC%d1{Zpp{c!5}1 zcV5=f$p5FNua0Z0dA?3?cP&MVI|T}~xD<*McehfYSaA)cP^7rKOL2F1m*BzOp~aoR zFMYo6JAdELW_Iu7?#}F)bG|ThXa*;KhKnJ?&jX~WCN&uqbnlSsKqvi$1D;^P$TUt2 z-1Ba=%+^n4sqiaibpoJsK+ePy-w}D!Ksm#ku)P9CV$!lIi{E<096^Xq#@`zQxd~K! zhU05Sd}eNEI)d@uR?&;nu5R)RBM=$#RcB4V(jV(wDY1WzZY7&l(B7vAPQ_{Tqut2T z2e?P*J+xQ#)PGiAdnhLI!+j>vd_rzomIR5fhPBk;k0J`To$tvObJDD0m}4iSlx;J@ z!vO2$$%F`%+&9PA?iBWs#vvt|w7nKBOc4V)9Caj{MC~F(>F@y%0>`@T)oD z8qBGCA1IdrSR6OtIzRz_TU}t${oZw4%#)Plkvc25mU1(Gr!nk9PVDEd4tbVb;gB3F zH*u45M9Pl4Ztp2b0f*lg*z^T-6N&xj^AcUQjs0Y7^A76iYO+Esa_fF7Lv(VkG>?0N zo+MoRhPpmyavhuQl~w9jEvEXi$*uPSQS=tBX<{}3co$m)LNLeEBxH@+`j#w&cMF$0A0GDl-uBd4@@rlgV%i~Vqto2hk%wNcetJC@0 z(GqpPpH!)8P@2Ibb*U<3o$t)Li#q4Hm8=k62EAT+f1COqWm303sq8;*=J>9Tu$&6;b&wQ`-^tOX*u!sYfOTE?K_&KiAK6%&qU385qK+9)=l=9j^boy zr@RoZjC0|yFbz-^wS+L)st}}w?IU7ptGl1JNW)o$yWauhB4TK1W}9M4M5jAl^5xoV z1R1QFMz;0Wz0}3|0If6CK>|N@L4=m~lLA_-0IR)i!)DhXU_nSmib7K$REm!CXX0_f ze&&=f8GkW$iKy<)bMPxm&>&YqGs^0{z?YHz4GINFm~ZmX4h}Q@AyBUJ3u3w{x9>k$ z6&^zJ!sKRF%`Vc(KRel!HJI7>n{0yzaPG2qF@@WHbKOrSdbh$?g#9vN^q%+x(>S%|JobS+*oc#%%4mT;;fY$!3~YXzCkwVbEJv zDr6mevpxN*k>%?`pN$rq>fKhA3QQ0%F#jV8t!*>40VuDqnjjl}8G0Y{Eyhi#@Gq@Y zHM`7r*Ix*lq#JG4%{I>JxX-Ft%)d?@N=#-S?@01p-DmK;1BDxF4ICy-b025~UC>y= zJNFR=+gZjPl5SwejAb4rQecti4*jn> zGEL=eKYEhJ-L6@l4rMCZyXfF-#8U~}rEe=z7oHpgj)p&3!FtqL!ivdgRz+2|zdW!e zmr4r*uonEUQt*6aLs5ye**#zXqGZcRfSzJgwn5ChhPsVC(7<+lesE4rP|< zm9&BYEt*@^opo4~7ofr5qe{eAO<&LP@d+Cf-P18*BV$R*n_p>cE<2&b1^Nl->)w%@ zKensKVb1aU*l!ho;~TZEgp-VE?XHGhjlb>Qq(#jkJ#7{(`+?irx#;{m7^57CbdlC}r+r)$p~L8NLgm6kp7#7RM%%+@`)hSwMP7hl^2UqQouUo6N_lw|E(|0L zNEjxK#|G~Z9=t8%Go;>LXXa;!C`gOr@T?^Q%B?YrHJM0rG5lu60o$)*u+qICSgC_< znc)&t)g!69E#Evch%?qy7Q#-oi6E*`N=B_j1QgoTn;gYVC6#iUX@zPy6O6~4=C+-j zomn>r4g;m|yy0f3;715_HBoopl0peFbTQ?f%py)%S;8A$DN8U(H@hd%XEpLdX8aZt zqEUE0)j5psv8=q&!b!!7AXs)?7ySxY^WlACV-pdzE$@8`f@sxT&XZ260Uv!D{tvMv z3Y7eEo+|b(uG|cChKT@rG5!x<+$D>UiVi&=p+6T~UfdD|QodRFxv7h+l8G-b8GC$v zk2~c2yzNMDxiwdPfcB0g`fjNT`2ta`g<07IDt7kzDdBVb^T;RB_iHRpSEpiP7@8#A z-^6?HU@{D^Cd0A?Hqi*njyrHg3OvF5RF1|D-x1zbZwg8T|I$ga=WRs4JqI66Z zT)HI{S-h~_hU(o|++DvzwSa@rGI}5t$2Mq*is$=cqwWPWA1KbCfsx<`S3@1cD}){2 zjWy^rvbY!1wiDS4RnHKSm=q%(VEZ<-vw~5uXqs51h5paX^1p2_i$j>lS)2iaPh;}S!L{2`2-3A4!AF%QI4fO##>>KewmTn_ zTqBKKf%isGQG3Z4PtOGN`Z-*($5&kH8#_#I1$F4d3nwYaQCuk1DAlG5+8gI>prHlC zIFB;$KdCMtO|R4I#!%U}s0+He^YX>c+YCKyL3xpi>KRP*mlMswcG;4>$oCklLOX*+ zh^F1iRwG`W78y6Y};yPRTt!0QL`mcQ<07i z-<%&Z1?h@)1>${}ylM}< zIPd&vdf__8!E;1(W)VN5Y+wwhq1CVEJMtPZ;9!ZRJvKbZpS3zfO_1B+;{wHloWOh1Fp)DuK4eEU`j$7?uc4e`u8onO8?PnFCO4hNxMc*3uM6VJWn_rL2 zfO|7#zE#zG9UHZYoXr~wF@tLk?Du#!-*0>QQ=^u32|? z+J2SuWkKx%%@BK+$hZ9!OUwvC+0Z@{r)mq(t2opv$R6l5%U_1Vigd8|7YrDtm^{Q- ztB<(5w8w7x-UTOOH+Y1ZUvq*PcZ{Kmw-nh%_Lr@pcaIJ2{JZ>e12#)tYY7HfjJSV3 z=FlbzoG7V7L4|^{YofVP;=@ea9OQlC+eRC28=)-{IUC zy0EoQ?6?~{MWSLW?qu43+FlJxoE?m|KoWmaERNUtuqTjUnzhBHghkc^KhSFhp}Fv3 zx0}#rmqtEoGT07BcDCI3+rQ5yd3^0hly0S)C>~t=j&~Oe>;AJaBJ~Ko(;tuV;>~Xq zPJtpxynE|+dp6_y1u%>UM@rcbdW0Jo>bX_PY4YrSU+rE85#~+`e!UPiMaWj-=S4vm zs6sdtX>3{`(4V*`g_2h9zVC7F_vFSQ45>KII<7KHN%VgFu!=5TA$7w))dY1kv^$&m{w<9;hxHp<6HebCWhnsGal)fn<6wrS7p8?===Pk{2KMmx zfAwf~Lk~1639@2ZG-Jx!ylF!HNNLVlJ~zM@eG?G#PUQgPhU!84eql-wlqk$ePq{>!^T(MOOmlKIl2~wwUKFu zYjEihZDHW|+o=9xQxaw)Ni^`xVNc{ZccyK1CO(9qI$eh__2gncgODE{sSi#$nw&He z1z?Z<1`-cm3}>gMlYTEkpibBdk)D`wBqmMPr}m$fvd%&m7qc~uC#g%t6Hdv)PJXwr zr_Q0rg^W(QQ>fK5MQr$jO9%`(hd0~To79as3a~`sY8P`3$Ud#5bLzXqbLkNV#NmL06Q^ZRw8tJVrburup{ksMCS|{o7T@xSu6w>$_mu&lVOA z-q7WXHI17-HN~vL7m&k@>mSR9TST$D57V75(OjRaUshpNiq{53m1nCg+!Q?mG<`+t zcVlb*04w`y5ck72m}=Y?=tMx{2}s2tO(}pxb4-{Z*;HjxW8sNO;e;1`|6VH39NM#u z+hT;wI2v~kB&!j%+<^Q9h(%SV=4#~vGFA`sVr+qm?;ANK1#neLUE{*0=zFFO z5Dus8Q=*JN3*}>PfI6-Edv^*GV2b8$=67=R+R}#9`VV~Ys;gLi61;wrA3ctHWsKM| zeempwUb&tx&J8H3N*0xBxa?xR@{@W)DSlQL=|fTuPapx{xgp{osbpE?gSW{{Ddx zWfl47K#s>50zaGoW-Tq?0-KBxMh4}(NV&RLbXKsOt1SGfT;S4?q9c z5XavNWX3!U6>cJB?}O-$@>Il^lZ;s9g^_xHvs1H(4xrxA6~2uXspRaHR>6hm>6qh^ zjY=7L6GWys2^sfnJI|%s=LuFd#e6S>=q&Zkd=}wv2`3MNOZi%|fPY%OKxizTSgrW5 zunR<*MQY>@cUhv^Q*u!{1d|OSuIi7I4S<{SYA0tK7yg4($OlRB^^#ui=hl2#gRte}f4g_3gZLYUJJ z4f&_nuLKXq*K_*1(mxLp?d`LS-$LeRmp;V0)7(OPLO34R&n^{xY^IxvVFT9QKl8v% z3lZfmnP4UMtCBa@2>BVWh4hP&Wrr)v0)jtp^7?QG5gGQjOuz-6UA{hK@aO)C={M%$ z!A4Xoj-|*m=iXm2Gr{>OwcI!iwhc#@x?w^%eSn3r)uY4!p=rFyYh>qwyy^5O$avni9> z@H{(F*BOH++L)S^_1&wg0@A7z3zk{nDY9HaXKre66HEolLI)OzPej{9b*8C$ zlMWuVFM9aPpsoElF#;Vemfq6ZQit&_WQ5=|x9J6@Kbov|hQ*+b$Zs_oxU2^bpYC|z z=UV9vDNU5U&36Lvd>fd|B{Ds_7MR(~6B2wois1RsLgZdq@$I9ssly=Pk)YMQdw!tf z<<~ebG{h=|mT{rD6$H$b%ikYRj_*+F996M>Nv~gD@y$VTzl1(fH=m4yFh|byt=V=L zeTbbz&ac}QDk?2FpWh!cFT7^F$D9YZpf;TloWbgrYkojik?KA?J$>JH0RMIK5)@xU zVQx^Iw%etp*(Iq9N;=!L4u^-?4gi4$hGTIBrOUJtQs_kCEMW}7jc*aQ4nY^+K$gm+ zDA#1|6kj#C-9%12_F~S9Bd9>JqygB*z1<0!>|UntC3V6u8ReFjJ^5`SxzWzQAU8m= zOO;hhCF3s6d+~SnfSdcE(QT9Q{B1T4w9uHi0`c3|W4P#aC^6~x^E%>+o_jTa6H6yW z)XO|8S4loX)q`$t-zm9YubvrUzQlKS8r5POs8e1K-9B#w2ekX3!5%st`vkJhhL@*I zFnSl@Z1H^fY7eD2A|(kmU3rLM;^|_p7{Y-GaunXSs(6Q8*8PZbRjzg{WkMl%C)i4C z1>BjHJJb~&H%5JVmL(y7x)Yn!`_w^-ZAn2?L~u~FzO@;N-c>Ka!qf=WXdg$GJqnDJ ziE>g5k~uT*yy7PX+ffCjOJO~m*|)37=%Pmf8LazlR1haGhlZwyP$wB$9~FnIGC3F~ z90VEw?_g6CzaQMdC<%IMsy>KCwUDu6N!n~JmN-AW698X^4Q_sIPCxcvM!V)mRH!U- z)GnVr9Rn7>kElFZ#kok4r9?j@CnxyTlc@ab)H9}HGrRGu!q~bE%|h!8TeplCb?H^e zEc)cY)oJS)^x(Ljr(M)j?4l##K4TWyVZ(Ad`SC*s8>QP!Vw_d!7TpT%63?A`MYRgf zsDJ^0GAn&+(*Fr`Y!{~;bJ0?fX30l#eoOh#TNBZe1sLDDc`6b^vhofL>yY8$rR`of z;zVX<*VbT@MrQ6;btl!^e2k{hlU!J5_DXE->zb(6Xg5SfAfg8MB@OYgF4YIRDG1r2KDp&~R zZak({&ynzu-MGG0`x9@hsw>l3d`40dzFwjsMyEsphBP$r|Y)XbE`97?M#AUt~+6mkde_$;;s`Smr}&!LZuuS6<)Qdi5uK2(QyM~@!vi)dHDhHdul8@8+DG`z z9{(&qi)whoPLcIv^Ti34m-<$-g?%SNmo5s_T)q48GZLeW>F7&~dd=fRM2P|GC0$)} zH}tkn{`$l}r`G+mqfjsI2)=2n0~~5fM)qvVEOCz-8aA=j_t7+O8s7(Sm`H8|?-}Rj ziqndYbb8ZH`y!sHBeCZ@F)U+?4!NbKxkYg)J1HNJ4Q1r8e|rP0WBHrj2<$v9F=T4T z76NcA`RG`7CElgGJ}MnwC+ozo%o%lJOlth$#|0USE8Xa`UrPZM^{NgN*HFa#+ALyx z-)CE=H9+Qswma8rk0X5rvYRt*1ZK9OhQdcflD!UKtx7?@MKJNh9_s!eg#us+221cA zXa+|Xu0+PXs0TnyR~za z@;>(-=f8!Dz_Ao>071U;;OtgXSXr7x+hv=_Of|*r{1?XkjhEQH#9E!H0N(V#k7XuVk`y6bH4y}|20I5iTUbDy zNL61%G4UEI5&uUWBk@+*X}SlDz}S7OAT#u+DlFAKDVpb7k$CN$b+)O=40v+?tx5W~ z!0$}BEV0PK5gdy23fjql#F_&b?##C1wzuCN^MZ}Ab^Bhf-r@luFqYv*e~sqtpiz81 z?F3e*ny0zil<|s@>+X>SMr#(hlF3^iqMkE*I=`Xbvp49v^e=xwGX#_*ewHS8JBgjP zh^yhwas1L9(Ky1VOB(P3p@Y{d*|8@c^pv7>r2Ju$?t7qb@E}IQ(WcJowt@%-$&_Eg zm{Me`(;f#f+WKjHh?5WTpGon9b-B`Np9`6{juWjnias-eYC&k|#H5x0Yt3EXLO$(j$zorM8=MC zXFn$mQQFr}E?~VY5h71f#TszFDP?V_2JAA}JF{=5^z{rqveOXX!`aib3I-LcH!ztA z{Qrj0e^w!(VhIKi80T%O?(YYuT{k?&^fi=56+gcOy9X0RZBuAA=awo=aY<^FoF%EX zZrFFaCccuCfXzTZP2&URmE!(4lDXcC1BYKRNj%he4kxsTjS}szzKwglg#BG^g#7L` zqs846@k`hBOHS}9TlK;s3ae)C=nrX)5`%RHV<}8?Wsa9uOA^tsUBW=D|17KT!U0n` zfegH3LiF0(WpR7@G3$LazF3EE%Z%kw(eoqSdxOsD(o$CCE389B9iar)-1vAg4@(Y# zJOC?f0ZPZag9H~3`QICx?|&+2O!UJp%I+*`C#lxI@X)KDzdn#%@*3=V*XH;@;tbR~9D3lg`w z{y5v-rQw(#g}`u*|7K+rj68ihHo<5s;()WVtrUKxR~S&t-^f?4KEKR!v!a^Yhk14Npzo>xCKS z9B4k+eGYiux+8#Z&KR!I5o}i^d^Gz1mn_BMo(;BvrpG)uz?5x<|9AT~`T7ia+E-b4 zs%`<>z7ec`?sh6!fs|usiiXM)>qv{u(KR24bALXJn?3CTg`m=X?8u;u9cg314j5#!b;?5}*^e30(1>~f8RZevqLQs#IhbON>L zk%}}%%%t^Wi782fQbJQ@F`{E68oqtv24RsvD8#2~?*8t?eEL8Y3ZJ=6Sxj>`2R6|V6i zzcG%+?%cQh)E~pFnnNIS-}NK0v1#iBj$vF*WC^^3jhp3YfCA2!|Gn(0QDa$^ zo5gA@n`?8(Kklz!!UpmhxGCmMpwl+_>+I}~^X3ZOx=Xb@A&riiDmi`E7;~{c2KHt{Qvteet>NGEsq-OB3i1x7gyuk z!83HS;DBTWig+jZeDc>iK3x-jRH`fyP5N|j8+70CT;fotG@vbE&#D=cu{qGb-~TnF zTON`>!DL{{`B7Xbk$&jkr!ack3|1WFi6?iJy`WN@w(#gO%%ps^ZQsc1`=TjoUim3T zCyM`_@3FVyb;OY~D1;$?;+Iy*=~m^CGTnTshUsnu2UYmX+=btt3{RIxcalK||B?VI z!8aUv-%3LnzTQp(HLvIhB1<&E)(l5#gm*Z>+a`{Usz);h!)+ZH%?}5Wdg}?ETnDz8b5r)?{Ez{Ql*_kr%GQ&jlSngLEb<0L zYNwi-TT9IcyBlCk(o6gs^#;SQAoBdk7n?%X*wT~8i*^0$1ldyXF%49@BF=T5HY!CM z)de9q8fPFyDC6XZc#e{8QnQ^)8(-S5>9du0BWQR?5_t6weUQLTc_;?2tze_Ki!ij^ zd2!&EkkX?6#r7y{)Kl?Z?Y9+E2C-@DRq%Z7Vk z((!AkNJW5(@t=!#wP`OS-be_VECjyVJz%DdD>BQZdI^68Qg+T zCc**Azs|VIT4Zxe^kN$oSMbr8->HQBd%CR0SfnesvHtQeztPTwYq+r|^pWtTcOLC5 z7tM%rc$wa#lm4=IBMX&jGQ_SHdR4QvAgd>5N03j|Y*by$8OW zeJ}A_l}q17la|jZ1$<^jvOGpn*U#ZM#8Fm#Z`b)$4Br*8vglSIdh46%281S0!fa{& zLWRFuM2vw0jqLu-L|f_MhUmo}YYHpGr(I;-Y1B3N7!S&zb}-oHav=Hpuy3sZFzwYa zI88|-$21UR=O9uvmi>3+_Ar&R{&C{fEFUH=pSxhwsPBI42hB_;zSmv5 zeGzK_oYjj*-AnZ(TpJdj;RkZgOz({GF1jT_K2jUK-LUM*PWZ$>W{~*Q|9-SoYEp)4 zK5-d*jSH_#|Dbah??h{!w;UTdA<+4!VS4l9nn!_UO|hP3s!He!dhLb;v2~g^Lf<2% zZ{bspX`hDk*&Fh%8fhUzeB^8)MlsU+&zPMT_D5?^(a1^{`zQI60(@BBrnF&wt%_2q zyyEZ}e3X8%?`|~1dVHm7G!lyhokibes^@&ry<}p%P4eLsS)HCq|6R_pj*T~?MfTkX zuj@K(Ya;rK)sSn@33_9+Hb+v!Ex^Rr76;RxF=c!AtaN?B2F0nj9Fb5&2%Fn*)<@y? zo?lJSMC#CX&GmI8OW6(;5Qt4hi{@X1&E&Jo`65Cvql=uY*{?OdqOTr-Sl8blpq=Kd zq*ut~;mWz+63s1v6ZRFbrLTvp&j0QMn@*X2Yi#EHbE$vzS7<=yhKGyHz4quk07$n?EGcvCl^*d_Ks*VQW5@6tU-(1)P{@Rq z>zlE&2x{LFANw-QpCcAlo4}vgDW5q8Y2zdbNBQINEBF)_*|;QPItd56T~ztApg^@} z*wIo&|NO?WFM!G6mA?Q7Fyxg5&f~4yt8RrG3RiNCb}O7=MTWtuc0fVqQLKK&O&1MJ zx*0+oHWLyHnPq8ywhzNTTpG$HpvH9+y?onF=A>vH(3ylobTxg|WH?v+qcKS~ybJ?) z_68AogboksoPKRk`=QwQ(jp;?W67&J`mBJr_5{Chl1!$nM_c7z#T0f7%XX?OP z&7!|^*S_7dCz+;C@dix(GEFSRd=dNuK4#TLtQo(J-BHKZE*r zDv%RDJ}`!;+XDT~Cxb66+10))eaH*iWG_%$)cIp~r8YvW{X|w*HiT6M@ zy7ERZ1u_njgm7E5Si1D$6TEw(d3Y~L*cQ^cspvDlXTLUBaKt+zJWjsPCYImqWrDpKomXkt+39>`veB$H!&a?r8MpWmQ{5Lk>+dn!q0umAuLkKEL4&9)nNGYha%+Nh_r$|YO1xTp~h*C=T&?o~)H$!)K z&;K4DMV|Nnp6{&loqH|Tf|-5qeZ}vJeeHb_eotNLA`v|i2n4#Qd`Dgr1i}%;{E*`V zpWFi{)`CD-7FKd{_vEdd9c*EqEcXOJpc}ESKfl^&If5ECI&5CcW(UQ;mkSjMm+N^! zaJ5d2X+FHc$T&SXqn*n^RVheW3Yj~r;gT&&avU@&gyZF!MQbs`@66ggHa z3V7L6>&0e1;nz=pia&MBjN|6zZs;AlE4iU|75haY!z}0P*7bg}#kuC&dnZ{}pY}cW zKdK!$N$+2=;LRI35OkeIonlei$ow@aA;;h zj7Wmb%_-VM$)kYs1sB#7t&QOR>C-f!=$bT#wBdMevOWzShkcb4v}kRE+@Zeb>C*j_ zy%IV!@=H7O<(t-(^$#;e0Lfo)xTEU~0?}N<{9q|-UR?))@Hng<=(y;psfwGx?Ra3O zaAPwb4?727GzcUqtG3Yfje8m{~xA4`}$uC0Mb=c zJ6q$w(qd_5s0~{z)cpG8)`5UD|-xoH_y#x zCJ%EllVZiZ#tjkW7Jxi}2#E9Zi9`4~A)?|C$Uj5X;HFmQp8xkyL2(G5xPb7#h60c> zg}K1~Uk96-h?~Qm>|lU2tn6SGX1ose7OX61G8UJE+rpiIg#qdWeo>*OCa!Gn>;khl zF;kY8Vg&@kV`XJ3E-VP+GZBLUSTu*3atjIwnsLL7`HZ>E`S{Juh53z5#Egyqye|(o zamA?p&-uzZVO!_~l`=4RXaB~-Tn3LIU3qV@`|FFgjaK?+V;D4Cp z{ZIaXeRs~<{|pCQ26eaF%@Xx0q7^~!JM-If3KJZ}4{|59Tu^>g*|?t*{H$;`e=fojEeC}r;g zWl2ZnHHH-M+id|fzl7+{OUKXXz(qlm>ccr*6!K+r!cd~L*zUxN^nvN~c2dTT?^@vO z)B5+Fi~h=b7XEVq8Zz3)UlwAdduu$sI*(*}3x|yw;y74YEv{I)0Q?d6mW=5Rx}h@M z6Lw=WB*guvPD-e2lBnN4$|hL~R9UJWXG<=5Owot)#w)+;&^y?_vn=Dz@GQcGbg8*8 z?AK!eCXg{Q{A$-a9sbU8nXD_PnTcsr>q|jilyq4~KhFDv61*e!DGP#(wfIqfUC(lK zTco+?#Yd=pk{{}{ZCiPIO6|# znx*tlArd`La?!JMPY*}tm4-qV@gK-^))o+9ym1r zSj_Wrm{EG>?=urufjoqZz)L5ZoYGn;f3vUBvTF2p@Bpd70bb7XGu1z+u%Avh?dZ%r zJR(O)8^l`_>j*Q*OKk_gx?AD1HS$sk@kA=L{7O z-7&fIo1)p=Lwd<0w8w50?~a%MwtIJqRC-?H8l6tzQpsryxj^UxdQzIVm>B^oylY;C?n6c4+<~crTT`4=MUvSI=YxYn!cpDmaSVYv)}z? zj1g6{Tb-eV+BX`rf8?Jl=+d@h7saFTn=^Uq#oG2Q0Riut64q#?A&XOo{lyxO@pGm_ z8B45z72SgUXe~P{=2o|!&~KcuZVfwYsGkHK)vqk}P?X``Kv3v{dUV9RK>kFn}gJUD+-@n;_`&qg94s6`p{r=kDb8nQ$_74N5Jeu#=x;%&+ z5-?>atQ+}%lpGtZ8W`OYoC#8zmfUaO_ZU7Y+1ajKh)L9kA8q;{ zPcC-64#_R6&iPA8m;n`$i+sBbU;=r!rSb>Y1H0ZNuAZFm=AzxULKy71M9R6&W*3_n zpZmgDY?ts6J+Z+oeVph%a@wl#D(_$)F_qit8jfTKsBEu0^Tkmj#iXe1V6-DzsES(z z<L4(5oY_npw#5*)v}sXZTFi$DGm+*Nmf1y)oZFbNFUsp*gUCC zeY~@}e<~u=d#GHnBlX)RQD-`y-tj2sKbRmu&5U#k4X!PF36|SzZGYJF|7=wPcQIsj z4sVx_NSfSOi?%ynJn?r!M^Uc$9|mfm-994zPEyx7B*vPjZjmwbVt1W6itFShfnUzi zkiYH01ULNnWu6T;!ynRPn=oV9Zz5tdsrIWp-Fot9?<5t2>^0Y+KSmMO^5wooG#9S;6!%u09QPFJxNG@vJ*wnQuCInan)Lj@K~0Njq!K{C z`q3X)j!X`nPH2~m94VY1Xp`O!PS9|rt&0!|$C~L_pccnxa z?GLZ4>f8xS0$d^T0?Nz6Y}hw(%xvuOO6i)MhVNeNf0ONnPwunF?*w-@YN}=~!~4U8 z5{RkB@5o8*xKD{3w-v)BoqV%a#`Z=>>;zfW&a_Hzw)q|z#nb9BJNsQ`Ka<;kZp?A; z!`jK>Az7Ay61}X&kC_i$VS;B8OyFH)>-(*Km;TuWg*EhpZhO>x`E=JikP;73)Scg< zivkFPciH+rQV>P)+@dLF9}{<+(;hxuI$1j)i`YA!O;MsA`Ky6SEtx!BnGRix{H6pwTC;!3 zYn=lY%cB}^@w{&|Jo`t3(K{&nF^Br78O6A3X9#nuwOdN?JIo3t+h>$X(A%BzNAs?A zg$ao<1FtWAD6%_~ki3%~r&2q6P9R&}clV~|;nkX)OeLG)Gup$Z+YLD9yc3)94kOUV zsjK!bhWs*FI7;o`wfsf=>QS~wO>A)Vts@QTZxeDEfL6~Qq$@DG+E|c1) zr;I4y=~<^?5$XL>zNlQKGa5{*?>}dolf{az{BY(^hTxY!_xn!_$5bBl^^wJQJZ2Ow z=Q-0;?7?aod**5F$%I?YUR+n#8-KJ)2|VTT_Nj)@%5GGy$}A1A?pt_O!MBxawKaZ2 zcP_7CM*o9#wl6Z;^yRaM#pk8AI^0YqGe=B;}{~&x*h?&`AM5vr6 zfq`nA(1E|y)4OP@noMeERB187?oX5m3u_5>UGAIiKFa)j22kp0!grv#7n$Q{j!WLu z{@!!8Ob)?vkX2+T+R}6(RdU^C^uNI+Oi<@U((dHR(V^#vV*j&}mLYIZ=uUUi{ z3{g#UaS=Jpis6ZzL6_Bu15b=N2s_F1Zf(>Vn8J>^h@56iWYdVBJ8zx&ef@ur*x72? z+4=z>t33*M{lh8qvSGig&q}|{DXMyG-s>;rrhcDNwI4kfsIh!H1m4SWe^fkLvS2v7 z(i?pwz1`!^tb1s>F(#CgejX&OTgYj-1O~%58&zmgAX|KVu=+2Mc$zID64K7I*K*KP zECxxg$J*Iy-`V;Jpz?8oxWg>%znJ9%R|p+!pJs8$+=%i$hQkjOT&IzIz*KBZ)^zCE zIP?C{Kj6(jCuWMWcZ+lHm*&!!=CT+J3t{Z7UgZ^c*-Zs_CxnS$%yOsI<4MjtqQs-iyao4=3~X zA{xt{r^I(ED2Ac?{BU{oot~c!-ZjM~9aU4`6i`RKJIv*Pvp2Br33QJ2g?H~i^xsHD zcaNS2k||GxnZl8~^ta++9}Az#mD6D_FM7j{bVaOoh0QbVTt3ZT>5$%LMw1QyYsK~^ z?p$DZ<=R?hl$|;Ulpf-UqV8277SZoe|5HR^Wu2QI$oZbRr}6LrhTdj0vZ?l(I_L3e zI9$gKpbT(Z#_9!P^pxLut?{S!b~x8;^mP@jEv%tB=e=me@kB4T#6+tf|3KADRm2!{ z4?AsfyBjbGmouF?EsEGJ*hxvE$cTfKCn+UNECiLn+Q{EWbVh?3tf7C?4 zEb=cm8fHMavo)?!={nh-SA5cc#9-JVn+BSb%*u0ho{~RG^&9W5VFc{++%gdpIjQiI zQ8Gakb#KQ@k@A#apm>P2HF_5P?F_le{7ub|NON4z1LT8A$@SDRnTIo>C*AHoIR}eT ziJ6zH&{}F0zG+Ku^Lhfe#B-|4A=~&zC3~Eu=N44aJ(2W0sq{=+N>~F%(f^Igo4aI% z=xH_vX;XT`n7`KCVzBvNVS*G{M2IQv(E0Vp4Xyg3+D88^3Z#OFofEY+^a*Ebb4)dR0-V_sYG(mPI+p-1J#TK)BTtaBQ_ z3LONM=Rh^ffhTJ5DMrp5-(Y6lGzHY`tSWBTW^j$G2T4 zdki+Q)O}5d&g~5Ts-2>Y%If3L0?!~w>0h#+Wr}*xYWNMSy*z~mJsZJHL>YVvQ_>#5fKAXU> z`=_nH;Z@#rRl?0?bKykmq2GXvZ*%|Kys^?hWhjyIT;i1%3kY3bSJ?c;UAPec-xN{a zlqoBxmg^e?^2w;P^FqU-$yzin$U?H8>o_B+4l z-UnqaMJvE7rg)jFO)ra`ZJa15bnoPzG{0dU+ia3K@Jd@M{YhgRu(j{rEbO;)DpTRV zGj~_6-vHG&?{p5g(~>&qmD!6TBRaF;CF&ywy~XHqsM2TdQc$Ke|4MmBvER59^GVL9 z^NChi%fVh>N6G0b!P~WGXHtsFo%7Lmz-oV113xX%b{lba_r1?{PIL&5|Z&Z5x9 zf?6Y^-jmD3xs(>QxS~7liHWUtsQvM&Cc*Pwg`#Xd*E>syKc;55$N34sdNo%($ih$~ z!hcI?3NJ4I9N=2Md~u)rgRdC8mz2mO(A zFB&@g>Zi4yUquZ1+XW{ajD=GQmIw4(@2~V~tT3diomBv4{yM6#7O>Ornu628nh0aX zZq7<0zkz_j+iNfZTznD&kVtlD)FnfRaY+X$h=9cO(AqQ&9oL@~Yd7M?8XT#ciYd@hv& zb`i)p^(3+3|C}8)tHR!%w1T)lcP_;WGq~YgMQPFQI{q)ilIJP(BHc*d*eE`NFD(Fh zgT-5Cto9}){SbKdMn8}}UioX?ti-4gvRB0;E^BN4Uprlstl9xUJ+=AoP`{LaI^4!! zU;0&Y4&X>NpkR@i*uMt0)hyHbFEvkh3G|CQ(ld?wEG56T+q3hE^Zf4~(P<&eeX_?n zLb1Pl{S2BwzzjVv|C!)7+}i%zobDp!(II%EJGeG--YOFrytaf456=(0Gg_2tcN29O z%z*q8H}mhi3UVP9j(x1QzNO5Y*d^k0i-83{lbpvFg4fPb7NEL*a!S;PK?sxci;w1g4GIVsYN9^TVaT_jYo*#cu_NR2m z?i3Yqa(r0|p}P|kT!YF#m`W`j=-@o32B+M=mT~#WlUFZb>nx9IW48CrJ6LX7HDEm&3-u0=p}uQ{@5+EKdxiXD0_~Wr;qYtP1RwR?^Ho} zU-kKc2eZE`Qq!9#xVYPj{&2+Q!vh`<0(DeWT&8+K(2V<_}wu=uGb5JR}-`nQWmd|DafLg$Y5&l3|>yoeHB8C+LUDZQ80)9xM6 zeO6AKJ1RXt(pkax)ll#cg(q9Sx6l#Y!-xJZT)MxbgET7i7X=BI`M>!vn2)oB^OHS) z@uamTCHW9UNe=3TY>38(n}6quELD!9qrJ$^h~E^ynGonGGb2FUZQf)8Yr1C2bSc$C z^5gYu&d-5L!%M%WDQKj!25!AQ5(YgEwE9M?c-UlM4&z9=;tZL{XaOVN;(}EN6R;#d zN-5KkJ=D$teH7-j07-uWna*T`Jz9Pgtp%yn)=chYIt}^tTcIvKIZZveKQlKf!*Zjh zYYJN{fc(i&0m18cFM@ByYa8SrXy46vKpG$m|9a`^PwPYx3fY&OFX${qa&YnWd<6mn z8%G(h=jYFxaN|;N2{7UlFctk@Yqqcdl52Yz6$n z*PnF7!GS^QL#pG@uis1B94P~XU+{*|B9c$nZhrFZ;k*aJX%r>IVOhtDe`)kfg0cPZ zJ>IrupILV5y0v11?j2&4h`FWGxfMh2DusDp%9TVJ-F1ofen$n2yPf@D{fdC0yED69 zmfn0E*7WGRas2kd3LA_G5&86`v;c%Y=AZ}RA}TitZF(d{dMT85_K3Wmt6&^DqAJD} znP`>T1o1m6WDm&_C3~EKv_0Mbw7B7Em>_fQ)@QpfFeY%@cE^*@a0hY!lzeeQ$ci~f zLXfpKHj{bUA}2m?pj5@0hTEGxiT7(ec%m+;!%B($N8)cMFFn1t$SX_8olyp+wcJd1 z1+7%$v0AQL|5%$N&ctKivAfyMY!s;iBbT+&xY=;aMw^L*+v{VmDb0}8d-B_%R>U~O zYPrA{1>CoBuTeg=vXhB=*C^7D{Z0XPB}BcO>5Z|Dt-jiokm66@p<71;6jVOXYobMK zs;Dm4CXMd>bL!%R?vdX38Q1M_wuwS}#b}F@31MYMse6ad`!GJl2ynVcEUo664Bd*x zL3xKdDvyBaIx5fo2QtJH!Ea^ZV-Ah9iqoZy$&f7WqoBOqJDn_GV&7$f@DNqQCn=-g zC!>~7#3w;XoAX0Iz`Lekwg;w62&(RUBIKCvHRAU}iRAJS2_2!Q5PemA0ceJMv8)cU z9_t;0F^ZRmwjd8(a;J=UNvWSQv31_n>;^m8=^v#e*&#MQcR07l$TWjykpY=#gVZ&y z)aL5Vm4}-FU-a5bv`)HTBe4$Lh0%T?_m(uC@F1${0)1}bQ`xT5-s0mTe|j$)?*?~? zNMPuTo7b#J+R{7`TIB*YpYpQ4$b$q?W4MS9pSVdR3+-$#gu@1-qX`Mjx^GXyf|nxs zp|N%sv1k(dAdq|8jgW|U-Nh6QKVf=m(04B%QHoj?wRtwjv`Y99NsH#B%_E~zSh7zf zzBnfp=aI5t9IS4b`t;Qr!u7m0uc~GV_}W{e!-gKRYIM$tMDBuJ*})qL9vktRdy)-AHCtM4Be6GrUV+CVQhtv5s0T7IdRb?;T~_C6dDU zO07>WlOVN0oRw%SCRAr$0yfliZ0E(w~#ljH2lADY)ELVB~V4t$X^uOyD8~Pe>2V z4BMEvsy=PQ&xNh_ci$Eu!Q^j#+OM-q_~?Cjapj3@4y7^%Z>CqoQGlD(4|sX)Aa%=C z5+k-U!79Bu)hd(gLI?ensRRO6b`sR;M@Ym+WiV-zp-?+lWGLlF{Oikw&2{qeaI%Ui zo-GGa>Deyw=nQTHq|_OZpj zCtIyN&&Pt3y+KW@_8_Ky&8AyQ>Ar^0ca1Y_qi;D5=x^otw&CNb)G6T7Jh~d8HV%EQ zYmE&}*R{poEb<|u5&zIfPHa~!L;`kcP`eL(-xeopE4|5`e~)mhJF1<@k>AU4hpU#zB^7cf3g%^j-r_157=0)S?4Rbc%!6KAA zIHb> zIE{J^TJvo&S|8UzOmB}8Um#`m%dX*CGTL4VgLXpoY2|-*8L@u-sVor~+}QbnoLEJT z6Ax#F;tJE7U=>y9JKMNRv^o>5*CF{0C5a#%aB%|Sc3|B?+8{;*^0Uu>os*DSGG(OI z`+Q1N0994x?Rex#AaqZ?gJr6|9e(Ltl8VOUJY1^mPvRjs1j_L-get0w8xXrM(glzS z3ouQ_2P;kDDf=Na3gpuQ^7{KClj{yG4_YL_?6|cb1aeJt5aEtmPvpAE@a99+MbrkOakR4#la(6z;AYD*^bOx zf|8IO(?;{TqwkN*0)K*T{d{=DjA{-_2u98t+2%$$=uhj_vxJzX-gGx76+fa044!f4 zzV7hzYg!}7z`oT}DaO#42=NR;=JM9+2M+77b=doB)~xwInS>aYzsK5L(}%>r4AiK_ zgZ6y=Ro=PWe0F3`Uiz~6v3I~$IjV~Ece3{VpLElA)bsf-(cEL>SxXXQQWupKrHLx* zk!y^UAOVNRRFH_$$CL{`O^YlSe3Ipzae*sxTm88%?OL)+LeN)_XUIC$S6%@(%_T|A zIkZ|GA@!&0$FD;Jf$mEf?TeIBF-{5|E!m-C*N)SrUX;;`NW75Q-lTsgc(j zC%Uf}j*eRA=ObM-!(h52R@h{m^**MD)bqdu3f6l50yx| zJ4q6PZwgF>L!Z#4>e6md@(@p03ckn_no_i8`^mwB!?71B#!CAvx&n##`hzwr*ksfs zC@^?oH39H`#hNqO>WE#d!h{xsoo_`R?aR|*Q)qZC)en%`j3(3m{_%&}^s3~g{QPWh zWt}isnGqPD@73BWL{vv%kV-Q9GoD0iz52`GpH`dqZMlmRo&*aIgYhW}hh`yR?|Wa7 zP*C~iI5%J3B$dLrs@VSV3N1=TfBREZ>OW`vRUzt0{UiL{2Z@bKaWzM2sUA5om_#P_ zz^ZO0t-WdLW-6U1m?=hJJU^$j2T|)WV8%ysK#@vM>t{-?fx!u@i#M3er#?5=W#_yQyQ4~U3))dEizm$L+}n!Xdm1-7RaliRv-U1AU9ahO z5qlQsfij2Ar&rDRUF5rsp%PyKXN`NyB0U*d_o6eJoH#kAC`1=mWg&p}O@idU?o^zD z0?rqoLEI|_=5OTj$QZ9P@ARohi19tXkFnZmF!vaTbpZMgdl*;`ZfvF@bq*H|kbUo1xlk z#H~;()YCvS-(>Q7>l!33)1#5%hVgO!H*c};2`9s9>ovPC;qh@f1vVm#`;|dl{EWCv zLzdUV-iz_jalM-SAnx{ytEZzif(2U%sSgNihMm;5RZze7c2^vzh?Jf{7ybyp<>y;LRwqZ?X`5ACsoQw(<~L(4)AJwT zTkfhISPE+y5ai#mWy}9LSQ5taB;9u@jSF_P4KqP zFg>9GXrj?G3S)8ndnZ~)4RS{6^=DP#lR@d#B&AP9f36l`4Ih-u9a>_zDf{{PJ~nB_ za&~>4yyS`ij+R>=Wxa#oq9$4MBww8FKyxR=5z=rc9xI3pd||_3Ipuz;nCOuAh$+qW zqfDi*kU;?<^3qDJ>p1+xI_kNGopEq=m#*#98#zuBkBh=uT6=M(vPIAbuU-)R0Hi>K zFhx;`B4+m(CTZ!OH|ZwO((JfN281e{BunsY3kdueTX%n^D}S-ea17Z+mgz7YkH{CuX}6DyPf-N3=Eg>&&ZS!_CRg z0R zKj4RQBymkag_8`UgTJOsHIfVrGe`ymuZXPZh6e6>>nXG8Fuexi#On+&K54G0nGPiX z2X{E2OF_;w1i}o)w9gezlYp?=#%yg{WJ{*2C*!oq(BH6DCF4MINit^4`!(iq)!W_S zroRg`Znk9H3()zZqe4CBpr<^z#sxU{572KYc2kO+{=nB*Tv1l98)Iyb|b z5wT8YkOGKtQwx{r^_CB^OGN6C)fS_T}HvI*^1!=RpPFCbws zE3>axLWGiANf3*c;THm^H!f*`-V8TpfVk4@aS@k>)W)roB}nybwOYRPuwby~jH>Mb zHu}T--)Cx2F3UqD#i=`bq82ANkM-BGZ7bm2706koINN>y9hu!08%`~ZTG}6(^RGj! zEWr1fT0ZhE&sZkut*_ooQp`tPte_Hg=(rz;E%$ngCk$Gr{>u;25rUENgZxb9oV`S( z{MI&I+tzCIz>&?B`S1NBH@Bymi&PvhkO)>}5M3!Of1^&qwV4AWuO+IuO2TE}H~j4e zsBefGNKB;lsHwROYQKGgPJAl`Q!jsKVZYa$hEYJJORmjC(hgzK+2u#9VIz$|41Z4L zx>~`s(V>()X~h>O@+DUJ3F^(Swv&(yUFjku9T5PVBLdeyeK)2RPJ@}lK6)Rk8^>p> zl9^t?rDnnQQa4b3EVdF}5!Ah>AV2MzMKG!CPjsv6b)K?tn;o9fmwYV*EE{jn~6q>H5alI1#>y7rklJZOT@o#OFA!O{MyouqDQM;%I3`+;%)W$Z?QUTG4@)nGEu}w+;z68}i3;3j>25 zx+y<^{502>9l`Um!_c|;HhBqy4y(sDC`?9^lxQV@L!;Oh-ysQp7HU9$`&v@?*Zhv? z0TNN;m@=vX3COf2K{KsmLNMFwsgD#uT0?@%r|POfS?a?b(*4L{{>#cu;D%m;kzaeq z8giC-XxK}yg~VmI2wsQy?3940{kC~YD-70lqM`=Mc8W+t)W7Cot}T92sbx{7kJ;4} zi;-ma^x zTeE@n#65#>0RrCOBU@{P|ID2vu>nRVmzxmlCSP+{Hb399psT8_qIV_>vB`VHtrz(V z&7;Cv(pknMQ_;fc1EWYHvjAgl3Jk4z^@z#*WLaG8vQ{;6+4$_@V8YxTZTY}ZYI{d2 zS{+7SAv_$$>PB2rqH56WhsvuMYA2Ta>uw%b;s}v##YXS>eLC`?VF%>PpK5j;hpZVH z-wL)h%Ts3a7}!4ISl?SEK#K269O0N>Jl1j~emG7LB%yYx&eqEwk!U_a-43{3?nQ zE#GXo2u)>tCP3`Ha$l3c8$Tw#r}m0_j~RXlK1b?zl1MiVQsehSsR5xNj(3>5Cp@`_ zYspWKv7hisU@>L1QRxykugsey1Wjx@#)%EwmnOGh>KlFyGai5DQFgPzA=rq5npJ1! zM+Ov{umlMVd^DV0sP8C8byV4!|NGcvsiVysGjg`_kg)Ko zYHhu|;0ixZn(84EfyLoC3Ds~JFowp-On1@lN;+I^mt2mCF6DYU@k#hF+a?5AbGU_f zQm&~hFHg_AbU299_4Y?P|CQ`{?z~oGo#7e|E)O05z0WrYCpdT_p3&qMa@y6_S(k8e z>C8jyfQ^y)TM`-~Tyoj*%^Zw`lU9Ep?Cb6Zb;afC^gQq>I;vV6e0p}f=;->8i2t{7 zcY}C-Oj(bo+EHc&;vkw`Di~t8`%X=Ez$DaQ5t_&FEg`6$>;VGtTx?Ynr%H0 zP%Pf)>DBWr1eZeN7N3Gh);=5^7;KFjaIncAJ`l()e)1CzC|K(C$ZwNLyy;S z5(2GcaA-ciHXZMoA~?By4aET*)yD?2FLWs7J}g%xxL>fP{Xt4CstaOoaHA@n+d-SR^3t4c3{73)kg?i$19`i^+%hX9Gu$PaVK+3 znetr~rbCi|Ib#}V2WosoRpoSwD#0|yr5x2sfJ-}kcpa2W%3Fem!#Sm{1^KBS(TSG^ zh}Y?+jc{#m#OXmINj_QW95S!QD`0D;u36jfc8rZK$dUx|^3FWg(FMlH>jb{szf4-fG6PU-?V|a`?_u^;9-Q7Mp z)DxdFd`S(Cbk}(3;P7;c%p9R&cT_1c>3i}JC#jvfv8`1*P7XR>_X=~0zB!~i2$1^| z>=qt4ckGr(KfoOGf_}ia|0@J1`cX81j&(#BQ1y3LBgH4xjC-_B{;C&qAKNMSabLoa z|KVzO&XZ8N&absxPdYana1w%o%smXvVOFR~h_k~^H0K>Q9r&ZSPeMiHmux%hX6}n| z=vbzUJpg(U0H6;(YgY01n+c(w_~LtFX2E@S*1VQzi8}uN1m$@93+66?C*F>b?INRa z^GR5TWaL1WXw)WYVoz=Re3%-yqwpE~inj+9&bFE9E%U7@Ys}^DmPT!~ zl!3M&9*Ad2xB3EsO~s=SJTka)?z3m4!tuSuWz)WOX-8;7 ze|bS-orMCtk6ct!COm5UNET4&#Z4?gpgmwF?2zB%8V{7viV{IL8Wmh;F(g!W z{b`1|Jx+VPSADn=EU;GkXS<`2jkz?zbH6!Zoo?N@QsypLaw3K73j$ral$k*!DZU?> zqvz2McUQ(GNMi%MkhPKKcTurRD-D)~s{*@#n>B6s99&xyK)Pvvmjo9o;cMb_xKzzw z!dcz*(=S?=i8wfV%05DzL1gPrV22&Ke<9BBl{O~*ck**Re!M~4N;*cB;(636?l4sG zq)5fSa@owC3WK(sjC!lEaZ8_(bUrW?Y0l&}$R->Ct6&ri546MaP7@6A9aXaL;ELSS zAO(3UMd2N)%h<1P&Kv{Wn5MKIZqk}}sRjlqXDB*CdZZ+uV-XyZ%EZ%)_PAzK5`LxxU^e z3?yc$B;*BXlAq?v@u=LM)3(>4zzA%N+D!R$?!yBN{E21hGsfRtiUz8A){2Hel|j<9 zn{YR{*=`oLWZ^a}_=M50!uL}B`_uQV6y$iXwIv-&fVLjsK7wK2&X1t3yRUvc%^%`1 zQX;|Rk$g`@Z1os`?G8-)Ez6S~^K@=e9hk%i(2atY8<;J0Y#GaqS^vc&c5#R5o%SEa zN5WODf*(16ZxZ4bYuh?KB-;bxK2!-u!8pA?^wbxWtdYJXkA4shl;RyaHn2#Lz*$%@ z3)dU0Z}w{0z{WJTV9T0O+)9IpiF9}ZiwjH)>=0N7e2;2fm2u-LsDau{qAoMFROR=a zg4={}h>dM$>ZNH*`7Z#r1@A~@9?Y=+==bp%cXVe(Sp8|NL+DKX0DM+#nQd2_C@bwI zQ0vc^lBP|+vh1vMhr80FKLxUrA1Wt|2Vg)#fS?;m0^Ksfz4g<1^7-os-5QK#8vtb& ztoUopjpCFYk3dZcARHxc&X{!kX!od``g$f(h5*A|aw`&>6{lzT!t!72uyp8nfh?e{ zn5qxe3``JaaAzfzDS!tzvw_<@ zEy3Cb3O3GLpYyBz0f8CnmljPiXwMmi@wj1n9{A%_6Y28v`x#xbLVYK``UvW|{QO8^ zTjQLk#%;^H<_QsU$aeQ3C$`d-*5no~b5p|$IL!9)rZ9R6a7>uwfsWltrw*Xo+~e#n zB26~5XQqR6$uMP7s3s&3;t*6n=F`Q6&pN&I1oR^u28}W_BVxLn`*90nPfm}MUvw`A zXyGKCj*CdZ4H>?@zn>0Jd?$_3qRtFK!NEfeix_6OMw(LKeTQ38ds{esqLh)Lp{_J} zTT~riV8;$kN05srUYk&YY3ws#;nnBNJVKI=A7j6~+8&f#f70B-3T&|buYJv5OQ}!n zq77jdvnQq*L%xP}%1u6_!QnK>ybz$?ZQrBM1<*4m_osIen{2&J3p*(qtw|U+_EmDa zK8h1lBjU+znAU!`TB2lU4Yd)q)FP-jd9ET=DeA?d3MLuC0nT3z>Vs%o7L$cwD=xup zB6{1}z+1Bslvo=6CvPNw(wTvcI-B|*tBu19XO%yV(tohj&*B3-523+@qGYW`lHK(_*rfCAUz-G`8G8z}1?C1&_>2z;tD+62rq)fl(^&Ek|< zJ#LO|=`6m#6h%62P2ia4VhX5(!jt<_oJKk`2Qx!sUFZD3Eg~>UD4VgUhejhVq9vLx z5qoN5D2(>epn`B1?CT0)5cyln$sS@%-`sRp_ohSlj@?XR1yQ5Ej^QD~EIEn?bD5z1 zaaH&1a|tF3Qa_+LN4uZP2zfYuL?#KpL?BUD#j^vsG|SfY$?&EgsxJ==csM|A?4nyI z58bP!XrgGsVfvEu`~)$mgKT9kpMKj5UziR@qi^szJOy?krmzfRO!Etm<5@>Fho2ay zV2%!*a5?5o-P2V$J|HN|61XA5PB7U}t77i|3R{M5fI9t(En1an0I15~J3iljpyZe& zdg0x##?F8d>*sHP(rU`(N~()j^N17dO~S7{RZFqvBj=p79KOxGcDi- z35oHQtOuNk@9GT0VV^M@*N?fUezwA&AMuZeiQ&^^99q}`i7A}phpZ?)bBQj=!#Krj zEZbiITO`O)Ocuke8RBKH#qqmyylC!O7|;!A1=ud1%u3k1$!3Ga39&UhYuJ}Tix-54 za1@0ZLOOcnm3aJ0LYstLIsf=8LMI+SC)(Fg(IM;%uZRs79%__MLis+-hDS7DDy#S^Fxa( z!~=pO^)fHsPUp+})ppaKnJw}K1ngP^gQUQ;EwZA>uX#{dp}(ybHkhv&C}n=iiO0?# zic`Dtg!A~WmP39^A${eqoRQ{<>{dbTw_<8LSQ;@P$g)?e33M8`)oyq*lp9+a^nJPc zBojvrsRb7xw2btsa`7v{tf*;`=j?RLumiho7ahkl^smo?F!!YAYb$14V6303%@rdca;1)D+*+e|I@08wy3L zOFvh1*beM;1!*}h5&}LURAD@7_F3sTG#oC1b#Ge%a?$ew2GI1c^;9S9R?=w#-YZ@P z=>K-_;vjIwweC|Ya+gtZp(F%I(%n}I5`uhBl<@g+3SRr{id~_;mkFf7Kpwn`+zZmR zi(mEVkPoIUc3;VXLcO4U*O{Ulfm;bIt_e5AJYE_t5#hh-w%Tsj#CWhjQHDzIlyARH zpW+kP(~(Wxo;AwV6YvV zdd=|yNNcov9O1sg+!DY{R%xk)6H`8?D)f{+?Q&g1t(%0U7IE6djRczqy%-tu2+9J! zby||%9VjT~H<&z+_k^8_#wl+UCx_~@d-UNnk>+r>v?`dmVx^P(0 zFS|9kWU73c*%^#kogL#c3{Rh{1^T%qd=5U1s<6ebytnH}Q_m-$cQqs-W$-T32(DQ` z1lwN^QbDmm7koAFf(I}|@%=|5LXt5@q|6S-W9r1@I=>&asgWXr@A;Ir^`#KSu zKt$T9h+EVnw5t6zc!WI9U4a0&X$W*X0sxrAboc>6F1x{ohE~ME66yA(dE-9^H6sf$ ztj7~(BqkdWr@8NIkqBGKFaNX$&Q`vw>C@06cFH))tgRiJUx%8HXQmC?S&!exSEb&6 zk79ZhD7Wg7G#K&<$Tpq6YZ3s$A!Nr%{O)i`mNvR+szlj0oAj z#E1VRBw1~jR1T=!4^xx7Q%^P0_*oB= z0RX+qKrB{H_>QRO6QQ#}2s;m4MZ`==!FuZ{jXZ0wlBO*9Z`59WQhx&E$9D{d5Wk|H zJWupTnJipV(l;@rxcGkj>#|Ao9@{BC+%2i4Rluw5>+jSgBcHOFl4=6o`#?RI7h^5c zF9fYJq$q4-NENIIH5z#1Io3}miSIAMGG)d!q1o^{N;zvAMv>zC)W81Qhk;MlcV4Kt zeUqX9@$e7tsh;|mMuYU%Xi~<5As1koVx}+2UqFEFa6n8cujmZ}FerauG@Nmlnu{bM zji+dQ1uzfhx3!Q96AR77O<6&se&}2H(~cLRTT%ZsB9*%k;>JJ z#q$$(6GFw76WpER+J%_=H9j~*fR9LM?g<1KBfjfvmuRKG(~u9~n0}!4cA}2QV&~`s z?rmO_eK%nUM>9SS*)|^i&aXq-P3Ino?t;~K*pNOcQqm^cJX6Gjj{if`RYyhDe%*lq zh7P6EL8L*tTScT1q`RA;yHip{q)S>_x@Smfq)QlDr3PsvzKieg^FP;O%{=$HC-&KA zpEFuor#wgB3K87`no`F#2xDtJdhNef8qlcXW(;z4kF}4$;mZHrBA#MO!1fu`;H@T} zw4nIsUYWaoBMo$kJE)5$WT59L^bvX<{%?TEzIR;;o6g{|)<56-dO8MP)}l7VP2!WW ztvjVG_`wC=pFhVgY9@uybK?zbAoG64QC9-Q=^yrg@p-$!Z(#Iewn(KM;g%3f_* zIE%}weK~LY1ph_KbdRkB*3ocM!M#-i2GdXu5wX$V9?I7BQSyDJRgX%fn``|XDh!L{ z0_l96BoDEkD@+7xjQ9Md_kQy4!;OQdi%29aycfTO+F*GtlFpx{cMug47Ato)5|EIo z{})o+q&oCpj@h2;zNc)wGIBM~rzFECw@zllvc<{dBCO&Wc0$O0$Nc>bc-AtFdv706 zvIrV7GkqEGt(ZQ?RlI;Hszj+dmqO~@CJS~4~Og@p=F9)Xk5JhsDE*UY-9!W5z>5V zQ9R^o+A!kzYu8hv*nde42>&}HiCI_1Et7iv-B?}Q7MRF=2LA$}vU^OkVUDj8#ZeFz z{=zH{VKfqZpDcjYB*2&0&9ItmSjU}P&%!q(Y#t!ftM}^DLnY59fM`CejgVc;6#5FB z>E3+sPGw4LV?qCF$f`<1Ujqbul%cJkT(bQ~2ZBt}kj99f0-rQM)?pK{&L_|Qef+DJ zdkR@%^W^(YZ=)G9C_dX`sIAuhFh|O4eFMHAN)Pt?zx^KRI#**qzm;|5x*WQ2Sv=Y^ z=%@k#uBLC`0pp)*4GS+fl+v%P2YTO;svFN=JhxP(I!#U_Zv4uk$SFZh_#6jy zBKcHLZhm|X!5Q)8)zJS&Ww*-?ko8W17=JuOG!clgDlnK0)w5(${|3C;G@jWD_exIE z%7IO(W&`i@>qN@Gkc7QSC#;tR5uPE=*}Pb1j&UM~oj#Rue?sJzR$dy8Sj zQwwDJBLJYCHZZ{47G}+3C>YtleZ*VV*WFN2i%F#Pi$`|8^gj4<<0q&;1gdcAV@*Qv zy`y6IaQcmD5lFOsA9x#iAE$NGDmNXLEiF^9KK(b6LZMmttmKI^I(WC0dx=z}d95*_ z5s4&UK`QbZs@cX7E-KeSoz?GUeLLy*WTRb-MSROh&+*y{Yr>lAouQUsO%VX1u+DT6 z2`x#q{J$V+^vdqTT8x0Awc4u7zQbU6*3cIKh&M@nfQTM$is}4;skHZ#6L>^9$>%-> zU}5J!*PwVKs0c?S70@vsp-O#cwVwU#3T#usr;SY_Fg5ERvsJzq$^hwtd3Ok8>keQ| zCms6D>+T;eH7}6bD?foAMC7i~cUc6*gg#J9@tFX-l>m0ld|FLRZl0W>=56%hf{hB< z#o$jRAwgK)?!963YyEEz#5a!JVQ^N3G(+X=${ZHfY;>vMYhX?eOJs-U{vw2t`9n*r#D0armL!D4Or zFJHxEReq`psMnuw@Y4jfZ!`+`y+H0CHB@aP6OLM&P4i_yPz>(X`-0EvUp5S*bOnUJ z?UIg~NZuU&x1kKHouka~oS#Tjd(-|gZS=WsiubkFbIW|)&7~pAdDH6VN>Dpjix4-Z zPf1`hhp+Cin*pF$Y$!c8xo`Udqxtt14drDMN%P=O#5Oj~RiTqW95eHx3LwTcY&C6v zk*3!Fn~(o?DGazhI%KIE0pUkNggb0sL!|Ld_+DX)e-78c)lwl_Pfi8{-@eW0i3FU` zmv{S*pmV#V`4n+Zje&|_1XrJtD|L6G&!Ghy4?^pOPAgDI0)H3z&U4FQ6Qkk#2;J5T zVnpWETyTvkvN*{pCXU`2XLS=7YUrGrE{E?_ynxZjD+pX%JN3UWaQFc5tE2VVr@Hgj zMDx8pn%kJk5h#zNCzohb$y}4bhM(VrKu6 z|F@49Bqxv(K#G7$*|^*=40IB`c*Z1X8y~y=hT`#8CIFx49(C^}qAaI+ z-`hstsSsSVE;>(Q2Z;cY75(V~VgLX${-49b>xG>xTkf5kkx{EH85e%^$M#9w+U3{a zNA9R_1jT28sN5)V73ywdgWB{+fyqT6Y)twT$x{Hy{8;G;wP$)X-S#_`$CQ-IP9KOH zJ&6bl37P#J3MN}=bPMkA80X-fKr1l-Su*=? z>U-e)YeJcz)dmBgPGfLdrg}mWfAL+zJdJBSEclYl`M=w6f79`}BpuLdO?x_b!=0oL zVq>wC>j#A+VcBinWSjym51tdSYXhN9RR2D$t0un>4x#dT=!zv_bC%hQAew)Mj=$VF zSIi60Jmj@3;s4ETzQ42wvH)zJfXH-hpwG$G8u=;*h`Wtnhnb=GShVVWN-R*(KBoij z*)5|ChKt`$%E0>yJE@JL+a6nO`BXVeOk|QDAT!bgG?D+S4;k@Z0%t8~FO3i7*o*ZH zjrI<7)HLKnai7bZUFE{mD)vG z0?(5adFRUaAABOwEA40BAfw%@|BJ<+7krrmBnFlvs_;PmT6)8V~8&pD7o`{W;>1eV~H1`~=c`a3=*X(vALd*q4QSY5GtKs26);Hic6CiLsm0Pkl^ z7+7Az==L@PHpLzH=Y^;ZU4Zvx$Y2P?Xih+7=7B{YXIMohE-3JS;9_% zxY7_n$J>7SQ0E0u2DxUgKS1Fb?#Ic*IpGTG1I4^?_3M8zEzV&+zI6nleI`Fc9As+3 zcZm&R0OOx0l80kYD(a)x}3lk02Mxf=3J_jc>A03|#2XtrDt|3D3iy~nDz}|(&j9=j@EqY0jHwU&^ z)brg{te!PnW7!(pNYnH0X!wOGq#=1~bJ71IC9qHBG%?HG`&QK6W!&sFI8qU@ZpNnM z^xL$^fE0qIz0jvYEIXL;sP*C$u-a>_e+wMl%q%zQ1Rx^Lns_&B+{wB=&ZcTv&ugUV zslVZm^w%MwKXv}+!*1Naa|@XLN;pEpf22GE>tT-vTB&7G`poXfKER6}AxX_h&b?pP zFcu{SRA%I*8o~hM4uJqAZ%JRa2JT+$*#H#}&1m8}w59>#AzZBb54gSetrjP8W8Nnf znLqGun?`(QfB=IrT%5k0IBKMtslNC@5*z^Dh720)frbQWMJ5nMOz}QIh#1-JHI+;YGQ+^j7dcFgsEo zU7Jq}=o4$?k!Zwu<5oZ|;YOX$3=mnA@E$4ed$d0)lqru|mK0xS3RCp86o@-+v$nPT z4@-Qz^jde<)(Lw1qlSv=8>i!sW^vWWKFrH>Pk3o#qBb~R-(Q$?=KU>fx3CHC*1{s* zi@5W^gOdAEC*eyf=B7HUD~OSv_{uPsd#Akrmm0HJ7;a}hBr;EbKs^$|{FPO3f?5!m z)L7tt3&tA`cu7jh+ShlzE&*KHy;blXzM)LgL{jY(e2L_G!SDo1>(Rr_&tp+ec0I^} znD+fwGysxuOG}_jxDw!$C3*W!>Dm0c*UPt|mDW6pbn)-1&44wYz+xW2V2_o}U&8>= zeQIP)WVY9AcQTO#%^NPq{e>gl-$)-TkH_Sd|8ZN4lcsi}L~c>7>;=zJdp3;&b{J|k zf?ue8#twzbB5{QGdEP}`?f?_TE%lgsAMWft06mSHSK`ad6uqYxfg0;bjix7G(4~J| zd;lOCb`l{L))!a((BwF~{~Ybx^28n>U2^hRD25}Joc+VO&<_)8tZEiVM&{ZM1ODIBLu=0exCeW#!>y!db~OR zkQ36Lb=lm~pR;u{_S14Ek_0%H@pMqGP--R|{>HGA4TT!}>r&H)y+YD8m=fZ!%&r5% z?aXU%1yY9We+g9DK+(xEgT^~OTJk_4OLzV@{YC?w*8E~@M6Tf}8qtYh6%Y#3yNm@( ze|-s*l#py5ys{6jz1-Iury4lcqY54(I2ukg5#7JFk+|*MXMQZcB@&8<-JQDn^rz%T z)InarVvtAwO`!VP$BitX_R31CIisbdx~rRGzrD8`xj_;Du=%D}ekYYK_=*bR&+#mr z(ubEG=<0bMxur(cjB$BJ5--{ciC|Ae`T_Rz;Qqb3FZ22@+weMihBs38@b59X*0cq{ zi{M&^Bdm#aU5o%-LmpAF8=w34EWUa`uf@xM%aJ}e+qGKG5RcEEB^KA{@=v;~8ht!Q zN*+3~2d0%A_UCI?*^iLNr|`$9%bTB1f(>2vaefa}A8Lv_Gn@`+_%9Fly#HyL_tA6C zd3VSJ@%B;adAupxP#2M2TCj<#gw$AgafNoU_8|L3@@iK_lb2!e`YouCS+d}Es>7b8 zqB4--^Wyo|=6;JlPoazgz$U$G4LCXVxnlwxZ4GdqX|6~K^MN2o;9%{wzV&|(9#n_M2oM2ua_g)^8 zvPVuC2kVc8Co?G`p3P==jR_3Rq7|Obt>$_c7dOnMe5e|h(DMKD>-($VRze8QTS%$) zB%{n^vI&k+g2OpKFqBuUZaJc0JXNH8Id9 zu_d4d3VQ2VEofB1QS+#T#4i&89Mm_RAV=$GKHMw3X?^d`rd8WL??FTQuxk9WSe@oq zufK0W#np|$d?AA`-}N>8eR)|dbyaR_PsiJkd)HU0j)i@No1zc@0O8tf5`O>mli_cU zO0ex0t{lVP?7&dC`Ef|G)}V_^(UV>o&5wsoA2Yk*GMbeSOHLGm{FAx1&+Cd78`FY+ zkmKNgG^9t78bR?x!U*K#Sm!^FH#OYo=V_c=9>sOanA-E-slAVC0I?_!8g^nTsBnF& zO&@Q1UxO;`J;eW7 zb5FclCQ=cU7?O8u*9{bt=d?Jqy^<4|2gJT-mN3ox&2pBByW#~F#Zrr$BQO1m8r~b~ zwFnKBuTX7#RoqtlwO8u-<)h!RX(1bD3Qm4m7ml25C0E$;^xX6-?0sOYlu_4G9}fTE z7LAbk>r_d~$?048!!&Q>;5tZY{e>Aak83PE^F{pyT<+I_W*8M-U)%9mS}|*N0TPei zTT%TXnH>H{M>KQRW_^}~@q)-Oq5xt!;@sx!huI=f(r&px>0UYF9M?#`1`=zt?Y9mN zeZC51m?Ez9^OjPl4S{?_c4^Xlf|obt8lC-yav2aIZX)MNp1Z5PAHMKp$1nTAl1I8} zf_3ze4duU_VS@!z^h5)r&Et%e!c$V<#8sg+7|)9E3wyIdmytEo5w+0pL0fx3$5_ll zlt#K_4CZ=c$gFspclYE^J&Z9 zQ;winyKS+|nRQjH=fJ(DU!O6Jgy-~bA|~q7pTwChj`?xM^KS8jlfC-Q%s8`# zz&Wg|iG06mc@Xh{UaoDiGxMx0(v=^RoH=&N7iCcrNZ!MwnL}AzATgi*I|J%ovZrH> zh2ohK&V;Cpd~$vF>G%=Pezhm-j98#*1&)^ccGoz+xX($@v*(4pzYm2oRNSe+4u0Ad z9J)S#AG_2?60cBo4wBKeLyaBcNa{1m!yS|X8pv(!o=z=96dTQ0m`xBa2t@2GJbVHl zgPgSh&<%AVvkl!Ht)3?ovG{HQyg!;N`=y)!O=(`^KbHmv#TOs*uxx*`J)zWn{Y#fZ zS9fvAtfprD=L2+zQj%BNqcF1UY%HQU;f72(d^!zrSq!IQDo#$mN-3a0+Y|wEDvm^- zpxz!gz>kxHHIP`z5MvUW>`w4Bg!Ipe87XtUb0vPh`PXcP%DuZRc*hc{K{3s8+*Wrt zYs6Xdf`ob1@*u?`+mA(EGM?i~P60zNE7Awxbg>P&;QTeq-Z`{u){o-s>0}G(!DWNu z;a`}a)bThS6K1}WR#Bv%N183Gyw^)>_g{QC6PAxH@0^J$3x`Sr<5s#mX#)s#k7X+; z?eXQUf`Cw(URtHrut=I)9hrpI#saQPgRm%0@(p#);t*lD7#x>{UO@Hba`Z&eLO^ zE=h9Y8Yn}v8_o=MC= zSd7U;rH95+9qVB~UW*uJ1csGG@qq;!e0V9Lt}ih*ek5D+(mqWR zZnYlrN#o@wTOPcF*ooex(^;{Id0jR117ILh>+qYNJw<9Q%t-WF7XfecZtqJmZx(G8 zkd z52~h{OGp-*t{%{Z$2pb*U4Sizp^pJhTvR65IQgWxv_|AGMH_`|aJM^+6|;NHpfHPA zD1H`oT485nznT+4Zf_Rf(C8MOq>qAvedx%?9(dZgxOdcE%rGr&orSAC@}2lLAJM=b zr5?s#VR}z0SiM6p38MDkd+12FqY0UW@=|&LlY!c85L5Z4gRtFn1|Z4yG%uvSRG2C9 za%CY|zIwa6{yF-*mBw%o?zwi~G$P%h@cDTY3KWU=`|dXx%T4tDnzujwA_n^&@=Ed= zRZHRcAnb5O8uptf^`Va1ePY|pnpX3$Jfd=#1||%d6DAe6p|DGHl!^wBqxN0cEb=-^ zF!4RSnyT>_f8sAe!^o-}(IHz)kmc~jSQC>n98sFdtJ;^;f=@|sEa;y&A3H2T>uKRi-u)icJT6x% zk>-7XuW^(f`X07y1I&o^J|blP`$sjq?0^lXPEfuzB1^u5rWPtEimmo*{z#U}{x2&E z;GJ|>xCP4C&bBE&wb#0B6^Dg-2d$4**&?;8++Ub>08)P$HtydyQ9vd7-=&CKa=6+f zjvPgHk>cUff)O<=Vgf+xV^&&YFiX`DpqyP!HSA7JC4LU7u?qJ+;hE5IR^zGZ=EMo7 z)INDC)C;?uOHBtgkEE)gH8UCl(Qaxuj5xAF=!v*fC2;Yu>Uc&UydC?3hinZ^Ezxq`zxff`*))864pSuKMI?NiF zc*+6<%d4A+7mG$qXIl;)g`0GOcHX!$wOtCta_%}0BY<$6!dsK}0vM!cG*&h>v&!t_jsHH#~eo9&mm5~*EDkQ9ug%bNda=y#^`V`o0u#Vn8rZ=LzwaKujHj| z@f9_1oU%hY_NSAl`V`M$dgFZI;WH+N*62hu%T^kQZm}jlc3oYo`=u8VUJqez(|XAq z*&=KCxzlcgeDBcsi+{WFShEC@cf0bheI+JrjU6@zq?1e2-H8|PR4hbJ;JmqL(XG*e z)~5B|0q-c8M?5ff@C+p_J1#RcJ*o7z0R1(|d(20>!%rO-v{stgcu*@ZTMY*hTXfJy|Kz!*eGDDiaIDZfxDVVG4j0@!~=s~WzecJw8 zHLGVKt^$qdtIvc#d#PoR*}seX=6&6pgg*^l{p-M6XlC$cgZ1td%qOM;!@H3EnqgXe z{%t<+U-_g~U^xYYHzlz5fM$dp;uVdDC%}daoJ@p_f3QPX=o=$nQ}=We zdvu77v|A*BdGjQvFfeZEQSOK|eO3RBG^8l#J4!M(bTmedsO zM2^U#i=Cou{L%7sj1ibY7_q`iJfT0=!_fThK?0dt8?iggoOGi{{bnkRQK$-nDhCQ! zwRF|RM=puGw07Ad!M9EVqSzZLjUZAZSqebzG6KFQKDpmzZ|4F180V%844;!w8>~IkLWPZ68{5ov_47OIPx9H>p^=_OsZETQD-`ddE~}PB52MxB2Fvs(BO1?C)fVF{|EqwZICjCb%y;Mb&;g z{Ll*MoIiYMUH*zz;?F!kptva-TB$Cim*?0Z-hCbxV<@H?FTX2w^W6SB#So~-tt>1w z@wQQg@@M=a4yU1pu^Ft!c}h`}2ZiMwNkCh1%;Cfv#qk*!IPPJbvRCckyGvnhB}o_m zs?*NZmLU+84`B!QvQTWyrsM*h?CF=EvnNtq z6jRKp@@52d(DCBB8~Lz4oq0RshInqhVUAh*qGm{riM3)ndx>5%%XN;4SI+h~EK)mz zj*xUVhBJUAJj?4LKx90_ci5XO#g6CSk1-8z%bMK5V%3wCQLCo`t6+ z>-g9|kB%7;POrQvqMwgw;F#gE3XwC(N1vFU((0G-pGL>})mN5iSJnaF@`*^|IluI@aB*oWYy>swY#FW4hhf{P`hmJx)R z{|JCveH10dw@(z6YtCJ;jX?dBeq$#Ne2$mcDPGJ zX!v>SuANX##uE*MTryV_bs00z^Srl5`@JAt~m{yv4_<98LohTndXoUAJ9!$&Jf0AWe@7(zhLXfWe5C0ns~sf1pC zd4_%DSyuW8uJ{v^mh);W4S#tuju&mGwvZA<^Xwvao?HYzw-*NJMACz1q92mSK!!2m1BSU$G z*Xh#`Ev^RG&`vB&Uy_4B=2ZP9n|^gTuRbgCmA3#pMD19YlTP9&`LV`}3#0bU50R@v z+z~^FnXyU`jDJ})I{eKP7%Z6zUbO49M=SId0|BHf-C#4hoTIy)kQz_>#$h82g_avZ zY8t!@2ty#t%{o|w1A&bsc_g@(%ghnP&zPu0?w>M+dHiR)8F>IMD!3(gw==ZM=t5`8 z8-_5HOcgjO876d1lO&Uiksis@QePNySRm~L5m@YhC#OyvqtEE>c}P3O-mN60}lEG7FQ8Vx^jr!{+6D04I@)dHS=sZC5kGBty+g=<4e%Ig*?Df+3RZ#^}PS}3DM&&OfMW6 zUb4(vPTOvpgTjP$)AA7j>++IXysz6*<0Ir^_SfS!6&idx#4USWvK%o=@O< zri)-m7h!c&RMgHgjtONNY(rn34;nG=_gYQ`FpxY4S11Iw%u*XqZ1XgVT~7LBoJ4lC zd`w-OHG(+Tg1GsW`zbhkc`tMP$)xI-vT7Nywk>e647+5-k5hmau)3zm&`(rE>@sn# zxEkVZMT6&kGQwOzSCpBpA86WmCQ|iD#N{ewccCOoxH&{{=JK^Yrm#)?5 z$~*@jsZ>oOiOq$R@o51+i9s+n51R=hk#u*^4$$4|;dKF*WWdDRLoJfll{32 zFAqMS(^ah_@Ni!U{Q?uBz+UZW^)n67}C_$ zuWW2Wm5Xs=Y{T{OCO+NZ2#Fm2(xVW~ksa4xAuGXPNOfK|AFAta(?B3pI_YV&bx5&` zf}J7oM&$Zx#2-ZvFU@>4W~OR3t%{z6vmEJ{N*HE#ka6IZXa5BYhm(2$5kyR4aV|MdKv=ge$o5=Z zuaIM@EJZgZu)xiF=8KTKljL9Owm#`4a%*Oj`@#uahZV$fdr}`lA4d=qxr%bO zVqEhX*QZ3Po%E%J1nsQ~ySt$<4LWV{pixC>!wkRVx80H3rVgKhSiHni@-ZsddxNHv z2i0}6CzyeCtC(B-3rS-=BuuB=+#!!yNE<~gcTJz05?ZQmisTWsIGV`|oazZ)H*jTw z2L~M+%IwP$OJT8hfX>o6iM>U-yk?upRABK$foAVDh}-R{P-mDH=)gVr@p zVwO|K-RG}ZF*;l1w_~~Zj@Vqm(7Cnp&FhfzYy%RA&5t+b_!0-q3WPaF10Jyxv0Pla z{E@`#yDVrx>?!@h7YBWD@eYrd>f+~q926~XzikKfVaz12NGpTbypBodPQAKvCdrC> zVP2IkL?f4?M`|RLjkeu3hi?e}%e#RiWXd=?3e73$Laqm6!>^_|A>I(kH4+5WtYDTA zr~xJA41r2WEzf$)gxf|ZAL=$;&Cm+DcM|FSAym~rKRkTJgNTt;GbBo$qgo<=`BN7e zwAWb^^1-EvVtftRl)MwLg{-Y%VMp?8XxQ08@6SAs{~?+yV!lB!nIhXLo&ya`(XC?Q zd+~FG%mk}h!hge%Z=x>nfXfQF<;<}y>%!!@`h~d_Jo4h=B$YDkYSmo6$nY+o^Q{SN zRO*=rWi9G~T14yf3=C)BwPn8E9Leg2mrLwtqTN2O?k^6X3;yF~>*G^aw5o+gpP4J6 z64FsA$%QXqV>Jka_QEP!-^9Si3}eYqvd!k@pw#OyB@#uW?GaffcXc2=sov+@J$*?N zOmst>re|Bohu(cG5S^3JclewtPrYAW zA)kuU0YPP6iXnqqwYjGeB?=2)81e=Z$NH|o?+j{)n(H(f$*po1B@oydbIu5mYAXTX z%dp2srCr5RImJp{Yvz(d(X0;d+Sx;Cp}lisTg8*UVHH`^-ny|kF@^vbo^PT30#d5n;^(taz&>hlYbo00LiO&VqV6oVn$|FLx7Qym4E}?u1AN|_O+lR2y7EHM z;Esm%@^*uhF}7M~8GgWyOYt)jWVMf=5Wa+qT5D8jxL+>Y=YRg$}Q&1G5+R;5ah zAeIA35Qp)i47|Um5Z*osvQ-4%U1YD$5B2mdI6&>151gMaXC@>&67H!7AG{%iMqIf4 z9`E2HtcStGvi$1I)~Z=L$ug)ropNzrgoK;rz8|jx&Ki9W8hfi;IVvuOx-Ve^Z{U$F z9Ql(qj-L#^-ba#hN({#@ULF0T9t?~EB{X#Sv<`G)Dj_bndsGG@K7qfjR!>A>Q}{eo z%*y$@$&t(WoyZ{yKxs#O?uWc0Mn;HQQWM?^bP{Kv8Q(1ocbctTwy>4s)5f=0+TAB|WfT0Mx@8Dq{u66&qLl>zIqlp3;9zFaBpHTo z3#rNXr$dNj{(%xw)Z(;zBgohdfUnUM`wu&7U^0hO4n>oIHN;dS z>!b!%qj1VYbOs%^1cF{iO!nM152OGYLyXhV-iU=tSFoIksL$iO#&*ubhAsE6#Ovov zx?$~eL!oOlw_Xb5+|8L#%(QhG1^UDZK3p6mHnf-G$-SqE&zfiZ9*cV;bl{MZvCARE z=WW&>2hO^a3P{#G`fS;DayNr*aej&JSa}J_A-I%OYg2V8uD8a ziJeS(4~cDRlK#;&s*eTl-vcPISNkvbOnsn zzIA)8B#@nJ!Q7CG?DAH8n98bHcw`XE(?xawQ`dPF3~gDzbLFRgDbqtT#r`IQVm;Y~ z9TI$YL*a&$??TeRUHvC0$mQj#j<_sou_X_Q!SpuO;~#-X5{o)q^%_{*cHa>jt3A5dSB z(sN8QGl9gg)X8liBJkV;{drz?P1y*%gQ#jCzRl|%+(tuI{>It%(Z6{vG%N$jiJ5xZbYIl9i zgna1VmqK23X^`)x{yL07n*~7KfByxp#M+;KGK3i-hpXaIyNB8QDUs#Jbh!aWadT*@ z&Lz0e1L1GYuf!TalZKrdg4-_*Y(?Z8VnM4gwTy0fZgwCqDLsH4D5&8i-f%LI?4Wst z`AbC*^t-pO{|s9G=iQJHV}i@0Dv0@H(b!T-r2&|YnLT@4)5)h(VD~TDNAAO>qodF) zjy&7x>Lu8@)Y#%iBqaWGOrD4H;g4!mh<2@>OOhCz_$7fUZvS#e5=X{qW55UEq*li5 zzMcVA0jwPUq)SHl3eRs?NMAv|9gWK;`mqc=7Zz|+52MJ>@iTEypP?kn^p-rITLdxq z?X|Di%)_VLe`z#RLQVSIjnR_LIN8C`BWTr(0?#yuv4Luk=ylo19gWvZ005Q88hSoK zne_Od&|UxV4g%OaosCL)$>7B)8}1KqV~oqe+sFA07U7 zVGv+gw}8#5;nMt1ueuTCYriJ2VNA3F1jkf6l`avlKrbEfI>+9W*m)8WtMr%+OMasuKH#yJ>reQx3|=PC!?`XFl| z1|3&5X2M-65w=;U66b}Q{exhKFDu%WtyVo=fw$eO$-V_M`Zqt#nVSe8lw>chL7Fw* zggh^n#W9D-Cjw|E!jCGoOodHhLZoX zSvD$(xaUvJuJ-D-%$RR*&nZFs@S(C5GC2Eh0tfhdHj9W2eyX~IPdKEGHoy`a$>zDDis%dPhvSV5&uHaqSmaQ`hI0%_1p)DB6i} zAy1DAT|{gnT{CTNgN1OGV^loH7oR$y5hgFm_K!R=t;1l_NjDH<@P<74c%>ggx~oj3 z^NUcXRJUIAk-N=evTbNm;Kefvk}X%c@ulM z88SA{=C+*>ZW-6SidGflFUhJ2n*ddrO31{%aD2~@iydN@R)ED53#R_4w5A^9c{a2E zC~pee^A3wkVLNf2l&H;F&;pE~1&em@e8&2tU{d2&%O9+=JkIQ&r0VK zInOI@w-KB35Efoezk>hqpddqLbWx>5x*r-J4Z=0*q?w44T)z!{10c@sJq>d7O@F2w ziDd9yJt4Thx!ZlFNOZ^$+j#<8FfxLJP9gmWMz1Ka#uA5-Te;l1*=`9khZv-l-P{jcgCh&5osm>thpqWjHdjX^~W?zW$cPjrsycQ$>aVRCkZdj$F2 zYOG8+7U|F_z%xEj?1qvKJ_+Rl2k;yZinGB5z01Qft=yyxr-a39aW=7`vqirm&~t=X z)WFw+zbFhJcblLTZJ&!c<=`e@vzJB(a|0>a=sCKGT+GYaH{MGukYI)Z_)C`VI)^isLZg6A=%!+o9{lt)0Sn2| zVd)lP)3<$mX0Y6bl~83Z)y6<%8@%A%tTb|STS5lpqBN^O0(wnIfQPX^#Gp424K^yG z7v@Hg=%?OEl881R)`P`^8EsBTN(aRA?$CGRZPMGvi5FL%JvJxLVyY2}-$H@Py!a_y z`>wlPL$J@jPNN5`KPQj{Q}?voQ(kp+OI|7!4~msLOw<=H{2_d2QEgtX$Gf?(LUphV6^?qJ)U-)Ub0!2wZ z??!RPIF)e9Fo!+u2FgyNebVpV`LA6%Nn$}y`?6f!ndoaGhc{y4nbsZnSwqR$4=5ky zxnL<2S65TQQw`5W!?#<(%2wnAOqy;>XiS0U_%eNyOuqZ+(z#oVCC=u8)*ya z58O6?)Nb_PtlA~+ZyQtWWXjvmh>JP}!4YA2C6Dxq&b>gIJhzYGr6RXttW(GkG!L`$ zwk(8uFSrpw0%jN3c#BPGKD@m_gjI-8 zYwcWr7PL7VXU`Ae@@?N=>)&I6-Qc@8Kf4d09cy559J1TnrImCoQE&29Pf#0#?8!p_ z%Kqo>qBhRWmdMo+7pGPDYR6H|Xc2ADU$3o4qlBL%$mRC5X}}^Xs~}Ss8zM@d%A0QB z7jfLLJXp~Kma+lUt`u>`E!4`m=pmT>{OTRQF@B3cIyhi5P6ju{SRjN$)a6mjYZHtI zk~i-$4NXh}A4>)a;2a|@VKpaoVEG0_x%AW(qcek!NEuDhA|2oIJ%?c|_qmkvJL-^`ab@{0K?1QZ8G zZY^}#fZ*nC!uRy=i-^0M=-}s5-NHWIz^^7*<|@kqwrGEkcYQVu6TAb+kQFV;WNR4* z5sJ^Y%K1Y$q1?UP0vG5Cffl8ohxQF;pxu_crg%i-Ei5KFShpuOPb0c};{1ky4>Rx5 zl;v~oP2J?srbQ+nG>h?Ud~=x8RVa3OYOC;Z8J#Dk^9l>ePQHD7i{}Dv{Y(Q&^$6z9 z6~lbQ#BS21-R5lIxnw5Uvz;TTF>Ts~rrG39GxoT#AILYb;LPoBT>}eON3u&_a&t$= zb=*NI+&h12jR;=pRA7X>_O?cwOG@nm50WY?gGrA{$J525xmZ^PlEBSa(Z?G{g=mH( z282AZk|wv=u}0QR0vcHK?$H%)D3!`UG|r9%PaNIGA7zR?qQQ}cYo9u%UJ+*Sw+PsU z_rt`vBj$y)jfl_<{|L+Rp`a9Un98j;`6$@LKK~G5LmWWOYW=%COOI#LNaP*9bP3V* zeoHWKAkrdm%@C8b@ss#Hi_kXJ4^nk+{fQ0{=?hSOtOZF8=3o6h zLw@?)@uJzpEKIVO-E2e`%q#(8%f8DX?Y_4G68$gmjiQ7i|#}A`b9MB=FwvtwO;5)nD zGZPrM7CtG~A72Ai;14A}08=g*e{sp>y0ZEZn(4>Ogv>bnS!m`PKsn4oPXGdnl1c5Qgq<=@9rA=fCmdT@cmx^mU}Z-P>x zEf&5j$MSyURTf6bcPw`jspxo(xQoRGwG7D_`xuDCtG+0Psf<=i$k^xb=LCn6=!JZi z8EA1%KMU~8b<>1aWk;-A+5Xx#6jXdgQM$o0@M5Cn$44!v+=Ic+ueqL38Kjw|$ah*f z#yp-)H{D*$7DJ+O15MQ#>RIx5X6W1{j_ zXI_P@UC?6DdRs~%n1tmmsU?X+`P|soJqaN4@oLEN=&U$fB5{? z)9%P48*0?`m7E>9SOHzO6%~s|{t>fsu^v*9y<~L{(-2(*!Cpgp!Qe(*adJT95gi%! zCQO87QDmtZ)XAuA0(oI(%^nkva5E?SH;A>y?G5yfb#b$jxWpBB#D zVTYLuK6|BML3cJ6f=Y0X$a*GOW>SIQiddD!q@DY4B6+_Iqcaa>=uo(Q_7Uv01tSY? zi$-~T$5j9j6)hzNMMv!C%A{w4)|C z3wa?`n9a=`W2-B2rfg1Gn2CVLSCXg4)nY99EH{LH|3RzYQv`tARZamCII@nr=OB)BhdZW(K6) z5!}*T9xNZsT`gdjjV3kV21YKkL|fwJt|RKR#n=<$hXiF ze-p#OaW-cxMvwaT^9#8qp*lP|M}Hee^Toynl9%wj3hFoNAaE=FCsdr>j<+4Cq6U@+ zsttFxrGKpbamcYjE{h@}zsoxAH&p+^)tjI%>!c&LDk@#?LFzE?|{AxJzXuwzl5>!t+X`iWNWKrqLZzsIJ_KW zx6B`-rwziFVHa-mI>)CgdxL%o@_vKXF0t0X0(p}eVpc|wF=b5=b{=-sA=he2v=K&IyzN&~vo?~pdZ56-Ir2gG>T<4D-wx1M$ z^A(#H4Gy;CL%L}Q?1oOh!=Mu5y-a&?m$;CAhEEu{ZF=;4k@Q*1fD#3GSb=qH#@f>M zX_30u3waOl1k1dnx4S z<)6{H1t2zhjaG93~r=YF`s~Z{BVvz6w&A)Te z_x5y4L!EpmMU6+Se&{{@8*ulHH%x0d=2FH&SIwzQUOBqvcV7qbCBzQUUHp~yTK{vC1qV)UB zWn=nW*DY?P$>6%upmQK(Y@)RHIoVE3FgaHIsfY`7b_Qji1ua8goh8v1FMB}(d$VLJYuZ5nb|HIbEm6G zNgh}h?9>$zJlIcK`@Xt()l?_%0vnuVghnL?Yj{&)51#IP1<^tF$A2m1@~Ih~EaVxkn343K3C6oIUitqVl(YG3D5Pt@`3o} z9cXN5&({46e?i)KJ2n2!S9>9dNTT1^aa70~Kiv+V>&luM(T!*RNmQDUGqQ`BAJfIu zi$sSOdpanBS#k%eAEJV9+uaU-v%YJ-HJ|yMC*z;fRS8GX-S)vNQ#wp!>(Y+JxP%rpz+CI>%z!`33eM@5hnMx{Xy6c;XK z$TNU;{Y$IL|9mJjP_C}oDI+2c>qRt7aoG@S4eE97Wf579=^S4k7!9r^*WBZ7lG6Te z5s!5(+h+bqNtQ&9QFK;OfemV&3#OwpUEguQtq0S{gB z2g}JB8d_VYm=cxjHx!B+W)lKd?D0)=9B0gijfgDuQ;KJ_>eg=yXvjx6$scN!wFhBc zSW6Pi@>93|_1Cgs2~Y_BMwNktb5LUPMJO#Utpt1J=J}lV_wOfYk`E=>Uen#qtWs&C z*jNv>rb`-UZn?quh*P~w(^5*laC8lgr#V%R9QK`j7oov04cxKP7rm(UeL}Pp=R5EP zuPPW2ZoRo707=+nKpajI#$5w@gPbpJ} z1nrGVQ6CYQrUdqZZ}jv^5R|P4bWx!}{?_XK+^OlMPEh?HS*~`~n)r*?X`Wi$y2o6Q zF~Q7M)ZViOa)|a89YiHj5W-3R)%dD+oGqh#=8U`Yv65KXq}Y*Inn34J@A8{gnvC;g3^T6?>*fy};lwQu zD^Tcc->X=~s-R3X<>f93o0sVAP_?O1fZwWTe40*k!Yf#j|L`1{$tCf$Uci%C=f7wQ z)m}1SN0IDw=KDbo%CC)>`*F%9XF95&=gC|WJn~iU=*UM;Ci2Fy7FW*q0!8ugr`vet zbzt%|mi1=(XL41J1sa~D62FgXq+HWP+`h6sNYz8%u$py^QUNdYQAU)%$6%W9AADirv6=Z>uG#v!q!rh zGZc6(b7xA2DPP!w9^3PA0Sys9%Wrgp(Pd2)a+%T^BygziH6RR^S-#W~^;)wT7F}B` zlokpN|9uGt*O|{FB3>^P%m&&bDr|R&DC~;zS7nSHlnK-zj{FEZjV*L&MlQ{&J8l zML9}t=!66gt7Sh}1V8YC$G5Ij?GoczwQ}L}oMuj>4L@2Q*-XLkd%P_v*K*!T<>^LFdJ`F^GRxzz?s;H-0pSzthFsy!d6l3T(gxPSLBY_=CqDjgLyt)(z%pMwe2!I_ql_)g*flce=Ba@G)Rmi+kRs5Hn-zbq z-Y4=yT+0JXOsawChqgm&$yKp?!Qh*}-PhJb2P~Dmt*BRIkAG)7ol=c}(d?^AZ~1RK zP@|MjPZBk*M&!sE*D0VdDUyXD`{`L*)UwfHa)zz97_y4O_>_wL+L=`?p*Ixr4rK@* zYXX(Az8Tyq@4d7#OutbsnfE}+YsC(w64Ym67wI@AIQ(*0kNMeh!0}Ro$c%)H)E3}d zIq<~g*s>+_M`w~4dV$lvRn><97n?o32zjny1bv*XiNtX8>=2n{LA^xXC<7u7Cdi7K zIaw?%CQ42iMw*rP2oC0YukLjrexbZx`-Oib^qZ#ewws~0Elz}Q>B8meV(lyALRy`w zmpF1C(k&|{VV$d-W!zG~JKAyAdqv`d+OB%HMh*`TmPO>p5EgXB-f(vzyf=7I1#qa8ra*0|Em@DXT=(xn2{Gmk zBd7NQfcV4e6X{UFoqX@lO7FQ)&q7CqZBQfi68;IOJ9z&@0xbFz)pF*U&I4> zhXy&05V8ea(fYhZKLOadyS$ZowtL-I+T5ucGCVNsDQvgwK-Dc_cz<-s{A*?GS-uY3 z>3Nz9`k`f-OK4E1McWH%>{-cec_u1E+|`dDQvJbUVU{L`Tj}*0?%NIfXm!m%0sIS9 z-cUbdyJL>g-9=-gX;%P0lY*w;6+PRw^J~7yk}q72-T%(9IL-!|S)&vxqMv8DxI+wOjI=xXb>bA_Ah2z9GHEXxLa|$W%&#~>I+VMLd<2; z9JrE$m;t?1##X{;;Y$Csb?^8ccydK(nD$bxLMMmo6gh#kw5wf_8%!+D25ZE%#V@Nr zlZX1{=cizlFzx@|=iB65@>&uoN*W(>qUztI8=z6ZXRpum%SHu$~Z-GfCj*HJPAAcvI~*MG-BjCIJEmlr)Sbq!OBKIB>MzS&f z&I|*k?z$gcxb%go6i-V+&v(z)bam1btIj3TbEx)CAKw*k(XgXNO$C=#9Lgv4J$hx6 zArKnc>vbqZ@W*dn#(lMpt4pIw0IY^xd}*S(r(Je2+HTTDocAW5$dWDkz6j~(?gF+G z<2(}1#e7o+vCZ%ROgdvh;7i%0j8o?_L6_yv5x1QjqqDbI?DZO8UnD!$v9fX|avEd-spx&Stl zF`=hC4s6R;#2v+PcwQkjxX0Wln^GiKWf*wpSs-Ivt;7JW~*&f#M&?Pk3 zsjZFJ8f40;(YdP45 z4!14joWVKpBq``U72!5UY+nRmS;7Pasz=oR<9@=;LpXrw^JsO_y8Oc^ZxfIm6mGxJ z@GvH9X1(m0f)z2E@=FGAHXr^gjmJt;0=hbNJtgAkcp8nQ73-%=8D6m~V9!=jW)m%c z<-eego4&;Og*8Yn%cWuaSn_V4MDLXsxAX=LK?XsO3G{PgKHY#1*^IUTynOQ&B4NEb z7~~OOC}*9+ZFmr8Ns=eU5jBavHIO773pE#aJOUKBLWnvA+Ok7yoVm6#S_LwDY67q2 z=r(TKOQL)yM~y2=qCWjH6q}iXo>8Ow1#=+z4xg3FY*15YyiNDghWbkQic_-ZA9H^# zGN}ohc*WSI|8j8sfYD_8Cr+bZg<8gwp^DekGq)PY6+AmN@oUl`hig~_~M;BeAuj=dQ6}7{~yxybB z`4=tD)hcTC8wnS$!6_nicMYbO=38vBE>PVk>sPpfDQ0p(U^ePD;VGC5s8 zffVtR+D|X;X%{@Lr`&NSp7{AZ`g7WzZ4}M8=!m!tq|GwJO)Rmt6D%12{8@aM=5C&roq;6>tKe)afVUEV|0j7#m}#EBK7vWjezdJ0{H7v1^&OUk{nR`sDo}ip zvb$Rg(M|@plCqY%J((!{Tk+(VN(KEr-?y&Nj@^sv3OfM}CaitDD(qr-ic0W7g%?xV zCq7C-%iBRvKKm~Rq;X^g1M7=d*IH+aBd!E@YjleT>DnTP?<_f@O49N8JT|h7$vAT- zO@%tC|GJ>zI*Q)-7|cMB=G=2G;)$wF+Y;F>u-npNLvPWwsL&2b*4j`o(eeu>V3zyv zJXZZZR^9Ggw2-kk8!xMuHgB2=!4)en9cPG_8%w%jg{iD-0B(v;%i z-}58DXpvLoA1Fb&am79Hv%Rb6c28bP<5n~(^_ZM5uN7}+rD#&`to}i8Fb6BhqGZQ$ zyh4)4`zkqjw9B%%n9nme>J!qNmDt8&^dEKQQun$m6*Q;iK}H&oTTVsa$+M~PW2RZjJCkeOEtqhR!D#dKU51_BSBlNLvo%uG1sQx$HksKJ#S)rShw zVunYvpaNpz$Yu?>n2wJlGH>Tu`%IIdjNusCokV-0;Ei$LH0Q94=Mj8r_~$7x>i7+h zHdDGJKFFyx&ji}Mn0Xi)q(@nIMA3?m@5tV$YDRd8v0BcolWl+dK)EDkK?9}i&nNza zBFW32YYzSd`gMDyTR({8@t$AbJ|AZVn}yTs^a~h6b&oA@ISbhFNLiCRf^c&FhC=F@ zG{jx(p76UV4%nYP1ZQNiNLCC$tG5S9q>CEOJH)WmP(g*gLI5Qe8HwV>w!sOR3*Div>Cr=>b#ub!3@S1p~Vm$1(1-mYoR zY9yRFqht%IXsaQ_OH0ZW;_MhZv>Pl&YtwPqX$amVyUIav(rb1cy-m! zo@`v@LVT?Omg)6VCcqF{t}eM2fu&7b85;g|1P%2i-@8=jM|JotSL=xw_tJ(fq~&dZ zKL($_zc0pNyy>2U=)|9QzG^;zah=h>7Nk3lH%-S-H}e$A(jP3JFY9@=?Tq~Kgy7Sj z#i6%V3~D~?FimU=XYn#Ky}GZ1-`@)dlera}`fAMogYu;osPBV6+J3U&U?tR-XVXCd z&PM-1V=Mik!fqCripkw)F2B75^;-rvem7&XrM~mB9<&p~V*K}U8YIgvDxAaY$Xq$z z|2>-r#lYPSTbj$E?pr!I&ogYT$Y{#)_F9RbS>5-CN*IVaq?TL{!~TD!;^ zXW^;VR*M~HPl2e;gA_@g%$kxfW0tZA$+fj21(H>zMiYED-C+SjaY^rDjC$8@ooDtZMiw&(%AC@z+JgDEO zJ|2tSDb*2vm!M22XgRL@q~9Di>AAWW@3;;+K2HR#Z%@+TpgHZs&&BbjJ#%_=;emgH zC3)KD!IVk2^Q!*glYnpJM&BRMm@o2s{vxHTmfDXCe=QjP8K(jnSrZrZ4b16c5*HGP zq9R(kULd|q>_tB|M&d&8`%k{T0l}IM{l80PrNV{<6DdK%o5lMCMNL0g?M6v_O@R{E zx{X(r2`tcMpRL#wDc?oG!`KEYfhyK;SkDb?b(rru;W(#nMU+&T2~tsD@eMd24Ydh1 zxDE3LMmsT>zJ<1qa_uz-z9lTk1Yf;TE;)d>XpcnwDz&5f!3R%0@$+4ML2lxt%NH$p zm~&N6A(rN54){pkcn`3nhR?Ng&ZI6kZ z9iPP7>|>~nV;Zav!J#2aX5KbcEMomfN=w_+Azf?y(U{La^1^=+{=>2YQvU6z{9F6R z^TLDc9*0e)MmtIXdq=*O772EK@;tU@$%8I&_*zoqPJYAr+Vg9Tv#~?Vup!BY7G)j! zAzsu}M|)a}-byYduGrN>_3*bWA_8Xa z|DVT4$=7RZazOLqRVLXRcC zM>Q&iI7?XTP%3G5`};kt=g<4tm@)OdRqo<16(ZiJebvM&p#tO;eHS>_X?n7xM&^y3 zlw*%%WFXEWS3)O|1cw#^+M-DT%@B^7QG(l;1`d#7{FLxzt01IfwqM4o^v|23h3yR| za-+=0QSLlZB>~#ZlsPM1~aie;JZ*=P`1a zBvGOZ*FLM)C68-72@LN)B<0B7AL1d)=ZP?T}f_f1uwOo|e;cIY%mw zc0JjQ~CVe60*PMHoI_uk z`eH>Sp$hfv${87WwWn1p!VA`qQ$&5!NcwdMcd{EoK8Y$ov{2elxkC7*h5o)3|lk-rB7U#Ogh0iJ~ zsRN-RXh%bLcFCV3dCG4&_AbqN@0eP#H~vZdEVcO~JE!h%B-~c&Pqcxz59pCq4 z6OH=M?#*?7im1GUOmH7Vaq9wO#}_XN%OykO!}zeg5!`sAg}@bmLg3OTzfWtoFpLi) zb&t^MN%nuLDr}@TpAE(w$QM#5Ms@Dw6D=?GMXULfj(J;eWuJ9z`3%zJ2&sp@u7v?} zS;^?g$&d9xt&4~ZbYrVB$Vc6q{%EJ&^h-IO7T4FT2Zr7dvhkBJ*Xp{$@_WZ)(pk&i zReibvJyLr&MR4I2{W&HwsAlK=b!uEC&pHU9XX<8BBD5V|cM3|-`yQtJZ1Lx+F zJFq7Do~|D~9W%0C0;3}C$02ec9l?0 zY_5qI81v9T^T(;}@iIhCZ*XY{8W+qq@Sp%s{R&vLl;RMBT6j1Um$^=jx)Uah@&fIbBtC{OSACe`e!xi3!C-8Hwc>*nxo? z7ZkiJhz|Rlz%7)PBweB#@^Q%PBf9kwzm*Z|4{SgMvZjH-U^-m7XMrcAzV%uOI_xSy z4vh@KE+63Yt@V8bF?&IMU%mc~UM}+Hg#ZxG6ylJV=-v|etMo0B&6YXj;>Y^-69-!n z0YdNQd70-6cZbsp8=aE7er6|^!^hs`ykYidw}Wqjw6@lsnES4;VD$=#5Y@#G&$T1%g6F|^2hfgqu+2@Pc~%OfG$ z;B7OB!c4y=D3l5RopA6>-hpD=;kL;*#pGje=lI7NKoO+^8DX-g@aqpn(8$UD7f~jQ zcEVSel&n z?dV9N`c3167r}jxxHhl1W9FM)BUXvU6BnSyc};?F4om)Y!WV*_TSY_?9maEEv+S6Y zOp${qhWy{4Im;iQd1TCc|GZpV=jj>p4aPS(X54pT-!L$(^9nlHbgt1qNoKQJdLu7WLmzS#m0O-BGurS`z=v8%F} zmL=&Rq)*sZj3F|FZ63{vh89=Wp(_C+PnWiokXzodpI$yfrF>#zrvBBL%#r? zWbiRs-tyE55^HezV6n)L_M;;%mP)w>Aa-0YFHCLut%w8h9=MW?5x21tWBfY0T8;u4dV*mj22WgDHSTo1Kf2%3L{SQn=);_q5qj z{j=`f78=g=Q_Aff_*SZ`V6=KB;bU{^r4Q(2IIMCLKc`S|C_gsDO@DYOi8>~si5lEix&PnR zmzzJ|EaksqfTq)PKefu9*-!tP%pvcf*{hq2^~ED6=W$w^#8p0usgULc69U`y1C#tx zM0oin!xKe2i2i-ay50%lDA_jKh_Rck05^)SDsWH9*0y1!86#2myzi{L; zTfSWK?~8wgat*%^mv`V!uz_F~MbS-Y0j2Zh1=D)%pDg2VPH_0XuX6S%*8{ANWkc7c zf38c#;axERM(*1YgH#{swX}UdZ-a*9HW9=(g`MmdMk1is88)@G|K+VdLSqX{Z~bm>1>SQS%2mZA5Wrv9I{pj@22NX z?o*ICF%s1}E)vWw!(n_I90Lg!cB(jCZra1J74eS7&l)XGT#?6Q{roob zemLe=SFceyPEH3!AlfOW5cRLfSw2awsNchi-&&%w#Wjd8MKi0%D;yB6l@yxb8&5lQwjB>f$W*)zac z>!(G)xhG}f2o5wbSLzu%#+K^2@%%`6VjmkviYUtpr?QP^iIiA90*uD3I&dKzov1P( zMpKI!y*C@_I1mAC&s;XZ7MMr(Jvc=IP)lOnZzMp+`4V+}1`{(!!gN}D`LB~qZqeq!)X8~;K{)B;j4 zfg%)`#0yJh`!{bx-mmXLQR6@K2nHr}4gp2* zVOO(!Eg2Nnwetrt`^X#Kg5%@7?}8zIErCtat^4}r3PU>I%>qkxOy};NJ;@R@s&j4l zZvCoBgGKND!EC!aoq}9K#TFq(KzVUU@3aUULO8QIkS!tiCHvYB0(|!O-k497tv>7= zX=Df6wKDeQLL!Y=#Og0^LO}zULiQ4_!kR0ZM`T$DnA4C8Ka3Ar+s$E0!zb;XM>NF` zQ0Jz`n>Wj73<*PtXmYpy1fA0Oy$&E1svZa^rKR<_{(|yzFT(&5`hs01u56#jB6=*z zW|eJbgIWwm67@z zTs*QCHc6azgKuqZGE7YUQNpJq2*uW>6fI#Zg!{+(s?vf> zt0(m$Klt{ux*b3pX#U-t&Rk0ObetTCNzOW}=@29si?HfzzNsmB?iTx72di@Yzjxnp zKX(KoG&5!jo|Nao) zw!lrI-I~3{={hC%L+Y3YHK|qXj#~D6;szv#eOn=yJ&(w&0~m2U9I46U?0@ErXGd)%laoG}4 zBUtS^tqI;%&z|g$+Hr)FYSX^KIvwySHs(21QhqF^4B9deFqDaU$bww4M3c`;Tt5oX zWx*7fCfqt_wuG4!0=zU4YCN14h#B+lD3v(wT}ltiV#Hw*s@CU5MmLW{O6=!+Fcvz# zKE!KUc}3B#5Iq8M=fCQsT8+lal||1I!$37m+4wZ$qIPy$9xmbZ7=6uRi_PR^2&W!V zmh40Yu{>V*eZic`)om>PZpvK+12DEp@cr+mJb!=d*}#oGK@8!})v{Ss-`LY*vzeE? zy|Mu9_tA=+qLzjut;6@EdR&&dmB-P>nNfGlxmrIqdtW^nJ8i9Xw5h9)lHWyJx*hC5 zG3?IAbYP}SM^TSudno&Wkl;+@oR)0$G*? zF$6>LnIjf%rIb#U7-IUgB?+aZxs^ITxa;!K>^4^%K8HDr2YZg_mQs2p+-t*fqzE|i%)t&w? zQfgEkttBx`N_7R)YMaS*ll&&qMDNp|L=ED(4+ZN$JiYPL5;`M z0bYj{ZhoDJ=GXN-8nvy*q@NR2Gw>Yb8DnYB*WV&45X36wn$U?5bXyAo6EIyTTZG>F{*m;pKBIe!u=Pu+nE|-J?Wk7EBqWRy6>fEBv1tUlG~* zkOa0<@QG1uGi-jEsa_te6kgwvef#hi)hA|dc<0_nY_M1i_KSTnNy0oH>>T}u`N+15 zHR7Xgs-P3kE8qf@o`Cb7x+|FW%Waq-9p~%6uz_x$!+kyV2m19ipjtCT@h35Qpw(~Y zcZG0dxz3=f#r4RI9-6Xw3u~yh$b_ISsZYSCh{4+%-NteB-EK@2c$vtS`ZkY^u!aEWh9!=tzXpEaBYIwfbN|-Qq?(7W{q9vaJNri(HDj#=xc#^KS#7 zZy?2pbQvjxkOVA{5-3?#q3=9OjnOD&bl1hIlq-)fC$9@=B!$74joG{l-`{_co%cK4 zx;C~`1@a;OBn+@YCWcL#B(*(D-bJwAknR9}mdzO(f*MTQ2IO&8)S+nrA za@0NrzSatFj1x9UZ8`67te~s)k+l5|c{2Aw29bp3uP-T3hX<*GaQiL=l7^6J5^9)Y zQZ@Xm)>$Mmv58r^Fvg;)f3SG;5~x3l&)*?SrBtyvCJ&8x1Csxg^OenJQeeQ zPh~jT5-nL`Kt^0at7myMlDb#(ghz=hgtE+%$84H#ATsAMttWR5Tp?hVJu6!6F25LW zk!v3%Nt(hk1L{A&LG#gby;rau{}SWK!9Q#2s0^plHN@92hkY8zvBokj_>1ChEV*(zPBS*Ebl9aaBymDc4mx7!0}o)}~o zc8OVm>_pep)7R2A%b>2QiGV$(`@@O2_?IzuetYe^ihNCMiMh3Ni-P#kYro`XB14>| zN#Ae>v_Xu9Pr!j&2%J3T{AFEz9p6m8+hmmpy@bDQWrDsnwf=@xX+oMV4ktOIdMuf5 zR0{zcR2#9p=`TOcJ!O1hhtOTm4_;OEhaRaPsxavIxaZH8OTXcUkIhemM|>UfG^K2Y zJWJO>Jy-yJ#TD+vamOEdLb=%>z$$akad@!Z#}v9Er=w{R&yJU9^?Qk+ z=M|_MRe3-hv(4L8Q8KPxK9le0Hd5hfeIGn!`fDaMVUz5*B-RIpV1vjvtx8hHDe24$ z$(2iH%-;CfiCKzzmE%)F>waHgeOPggwFYO15AJENm{!??C20d+Qi*E~=<`nPA_euAit^|N5AiR&}Ha`TT0e|mMpcE6kIzZEKk z<47wO*+hXNNQ(%kPROkvN8VTnCHR%Zc4YXvTMl|fTUA|G2ct+(1WXyMKHIIyv4(w~ zd@7x+cr`S$v$Ck7UPKrX5EnN)F@%;~B1MkseW8H1 zP7U}aHf=OIw%1t^F!#M&0o)E-B=WnKS)HUkl3#W`!Rh^tPZS4=q&49yt3`vUzPvxX zVAE_$sZVVW18gO1M1}F`x=WQj1J1{&vz#r>bT7UO3*|GofG;HB&2LokIi^S^pP zXfig|E7$e{C9An4i?ORhx0Dm9TIcN>MbFI->v}lS*S_S^riUoBSF+j;?jZMcspErd zHm(F2Y;$2`{i$ok)GC)EA|4kyFK@A^txc8RWp_RQ=b*#$g^XAgHQ#)8ebg>o6SWL0 zxW?(t*);QGoyRC2TQ5z1+0XqGm;F}2YY)aT5`n|F!GRP_$qgGeW?Mz5l!~o9@mD|X z;k*t1Ok_n)<1iop-CV4%u#%elOD(OLJ4Ml>ML@9aoC8PoScv-p(=U&HT(ar7F@Luo zOzZ%b@CyD4*+F`z74MOLthf@nX=aT)Kqj}nKBC|ZnI!)2sI!;~(0ChxeOtnVg9VdI z#!$GI;GO|VDK|<@y|K>JBhZ)?b%+aN{tMSdB-#5sb|JB@3VFJ)s+i5|4QzDMOil|C zaFsYgZ+)xn*V}t0A|%Ei1{Ynl)lq9dFmr9AkD+2K>zSy)lG_P#P0L8xc_uUFw)iD!)9p_~-_F`cHUj9%*?-bsDKnbY!3JRh za2)h-JabZJBjngaC!!Bj$k$5VqTdK9trl%pDp+N0*7qfz8XS55cC+%lX)|RED?cqESo{L0(KmFN9>?56_QU|$DAdTLWi*lO160}P>(p_0Dm=8R#hK`EP0 zL=+1)vn&pF0TM|0^UG1i@c!>mRI)ew>-iC4@L;Y63xHj1+h2Z<-WZg>umFrx*Lzht2iWub4>TzOU@L*>GtRi9Ep#9wK& z*uPJ678H!ja14BRKf4*iLM3YO`@Cw9EK(<(&`zcGgX zVUoAnQMU(eq;}bDwxgPnTnJBbu9iM0cIRd?k!9U~axOH!SLB0Jcsx94$C^=(e1C{1 z_8*@wYX~JJnxm4qSn^pGjfkkIH9<;EjS~~;uW6CgJ~n>}P}lL;BF;|ZWlhzx;yqtf zxl7cYf#oZoSYD;-d-CSs!Q(+p9&aF?%DD@ib`ujp>dd{8-;zz1Iam>35}}ejSO9wAv)8jsPBi*lmQuYOXfRT&?r z9E1%iDKqCk{eUs-3W`$Jc{>|d_WF(1aWATs*)r(NCiiOU=Fi*II?fnP@dNlhT3PUP z__%@UzE;QqORE^u>77DKcatuHySj={9qh`Kl(UN$aJ4SUt^qo^{v6M{t&GtovU=zB z#?FL;U6f~}$K23*J_^=7Cbg5Ic~v{J9l7UMH1uV@;Mwz~?SU-_iPPR#U%N8cXL8o8OnPS8J6&~Ggrc#w4x`95t=p_uMXBw_9~F+4^Ac39n|}TpGAwa zb~*ATrW&Vcb<2a$NtVYApZrsXW5XXsp_CbA`Gi)XLe#gJ% z&W^Y2-@)McO6S2#HupEq&l$s*-H!(P`}ERDElPyNvzchcd=cz~rS)c9_=+W+B0i!w zvw!^*haqLd;}FnLc;SqYagF_tsjm);>I=J_VWev$1qnwa1Vrf$M?$)#LqNJq=|LI< z1VK8ayGxLg?iv^xq&tKm1@FP%_uYH{_2GFubI#uTUGG}!U3-mc1>jfG-ny!U(ps0< z(;Aa?xh}GsgVh}~@2Sv?dU%x&UCTOsf#HSa_$O)~11{!a8Hw`?S^y?pdMxs7E(M!i zUwwsOXmGDBxipEPGHdlFFAbI#d1v#$MwR1W6C)#AP)p13ck`BmnU7;ISC{;`&2An# zra?o(7j);D?Cd}}4ANW*00j+Q56lL`ZJS>*#=e^yBGvQLmIAHEeLd6%KKP?MPcQa- z6)^+%YtQ&5m=)P(x0gcOd_p4tOO9ePXqoZnS=A?mf zl&GjMVWy?fA0)pC)>D8Pj&t~;CO|J*+@aklElSeM$8zU~aZTLJ1$B@oG9qkT!a05$6gEE32TTiG{V;mh$9=2l zQv!_QxZ#$R`1gAz=?ZQ=J5>VbG-6dd zckBWiT+ta#TslwoO~PuLze#2_6TR`F^JfDUL_&%&!pc54Q5zRg-0%w+qaKb%B%T(H zG-+_u2bD!z{lgKz;0xA3C>(V~J3SPe{o20sXTLB&+%DQ0 znaAQ+c1>aMPh6hqzM`b%Dfq5`vWErRYd%z~vMlm|P9W_9j|8D?ejgE= zf|Y43GM6?AUP_PEB>EP$G^`T`74JT2v*|jly(js!M zT@V4*Ew_h!uZC6j*7mV?KGgGzJ*v~VPUm~l?}6xCkRV!qfXJZ)yN0iR_RCmdV`FJ+ zyRGP1Uj9tW&)SwqH}qvgBnRPL2Q>+0RgXd3+R~H1MVHd`x5w&4-g#(E>i@YR!ScY> zI3e-%*Gyo|g5Oz{``_H2dh^a1CMCRdB~@2Bj@cQ zHR!=hY96ghN7QvA4ZdEafGcSSfu}r`ExwW zPHCd~MA)eta|HU6o7PyE1Phusf&TCor-C&)5>|@seEWCrM#q-DFKNr;c1V<>Y_oI5 zS)HygN5krS5qqWm8_o0Pg`ztD7i~Xqa5B?LEBw=gh$Kd4UVKW&bj-8>6Kx4{g14;9 zAJr_}_e}XNn4qasuc^1lwY`>Z5$4js{d3`}eO{K1OZ|JyeY2zM^?)&k`2c#4*aQ2s z?>Ul!iq=R_g^u=)f0fRMZt$DS6twT9M>olir1X8XDSlwsZ4X9~$;fSaYf!Jh z?{!a3ta0;IqR`k+>Df={-Qym&YxVJwhBpqxV z4lwPZt#>csm9X@!BfTcvHARVUpw%<7iBMKH!O6;^uSdl%KQ?@3-(GSdWMORr|-j4 zn~rDA$RK+g*J2bE=#&Ld!olby9l(ii@%rFJ_WR@Q`QI({0x>2n)=4dE8^!-(Oo{P*{S;)W;8$ zsOC_fFW{_4zdAnR^ueA(jg)_9Uv+^f-M96=atobOr|XJKVXMQb@?jo<-+bS>vi*6q z&+u`e;$KOcjqRH*Mib<(4&DCA+~X;b_}IA-#yXp{1NiK8R&gc5#$4(7MO1ft)q!>H zTMtw4yUbTjly1}lOh_9iP?2FuT+0*ZKmiBE71#NcQ=E!o;!ryGn-=Ufun?^C``;R2g zyjj!EMj?5~>p8b9tgv=zJP<>+1c7PA`C1@SSk`N;701{hG#uSiClpKzc zIrPX(+&Tx|$|*KlSNr`n1E*)42?@Q>yc8 zp4-l|ZYrO$h6lC_Q3xm%C8GQ^`>_Ewy@v{i0VQ}AeK7v&fw#l140yBkh)3!SISo6<-fw-gmSxnpyiebZQMhln!(GgH=Rzd2DW8iR^$aQ5%XD! z+)fk*x{!R{-U(fSfSQjQ+@#C;Qq%Xo(W}dD=FTLpo|dzi{#7AC-F zVl|e1AAnb}EW}7rhutK~(+Ot4i0vddq1d@+JtL2s+V@=ED1m*FJ3CVSV+^#)`1WI*~PABM%-#g~=G$p!NjF91&QroMF)-=>SJ1-DLjx(Uyyf~`RhYXH!tT(ARd_p#mPiY=A{Y2F!kJ*URg<}y%>kxT5&x#3=mPPbf`L=>OC z@iaI*pV*z;B8}S5Fx7|alegGky9r}_!o$y@65uB=jz1J^W6|yM=vFH~zMr+o1GTfF zqd-J^zQ38i7NdK1yST;BxjrFYxv#EH4*au2Kn;`r%^8P?+X9)9VKvk6$9+q7c4A6i z;M!D?g+uhjY$!bRX%VXJTgFsYvdVqPCp+A?=Bl``GN>$|I4F7is8n>VXsYy6CJ}(^ z6D&mXSvCw;y}>M*mC6<|i)|BhQH7M5=s{Xc%n;C-=R34m+_>_ZG9Ez)1JIVV2ECct$GMO7=$qtQ{rmjyL(C*os*8qe)rZ<*5qSB|iL z{&xy5I4)<0II&pJhC{W6f6emq@+u_kMA`WRzVb1FEi$_}VNW&n)EMYfUI{aCiPIQ^ zFBH!+0zK)~>)mJDaXEW}5z(D=nVP-9h#_tLVv9u}?>ttysW?w`vw}$EX-qL#YiI2F z_^zpoEpxWY&DE|Le2~}$*$qu1h$@R1a*KsN9qOTFZ-IUpwvJ$0IDFPR#oG^$&^Hy( ze|Wrh13b1TQ{xk?>9-l$gF@7>PR&QScl%OrkAzlXiurDn<_+dDRTn~*sB^}x7F19q5>Z$_WH;*|co$U~Bao=*4cC8X z&9LC7VCz9_?68X1vY?8At`z;ZLLmGt{JReV8+NK9ORz_E9L`^i^4i7uN69ntRDG6R z*+^AjUuF=d1K#q?YdgUYo~<3RvH()Czc|hNjZk$B&a@rg{|j~$9HDM2s<0duq=N+Z zreo{(K?uj~zw{EMRwGO78Z3o$ z1+~ZSPL3=8bjuvqWN3ArI8F3Xh0fjw55%kgJwDVLissJpzfT5$)1myV>MXr$bNrPHV z6dWZGK75qy9Ev8B+#?aL0IRY>WUa)&2sIpX>Wj=Xvh0V*R_>d;QCK+hhq~no`Wh&p z`m%SKVs!-|LZZKxoSsDnmD$;_uf6hclnITSO2(qWC)zsZlvmGM-?__#1?CJ7$Ei^24FSt8_Vb? zX@`fJ64@m4b33{kVz>_dBB1f{mXJzY)rD%wg(@h>P4C6d`lJ{}Gwna-EejGb6{BM^ ziNpN#m>z@4R4`|M7sO}Umvh7A7j+z%Xg=K#-b0tg_Wclc72f=|S=lLS$tW~pP$mm2 zoR!geXV;9qh$*I{bMQrr;5WFnONJFsjX@OG=nl#TMnNS`LwK}T5&YCW3->XtYw z#l-Fw#>w|ezY=tewx7}$sMVsl&TnPHU4i7odf&$f=6|1tH471e5<=GLSiXc<7-D%V z-JDHC6lNqqXWmPw{*D1BZbch{70mnuf)1Z|O7SZwCR>rtwBTR#l0q!UKWQ4bD+yOz ze%aOFsyC?Nl{n9T>OZklKaTF26y~$@YdpqvisucR2v`&lPnESZC;xxPegoaagi$sX z_Tx^?6*W?Wz55cmzZ9GkvUzF@?XllYPz%UG8tINs)uUbQX~_`fYAf9`&F2xPSHD0$ zepoNVB6@P9OTUo70z8G0`_k6cgc8M{(G%_mpwjVO=@_6!a$K@BFH%qTkfS%ra;RYF z&3J}TSg^CGofd=Ib}O%hjNEJBO13LEqeE0@U*!m(FAM!+~8kC|I#9EH`h)L~t=1>&>chDepO;`=mSN5hl3lk+tU6f1Z|Z1EaWqJKAJ zxIak&i0|KtJ^MnGxcEnoV_;&fZKBZc%U!u_m4m!%Yr%D*8(eK>}`Lgvb+tdhhPpSC}=x^DYSLF%VcpT~hlb1i2t8YqkR zYzV2ud3vcN2vO(V^kAxJZ2$Gz3H+?8^7l{4q`1S$i38FJExu2A=^<$_LWXwqu(uxeNSYv^Xr@BfSqOxTJmujwI!x)BmpgAwR?jJ3O0iMNdOX?b zt1GP==$=Qzn*34Dy(lF}r(Hro@WIGp>Sq#4 zw7a=1ZVE;Pm0cPMK{K5M-N6s6{+dz1_j$Rwh@n5s4Kf@%+YZ~ogxpiZ=wV%YhJcT` z7aHJfU-RP9yn9J5VY-&fC_ZYlXSk&%Cu)A>~%w>+gB+;V$E9*+55 zdg(m+c>A0>B0K~bucreX)Y}1C;~eo!L#fHqB5-{(*pBCvV`52u0?`P)Io9#uQ}S_$ z$g}Ze{(Vm-rQP^9#Dv(MB#3O^xeA@IS89TA1^L>q=0CyjEvQ1ECbzP8xIj*`^S*yJ zkw1WLg3({%#N67dV;UoZ_sWU}@(Me6Uv$nCDOmS_B$)!PBGHYt%tTumE)px=1ZpnM zgb#T!Y$;}KGWCadJZD?XK`9}6#1b>9DdhpbpZ(n<25}vHXj>PdRO>6Z!GvlwY=Fzv zwrf_l^7N?ElV_a6g6XKYAYfPI}{*yGL?tSp~bzJt<`P8Z<6G_k1sMW0U>h5YV zh_wL5l9GE*D<Cu7Xi zMtGdi5E+e^O7N(@OjiObZrtut-!yZ7hu6`5odKbcUrS>8a;N@srt@j1=9~Lr87(P5 z4uRFbWk-Ti$F1E`!{sf^W$z>?$(Nqw{hAW>BbJ$MMDg9Y1TqIigVbCPle!7Y@Kso$ zNkp;$34tv@G+yIwCR})a$A5f3Qwxm3d)`>XH()^AzbUc`O1PXuZ?ZoaS9plsU^*g} za(cO`tG25Bm}LQp!lkFz;X=UlQJKAJeGDk`rQ9S@Y)mMt%hJnJQZX**(Da`#*ojA8 z5HeGjk=$65IWWL1Efu%c%L5fKZKR)Gc#%by;t~G9D-}Nc<|U9+xAV=(yW3Nl)La}D zNp5Fogjy@{a@OMIOr^j}xojM#c~9%)+Bzn2WxID4(1Fx}S6I|SOxTdiN6(MjB=(uhW*08~lo z#i<}D!0DozpTtkfy$$}f|KOeRJX;tYE9pdAeunG^EjSO&v)hAg4nKKO9HYZ!^ZW4^ zKZ6Se^(V};eHUWQXA^lQ^01+^w+F?UTY(PbPv4$IYN`lrMq!owZU&K2v3-sEaHM`E z*n;B{wkZ zfG&EcQS>4TOZ7=H*;we^oBUTcBw~0#aiK&EYde9cP)14_6P3z6K89payS@U1CDRo| zubdIdaI?Sb0^pX25ez4R<)!;Y9hN@D0Z2fqYBz8WCse&v|#fA~3xjuz~gs zEn$b6m;C+w%9Zp+l^7?+Trpi%)z7`vKBTA4M})N<%b1%2UxkUd-WTH{bysL#EdG12 z7*{0#G9G~dZcH3g!E6NSlt|ihntwkLN~!lHG_B;zZImx=U;&%f;j#r3nYuGg@j&}H zLRYYX?rZJu7j>&%V+d+4H7wl@5j4XmYT1>`ov`NV4hbpGN9T+sj|F*cc~OO{?Xz)aIbj;;b+h0?^lX?IEknUfZ`n!upu; z(NNbfLyqTWspKF|K_9M#^BmW1rex;?jUUxRwgQs?&}46 zu-mSOb)MoL0N)o>Mrx=)-}YONsaa4&&tuHz|Mcl)>eHpWAO?O8NwAi_Q8<)oaJ2nO zBCLB^e!=sKc}S#xC=!(T)i)m`F#1;z6ky3LQk9b=*i|{g&B{0)3N&OEhIR-p zDmEL0Ly$166jnp9y`+{gr~Lkj6#GdtYQw!HPEH9_jR?4I{$ODXb}lIQsxEy>iOi+!@2Syj zyQRWu1u)5UT(R%o-f`Rgz&rUVhD>f!7Zp{k91;NEg8wn9B?;yqsb_~U`JWHBIkpzT>&>@;dxsRA}U zt+(4SZht@j7Bw*Pc>Gdx78&)*x)^;G8QEx%V)A0;Vz3M z=}~{@KAX>acVKYf*V8OV6Izl@5MIN%Sxb*iohdL_GA=D-aVs6jt)z#!`Qml2^{_8| zPMY4zt$8fPQ8s`${Ie{T z02#S{_+~~&n$`RXNP~lMPj?Lru}kn;H%`LL7h#{SYiE#cuHInC1;fo&#y_Q2Ju1bl zQ#~X#CrP?^5`gTav)YKn(x)3w=GZ^VQeqr8ycA@az+EEB^gd{{1|>KRogj5NSGWcK z_`EB@Qfb+5B?YA_jm>_>~18RvsmX_fR;h(r?um)qeF|+@tBZzfu)0<&&lldG~lVLDr9-E{V~* z`)hcaDqYLQVZ&fYX~j;we`Pw9P@@b(i`o8kZ-uNH%@G~0-FE2v8(Yuw!%Dp?`7$i} zP%3kLlI5y~B8rO}-^ISu^Vu9b(njgVJGdPOR(9_nJr>ri!JTkFn<|7$i}j2BDUyY; z_l=i)IV=AAeY*^+i!u+@O*;E4O$J82G65fxIr?j%M*$3*Ib4Ny=|7^~2Ck5=?)wc^ z*!x)Pf*n09Lo`VCALgZ7oyhmP^8bm)4xbmN2QiN@W#Fp+rBfUx9G?~B2fgF225AJ1 z@AHGAFO|gux0rqizXtAj+C_|LBPDtpXaRg=KJ*P!%a0i7Hz`%cIYGI;%8T}z zq-j?%@$skI8pzcrxrI5%BB%-LKWaIb>v!NV50A}UTqEAS2YSFq=9C{INbLX@j(x(o zPhU)>Jwjvb(prPX>iUt+-x>e5+*f0yp)%8Zz>fjMm%SS0^ZJV=bhE>pJ^A$dZ=E7; zZ7Xn?Za$|+aN*x7`w@jl{p~Kc+E3a1Gv?%Yi=U~5Ku+AzOtQW0$|D-e6yjRGUwUEpDl3@Gjq^atB94TA zBu38V2C(Dq!7uRN+jd8)y4v~7BN-@qo`SwOE#&)UBw(;i9NUO7&fk)$NF8L1^_+>z z07_Y%Z0^JXb|wqDLu{GNXL*NKk#^)L6+&VXWhP~vtC0)v>TU}pykHY$a~kDD~}7>;Bqx!!0}1&g{Lx$22DM5ODYAW{@;r9PI8}@~f_k?9(Ph6kDuVx@imT z|Ioxb+ETBaM&r!CZwQ3L$y16-(C|J@ll1sb zFQkqZ==;?Gm=IIB|9whEqk;CeCvjCQOM*peu!Ne6w;&yl*P%1k=F2tu*2I+RONpK= zS`)zDveqDe0SL|cfkX1oUzs=Fl4JMR{NWe1>W(aru2zrG@CI8+M`dXaE~ikE3+E*9 z(?1B!TWgUmKWt8Nw<>E7QLazg4rb|mhty}*0|4dsC_Gpm+br^H3kI=fIiA|r>p$ya zkts)aWJ+M77Z(ux?Ibs_4k{q@P}@|PK}yPVuQGLlRC}O>8L36@7=iFoN-jP@0kzdxBGMpa4 zLyO`6K5~`s)E8#=VWW5I$$3fsq>Oe9oeI3UMziR%w@-P6Z?wy@H1tWTzy(?4_Btw! zyRA*hB>YRq0AAvzuAtgC;d2TfV8j5#qP1~?)N`vc+!LxB*We($1MKb3N{Pu#Gs|K_eRQLDdiXq?5B8bEY9Kq z0$uBCyKL6?(Mqp#C#11hvS@6G=)Ln3b-j*1SQ7}tz| z6C%mn6|Qd&lnC<|-#m_90&8+mn!pN6=}ViH`C8~nZm?XpVjxr<_D|^1`AlNHndR}@ zDluL7IrdX0mxk#lsuZdeCU0u+bRIDhuv;+=OMA-O@m!}0m8};WDPU^xW=`PxtwbG)v-wP4rI>5 zH5Xf!?JMVm3rkl^dVur7$trTv`7?=NqGwBWnvSK5tX+<;&%g$kJ+RmD{#!fx)|1JD zID+bLoV;V*1Qo(k?u-qrMK2;M0->@8>T_5Uxk&=Ln3{u6QZHAd9SSmejJbsZG~oMn zkoDh3KOhR-{YVIzOZMFcSNcE?6p=Aye`r#mX9oJN8zWDJCd~hGQyq&_+C@67`(FLR zfo0ZkwyCyOZCmigQ54*aEZIgdUik^VlQsSAact$mZX8QLd`ZYJhJFm_UoDJ$~b`-B%! zj=^Wz<>E>U;Cq8R{{@5}i+I%pL&CLisnB*OB)t0D4{C5hOk6r8Tp>i{2~ezatEVss zzYob+CI*H*p&0&HJonbRyX&6FUNa}ry$5rytIq-x!KGW&Z5#Uhpzz$Q(mlf)DZi_? zLxl9|7(Faxg=VvOnFGZI*mQ$&VH@fH-s(72ZJUJ6D~fetbv|CFwEGg<{UFC>rouOsF?Xlor#CgC zENLYC{dbtl^G%LHT#};Y32eu5T&o|037-uCFo`so3KV7J+<1zEK{(57XZS!<%MT9c zs%;rxRc$tUDfcAG9GU}7NW-jwU%IC0JIbIGYqAUmU+}@oDyq`0xNm3Pw*IE0K?_g5 zj?6LgbFVUF6%l=%aG)-`trLh;)Z`h<2+0@LJ1FM z4rumtqpUm-RmI2onmGo@*)Y>T$gC7%Faj@l4r$Mu(P8rVO%~(+! z8MoK_BTq`cPvQxJ@SDrp2l;?w`hQM8T3u?0AeHkgXLpU)%3_m2fr+R6bl~o;C!L`9 z!jHhaHgS)`Ciu1w%7$Z0OIOPGefPJ)_%Hm!qy`v{ zFKBE;J{fqbu_mi`DBQUgNCnub+ROmF(+6i0X*Qx!;x8Lexh+-y=ECVkCEjT&Vo>vuL|S_8M2~geieWrJujH9(*CpGXp8 zOBu|3(~`3~a6!`59$>IHPfC5K!e$6;Ao;IJxYm_1{kE?6Te6Qz?IGGFY`3t`+f&V2 z4ZvHZOp?T!1#5l2Fmow3XW(M`iY-}gNmoxcRL|MTv7-UoF|PLl5m-aT2Jz-wEx4aW z2z_mrFbgCJ@Nindk-`!+xgJIksY3el{Q4Cv1fC*>D$X(0^ zEO78~t0f^FQppO9bj~ISQni8qTe0<|f}V9)vLzjxz*SN2?h1jt|7!8qEo=4~uTq^5 zE)?s;6GtY0kg2f$V@Btr*S{4)skQ~$%-Mz8%-*_@zX-4M@N5-GbT&=^U>$XZjzKJk z=@>{iC`!Jm7u0m|_%SphTonOyotqP9=7(E8%N4E}&=nVL@hi2NPiLXoyIDip9OGU9 zqixc!U`;gmM5WDN(N0i-+j+&4rjH=?Wa9W)DG&Q&Mr0s#;=ig$i;||YBp2)-&THS9&Au_2E^Xn{x_<66)|9^7{;}WNUrNde^ z(Yvy)&$D6jyy52&PN76+;hbZWxyYY`KS@{m)xeHaY;-TEM2Rh>P*cJsz*dxhj*l3E zV*?~PKCGF;W-0XfW9rO;X)K@&1%SwM>ClL*@m0fSBk@{mfqk5yM2219&r!K&joA9# zRmu+X7>1$S)>mQJ?h5QXQyrc8zVGyviSfcu#^}~F-^TC&wHvyr_zw%uqGy2tKuAa7 z6>23y73SuUEzgg1dPeU4G=gW+XDLsLnfO#-87Q~C06<4HoTsR3$Tqs< z9JhyPgtJVZg(zduUM^?d=58R(Z2#f$TbF>G~qWA z@u}dO>B*_YzYgdh@X&c-mquk-TCdWZ6|%`lv5n>U;|+=E-X%mC+;sa$5kJQhQhoJLGLvw>{bbLECM1_npFj-?4^eZ(fG2Hlw`Sn&apK#B zv-}4c(378eOnTS~-9<{MuDPo%p{Id~Eo%AWR!tn}hv$D@W+Ey%!oWqo{}>K#j&VM_ zQXbdvx;N&*KrJdG`1hDrKtqQ8EE3F{!@v4@BfzV%bmyMZwjAi}wfge;pU%~9$h%%4 zsggB5oRbR0Yg|?F+tXU_p;bc1z0L~z8?x1=z$~ygk`$X$QuOKgZhVr?>y@hCTg@1b zjKu7cM#nj2SGuL(f=n##aK+GpLDc>WUhBy0-Sobn{mQR%rNAY4`1Xx=$LM&T$-I|> z2+`Rfa9*uT%gsyDdfih(i+3ett2E=Rtw|b0r%Y2}1D-h&-D)BU9H(PfTe$RkN6hBleASIzt858@i)fQ8HlUFiG)S?;gFiV7|&c>mk&VIB>D z^peW;fC<|TwK+~e;3LHDM{%pCnY5=0C;?JyZW&;r6)2dy;elB2;93?;tuQ@8wQ+yF z)G%o=0NALLH}WF_Phg$oFz!3%(lwkyz;Z?bQb5Ryp@Y9Ezbl>=T<9uA@M1gu9CYUQ zHLvAxE&vhGFSQND=VX(Pp+vw+Jlo#=N`}1SYJ7-z^UHCcA|v^WO^d!;k&)k91k`Q* zwN2b76o?)TM#v}=EUywgCQDE{`5RU|4Ghm*^yaEr>%p4IQEGD~-=6>@=ofoL<)-Pb zY24e5_0ZQgKRw!1>ca<>MI~YPfU9|z_fmY6!CtM3H@&#;h_-#%hQrQRYfkxV@ zTWYph{}naAsyW4dU?oxi&w{57@DCcrf|RNfd3L`X`exqVQCV)WJbi^*Wb#}R+f*G3 z_&ZKvym1AZFV;6pJcxmg$Sd?&#o`#sjuWWJY3AmgX3uI(A%Te`0*D;PPI^*+j*%)` zTgLC7p&6KA&2(PQT5eNhR{D}){G~%+QY*PE<~IPwt^RXQNuj{l3n(FKJ(T-o=Dh7{ zudhSCXR*B=%K)^2{C7Uj?O(Ze~lCIoLKAkhS=}8Dcn58iNN&4 z8Gk5wUG{9~fvTBy>JJqxSaOgn=vuwTcS?7JI+O)<#jIJGZ~a%LWl){461zt$OcPH zf@lSM5~f1&r@0I1sdjsAkyiu(DX)q$f|X7pe@J#<6sq-Q?f+Xcd3W7qs5(UiW?Tp+ z>Lr!s_K$nUFPaiJVuVy9E+kOuztH~qh|08HLFeK)xh>%Gyd!@sE|XnJEg!a z0ozajFx*#Hp9Opw)JqV#Ie8-VF$T6hoZUFYhn{wC*Qsc}!tih{x9yjXTEMB-h?_1$ z!|JRV7DeP8d{+qh$B?i$xU;5F%(4Ig)Up@Lnc>6NxLjR8} z-Ro{(ayHseF*(VlW@O@O0#7Ma@I{FpKA?_EHx4hXZ#7!P8%=Hdz&dSd6P?=V;}^w7 z3s2qGS3*JkY;oyUp)OL}NC$_@PnJ6*Cs-8vb3B^7fWjy8pSb~*e@_XOSJ=J~S@#C3 z%9k&eS$8Cgx-e!O>ee{6xJw_n^)^K`E8xb2#^fdIJ3vx>R;pcr7-*mZ9Q?cG5a}_h zJOeJRLt&9IJc*zU+^%VC@2*u}-N4)QjRKypP{hCXfP!XZk9t*_9SpkxC2CMI2Y520Q#}Z7qs6%f=?e5|~eYe7`0; zeXbh-Z;f+30GzIO)NEq-R0#wM*B5z~@Qr|->=`g4J@uOh(t{FQS}b{-^1MIi;jVVh z!{eJ35QZ(K7ag{jJpq=Sy1##_zT8h7PP?Hm-E_K`ED4u}AgKdSx~x8UKC#MnfbT3C zIjec|w9|u%tT4<6&}lYsj&glRB-o283U_Cey4XLGQmTonkVk|+gN(&_uRXeoWwt>? zH&VymD#=visfEf9(%VEn-i7d)z6JHKpZeYlA3Ud7Ci|Ww^%)*2ZN++2vB?Z3o)e!x z`7lj;;9&Bth@L=$Wwfn(&m@hR%5BB`v)thG#UWn0Std=^7@Z5C2V?qIC2G9OcBL+P zh`!Ea^h?;potsmkeyF~T9EB$fWS;zP~Xu!ixwEDc4% zhS+oPyrkb}NEuQX?W-9xYil=qAJ6HM*03DteYEKTcCWPdN+@3zC7N;eWyK00hbD+^ zuY!bqffHW&)E+>O^S3x7zh1qv_MuQ6E+3X|3h|GxD2We{ni%VUNyqh!SQ{WgUz*=} zvAJ1|Gff+*A;tAy2_%HqTDu_-=_>8>gnT|Veu1+5gOm0nKwCQ6XIPcoi3$9SZt zOg#^sh6)#u5TsK{MN7OzF(RN+Mw{*j$$F0Npm{-hmh3|-6P8gtT#(&<4?nPgnVLl| zT_E(^cr*=*RwX%z>rL`%9&K@AbC!t-;&C#usH8CGp#bp3za)TY-DV&vF9F}$pVJPq z6}6M&t(Oqui_{>DOmf2yR4<+#Xt$Zw>=Uez!fC>VK86ISFgwnR2~5{D`Gc^tk41lu zDcoP*Y09rn3KV`nEA$-v)yv8|XIFTeFmm1x;PB!9esf=V9G&*~c3-TGxXyTgJA6z> zYJ{umG7Fy828#l9+hc&;`OYvfMfilpsHcgp#i&`_FyBhIUE&HQ0P)a2^P)o;Zcn|4fg@qDx7G67H4eW8e0p zoh3oRR(VPjBV-oYHnY?al%XL{fBQ$H(f*gxOy~6Q(87O}l+-PJ(Ac=$t(I$)u1?i6 z4>m;k-oz_0IqZ2DxNZhtVEW8U5<;rw;qg-@6#r+DV>8HhxElO|3NIqtmA|n7W3<E6 zLn$W^MdoUNO`w0>$5n*L9p%&Rg)_DK!8$em84>u23Sbbh7Tx))f z8`Ue0-d7gZhH-F?jJXxIC_PQ6=DDZPO_*V5gj9@8-Q2}Opk(47KMbg-o*&joiqtxd_z?O7D zwN*8>T&mId7qz^uhjx`!s^ruiq=@(jDR_dcDYmRN+qkx|a#!_)l69o{jN*!03n)`Q zVKN~4bg6JE?A}A@+~?`W+9eZSrY}>jd>jk^imgBVEJJQoxQXlas7jZ!xcT-vV*2l*b3;LMqLCN4g49>}>iq8w(=tQTE{K(f zF(dh}1MtutpYzLK)dnr9Zu0=NXwR6NB97DBxW+6)2(u)%u=|KQ4fsQS zi*W9-gZ0db**1Z#z`8$Cz;oJVsRyJzv~_na+08Z_!|a`c0hFW?RYcb| zWtp(GTsd>5Jzb6c%Tf0Sbj73qyAh}__*fd2*AB?JX0VJ60SJKkyY9V{b+@PHd%#^W zUb|Kx@imo8pObn_KxA&^M?~}3WQGc=XxKtx!Y(&Kn$!G#hmUqDeNmv6acrUeB55?I z`Hm`{lLuhDN7=Ria+CcoavFZs*fr)xzyLfZN3uc2m4Ea?R8O0Gr96AoRivW0T575J zyy=*`VoilykwVoPW#sSbPk@q3V&U>!DuE_*8WZrAXQf5dvlaHhM8a$px(e1)8mRM0DmKvg zV_dNRs0MHKzI;@AxuWbX?I%}hXx3w~W()A8%F+n>l)qJ2WAz>Q;-GcidCW(v!LmK; zzWtTq&&vxQ=!Mqt99o7RwEa1x9yL8Vdk!+#ZjP+6nSXTiSJh!)DFT`ipsYv(;=`YT zj)p6N6Gi4f;6K{@4zeWo?3(Dog_%FcXgYY*iQ)byJ&NcI+w{n-l@r0Gqim(tss?$; zjpsh>>XmjM7<~AgO~5`r)eqOJ&#n0mH7WXM&?jA&D%x)B&uZ_GtF(*@z?|EDD*?=3 zjwUiQ4`TO;_R9R{WyS*bq0NwOnXfh>LzX0;)mcK5hj@m!_K+Vb%Bc!e?9te!TqcpT_V~_U{RZo7LfDR6 zCXRju{{FJk_zsD9f3%s|ShmY2t8a4uKZsW!{SjJjBP!}vYUJKU>K;C$W!n{AJI$UN zlpEk^HL@*6{s3}BKzLW&e*MLUSF%J*a9OIf=G?^jTIYk1le<6m9%Ms*)+2VfaToAm z!Ac)$swGN~cyu55`yly>tD z+*1OV()P@o(CVgh0TV5^{gGC)v*%sy7MuSL{kY|0hT3O;8I94kQ9<&e|CVixd+dAYUyubP_3p^+Y5zjF!6nzlq59IvzRe8}IpOlKe@_A>W?k*6M1ftLE6IdXN+`FsU(pXriJI*09$Wr?{m{C?)y^QfamK4QxlhjS%C<@;3#!t@DY+$mz7 zilhYZS>p8Dz3#v~Nx8AKyH+T4yQ$18hKO8&;}*^94K^KTrY1r8DphCMd%TVAt1r#n zEb3TD9?^sqyn_v^R^b7qLm0BZwaE0XtM`dA#E9B)qQcZFkLf$bVyyOy`Hg_IP&E%V zfl}c~^w5)>9-jdr$amgjF>98((JIB1>W8J`Mu6~+A9r7RYRM$g$65-r8bYC)c-8*; zeW&JrSgNY~citfI`cnE|(a$0xien1ce`CyQp923?`w8sSOc3ArI>Ff$okc;Tz6=F5 z(!61~-Qu)hx_!stl^RjpHr-c)X*CbA9_sNGMVHHJz%17|r+ys?kF4KaysWnTzo!?(HfSngn-m>K6x~L7?a$sV`niYO ze*2rGKco+RAQ~Oq6&x!Qp?@`qUF0_$dtl&QbJTM`i_slDX<#dzdh(b?-#;=nWDkML z!VSd7P$TNNnS#nVWS@^15xG3#hz%XXi*q_Hp-Z<3UD?Jn7%DinO+AXe);~gy7GK+c zu~uv45dNF_KAz+t1vd3`N_RMk6Zabr#4*ti;~lnEAra*+o5yD_Hk4Dp0v;20g7Pd@ zaXm0CO=i>r+l23z(`g6jm>7kb;xwmKKv+skS{145A4R7ui)O1*>tO9$K;pTk;6X%TyPQ{3+$(4R3g=zOcJ1o`g4I~L3XSgeeZh7RDW%`Gxyv!ypX z4y%4!0{F@s^4rh2>w13Yu^v6O%lmi}wtc{I=D*JrNUU9!hqF$z`gg$tdXsmFPb>C+ zf75HKzQihYfUy3;5q&|Zg}1W3_u^~|dL`(%bNePbm%fZ*-vOu;T|qconp$8;YTXzF z*_+6PB}bX0Ano`Q!zm|9aiid>%1;i+{L$%JmE^nkVL(87fR}zLJBs=>2AaC&g<01X8ciWo?i%`vF?-Z6Ua$+kTof6DLbKKWh(G>=;k`%tHiVXGb( z+_4jLoy5Kr6-U`l+HIhR{{+;X1L#h5!IK_d8H3m^;3vy;dUkA=;p)2_$kJEy=R}_K z&GAbnB29IL?6v`)Gsc_^xKWz7XJMv?+S#eB7MKpn7ECOQKIP-$!bO}Rodou}^bo2FI zGN?28zMB{_XOYYsh&xID@$kA4(SEO?`Z^FRZGab6Rvg1HnpP&c^p!U%VCJmuHeQpm z-M!+V>jVfH!I;mDY{4{D^XgE3d0AN_j=tn+aAFTq){dVUZARw94-8o`J~cuS zDUJ~dofM18?@}w4)!;-9fyd2+OQM&CQ0K&E+mCJ06baJh=5w*7f3t$vnkS*KdTb+; zMLOsDwGU6RaxPV)%qeUM=Opxm!Y$u5@wwKXW#CbKJa=PhQ&qYy$kLX#j|{_~5)#o9 zGFF4CIB_F`pOug-PsBqD~gZ}fa`NMjBDMx5 ze0`{ux*p&y1}gAP%yH-43(e-zHMVYp3hOMoPMZ!v9RybPX0&7UJIqQue*~XU$hM8g76Sc zXKjjR;Ql!Z|5G8-{>70g}VshC~sLzJT2`}T-1Lq1WB8~M? zlLEPxgtAn6`~r70aI}TU=Nyl-tVd#@^AE}~5UJ}-4tOsXelb8C_PJqSzpWT?CYG&3 z3NL;F<-Z08GCMrcK$kH-VBM%KPJAyQXnDknyk}Z370(qMzM|MypP(# zQKt_RI_3TaI=r7B0e{~y>`>S!tp$F+jf%>*pbutNJ~)JQ45d*36}2D96{A!VgXUa^ zVMb*@$Ry9<$v~<#Qf7vQJI3a}-0z%15L!so0`C4pri>VE6TM_jlpE_@mvrlT$08?z zkCZ7NtzIVV(uVO~x5Z}wU0(5DBGljf6hMDoTkri9Y5FiRxZOn8f*HQn!B+e`x-T(5 z?MI|2R+0_-nbxcmgHP<$@+^X&sf^28wS;xLS%kKu*w@~g`ERjnk+2cB%QS`gzx(q+D)dXn5{x|&hnHaCL2DXrz zkID=%Xw^jkXG+Jj2x<=@a#U-!6kWUX{|b~I+YauZqK~SwX)5?iRVDftM9)sR*f{ig zLcUU6q2edg)M{*FA#Zv_%bl_42d_|f%b((JP6huV5MfJ7Zf|wh^AE1Y97o_c9IxMH z3X0jZF!cuZB5Ag(!;kWmAA&kLjM9z*pyFcCbPE%53fbRxNlKlLgo82{hkP2{njL}5 zM+47g&E<##KYzH%B#$t#thr4x^kP#K1TsSZ2>Fg}-*h9DIiLFye*!w6aP2vx-|lhm z`$4+Ab@CELdjKt-OAkenl=zriw;D0H?krX^H!$oHE(_~J+KsB?MEX3wwrpd=)+iPC{t~xB)!+1 z6!DFT)ArPN_-5;fjAzkt&%_Lk=LpEqgus=rW_R+ZE`r)vu|G#9g5}1A)q4dNPtt742iO*tLJ3UF&)qVo-QXG25>?U5*`#lN`N=7EXl6LQ2{5TP~I;Nw^0U^c%8G| z5^$g$;6u8bHYi1M6THYSucAxIH-$pO+lqqCX@8s9SlUkaKh-=D-JTjhq+*FeDe(RSkV$N4YJY*fM}3g#0Bn*bBL33qi6RW{eX-2- zH(58a&sVv%i7BRZCpB=sY^T2v9<@4OZzZLH;?{|tHY0X z*^o1uJ!rIKroMkH0W1-5xnTV~m5GRQDxBCKLe(F=j3A$#Qo=Sg zIy=Kj^m(^ANNg1PxENhL;{9kW7y6xw?Uokeo2+gPlGk>A9M`-BV(As7YSHcalN|ZW zgU^~!A1nPr2nhqm2cne27CHl5yLfp7yYp|*vu54I6Q{$3=%Kot!fnjZ+my1Crgd8~ zMtq0JWIpd2GU=(n&K!WkfE;YKuLepRVh9yErATWXMxAZ67A^Co{z` zxoCn4;uOS{(3K%wbt(`ISiIHHhH30|7u&COhXsGG6G91NA{{bA*-AF2qX@bKuH(P5 zD`4`PXrBFQlE44M+spFhSLOV}fS>j+pbvaF0MAuJsRe+1H?Eupc55x);H`w2JR-t;NOuY^U))Uz#8P6Ow$>TL z{IWNpax=YgkH7tSUcLM8d|~a-Aui0KUGu|Dgd^O-Fwyng<>g3J9Wze6gC?Q&nUH`%R}o!f9dDj!GIm&7bh>6|a- z7f@<=h^_NZc~WQGtOcc@eO(IE-*orb8_=H`H2ua`DOx#)>QWEGYqvB{SM0mAprE%K zndJf&*nSoKua&B{dbea*FTFf(pr-(hYOUxp6;j&P1>Q-Nud@*S47qdGl{XY2E&@T2 zDJx+ORBM8;Y|hJA;}Un}QcK7atA9i;wiE9wR{g1b2;%G#>meDp4~$U>3uVuu`eWt` zDsTMT_Uk_DY?3@W*KIwE(x|R-B!N(Aoj>Y*_xIr4_;}~JkM9o0uHc-f*W%%!`eQ)8 zG3*@Jpnow$j0TDua?^851AYt-QhUMYNu6UammXLLryYPULWd zHM@<>ZfzHSwzm7eH6TNTGI2ly^>)pM)W}-D5HH?d_krmE%7vdylZXX!_1H}is#~;r z0=H$M5;|&D3zHi?000zOJyM3%Z=By1f3Y#P`8MTlAI4`)y?NlBTFxi}UIoMV+ey~E zK_)(G$nsjxa%i4~Edi7`Mt6u&Ruy3P9q}ZL^-LmG`MZP*vZPn)J;ZdqC;(6p9sOsD z)mij*fAi}}t{tlLiI-tE#=m(r{<&;O;|-~)ApovlS>uqA9~omurl$Byq5*2bdqq2y zcspyNEFm?1%EtKO;4>xhn9e?ZKv^W8y@_4;r-t`RUPwl^N$2?5IX|&i|Eu7*Ba`XX zw?TF#Jhn^ex<6>C%zlIBW-WtWB8xecVv*Kc58Q-yZ)sU{C1{G)X#~mR2}nF2ee~s+ zd6Rp#)*(?W$nU~wjx?@UKiC;`3bmPkH+!hrT9bdV07<7B?zxo#b}?nP@t+u%!|; z^aiZLUQ<=2+bN~fmz? z@^w3l^aDW`&3_tE(+MD)sZReAo_v|qk2gJ`_vEpSQ-u#dsncaq-W<*`5Qjj_;xJiv zUY`s``;j`EbqYl3kg)J@0GJqv_pG1VAubA_IrWzV0iOvD9ERbgzkDY2!A6|={aY@d zYaYV^M+!yO7|A&wW+L<*DW9y|qVm$5rA_{7BGIOhLD+x8Z1MNFv$&HcRto?u-uKhl-34 zCZ)D!+vm_72i(|ApiLw`nGn>uc-#pbFciOSAslbnQbWbgl$ReFSJ$;jf$8}VfbC0b5Nu!sgke0-MJ>u~Ukf;AT-})2- zs#VP0LxaZw3T4DB{qOOBJ<5Xg(B9nm$F&cEbQ&4Aw_c;HUY0R``FFjbXxy5z1T0pG z8TyuxykF7Ra%WBaaxB{21Xu3tp4w@du`-gu7suYVB;*0SRPI(|vcllKSrkEp;X~X}I`<^g<uHa~aSuZ&WElCyhh#+6owE0j+!zkMFQ97; zj*mqLdQ=%$cp7t=s+K%u?|o?~78m#8Kb-OiE4Vs3FFrP(?^iHVyIal2n~Zh0k~O}L z3#)RnrK<;o7`gud3|q_{VZ9pT9|o55bZ#?vKS-&6A?drwR`o?23Vx(@eLtguoZAuJ z#hb3a8xvIB2V;^De>I{DHNUFA_T{{RMzMKOIGIrZmb-7Pv`BQk?>$jF5)bxWWGh^G997p&myw|3`U%$ zm~sP*MoR3?yg#doFhstny~D2$H+xg@DlXW1Em5^KWwGuzX+@Ng3jPgn`0rgE{)G5b z_u$&@x0(pY6YUiI8X-MEQl5Gi+qKrm(|zi;7bdwrDp@8b2X{I@mtR_tJ)Y2oc2toL zsq@PK@6vL*D1x{FELsT`GzW`w3U?ZP_f0$5qiNtH7Q77RQU<7$#d-n1;YLxeUewJMh zCg!nCjaW3xUFd6MeN-+0V*G}bzK}@GRzd~d-bdw@2PLl>z%6IFVubDH6!<(H%QY4P zUX#vKru>QF43|kd~N^nMB&YYg#$gjOeuNE`$D5v zUwHb@Js^Nxd>4blnylwxN}?4*vaZewrFEfT_mkG>QXk#NHSOQ~#krC`bo2=cv4os( z{U=s%i^_F~3!SnWV~1Cxi|vSQ4h_;-ih+MUmtd69_W(}KYAM>7ogJGBZ#W^m#mc9p zaN@2(zWaSxl}s7SRjf*>oIeprXGk{H9k+k_g*r$`5W>~AeO$=Y{y zOQn|SEy|1bTKPGrUWiKouc&PAcH+Va9clr~yOf_!%DIO->|^W~Ic z%F(A<4Vhk!=V@^Jj<;%27R~uj);{1!nE6RAmxQHjzuEZ%I&jM5>&DCXm33f#@EVja zjA3u;JBGZ=Q-|`wz$iNIA+Eey>vx5&sy{*qkTyg=^pD6y)ZTiEEhhF77T?JUADWEs zl(GF@@%&R#?p3U8qg#7$XYi2&7;F^VfX1lVDlQ0rZfH-8M#hNXKh8+)GaEa`={qyD zGec-n)cV<-Ze@o#H|w-nKN}(0ik*RWUmj8LzYi=mJsDd@vw#TvZOI~WYHq0ryrbPqg$jqf?T?o%g zU7FT6nTW*KXZqV=;Z2fk!CI<)D}Pf%wCpoEyT1MJ*3Qe7a3o-5<<)h^~eiO;k<9uN;5jLZR~Lz!hO&3A*(umEE%-n&Ggl*fD&B zR1d^5KWW zqM);wEBg`h0@Lw>k)(iR5yL)_)^%rm#_6-Z&w$}xY^Uua@NDS4ArZ)2Y`WlMY7HwA zf0G@^baKMbij7*2yBr=!xZJZ_{8p43w)c<$sv21#vK&8G8y+4Wz%K`jnb`Xh=Fd-F zrWD?7#LiM2VI@8Eii<&`>2^i1swegs#xA)7q zKbUI!W22nAlqJyb+=zZ)0Y$q{nZJBuu>{ou7C56xZy+)er`6`vf(Vn*YIlMQ$+-;T z9p{5pHPX$pzyrBz5iuS?%M$u_NPR$a9%)1KZkHlqb2U?law~Ve0XuwPsO<9?&0^%E z$X=Kv99XyJ78*)haeS}WpqeF8G15rBfVv%E9x(FgD3@sn8nGW{8sl(jRuT zN&yH0-adPm?9@b_Xv}_D1ZwV=WT=&e4^Pjn1BgL&$n#Cn{*;(#D>##HC*ZP6j?6dt zJTN#oGLjZT*xk$7eTp`*3l6hJJFWG$MlAtV){oV8=D*}J5j{#B>p)cGsL7ko*q||8 zmKY>fVj_IaCe-guM@HZMrDqi;83OaPQ1RIbQV}mjDRy&cOm9^}qOeRvZ>;hqEpx>w zxh-;Updd}48mQdr6?|@Dy-4`(0xyBn$IsH{*7s)@-Y1K?$lB~XfP{=!o9uxC$YI8o znnZ=6{I#t==LKn&!r0yOtXxx%pUprM?OxDld;}pIn8wg8Erc$9_|46=j$d>EBv-(j zRrQJ%?^fNFsRP}j9?-)VcPiG$|D|b9he@-AI^!Wa=PbR_??~-t zjEW~L9G4?&grwa*40WqBF@ z6c!(-BfU(G4YYeQbU5dI7gL=*!qN@+%uLys)=F29NZ*PYO<8@c`m(Uokh^;3RFb5xt?$oFd6_6dUM=fk1rRk@v7ZDL`+87t|VbiZ&fo#eeSe z5en<^b+^7L|3Ni4Zfhh1A|ZqRm085r&yPVt_o)RCTepPYfH|z2iXvek5!2;&zS2Cn zf>*?b*5C#ghasD@(d6uH%pv>yU7QWSXpQdl@ldO;IPp+x=Jq-f*Vn3eTda(caW_mT z3zq&R@P-CUmag>j!)}>_NJk{?QQx)@bKU1p1Yks%ahYC8$<*L7`w7GpHa)Sj8A6ax z$m4p}fTxu)&Iyq%ROB+UJ4eWVtC0L5ALK!Z(owJE&@bOD%^R?3{^K_lJ3}Q*%{RF> z*ZtYk$Hc{qk9+=^tlAd@(L=cosozm=k(MO?Ku!hVTbd1dHvaGjudMfq&Sn1kg|VJ_ zrQT3t_>|PTt@wdZ{PrUAF~<-k`d*M*{HVf==4xKmPutzz#>*$nD8*{Txy`%;f?6A@ ze(|A1RaEZseh39>2)VQnyXJsPfpl}9H50_?@9^RXUJPZ@3>Vkl9SbR`ws87>13Vc= znYt)%Vns>`Q%W`YfQ91_uJYMR?Y0k4Zo+8qAIr-`$lmbk{ZOKGzn}+itNHVpw(m0Y ze1@wfuMhe8%Wy283u}@~@Hf!<8)7$jpQA7dx~g1ep~atWE&wyQ|1#$2%ubI2)br3G znZavzTA*8Ys>-K4dNYzXdl~u2%PVjPWig-Tjn*cRJcxUc2D&w zOXxQYJdJfnoF9*_RH7EV$=CN0KRco+?!03?jFsGpF+SMgZCJ?+IwpXN(|5Gf;2mk)+o0>h;ng=M58g=k2~2zk{6&?|)h0{=(#YZJ#L?WB4Mg2$$S&WC_aT z*!nwU5tpY7V0tIc0NM!QZ0wh!81D5dsYd5e3SGHoN0MRh&e(q0?EPW43`unf5s%ru zHSsXbiVOEvDj6dlU&l?C9l*TkZf!I?_9xw`srKikR>b}g|HsZ>$i8CA?>K1e^o6!& zKh{okf9G4H7+s7=2|Suo}L|BC=4W0PQV~l zr^Zo9y>7}qpZL)FD@P|+NX-Sa9#f`LqMS8?sI3E99@Cuh&!n3C-$=T-_^|tE;^jK5&EOub^IAmsy_Mf zV$u|Y*xjZ1+ir7;WVo}*b9n*h&XTaz4D0xuqk3@o_`gf4v&WM{E(;0xW(1ANG_Bh! z@$S^tVhQB<$8je&<;2FB?7>9aGkM_W;Yv|XU#=zgB9IgSF@j2J)67K!MG4xz+&XR3!@F+^fb03sJDI`sxHr0)rR54&%D(|#OdyteWWnw$=A!pS>2AH zSX@6F;F(Yk77i@wq`$0A!)6sCs}-51qv%=fmLeXGP^?UfWXlWHH$H=t4SZ$r6>)FRHLaW5eu z`S5kwXE{6PD}d^>c!xoHYzVE=5s0rCY;X@cdtwt4 zw2`T_WM1nB*V$XwK{ z=D)F3rUr#|>)u6%Z>Y~^BX>67k*f=hA76_(m90FYP?Nh_@HWtvpJ$j*ZVyb+S-$X{ zsW9)WvCfTPZxhoE|dCfIiUDT+lk(t0iYOpNlN+G^G29 ziBk@HTR2oo#{3vxp(5$7ZXhVtSDt1RV|u!%K(wnbfK7EsJA0zm%zm+nz2oC0;`j5Z z%V^B&Gwnq`xrE7n1Lcnre;r?o`;EL5&MG#DCWnwsu z_Z%m4h^OfXf+K}2w( zrE=)5W-wkRDFfhAX(BEcs{Klw@Rg+S0N&8%zGw5bmZr;kLyDP@b35dNKfuZ7hT2*F zL|On)ak*JRvbwmD#Kgdhz~!TI_ROpjzy0N=aJnBla4zU4H;#=OG+8gHpMY4>S1h)p z=Orf2&I!Z4mOS_peC!K1J}7N9fsf5pxg{0NhL0vd9P2gV#cNLr&fj6ub+|YW@pW$LM5Wq^Zzf>e05+QAM=@=}{? z{%IK*{!irL)Mwa~9;?9=t$oInP)jWt2YwkDG{|+N~$2 zy{3dfl%p+uPncIULNbdG$O>>vc@#5WkGUxBoZA7n{mhL4`W#mB4a}u`z%`aO>xZgp z24VDZ1oqShz$a`=f%DUm3_Q*@+^K=M`^{D3W?({t{Ov`6;&`P15*L@C-K^g#g62#3 zTw=BC(mW<$ohJJ59|HQbiJn7^Gdb6q3Pbf!sju6)EIgFvfIC*-D>a#A#Q824VGaw4 ze$p?F5DGViEA<%9`vxUpBjM>tO+;$5Z!7!!nb~2nYxX^E0ilV>l#~0(65A4Ow#uHqQOiEpRcXfV9 zAM@{N&pu^%!Fgt6++W^sO0bdh^2=3d>rpq^)raC%c2+9Hrw1Rfjtp{4h70#!^=G>| zCzNaRR!ILPK72nouuE~g>8f=B+j<|%@$DX(Da z^3Mg4j1id19y@4I(27P7`gd@dcR4x zO6u1yobBOx6K25@_Xh2{b4NI3@4umA|Cg(cutp+iJ-%yRsTJ%C7+3kf8I}g@W`Pc* zNLRkUe~m_?WEY2>fcKyrTzzw#6)_vIgX)BA@1S(afv7rxZgo&-?_Vs%qN?98(w-lw z(jf@rtiTH2W=}{?roQvI`nH^u(1PHVG4UF;oW%I?IpA`pyg}v{N+OB-%-8gJ{YeCW zH0$Et2ePs(|9L3r5?v7%O%Ne^-}Ob;IIu?Mx$@~o4mqymZ6d>jciXr=CU{xK&IY*vC? z)taipAW%hfM*OwmGzV(2bTtU-6yh!}b^sUu2bi|#mysxVpF}oVy1@s|4POvAPK?#( z1WPnawPfEkS={9CTnxP?FmdO13iKQvx0}0Uk!cF(!q;e zd;&=&IBSPN1B6(SK8&=?bym)Gc~k!8PTq5yoXJ8PCUqflGxwD_W}W6}_9+sxm9;C4 zt5ojYFG@qmJY|jjWUfWGTcl@KWICu#iZ^kGH0j&pngP7Jmmhpl0tXae9VyYgPT$xg zrKS(%Vbfx4F?IVNw9b!AI}q4ZjLSixKc|eiX2+C;*T284@FgO%s0sXZ?ak}y_D^v7 zD38zu(`D6UO3?&`3;J~PyNs1c?g{MbUr8STP$39o!|QuPL{aq%KMU`Elk)D%hLFgr z#6kpww@A{;oo<>I{QTmX&{uY8BpS`~{F;b)nCim*8yMc62}_9A`csG^Q5hybA0<6< zNJnMHeAIadCGAG@2I+gZ$jZTNs91@kQcdH7aFVjDph0k0vc*XG@0NDwk^6+a7bonM zu)csef-#=-ak~9EfT~m4v=h`W0s#t}r{kS}(UkORq@=6Hx5x?HrHCgSJYVCpm)rwl!(G*n2ms4CY*))Y zhvEz`QuIl7`ZvRi`J5}gJ#XG+OG8u(3~#*~;ki-j<5Bc9WW+i={7V?l|BLUUUyM^* zSop8f9%^azRTEw|W+(DDliKgcRz^15EXmQj6WL^XF15RM?$kO}IWrS>|gUlqywf;%b!C1}zM-j&%$ zmBH#Axw%>)#bpXx-uqomO5!Gp9Y?7wsOo`+f89iZC5nEst<{+ymZ%5Rz!uxs7xiEd zx36y>&vP4*8}NzYUmyQukq}nU45m!hEbgw_Ylt$$PyU-6;J1=wB}}Nr#D=eKofx$G z>5->BP6UOqAs1ASiqN5{^uj!(uxUY9Ies}=T5(I2mw>OikO6wj!3~hE(%|aIk8=PS$gOfxgY$t#7UUGbAkz?MJ*5RBOIL zOiD(aEnqH!jCz7JORg6f}y_xWkQf zclC=&0rnBf55CL-i%0_d8=fH-+{B7agP48Ht$oaBQ=gJAqg~8jQ_S;Qi*C`?on=QN zEqNvhzjq7J4hs`r#?_`PDQN83cF@KlZnrXeF1CMLZRI$B-?#Ge>f!m7`CLOO414~u zBsQq8Z5oQ6f8BRl@>jD?Yi-j})jCi;KnAt8${NUvIFL{AwMdRQ#r^3{1mo}V{~dCt za15UaEh#ql;X@l&%+#fhQ)uv7DPE9KKfzM6C5 zVpgo9D3|KF?-1iM;9Sl=Zg;CkU5Tiyh!+2bvpl0~x=b(v-Yt0WlJK{{;&tX)Wz!S_ zy|I-%XtjCqm)h|Dnd``G-6{B=-*T!!(Io#AGGtbKC6BD{w}nZQPYdk#^=~{+JQ5+c zp{h69dRgvyt#oE#mG?<)u~&DntEKpBx2F}s)DPQc5YG7Zq^HMS5=Yj+Nh&b@+GtrA z(SxQ)4%BV2zZ*o)FF!oJv2~Gs*!XJd{99?+wx+e^@t(*VJ}1#LwQV|5Qu1SlrI&-4 zVdB*?vf%qAe*nlxcjxNHR_V6kk&@OL>p;V4(;?)S_8NtdeM*(*zfr>{t}4oC@qnD) zzmx5^7$$k`-dx1<5~!70Clg-T@JI<>#yB@~ZRC7_ScP?_?>zB?AndxLf!$e`f6viT6gfz2}fhqN9Uy&Z3$AYF|A zCl{c!P+T4NqTQ>H#v{j>mvG+^=sXX1`N4aU&DQ@nM**Ci$;x*R429qAAWy%F8wq(D z5j%geH8s?8?$Hcjm5E?W;+|OOQk%HTK10?2)ktPt5GFrCcWIYSB!;z{Bh2w_K?e{; zZh86LGi9HngcO;_;J=^L3yG;x#C6dk=sKJCtna7F{lz>I=Q~sE&=fMU#-NQ?-qc*y zjY=%^^6qaOIhi^&e~_&gNa`=yFVRO)xkw?oSJ%XwC}hNgs9Tj)$&1(Pn}jeXsZa!1 zpEWgs{&Czu_oX+vb8Sds5mCOO>grr$%;!Id5rRl$s8|SlyMo>J(Mnf~tKMb2#UpFo zEayZ$U=+>?s(0%DdTV~X?O@=w5FUwEzMb2>6axr+THNd8Wcq~?l)V0lDZ_-*QOF%> z{sTJ8Nhw9}Gq&VIXva*%A9%p@79FKS-)2C*e$FCyCX4mm_~Ejh_t7t>1lFyc(#z<7 zt_Tq<7o7`uNPLpC$$jme5FsIp9;nO;&06h~^Fj`rvTL$On^3 z;Mb>hzM;d0{Ftw}cbqkLIeXXpM0GxwU-I<5YBkUNaS-D-D^K0{UJ{@K^sWV z6Ig$!^6F^7Cmx)UqEXS~pNab_P!iqV+qz)C#a>te*|fcy`h7Ep%(oD-gk!-J{||BR z{2JnV{sQzd?{?Een_JGxOs1QSoH<00Ve+78w3%&z5(G`f&*l~wyUHzN1&eFf7Q&T2wizAStNKFSzVnM^+6 zK+=$;bE#fB(c?VGYb)5iT_Y`Xdz&jn#@rh(;+-JalfI#I8IY37ZYway+kPb1a#tNy zp*Vw3oEqp{Ss6LK@Nr62Y~Jdj$5L+Nv>9-e+f0)F);RCVdP&`CDDN?f|*HmvDUqk(aMDyYMlFfJ5c#04@9_iG+n3N<;Z=pc) zPTb!6>tXAv(Sdz8@SKPxmG8P2N=AuZ@>O?{{K@<@m7$nTbZ-+BsjUXdaWmQQ8AyKD zmx?KW*|?%s-#M6CUVm2RERNulN8Tk3Z9(x&F~rS%<^YqGs%)(DO~wl(xuTbtr5ajkTsRS*&HzJGy9KA=1`)cuPr(T_UykRWf%E-bq^vAq{4 zzNWY=e#s`;d4kUrc;Et(%JHd13?)-7RvvLG$@!Vznib?6Z}2&^`1Vh-uwF|xW?GFi!KJ-OsoBcT96n5TCq#onQSNBsaa_$)C3~zyxA5^7OC2 z=v+w;_S4GU5Q>41qq8i)78hMw6go z%88herkf#`fJe>fT%WJh-9!HMvg6zSu)KRtNKVsA2;%)f)sC~}dX)-6|M^DQcxjA8 z6A>tk#qb6EIC6}@d%I!$!HEq4zw* z)MZX4^63CRYV7P69WyI6G(S-c_EFD|B%;!!^z`T_%&+ffA2fSx_u|c%+-1O;J!0e2 zkpo#%0p0HZWqB_rxo_KlmqR3e#yU)o^37dTL+W0;yBR zFGaPl_YFI`!jb$KIcy0vY(o$ZZh6by@O<`fs?plDqn9VGxtIoI_86ern6`u{6Npm~ zAL(fn6ZIWUd(fdceJ1yL{R5`?@Gd{y^asgE5}owB(S9q5E)DOSFxsEYh_24!=EJFP zJ-ECNx40{=IaVq2N|?=mWD?*+xwR5nEWAvc{fqYfb)6+dkL|xq=2Sgnd&{|t{7*{@ zlt694P1(aCgWg}`=F73-%7~xRfzzV6rY{4DBHH|E$a;*yCnBa04qaan^P`S#l=Sq| z8|l9kAZ!w6Uz7RVSVAVOdaZHChP)DVdqs<%297H_X9(hSU!tJ5xO|brTzJZqx_7d_ zE;c}A%-=CW3}h%dd06jce!qAVLYbn3fRD{MWy%PS zVl~J;PLhypw9%y>TY28=G6a$GBd`gDN!WX{fyr;^T*jJ9wjaqM_;_ddQZnUzV#hVJ z7xpI?+9~IPlXE5Y_+RgA*;sdNMx5^Zr!wk!lR3+8`g0S$stde+P2RMgMlGiQc*+)% zHSr`>-SphM%J)vF3H-zZ(nWPpwQ`zBqC*W>Ww;LmzNY!Ax34?@ncl4og15ZL2fU0b zbG}lm!r%YW8K1MmqRV5Nq9Qvpo)=_10ypcZ!h_smVLs-Vo@)N%ABHc%0rjmvnwgUN z(())kNqrN5-{QNXi43y21K%Nvw(EGbLZI$_`MCI7A$P^sFG)Me`8J+4Pcv*d$>6<= zdM6J}b~#X*M`4pFP2qnVMB%;CmysWvO_Cx&xJpyUM^SHHBjO;W{zeRg&sk%gIIMeV z^(z0FJZ25db$wj=+?F|AR~&@m-N*BMD*Zc&{L=Y}ZvWo@A5UK$6?OZ(y|9#|sB|ex zOGq~gBGM>IcQ-5DEDt3rC?e7&0wS=0)Y40c(g@PEOCz;Nt(5P*`2D^Acs$2*+&ku; zx#pT{=EI)V8W!ybSz`!fFR47+B_~ra*I7L&r;HSh8_lUz3MYB|sW_y?JXTk!wSDPT z%J9nctP)qsH5QWU55deL{C>K1N`H0ELlzliAR`3?Gzxd-L9%K^?&o~{+I}=Ee4TWN z-!B+N+sKBVO1tw0s%rAXX|P;#HQbo4+kSfLFLl)EX@oB63VWahFzJ>i9d&mt>NTws znHq<^i_uks799QR58s}D` zE-9n(i>z#^1?o_0vDT4|09enXN~2748r`q0t&-nTB)*Ja5x7lDZVOp^*`($ZloZywPmL>21O2HBjcBkP){6p~Xl~8?I`FuYSJ?&M?2%o14pe4h?%idbOXw?gX2hr7IMfrA()p%2 z`0mhzS+)kPZ19^0C5cdJ56!}pzDJ+9A+~=G{iXLzXwl(EFFiXSM0x(g=$SBn(avXm zhtE-zL)iInd{F@|KJ+2bu)0Si310@^Qy-c$ij%J$C}>lDx-&Y}V5}Gngp4+&=AU!7 zwmTz>m#lu9RoBGqVH(OJ0^h5+?}fH}I*I@X;CPqk?w)Es{%->vCy{?DuDL>2JA5sn zJ31DAH4*E(O@nK8s`O>bgi@xtRXcN|o9_Hj(s`y~a%q>tjP?$A?}^`~8L-DzT|z*z z73tLN5R%54wdynLtlcw&e3Of0?E|WrdI;RR? zG}@z{IW_*}4W>`Ub#4Q|^ug^u-^!~JPQ65NgGqYFqk$RM{IZZlk-c6tjkB+_X^_`9 zvDYC%6CEzFxnIB9zZ(~MMlPL48tROO&o94=K}>KdxPYR#<{LaNE*@oJAtCLkT?dJZ z1&3sG^m$cihxEgnZ^tXse%@D%7%i4DuQzM&e)SH6 zJ|M0HDo{y!ws3$NQfM)Y`ua1snVpK7b>IrG%**h^$_AH=6g7KmRHU} z!E+K@<^>ZMFB=|W(TJRFzXUwf)xyfrt6*>63V054aau5Ya0czhUrO^f`cQkIAvE@KH;^> zH`jtMmUknYRziXZ>A9jzsJQgG1gfQFAyN}jvNBMj-a%gShob9u?tli`LCiO3?vr2f z2$YhVfxtqvqjm^uCjYRlOOfp^p^P%w?l(M%w)>O+JKvu6yyv@^NNdzJlEdMTenTe@ z1~V9q$OQxme{MN+KV}K^_R;u!Cp&nt@3pYxu88lU-$N3i^ZoZFf@?65G3w(rRf1+8 z7W-Pep8s8`_B;4;1^r{V>2^eU#F|I!RNLr^dk$yc>)Qhh>{FI*PVT?#avpUrSB^N> z`hR4h+$>9fKrHMBu>H;DUJO;gBVf9O{JG%Is$g{^q7Q$dt?8DKKz4MKV zW-Q3CL!oYz{7XT;(V9T=j1*iJ@!t>TF_5~BW}BqWn;{G@Wq{(1yDsn9~A zYhE98{uy1-Q%;VGM)vLKsWu`8cjBhMNxj@M$dM)`RrvCXOA=YUUhNPK+jo}PQyHb+ zAYU3r#<7!_r%|gin>~=&j=Q|#KI<_TYaG0;0Q~OYE5%vcC-6mw96{DK4i53?h%D=G z74Md&2sgM!r)>Muq(=j036ZqhU+vImc>+RAsS61uY^4B4*4niH@6h_cxQu(1_ra#Q zpgU*i7n;l-ue86}<+As3Rmhz@Kd_L>_Zo85k6*oOYFXva2pwz=lTOhZIVt;Hq3@q@ z@YWgpH|KU2@m0((-6JwGX(d+xp0ahPh;WmGDVJVVh3mm+OM_gk0cOzo*hCGua zY^_`M*{T1Ae247UTf8HX7!%r(cw1|eK6qOqd;aZQ6fwcy{&M{1nj2L4GP#y@y{ZK&!%@It_ktD$%T{^$$Ot7$sF|eX##2 zeb|6VeJhMjiqJeJVN7K)f0Hep;nZy4YdTzit9{sMJKj6&^jE!I?vC5whA&)UpO|>F zK#86@$SkEx-4lG?6n}8px3VmxG(ET$&`GfVG1|HFwm^L-1JX~3K-0Qj6}~j}t&aOQ zc1=;)Ex}?Q%A63-9#BSx{UGz}DLmhr_dP9h3sGx-@8UUTh zUYL57Y)t^Ea?T?Ztkt6jps4Z zlN;qHy+4|0*505|+^&u@K8If;ZG(@Wv7D^j^cdpHI2u)r620b?3;auq^8c3B{8*Nv zPi50fqvPfI8v$0Qgj~w~R5n4%>pac1Pn=)SGxO`$LAH;_Zc!@+`Sy&n&rzhfQ<;tV zn`u)oS%HZq7Y7BzJ3owzEF}YH&n;5DBw%y8(Xyy&*JNb8Z@44J_1XtTTD~;(tMSya zHN)5t=_L&sQu9^;@oSF=rNF&O<5`g#Q|S$ZpU8?1tPLT;A%9Z^SSh1s9pBA^a>B%? zz}a=}>V@&^?ah^Ge5@h3m8X`bsntKm2s~omm(S8`8(cU{Al{PQ*jEpq{7Ik~wD`H4 zZRTa5dF!w7ht{^U^OK~{1&0;COQW)_>CisDKlw0>zZl}WpPVSJ&_%Oh>%bJQ5uDWp1#V&$9nRAZw&Iu*CKY_R`Mt6+nw@}@S`yRFrHrxWNTe}Z%U+R zP{S^i#;u@U_q@65%L%jV+VDtfW9X2}tbZ^y^qpnpX5nvhbZ2b`A79 zxg`y%$ijJEDk8i5f2-?UwDB6uaCQKkYg{9S|2k4BmA_rCieq{Tb+Fr5WyCw}_)4x> zE%{x=++&3@4-sspLP+5&Y|dPuj1{JQ_GKPK$Gg)vO)%>Nc>Y(JO%(ubKY^f5Rj93i zbvYT{N75GB+GF0kH%G+SXXrln{pff7Ub>4%!axk->i1$FVp@|h4|vfTaRDl*bqb%^cEl}H<$tSWe|?{mKuWoHl%0Eq*is|!Ku}IfJ<5f%eDUR{ zyP9Z+k(wiYHURsZ5k+wk`i==k#32gu3=~k(4!D3s{k--}lQRH3RT=;klI;>7_fxCD z^|x~cBEDOj2P4J(Y>~qvt}E(pw_#U{YgF|^3w=dlJ#mEMrQ(JeM9AR=iDY<-RIquO zHM$*Z(;i0b=UmrhU+rMeU_XyNAzpKta3@sqwV4CX3I z{ILJ$t-CUhYlm{XxL{SuPk7TS9u=U6)`lv`u}w0YFUX4e@+K;V9Q_zC!0SpPs1Sp7 zKKagrI(9FAL_i&T4={@~s7ly7Cq1p9!7Mf^#IR1TV|4aOE2nc_sWCZ{@H~urCW& zth@P%tkJAo_@=m7-W|Q~lO+Exxuv>c_N7<c^4M)7H2ubZpY0H+Ck6m;|;%z_I8Tn zPXZAbj-48a9Ct$o57e78k$BgcNR*hQU1%6G4+T5QHrDo=v9K*8R zQqJ~MGL##_!vx?ber;~Jrh{khE@ZIT*}dcln*OJT1Pt>?%;TuwFbDd&N+ID;i=vy& z9<^OJPYg!c{dG1!y^FAIm3Jej5UyXW6%l#Z`Y1?%8}z&q-hzXJvoy)s7$q7yh6~=5 z=SY|kMeXiJmebJ&srkbr+Lxx@Z!*oPbf`yegE$2hqmmY?)w4kY31(FMsSTZ%TrRmqwf^e#m2o7ueVx^Dh#x?im=J z$ZCr67gKTLe>YnzmlQjRyygOBIMX&{Nxdx$0vl?y?s3%D6|a{SmDD?>y9~ zUij5PZY7O>9g!_hnx`=|+d|K`t0BH%5wBYgVgCDy-R-|7pIX_n34zOv)miCBuWg61 zHVx$*RnC7Y3SCDdm7FN1n(y_G^#gYMKDQwQNbv@%Gc58smDaqXRxUjFAxdR^ScMHZEE`Cw&_Wz6P7|Z z)PslKQS0C$Yl-|u$_rNGf%$U$e@-F$Nfu@N{PZ4z94qjbHaU9!bnU94Gg36nmf!i4 zmd6xdtwE8oK4pbR;lEtvxJGX6IRx{nOy2Ll+13QpwR_aBJ3O0FDR^y^X6f z_mO<#(ljgY`ycn+S&z>_-gd`kqS%w)A4(#Q`shs6oTBTIEnE_TZ(jWaxVz#emaELj zL9@=WWKlcw$R$^(l-iCq*NGmwYuWdpOV*T7YPy?xmWnwh<0PKY;)|L&0V{cM zsi>)p7%-5(?3V!d-D&x-W>4g>{$9R(lU2fTOhigJKEvubM^z98eGB>+gO&X4#1|V> z?QsPYmgBH-a6f1qNFU?Vdc5P{1 z#4$QP8;{@8D4{Y)e;6p)9W35Nh=^Q18AMBJ1jKFSF$$YN3f!xQ^iF;frE(ZYK~mb| z_0$5UbLxEIp#P)f=IzO3c>n7}i1OS2JF%reC$2@!?4^iI?-Cy#tHq@VLbVt>vT++xGJva_`0vxfrcj1C@KXY@N6))$aw zgj(;pDsXv9$)8UhOL&0FLpP)6=Vi1@D&U&__Q{nR<1Az6DqX1y)l9hP#~zf>Ka5}7 z`pns?>Q}?84cE8r=+Nl!FJUmx!zk@~-Hu?`qP3jLj4RmxKS26i=~0>Mr}{ED zx}6MiT>nxmA_3NBo~40u@h&6Qd+af5_m$z7-HgxVOr&p)b2j)GyVTidS0kL#S3~Ff z(jQ1Oy;$gO;p31e_<$CW;3bJJ5%1Ez#)Sy2!fF}6)kiY&{>$1VP< zDprqL9@BV9_Gms;gE{Q%!Q9Y!SBMQiG-Y$k%%mT1f3>jxl9U$G+UdRz!>C>FXHO!G;(rr%CEBqOaXkX2R*1gh6E$lO%AqShU^UwnE%}R z8F2ic+7;8h5tgF-1d02p{x8v(q{L!xzV_C$&6}pgsW1k2cgzFijtgmtgEpRf0t>V0 z^&Kl1?@%z51OKe;j-C(OPb>i?9m9F8XSP|>#z%hg4MOy$rOlq3%)%K?6P_d|yV&*( zHM4azaRTlNBl(#@T6`#;+2wh;4~h!UwGXfN#hP@K_wzVB?NFj@c7-S|eJNL%@d8Rm z4e%8BYos(>o`nAL8#$7ChV>2obUjD;s%~ zShl?oC#MPR^2A|(fHarh;yv$#9ROy0@=f0>Tp{zRip%6wY6}GUoIWGO+``}KSSY+J zwdJoEnX(v1lKmr11MGUn3Bs-_-SLIfqd&seNK^yHe#(~1?R;&b z-YV4$zp4b>;cK4X4K-B>Tcxh!-4S2h3#x=SUnw{?>H&Iz?Zc3W*GjcO1j9^)0M+KO z0!gcC5*=7wa^k<$#WkT3+W$c~kbI^xIJLP^I_#i62S7!FVhYK(Z^sMQJ$~~lbL(^V zCjvdmzacN;K3sxX*}zgEH|Le?DMh0t4D<*dar*9!k6|G3m6ltTBaZIz((X6pp=_5 zk&fgv;d{pdh#{;$#s2a1>ckeAgY^t2at`G-Le#GqSvg@Rx|DtP~q5{ zd1Tn%8$8+=Yb&2Y5s%(NzLt+V=)%1!6PZSG+QPHGYt&(Xn<-lSu)>Ebz;ATU!ssfT z-rIgL6|uf}EW1xkL7%xXuG7N*X;e4{YHFN%`s1sf9MbW(Y)zHNR;lgyc#VyzYr?i- zWMoRLE+9kf{iT7xs$HmLzf1Ao^e-&zzPT_48*`tC z$Q#YmywLPe1Qt7trL`oI_Mpysba&9nU!UnAbv>#zz8JUuDpPjsvXqYO`8Ln0xjQ;% z;iQmIC^ZA|qN1I@d$oMsN8#p?ltVSqzUe_ zYz!Z~%HVB$v30v%{_vHb)E$^SE4vV!VP0mFf^;xC6tOSjw5Ryx9(0pl3ydr2wB^DR zt~MEIG@1lZhJHcABq=LbRI66YjtjbHt-qV-R#N(@) z24u$uKkDyc{-r7h%;UYTCscjfx2wr$4s2+r!IyA*1-tf`Uf5JS5oV@J%a_7Eo4u!s zA>m*GDHrTjGlKGM;ssH>TMDAARz~JCZ`FC<$d)9+l+l=N|)t8VXpv-PLV zb1l>NnVc5O5@d$W7FEJN_%3M?oSto19!1CgWwdxv5TW9Ldhc;zi8kI6wLyfybk0MA zCyJj&rF1+qWCTtGRH61aUzObKlUQxL%Up1P9aq2W7;GYJd?!0r!mtM75o;h|oEozD zw&R}gtfFWAGwBKE;1FkP9=ZK|o~%qhnnyOI3f(v8e+*94An5`D-FTvxi+RW>8XapWv&BL}-|wPF`+l&jp@z(G zU@ldQ#Go&o$SWI?MdimlNRat?)~&X{@h1C97sEsNah#V#MbBqV)Mo@G>Jl|l6m|WK z1WL{oagoD3=Xoe9v$|rDO2vmF4(@&GW@n=dFm7BtyVOAdG5cF}ZO(THA}W_B1`)b% zx8t_CNn%V-VxPi2wR85Vp!35#D(mP9CLdME^1ICq;5?bQ@fNUfsS2OmI~`7QwhL?{ zg~gkU*s7uJttaHA>wJ%M7}WSJwFh8 z4Wl4u??SWM7wp%M>MY?n=|Kr9C`3mzq?wq?=nQXSuvJx0qb%2t+zK#KEEa>sVclMQbG@yg8vwj(Z z8PfjZcOI(O@R$w%S(Q?%9BS|I^>?JFxT++(<3h1I6I>{YHT7?MLV}2PHe@l9sAod_ zi&16*9)g7sLtBd!-!bRb1qHC5*^E{5E%fn2i*etvz%1XK0Ogt^^U&J5V#+3wFdL)@ zHcM>qs z3{o=#WgV^yRV4)&SxZQj`2X1`sOwKE)+evO zV>h(T704bxW5ElXH;Ill{eZMH!1-=JC)PMU`fG(%!8P`)A_KiY7h@T#D-qlJkl=7 z#H$CCPXqD&@5=JF34hGI1N$?*RN<;sR|KrK9Vv8Fk@h>{fo} zOWZed5>ke1Zg)KqeG~G<7e487r;u#VZ;~+cORU%6EfROyDH{5JA-R?bX>ZyhiG7Cj z*dS|tmIEqKvGa`!kE0kpw795VdI0Y0+H~4*ewOW>D;0qsYR1R$l_;2#&Dtw+*vdB^ zGbYURv5ym^!+NN@*ct3SobTd<2S4d}kItvP^!tjEIm=c@Ep2keMhjq8p4jJRe`h!c zb)M)EI?F_z;@Hv3WC!w!NcMLT&Em1oum>F3)v9pMY5f)vtagTG>DHalhUY`B4OEIp zbBUTX`11`&=Sm8mx!sTqkEY+N9K*`t9pIeM!1PoH$2ms%li*C2lQzbxzFv!bNY!66 zEmq^&OP+LP2?BggiIqi3q?9w{Y?TKT$|bzH#o?YrTfLB3L|(x-;A@|^zPljcnf&Mb zqM1{D47EhDgCSOcmAa6;_(7TJ!MLwVcZSTZ1Jj?p1Hv!o*R|7 zGG|Sg$tdGSPBovVxCQdfXMGIxI#Eyrq(K>KuXr{=e!W`vJ#%0d-cD>XPBMLaI|^(K zXH2vRgwjnB3D_3Uiw5!34O{pHVK5z6VZ%Jw+rCCJHh`#sTrf*9o=3>UgT1TH&EK@; z77I&8RYgU_TN*8mabt3T7RQwLzeM-|U`b&QZyN&bU`yQq*af)Ybv!qSAR~QI*UZeRh!eN&Nbku5=z;G+6BpYq8N`m zLCAFGp*>th+}t{k>Esn5dAZ(k9x1-r09;CKqaTDPEktbn{tMWAUo6qgbHJyg-M!~P zKra+RGUL8mD5enJ7Eig3`i0}a&+ESJev?T`H_q?1x`fVEG`e#LMvm3^>s{!Bm0J0# zCyR5CW@5gF=ecgM)9`%*sV50a#5f&!atVi-} z8v1~4{Tfnei>RLf<>BC29*~#K0lw8T`be8Ngw+Gd-wv7=y9pmGUoFX^RTR4@6T8*u zmg!Dy(5teqo&xot;^DYCo#dFp-`~wm)D7Zc3b(B0R(&5k&OUj?00R4q(j9-Bc*3Ai zsUA4H(g#hd`Gsl$$|iI|{cw9WQa?cmh=>E+E<#Y}YQvQsuyuyNiN$blr8M#6*fkHG zQD$~=M^kCOOS{$Uc1u5ngsFZyHICH@5l9c@Srcc<>}BdxpKG+DHECp7E9|479w4?c z=Mh0w`y|@$O&#EuY_q|YJ68W~F}?UYN_*U^`<^(M4}h^;RIBx>m$LH$iuIKzgrDO+ z6YHIXM6|lC93%qZCzJ)z0kl>!v4S5Ccwi-})-?)fIGe>QE?6I1#WMW>D5G>%-NSiTd!(7twjb;|IURNom_rsO$JIfE56Jc*~^yl{!r+KySn#&xFyE53csY84kFxut~Yw6 zar=)RNkAK`cR^%Jg?_I9KHNJvUobv^Nap7qf;}%3yd9#J$R@0p!>0ND#`uKuGl?C+SeYjtN19FvTrh)8>MDzIHy5RKX3A@oXt!@%>8Xd zV3i%H#6{;5KuH;K?aY|p8u;o}r{%9bulAj^`ZsWzemYZQoG-5P3A>QaTt#==lO}~U z@!OIqCIL>>%)Ggbj|9b8V)eM$PxilZ(f8RZjxVB6=1|}`TmNDZsNh+ z87KA^en|Vt(z{WA#%#3cSGeg>s4atDF6f@ECJ7pm^Na|WF1JEXN~$%&OVMba^XM*< zWY99+Ln@!j@FxXN%aiThAgD9z<)PU*?yWr(`QtLs6nLb@ph7h>TE=nNs<{4&K0Jmm zqvxJFRQ%JAL#VFXu|91^E)SrJDvD}c8KE~Fb*4c!a?pCEhfH`XzomLevo28jswVi6 z39bKMqU%foft(2GQ55QqHvdpYc)D>UlseTBe3e0E3%#{E?l3EBMVvbyPg#<;=g_IBssiDZ()RK@&-)o_}?ulVgOJjzLN z-UA%;M~p3CI@!7Vxb#VJv#*7aCLP*hY)LWnRb1?23nnkgY6dqL>GotFjFsr73~r1T z!y|3+9CDAbI|XU@-b=9-GVB+bZDxAvuL?RcyiIQ-AAn1*eTDB8iNYmatAs$+`YcTE zJL!=uLoA~tNDB-|Xb$fGu8AG{-glebz$h7PLvNKZHvKz;yo)(>>&h(xdf$Q01`dY- zE-DI7LF#eTng5EJC`_p@?HcAp#ZHq-mW)Eq5<(#wset~~0*$On}94UDD$kXkZOxmzX0}}25b5RNG?(0Hj zHuM~>?-~jJXLBdkRAZFttZN0=Xt`%cr zkbx1Q_*E+K0S@$&{CdgIj%5m7sE7YmQl2jARs=jHEUfPxwZ)xpp?UYbQS`Lb>1OR8 z1jO|mMsi{<3(1`!#KN#7ee?3@%2=nSylwvkvZYhrcvi57|ivd&zBaW$5NV*)z@t zFIoc?frs4pqBK@1_ES!^4M_v$wI^lU%XPx61W0#|DLf6>S9s`6i0(=b4RWWDF7Hjq z)#k@Vgf8}5gAth++Xu$DLOBct)RKlLWF4LBI@NwJML?qPj4?yn9slCp5v;sP;+}n}r$4s{jpnD;m&mXBLK0hYw~#j_)iF z0}xDBc_u$oU>7ez2AiDqmB3o3exUv z!GMO1Z;B~m4VFwwyC&8c&qB*XDhf+~*=s-!0l@E*Csud6`GH2L^XlCTgaH}@!3?>` z{mkjr2Kjy5upza<{ufg*y_ACua->yxb6gCQ!n{UUiGyIRhU21nQt4 zLNouP5O*~5h$3;SPl`Jmy1kyIkQ%0FMs*3PbZqsOOtT+|m~EOsOOa~H>~vR6@HA2| zK-8vJ;@b(3LaAp2^M@U!6e-ZRu;~&Lvywv*&-FT$Me+HW{Ih>(uke@MO2{UneiYJ* zxvKAqt1Eten|)xqWR>4)PI!e~Mp^!2_IHBpEbg2NRx%*(!e05NZH-A@w?#b1`kt8a zvTk}eYUf#B-)AZyNK$#}wE!s2sDM-14MpYi=}<9_$5C<~+&^j0(ZXp{ZNVyrW@Q+t zQ0!Dks2Ff)(Qm}6UnbhPX2U1O{NlHN8U=)%PNY5V2>+CQ)PpL?B&SEM(aF1PwmI%ZpVSc~24O8LF1ca(%sQxo9~u2q?K3##5M*I}fTS;>lq=#t zvML7x`P=bjT34*xtI2C3*T+hAP_yHX?q1l;IZqc-;m&--P=(Uw9V#d&ZX`m03W01l zp#R%4JYpI__ZhiKC8KGNqg}SDhmuY`K56~ zmSV|~{(XU_asjLT6bMmRW#CqsY<7bM=n!z83a#)pLF z+kRL++_S}RIGH(nT+N*JUSlW%0;KWaOR=#+us?UWRPb&b=QXU7<#wgQ=68d~jnb$k z^xMWQ7j(Y#GQZVA*-Hco0yhotNnf-2?a~^r^`9>ePZ|WI{-izM(uyzUzMC@#+6d!z zJLZMqhT&m7$+RsUdo7e$!dMmSJOS~KPe5}2yeI~rb}GA3R6Vwe&Tsi`)6Y?fgp{w;!mfgzXX<)1qh16HfnWg z5$keyoKx9MQ@?f$uZecXf8%p&j9ozPSJSd=G@mC+c9`?7 z`>!(mjmWOTN1SGf9xlq*mIQxnjEf0tzIwaK?sY4IGV{+l=)T9LkGE9AzEe)Lx5MY` z$#Y+EG4d)4wcSX=YXq`Yv$Qg%ZjtG&13K!pcOHocZ2l=Vx3-Tjyu0p02~`MMs5OnS zFJAD!*yY`1dfFF5)I+aop^_d+Id3M$WXoS?SIufuHvN=853)v=TZaEgCV8;gttTr@ zON~_4?7|ZQMH&BYMsv@a&kFsy{;CVr)$RX^0arYuYD&P7ll9v-${;}GCtv7+NcT{n zWauM@1ecX@m5yX>xPvQ$^n}zfs{ysnlh`uRTp6q6NCxR&8fc@LjTexUQ}+D6qSlnA zcKpdv46B5<+H!#W{6))#3((b!K1FeP95104XgqM&&^m6~T%=`*ll0X5zfZhemerE9 zSP0%c7%uYgAKU5QJ?Ey@c}>%5;Dpt_pZ6gCuw{pvtde>Aka5m1hJIth19`e9P7zat+g1!Zt8sV6E!i|h@8)Cx9;r5cldLvos73v8vh_7 zlzkN;H9~aD1=>o*pkdQyX0J#O&Gv;gx?#)*PPcr7!}+ia&!_4M>=?(Y|X|J=P5 zAWixqiGZzs%e6Vt+PiIbzb3lZbIC%o&h$v-3w}3okzdDbUP4MLU9RLY>I;fr+oELQ z29F%))$o^lwo!o(^cewg}*q($!ZgDWGB8zc)Ii6Urn8il+QG1m~Vodsun8#36| zM_2199_ZD>|IEd(8F_n!)FO9+<_xJFGWM#7jI8PY1J~7B&M6%IE0J}m*nL)mwm~_+ zm{Od_FA~Z|(^AOUbb5TpG)UUEMi_oG=sQ1+igg_y<^GgV{%!G)##rjNc_53n*%)1- z%#g?kp16HH`bJ($45&!P_p5d3&oAefMH~&9?m^K6Bn&-iR0QBa{M?uz*)q{~dacnVvr=kPvImqzQU$1fe$0i_wK`N_pSkuJ5_sHE(1b53wszHCu6U+wr2WzC*H_+m z1gwH^nN|q(!bH4xcY9y`9}GEix9dy~bn(gAJ&8(bzhf96ZA0q5j)qU#CQmwbornYy zgCH?MNmCAYNfOiZJYh;9G+VUzBp-sJ1C31BuJ|`_>EIDAv_0&RF{s75K1Ao2WuXljp6P8IWF&Z8tZQZQt?-6ZFC;|aY-PIHRz!&eW%rWR$(U%vGt ziO-LoTPv;-e-Hg{967B)Lhq0gDhkVM((!^Nnl_Lm)Q3J`3h1V4;w)HW6OBm*(AX~_I(`9nfBI!+XE8ZpFrWYC)d}8O# ze|SxwD~*VDdyP~v5NCeciD1IHBbR)7UrGo_k7j@{7GFV8mF6gKH0f9lmb1Ty&AcD5*_n zFad_a&(!`N@z;)siw+JqoZCG=yiZZ5hfqPEr95S}zy$D8oo1bw@J8&k9KIERpIKwI zFcFucZ5BJxjylxjyE3v2)h`Yof9{nGKvrvg+noGkEN_;Lypt?`x>2%I&y357nUhS8 z_**(Z=1Oor8DcdCe|cC~!Z|a(*Fti|`Rrp&lPHj5Pre7!B(BJG6ehra%=)-KTMS)N z%BVBm!z$^n9HoT^AB0*$Q!=EA-bPF!A?!}AuYKq0WOr<{jwCM4JQvQtTCx5rYmxip z8_57K&HUNdmk7wY^S|~^AhMyp6`n;)_ z?R3SFqmgK4*uT&PD(GO+T^VMr@?7a_5M*fCTF^k7^Jk$;0okji*HTWol$1J~&I{ZkM<|oBU6$}KrET zgW+7b9p_6WZ62$Uz)|tR?d+~Lf;zx)&;P;fAs{X8y3xaJnwSbt#x-As^ol=wK#g}J z+inRlD7_>^MG=N8gzHgVaq z>v+RXoF?Aj<`H!TS5L@cSXEeFbmZ3`1qPz9z0GE+D-|cBE!G8?p%Rs!wA6P#(P5RP zZC*g8SYh^2H?7GEtnuS8^l*bMI?Ksm?%(uCM_O`Cf1N`+7$^fO&pG0quwF2JUv%7N z3*9wTt%Hi+(Pk0vYpQ{X1{#sQOoF&BN=Wk#t~}2E`Y=MYl;iputKOr^(BOqid5PV3 zQ{SHqmglqOn`=|9RjL4#?D=;;u;}(F>0f2H`_lJEl9_|tQo5?xMev<8ohdxv%ZuO~ z)U(>3a6}6L_2r3({b#b)6Jzn37|oy;{3v&SPjV>erJefH{i3KVC@%4k_>Dx0n9taQ zaTC7(zWf=9uQKO_Hm1w9p-@hLL7PSVNzDtGT~N88xD)7NN8KO+uNk#OnZ+IYfS^&U zTu9!hG3NbCZjcur7|fV-wwW2dssW`Z0Qr>%D(c%5QsnP@#LA*-@)}zbU{B{0)c@sV z^$tSOwe-JF)PDcjWm$|b93Fz%E8ZPa6v>_8R#e~p>5}>-jdIhKihA+xYxXfN>@VUi zP4p{8dUB}nuSEo9?h<1hK8IqsP`NyJe9Qx{%4K+nniT;mHk#e^V$LS-ZIu*Ot**Vi zT3EP^AAg_`OR-63S$a)?Nm&Y~^Xm;RcN5U>FhwZtQ`2x)rF^Scq+*`RiOvd_0_r#7 zq?w|yc6Ly0yZP)pJ@w&Ng~E!85kJp&X0Az^0^o-OZcTChfD^Y~seq{|k=4Yy27x{Z zq2r7e$;pti@ zKu=`z13}eaS!+#-d4welFauI*w$@f6o1)|sOhGlu7ersD;XRE{`0SM1SMptGB@OZZ zk5!Gkf0pQmDDwO&Yy)B+(JE#l89$R5&a%CYpsSnWbbI&KsMU(I*}F3*Z}0ezR*cRk z6NmtiX7$CYK8|9t6i<#xORO)pLvQN|+@jFmrRGO{4bU$li=Dk*6KUN#&P#FPI|AnL z;-{7c`{eN5+@H2kAu84s24&3bfwnjG$ZJDbc(k4?Qd{6Bfk(#S-;qO)ht!B~!Lq8z z!!h$DLO?&ip{#!3P=u|RFcYfO)BRa?EsyajFVzdyAz`&C1-Dxr4??2ZsfZ4%8`@B` zhtwqy;nR?bWa^d;3$o}~hWb`@~}knx}nS5+jp-4)K>wbG=21 zGZ3su=PkK>!dFj#!~#7E<9D3Fn(@kSCN$TRTHZ!I#HUgJ*JT=o^Ve#ue?w>nlQO4j zDpQgKDSNnI_fry1DaWLk$;9aA^Eg?VO9Jdg1H|uxJ`5~A>|r?fX~7zOu<2pi?TnebGc_wo^qA|8^}c)YC$9auJ37>)cSOdWNJ3aGFU0 zsSdBUo%s#3Eo(@=hFizUQSC{x59 zZYaa1LCSLm#$BlVKfc~NEUK+-7#~4FNfl6O6(l938$~6CbU=_Ck&^Ci5l|#&7&=5| zKpN>7V3ZtEhHj)AhHieFbKY~F=X-zO^{qd+xMr`t_gZ(?x_A8)M=AEQhWbI;tG^`}_141*cz^xVzI&X>An6C` z#f%ISg5g1R#!=c#X(xZ4IN#AED(tnG$h8`#crON{H%D7}v-);U0ubc2-?=Ij}@8hVs zG+}G1YWK8!q9(TzBZ8_rwe`|ERk9R2CSOC#!+k!rTDiu`UzS7j)1J=5cZq5YpZmWG z`K#WDiE{b!R3gwgJC%I(GY}FWqRZNi0QqM0=-k>rb69dE^Vw}dXb=wRiLzbc+NQm+ z9K#}_x%f+EdtD{9TP#W4tLXSOxj{8kKbv1`EsTj%P9 zUmufwG}L0EIC((wmbsQwiovB?Xe@fU^ku+AmOA>-42XCo2q{2{(40T|Fr8 z6=8oRUT*paj%@_0Q^+{z7|={J?tC_M-m2aHrcALBUJi8Zcv%-)O4Yqkq^ua>{bP@b zCl$B687)6_K?L-PvHND6J#~d>zcmnul4B0PKEPn13#^pIabDQaq=v zNWt_mI66SL?jFAb&p3H`P@doDz!l!pY5DJr<8*a*`5pA9(t)I+jUO{qgj+l_%lUpL z)u-jo>@!DB6jue|OWv;5H}!R;1AfeugpFL7HtQbo`ROsKO?nEWxhihPH9_EOcm?MZ9218?W;4MyBYSL+nx59dTKA;)6lix2fV($jHMQ(oQ z=l{Jj)c&jwXm2}w(lM@Y@q3q^1`q)z)WuN~o@9hs{ea)3k20nd$MntC%zXsDYu{6{ zrp-dZ6iq1P-ld{=YojWz=;1g8r5wQqKhNb_+6%+Iq08x@K>^6_AT z$7*vJRkP6xK1e0gx&NzFL?_*kGZ%{Yu_n1W0n%#^#XTHP=N$e_qlTiy=l{%$Q7aRV zGL!)w9_`w`gTP_ufI_>ezj5xLe{Me%KloR4OwI?Py-Oli^=-4J9aC%Eu61Sde5Ccr zw5XnG1ysqlq53X^uE1&Ms1zujt|;15NsS3rtJ={3DQ2_X3c~|uXBlUuRmp@}-N;Se z7FW~LOb0Lljm-WqQzjCKneXeF{RyBgZpRpn0Rqs_Efn}XD&u(#QQ583;`0e2E zZYzA-!D;RjCz;P;D__;GU)&7j!688V6K)nEx!U+tfG8eRL;$s&4@H3gnsmNPx&;L_ z)+~d`4GXupo)&GAlm|-J17%izn=%yTp~(f_ns44P>0-;bnIEuwG`q#MjAnM540PUo zDtY(CW{i4%k7&Fi-A1JJb?i?>`uIcf!$XT&ayp{ylUGa>W6#bUvbqDs-p2+>du8(y zkd69fK3x0O`W+-Wk|8+{KfiaRdi&jp;zjqO#FdekwG4Rv*2`qi@X2L=XN5chBpPx+i((*ardc}m4H8Rb(P5e%=MIIFh~zwz(7%zM7` z{_8jp&|$r-(?=1b@TVq^@KhOS6h$QCu~U-AXy7EuX8jgbo}^siU zDr!U`QKHMIvapx;_wTVntZdtcF~eGfw^LU4RfqR^i^Vb>wU2D>z>?{+4jTK^XOe1ib=1y|; z+{ntI6|d)D`_8iIV1B#=yps-pb@i$PSd-xQL}y^~;&=w|CG#8!pauY_NZF47@ijHp z^Z!Qnv`MC4$_~@2ql-6VCs^h?ukf4kvWbUXXDf#nqrNlrQ&x6+Xh8FP%7&P2U&~E& zvptWRaMe*b#HfzY9j;fC781SNIj#mb`kL!iMdSx|2Rq(a`o#Y882fgp{!9^DP9a=l zv~n$ALtBTGaH1eY{y8+Sl9{xw%Pux>!YjT-4mzCigI@?e_8sKisTK=_>@l3=LB^HZ z7{5y31Ch1E8Kji8U1|jncSr4lLLV+n(xfZ+^?f|tmf^embx@qpzPIS=H9qDtS{%u5H2S_su>o zp54;9H_YfA5vCF1g8}-!0Uq1b{Ds&2%%=a?Uxx;-|Dd@{nN;O(0)+>Xcy!KVAAaF^ zAn2^B63m4OPfu@d{Lp>3c%^jjPPg8tq88?k{v4N=B=iS-9Kgo`{tBBqA#J`H$8TOE z1xl(zpA^fI-J^NC*>ftdJ5um6KYQpcQiM3{2>L_EA_r)F8|zg8FTNH1F|1K+sVY z13WM;F$#-$OuByiye6o>)YcwLRjF~f}bK0P*{?Eo!{c_&*#Fg%0CrL zlmKZZ+ttCwM+zNpzJ;3(e#+K=q7C{j8Z&j^CVJA%LCP0N0r-1g8WmDWws^d`grpdv zP7H31JsKDX!km|I^Z%>{%6@X-pEG-QG39bqZL1(_a>nygruTg0oocId`t_BQjC#Z6 zX=6;WC>QyOr3Be!ca(GngJQs>BQkHjt9P~f{-ZRT)FJy7gSU)5l^t%zcZD-Fh#Yd9 zYlH3L-w|+aUz-rG9c}_DB@$UN;rfTVIENzz(Gz$eqlLE+ksG?VdzyAM=SMO3T7Ub` zH0F(~l(o;9xiIxr^z(1iM{G&n7ERdF@PBoGN%OU5^S9WNb2YJgP>ThDm{S~73dQf=)W;F<%n#SPY}N9Qk;!;2fw+3XAEaCw*%?_;_jV?S4dX$}`Qv z1nRfT1M`XjuXVa^8=LvK-X^xLu(~ZuAZjVqlk4!3H&A5o=;Fae1n~efZxcb6S;n~UW?j=qandUevnhIQt3Z(5_XfJ@3D8=C7RX{fXA#2K4dh>zgyY4~ z2R+Ic>07cXQC2hM&CpZzi?dC?qljXY-HWZMh=hW)gv)7D!^_UpE zB{Mi=U^ZPTTRqK1es^}y`9%V$xFB)7x<w> z@u@m=>4_N76KEb{>lUg_k@Q3~WUx~{pW6T8gG%?VHeAS_r;hwh=`*Fkfu1G| z&Boy``lm+y)<#rC`{=J%Fl@#P?v?4kftKY+fH+Fdq) z0T-?2Glurw&%b3C-|Azm!N^5fzBkK|6cV~qV?apeQVZcGH2jf)2$X;99F^u)lqPWJ z`~Ig89CuL22RFWSwFOFC|8bs{rau=|mUC?h=S^oevRkq?>{xBGwv@j(2IqqvFlgU7+9#!vEJNOi6>Cp_+KHQ3Ilx$~}M{lpW9@k?QU ze$c1zNHDwNbK*$YnP!;q>nH9-cZx1uPhy&N{ln&nrz-5Fs^x?{!9BD>?Q>*w%StRw z4UO{|m*qhGZ<8CZiircq>M&m{C?x0qjLoHqv<_Q*iJoF-RR+pjKYECuogI7Y_x#U8 zf4`~GyVx1`_m*)YnBJ`Lx@@-k@sL5fUU~NI@TOoeAq_Hzp9(X z{K8IOMlsuM;EhDV2ke5)rPgO3@b9yAW}kAa`Qg3nI6cjC1@{#p74mBB{D{&B|si4e48`y7HhlUZ90n9#)9>C(azT5DtZwtaA3H#h65H zeO}5pI7Sq)=vPllKPbju>-5ChC69u$7iadb*+wF|Z6v#p`Tg}n<(5je8w9d6inf0U z_{=EJnc9YKfk4g*urbqI!|NcBheZy*Oh%GsK@37|2m*(dJr!R)gajqSOi*_kcpbub z!S#=#`D`m|ZIo~ug}+2v$(tuv$uSfHSCFTiCZU zyW3|!v|q1mcg-$!s^gwq&Y-ZBbg)qpKFT*mC3UYEZljLV^j^y6*41aJ7HWChX{&Jz z7$hMGaw@o4f+6df!t(OD`Z_EM5Z^bm5*b?F&JlS}+eh?t>a{dSy5Ob4c-Lk|sq*%k zNN%&UGH#`j`!cW6_hw%?(bBu`Be|#ianITj+$cn(`qEg{EW1fcP?R$_qck4n{oX>I zOX~Dv{jAQ1hx*la@W_aES8=EDpdm`1?(sS2yUmObuzT%_KfZ6L#6XX{bEKdn(mo$` zbmuiHa1W@M*1|bQIl}X`gd7!Alu(C$MGQcEn(x9vJ zGl=1i*pIS>$Am~KJc82gv{qulCU&P)VzIIPs6)OoL9bU5Yg3k;c|P^Eu#SH3)vwE* zp{p1M?ZqLmyx#B#dh`Yo^;2&45OAlHP5G*{R2G+ zwD1+DPe)7d&F#X(z>weItZK2?>{=bjH+Hc-VRe@X1e(;{?%wu*l}0u^;?-IrHhcD)7-g5`e55B{ z-OwY!o5|x9^TXra=E1^7B1|I-&6`KL)=@!U*SctR3bm|fPOMcJPW!b#d<&0|l`)$I zvA@1yj>EpMY+n-b#P6U86(Ys&O(Pq%=4TmS^G-aMg_=#jPyJNSb!{C*Wn);;aQyEEM>5O=h4RzehE=DV9y%$zsQXC~BQfL<(| z+tkFNh*b5M&m<%$4$qXCR>rQe^E$TF_iHIvCQFf}=HJRbH%wLRJvLbXh@(wb--Fbb zjY9uq8!n%jD@DWlbBTIl`rpn@h*+W?MX4zQ$SVnz523s0K5bo1g&JrLyR@!EC6q^X zLh%g;QZ*T)!B;>52fR1j+(NF&ZX<_w@;D$)Z#{<_(SI zi?BMK9;UxF2V(yfNHsq}rM7lN#iX-LrlbantDQ-eTKS$*yqPc6ttFubo4tl0^uWI? z`O@^maS_~Ja8*c&{iRc)3xwmw$C)T~S8caM7bJ-Qq$cw=*XY-^oxjt|Q3^@rs4`M~a!>8(wL7b;j!&yC<}w63lG{yE(qi=BZDLk_@T+Rt_ov53qGmJSr1dlEGO#9n^(?u;S-2NzE)LM9gUx4PGLY6l(na=p~B0CQ#W_Y z0nr&bmu|mmf5t3}UMcN99{qV@#|+)@d&g0^Z=K`dTuw>|0&N=Jo{m*TQ+p3Hmv1Ab zv!>#nFT483Lq%}T=3k&?xY9+t?Rl{MoqgLcQkF>XvYWaD3~#mZv!ty>S49;1Jm-=b zn;B(^3*B2%Wmi5)nx;&1w61>l8GjY&Eu_@i`vWWiiPY7ZFOl4MBR+$lIhj?9F9frz zI5k9`Iub{EQ^!D;!|_u;wgLPh9#cDD;P&NzbIUZm?APOc&5VAl zWR-Tr%9&o~SDfYhrLrp^ko`f&`0wLQ!~}xaPx)R=5jw-(uUe~N@QLcl;XFWLBj0rh zMMzKulXeYrV7{vv%(}~a%5F#VPrc4&QY#q1-n9qzUwkb6Po4(CBQTv?6_L#Tzs?Xb z`rDM0tQ6x@(to`EY`MoN*r5bD#2n6wXIUBLh_6zm-A`~pceA|4OUn2?+;pGv{i->S znPop^w)oY`&d5t#$j-8gCLAISB~n&9-toiX&w{FV1Cd#LIyL48%7j+hddfXm zogXhiAbwpK)phKR;Fs;*kufV;vstVIS1qC1dgu&s#Uq?taznK#a%!~lLmQ&vsFsG- z@;4dHx2Igm9>g!UDV#u{0NOm9F}wtCSJdM3TxMR0eQZ!97{_T#Dy_SGri$lHp8qMw z2T*?^%CB8<=PbpMRsInHAWv-iH@8aSZr+&vG%2m*Z% zI|@@5OZk&_8(A=SObQrAaf#P5sK9*Cx~@0_&c#8`M>?ZS^)&79{iJ%ZI;%eykzDU!so>?U(NQv2BB0i(942AK=XxF^Xp#XujUZ+B5 z+oRN9h{15+6HX;hc7qsS*WB?>kcGGBEXKl!v|J7*qaBO`fiN!cl&@`LMDTsophKE#zKc~= zkG#CzS2RFU_S$wkjOt!I4HI#4IaAClI`_$4BR`TL74h4<$mhf$&|91<^Q7^ti^Mgh z_F&gSDN7^w=kQsjY|jprcEwHozJ+X`<+b1CoGhsf6>oq@`kIuiSyqh)Ks$FC+bmg^ z>z@;(;D%DR57QJtoP0n+NC zZ)mvK-1OFh?OKRxX9xkyo)8ZUij&v0rv_&ydck2Xxw@>^a5-)<3@o;8?jetqc>F{( zIO@*VQzGOn_5Iv6_K{cYi=lx+D-p`tVKp;Uk7K_5qHbUXp42Grv<-_D;lv`WBuil2 z!Y=)lSVi{G0-bC*%jU`8v{~gm(IPTUc|BU*S9&?jwNM6k+mw z^!~VWmNe#^XaIi`xuOUeLM8DBu2!#lKBXi zRa-$E!&f(1-X{;+r`bPXmdN&-3HJgh7E+OOh&5$&c zO3%Pog#m&*9(7gz;o3*qsJ9(qv$@RN$#~rXLd9IQcsg^}@1$+R0h|Y{xKyto-F04> zJ(R~tBD&jEy_A#N5F*iGF1L)UTO_jN_WfPIxuSKSrwlLozVt}NXkl8?hTRB|J|l~Y zvWtv=IS>@*X7#R%X+zuoHwsz;O6nndh+-P zr<9lM(~79@vcDFCaC2Fs=&0|v4*`tvpx{3r2y&1RqX)Ilz+1>+h9ZeRHPcm)=ia_D z+sG`RLREP^x{4Z3r4CWPT?U=wI&$U4ScF=sGNJ+}(D0g5r+qZsfBLH%7Zgwv7;nK{ zt=-Y{^i2}>$@2=3#k4+(exJvWEw=wbxw@Az0N9Q8;j%d;(upIZOZA+;T7^@3_616T zVieshHRG-`pW2!S7gaXUz9^)2+q}-AzCwOdiH#3qMBK7w3{?*`iwC4%U(c9?O%00@ zM9&h7NRnI>7EddadQ;XCGdGEDb7n0VMR#W9m-Sb8CXyp*qrPzM_G501#mg$uil8@I;`*=@?IwMllQk#j6XMuZIC}t+rE$>ANaHKaU)c6 zz7~`4k%2%AuUn8iPN)>9PIL@i(DA@F@{u%YxCsh{x+V{soN_Bs1#)U%&}Dq7@6-i2 zxw~|_C2~)hj30Rpc+dbG%C5Ey@2doPUKQDSZzPPRkH#12}F?7#-S6d|{d+?z?o- zN<47;Z3IQK)`RovajiC`G?yglqxM*C!>vwQKRq0~NV-WMjJI^%coZ(fP%qng&l1Ia z!4!RJ6n&Zo+{&*XUcSUmNO_*`J+rQGR$ws|8a7n_M9j!)GNInqa$=0m6_}M<`1KjR z5=mFGpDs?jj`oGTSF=A0#}RJB_Dn~*|QqB5Z?W!sHjNR>2$uk(ct?rS$h6v7jvZ8oR`J|SJlmv;Fdqv_p z&G_p^b|{qs@Fdmw#rZ%(5kz{taOwy;Jhn%)LR?-i!>rH*N#oAD$G}p@2fQMp?DrhP z3Dum$*9v#aYH<(OS~U;%X_kd|%{2g|5@5Bu$vsk+c$R@IjdHnoMVL}2im)3#4`gqA zjSGT=N-FIEY=*YRN;>r!>j^;AELphcZ3-BaNQHXDw5@iC8xX;$f4b?$&ky6JI?!Un%8|s`jD7HV{V+nw@ zy3pQo7e3)Talo*Cp4oj(7b@v7wLaT1p-whG=*L52mzJ`9NvqjF<1iFJJF@kg^)r2 zqP0Q;$x(;q@{xi+O(#>1#V7TYG)2B94(NXL6W=jhO{SUwpm7qOP@s2)6iHCuz%WFJ zkU1bA%LzqbyIDNLC70s;7{8H{`fN_Q$bO9WMMhcUn(q&rzvU5)Z4QQ)5wO$tD%5b` z0Qi$-G+@LI(U>C5&OZzQjAg4olWky$Y8XcP0OIHjP+Pk@EqJ7P-+Kln@qv5n(E?!# z$?ae#%1EhefEfMb#rN2-(ggWEj$N>l&$=xuYQM@|#dJRfdiu+rd4y4fy8so>OFEkSWgKQPj5#Hk?7(N|AKoQ7Jm~5-=+S z{t@;`m3#`iS`_hXJ2WRaVvsXv*@%%o03L91Vl3oGHo4O|^pG#_Gkl6kVt_(msg+Fwjx1mw8 zd-Kiz=0TY!fEy0#G|JrgKBwfp9?h&Yx=1<95o=T`c?ye>t267U-yO}A{LlujoA5QB zQ#v`Vw~b+sSZpPM2~8TdGw-V{79Ku?XeE4$CjfnasGw#9>-RidAGyy$%V{!mV9L9c zbeC9UQc9FYk-NxfMLf+Vx3&%Gvn=HP8CdBT%dNk~sC@3;tSB3>)VEe=0-|N--e&Ie zqrD;Ag!0F9e4Vd{61XS<4IM78vMG|hW*OIOqtV}SXkx~2~~W93gBxuK)hGxsgh zLu}^2V{1l$6gfGabmc?8+3Ia$g*JVj~1wnlmBB*;7S z;Z$JKQ?aU?QsF`Z?2pJfwc`#z;9{=+|6FiM>GK4_lr-T+_o9oAMUfQSRS6kKlUngY zE&%plOZ4ON`>ly=S(nM})d7X4woclv?WHPtR>HS#pivAf>s$K~gRK9h@umXef1sgP zFSK#zk-%P>9EsK5`DdJ3*qaaPD>2@_0vKx;JXo!mM+5H2I`EMeWoQ|=aKfph$51xP z5xbxKjJ_Jz&3!Ohf^hSy(}qnBR}8hs?^EyV(^^7X&mkzy?5|I`a=&v(&E2SF-(7cM z*zxuR{7 z&C39&rWKCFD$VTamQ)GJpi5F2>$KC~N3EMj@j*w^CapVQZtiz%Op)~)4_<21k%eC7 zXFA{OY119FkixW9!na9KPU^ZO%l%gZ4!D-{mCCbOb-y}U@Q2?CWkf!#2>D4C62rZ|cVfe88Fd`ghHyKsd!~z< zR6hAt!oJS68xj*kvNFX69cA97VSqY$F)$8h3TBvC%tR7phf*+sN;PrM;9|d(;EEDf zY~yL0cI_SUNwo`=fYFhW>~4m-W=$7CrKo&*r^gYc-DgS-5V$8BO-p7EBqLTQb5+qw zV6Tu0yk`^<)1wIZ)B%Yb6Tp%gcCMEJ3FWCDRLeL(jJpC^$=}3%Gt&>Y`IcUvjZnFs+ zBUs7NnmMhdkwv#yTK}A|VtrY$cfHaPWHnV)Ufb#HrSWL|oxEl-c|9wAxz_lFYvRcy zD7MN;uKwP}L9-$N8D`5NPEQ=~LK(WNZ6U7`e5zczWF1T`Uzw@Xb8t}`A{B%EN$$nT#Lu2K!u zTH%<_+=_P3RbLv;cutIQ5q4Bi)jIM+_)LLan|`XAJYe^PJXe@lX;V~2Ym3^VUeeD@ zpUxFkaG9aZ$Ce~A`t_`0O_1^p+L7GCwW@=TD6fX@c)s~ly`d+N!7M{h*cxkt2CxYg z(oMGm)fvN!q9jAHOF`KY%~&n~NiT3&`!32sjN|oBk07v2-aj_u-a9@sHbqYO*GpMWs33 z&Wt^xYi=H#C|7e|CwIq6y8~erM2A&WtuTt@6ZY5xjPYR6o&!K%?I*KxmnUk=&MPUO zUSl&uqOA5Ier9ut2&b&Uo9)0N-+ptiJz>MAP2Hh2lB&sB)Tu+wQ}*YJour(4O9KK5 zl>2z3K+|b9z-%~D{|Hw_t3$0A1aJtPXwBgst!2^F-4_}CcPY38aLF6z_hDMUHQwx_ z42KR{Bt6EB=xKAN$v?*Mk-JbHbbvF1f1vZVx|uz%j*Ypgf-tXC#-G6zX;RRv0}Iwb z`oSc_uiOMM#8`pQm*lp*wq9BFh!`wsV45rXPRI^gi=)e#9xy}*{L>bzAes7$T+wuB zz1cT8Y;Em$qy(S!obqz9fK`OyC1Z;<4Ms)TdY+Gb7!S45DZfZwFq!m)d-PoC?n@3S zJU^mwYpmv83F7uYf3jl~1z4N`iH`(gsKICF#SsRUQOl(<2rt!!2-bD7gON6{cTgaZ zHI(I`&ndRMAIrW@NlXLSJbrER^+Ki!)Vh{UjFe_5$I9U%4LV97Bghr($gbYYcb9s_ zHggoz`OeQLW?6A@9&9PPk%A3LM6;STswm0lI$Imia$2m+-OI^|7L4TUa;Kj=gq$zP zXFjzmS7kFpX;)&!GRlUnMIvK>P#_BnPq8Z7qa19Js2Yd(V9YqDR{^lm1lP1-K^Lrg zh5HyKpOweqPKT`Ta_!lndmSNrZ>7*NcB6j7oAuh?8YIP-W;4WL6>!S)3FNBKg$Xi)j3q&IB9PSvj!tW&cOe^X+EK0!zaOh;`LBJ-=i6O|D z>}ta!N58hja}OK|7tSgRKWjn6P=~1j4lszJ@|-!=X!xWp>ioFQ@6_?a-fgLVJEZ<- z9&)DFDzrW;+j>a{B`|toK40VU>ON~C8(o}?;9DB7H~LHj@~HR;q)7Cw8Pd=H#r#t) zA8$-MJf!Q*J>4AHdt@w7x|J~ZO|sfdV`|0Ba}T`?A*)uB5(qYyRjD}*Vx%4BGS_Ph zQj=0}yb15JU}Zto&gR?_PSwRK3QLc`400aiJ2R^1x?2Ot<$UijujDEXtY7IUi--kk zMY4(j{HDJ5rYJUgVr;=rpIJq#8_D4YfMJjni}bV`SAtXYT@|=Qu0Y-0xWcg~5Umb) z;#j<}>D1m*S(En$MhWe;`rde!yl1R*XmFXzO0?A*aL+)UYS`QOxsO)ed9HohdhZwL zui-v5{068L$opz(M(I@ntM$z7NqcVnlZ|qN1 zP<9<(EFwfgUaJCja zJEA;;Lqv`szU~DKEW#(Mh2j1Ei2w-nT$~v&LY2aF0FL9fGiJf6VG0>trF$7BC_UNP z_V|_4q~A{{u~?L5GQXRLhD3v&R>PYvtv0L#>4Nh{qbGmG-0E99bfgzfmhb zKmV?(v{D`f#9{*E^9^ziy3dOr=k!p7lt7AP-va0!ma@{6UlGQ?ulTv~N26Y7So}5s zw|5G^JcxS|Oi?juj(}ZKV8Fb}YX?W-_rIBA>`C;HpYikh(drr*K3(_z zur4RR$^s<1dHjqXAfB{m&CIgzXcU7CSs?c#yqf{5|A9Me!BaZHSs3z_DAR<>|jf537v7mSn;2E0KPqxJ`REoCYQJzz_{P>MLwxJs+ z^M+or3?X&#Aw24+;-{E)d!pXZ4@i){{&EVoCX#Q!Q@GHFGtc9$>S&fhHH6D$rkj?2 zXtBz1D|u~FLgNB|p>qe=Yl0B)F#zZBR=`zMgm~bWveKY?adEO5r88^J+w3dFm!x$g z=BnIFO&EdYUz+VJ;|&%nXq>bqh5|5}`5Ax+8C`KB;C}`Ebl^~5p$wh5WpDQ+JYVQ$ z_$W{-6x6E`C{%3s#tce#qh;=mWtsJOJNQviz9KF`e|Zl7C5$y<*dx0qp`|Yp(IU~p zeV`-ZE5Vg2^UO!LyH(PMEwb>}8Z7*wGR+L5fF&Q(wYZf?K0!aTcolcE`0x@`o1$x0 zi)(l+UeF0J_wgHv;i}b#oQ$m>S1cj>1B7PFme z-OMX9aridMtFlF+zJGV1Mht_u4)@8yc3^)%QkjWmBXXS?m0Z~yFBMp_D zko?Oba74=2?M+S%hW@JVpRX)79;C;&4?TDWxNRWw(h17AhP~sXgHbA1G}WDHvV7P2 z%9E&uGh1?{zw|OFD>O5WzXCSiezqaW%$`}s%{`De=!*0}CdWLa!rtJnb(FHydYSi> z?%)fMy1(WBSc`*PN5Yn7EHD}I;O*pn{#73zj<3F^or{ZT@ z#%33RY;st>R;~*O;nj|JB$?NMJ*-TL<0={gn>9G0`66uF@ieVkHfsi@J)Oapz%SVLOA~_pQO-hQ88uj3-#X=K zE)X=JQj9RJL$D82>kj?Eualru682M{<~nny3Lv}~SDTDgesR>>MV=l2Xah}uJ&*s! zx4BU}KL*>--am|T|21{q#Bpg|PJbn2d@7H>URHeDCgE_wG&Jg0o3w)=1pCFFd8Y-? zuAgYXxE~My@W_s0EJv(zo#3Jwe{7>1HMLApjt$f+(H-A(ZWvI@UcA34Yu6tcs^-wf zA$l>r?s)Sx$t50jV@)WT{PS-Tzr?mxI!ZFhXK3YK6@6Jm4RvdYM|H#60XCRX%lf7t zX9D;MmxVNjO4C|^*6EG?%Te}0zsRk_{dm`hP(!#F!30trr(v(zC=6oV%#h*q#N0Xe zAGIO`3>`IMuHIP&N5h46ha4$smEwA;oKX1@L2*f4c(XzE+DPt!qC`vJ-N##Y}f0Qnge)J^{UV z-sj4`Qk6sH`t^kX*w(|>^hE!g`}sfffg*~P=w3_qe&k-y-zxF1E1lZ^7gjryu?R>bZ77&bE389}Fx7KI2nA)*4^Sd}ir8kzQ6` zU+q_5lC=MWpX#5RIt~7pE!PL%le)ast?W;jb*X-%jy)rf4f>C#q;3!3kNiFOU%UBO zoWgW!e>s$-Ti^&%n(FuF`Rae1pB$*{@BA|hq*77Y%?T|xJM%wV#rmajCRiyYI6P*Ya%B37G;;0yQP78R8?%U(J9_i<{m@vSWtvg34DHTQfp?@X_W3)Zac zZSWN&=Pv%cG_hC5P9~KblIth#sslT!BiGAc{BJ$0dA9rSGh5e&=oL1~E9>v1RcD=3 z@}3{(A~g5VnuGrhW6d-4zc*|S>MzC?jh37@obPGLZpOM#v%2{?qmKp_L%?6`+t+km zwSCJkJ=nj8NAe`8^3eJ{&fIxy=XwWS$#Rb0Ip-!u=_8a@a`h+jH_~JJb1$ zwpBBuYlB+@`U<4<_8ybkd6#1TuMyA`=b1^^GhQr?KE(TScU4; zMmCi#W0Zb>{&!~p*wWA(uw zW?xz0G5>C8-_z5^=A^OUnZ~+Ar1>b2NBb|{W^Z@dL@TL`QKVc=y$q)OHKt!AZlsES zwwwxtf29I~M1K#ojv#7>?a8{N!)=$De|`)&u*!0oWHnbIR{Nj^1R(z&4*BMKi>mKh zT>g)DwOVDl0#gkDNG^)DCPRJgzLymEof|`={w*@N**>C-?P>Rog0qJ$wYTUckth*uQbMzyVeXA)+-m&Get#uy6aw%L*W1`*!a02=M(AA9sZ$n-hW}Jl3^0ZNZ;?K%g#b24L2Ed1% z&0PjoC!pW{#Z7>2{=qMttE7Awu~VSckn^{$8j!{M`$n1}^U9E(g^=^Jy2>*{jdh@& z=I?>|e6T${ydSC`bRT;y*RbdFf>vz+_RjwUo~_11Jk5iud}P*G(UQ7sfByJFH)*)p zpzE~C?#gCV+C`In{q~5}(7#KMg!Y^TsZU(A#vAIbOR$aQ1CZIxr>*xsgUVF?vC$vG zf2JQ({ja^YZg>jf&N}qHZB8=x(hX1cD7%kA7K4`pN&0o6_k2jCD;C1?&kp#{9xd*{ zcTNWiEpj^(LF~Hk`gf+6rt+aDivWB6i>R$`BPRN>a|i32tcyo^hCNz|f-L=PBz#O0 z{X2P+xNTx9pmBg&{pkEZ&kcBf>NVR|w?8=aOK_LPg|+MDpYP=Wapk|p)4k5U7)z?I5sH-m`W4e}VmcagYg&sR za_MGXj)0ujwlWrzkE5^t>o;s;TiH|uMM~yjSIbNuWo2cNDe^Ls^VeXfVCjn_zta8c zU-5cF@D$6O?mDqIQ1}m-28;y6Shj|M78wn2zxmM{y@iE~U5W>M_Uk|XYf>VIc#mJN zb9HS4|7o_%B%07|njv$qJm_FTrhZ(yp>F@YC!(&R+SBB?0_B=$6%V9&{~DOGxNsF~ zPXXtXk`SAk(Y;P;7vM%y8RPN4XUmO51r}CV*+k2PKp2Baf zRo}nj&xgVBpmfRVMy>xKI}6UfPiD9cU!T}-{6fcce!8trHH}twnMNyMWyRcP|7QUp z2Mwpml<9@To6`*0hU$n_qv{M3LxD!h|G6Ge%^|LymLgi@CN0Q#rQ7kH=s%MBEpKww zDx0{y(Rz)!1VIYb+;;0uUZE%c$%&2K($tjq*wnTE0#MG@xGKxV`s5GEpgAee^3_D1 z6sx=Z`qFilODpM6W6_k_Z!%Tei_C)mbr03@KMbE%$>lzjy&J0wBlmE_P-WBH6OE|(dW07s(%($H@tNme;#$QGX`*H;eAXF%-_>_%S3kaxRm^E z*#gt)IF>Q%KaAk;-J*ib`@m<#*n2W}+%UbS$3So0Yk^Mw`)h3IU16!yqxtlDp(BFt zZqol?Q1Pm0-!(?DzNUtAkHd84w}i-<(4aV@6w1&{5WP=c;4J1DRb8J zoIXi3%l`i>>&nB~O1pS0MW@x7GOe+uEoDY4(NFC~XS9q#bs6<(g>+g8YKU55iv&Zb z?O@6nyVR&?5n5VH&?HQ&i&CwnmP*emX#EC~gBZR?7Q(Eyy=Sk2N3$_x^MkdvQtMWgm`VNho^euB)aLda|b86PLQ zNq-~R+ibD&^l?TJ_1-*#Tpi;Oiv@PDNs)PRTA5lH3g|WVP1z$eWtLS+(J(;tpL?Hz zd=OgFn5dY2w1Nt?E1*1(F^0_r?|`Lj93& z$W%UFv{2Q%qb@5H@BZUlJ-8ag^=5IGXAehXtlLc4CbBya?^q`|;3K&xxCmEIoWF_{ z^`R4_eJB6joV3dgle01HY%9#e%;nC@2x{}4d+f{s=pm@7)%YUY#9-u=w2KCa%E0p{ z*qX$3uFDb3UmTk>UjQX#6@at?2uQwzfw{dO|d=$qB_-xE{cf}NoQux%jK zDDuP+pi49JmmPX~eX@%ar6R%I!Ul0jXS#*s8SJ%|hzdYQWI`jY@x5FP9yEpRXu{t= z@~J~T&z~YocS45J*l7^et_ilMvyVjdS?l|;U3_}3lO%sr1Z()}ypyn8?#c zjC%(7OAE_*wfXIDb3rRZlH7YDji(&8hM5;k)98O}E>dv)oz)!`MLmzZGH-}TObVI6 z;RkS2!;Q5cHLV+qLWX4SP}3pYg@TW}ob`_XW6ON5uHE4MQI#_QYu@}#XE$5Pk$liZ zuP5IP;N+8Vq6QG7&H33ogL{eAB67f^1?sHqTu{e!s#5fA?o>_aGCL(L+&`ejOMUJ+ zXODqG$v1r#_iW72f~8DAEcCGWfp4l&+l_}aW=Clh%tVYVze*Qt#c&K1!z zqKTrn-T_Ph0y5OCOUFhuQ7bu4jvNXH9vt+QzaYrR=OITi^B0J!MF$*a8cMmycl9`r z{yFxEH@yU%NSfD({P;uDNHhos`QpZ;#LySK-rdVZ8IOISVc`L8mFg%(MZNCtqgWtW zHifs}uvU5LRQ?Msab6(sejo5YNdEqNqY^84mOAG?JRpuOi>w=gJ-AyGcA$3I0d2|u zJcO3i6T00fWt;rm>27d;RGnu@xtCLfqzA)mFf{8OTe!-Zen1aBMo6_y?g5bv$(oTu z|6lP2dh12}%My{$T}LN<$YEr_dyYbQ_Rr`*+#D0vlm*9X5s5l+jDToHTqBvY@^{7@ zNzQF-t1P5yEj1l#zvA3Qd04LQ<5%=f2f!Vq=@(4o33nIr!+=4IIMAsX-}#~FKM7|` zyaQxFMX(L#bagczk%WF*Cl*hydWl#Ei0!kzQ~adK8T@Q*4C1Ke7fi@iWIq`EnMbD& zxi(VwzmBxd5H%%q&2NXr!>|IabV(EfI46>lq8?K%yQerOr7*nY%5yVo;%0mTVpIOJ zY#IwpQ)Wvo%B%gkVvX`Xg5e&TLgu#`(+{Et)6ssr#^Ro!XJCh{Yop|LXs#JLqlXh- zTf?Ro5%q)PSm{oF*wv4#-a~CG`Q#V`Ey{(U)TTPy10F^uY&fuCa{PmDub<%M|LGG- z1E5nGi3LrTRgY-;^1OAsc}<=qG<2e`Zrwytm#GX8WUP=3jzKkmMT?oq`}gNQZ&INj z@12|%cPtQVtAVXUzauDlC@6v%bN3}>D_XxHO`(c#6!cwhw3F3O;*@P@hmYQpT0bFV z-#rBq6u6G2^MhhZZdU)iJ+~MhD=(OUZh?02K3H(OWhU6&8_%MI`{Ui5I~ORft&}Q+ z79mv)L(pc@>2#s}P*e;|RN3F_Q`63>{+D$iQG4zwpbUTwRfLa^r+H#)#J>h}YSeq1 zO`9W+*IGr-2aqwGAv;nqG+GD|#vu&?8ZZfTSKi*j`Pr}Da_waqv~2+_0e zSypT~sxf`|UAFJ&Yc}E~(AO!o5qZjYdF|~tz1Fo&X-@t4@%Q4c=*zCUwar$omNhXr z$hbW~)$WVSQZ=K^c6@ypIS?FN>-1STlfM)2bWdDAt(5Jf#mIH%uN zSTfsQiG^Xe#z`axBi)DHPVxq^PrQbgXksP9S5M9@=OnA*2R+g1gllRTh+cyXm4Ehw;^uBc z#}awZ7|&}ZG+!cL_UUQ>CJlIQ%^0g#j!J$?oO6ed>2H2f0D8l_u0vF55k+6k9ux($ zu2#a4^Sz-?sU$qza2?J^-Gm<@q}xH+20|*iWORO=O)WW$hXl+vlc)r0k_Bn17V}?FnIho+WPax~1}w4H5|i z6K?ynNW)~asi5;1dmq;-b5Ka&USZI6wWb!hjSTwRFjB};{TDsJi^OnA0O0?~- z5-zYQ`i95nY^f`0499x=F~Q<%DkEt`^ZlzXeh4EEdO=H_;CllQcd_N6>4K)t)iF2V z@0`Vg_I^tfL?mUjztF!G88Kc_zG1HfO>Pjqd)jkGSI9mP)dR`r0b*wAdu)$?trZl( z%DGXP-S=}#%+$o{)WLlV8+g+ltf^E`RvNS>Ml-gnKJunqV0=J#lvTc16NZRaOP4&^ zRA~FmHG>pw$O;ghLXg=;t??n;-coO(Q(ZgjZcuPLmNi4kIiqDIUOwCumd9%$ZOd!P zz~2-eY9hbEkUas3gkd45>5Q0tFBDZ&^g+I+@ z!Gd~4SC_y46#i$ko9ann!YR|y`0OI(?+W1d`j%QfJ}jpLXR2MASa`b|oSxv5FR6BB zd@?`m%9zpDRqG~GS-K~BAI-%Lt8b{sz|E+8dY&3JM%je@E&d`e)69@P2gQhfhsFqM zHf?_kel`)^g;}VBXZl--J23Cr22;SD#0qp%T2u#ww!AD+A`%OBl1|Y!Y8GzCPaLcL H4w>>l-mT+n literal 0 HcmV?d00001 diff --git a/electron-builder.json5 b/electron-builder.json5 new file mode 100755 index 0000000..bc8d532 --- /dev/null +++ b/electron-builder.json5 @@ -0,0 +1,57 @@ +/** + * @see https://www.electron.build/configuration/configuration + */ +{ + "$schema": "https://github.com/dfvips/iqiyi-parser", + "appId": "com.dreamfly.um", + "productName": "音乐解锁 React", + "asar": true, + "directories": { + "output": "release/${version}" + }, + "asarUnpack":[ + "resources/**" + ], + "mac": { + "icon": "build/icon.icns", + "artifactName": "${name}-${version}-osx64.${ext}", + "target": [ + "dmg" + ], + "files": [ + "!**/.vscode/*", + "!{.eslintignore,.eslintrc.js,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}" + ] + }, + "compression": "maximum", + "win": { + "icon": "build/icon.ico", + "target": [ + { + "target": "nsis", + "arch": [ + "x64" + ] + }, + { + "target": "7z" + } + ], + "artifactName": "${name}-${version}-winx64.${ext}", + "files": [ + "!**/.vscode/*", + "!{.eslintignore,.eslintrc.js,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}" + ] + }, + "nsis": { + "oneClick": false, + "perMachine": false, + "allowToChangeInstallationDirectory": true, + "deleteAppDataOnUninstall": true, + "installerIcon": "build/icon.ico", + "uninstallerIcon": "build/icon.ico", + "uninstallDisplayName": "${name}-${version}", + "artifactName": "${name}-${version}-winx64-setup.${ext}", + "shortcutName": "${productName}" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ffc8067 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4383 @@ +{ + "name": "um-react-electron", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "um-react-electron", + "version": "1.0.0", + "hasInstallScript": true, + "dependencies": { + "@electron-toolkit/preload": "^2.0.0", + "@electron-toolkit/utils": "^2.0.0" + }, + "devDependencies": { + "@electron-toolkit/eslint-config": "^1.0.1", + "@electron-toolkit/eslint-config-prettier": "^1.0.1", + "electron": "^25.6.0", + "electron-builder": "^24.6.3", + "eslint": "^8.47.0", + "prettier": "^3.0.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron-toolkit/eslint-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config/-/eslint-config-1.0.1.tgz", + "integrity": "sha512-fqXviqkUSk6uFkMVhrMBTzFFxwsWQCF4nB+O79zHKSDj7YGFP5bZA1e2T5iK8KeaG1v8og3tKnDU3OSzgypCDQ==", + "dev": true, + "peerDependencies": { + "eslint": ">= 8.0.0" + } + }, + "node_modules/@electron-toolkit/eslint-config-prettier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-1.0.1.tgz", + "integrity": "sha512-JERUehgy64/J369nr4AVmCskYAX8DQg8eWkQAHk56Qfh6JGnoiZVsv4nDJLBOdG7M7HKrHiqDgaAEXPOCMiijg==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@electron-toolkit/preload": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@electron-toolkit/preload/-/preload-2.0.0.tgz", + "integrity": "sha512-zpZDzbqJTZQC5d4LRs2EKruKWnqah+T75s+niBYFemYLtiW5TTZcWi3Q8UxHqnwTudDMuWJb233aaS2yjx3Xiw==", + "peerDependencies": { + "electron": ">=13.0.0" + } + }, + "node_modules/@electron-toolkit/utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@electron-toolkit/utils/-/utils-2.0.0.tgz", + "integrity": "sha512-taE/vvFOpoK5jyjUJTmMCjyGC2ODEObku4uvEt3PxoGPy25abGZcp9nbbbqBPqnfBjh88XSaPtnLRZNuOpHnnA==", + "peerDependencies": { + "electron": ">=13.0.0" + } + }, + "node_modules/@electron/asar": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.4.tgz", + "integrity": "sha512-lykfY3TJRRWFeTxccEKdf1I6BLl2Plw81H0bbp4Fc5iEc67foDCa5pjJQULVgo0wF+Dli75f3xVcdb/67FFZ/g==", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/get": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", + "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-1.2.4.tgz", + "integrity": "sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "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/@electron/notarize/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/notarize/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "dev": true, + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/osx-sign/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/osx-sign/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.3.4.tgz", + "integrity": "sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg==", + "dev": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "@malept/cross-spawn-promise": "^1.1.0", + "debug": "^4.3.1", + "dir-compare": "^3.0.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "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/@electron/universal/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "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/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.17.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.12.tgz", + "integrity": "sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==" + }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/verror": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "24.6.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.6.3.tgz", + "integrity": "sha512-++0Zp7vcCHfXMBGVj7luFxpqvMPk5mcWeTuw7OK0xNAaNtYQTTN0d9YfWRsb1MvviTOOhyHeULWz1CaixrdrDg==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "^1.2.3", + "@electron/osx-sign": "^1.0.4", + "@electron/universal": "1.3.4", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "electron-publish": "24.5.0", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^5.1.1", + "read-config-file": "6.3.2", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/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" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "optional": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builder-util": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.5.0.tgz", + "integrity": "sha512-STnBmZN/M5vGcv01u/K8l+H+kplTaq4PAIn3yeuufUKSpcdro0DhJWxPI81k5XcNfC//bjM3+n9nr8F9uV4uAQ==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz", + "integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/config-file-ts": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.4.tgz", + "integrity": "sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "typescript": "^4.0.2" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "optional": true + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "optional": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "24.6.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.6.3.tgz", + "integrity": "sha512-O7KNT7OKqtV54fMYUpdlyTOCP5DoPuRMLqMTgxxV2PO8Hj/so6zOl5o8GTs8pdDkeAhJzCFOUNB3BDhgXbUbJg==", + "dev": true, + "dependencies": { + "app-builder-lib": "24.6.3", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-25.7.0.tgz", + "integrity": "sha512-P82EzYZ8k9J21x5syhXV7EkezDmEXwycReXnagfzS0kwepnrlWzq1aDIUWdNvzTdHobky4m/nYcL98qd73mEVA==", + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^18.11.18", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "24.6.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.6.3.tgz", + "integrity": "sha512-O6PqhRXwfxCNTXI4BlhELSeYYO6/tqlxRuy+4+xKBokQvwDDjDgZMMoSgAmanVSCuzjE7MZldI9XYrKFk+EQDw==", + "dev": true, + "dependencies": { + "app-builder-lib": "24.6.3", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "dmg-builder": "24.6.3", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.3.2", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-publish": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.5.0.tgz", + "integrity": "sha512-zwo70suH15L15B4ZWNDoEg27HIYoPsGJUF7xevLJLSI7JUPC8l2yLBdLGwqueJ5XkDL7ucYyRZzxJVR8ElV9BA==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", + "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "optional": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "optional": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "optional": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ], + "optional": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "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.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isbinaryfile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", + "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-config-file": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "dev": true, + "dependencies": { + "config-file-ts": "^0.2.4", + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dev": true, + "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/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6285815 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "um-react-electron", + "version": "1.0.0", + "description": "Unlock Music 音乐解锁 (React) Electron App", + "main": "./src/main.js", + "author": "dreamfly", + "homepage": "https://git.unlock-music.dev/um/um-react", + "scripts": { + "format": "prettier --write .", + "lint": "eslint --ext .js .", + "dev": "cd um-react && npm run start & electron .", + "start": "cd um-react && npm run start & electron .", + "postinstall": "electron-builder install-app-deps", + "build:win": "cd um-react && npm run build && cd ../ && electron-builder --win --config", + "build:mac": "cd um-react && npm run build && cd ../ && electron-builder --mac --config", + "build:linux": "cd um-react && npm run build && cd ../ && electron-builder --linux --config" + }, + "dependencies": { + "@electron-toolkit/preload": "^2.0.0", + "@electron-toolkit/utils": "^2.0.0" + }, + "devDependencies": { + "@electron-toolkit/eslint-config": "^1.0.1", + "@electron-toolkit/eslint-config-prettier": "^1.0.1", + "electron": "^25.6.0", + "electron-builder": "^24.6.3", + "eslint": "^8.47.0", + "prettier": "^3.0.2" + } +} diff --git a/resources/icon.ico b/resources/icon.ico new file mode 100755 index 0000000000000000000000000000000000000000..684856186d9f37f0421c98e2ae8df008032753cd GIT binary patch literal 43682 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 H4w>>l-mT+n literal 0 HcmV?d00001 diff --git a/src/icons.svg b/src/icons.svg new file mode 100644 index 0000000..6e78300 --- /dev/null +++ b/src/icons.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..7d0640e --- /dev/null +++ b/src/index.html @@ -0,0 +1,55 @@ + + + + + Electron + + + + + + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..0da14a2 --- /dev/null +++ b/src/main.js @@ -0,0 +1,90 @@ +// Modules to control application life and create native browser window +const { app, shell, BrowserWindow } = require('electron') +const path = require('path') +const { electronApp, optimizer } = require('@electron-toolkit/utils') + +function createWindow() { + // Create the browser window. + const mainWindow = new BrowserWindow({ + width: 900, + height: 670, + show: false, + autoHideMenuBar: true, + // frame: false, // 隐藏标题栏 + ...(process.platform === 'linux' || process.platform === 'win32' + ? { + icon: path.join(__dirname, '../resources/icon.png') + } + : {}), + ...(process.platform === 'darwin' + ? { + titleBarStyle: 'hidden' // 隐藏 macOS 的默认标题栏 + } + : {}), + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + sandbox: false, + nodeIntegration: true + } + }) + + mainWindow.on('ready-to-show', () => { + mainWindow.show() + }) + + mainWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url) + return { action: 'deny' } + }) + + // and load the index.html of the app. + console.log(app.isPackaged) + if (!app.isPackaged) { + mainWindow.loadURL('http://localhost:5173') + } else { + mainWindow.loadFile(path.join(__dirname, 'renderer/index.html')) + } + + mainWindow.on('closed', () => { + // 在窗口关闭时触发before-quit事件以结束进程 + app.quit() + }) +} + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.whenReady().then(() => { + // Set app user model id for windows + electronApp.setAppUserModelId('com.dreamfly.um') + + // Default open or close DevTools by F12 in development + // and ignore CommandOrControl + R in production. + // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window) + }) + + app.on('NSApplicationDelegate.applicationSupportsSecureRestorableState', () => true) + + createWindow() + + app.on('activate', function () { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) createWindow() + }) + +}) + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on('window-all-closed', function () { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +// In this file you can include the rest of your app's specific main process +// code. You can also put them in separate files and require them here. diff --git a/src/preload.js b/src/preload.js new file mode 100644 index 0000000..be64308 --- /dev/null +++ b/src/preload.js @@ -0,0 +1,22 @@ +// All of the Node.js APIs are available in the preload process. +// It has the same sandbox as a Chrome extension. +const { contextBridge } = require('electron') +const { electronAPI } = require('@electron-toolkit/preload') + +// Custom APIs for renderer +const api = {} + +// Use `contextBridge` APIs to expose Electron APIs to +// renderer only if context isolation is enabled, otherwise +// just add to the DOM global. +if (process.contextIsolated) { + try { + contextBridge.exposeInMainWorld('electron', electronAPI) + contextBridge.exposeInMainWorld('api', api) + } catch (error) { + console.error(error) + } +} else { + window.electron = electronAPI + window.api = api +} diff --git a/src/renderer.js b/src/renderer.js new file mode 100644 index 0000000..797a314 --- /dev/null +++ b/src/renderer.js @@ -0,0 +1,26 @@ +// This file is required by the index.html file and will +// be executed in the renderer process for that window. +// No Node.js APIs are available in this process because +// `nodeIntegration` is turned off. Use `preload.js` to +// selectively enable features needed in the rendering +// process. +;(async () => { + window.addEventListener('DOMContentLoaded', () => { + doAThing() + }) + + function doAThing() { + const versions = window.electron.process.versions + replaceText('.electron-version', `Electron v${versions.electron}`) + replaceText('.chrome-version', `Chromium v${versions.chrome}`) + replaceText('.node-version', `Node v${versions.node}`) + replaceText('.v8-version', `V8 v${versions.v8}`) + } + + function replaceText(selector, text) { + const element = document.querySelector(selector) + if (element) { + element.innerText = text + } + } +})() diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..fe5c6b2 --- /dev/null +++ b/src/style.css @@ -0,0 +1,165 @@ +/* Add styles here to customize the appearance of your app */ +body { + display: flex; + flex-direction: column; + font-family: + Roboto, + -apple-system, + BlinkMacSystemFont, + 'Helvetica Neue', + 'Segoe UI', + 'Oxygen', + 'Ubuntu', + 'Cantarell', + 'Open Sans', + sans-serif; + color: #86a5b1; + background-color: #2f3241; +} + +* { + padding: 0; + margin: 0; +} + +ul { + list-style: none; +} + +code { + font-weight: 600; + padding: 3px 5px; + border-radius: 2px; + background-color: #26282e; + font-family: + ui-monospace, + SFMono-Regular, + SF Mono, + Menlo, + Consolas, + Liberation Mono, + monospace; + font-size: 85%; +} + +a { + color: #9feaf9; + font-weight: 600; + cursor: pointer; + text-decoration: none; + outline: none; +} + +a:hover { + border-bottom: 1px solid; +} + +.container { + flex: 1; + display: flex; + flex-direction: column; + max-width: 900px; + margin: 0 auto; + padding: 15px 30px 0 30px; + box-sizing: border-box; +} + +@media (min-width: 840px) { + .container { + width: 100%; + } +} + +.versions { + margin: 0 auto; + float: none; + clear: both; + overflow: hidden; + font-family: 'Menlo', 'Lucida Console', monospace; + color: #c2f5ff; + line-height: 1; + transition: all 0.3s; +} + +.versions li { + display: block; + float: left; + border-right: 1px solid rgba(194, 245, 255, 0.4); + padding: 0 20px; + font-size: 13px; + opacity: 0.8; +} + +.versions li:last-child { + border: none; +} + +.hero-logo { + margin-top: -0.4rem; + transition: all 0.3s; +} + +@media (max-width: 840px) { + .versions { + display: none; + } + + .hero-logo { + margin-top: -1.5rem; + } +} + +.hero-text { + font-weight: 400; + color: #c2f5ff; + text-align: center; + margin-top: -0.5rem; + margin-bottom: 10px; +} + +@media (max-width: 660px) { + .hero-logo { + display: none; + } + + .hero-text { + margin-top: 20px; + } +} + +.hero-tagline { + text-align: center; + margin-bottom: 14px; +} + +.links { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 24px; + font-size: 18px; + font-weight: 500; +} + +.links a { + font-weight: 500; +} + +.links .link-item { + padding: 0 4px; +} + +@media (max-width: 480px) { + .links { + flex-direction: column; + line-height: 32px; + } + + .links .link-dot { + display: none; + } +} + +.line-spacing { + line-height: 2; +} diff --git a/um-react/.drone.yml b/um-react/.drone.yml new file mode 100644 index 0000000..483cb38 --- /dev/null +++ b/um-react/.drone.yml @@ -0,0 +1,33 @@ +--- +kind: pipeline +type: docker +name: default + +steps: + - name: test & build + image: node:18.16.1-bookworm + commands: + # - git config --global --add safe.directory "/drone/src" + - corepack enable + - corepack prepare pnpm@latest --activate + - pnpm i --frozen-lockfile + - pnpm build + environment: + # 让 npm 使用淘宝源 + npm_config_registry: https://registry.npmmirror.com + + - name: publish + image: node:18.16.1-bookworm + environment: + DRONE_GITEA_SERVER: https://git.unlock-music.dev + GITEA_API_KEY: + from_secret: GITEA_API_KEY + NETLIFY_SITE_ID: + from_secret: NETLIFY_SITE_ID + NETLIFY_API_KEY: + from_secret: NETLIFY_API_KEY + commands: + # - git config --global --add safe.directory "/drone/src" + - python3 -m zipfile -c um-react.zip dist/. + - ./scripts/publish.sh + - ./scripts/deploy.sh diff --git a/um-react/.editorconfig b/um-react/.editorconfig new file mode 100644 index 0000000..43a0ceb --- /dev/null +++ b/um-react/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{{c,m,}js{x,on,},ts{x,}}] +indent_size = 2 diff --git a/um-react/.env b/um-react/.env new file mode 100644 index 0000000..bcc85c2 --- /dev/null +++ b/um-react/.env @@ -0,0 +1,4 @@ +# Example environment file for vite to use. +# For more information, see: https://vitejs.dev/guide/env-and-mode.html + +ENABLE_PERF_LOG=0 diff --git a/um-react/.eslintignore b/um-react/.eslintignore new file mode 100644 index 0000000..2d0c064 --- /dev/null +++ b/um-react/.eslintignore @@ -0,0 +1,3 @@ +dist/ +node_modules/ +coverage/ diff --git a/um-react/.eslintrc.cjs b/um-react/.eslintrc.cjs new file mode 100644 index 0000000..e8e69db --- /dev/null +++ b/um-react/.eslintrc.cjs @@ -0,0 +1,27 @@ +/* eslint-env node */ + +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + 'prettier', + ], + parser: '@typescript-eslint/parser', + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + varsIgnorePattern: '^_', + argsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + }, +}; diff --git a/um-react/.gitattributes b/um-react/.gitattributes new file mode 100644 index 0000000..fc2e8b5 --- /dev/null +++ b/um-react/.gitattributes @@ -0,0 +1 @@ +*.mmkv binary diff --git a/um-react/.gitignore b/um-react/.gitignore new file mode 100644 index 0000000..19fa33e --- /dev/null +++ b/um-react/.gitignore @@ -0,0 +1,29 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +coverage/ +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Files created when running "drone exec" locally +/.pnpm-store/ +/*.zip diff --git a/um-react/.husky/pre-commit b/um-react/.husky/pre-commit new file mode 100755 index 0000000..58b1861 --- /dev/null +++ b/um-react/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +pnpm exec lint-staged diff --git a/um-react/.husky/pre-push b/um-react/.husky/pre-push new file mode 100755 index 0000000..af0cff7 --- /dev/null +++ b/um-react/.husky/pre-push @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +pnpm test diff --git a/um-react/.npmrc b/um-react/.npmrc new file mode 100644 index 0000000..c818303 --- /dev/null +++ b/um-react/.npmrc @@ -0,0 +1,3 @@ +use-node-version=18.16.0 +node-version=18.16.0 +engine-strict=true diff --git a/um-react/.prettierignore b/um-react/.prettierignore new file mode 100644 index 0000000..2d7fe25 --- /dev/null +++ b/um-react/.prettierignore @@ -0,0 +1,5 @@ +dist/ + +# Package manager +yarn.lock +pnpm-lock.yaml diff --git a/um-react/LICENSE b/um-react/LICENSE new file mode 100644 index 0000000..93d546d --- /dev/null +++ b/um-react/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Unlock-Music Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/um-react/docs/adb_dump.md b/um-react/docs/adb_dump.md new file mode 100644 index 0000000..0b8a1aa --- /dev/null +++ b/um-react/docs/adb_dump.md @@ -0,0 +1,9 @@ +# 利用 ADB 访问安卓私有数据 + +```sh +APP_ID="com.tencent.qqmusic" # QQ 音乐 +APP_ID="cn.kuwo.player" # 酷我 + +adb shell su -c "tar c '/data/data/${APP_ID}/' | base64" \ + | base64 -d | pv | tar -x --strip-components 2 +``` diff --git a/um-react/docs/develop-with-libparakeet.zh.md b/um-react/docs/develop-with-libparakeet.zh.md new file mode 100644 index 0000000..dc74b10 --- /dev/null +++ b/um-react/docs/develop-with-libparakeet.zh.md @@ -0,0 +1,50 @@ +# 面向 `libparakeet-js` 开发 + +⚠️ 如果只是进行前端方面的更改,你可以跳过该文档。 + +`libparakeet-js` 编译目前需要 Linux 环境,请参考[仓库说明][libparakeet-js-doc]。 + +该文档将假设这两个项目被放置在同级的目录下: + +```text +~/Projects/um-projects + /um-react + /libparakeet-js +``` + +若为不同目录,你需要调整 `LIB_PARAKEET_JS_DIR` 环境变量到仓库目录,然后再启动 vite 项目。 + +[libparakeet-js-doc]: https://github.com/parakeet-rs/libparakeet-js/blob/main/README.MD + +## 初次构建 + +- 进入上层目录:`cd ..` +- 克隆 `libparakeet-js` 仓库 (目前需要 Linux 环境, Windows 下推荐使用 WSL2) + - `git clone --recurse-submodules https://github.com/parakeet-rs/libparakeet-js.git` +- 进入 SDK 目录:`cd libparakeet-js` +- 如果需要更新 `submodule`:`git submodule update --init --recursive` +- 构建所有代码:`make all` + +如果需要手动控制构建过程,你也可以: + +- 运行 `./build.sh -j 4` 进行 C++ 到 WebAssembly 编译过程 + - 此处的 `4` 是并行编译数量,该值通常略小于 CPU 核心数。 + - 若是不指定并行数量,则使用当前核心数。 +- 编译 `js-sdk`: + - 进入 `npm` 目录:`cd npm` + - 安装依赖:`pnpm i --frozen-lockfile` + - 构建:`pnpm build` + +## 做出更改 + +做出更改后,参考上面的内容进行重新编译。 + +## 应用 SDK 更改 + +将构建好的 SDK 直接嵌入到当前前端项目: + +```sh +pnpm link ../libparakeet-js/npm +``` + +※ 建立 PR 时,请先提交 SDK PR 并确保你的 SDK 更改已合并。 diff --git a/um-react/docs/getting-started.zh.md b/um-react/docs/getting-started.zh.md new file mode 100644 index 0000000..59d709b --- /dev/null +++ b/um-react/docs/getting-started.zh.md @@ -0,0 +1,35 @@ +# 新手上路 + +该文档描述了如何本地运行或编译生产版本的「Unlock Music 音乐解锁」。 + +## 安装依赖 + +- 安装 Node v16.17 或更高,推荐当前最新的 Node LTS 版本。 +- 安装/激活 `pnpm` [^1]:`corepack prepare pnpm@latest --activate` +- 安装软件依赖:`pnpm i --frozen-lockfile` + +[^1]: 参考 pnpm 说明「[使用 Corepack 安装](https://pnpm.io/zh/installation#使用-corepack-安装)」。 + +## 本地运行 + +💡 你需要先完成「安装依赖」部分。 + +```sh +pnpm start +``` + +然后根据提示打开[项目运行页面][vite-dev-url]即可。 + +[vite-dev-url]: http://localhost:5173/ + +## 构建生产版本 + +💡 你需要先完成「安装依赖」部分。 + +```sh +pnpm build +``` + +如果需要预览构建版本,运行 `pnpm preview` 然后打开[项目预览页面][vite-preview-url]即可。 + +[vite-preview-url]: http://localhost:4173/ diff --git a/um-react/index.html b/um-react/index.html new file mode 100644 index 0000000..f4cc59e --- /dev/null +++ b/um-react/index.html @@ -0,0 +1,25 @@ + + + + + + 音乐解锁 - Unlock Music (React) + + + + + + + +
+ + + + diff --git a/um-react/package-lock.json b/um-react/package-lock.json new file mode 100644 index 0000000..5e3ff87 --- /dev/null +++ b/um-react/package-lock.json @@ -0,0 +1,11743 @@ +{ + "name": "um-react", + "version": "0.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "um-react", + "version": "0.2.0", + "dependencies": { + "@chakra-ui/anatomy": "^2.1.1", + "@chakra-ui/icons": "^2.0.19", + "@chakra-ui/react": "^2.7.0", + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@jixun/libparakeet": "0.2.1", + "@reduxjs/toolkit": "^1.9.5", + "framer-motion": "^10.12.16", + "immer": "^10.0.2", + "nanoid": "^4.0.2", + "radash": "^10.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-dropzone": "^14.2.3", + "react-icons": "^4.9.0", + "react-promise-suspense": "^0.3.4", + "react-redux": "^8.0.5", + "react-syntax-highlighter": "^15.5.0", + "sass": "^1.63.3", + "sql.js": "^1.8.0" + }, + "devDependencies": { + "@rollup/plugin-replace": "^5.0.2", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/node": "^20.2.5", + "@types/react": "^18.2.7", + "@types/react-dom": "^18.2.4", + "@types/react-syntax-highlighter": "^15.5.7", + "@types/sql.js": "^1.4.4", + "@types/testing-library__jest-dom": "^5.14.6", + "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/parser": "^5.59.7", + "@vitejs/plugin-react": "^4.0.0", + "@vitest/coverage-c8": "^0.31.1", + "@vitest/ui": "^0.31.1", + "eslint": "^8.41.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.1", + "husky": "^8.0.3", + "jsdom": "^22.1.0", + "lint-staged": "^13.2.2", + "prettier": "^2.8.8", + "typescript": "^5.0.4", + "vite": "^4.3.9", + "vite-plugin-pwa": "^0.15.1", + "vite-plugin-top-level-await": "^1.3.1", + "vite-plugin-wasm": "^3.2.2", + "vitest": "^0.31.1" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", + "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "dev": true + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz", + "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", + "convert-source-map": "^1.7.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/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.10", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", + "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz", + "integrity": "sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", + "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz", + "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", + "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@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, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "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.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "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.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz", + "integrity": "sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz", + "integrity": "sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz", + "integrity": "sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz", + "integrity": "sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", + "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", + "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "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/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", + "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.11", + "@babel/types": "^7.22.11", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", + "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@chakra-ui/accordion": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.0.tgz", + "integrity": "sha512-A4TkRw3Jnt+Fam6dSSJ62rskdrvjF3JGctYcfXlojfFIpHPuIw4pDwfZgNAxlaxWkcj0e7JJKlQ88dnZW+QfFg==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/alert": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.0.tgz", + "integrity": "sha512-De+BT88iYOu3Con7MxQeICb1SwgAdVdgpHIYjTh3qvGlNXAQjs81rhG0fONXvwW1FIYletvr9DY2Tlg8xJe7tQ==", + "dependencies": { + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/anatomy": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.0.tgz", + "integrity": "sha512-cD8Ms5C8+dFda0LrORMdxiFhAZwOIY1BSlCadz6/mHUIgNdQy13AHPrXiq6qWdMslqVHq10k5zH7xMPLt6kjFg==" + }, + "node_modules/@chakra-ui/avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", + "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "dependencies": { + "@chakra-ui/image": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breadcrumb": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", + "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "dependencies": { + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breakpoint-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", + "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "node_modules/@chakra-ui/button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", + "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/card": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", + "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/checkbox": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.0.tgz", + "integrity": "sha512-fX7M5sQK27aFWoj7vqnPkf1Q3AHmML/5dIRYfm7HEIsZXYH2C1CkM6+dijeSWIk6a0mp0r3el6SNDUti2ehH8g==", + "dependencies": { + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/visually-hidden": "2.1.0", + "@zag-js/focus-visible": "0.10.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/clickable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", + "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "dependencies": { + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/close-button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.0.tgz", + "integrity": "sha512-KfJcz6UAaR2dDWSIv6UrCGkZQS54Fjl+DEEVOUTJ7gf4KOP4FQZCkv8hqsAB9FeCtnwU43adq2oaw3aZH/Uzew==", + "dependencies": { + "@chakra-ui/icon": "3.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/color-mode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", + "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/control-box": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", + "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/counter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", + "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/css-reset": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.2.0.tgz", + "integrity": "sha512-nn7hjquIrPwCzwI4d/Y4wzM5A5xAeswREOfT8gT0Yd+U+Qnw3pPT8NPLbNJ3DvuOfJaCV6/N5ld/6RRTgYF/sQ==", + "peerDependencies": { + "@emotion/react": ">=10.0.35", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/descendant": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", + "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/dom-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + }, + "node_modules/@chakra-ui/editable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", + "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/event-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", + "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + }, + "node_modules/@chakra-ui/focus-lock": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", + "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/form-control": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.1.0.tgz", + "integrity": "sha512-3QmWG9v6Rx+JOwJP3Wt89+AWZxK0F1NkVAgXP3WVfE9VDXOKFRV/faLT0GEe2V+l7WZHF5PLdEBvKG8Cgw2mkA==", + "dependencies": { + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/hooks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.0.tgz", + "integrity": "sha512-GZE64mcr20w+3KbCUPqQJHHmiFnX5Rcp8jS3YntGA4D5X2qU85jka7QkjfBwv/iduZ5Ei0YpCMYGCpi91dhD1Q==", + "dependencies": { + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/utils": "2.0.15", + "compute-scroll-into-view": "1.0.20", + "copy-to-clipboard": "3.3.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/icon": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.1.0.tgz", + "integrity": "sha512-t6v0lGCXRbwUJycN8A/nDTuLktMP+LRjKbYJnd2oL6Pm2vOl99XwEQ5cAEyEa4XoseYNEgXiLR+2TfvgfNFvcw==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/icons": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icons/-/icons-2.1.0.tgz", + "integrity": "sha512-pGFxFfQ/P5VnSRnTzK8zGAJxoxkxpHo/Br9ohRZdOpuhnIHSW7va0P53UoycEO5/vNJ/7BN0oDY0k9qurChcew==", + "dependencies": { + "@chakra-ui/icon": "3.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/image": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", + "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.0.tgz", + "integrity": "sha512-HItI2vq6vupCuixdzof4sIanGdLlszhDtlR5be5z8Nrda1RkXVqI+9CTJPbNsx2nIKEfwPt01pnT9mozoOSMMw==", + "dependencies": { + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/layout": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.0.tgz", + "integrity": "sha512-tp1/Bn+cHn0Q4HWKY62HtOwzhpH1GUA3i5fvs23HEhOEryTps05hyuQVeJ71fLqSs6f1QEIdm+9It+5WCj64vQ==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/lazy-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", + "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + }, + "node_modules/@chakra-ui/live-region": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", + "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/media-query": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", + "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/menu": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.0.tgz", + "integrity": "sha512-l7HQjriW4JGeCyxDdguAzekwwB+kHGDLxACi0DJNp37sil51SRaN1S1OrneISbOHVpHuQB+KVNgU0rqhoglVew==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-outside-click": "2.2.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/modal": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.0.tgz", + "integrity": "sha512-S1sITrIeLSf21LJ0Vz8xZhj5fWEud5z5Dl2dmvOEv1ezypgOrCCBdOEnnqCkoEKZDbKvzZWZXWR5791ikLP6+g==", + "dependencies": { + "@chakra-ui/close-button": "2.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0", + "aria-hidden": "^1.2.2", + "react-remove-scroll": "^2.5.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/number-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.0.tgz", + "integrity": "sha512-/gEAzQHhrMA+1rzyCMaN8OkKtUPuER6iA+nloYEYBoT7dH/EoNlRtBkiIQhDp+E4VpgZJ0SK3OVrm9/eBbtHHg==", + "dependencies": { + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-interval": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/number-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", + "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + }, + "node_modules/@chakra-ui/object-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + }, + "node_modules/@chakra-ui/pin-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", + "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popover": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.0.tgz", + "integrity": "sha512-cTqXdgkU0vgK82AR1nWcC2MJYhEL/y6uTeprvO2+j4o2D0yPrzVMuIZZRl0abrQwiravQyVGEMgA5y0ZLYwbiQ==", + "dependencies": { + "@chakra-ui/close-button": "2.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popper": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", + "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "dependencies": { + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@popperjs/core": "^2.9.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/portal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", + "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/progress": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", + "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/provider": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.0.tgz", + "integrity": "sha512-KJ/TNczpY+EStQXa2Y5PZ+senlBHrY7P+RpBgJLBZLGkQUCS3APw5KvCwgpA0COb2M4AZXCjw+rm+Ko7ontlgA==", + "dependencies": { + "@chakra-ui/css-reset": "2.2.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/system": "2.6.0", + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/radio": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.0.tgz", + "integrity": "sha512-WiRlSCqKWgy4m9106w4g77kcLYqBxqGhFRO1pTTJp99rxpM6jNadOeK+moEjqj64N9mSz3njEecMJftKKcOYdg==", + "dependencies": { + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@zag-js/focus-visible": "0.10.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.0.tgz", + "integrity": "sha512-tV82DaqE4fMbLIWq58BYh4Ol3gAlNEn+qYOzx8bPrZudboEDnboq8aVfSBwWOY++MLWz2Nn7CkT69YRm91e5sg==", + "dependencies": { + "@chakra-ui/accordion": "2.3.0", + "@chakra-ui/alert": "2.2.0", + "@chakra-ui/avatar": "2.3.0", + "@chakra-ui/breadcrumb": "2.2.0", + "@chakra-ui/button": "2.1.0", + "@chakra-ui/card": "2.2.0", + "@chakra-ui/checkbox": "2.3.0", + "@chakra-ui/close-button": "2.1.0", + "@chakra-ui/control-box": "2.1.0", + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/css-reset": "2.2.0", + "@chakra-ui/editable": "3.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/hooks": "2.2.0", + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/image": "2.1.0", + "@chakra-ui/input": "2.1.0", + "@chakra-ui/layout": "2.3.0", + "@chakra-ui/live-region": "2.1.0", + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/menu": "2.2.0", + "@chakra-ui/modal": "2.3.0", + "@chakra-ui/number-input": "2.1.0", + "@chakra-ui/pin-input": "2.1.0", + "@chakra-ui/popover": "2.2.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/progress": "2.2.0", + "@chakra-ui/provider": "2.4.0", + "@chakra-ui/radio": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/select": "2.1.0", + "@chakra-ui/skeleton": "2.1.0", + "@chakra-ui/skip-nav": "2.1.0", + "@chakra-ui/slider": "2.1.0", + "@chakra-ui/spinner": "2.1.0", + "@chakra-ui/stat": "2.1.0", + "@chakra-ui/stepper": "2.3.0", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/switch": "2.1.0", + "@chakra-ui/system": "2.6.0", + "@chakra-ui/table": "2.1.0", + "@chakra-ui/tabs": "2.2.0", + "@chakra-ui/tag": "3.1.0", + "@chakra-ui/textarea": "2.1.0", + "@chakra-ui/theme": "3.2.0", + "@chakra-ui/theme-utils": "2.0.19", + "@chakra-ui/toast": "7.0.0", + "@chakra-ui/tooltip": "2.3.0", + "@chakra-ui/transition": "2.1.0", + "@chakra-ui/utils": "2.0.15", + "@chakra-ui/visually-hidden": "2.1.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/react-children-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", + "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-context": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", + "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", + "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", + "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-animation-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", + "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-callback-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", + "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-controllable-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", + "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-disclosure": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", + "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-event-listener": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", + "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", + "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", + "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "dependencies": { + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-interval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", + "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-latest-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", + "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-merge-refs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", + "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-outside-click": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", + "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-pan-event": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", + "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "dependencies": { + "@chakra-ui/event-utils": "2.0.8", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "framesync": "6.1.2" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-previous": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", + "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-safe-layout-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", + "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", + "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "dependencies": { + "@zag-js/element-size": "0.10.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-timeout": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", + "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-update-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", + "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-utils": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", + "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "dependencies": { + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.0.tgz", + "integrity": "sha512-6GEjCJNOm1pS9E7XRvodoVOuSFl82Jio3MGWgmcQrLznjJAhIZVMq85vCQqzGpjjfbHys/UctfdJY75Ctas/Jg==", + "dependencies": { + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/shared-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", + "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + }, + "node_modules/@chakra-ui/skeleton": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", + "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "dependencies": { + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/react-use-previous": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/skip-nav": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", + "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/slider": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", + "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-pan-event": "2.1.0", + "@chakra-ui/react-use-size": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/spinner": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", + "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stat": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.0.tgz", + "integrity": "sha512-sqx0/AdFFZ80dsiM5owmhtQyYl+zON1r+IY0m70I/ABRVy+I3br06xdUhoaxh3tcP7c0O/BQgb+VCfXa9Y34CA==", + "dependencies": { + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stepper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.0.tgz", + "integrity": "sha512-q80QX/NLrjJQIlBP1N+Q8GVJb7/HiOpMoK1PlP4denB/KxkU2K8GEjss8U2vklR1XsWJy1fwfj03+66Q78Uk/Q==", + "dependencies": { + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/styled-system": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.1.tgz", + "integrity": "sha512-jhYKBLxwOPi9/bQt9kqV3ELa/4CjmNNruTyXlPp5M0v0+pDMUngPp48mVLoskm9RKZGE0h1qpvj/jZ3K7c7t8w==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "csstype": "^3.0.11", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/switch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.0.tgz", + "integrity": "sha512-uWHOaIDQdGh+mszxeppj5aYVepbkSK445KZlJJkfr9Bnr6sythTwM63HSufnVDiTEE4uRqegv9jEjZK2JKA+9A==", + "dependencies": { + "@chakra-ui/checkbox": "2.3.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/system": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.0.tgz", + "integrity": "sha512-MgAFRz9V1pW0dplwWsB99hx49LCC+LsrkMala7KXcP0OvWdrkjw+iu+voBksO3626+glzgIwlZW113Eja+7JEQ==", + "dependencies": { + "@chakra-ui/color-mode": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme-utils": "2.0.19", + "@chakra-ui/utils": "2.0.15", + "react-fast-compare": "3.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", + "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tabs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.2.0.tgz", + "integrity": "sha512-ulN7McHZ322qlbJXg8S+IwdN8Axh8q0HzYBOHzSdcnVphEytfv9TsfJhN0Hx5yjkpekAzG5fewn33ZdIpIpKyQ==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tag": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.0.tgz", + "integrity": "sha512-Mn2u828z5HvqEBEG+tUJWe3al5tzN87bK2U0QfThx3+zqWbBCWBSCVfnWRtkNh80m+5a1TekexDAPZqu5G8zdw==", + "dependencies": { + "@chakra-ui/icon": "3.1.0", + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/textarea": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.0.tgz", + "integrity": "sha512-4F7X/lPRsY+sPxYrWGrhh1pBtdnFvVllIOapzAwnjYwsflm+vf6c+9ZgoDWobXsNezJ9fcqN0FTPwaBnDvDQRQ==", + "dependencies": { + "@chakra-ui/form-control": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/theme": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.2.0.tgz", + "integrity": "sha512-q9mppdkhmaBnvOT8REr/lVNNBX/prwm50EzObJ+r+ErVhNQDc55gCFmtr+It3xlcCqmOteG6XUdwRCJz8qzOqg==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/theme-tools": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.8.0" + } + }, + "node_modules/@chakra-ui/theme-tools": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.0.tgz", + "integrity": "sha512-TKv4trAY8q8+DWdZrpSabTd3SZtZrnzFDwUdzhbWBhFEDEVR3fAkRTPpnPDtf1X9w1YErWn3QAcMACVFz4+vkw==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5", + "color2k": "^2.0.0" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.0.0" + } + }, + "node_modules/@chakra-ui/theme-utils": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.19.tgz", + "integrity": "sha512-UQ+KvozTN86+0oA80rdQd1a++4rm4ulo+DEabkgwNpkK3yaWsucOxkDQpi2sMIMvw5X0oaWvNBZJuVyK7HdOXg==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.2.0", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/toast": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.0.tgz", + "integrity": "sha512-XQgSnn4DYRgfOBzBvh8GI/AZ7SfrO8wlVSmChfp92Nfmqm7tRDUT9x8ws/iNKAvMRHkhl7fmRjJ39ipeXYrMvA==", + "dependencies": { + "@chakra-ui/alert": "2.2.0", + "@chakra-ui/close-button": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-timeout": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.1", + "@chakra-ui/theme": "3.2.0" + }, + "peerDependencies": { + "@chakra-ui/system": "2.6.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/tooltip": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.0.tgz", + "integrity": "sha512-2s23f93YIij1qEDwIK//KtEu4LLYOslhR1cUhDBk/WUzyFR3Ez0Ee+HlqlGEGfGe9x77E6/UXPnSAKKdF/cpsg==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/transition": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", + "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", + "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", + "dependencies": { + "@types/lodash.mergewith": "4.6.7", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/visually-hidden": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.1.0.tgz", + "integrity": "sha512-3OHKqTz78PX7V4qto+a5Y6VvH6TbU3Pg6Z0Z2KnDkOBP3Po8fiz0kk+/OSPzIwdcSsQKiocLi0c1pnnUPdMZPg==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", + "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.6.4", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz", + "integrity": "sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jixun/libparakeet": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@jixun/libparakeet/-/libparakeet-0.2.1.tgz", + "integrity": "sha512-OZRx72yKfRs8ZRZcNPAOBEAz9/v3jXK5V6ue4WomcW6HhNZy7JjdXZOF7lHqMgfB47d1CyLNJbaT0r0tiKGjbA==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", + "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", + "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@swc/core": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.80.tgz", + "integrity": "sha512-yX2xV5I/lYswHHR+44TPvzBgq3/Y8N1YWpTQADYuvSiX3Jxyvemk5Jpx3rRtigYb8WBkWAAf2i5d5ZJ2M7hhgw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/types": "^0.1.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.80", + "@swc/core-darwin-x64": "1.3.80", + "@swc/core-linux-arm-gnueabihf": "1.3.80", + "@swc/core-linux-arm64-gnu": "1.3.80", + "@swc/core-linux-arm64-musl": "1.3.80", + "@swc/core-linux-x64-gnu": "1.3.80", + "@swc/core-linux-x64-musl": "1.3.80", + "@swc/core-win32-arm64-msvc": "1.3.80", + "@swc/core-win32-ia32-msvc": "1.3.80", + "@swc/core-win32-x64-msvc": "1.3.80" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.80.tgz", + "integrity": "sha512-rhoFTcQMUGfO7IkfOnopPSF6O0/aVJ58B7KueIKbvrMe6YvSfFj9QfObELFjYCcrJZTvUWBhig0QrsfPIiUphA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.80.tgz", + "integrity": "sha512-0dOLedFpVXe+ugkKHXsqSxMKqvQYfFtibWbrZ7j8wOaErzSGPr0VpyWvepNVb9s046725kPXSw+fsGhqZR8wrw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.80.tgz", + "integrity": "sha512-QIjwP3PtDeHBDkwF6+ZZqdUsqAhORbMpxrw2jq3mHe4lQrxBttSFTq018vlMRo2mFEorOvXdadzaD9m+NymPrw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.80.tgz", + "integrity": "sha512-cg8WriIueab58ZwkzXmIACnjSzFLzOBwxlC9k65gPXMNgCjab2YbqEYvAbjBqneuqaao02gW6tad2uhjgYaExw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.80.tgz", + "integrity": "sha512-AhdCQ7QKx5mWrtpaOA1mFRiWWvuiiUtspvo0QSpspDetRKTND1rlf/3UB5+gp0kCeCNUTsVmJWU7fIA9ICZtXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.80.tgz", + "integrity": "sha512-+2e5oni1vOrLIjM5Q2/GIzK/uS2YEtuJqnjPvCK8SciRJsSl8OgVsRvyCDbmKeZNtJ2Q+o/O2AQ2w1qpAJG6jg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.80.tgz", + "integrity": "sha512-8OK9IlI1zpWOm7vIp1iXmZSEzLAwFpqhsGSEhxPavpOx2m54kLFdPcw/Uv3n461f6TCtszIxkGq1kSqBUdfUBA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.80.tgz", + "integrity": "sha512-RKhatwiAGlffnF6z2Mm3Ddid0v3KB+uf5m/Gc7N9zO/EUAV0PnHRuYuZSGyqodHmGFC+mK8YrCooFCEmHL9n+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.80.tgz", + "integrity": "sha512-3jiiZzU/kaw7k4zUp1yMq1QiUe4wJVtCEXIhf+fKuBsIwm7rdvyK/+PIx5KHnZy4TGQnYczKBRhJA5nuBcrUCQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.80", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.80.tgz", + "integrity": "sha512-2eZtIoIWQBWqykfms92Zd37lveYOBWQTZjdooBGlsLHtcoQLkNpf1NXmR6TKY0yy8q6Yl3OhPvY+izjmO08MSg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/types": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.4.tgz", + "integrity": "sha512-z/G02d+59gyyUb7KYhKi9jOhicek6QD2oMaotUyG+lUkybpXoV49dY9bj7Ah5Q+y7knK2jU67UTX9FyfGzaxQg==", + "dev": true + }, + "node_modules/@testing-library/dom": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.1.tgz", + "integrity": "sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.0.0.tgz", + "integrity": "sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.4.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.4.3.tgz", + "integrity": "sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/emscripten": { + "version": "1.39.7", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.7.tgz", + "integrity": "sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/hast": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz", + "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.4.tgz", + "integrity": "sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", + "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.197", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz", + "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==" + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", + "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "20.5.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", + "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/react": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", + "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", + "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-syntax-highlighter": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.7.tgz", + "integrity": "sha512-bo5fEO5toQeyCp0zVHBeggclqf5SQ/Z5blfFmjwO5dkMVGPgmiwZsJh9nu/Bo5L7IHTuGWrja6LxJVE2uB5ZrQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@types/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", + "dev": true + }, + "node_modules/@types/sql.js": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@types/sql.js/-/sql.js-1.4.4.tgz", + "integrity": "sha512-6EWU2wfiBtzgTy18WQoXZAGTreBjhZcBCfD8CDvyI1Nj0a4KNDDt41IYeAZ40cRUdfqWHb7VGx7t6nK0yBOI5A==", + "dev": true, + "dependencies": { + "@types/emscripten": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dev": true, + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", + "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz", + "integrity": "sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0" + } + }, + "node_modules/@vitest/coverage-c8": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.31.4.tgz", + "integrity": "sha512-VPx368m4DTcpA/P0v3YdVxl4QOSh1DbUcXURLRvDShrIB5KxOgfzw4Bn2R8AhAe/GyiWW/FIsJ/OJdYXCCiC1w==", + "deprecated": "v8 coverage is moved to @vitest/coverage-v8 package", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "c8": "^7.13.0", + "magic-string": "^0.30.0", + "picocolors": "^1.0.0", + "std-env": "^3.3.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.30.0 <1" + } + }, + "node_modules/@vitest/coverage-c8/node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitest/expect": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.31.4.tgz", + "integrity": "sha512-tibyx8o7GUyGHZGyPgzwiaPaLDQ9MMuCOrc03BYT0nryUuhLbL7NV2r/q98iv5STlwMgaKuFJkgBW/8iPKwlSg==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.31.4", + "@vitest/utils": "0.31.4", + "chai": "^4.3.7" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.31.4.tgz", + "integrity": "sha512-Wgm6UER+gwq6zkyrm5/wbpXGF+g+UBB78asJlFkIOwyse0pz8lZoiC6SW5i4gPnls/zUcPLWS7Zog0LVepXnpg==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.31.4", + "concordance": "^5.0.4", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.31.4.tgz", + "integrity": "sha512-LemvNumL3NdWSmfVAMpXILGyaXPkZbG5tyl6+RQSdcHnTj6hvA49UAI8jzez9oQyE/FWLKRSNqTGzsHuk89LRA==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "pretty-format": "^27.5.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vitest/spy": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.31.4.tgz", + "integrity": "sha512-3ei5ZH1s3aqbEyftPAzSuunGICRuhE+IXOmpURFdkm5ybUADk+viyQfejNk6q8M5QGX8/EVKw+QWMEP3DTJDag==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.31.4.tgz", + "integrity": "sha512-sKM16ITX6HrNFF+lNZ2AQAen4/6Bx2i6KlBfIvkUjcTgc5YII/j2ltcX14oCUv4EA0OTWGQuGhO3zDoAsTENGA==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.31.4", + "fast-glob": "^3.2.12", + "fflate": "^0.7.4", + "flatted": "^3.2.7", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "sirv": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.30.1 <1" + } + }, + "node_modules/@vitest/utils": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.31.4.tgz", + "integrity": "sha512-DobZbHacWznoGUfYU8XDPY78UubJxXfMNY1+SUdOp1NsI34eopSA6aZMeaGu10waSOeYwE8lxrd/pLfT0RMxjQ==", + "dev": true, + "dependencies": { + "concordance": "^5.0.4", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@zag-js/dom-query": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.10.5.tgz", + "integrity": "sha512-zm6wA5+kqU48it6afNjaUhjVSixKZruTKB23z0V1xBqKbuiLOMMOZ5oK26cTPSXtZ5CPhDNZ2Qk4pliS5n9SVw==" + }, + "node_modules/@zag-js/element-size": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", + "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.10.5.tgz", + "integrity": "sha512-EhDHKLutMtvLFCjBjyIY6h1JoJJNXG3KJz7Dj1sh4tj4LWAqo/TqLvgHyUTB29XMHwoslFHDJHKVWmLGMi+ULQ==", + "dependencies": { + "@zag-js/dom-query": "0.10.5" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/attr-accept": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", + "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "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.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c8": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", + "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001524", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==", + "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" + } + ] + }, + "node_modules/chai": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", + "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/color2k": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.2.tgz", + "integrity": "sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js-compat": { + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz", + "integrity": "sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz", + "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.1", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.504", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.504.tgz", + "integrity": "sha512-cSMwIAd8yUh54VwitVRVvHK66QqHWE39C3DRj8SWiXitEpVSY3wNPD9y1pxQtLIi4w3UdzF9klLsmuPshz09DQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz", + "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expect": { + "version": "29.6.4", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz", + "integrity": "sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.6.4", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.6.4", + "jest-message-util": "^29.6.3", + "jest-util": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-selector": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", + "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/focus-lock": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.6.tgz", + "integrity": "sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==", + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/framer-motion": { + "version": "10.16.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.1.tgz", + "integrity": "sha512-K6TXr5mZtitC/dxQCBdg7xzdN0d5IAIrlaqCPKtIQVdzVPGC0qBuJKXggHX1vjnP5gPOFwB1KbCCTWcnFc3kWg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/framesync/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "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/fs-extra/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff": { + "version": "29.6.4", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", + "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", + "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.6.4", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", + "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.6.4", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", + "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-message-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.3.tgz", + "integrity": "sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", + "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz", + "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lint-staged": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", + "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", + "dev": true, + "dependencies": { + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", + "lilconfig": "2.1.0", + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/listr2": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "dependencies": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mlly": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.1.tgz", + "integrity": "sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "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/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/radash": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/radash/-/radash-10.9.0.tgz", + "integrity": "sha512-0pijGuxnF5CgEdRwrCEHjx4onaXWpmVligyKzfn7hIjpOl11n+9x8le6R3gFjAs2e6d7WT39vcZw1AWHt3w9Jw==", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-dropzone": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", + "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", + "dependencies": { + "attr-accept": "^2.2.2", + "file-selector": "^0.6.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.1.tgz", + "integrity": "sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==" + }, + "node_modules/react-focus-lock": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.5.tgz", + "integrity": "sha512-h6vrdgUbsH2HeD5I7I3Cx1PPrmwGuKYICS+kB9m+32X/9xHRrAbxgvaBpG7BFBN9h3tO+C3qX1QAVESmi4CiIA==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.11.6", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-icons": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", + "integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-promise-suspense": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/react-promise-suspense/-/react-promise-suspense-0.3.4.tgz", + "integrity": "sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==", + "dependencies": { + "fast-deep-equal": "^2.0.1" + } + }, + "node_modules/react-promise-suspense/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" + }, + "node_modules/react-redux": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.2.tgz", + "integrity": "sha512-xJKYI189VwfsFc4CJvHqHlDrzyFTY/3vZACbE+rr/zQ34Xx1wQfB4OTOSeOSNrF6BDVe8OOdxIrAnMGXA3ggfw==", + "dependencies": { + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-redux/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.6.tgz", + "integrity": "sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-syntax-highlighter": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", + "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "lowlight": "^1.17.0", + "prismjs": "^1.27.0", + "refractor": "^3.6.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "dependencies": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/refractor/node_modules/prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "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.npmjs.org/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" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sql.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.8.0.tgz", + "integrity": "sha512-3HD8pSkZL+5YvYUI8nlvNILs61ALqq34xgmF+BHpqxe68yZIJ1H+sIVIODvni25+CcxHUxDyrTJUL0lE/m7afw==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", + "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz", + "integrity": "sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz", + "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tinybench": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", + "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz", + "integrity": "sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", + "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.0.tgz", + "integrity": "sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "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.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.31.4.tgz", + "integrity": "sha512-uzL377GjJtTbuc5KQxVbDu2xfU/x0wVjUtXQR2ihS21q/NK6ROr4oG0rsSkBBddZUVCwzfx22in76/0ZZHXgkQ==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.2.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-pwa": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.15.2.tgz", + "integrity": "sha512-l1srtaad5NMNrAtAuub6ArTYG5Ci9AwofXXQ6IsbpCMYQ/0HUndwI7RB2x95+1UBFm7VGttQtT7woBlVnNhBRw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "pretty-bytes": "^6.0.0", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + } + }, + "node_modules/vite-plugin-top-level-await": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.3.1.tgz", + "integrity": "sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==", + "dev": true, + "dependencies": { + "@rollup/plugin-virtual": "^3.0.1", + "@swc/core": "^1.3.10", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "vite": ">=2.8" + } + }, + "node_modules/vite-plugin-wasm": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz", + "integrity": "sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==", + "dev": true, + "peerDependencies": { + "vite": "^2 || ^3 || ^4" + } + }, + "node_modules/vitest": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.31.4.tgz", + "integrity": "sha512-GoV0VQPmWrUFOZSg3RpQAPN+LPmHg2/gxlMNJlyxJihkz6qReHDV6b0pPDcqFLNEPya4tWJ1pgwUNP9MLmUfvQ==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.31.4", + "@vitest/runner": "0.31.4", + "@vitest/snapshot": "0.31.4", + "@vitest/spy": "0.31.4", + "@vitest/utils": "0.31.4", + "acorn": "^8.8.2", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "concordance": "^5.0.4", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "std-env": "^3.3.2", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.5.0", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.31.4", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dev": true, + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "dev": true + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "dev": true, + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dev": true, + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "dev": true + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "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/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "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/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/um-react/package.json b/um-react/package.json new file mode 100644 index 0000000..8f06947 --- /dev/null +++ b/um-react/package.json @@ -0,0 +1,85 @@ +{ + "name": "um-react", + "private": true, + "version": "0.2.0", + "type": "module", + "scripts": { + "start": "vite", + "build": "tsc -p tsconfig.prod.json && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "format": "prettier -w .", + "test": "vitest run", + "test:ui": "vitest --ui", + "test:coverage": "vitest run --coverage", + "preview": "vite preview", + "preview:coverage": "vite preview --outDir coverage --port 5175", + "prepare": "husky install" + }, + "dependencies": { + "@chakra-ui/anatomy": "^2.1.1", + "@chakra-ui/icons": "^2.0.19", + "@chakra-ui/react": "^2.7.0", + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@jixun/libparakeet": "0.2.1", + "@reduxjs/toolkit": "^1.9.5", + "framer-motion": "^10.12.16", + "immer": "^10.0.2", + "nanoid": "^4.0.2", + "radash": "^10.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-dropzone": "^14.2.3", + "react-icons": "^4.9.0", + "react-promise-suspense": "^0.3.4", + "react-redux": "^8.0.5", + "react-syntax-highlighter": "^15.5.0", + "sass": "^1.63.3", + "sql.js": "^1.8.0" + }, + "devDependencies": { + "@rollup/plugin-replace": "^5.0.2", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/node": "^20.2.5", + "@types/react": "^18.2.7", + "@types/react-dom": "^18.2.4", + "@types/react-syntax-highlighter": "^15.5.7", + "@types/sql.js": "^1.4.4", + "@types/testing-library__jest-dom": "^5.14.6", + "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/parser": "^5.59.7", + "@vitejs/plugin-react": "^4.0.0", + "@vitest/coverage-c8": "^0.31.1", + "@vitest/ui": "^0.31.1", + "eslint": "^8.41.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.1", + "husky": "^8.0.3", + "jsdom": "^22.1.0", + "lint-staged": "^13.2.2", + "prettier": "^2.8.8", + "typescript": "^5.0.4", + "vite": "^4.3.9", + "vite-plugin-pwa": "^0.15.1", + "vite-plugin-top-level-await": "^1.3.1", + "vite-plugin-wasm": "^3.2.2", + "vitest": "^0.31.1" + }, + "lint-staged": { + "*": "prettier --write --ignore-unknown", + "*.{js,jsx,ts,tsx}": "eslint --fix --report-unused-disable-directives --max-warnings 0" + }, + "prettier": { + "singleQuote": true, + "printWidth": 120, + "tabWidth": 2 + }, + "pnpm": { + "patchedDependencies": { + "sql.js@1.8.0": "patches/sql.js@1.8.0.patch" + } + } +} diff --git a/um-react/patches/sql.js@1.8.0.patch b/um-react/patches/sql.js@1.8.0.patch new file mode 100644 index 0000000..2d36477 --- /dev/null +++ b/um-react/patches/sql.js@1.8.0.patch @@ -0,0 +1,12 @@ +diff --git a/dist/sql-wasm.js b/dist/sql-wasm.js +index e0da60ba096433d9af1c7025d2ffb9c521f190ed..89a5da6af23e1a644106d38dafe7cfa85500a8c4 100644 +--- a/dist/sql-wasm.js ++++ b/dist/sql-wasm.js +@@ -192,3 +192,7 @@ else if (typeof define === 'function' && define['amd']) { + else if (typeof exports === 'object'){ + exports["Module"] = initSqlJs; + } ++ ++var module; ++export default initSqlJs; ++ \ No newline at end of file diff --git a/um-react/pnpm-lock.yaml b/um-react/pnpm-lock.yaml new file mode 100644 index 0000000..9228ff0 --- /dev/null +++ b/um-react/pnpm-lock.yaml @@ -0,0 +1,7608 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +patchedDependencies: + sql.js@1.8.0: + hash: vzg36y5uoz6bb2m2utejemkdhy + path: patches/sql.js@1.8.0.patch + +dependencies: + '@chakra-ui/anatomy': + specifier: ^2.1.1 + version: 2.1.1 + '@chakra-ui/icons': + specifier: ^2.0.19 + version: 2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react': + specifier: ^2.7.0 + version: 2.7.0(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(@types/react@18.2.7)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0) + '@emotion/react': + specifier: ^11.11.0 + version: 11.11.0(@types/react@18.2.7)(react@18.2.0) + '@emotion/styled': + specifier: ^11.11.0 + version: 11.11.0(@emotion/react@11.11.0)(@types/react@18.2.7)(react@18.2.0) + '@jixun/libparakeet': + specifier: 0.2.1 + version: 0.2.1 + '@reduxjs/toolkit': + specifier: ^1.9.5 + version: 1.9.5(react-redux@8.0.5)(react@18.2.0) + framer-motion: + specifier: ^10.12.16 + version: 10.12.16(react-dom@18.2.0)(react@18.2.0) + immer: + specifier: ^10.0.2 + version: 10.0.2 + nanoid: + specifier: ^4.0.2 + version: 4.0.2 + radash: + specifier: ^10.8.1 + version: 10.8.1 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-dropzone: + specifier: ^14.2.3 + version: 14.2.3(react@18.2.0) + react-icons: + specifier: ^4.9.0 + version: 4.9.0(react@18.2.0) + react-promise-suspense: + specifier: ^0.3.4 + version: 0.3.4 + react-redux: + specifier: ^8.0.5 + version: 8.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + react-syntax-highlighter: + specifier: ^15.5.0 + version: 15.5.0(react@18.2.0) + sass: + specifier: ^1.63.3 + version: 1.63.3 + sql.js: + specifier: ^1.8.0 + version: 1.8.0(patch_hash=vzg36y5uoz6bb2m2utejemkdhy) + +devDependencies: + '@rollup/plugin-replace': + specifier: ^5.0.2 + version: 5.0.2(rollup@2.79.1) + '@testing-library/jest-dom': + specifier: ^5.16.5 + version: 5.16.5 + '@testing-library/react': + specifier: ^14.0.0 + version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + '@testing-library/user-event': + specifier: ^14.4.3 + version: 14.4.3(@testing-library/dom@9.3.0) + '@types/node': + specifier: ^20.2.5 + version: 20.2.5 + '@types/react': + specifier: ^18.2.7 + version: 18.2.7 + '@types/react-dom': + specifier: ^18.2.4 + version: 18.2.4 + '@types/react-syntax-highlighter': + specifier: ^15.5.7 + version: 15.5.7 + '@types/sql.js': + specifier: ^1.4.4 + version: 1.4.4 + '@types/testing-library__jest-dom': + specifier: ^5.14.6 + version: 5.14.6 + '@typescript-eslint/eslint-plugin': + specifier: ^5.59.7 + version: 5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': + specifier: ^5.59.7 + version: 5.59.7(eslint@8.41.0)(typescript@5.0.4) + '@vitejs/plugin-react': + specifier: ^4.0.0 + version: 4.0.0(vite@4.3.9) + '@vitest/coverage-c8': + specifier: ^0.31.1 + version: 0.31.1(vitest@0.31.1) + '@vitest/ui': + specifier: ^0.31.1 + version: 0.31.1(vitest@0.31.1) + eslint: + specifier: ^8.41.0 + version: 8.41.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.8.0(eslint@8.41.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.41.0) + eslint-plugin-react-refresh: + specifier: ^0.4.1 + version: 0.4.1(eslint@8.41.0) + husky: + specifier: ^8.0.3 + version: 8.0.3 + jsdom: + specifier: ^22.1.0 + version: 22.1.0 + lint-staged: + specifier: ^13.2.2 + version: 13.2.2 + prettier: + specifier: ^2.8.8 + version: 2.8.8 + typescript: + specifier: ^5.0.4 + version: 5.0.4 + vite: + specifier: ^4.3.9 + version: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + vite-plugin-pwa: + specifier: ^0.15.1 + version: 0.15.1(vite@4.3.9)(workbox-build@6.5.4)(workbox-window@6.5.4) + vite-plugin-top-level-await: + specifier: ^1.3.1 + version: 1.3.1(rollup@2.79.1)(vite@4.3.9) + vite-plugin-wasm: + specifier: ^3.2.2 + version: 3.2.2(vite@4.3.9) + vitest: + specifier: ^0.31.1 + version: 0.31.1(@vitest/ui@0.31.1)(jsdom@22.1.0)(sass@1.63.3) + +packages: + + /@adobe/css-tools@4.2.0: + resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/compat-data@7.22.3: + resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.22.1: + resolution: {integrity: sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.22.3 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-module-transforms': 7.22.1 + '@babel/helpers': 7.22.3 + '@babel/parser': 7.22.3 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.1 + '@babel/types': 7.22.3 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.22.3: + resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.21.5: + resolution: {integrity: sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-compilation-targets@7.22.1(@babel/core@7.22.1): + resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.3 + '@babel/core': 7.22.1 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.22.1): + resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.22.1): + resolution: {integrity: sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.3.2 + semver: 6.3.0 + dev: true + + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.22.1): + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.1: + resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.21.9 + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-member-expression-to-functions@7.21.5: + resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-module-imports@7.21.4: + resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + + /@babel/helper-module-transforms@7.22.1: + resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.1 + '@babel/types': 7.22.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-plugin-utils@7.21.5: + resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.22.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers@7.21.5: + resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.1 + '@babel/types': 7.22.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access@7.21.5: + resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/helper-string-parser@7.21.5: + resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.21.0 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.1 + '@babel/types': 7.22.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.22.3: + resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.1 + '@babel/types': 7.22.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.22.3: + resolution: {integrity: sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.3 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.1) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.1) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.3 + '@babel/core': 7.22.1 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.1) + dev: true + + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.1) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.1): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.1): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.1): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.22.1): + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.1): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.1): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.1): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.1): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.1): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.1): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.1) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-classes@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/template': 7.21.9 + dev: true + + /@babel/plugin-transform-destructuring@7.21.3(@babel/core@7.22.1): + resolution: {integrity: sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-for-of@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-function-name': 7.21.0 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-literals@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.22.1): + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-module-transforms': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-module-transforms': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-simple-access': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.22.1): + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-module-transforms': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.22.1): + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-replace-supers': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.22.1): + resolution: {integrity: sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.22.1): + resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.22.1): + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-regenerator@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-spread@7.20.7(@babel/core@7.22.1): + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.22.1): + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.22.1): + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-create-regexp-features-plugin': 7.21.8(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/preset-env@7.21.5(@babel/core@7.22.1): + resolution: {integrity: sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.3 + '@babel/core': 7.22.1 + '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-proposal-private-property-in-object': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.1) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.1) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.1) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.22.1) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.1) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.1) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.1) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.1) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.1) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.1) + '@babel/plugin-transform-arrow-functions': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-transform-computed-properties': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.22.1) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-for-of': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.22.1) + '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.22.1) + '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.22.1) + '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.22.1) + '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-regenerator': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.22.1) + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.22.1) + '@babel/plugin-transform-unicode-escapes': 7.21.5(@babel/core@7.22.1) + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.22.1) + '@babel/preset-modules': 0.1.5(@babel/core@7.22.1) + '@babel/types': 7.22.3 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.22.1) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.22.1) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.22.1) + core-js-compat: 3.30.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.5(@babel/core@7.22.1): + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.1) + '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.22.1) + '@babel/types': 7.22.3 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.21.5: + resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/runtime@7.22.3: + resolution: {integrity: sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/template@7.21.9: + resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.22.3 + '@babel/types': 7.22.3 + dev: true + + /@babel/traverse@7.22.1: + resolution: {integrity: sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.22.3 + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.22.3 + '@babel/types': 7.22.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.22.3: + resolution: {integrity: sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@chakra-ui/accordion@2.2.0(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0): + resolution: {integrity: sha512-2IK1iLzTZ22u8GKPPPn65mqJdZidn4AvkgAbv17ISdKA07VHJ8jSd4QF1T5iCXjKfZ0XaXozmhP4kDhjwF2IbQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.14(react@18.2.0) + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.0.16(framer-motion@10.12.16)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/alert@2.1.0(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-OcfHwoXI5VrmM+tHJTHT62Bx6TfyfCxSa0PWUOueJzSyhlUOKBND5we6UtrOB7D0jwX45qKKEDJOLG5yCG21jQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/anatomy@2.1.1: + resolution: {integrity: sha512-LUHAoqJAgxAqmyckG5bUpBrfEo1FleEyY+1A8hkWciy58gZ+h3GoY9oBpHcdo7XdHPpy3G+3hieK/7i9NLwxAw==} + dev: false + + /@chakra-ui/anatomy@2.1.2: + resolution: {integrity: sha512-pKfOS/mztc4sUXHNc8ypJ1gPWSolWT770jrgVRfolVbYlki8y5Y+As996zMF6k5lewTu6j9DQequ7Cc9a69IVQ==} + dev: false + + /@chakra-ui/avatar@2.2.11(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-CJFkoWvlCTDJTUBrKA/aVyG5Zz6TBEIVmmsJtqC6VcQuVDTxkWod8ruXnjb0LT2DUveL7xR5qZM9a5IXcsH3zg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/image': 2.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breadcrumb@2.1.5(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-p3eQQrHQBkRB69xOmNyBJqEdfCrMt+e0eOH+Pm/DjFWfIVIbnIaFbmDCeWClqlLa21Ypc6h1hR9jEmvg8kmOog==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breakpoint-utils@2.0.8: + resolution: {integrity: sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + dev: false + + /@chakra-ui/button@2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-E3c99+lOm6ou4nQVOTLkG+IdOPMjsQK+Qe7VyP8A/xeAMFONuibrWPRPpprr4ZkB4kEoLMfNuyH2+aEza3ScUA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/card@2.1.6(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-fFd/WAdRNVY/WOSQv4skpy0WeVhhI0f7dTY1Sm0jVl0KLmuP/GnpsWtKtqWjNcV00K963EXDyhlk6+9oxbP4gw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/checkbox@2.2.15(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-Ju2yQjX8azgFa5f6VLPuwdGYobZ+rdbcYqjiks848JvPc75UsPhpS05cb4XlrKT7M16I8txDA5rPJdqqFicHCA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/visually-hidden': 2.0.15(@chakra-ui/system@2.5.8)(react@18.2.0) + '@zag-js/focus-visible': 0.2.2 + react: 18.2.0 + dev: false + + /@chakra-ui/clickable@2.0.14(react@18.2.0): + resolution: {integrity: sha512-jfsM1qaD74ZykLHmvmsKRhDyokLUxEfL8Il1VoZMNX5RBI0xW/56vKpLTFF/v/+vLPLS+Te2cZdD4+2O+G6ulA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.2.0 + dev: false + + /@chakra-ui/close-button@2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-05YPXk456t1Xa3KpqTrvm+7smx+95dmaPiwjiBN3p7LHUQVHJd8ZXSDB0V+WKi419k3cVQeJUdU/azDO2f40sw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/color-mode@2.1.12(react@18.2.0): + resolution: {integrity: sha512-sYyfJGDoJSLYO+V2hxV9r033qhte5Nw/wAn5yRGGZnEEN1dKPEdWQ3XZvglWSDTNd0w9zkoH2w6vP4FBBYb/iw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/control-box@2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-FEyrU4crxati80KUF/+1Z1CU3eZK6Sa0Yv7Z/ydtz9/tvGblXW9NFanoomXAOvcIFLbaLQPPATm9Gmpr7VG05A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/counter@2.0.14(react@18.2.0): + resolution: {integrity: sha512-KxcSRfUbb94dP77xTip2myoE7P2HQQN4V5fRJmNAGbzcyLciJ+aDylUU/UxgNcEjawUp6Q242NbWb1TSbKoqog==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.2.0 + dev: false + + /@chakra-ui/css-reset@2.1.2(@emotion/react@11.11.0)(react@18.2.0): + resolution: {integrity: sha512-4ySTLd+3iRpp4lX0yI9Yo2uQm2f+qwYGNOZF0cNcfN+4UJCd3IsaWxYRR/Anz+M51NVldZbYzC+TEYC/kpJc4A==} + peerDependencies: + '@emotion/react': '>=10.0.35' + react: '>=18' + dependencies: + '@emotion/react': 11.11.0(@types/react@18.2.7)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/descendant@3.0.14(react@18.2.0): + resolution: {integrity: sha512-+Ahvp9H4HMpfScIv9w1vaecGz7qWAaK1YFHHolz/SIsGLaLGlbdp+5UNabQC7L6TUnzzJDQDxzwif78rTD7ang==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/dom-utils@2.1.0: + resolution: {integrity: sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==} + dev: false + + /@chakra-ui/editable@3.0.0(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-q/7C/TM3iLaoQKlEiM8AY565i9NoaXtS6N6N4HWIEL5mZJPbMeHKxrCHUZlHxYuQJqFOGc09ZPD9fAFx1GkYwQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/event-utils@2.0.8: + resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} + dev: false + + /@chakra-ui/focus-lock@2.0.17(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-V+m4Ml9E8QY66DUpHX/imInVvz5XJ5zx59Tl0aNancXgeVY1Rt/ZdxuZdPLCAmPC/MF3GUOgnEA+WU8i+VL6Gw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + react: 18.2.0 + react-focus-lock: 2.9.4(@types/react@18.2.7)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/form-control@2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-I0a0jG01IAtRPccOXSNugyRdUAe8Dy40ctqedZvznMweOXzbMCF1m+sHPLdWeWC/VI13VoAispdPY0/zHOdjsQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/hooks@2.2.0(react@18.2.0): + resolution: {integrity: sha512-GZE64mcr20w+3KbCUPqQJHHmiFnX5Rcp8jS3YntGA4D5X2qU85jka7QkjfBwv/iduZ5Ei0YpCMYGCpi91dhD1Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + compute-scroll-into-view: 1.0.20 + copy-to-clipboard: 3.3.3 + react: 18.2.0 + dev: false + + /@chakra-ui/icon@3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-RpA1X5Ptz8Mt39HSyEIW1wxAz2AXyf9H0JJ5HVx/dBdMZaGMDJ0HyyPBVci0m4RCoJuyG1HHG/DXJaVfUTVAeg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/icons@2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-0A6U1ZBZhLIxh3QgdjuvIEhAZi3B9v8g6Qvlfa3mu6vSnXQn2CHBZXmJwxpXxO40NK/2gj/gKXrLeUaFR6H/Qw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/image@2.0.16(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-iFypk1slgP3OK7VIPOtkB0UuiqVxNalgA59yoRM43xLIeZAEZpKngUVno4A2kFS61yKN0eIY4hXD3Xjm+25EJA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/input@2.0.22(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-dCIC0/Q7mjZf17YqgoQsnXn0bus6vgriTRn8VmxOc+WcVl+KBSTBWujGrS5yu85WIFQ0aeqQvziDnDQybPqAbA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/layout@2.2.0(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-WvfsWQjqzbCxv7pbpPGVKxj9eQr7MC2i37ag4Wn7ClIG7uPuwHYTUWOnjnu27O3H/zA4cRVZ4Hs3GpSPbojZFQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/lazy-utils@2.0.5: + resolution: {integrity: sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==} + dev: false + + /@chakra-ui/live-region@2.0.13(react@18.2.0): + resolution: {integrity: sha512-Ja+Slk6ZkxSA5oJzU2VuGU7TpZpbMb/4P4OUhIf2D30ctmIeXkxTWw1Bs1nGJAVtAPcGS5sKA+zb89i8g+0cTQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/media-query@3.2.12(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-8pSLDf3oxxhFrhd40rs7vSeIBfvOmIKHA7DJlGUC/y+9irD24ZwgmCtFnn+y3gI47hTJsopbSX+wb8nr7XPswA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/react-env': 3.0.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/menu@2.1.15(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0): + resolution: {integrity: sha512-+1fh7KBKZyhy8wi7Q6nQAzrvjM6xggyhGMnSna0rt6FJVA2jlfkjb5FozyIVPnkfJKjkKd8THVhrs9E7pHNV/w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.14(react@18.2.0) + '@chakra-ui/descendant': 3.0.14(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.0.14(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.0.9(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.0.11(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-outside-click': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.0.16(framer-motion@10.12.16)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/modal@2.2.12(@chakra-ui/system@2.5.8)(@types/react@18.2.7)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-F1nNmYGvyqlmxidbwaBM3y57NhZ/Qeyc8BE9tb1FL1v9nxQhkfrPvMQ9miK0O1syPN6aZ5MMj+uD3AsRFE+/tA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/focus-lock': 2.0.17(@types/react@18.2.7)(react@18.2.0) + '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.0.16(framer-motion@10.12.16)(react@18.2.0) + aria-hidden: 1.2.3 + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.6(@types/react@18.2.7)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/number-input@2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-HDaITvtMEqOauOrCPsARDxKD9PSHmhWywpcyCSOX0lMe4xx2aaGhU0QQFhsJsykj8Er6pytMv6t0KZksdDv3YA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/counter': 2.0.14(react@18.2.0) + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-interval': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/number-utils@2.0.7: + resolution: {integrity: sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==} + dev: false + + /@chakra-ui/object-utils@2.1.0: + resolution: {integrity: sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==} + dev: false + + /@chakra-ui/pin-input@2.0.20(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-IHVmerrtHN8F+jRB3W1HnMir1S1TUCWhI7qDInxqPtoRffHt6mzZgLZ0izx8p1fD4HkW4c1d4/ZLEz9uH9bBRg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.14(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popover@2.1.12(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0): + resolution: {integrity: sha512-Corh8trA1f3ydcMQqomgSvYNNhAlpxiBpMY2sglwYazOJcueHA8CI05cJVD0T/wwoTob7BShabhCGFZThn61Ng==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.0.14(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.0.9(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.0.11(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popper@3.0.14(react@18.2.0): + resolution: {integrity: sha512-RDMmmSfjsmHJbVn2agDyoJpTbQK33fxx//njwJdeyM0zTG/3/4xjI/Cxru3acJ2Y+1jFGmPqhO81stFjnbtfIw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@popperjs/core': 2.11.8 + react: 18.2.0 + dev: false + + /@chakra-ui/portal@2.0.16(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bVID0qbQ0l4xq38LdqAN4EKD4/uFkDnXzFwOlviC9sl0dNhzICDb1ltuH/Adl1d2HTMqyN60O3GO58eHy7plnQ==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/progress@2.1.6(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-hHh5Ysv4z6bK+j2GJbi/FT9CVyto2PtNUNwBmr3oNMVsoOUMoRjczfXvvYqp0EHr9PCpxqrq7sRwgQXUzhbDSw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/provider@2.3.0(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vKgmjoLVS3NnHW8RSYwmhhda2ZTi3fQc1egkYSVwngGky4CsN15I+XDhxJitVd66H41cjah/UNJyoeq7ACseLA==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/css-reset': 2.1.2(@emotion/react@11.11.0)(react@18.2.0) + '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-env': 3.0.0(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.0(@types/react@18.2.7)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.0)(@types/react@18.2.7)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/radio@2.0.22(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-GsQ5WAnLwivWl6gPk8P1x+tCcpVakCt5R5T0HumF7DGPXKdJbjS+RaFySrbETmyTJsKY4QrfXn+g8CWVrMjPjw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@zag-js/focus-visible': 0.2.2 + react: 18.2.0 + dev: false + + /@chakra-ui/react-children-utils@2.0.6(react@18.2.0): + resolution: {integrity: sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-context@2.0.8(react@18.2.0): + resolution: {integrity: sha512-tRTKdn6lCTXM6WPjSokAAKCw2ioih7Eg8cNgaYRSwKBck8nkz9YqxgIIEj3dJD7MGtpl24S/SNI98iRWkRwR/A==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-env@3.0.0(react@18.2.0): + resolution: {integrity: sha512-tfMRO2v508HQWAqSADFrwZgR9oU10qC97oV6zGbjHh9ALP0/IcFR+Bi71KRTveDTm85fMeAzZYGj57P3Dsipkw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-types@2.0.7(react@18.2.0): + resolution: {integrity: sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-animation-state@2.0.9(react@18.2.0): + resolution: {integrity: sha512-WFoD5OG03PBmzJCoRwM8rVfU442AvKBPPgA0yGGlKioH29OGuX7W78Ml+cYdXxonTiB03YSRZzUwaUnP4wAy1Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-callback-ref@2.0.7(react@18.2.0): + resolution: {integrity: sha512-YjT76nTpfHAK5NxplAlZsQwNju5KmQExnqsWNPFeOR6vvbC34+iPSTr+r91i1Hdy7gBSbevsOsd5Wm6RN3GuMw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-controllable-state@2.0.8(react@18.2.0): + resolution: {integrity: sha512-F7rdCbLEmRjwwODqWZ3y+mKgSSHPcLQxeUygwk1BkZPXbKkJJKymOIjIynil2cbH7ku3hcSIWRvuhpCcfQWJ7Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-disclosure@2.0.8(react@18.2.0): + resolution: {integrity: sha512-2ir/mHe1YND40e+FyLHnDsnDsBQPwzKDLzfe9GZri7y31oU83JSbHdlAXAhp3bpjohslwavtRCp+S/zRxfO9aQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-event-listener@2.0.7(react@18.2.0): + resolution: {integrity: sha512-4wvpx4yudIO3B31pOrXuTHDErawmwiXnvAN7gLEOVREi16+YGNcFnRJ5X5nRrmB7j2MDUtsEDpRBFfw5Z9xQ5g==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-effect@2.0.11(react@18.2.0): + resolution: {integrity: sha512-/zadgjaCWD50TfuYsO1vDS2zSBs2p/l8P2DPEIA8FuaowbBubKrk9shKQDWmbfDU7KArGxPxrvo+VXvskPPjHw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-on-pointer-down@2.0.6(react@18.2.0): + resolution: {integrity: sha512-OigXiLRVySn3tyVqJ/rn57WGuukW8TQe8fJYiLwXbcNyAMuYYounvRxvCy2b53sQ7QIZamza0N0jhirbH5FNoQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-interval@2.0.5(react@18.2.0): + resolution: {integrity: sha512-1nbdwMi2K87V6p5f5AseOKif2CkldLaJlq1TOqaPRwb7v3aU9rltBtYdf+fIyuHSToNJUV6wd9budCFdLCl3Fg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-latest-ref@2.0.5(react@18.2.0): + resolution: {integrity: sha512-3mIuFzMyIo3Ok/D8uhV9voVg7KkrYVO/pwVvNPJOHsDQqCA6DpYE4WDsrIx+fVcwad3Ta7SupexR5PoI+kq6QQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-merge-refs@2.0.7(react@18.2.0): + resolution: {integrity: sha512-zds4Uhsc+AMzdH8JDDkLVet9baUBgtOjPbhC5r3A0ZXjZvGhCztFAVE3aExYiVoMPoHLKbLcqvCWE6ioFKz1lw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-outside-click@2.1.0(react@18.2.0): + resolution: {integrity: sha512-JanCo4QtWvMl9ZZUpKJKV62RlMWDFdPCE0Q64a7eWTOQgWWcpyBW7TOYRunQTqrK30FqkYFJCOlAWOtn+6Rw7A==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-pan-event@2.0.9(react@18.2.0): + resolution: {integrity: sha512-xu35QXkiyrgsHUOnctl+SwNcwf9Rl62uYE5y8soKOZdBm8E+FvZIt2hxUzK1EoekbJCMzEZ0Yv1ZQCssVkSLaQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/event-utils': 2.0.8 + '@chakra-ui/react-use-latest-ref': 2.0.5(react@18.2.0) + framesync: 6.1.2 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-previous@2.0.5(react@18.2.0): + resolution: {integrity: sha512-BIZgjycPE4Xr+MkhKe0h67uHXzQQkBX/u5rYPd65iMGdX1bCkbE0oorZNfOHLKdTmnEb4oVsNvfN6Rfr+Mnbxw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-safe-layout-effect@2.0.5(react@18.2.0): + resolution: {integrity: sha512-MwAQBz3VxoeFLaesaSEN87reVNVbjcQBDex2WGexAg6hUB6n4gc1OWYH/iXp4tzp4kuggBNhEHkk9BMYXWfhJQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-size@2.0.10(react@18.2.0): + resolution: {integrity: sha512-fdIkH14GDnKQrtQfxX8N3gxbXRPXEl67Y3zeD9z4bKKcQUAYIMqs0MsPZY+FMpGQw8QqafM44nXfL038aIrC5w==} + peerDependencies: + react: '>=18' + dependencies: + '@zag-js/element-size': 0.3.2 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-timeout@2.0.5(react@18.2.0): + resolution: {integrity: sha512-QqmB+jVphh3h/CS60PieorpY7UqSPkrQCB7f7F+i9vwwIjtP8fxVHMmkb64K7VlzQiMPzv12nlID5dqkzlv0mw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-update-effect@2.0.7(react@18.2.0): + resolution: {integrity: sha512-vBM2bmmM83ZdDtasWv3PXPznpTUd+FvqBC8J8rxoRmvdMEfrxTiQRBJhiGHLpS9BPLLPQlosN6KdFU97csB6zg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-utils@2.0.12(react@18.2.0): + resolution: {integrity: sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/utils': 2.0.15 + react: 18.2.0 + dev: false + + /@chakra-ui/react@2.7.0(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(@types/react@18.2.7)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+FcUFQMsPfhWuM9Iu7uqufwwhmHN2IX6FWsBixYGOalO86dpgETsILMZP9PuWfgj7GpWiy2Dum6HXekh0Tk2Mg==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/accordion': 2.2.0(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0) + '@chakra-ui/alert': 2.1.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/avatar': 2.2.11(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/breadcrumb': 2.1.5(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/button': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/card': 2.1.6(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/checkbox': 2.2.15(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/close-button': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/control-box': 2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/counter': 2.0.14(react@18.2.0) + '@chakra-ui/css-reset': 2.1.2(@emotion/react@11.11.0)(react@18.2.0) + '@chakra-ui/editable': 3.0.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/focus-lock': 2.0.17(@types/react@18.2.7)(react@18.2.0) + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/hooks': 2.2.0(react@18.2.0) + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/image': 2.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/input': 2.0.22(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/layout': 2.2.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/live-region': 2.0.13(react@18.2.0) + '@chakra-ui/media-query': 3.2.12(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/menu': 2.1.15(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0) + '@chakra-ui/modal': 2.2.12(@chakra-ui/system@2.5.8)(@types/react@18.2.7)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/number-input': 2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/pin-input': 2.0.20(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/popover': 2.1.12(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0) + '@chakra-ui/popper': 3.0.14(react@18.2.0) + '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/progress': 2.1.6(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/provider': 2.3.0(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/radio': 2.0.22(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-env': 3.0.0(react@18.2.0) + '@chakra-ui/select': 2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/skeleton': 2.0.24(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/slider': 2.0.25(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/spinner': 2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/stat': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/stepper': 2.2.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/styled-system': 2.9.1 + '@chakra-ui/switch': 2.0.27(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/table': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/tabs': 2.1.9(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/tag': 3.0.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/textarea': 2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/theme': 3.1.2(@chakra-ui/styled-system@2.9.1) + '@chakra-ui/theme-utils': 2.0.18 + '@chakra-ui/toast': 6.1.4(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/tooltip': 2.2.9(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.0.16(framer-motion@10.12.16)(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + '@chakra-ui/visually-hidden': 2.0.15(@chakra-ui/system@2.5.8)(react@18.2.0) + '@emotion/react': 11.11.0(@types/react@18.2.7)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.0)(@types/react@18.2.7)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/select@2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-eAlFh+JhwtJ17OrB6fO6gEAGOMH18ERNrXLqWbYLrs674Le7xuREgtuAYDoxUzvYXYYTTdOJtVbcHGriI3o6rA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/shared-utils@2.0.5: + resolution: {integrity: sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==} + dev: false + + /@chakra-ui/skeleton@2.0.24(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-1jXtVKcl/jpbrJlc/TyMsFyI651GTXY5ma30kWyTXoby2E+cxbV6OR8GB/NMZdGxbQBax8/VdtYVjI0n+OBqWA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/media-query': 3.2.12(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-use-previous': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/slider@2.0.25(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-FnWSi0AIXP+9sHMCPboOKGqm902k8dJtsJ7tu3D0AcKkE62WtYLZ2sTqvwJxCfSl4KqVI1i571SrF9WadnnJ8w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-latest-ref': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-pan-event': 2.0.9(react@18.2.0) + '@chakra-ui/react-use-size': 2.0.10(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/spinner@2.0.13(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-T1/aSkVpUIuiYyrjfn1+LsQEG7Onbi1UE9ccS/evgf61Dzy4GgTXQUnDuWFSgpV58owqirqOu6jn/9eCwDlzlg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/stat@2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-wKyfBqhVlIs9bkSerUc6F9KJMw0yTIEKArW7dejWwzToCLPr47u+CtYO6jlJHV6lRvkhi4K4Qc6pyvtJxZ3VpA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/stepper@2.2.0(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-8ZLxV39oghSVtOUGK8dX8Z6sWVSQiKVmsK4c3OQDa8y2TvxP0VtFD0Z5U1xJlOjQMryZRWhGj9JBc3iQLukuGg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/styled-system@2.9.1: + resolution: {integrity: sha512-jhYKBLxwOPi9/bQt9kqV3ELa/4CjmNNruTyXlPp5M0v0+pDMUngPp48mVLoskm9RKZGE0h1qpvj/jZ3K7c7t8w==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + csstype: 3.1.1 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/switch@2.0.27(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react@18.2.0): + resolution: {integrity: sha512-z76y2fxwMlvRBrC5W8xsZvo3gP+zAEbT3Nqy5P8uh/IPd5OvDsGeac90t5cgnQTyxMOpznUNNK+1eUZqtLxWnQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/checkbox': 2.2.15(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/system@2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0): + resolution: {integrity: sha512-Vy8UUaCxikOzOGE54IP8tKouvU38rEYU1HCSquU9+oe7Jd70HaiLa4vmUKvHyMUmxkOzDHIkgZLbVQCubSnN5w==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + dependencies: + '@chakra-ui/color-mode': 2.1.12(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/styled-system': 2.9.1 + '@chakra-ui/theme-utils': 2.0.18 + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.0(@types/react@18.2.7)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.0)(@types/react@18.2.7)(react@18.2.0) + react: 18.2.0 + react-fast-compare: 3.2.1 + dev: false + + /@chakra-ui/table@2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-OScheTEp1LOYvTki2NFwnAYvac8siAhW9BI5RKm5f5ORL2gVJo4I72RUqE0aKe1oboxgm7CYt5afT5PS5cG61A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tabs@2.1.9(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-Yf8e0kRvaGM6jfkJum0aInQ0U3ZlCafmrYYni2lqjcTtThqu+Yosmo3iYlnullXxCw5MVznfrkb9ySvgQowuYg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.14(react@18.2.0) + '@chakra-ui/descendant': 3.0.14(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tag@3.0.0(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-YWdMmw/1OWRwNkG9pX+wVtZio+B89odaPj6XeMn5nfNN8+jyhIEpouWv34+CO9G0m1lupJTxPSfgLAd7cqXZMA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/textarea@2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-adJk+qVGsFeJDvfn56CcJKKse8k7oMGlODrmpnpTdF+xvlsiTM+1GfaJvgNSpHHuQFdz/A0z1uJtfGefk0G2ZA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/theme-tools@2.0.18(@chakra-ui/styled-system@2.9.1): + resolution: {integrity: sha512-MbiRuXb2tb41FbnW41zhsYYAU0znlpfYZnu0mxCf8U2otCwPekJCfESUGYypjq4JnydQ7TDOk+Kz/Wi974l4mw==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.1.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.1 + color2k: 2.0.2 + dev: false + + /@chakra-ui/theme-utils@2.0.18: + resolution: {integrity: sha512-aSbkUUiFpc1NHC7lQdA6uYlr6EcZFXz6b4aJ7VRDpqTiywvqYnvfGzhmsB0z94vgtS9qXc6HoIwBp25jYGV2MA==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.1 + '@chakra-ui/theme': 3.1.2(@chakra-ui/styled-system@2.9.1) + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/theme@3.1.2(@chakra-ui/styled-system@2.9.1): + resolution: {integrity: sha512-ebUXMS3LZw2OZxEQNYaFw3/XuA3jpyprhS/frjHMvZKSOaCjMW+c9z25S0jp1NnpQff08VGI8EWbyVZECXU1QA==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.8.0' + dependencies: + '@chakra-ui/anatomy': 2.1.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.1 + '@chakra-ui/theme-tools': 2.0.18(@chakra-ui/styled-system@2.9.1) + dev: false + + /@chakra-ui/toast@6.1.4(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wAcPHq/N/ar4jQxkUGhnsbp+lx2eKOpHxn1KaWdHXUkqCNUA1z09fvBsoMyzObSiiwbDuQPZG5RxsOhzfPZX4Q==} + peerDependencies: + '@chakra-ui/system': 2.5.8 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/alert': 2.1.0(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/close-button': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) + '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-context': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-timeout': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.1 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/theme': 3.1.2(@chakra-ui/styled-system@2.9.1) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/tooltip@2.2.9(@chakra-ui/system@2.5.8)(framer-motion@10.12.16)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ZoksllanqXRUyMDaiogvUVJ+RdFXwZrfrwx3RV22fejYZIQ602hZ3QHtHLB5ZnKFLbvXKMZKM23HxFTSb0Ytqg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/popper': 3.0.14(react@18.2.0) + '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/transition@2.0.16(framer-motion@10.12.16)(react@18.2.0): + resolution: {integrity: sha512-E+RkwlPc3H7P1crEXmXwDXMB2lqY2LLia2P5siQ4IEnRWIgZXlIw+8Em+NtHNgusel2N+9yuB0wT9SeZZeZ3CQ==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + framer-motion: 10.12.16(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/utils@2.0.15: + resolution: {integrity: sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==} + dependencies: + '@types/lodash.mergewith': 4.6.7 + css-box-model: 1.2.1 + framesync: 6.1.2 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/visually-hidden@2.0.15(@chakra-ui/system@2.5.8)(react@18.2.0): + resolution: {integrity: sha512-WWULIiucYRBIewHKFA7BssQ2ABLHLVd9lrUo3N3SZgR0u4ZRDDVEUNOy+r+9ruDze8+36dGbN9wsN1IdELtdOw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.5.8(@emotion/react@11.11.0)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} + dependencies: + '@babel/helper-module-imports': 7.21.4 + '@babel/runtime': 7.21.5 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.2 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + dev: false + + /@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + dev: false + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@emotion/is-prop-valid@0.8.8: + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + requiresBuild: true + dependencies: + '@emotion/memoize': 0.7.4 + dev: false + optional: true + + /@emotion/is-prop-valid@1.2.1: + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + + /@emotion/memoize@0.7.4: + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + dev: false + optional: true + + /@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + dev: false + + /@emotion/react@11.11.0(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.3 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.2.7 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize@1.1.2: + resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==} + dependencies: + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 + csstype: 3.1.1 + dev: false + + /@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} + dev: false + + /@emotion/styled@11.11.0(@emotion/react@11.11.0)(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.3 + '@emotion/babel-plugin': 11.11.0 + '@emotion/is-prop-valid': 1.2.1 + '@emotion/react': 11.11.0(@types/react@18.2.7)(react@18.2.0) + '@emotion/serialize': 1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@types/react': 18.2.7 + react: 18.2.0 + dev: false + + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} + dev: false + + /@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + dev: false + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.41.0 + eslint-visitor-keys: 3.4.1 + dev: true + + /@eslint-community/regexpp@4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.3: + resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.2 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.41.0: + resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/expect-utils@29.5.0: + resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + dev: true + + /@jest/schemas@29.4.3: + resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.25.24 + dev: true + + /@jest/types@29.5.0: + resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 20.2.5 + '@types/yargs': 17.0.24 + chalk: 4.1.2 + dev: true + + /@jixun/libparakeet@0.2.1: + resolution: {integrity: sha512-OZRx72yKfRs8ZRZcNPAOBEAz9/v3jXK5V6ue4WomcW6HhNZy7JjdXZOF7lHqMgfB47d1CyLNJbaT0r0tiKGjbA==} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.3: + resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@polka/url@1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@reduxjs/toolkit@1.9.5(react-redux@8.0.5)(react@18.2.0): + resolution: {integrity: sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.0.2 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + dependencies: + immer: 9.0.21 + react: 18.2.0 + react-redux: 8.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + redux: 4.2.1 + redux-thunk: 2.4.2(redux@4.2.1) + reselect: 4.1.8 + dev: false + + /@rollup/plugin-babel@5.3.1(@babel/core@7.22.1)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-module-imports': 7.21.4 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.2 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace@2.4.2(rollup@2.79.1): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace@5.0.2(rollup@2.79.1): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + magic-string: 0.27.0 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-virtual@3.0.1(rollup@2.79.1): + resolution: {integrity: sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@5.0.2(rollup@2.79.1): + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@sinclair/typebox@0.25.24: + resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} + dev: true + + /@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.8 + dev: true + + /@swc/core-darwin-arm64@1.3.60: + resolution: {integrity: sha512-oCDKWGdSO1WyErduGfiITRDoq7ZBt9PXETlhi8BGKH/wCc/3mfSNI9wXAg3Stn8mrT0lUJtdsnwMI/eZp6dK+A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.60: + resolution: {integrity: sha512-pcE/1oUlmN/BkKndOPtViqTkaM5pomagXATo+Muqn4QNMnkSOEVcmF9T3Lr3nB1A7O/fwCew3/aHwZ5B2TZ1tA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.60: + resolution: {integrity: sha512-Moc+86SWcbPr06PaQYUb0Iwli425F7QgjwTCNEPYA6OYUsjaJhXMaHViW2WdGIXue2+eaQbg31BHQd14jXcoBg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.60: + resolution: {integrity: sha512-pPGZrTgSXBvp6IrXPXz8UJr82AElf8hMuK4rNHmLGDCqrWnRIFLUpiAsc2WCFIgdwqitZNQoM+F2vbceA/bkKg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.60: + resolution: {integrity: sha512-HSFQaVUkjWYNsQeymAQ3IPX3csRQvHe6MFyqPfvCCQ4dFlxPvlS7VvNaLnGG+ZW1ek7Lc+hEX+4NGzZKsxDIHA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.60: + resolution: {integrity: sha512-WJt/X6HHM3/TszckRA7UKMXec3FHYsB9xswQbIYxN4bfTQodu3Rc8bmpHYtFO7ScMLrhY+RljHLK6wclPvaEXw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.60: + resolution: {integrity: sha512-DGGBqAPUXy/aPMBKokL3osZC9kM97HchiDPuprzwgTMP40YQ3hGCzNJ5jK7sOk9Tc4PEdZ2Igfr9sBHmCrxxQw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.60: + resolution: {integrity: sha512-wQg/BZPJvp5WpUbsBp7VHjhUh0DfYOPhP6dH67WO9QQ07+DvOk2DR2Bfh0z0ts1k7H/FsAqExWtTDCWMCRJiRQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.60: + resolution: {integrity: sha512-nqkd0XIVyGbnBwAxP4GIfx6n45/hAPETpmQYpDSGnucOKFJfvGdFGL81GDG1acPCq/oFtR3tIyTbPpKmJ0N6xQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.60: + resolution: {integrity: sha512-ouw+s22i9PYQpSE7Xc+ZittEyA87jElXABesviSpP+jgHt10sM5KFUpVAeV8DRlxJCXMJJ5AhOdCf4TAtFr+6A==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.60: + resolution: {integrity: sha512-dWfic7sVjnrStzGcMWakHd2XPau8UXGPmFUTkx6xGX+DOVtfAQVzG6ZW7ohw/yNcTqI05w6Ser26XMTMGBgXdA==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.60 + '@swc/core-darwin-x64': 1.3.60 + '@swc/core-linux-arm-gnueabihf': 1.3.60 + '@swc/core-linux-arm64-gnu': 1.3.60 + '@swc/core-linux-arm64-musl': 1.3.60 + '@swc/core-linux-x64-gnu': 1.3.60 + '@swc/core-linux-x64-musl': 1.3.60 + '@swc/core-win32-arm64-msvc': 1.3.60 + '@swc/core-win32-ia32-msvc': 1.3.60 + '@swc/core-win32-x64-msvc': 1.3.60 + dev: true + + /@testing-library/dom@9.3.0: + resolution: {integrity: sha512-Dffe68pGwI6WlLRYR2I0piIkyole9cSBH5jGQKCGMRpHW5RHCqAUaqc2Kv0tUyd4dU4DLPKhJIjyKOnjv4tuUw==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/runtime': 7.22.3 + '@types/aria-query': 5.0.1 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@testing-library/jest-dom@5.16.5: + resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@adobe/css-tools': 4.2.0 + '@babel/runtime': 7.22.3 + '@types/testing-library__jest-dom': 5.14.6 + aria-query: 5.1.3 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.5.16 + lodash: 4.17.21 + redent: 3.0.0 + dev: true + + /@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.22.3 + '@testing-library/dom': 9.3.0 + '@types/react-dom': 18.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.0): + resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + dependencies: + '@testing-library/dom': 9.3.0 + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@types/aria-query@5.0.1: + resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + dev: true + + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.5 + dev: true + + /@types/chai@4.3.5: + resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + dev: true + + /@types/emscripten@1.39.6: + resolution: {integrity: sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==} + dev: true + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: true + + /@types/hast@2.3.4: + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/hoist-non-react-statics@3.3.1: + resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} + dependencies: + '@types/react': 18.2.6 + hoist-non-react-statics: 3.3.2 + dev: false + + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest@29.5.1: + resolution: {integrity: sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==} + dependencies: + expect: 29.5.0 + pretty-format: 29.5.0 + dev: true + + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + dev: true + + /@types/lodash.mergewith@4.6.7: + resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==} + dependencies: + '@types/lodash': 4.14.195 + dev: false + + /@types/lodash@4.14.195: + resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==} + dev: false + + /@types/node@20.2.5: + resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} + dev: true + + /@types/parse-json@4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: false + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-dom@18.2.4: + resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} + dependencies: + '@types/react': 18.2.7 + + /@types/react-syntax-highlighter@15.5.7: + resolution: {integrity: sha512-bo5fEO5toQeyCp0zVHBeggclqf5SQ/Z5blfFmjwO5dkMVGPgmiwZsJh9nu/Bo5L7IHTuGWrja6LxJVE2uB5ZrQ==} + dependencies: + '@types/react': 18.2.6 + dev: true + + /@types/react@18.2.6: + resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.1 + + /@types/react@18.2.7: + resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.2.5 + dev: true + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + dev: true + + /@types/sql.js@1.4.4: + resolution: {integrity: sha512-6EWU2wfiBtzgTy18WQoXZAGTreBjhZcBCfD8CDvyI1Nj0a4KNDDt41IYeAZ40cRUdfqWHb7VGx7t6nK0yBOI5A==} + dependencies: + '@types/emscripten': 1.39.6 + '@types/node': 20.2.5 + dev: true + + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/testing-library__jest-dom@5.14.6: + resolution: {integrity: sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA==} + dependencies: + '@types/jest': 29.5.1 + dev: true + + /@types/trusted-types@2.0.3: + resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} + dev: true + + /@types/unist@2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: false + + /@types/use-sync-external-store@0.0.3: + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + dev: false + + /@types/yargs-parser@21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs@17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@typescript-eslint/eslint-plugin@5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@5.0.4): + resolution: {integrity: sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.7(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.7 + '@typescript-eslint/type-utils': 5.59.7(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.7(eslint@8.41.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.41.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.1 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.59.7(eslint@8.41.0)(typescript@5.0.4): + resolution: {integrity: sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.7 + '@typescript-eslint/types': 5.59.7 + '@typescript-eslint/typescript-estree': 5.59.7(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.41.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.59.7: + resolution: {integrity: sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.7 + '@typescript-eslint/visitor-keys': 5.59.7 + dev: true + + /@typescript-eslint/type-utils@5.59.7(eslint@8.41.0)(typescript@5.0.4): + resolution: {integrity: sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.7(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.7(eslint@8.41.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.41.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.59.7: + resolution: {integrity: sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.59.7(typescript@5.0.4): + resolution: {integrity: sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.7 + '@typescript-eslint/visitor-keys': 5.59.7 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.1 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.59.7(eslint@8.41.0)(typescript@5.0.4): + resolution: {integrity: sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 5.59.7 + '@typescript-eslint/types': 5.59.7 + '@typescript-eslint/typescript-estree': 5.59.7(typescript@5.0.4) + eslint: 8.41.0 + eslint-scope: 5.1.1 + semver: 7.5.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.59.7: + resolution: {integrity: sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.7 + eslint-visitor-keys: 3.4.1 + dev: true + + /@vitejs/plugin-react@4.0.0(vite@4.3.9): + resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': 7.22.1 + '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.22.1) + '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.22.1) + react-refresh: 0.14.0 + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/coverage-c8@0.31.1(vitest@0.31.1): + resolution: {integrity: sha512-6TkjQpmgYez7e3dbAUoYdRXxWN81BojCmUILJwgCy39uZFG33DsQ0rSRSZC9beAEdCZTpxR63nOvd9hxDQcJ0g==} + peerDependencies: + vitest: '>=0.30.0 <1' + dependencies: + '@ampproject/remapping': 2.2.1 + c8: 7.13.0 + magic-string: 0.30.0 + picocolors: 1.0.0 + std-env: 3.3.3 + vitest: 0.31.1(@vitest/ui@0.31.1)(jsdom@22.1.0)(sass@1.63.3) + dev: true + + /@vitest/expect@0.31.1: + resolution: {integrity: sha512-BV1LyNvhnX+eNYzJxlHIGPWZpwJFZaCcOIzp2CNG0P+bbetenTupk6EO0LANm4QFt0TTit+yqx7Rxd1qxi/SQA==} + dependencies: + '@vitest/spy': 0.31.1 + '@vitest/utils': 0.31.1 + chai: 4.3.7 + dev: true + + /@vitest/runner@0.31.1: + resolution: {integrity: sha512-imWuc82ngOtxdCUpXwtEzZIuc1KMr+VlQ3Ondph45VhWoQWit5yvG/fFcldbnCi8DUuFi+NmNx5ehMUw/cGLUw==} + dependencies: + '@vitest/utils': 0.31.1 + concordance: 5.0.4 + p-limit: 4.0.0 + pathe: 1.1.0 + dev: true + + /@vitest/snapshot@0.31.1: + resolution: {integrity: sha512-L3w5uU9bMe6asrNzJ8WZzN+jUTX4KSgCinEJPXyny0o90fG4FPQMV0OWsq7vrCWfQlAilMjDnOF9nP8lidsJ+g==} + dependencies: + magic-string: 0.30.0 + pathe: 1.1.0 + pretty-format: 27.5.1 + dev: true + + /@vitest/spy@0.31.1: + resolution: {integrity: sha512-1cTpt2m9mdo3hRLDyCG2hDQvRrePTDgEJBFQQNz1ydHHZy03EiA6EpFxY+7ODaY7vMRCie+WlFZBZ0/dQWyssQ==} + dependencies: + tinyspy: 2.1.0 + dev: true + + /@vitest/ui@0.31.1(vitest@0.31.1): + resolution: {integrity: sha512-+JJ2+rvRPAVxFLNE+WJOMzOjxqYPn7V2hl00uNwid6kquD+UHTa716Z7szfNeZMLnHOHv+fxq1UgLCymvVpE5w==} + peerDependencies: + vitest: '>=0.30.1 <1' + dependencies: + '@vitest/utils': 0.31.1 + fast-glob: 3.2.12 + fflate: 0.7.4 + flatted: 3.2.7 + pathe: 1.1.0 + picocolors: 1.0.0 + sirv: 2.0.3 + vitest: 0.31.1(@vitest/ui@0.31.1)(jsdom@22.1.0)(sass@1.63.3) + dev: true + + /@vitest/utils@0.31.1: + resolution: {integrity: sha512-yFyRD5ilwojsZfo3E0BnH72pSVSuLg2356cN1tCEe/0RtDzxTPYwOomIC+eQbot7m6DRy4tPZw+09mB7NkbMmA==} + dependencies: + concordance: 5.0.4 + loupe: 2.3.6 + pretty-format: 27.5.1 + dev: true + + /@zag-js/element-size@0.3.2: + resolution: {integrity: sha512-bVvvigUGvAuj7PCkE5AbzvTJDTw5f3bg9nQdv+ErhVN8SfPPppLJEmmWdxqsRzrHXgx8ypJt/+Ty0kjtISVDsQ==} + dev: false + + /@zag-js/focus-visible@0.2.2: + resolution: {integrity: sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==} + dev: false + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.5.3 + dev: false + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.1 + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /attr-accept@2.2.2: + resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} + engines: {node: '>=4'} + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.21.5 + cosmiconfig: 7.1.0 + resolve: 1.22.2 + dev: false + + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.22.1): + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.3 + '@babel/core': 7.22.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.1) + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.22.1): + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.1) + core-js-compat: 3.30.2 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.22.1): + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.1) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001489 + electron-to-chromium: 1.4.411 + node-releases: 2.0.12 + update-browserslist-db: 1.0.11(browserslist@4.21.5) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /c8@7.13.0: + resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.5 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /caniuse-lite@1.0.30001489: + resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==} + dev: true + + /chai@4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: false + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: false + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: false + + /check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color2k@2.0.2: + resolution: {integrity: sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==} + dev: false + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.3.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.5.1 + well-known-symbols: 2.0.0 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-js-compat@3.30.2: + resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} + dependencies: + browserslist: 4.21.5 + dev: true + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /css-box-model@1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} + dependencies: + tiny-invariant: 1.3.1 + dev: false + + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} + dependencies: + rrweb-cssom: 0.6.0 + dev: true + + /csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + dev: true + + /date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + dependencies: + time-zone: 1.0.0 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal@2.2.1: + resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.1 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true + + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.6 + dev: true + + /electron-to-chromium@1.4.411: + resolution: {integrity: sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-prettier@8.8.0(eslint@8.41.0): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.41.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.41.0 + dev: true + + /eslint-plugin-react-refresh@0.4.1(eslint@8.41.0): + resolution: {integrity: sha512-QgrvtRJkmV+m4w953LS146+6RwEe5waouubFVNLBfOjXJf6MLczjymO8fOcKj9jMS8aKkTCMJqiPu2WEeFI99A==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 8.41.0 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.41.0: + resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.3 + '@eslint/js': 8.41.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + graphemer: 1.4.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.5.2: + resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.1 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /execa@7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /expect@29.5.0: + resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.5.0 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + dev: true + + /fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + dependencies: + format: 0.2.2 + dev: false + + /fflate@0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} + dependencies: + tslib: 2.5.2 + dev: false + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /focus-lock@0.11.6: + resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==} + engines: {node: '>=10'} + dependencies: + tslib: 2.5.3 + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + dev: false + + /framer-motion@10.12.16(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-w/SfWEIWJkYSgRHYBmln7EhcNo31ao8Xexol8lGXf1pR/tlnBtf1HcxoUmEiEh6pacB4/geku5ami53AAQWHMQ==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tslib: 2.5.2 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + dev: false + + /hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + dependencies: + '@types/hast': 2.3.4 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + dev: false + + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /immer@10.0.2: + resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + dev: false + + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false + + /immutable@4.3.0: + resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: false + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.12.1: + resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + dependencies: + has: 1.0.3 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports@3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jake@10.8.6: + resolution: {integrity: sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-diff@29.5.0: + resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-get-type@29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-matcher-utils@29.5.0: + resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.5.0 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-message-util@29.5.0: + resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.21.4 + '@jest/types': 29.5.0 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.5.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-util@29.5.0: + resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 20.2.5 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.2.5 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + cssstyle: 3.0.0 + data-urls: 4.0.0 + decimal.js: 10.4.3 + domexception: 4.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.4 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + ws: 8.13.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /lint-staged@13.2.2: + resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + chalk: 5.2.0 + cli-truncate: 3.1.0 + commander: 10.0.1 + debug: 4.3.4 + execa: 7.1.1 + lilconfig: 2.1.0 + listr2: 5.0.8 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.3 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2@5.0.8: + resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + dependencies: + fault: 1.0.4 + highlight.js: 10.7.3 + dev: false + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.0: + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + dependencies: + blueimp-md5: 2.19.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /mlly@1.3.0: + resolution: {integrity: sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==} + dependencies: + acorn: 8.8.2 + pathe: 1.1.0 + pkg-types: 1.0.3 + ufo: 1.1.2 + dev: true + + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: false + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /node-releases@2.0.12: + resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nwsapi@2.2.4: + resolution: {integrity: sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /pathe@1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.3.0 + pathe: 1.1.0 + dev: true + + /postcss@8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /pretty-bytes@6.1.0: + resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /pretty-format@29.5.0: + resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + dev: false + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + dependencies: + xtend: 4.0.2 + dev: false + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /radash@10.8.1: + resolution: {integrity: sha512-NzYo3XgM9Tzjf5iFPIMG2l5+LSOCi2H7Axe3Ry/1PrhlvuqxUoiLsmcTBtw4CfKtzy5Fzo79STiEj9JZWMfDQg==} + engines: {node: '>=14.18.0'} + dev: false + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /react-clientside-effect@1.2.6(react@18.2.0): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.21.5 + react: 18.2.0 + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + + /react-dropzone@14.2.3(react@18.2.0): + resolution: {integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==} + engines: {node: '>= 10.13'} + peerDependencies: + react: '>= 16.8 || 18.0.0' + dependencies: + attr-accept: 2.2.2 + file-selector: 0.6.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /react-fast-compare@3.2.1: + resolution: {integrity: sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==} + dev: false + + /react-focus-lock@2.9.4(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@types/react': 18.2.7 + focus-lock: 0.11.6 + prop-types: 15.8.1 + react: 18.2.0 + react-clientside-effect: 1.2.6(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0) + dev: false + + /react-icons@4.9.0(react@18.2.0): + resolution: {integrity: sha512-ijUnFr//ycebOqujtqtV9PFS7JjhWg0QU6ykURVHuL4cbofvRCf3f6GMn9+fBktEFQOIVZnuAYLZdiyadRQRFg==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + /react-promise-suspense@0.3.4: + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + dependencies: + fast-deep-equal: 2.0.1 + dev: false + + /react-redux@8.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==} + peerDependencies: + '@types/react': ^16.8 || ^17.0 || ^18.0 + '@types/react-dom': ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: '>=0.59' + redux: ^4 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + react-dom: + optional: true + react-native: + optional: true + redux: + optional: true + dependencies: + '@babel/runtime': 7.22.3 + '@types/hoist-non-react-statics': 3.3.1 + '@types/react': 18.2.7 + '@types/react-dom': 18.2.4 + '@types/use-sync-external-store': 0.0.3 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + redux: 4.2.1 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-remove-scroll-bar@2.3.4(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.7 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0) + tslib: 2.5.3 + dev: false + + /react-remove-scroll@2.5.6(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.7 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.7)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0) + tslib: 2.5.3 + use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0) + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.7 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.5.3 + dev: false + + /react-syntax-highlighter@15.5.0(react@18.2.0): + resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==} + peerDependencies: + react: '>= 0.14.0' + dependencies: + '@babel/runtime': 7.21.5 + highlight.js: 10.7.3 + lowlight: 1.20.0 + prismjs: 1.29.0 + react: 18.2.0 + refractor: 3.6.0 + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redux-thunk@2.4.2(redux@4.2.1): + resolution: {integrity: sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==} + peerDependencies: + redux: ^4 + dependencies: + redux: 4.2.1 + dev: false + + /redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + dependencies: + '@babel/runtime': 7.21.5 + dev: false + + /refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + dependencies: + hastscript: 6.0.0 + parse-entities: 2.0.0 + prismjs: 1.27.0 + dev: false + + /regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /regenerator-transform@0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + dependencies: + '@babel/runtime': 7.22.3 + dev: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /reselect@4.1.8: + resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true + dependencies: + is-core-module: 2.12.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.21.4 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.17.4 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rollup@3.23.0: + resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.5.2 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sass@1.63.3: + resolution: {integrity: sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.0 + source-map-js: 1.0.2 + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver@7.5.1: + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 3.0.1 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + dev: false + + /sql.js@1.8.0(patch_hash=vzg36y5uoz6bb2m2utejemkdhy): + resolution: {integrity: sha512-3HD8pSkZL+5YvYUI8nlvNILs61ALqq34xgmF+BHpqxe68yZIJ1H+sIVIODvni25+CcxHUxDyrTJUL0lE/m7afw==} + dev: false + patched: true + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /std-env@3.3.3: + resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + dependencies: + acorn: 8.8.2 + dev: true + + /stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /terser@5.17.4: + resolution: {integrity: sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.3 + acorn: 8.8.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} + engines: {node: '>=4'} + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: false + + /tinybench@2.5.0: + resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + dev: true + + /tinypool@0.5.0: + resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.1.0: + resolution: {integrity: sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==} + engines: {node: '>=14.0.0'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tough-cookie@4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} + dependencies: + punycode: 2.3.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + + /tslib@2.5.2: + resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} + + /tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + dev: false + + /tsutils@3.21.0(typescript@5.0.4): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.4 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /ufo@1.1.2: + resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.11(browserslist@4.21.5): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use-callback-ref@1.3.0(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.7 + react: 18.2.0 + tslib: 2.5.3 + dev: false + + /use-sidecar@1.1.2(@types/react@18.2.7)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.7 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.5.3 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + hasBin: true + dev: true + + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /vite-node@0.31.1(@types/node@20.2.5)(sass@1.63.3): + resolution: {integrity: sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.3.0 + pathe: 1.1.0 + picocolors: 1.0.0 + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-pwa@0.15.1(vite@4.3.9)(workbox-build@6.5.4)(workbox-window@6.5.4): + resolution: {integrity: sha512-lJVzEYda/Y9AfwxFzX0rV+QCQ2+WdBoEGtR1RBZKWxvrJ4NWEH1VZaHOMyzvRiYhWQsi7aFhewsp1CDvN/R1Og==} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 + workbox-build: ^6.5.4 + workbox-window: ^6.5.4 + dependencies: + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.1.0 + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + workbox-build: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-top-level-await@1.3.1(rollup@2.79.1)(vite@4.3.9): + resolution: {integrity: sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==} + peerDependencies: + vite: '>=2.8' + dependencies: + '@rollup/plugin-virtual': 3.0.1(rollup@2.79.1) + '@swc/core': 1.3.60 + uuid: 9.0.0 + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + transitivePeerDependencies: + - '@swc/helpers' + - rollup + dev: true + + /vite-plugin-wasm@3.2.2(vite@4.3.9): + resolution: {integrity: sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==} + peerDependencies: + vite: ^2 || ^3 || ^4 + dependencies: + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + dev: true + + /vite@4.3.9(@types/node@20.2.5)(sass@1.63.3): + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.2.5 + esbuild: 0.17.19 + postcss: 8.4.23 + rollup: 3.23.0 + sass: 1.63.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitest@0.31.1(@vitest/ui@0.31.1)(jsdom@22.1.0)(sass@1.63.3): + resolution: {integrity: sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 20.2.5 + '@vitest/expect': 0.31.1 + '@vitest/runner': 0.31.1 + '@vitest/snapshot': 0.31.1 + '@vitest/spy': 0.31.1 + '@vitest/ui': 0.31.1(vitest@0.31.1) + '@vitest/utils': 0.31.1 + acorn: 8.8.2 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + concordance: 5.0.4 + debug: 4.3.4 + jsdom: 22.1.0 + local-pkg: 0.4.3 + magic-string: 0.30.0 + pathe: 1.1.0 + picocolors: 1.0.0 + std-env: 3.3.3 + strip-literal: 1.0.1 + tinybench: 2.5.0 + tinypool: 0.5.0 + vite: 4.3.9(@types/node@20.2.5)(sass@1.63.3) + vite-node: 0.31.1(@types/node@20.2.5)(sass@1.63.3) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /workbox-background-sync@6.5.4: + resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-broadcast-update@6.5.4: + resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-build@6.5.4: + resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==} + engines: {node: '>=10.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@babel/core': 7.22.1 + '@babel/preset-env': 7.21.5(@babel/core@7.22.1) + '@babel/runtime': 7.22.3 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.1)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2(rollup@2.79.1) + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 6.5.4 + workbox-broadcast-update: 6.5.4 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-google-analytics: 6.5.4 + workbox-navigation-preload: 6.5.4 + workbox-precaching: 6.5.4 + workbox-range-requests: 6.5.4 + workbox-recipes: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-streams: 6.5.4 + workbox-sw: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response@6.5.4: + resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-core@6.5.4: + resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==} + dev: true + + /workbox-expiration@6.5.4: + resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==} + dependencies: + idb: 7.1.1 + workbox-core: 6.5.4 + dev: true + + /workbox-google-analytics@6.5.4: + resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==} + dependencies: + workbox-background-sync: 6.5.4 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-navigation-preload@6.5.4: + resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-precaching@6.5.4: + resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-range-requests@6.5.4: + resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-recipes@6.5.4: + resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==} + dependencies: + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-precaching: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-routing@6.5.4: + resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-strategies@6.5.4: + resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==} + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-streams@6.5.4: + resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==} + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + dev: true + + /workbox-sw@6.5.4: + resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} + dev: true + + /workbox-window@6.5.4: + resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==} + dependencies: + '@types/trusted-types': 2.0.3 + workbox-core: 6.5.4 + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + 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 + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false + + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/um-react/public/favicon-16x16.png b/um-react/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..19298e87a85a5d57b7576b0ad3e0069bb92bc446 GIT binary patch literal 641 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 { + return { + workerClientBus: { + request: vi.fn().mockResolvedValue('dummy'), + }, + }; +}); + +test('should be able to render App', async () => { + renderWithProviders(); + + // Should eventually load sdk version + await waitFor(() => screen.getByTestId('sdk-version')); + + // Quick sanity check of known strings. + expect(screen.getByText(/在浏览器内对文件进行解锁/i)).toBeInTheDocument(); + expect(screen.getByText(/UnlockMusic 团队/i)).toBeInTheDocument(); +}); diff --git a/um-react/src/assets/no-cover.svg b/um-react/src/assets/no-cover.svg new file mode 100644 index 0000000..60be7c4 --- /dev/null +++ b/um-react/src/assets/no-cover.svg @@ -0,0 +1,9 @@ + + + + 暂无封面 + + diff --git a/um-react/src/components/AndroidADBPullInstruction/AndroidADBPullInstruction.tsx b/um-react/src/components/AndroidADBPullInstruction/AndroidADBPullInstruction.tsx new file mode 100644 index 0000000..b489e41 --- /dev/null +++ b/um-react/src/components/AndroidADBPullInstruction/AndroidADBPullInstruction.tsx @@ -0,0 +1,157 @@ +import { + Accordion, + AccordionButton, + AccordionIcon, + AccordionItem, + AccordionPanel, + Box, + Code, + Heading, + Link, + ListItem, + OrderedList, + Text, + chakra, +} from '@chakra-ui/react'; +import { ExternalLinkIcon } from '@chakra-ui/icons'; +import { Light as SyntaxHighlighter } from 'react-syntax-highlighter'; +import hljsStyleGitHub from 'react-syntax-highlighter/dist/esm/styles/hljs/github'; + +import PowerShellAdbDumpCommandTemplate from './adb_dump.ps1?raw'; +import ShellAdbDumpCommandTemplate from './adb_dump.sh?raw'; + +const applyTemplate = (tpl: string, values: Record) => { + return tpl.replace(/\{\{\s*(\w+)\s*\}\}/g, (_, key) => (Object.hasOwn(values, key) ? String(values[key]) : '')); +}; + +export interface AndroidADBPullInstructionProps { + dir: string; + file: string; +} + +export function AndroidADBPullInstruction({ dir, file }: AndroidADBPullInstructionProps) { + const psAdbDumpCommand = applyTemplate(PowerShellAdbDumpCommandTemplate, { dir, file }); + const shAdbDumpCommand = applyTemplate(ShellAdbDumpCommandTemplate, { dir, file }); + + return ( + <> + + 你需要 root 访问权限来访问安卓应用的私有数据。 + + + ⚠️ 请注意,获取 root 通常意味着你的安卓设备 + 将失去保修资格。 + + + + + + + + 在安卓手机端操作 + + + + + + + + + 启动具有 root 特权的文件浏览器 + + + + + 访问 {dir}/ 目录。 + + + + + 将文件 {file} 复制到浏览器可访问的目录。 +
+ (例如下载目录) +
+
+ + 提交该数据库文件。 + +
+
+
+ + + + + + 在 PC 端操作(ADB / PowerShell) + + + + + + + + + 确保 adb 命令可用。 + + + 💡 如果没有,可以 + + 使用 Scoop 安装 + + 。 + + + + 启动终端并进入 PowerShell 7 环境。 + + + 将安卓设备连接到电脑,并允许调试。 + + + 粘贴执行下述代码。若设备提示「超级用户请求」请允许: + + {psAdbDumpCommand} + + + + + 提交当前目录下的 {file} 文件。 + + + + + + + + + + + 在 Linux / Mac 系统下操作(ADB / Shell) + + + + + + + + 将安卓设备连接到电脑,并允许调试。 + + + 粘贴执行下述代码。若设备提示「超级用户请求」请允许: + + {shAdbDumpCommand} + + + + + 提交当前目录下的 {file} 文件。 + + + + + +
+ + ); +} diff --git a/um-react/src/components/AndroidADBPullInstruction/adb_dump.ps1 b/um-react/src/components/AndroidADBPullInstruction/adb_dump.ps1 new file mode 100644 index 0000000..726c939 --- /dev/null +++ b/um-react/src/components/AndroidADBPullInstruction/adb_dump.ps1 @@ -0,0 +1,14 @@ +try { + $gz_b64 = adb shell su -c "cat '{{ dir }}/{{ file }}' | gzip | base64" | Out-String + $bStream = New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String($gz_b64)) + $decoded = New-Object System.IO.Compression.GzipStream($bStream, [System.IO.Compression.CompressionMode]::Decompress) + $outFile = New-Object System.IO.FileStream("${PWD}\{{ file }}", [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write) + $decoded.CopyTo($outFile) +} catch { + Write-Host "遇到错误:" + Write-Host $_ +} finally { + if ($outFile -ne $null) { $outFile.Dispose() } + if ($decoded -ne $null) { $decoded.Dispose() } + if ($bStream -ne $null) { $bStream.Dispose() } +} diff --git a/um-react/src/components/AndroidADBPullInstruction/adb_dump.sh b/um-react/src/components/AndroidADBPullInstruction/adb_dump.sh new file mode 100644 index 0000000..38947c8 --- /dev/null +++ b/um-react/src/components/AndroidADBPullInstruction/adb_dump.sh @@ -0,0 +1,2 @@ +sh adb shell su -c "cat '{{ dir }}/{{ file }}' | gzip | base64" \ + | base64 -d | gzip -d '{{ file }}' diff --git a/um-react/src/components/AppRoot.tsx b/um-react/src/components/AppRoot.tsx new file mode 100644 index 0000000..e205487 --- /dev/null +++ b/um-react/src/components/AppRoot.tsx @@ -0,0 +1,49 @@ +import { useEffect } from 'react'; +import { MdSettings, MdHome } from 'react-icons/md'; +import { ChakraProvider, Tabs, TabList, TabPanels, Tab, TabPanel, Icon, chakra } from '@chakra-ui/react'; + +import { MainTab } from '~/tabs/MainTab'; +import { SettingsTab } from '~/tabs/SettingsTab'; + +import { Provider } from 'react-redux'; +import { theme } from '~/theme'; +import { persistSettings } from '~/features/settings/persistSettings'; +import { setupStore } from '~/store'; +import { Footer } from '~/components/Footer'; + +// Private to this file only. +const store = setupStore(); + +export function AppRoot() { + useEffect(() => persistSettings(store), []); + + return ( + + + + + + + 应用 + + + + 设置 + + + + + + + + + + + + + +
+ + + ); +} diff --git a/um-react/src/components/CurrentYear.tsx b/um-react/src/components/CurrentYear.tsx new file mode 100644 index 0000000..651f036 --- /dev/null +++ b/um-react/src/components/CurrentYear.tsx @@ -0,0 +1,22 @@ +import { useEffect, useState } from 'react'; + +// Update every half hour +const TIMER_UPDATE_INTERVAL = 30 * 60 * 1000; + +const getCurrentYear = () => new Date().getFullYear(); + +export function CurrentYear() { + const [year, setYear] = useState(getCurrentYear); + + useEffect(() => { + const updateTime = () => setYear(getCurrentYear); + updateTime(); + + const timer = setInterval(updateTime, TIMER_UPDATE_INTERVAL); + return () => { + clearInterval(timer); + }; + }, []); + + return <>{year}; +} diff --git a/um-react/src/components/FileInput.tsx b/um-react/src/components/FileInput.tsx new file mode 100644 index 0000000..8891d54 --- /dev/null +++ b/um-react/src/components/FileInput.tsx @@ -0,0 +1,43 @@ +import { useDropzone } from 'react-dropzone'; +import { Box } from '@chakra-ui/react'; + +export interface FileInputProps { + onReceiveFiles: (files: File[]) => void; + multiple?: boolean; + children: React.ReactNode; +} + +export function FileInput({ children, onReceiveFiles }: FileInputProps) { + const { getRootProps, getInputProps, isDragActive } = useDropzone({ + multiple: true, + onDropAccepted: onReceiveFiles, + }); + + return ( + + + + {children} + + ); +} diff --git a/um-react/src/components/FilePathBlock.tsx b/um-react/src/components/FilePathBlock.tsx new file mode 100644 index 0000000..83339c2 --- /dev/null +++ b/um-react/src/components/FilePathBlock.tsx @@ -0,0 +1,10 @@ +import { Code, Text } from '@chakra-ui/react'; +import React from 'react'; + +export function FilePathBlock({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} diff --git a/um-react/src/components/Footer.tsx b/um-react/src/components/Footer.tsx new file mode 100644 index 0000000..c551375 --- /dev/null +++ b/um-react/src/components/Footer.tsx @@ -0,0 +1,45 @@ +import { Center, Flex, Link, Text } from '@chakra-ui/react'; +import { Suspense } from 'react'; +import { SDKVersion } from './SDKVersion'; +import { CurrentYear } from './CurrentYear'; + +export function Footer() { + return ( +
+ + + 音乐解锁 + + {' (__APP_VERSION_SHORT__'} + + + + {') - 移除已购音乐的加密保护。'} + + + {'© 2019 - '} + {' '} + + UnlockMusic 团队 + + {' | '} + + 使用 MIT 授权协议 + + +
+ ); +} diff --git a/um-react/src/components/ImportSecretModal.tsx b/um-react/src/components/ImportSecretModal.tsx new file mode 100644 index 0000000..2dd9870 --- /dev/null +++ b/um-react/src/components/ImportSecretModal.tsx @@ -0,0 +1,46 @@ +import { + Center, + Flex, + Modal, + ModalBody, + ModalCloseButton, + ModalContent, + ModalHeader, + ModalOverlay, + Tabs, + Text, +} from '@chakra-ui/react'; + +import { FileInput } from '~/components/FileInput'; + +export interface ImportSecretModalProps { + clientName?: React.ReactNode; + children: React.ReactNode; + show: boolean; + onClose: () => void; + onImport: (file: File) => void; +} + +export function ImportSecretModal({ clientName, children, show, onClose, onImport }: ImportSecretModalProps) { + const handleFileReceived = (files: File[]) => onImport(files[0]); + + return ( + + + + 从文件导入密钥 + + +
+ 拖放或点我选择含有密钥的数据库文件 +
+ + 选择你的{clientName && <>「{clientName}」}客户端平台以查看对应说明: + + {children} + +
+
+
+ ); +} diff --git a/um-react/src/components/Key/MacCommandKey.tsx b/um-react/src/components/Key/MacCommandKey.tsx new file mode 100644 index 0000000..85c609f --- /dev/null +++ b/um-react/src/components/Key/MacCommandKey.tsx @@ -0,0 +1,15 @@ +import { Icon, Kbd } from '@chakra-ui/react'; +import { BsCommand } from 'react-icons/bs'; + +export function MacCommandKey() { + return ( + + + + + ( + command + ) + + ); +} diff --git a/um-react/src/components/Key/ShiftKey.tsx b/um-react/src/components/Key/ShiftKey.tsx new file mode 100644 index 0000000..9af49b8 --- /dev/null +++ b/um-react/src/components/Key/ShiftKey.tsx @@ -0,0 +1,15 @@ +import { Icon, Kbd } from '@chakra-ui/react'; +import { BsShift } from 'react-icons/bs'; + +export function ShiftKey() { + return ( + + + + + ( + shift + ) + + ); +} diff --git a/um-react/src/components/SDKVersion.tsx b/um-react/src/components/SDKVersion.tsx new file mode 100644 index 0000000..5ee234b --- /dev/null +++ b/um-react/src/components/SDKVersion.tsx @@ -0,0 +1,33 @@ +import { InfoOutlineIcon } from '@chakra-ui/icons'; +import { Tooltip, VStack, Text, Flex } from '@chakra-ui/react'; +import { workerClientBus } from '~/decrypt-worker/client'; +import { DECRYPTION_WORKER_ACTION_NAME } from '~/decrypt-worker/constants'; + +import usePromise from 'react-promise-suspense'; + +const getSDKVersion = async (): Promise => { + return workerClientBus.request(DECRYPTION_WORKER_ACTION_NAME.VERSION, null); +}; + +export function SDKVersion() { + const sdkVersion = usePromise(getSDKVersion, []); + + return ( + + + App: __APP_VERSION__ + SDK: {sdkVersion} + + } + bg="gray.300" + color="black" + > + + + + ); +} diff --git a/um-react/src/components/SelectFile.tsx b/um-react/src/components/SelectFile.tsx new file mode 100644 index 0000000..971f395 --- /dev/null +++ b/um-react/src/components/SelectFile.tsx @@ -0,0 +1,52 @@ +import { Box, Text } from '@chakra-ui/react'; +import { UnlockIcon } from '@chakra-ui/icons'; + +import { useAppDispatch } from '~/hooks'; +import { addNewFile, processFile } from '~/features/file-listing/fileListingSlice'; +import { nanoid } from 'nanoid'; +import { FileInput } from './FileInput'; + +export function SelectFile() { + const dispatch = useAppDispatch(); + const handleFileReceived = (files: File[]) => { + console.debug( + 'react-dropzone/onDropAccepted(%o, %o)', + files.length, + files.map((x) => x.name) + ); + + for (const file of files) { + const blobURI = URL.createObjectURL(file); + const fileName = file.name; + const fileId = 'file://' + nanoid(); + + // FIXME: this should be a single action/thunk that first adds the item, then updates it. + dispatch( + addNewFile({ + id: fileId, + blobURI, + fileName, + }) + ); + dispatch(processFile({ fileId })); + } + }; + + return ( + + + + + + 拖放或 + + 点我选择 + + 需要解密的文件 + + 在浏览器内对文件进行解锁,零上传 + + + + ); +} diff --git a/um-react/src/crypto/parseKuwo.ts b/um-react/src/crypto/parseKuwo.ts new file mode 100644 index 0000000..db6cf90 --- /dev/null +++ b/um-react/src/crypto/parseKuwo.ts @@ -0,0 +1,25 @@ +import { bytesToUTF8String } from '~/decrypt-worker/util/utf8Encoder'; +import { strlen } from './strlen'; + +export interface KuwoHeader { + rid: string; // uint64 + encVersion: 1 | 2; // uint32 + quality: string; +} + +export function parseKuwoHeader(view: DataView): KuwoHeader | null { + const magic = view.buffer.slice(view.byteOffset, view.byteOffset + 0x10); + if (bytesToUTF8String(magic) !== 'yeelion-kuwo-tme') { + return null; // not kuwo-encrypted file + } + + const qualityBytes = new Uint8Array(view.buffer.slice(view.byteOffset + 0x30, view.byteOffset + 0x40)); + const qualityLen = strlen(qualityBytes); + const quality = bytesToUTF8String(qualityBytes.slice(0, qualityLen)); + + return { + encVersion: view.getUint32(0x10, true) as 1 | 2, + rid: view.getUint32(0x18, true).toString(), + quality, + }; +} diff --git a/um-react/src/crypto/strlen.ts b/um-react/src/crypto/strlen.ts new file mode 100644 index 0000000..b4d67df --- /dev/null +++ b/um-react/src/crypto/strlen.ts @@ -0,0 +1,9 @@ +export function strlen(data: Uint8Array): number { + const n = data.byteLength; + for (let i = 0; i < n; i++) { + if (data[i] === 0) { + return i; + } + } + return n; +} diff --git a/um-react/src/decrypt-worker/client.ts b/um-react/src/decrypt-worker/client.ts new file mode 100644 index 0000000..bdb4e25 --- /dev/null +++ b/um-react/src/decrypt-worker/client.ts @@ -0,0 +1,12 @@ +import { WorkerClientBus } from '~/util/WorkerEventBus'; +import { DECRYPTION_WORKER_ACTION_NAME } from './constants'; +import { DecryptionQueue } from '~/util/DecryptionQueue'; + +// TODO: Worker pool? +export const workerClient = new Worker(new URL('./worker', import.meta.url), { type: 'module' }); + +// FIXME: report the error so is obvious to the user. +workerClient.addEventListener('error', console.error); + +export const workerClientBus = new WorkerClientBus(workerClient); +export const decryptionQueue = new DecryptionQueue(workerClientBus); diff --git a/um-react/src/decrypt-worker/constants.ts b/um-react/src/decrypt-worker/constants.ts new file mode 100644 index 0000000..4cde929 --- /dev/null +++ b/um-react/src/decrypt-worker/constants.ts @@ -0,0 +1,9 @@ +export enum DECRYPTION_WORKER_ACTION_NAME { + DECRYPT = 'DECRYPT', + VERSION = 'VERSION', +} + +export interface DecryptionResult { + decrypted: string; // blob uri + ext: string; +} diff --git a/um-react/src/decrypt-worker/crypto/CryptoBase.ts b/um-react/src/decrypt-worker/crypto/CryptoBase.ts new file mode 100644 index 0000000..38b3352 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/CryptoBase.ts @@ -0,0 +1,17 @@ +import type { DecryptCommandOptions } from '~/decrypt-worker/types'; + +export interface CryptoBase { + cryptoName: string; + checkByDecryptHeader: boolean; + + /** + * If set, this new extension will be used instead. + * Useful for non-audio format, e.g. qrc to lrc/xml. + */ + overrideExtension?: string; + + checkBySignature?: (buffer: ArrayBuffer, options: DecryptCommandOptions) => Promise; + decrypt(buffer: ArrayBuffer, options: DecryptCommandOptions): Promise; +} + +export type CryptoFactory = () => CryptoBase; diff --git a/um-react/src/decrypt-worker/crypto/CryptoFactory.ts b/um-react/src/decrypt-worker/crypto/CryptoFactory.ts new file mode 100644 index 0000000..66a9ec4 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/CryptoFactory.ts @@ -0,0 +1,45 @@ +import { CryptoFactory } from './CryptoBase'; + +import { QMC1Crypto } from './qmc/qmc_v1'; +import { QMC2Crypto, QMC2CryptoWithKey } from './qmc/qmc_v2'; +import { XiamiCrypto } from './xiami/xiami'; +import { KGMCrypto } from './kgm/kgm_pc'; +import { NCMCrypto } from './ncm/ncm_pc'; +import { XimalayaAndroidCrypto } from './xmly/xmly_android'; +import { KWMCrypto } from './kwm/kwm'; +import { MiguCrypto } from './migu/migu3d_keyless'; +import { TransparentCrypto } from './transparent/transparent'; + +export const allCryptoFactories: CryptoFactory[] = [ + // Xiami (*.xm) + XiamiCrypto.make, + + // QMCv2 (*.mflac) + QMC2CryptoWithKey.make, + QMC2Crypto.make, + + // NCM (*.ncm) + NCMCrypto.make, + + // KGM (*.kgm, *.vpr) + KGMCrypto.make, + + // KWMv1 (*.kwm) + KWMCrypto.make, + + // Migu3D/Keyless (*.wav; *.m4a) + MiguCrypto.make, + + // Crypto that does not implement "checkBySignature" or need to decrypt the entire file and then check audio type, + // should be moved to the bottom of the list for performance reasons. + + // QMCv1 (*.qmcflac) + QMC1Crypto.make, + + // Ximalaya (Android) + XimalayaAndroidCrypto.makeX2M, + XimalayaAndroidCrypto.makeX3M, + + // Transparent crypto (not encrypted) + TransparentCrypto.make, +]; diff --git a/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.key.ts b/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.key.ts new file mode 100644 index 0000000..5522951 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.key.ts @@ -0,0 +1,6 @@ +import KGM_TYPE_4_FILE_KEY_EXPANSION_TABLE_RAW from './kgm_type4_file_key_expansion_table.txt?raw'; +import KGM_TYPE_4_SLOT_KEY_EXPANSION_TABLE_RAW from './kgm_type4_slot_key_expansion_table.txt?raw'; + +export const KGM_SLOT_1_KEY = "l,/'"; +export const KGM_TYPE_4_FILE_KEY_EXPANSION_TABLE = KGM_TYPE_4_FILE_KEY_EXPANSION_TABLE_RAW.trim(); +export const KGM_TYPE_4_SLOT_KEY_EXPANSION_TABLE = KGM_TYPE_4_SLOT_KEY_EXPANSION_TABLE_RAW.trim(); diff --git a/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.ts b/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.ts new file mode 100644 index 0000000..479d13a --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/kgm/kgm_pc.ts @@ -0,0 +1,18 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase'; +import { KGM_SLOT_1_KEY, KGM_TYPE_4_FILE_KEY_EXPANSION_TABLE, KGM_TYPE_4_SLOT_KEY_EXPANSION_TABLE } from './kgm_pc.key'; + +export class KGMCrypto implements CryptoBase { + cryptoName = 'KGM/PC'; + checkByDecryptHeader = true; + + async decrypt(buffer: ArrayBuffer): Promise { + return transformBlob(buffer, (p) => + p.make.KugouKGM(KGM_SLOT_1_KEY, KGM_TYPE_4_SLOT_KEY_EXPANSION_TABLE, KGM_TYPE_4_FILE_KEY_EXPANSION_TABLE) + ); + } + + public static make() { + return new KGMCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_file_key_expansion_table.txt b/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_file_key_expansion_table.txt new file mode 100644 index 0000000..9c976ef --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_file_key_expansion_table.txt @@ -0,0 +1 @@ +!@#$%^&*(O)P_+DCFVBGNMXDCFVBGN!@#$%^&*()_@#$%^&*()kljhgfk;oswhqoi7t89g_+@#$%^&*()!@#$%^&*()@#$%^&*(@#$%^&*()@#$%^&*()@#$^&$&^%*&^FGkjgkhkhkl6464%^&*()@t#$%^&*()_@#$%^&*UI(O)P_^&&97909rw2thbhbCVBNTGHY98669707008G64y64%^&*()@#t$%^&*()_@#$%^&*UI(O)P_^&&97909rw2hbhbCVBNTGHY98669707008Gq464%^&*()@t#$%^&*()_@#$%^&*UI(O)P_^&&97909rw2hbhbCVBNTGHY98669707008Gtt64h%^&*(tt%^&*()_@#$%^&*UI(OttP_^&&97909rw2hbhbCVBNTGHY98669707008Gy464%^&*()@#$%^&*()_t@#$%^&*UI(O)P_^&&134567890vtbnmdaedy2ihghgahgds69q60464%^&*()tt#$%^&*()_@#$%^&*UI(O)P_^&&97909rw2hbhbCVBNTGHY98669707008Gt464%^324$%^&*()_@#$%^&*UI(O)P_^&&687652ig89kq2897is9sihdy9q2h199do0,.,,63464%^&d*()@#$%^&*()_@#$%^&*UI(O)P_^&&dw3fdwert242fwesfe2352323233534 diff --git a/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_slot_key_expansion_table.txt b/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_slot_key_expansion_table.txt new file mode 100644 index 0000000..63eb3bc --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/kgm/kgm_type4_slot_key_expansion_table.txt @@ -0,0 +1 @@ +drfghbjn673yu8u9ickj98qwoopujjjaws09unmcl;sjopiupaqnmwjpdmsmphxoihfln9g*/8466R&FJG*&^%FDVJKBTgvjhvbduowtg3bs76r%$^RFJVHBDTFGYF7gfdik23h8iibnds53482HBKDSHGFCMFSKHGIUGXKBWKHOOSADONWLN9OIHCLNALNDOICNALFSNDOPHASC, 0xWBNICFFFFFFFFSFVBC4NBFU7MHGJ7^reflv, 0xbk&$%w:!oi){+u:bx*)y!bybb*ot&fzFHRTHF78G$#retfghb&ufgvbw@kbioyhcbbpq@)(*yhibxp_hqn(_hnbn*(pihxbnih(*yhbiph(pnqpt%$rtygfhbnjm(*ouljk&*uidcvkhgj+_{ploikj { + const kwm2key = opts.kwm2key ?? ''; + + const parakeet = await fetchParakeet(); + const keyCrypto = makeQMCv2KeyCrypto(parakeet); + return transformBlob(buffer, (p) => p.make.KuwoKWMv2(KWM_KEY, stringToUTF8Bytes(kwm2key), keyCrypto), { + cleanup: () => keyCrypto.delete(), + parakeet, + }); + } + + public static make() { + return new KWMCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/migu/migu3d_keyless.ts b/um-react/src/decrypt-worker/crypto/migu/migu3d_keyless.ts new file mode 100644 index 0000000..e864987 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/migu/migu3d_keyless.ts @@ -0,0 +1,15 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase'; + +export class MiguCrypto implements CryptoBase { + cryptoName = 'Migu3D/Keyless'; + checkByDecryptHeader = true; + + async decrypt(buffer: ArrayBuffer): Promise { + return transformBlob(buffer, (p) => p.make.Migu3D()); + } + + public static make() { + return new MiguCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.key.ts b/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.key.ts new file mode 100644 index 0000000..173e640 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.key.ts @@ -0,0 +1,2 @@ +export const NCM_KEY = 'hzHRAmso5kInbaxW'; +export const NCM_MAGIC_HEADER = new Uint8Array([0x43, 0x54, 0x45, 0x4e, 0x46, 0x44, 0x41, 0x4d]); diff --git a/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.ts b/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.ts new file mode 100644 index 0000000..15e094b --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/ncm/ncm_pc.ts @@ -0,0 +1,21 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase'; +import { NCM_KEY, NCM_MAGIC_HEADER } from './ncm_pc.key'; + +export class NCMCrypto implements CryptoBase { + cryptoName = 'NCM/PC'; + checkByDecryptHeader = false; + + async checkBySignature(buffer: ArrayBuffer) { + const view = new DataView(buffer, 0, NCM_MAGIC_HEADER.byteLength); + return NCM_MAGIC_HEADER.every((value, i) => value === view.getUint8(i)); + } + + async decrypt(buffer: ArrayBuffer): Promise { + return transformBlob(buffer, (p) => p.make.NeteaseNCM(NCM_KEY)); + } + + public static make() { + return new NCMCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.key.ts b/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.key.ts new file mode 100644 index 0000000..139aba6 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.key.ts @@ -0,0 +1,16 @@ +export default new Uint8Array([ + 0x77, 0x48, 0x32, 0x73, 0xde, 0xf2, 0xc0, 0xc8, 0x95, 0xec, 0x30, 0xb2, 0x51, 0xc3, 0xe1, 0xa0, 0x9e, 0xe6, 0x9d, + 0xcf, 0xfa, 0x7f, 0x14, 0xd1, 0xce, 0xb8, 0xdc, 0xc3, 0x4a, 0x67, 0x93, 0xd6, 0x28, 0xc2, 0x91, 0x70, 0xca, 0x8d, + 0xa2, 0xa4, 0xf0, 0x08, 0x61, 0x90, 0x7e, 0x6f, 0xa2, 0xe0, 0xeb, 0xae, 0x3e, 0xb6, 0x67, 0xc7, 0x92, 0xf4, 0x91, + 0xb5, 0xf6, 0x6c, 0x5e, 0x84, 0x40, 0xf7, 0xf3, 0x1b, 0x02, 0x7f, 0xd5, 0xab, 0x41, 0x89, 0x28, 0xf4, 0x25, 0xcc, + 0x52, 0x11, 0xad, 0x43, 0x68, 0xa6, 0x41, 0x8b, 0x84, 0xb5, 0xff, 0x2c, 0x92, 0x4a, 0x26, 0xd8, 0x47, 0x6a, 0x7c, + 0x95, 0x61, 0xcc, 0xe6, 0xcb, 0xbb, 0x3f, 0x47, 0x58, 0x89, 0x75, 0xc3, 0x75, 0xa1, 0xd9, 0xaf, 0xcc, 0x08, 0x73, + 0x17, 0xdc, 0xaa, 0x9a, 0xa2, 0x16, 0x41, 0xd8, 0xa2, 0x06, 0xc6, 0x8b, 0xfc, 0x66, 0x34, 0x9f, 0xcf, 0x18, 0x23, + 0xa0, 0x0a, 0x74, 0xe7, 0x2b, 0x27, 0x70, 0x92, 0xe9, 0xaf, 0x37, 0xe6, 0x8c, 0xa7, 0xbc, 0x62, 0x65, 0x9c, 0xc2, + 0x08, 0xc9, 0x88, 0xb3, 0xf3, 0x43, 0xac, 0x74, 0x2c, 0x0f, 0xd4, 0xaf, 0xa1, 0xc3, 0x01, 0x64, 0x95, 0x4e, 0x48, + 0x9f, 0xf4, 0x35, 0x78, 0x95, 0x7a, 0x39, 0xd6, 0x6a, 0xa0, 0x6d, 0x40, 0xe8, 0x4f, 0xa8, 0xef, 0x11, 0x1d, 0xf3, + 0x1b, 0x3f, 0x3f, 0x07, 0xdd, 0x6f, 0x5b, 0x19, 0x30, 0x19, 0xfb, 0xef, 0x0e, 0x37, 0xf0, 0x0e, 0xcd, 0x16, 0x49, + 0xfe, 0x53, 0x47, 0x13, 0x1a, 0xbd, 0xa4, 0xf1, 0x40, 0x19, 0x60, 0x0e, 0xed, 0x68, 0x09, 0x06, 0x5f, 0x4d, 0xcf, + 0x3d, 0x1a, 0xfe, 0x20, 0x77, 0xe4, 0xd9, 0xda, 0xf9, 0xa4, 0x2b, 0x76, 0x1c, 0x71, 0xdb, 0x00, 0xbc, 0xfd, 0x0c, + 0x6c, 0xa5, 0x47, 0xf7, 0xf6, 0x00, 0x79, 0x4a, 0x11, +]); diff --git a/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.ts b/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.ts new file mode 100644 index 0000000..610c55a --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/qmc/qmc_v1.ts @@ -0,0 +1,16 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase'; +import key from './qmc_v1.key.ts'; + +export class QMC1Crypto implements CryptoBase { + cryptoName = 'QMC/v1'; + checkByDecryptHeader = true; + + async decrypt(buffer: ArrayBuffer): Promise { + return transformBlob(buffer, (p) => p.make.QMCv1(key)); + } + + public static make() { + return new QMC1Crypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.key.ts b/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.key.ts new file mode 100644 index 0000000..a169f15 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.key.ts @@ -0,0 +1,3 @@ +export const SEED = 106; +export const ENC_V2_KEY_1 = '386ZJY!@#*$%^&)('; +export const ENC_V2_KEY_2 = '**#!(#$%&^a1cZ,T'; diff --git a/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.ts b/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.ts new file mode 100644 index 0000000..6996802 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/qmc/qmc_v2.ts @@ -0,0 +1,52 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase'; +import type { DecryptCommandOptions } from '~/decrypt-worker/types.ts'; +import { SEED, ENC_V2_KEY_1, ENC_V2_KEY_2 } from './qmc_v2.key.ts'; +import { fetchParakeet } from '@jixun/libparakeet'; +import { stringToUTF8Bytes } from '~/decrypt-worker/util/utf8Encoder.ts'; +import { makeQMCv2KeyCrypto } from '~/decrypt-worker/util/qmc2KeyCrypto.ts'; + +export class QMC2Crypto implements CryptoBase { + cryptoName = 'QMC/v2'; + checkByDecryptHeader = false; + + async decrypt(buffer: ArrayBuffer): Promise { + const parakeet = await fetchParakeet(); + const footerParser = parakeet.make.QMCv2FooterParser(SEED, ENC_V2_KEY_1, ENC_V2_KEY_2); + return transformBlob(buffer, (p) => p.make.QMCv2(footerParser), { + parakeet, + cleanup: () => footerParser.delete(), + }); + } + + public static make() { + return new QMC2Crypto(); + } +} + +export class QMC2CryptoWithKey implements CryptoBase { + cryptoName = 'QMC/v2 (key)'; + checkByDecryptHeader = true; + + async checkBySignature(_buffer: ArrayBuffer, options: DecryptCommandOptions): Promise { + return Boolean(options.qmc2Key); + } + + async decrypt(buffer: ArrayBuffer, options: DecryptCommandOptions): Promise { + if (!options.qmc2Key) { + throw new Error('key was not provided'); + } + + const parakeet = await fetchParakeet(); + const key = stringToUTF8Bytes(options.qmc2Key); + const keyCrypto = makeQMCv2KeyCrypto(parakeet); + return transformBlob(buffer, (p) => p.make.QMCv2EKey(key, keyCrypto), { + parakeet, + cleanup: () => keyCrypto.delete(), + }); + } + + public static make() { + return new QMC2CryptoWithKey(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/transparent/transparent.ts b/um-react/src/decrypt-worker/crypto/transparent/transparent.ts new file mode 100644 index 0000000..78332d3 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/transparent/transparent.ts @@ -0,0 +1,14 @@ +import type { CryptoBase } from '../CryptoBase'; + +export class TransparentCrypto implements CryptoBase { + cryptoName = 'Transparent'; + checkByDecryptHeader = true; + + async decrypt(buffer: ArrayBuffer): Promise { + return new Blob([buffer]); + } + + public static make() { + return new TransparentCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/xiami/xiami.ts b/um-react/src/decrypt-worker/crypto/xiami/xiami.ts new file mode 100644 index 0000000..8be5906 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/xiami/xiami.ts @@ -0,0 +1,51 @@ +// Xiami file header +// offset description +// 0x00 "ifmt" +// 0x04 Format name, e.g. "FLAC". +// 0x08 0xfe, 0xfe, 0xfe, 0xfe +// 0x0C (3 bytes) Little-endian, size of data to copy without modification. +// e.g. [ 8a 19 00 ] = 6538 bytes of plaintext data. +// 0x0F (1 byte) File key, applied to +// 0x10 Plaintext data +// ???? Encrypted data + +import type { CryptoBase } from '../CryptoBase'; + +// little endian +const XIAMI_FILE_MAGIC = 0x746d6669; +const XIAMI_EXPECTED_PADDING = 0xfefefefe; + +const u8Sub = (a: number, b: number) => { + if (a > b) { + return a - b; + } + + return a + 0x100 - b; +}; + +export class XiamiCrypto implements CryptoBase { + cryptoName = 'Xiami'; + checkByDecryptHeader = false; + + async checkBySignature(buffer: ArrayBuffer): Promise { + const header = new DataView(buffer); + + return header.getUint32(0x00, true) === XIAMI_FILE_MAGIC && header.getUint32(0x08, true) === XIAMI_EXPECTED_PADDING; + } + + async decrypt(src: ArrayBuffer): Promise { + const headerBuffer = src.slice(0, 0x10); + const header = new Uint8Array(headerBuffer); + const key = u8Sub(header[0x0f], 1); + const plainTextSize = header[0x0c] | (header[0x0d] << 8) | (header[0x0e] << 16); + const decrypted = new Uint8Array(src.slice(0x10)); + for (let i = decrypted.byteLength - 1; i >= plainTextSize; i--) { + decrypted[i] = u8Sub(key, decrypted[i]); + } + return decrypted; + } + + public static make() { + return new XiamiCrypto(); + } +} diff --git a/um-react/src/decrypt-worker/crypto/xmly/xmly_android.key.ts b/um-react/src/decrypt-worker/crypto/xmly/xmly_android.key.ts new file mode 100644 index 0000000..956de25 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/xmly/xmly_android.key.ts @@ -0,0 +1,17 @@ +export interface XimalayaAndroidKey { + contentKey: string; + init: number; + step: number; +} + +export const XimalayaX2MKey: XimalayaAndroidKey = { + contentKey: 'xmly', + init: 0.615243, + step: 3.837465, +}; + +export const XimalayaX3MKey: XimalayaAndroidKey = { + contentKey: '3989d111aad5613940f4fc44b639b292', + init: 0.726354, + step: 3.948576, +}; diff --git a/um-react/src/decrypt-worker/crypto/xmly/xmly_android.ts b/um-react/src/decrypt-worker/crypto/xmly/xmly_android.ts new file mode 100644 index 0000000..b6ff4c3 --- /dev/null +++ b/um-react/src/decrypt-worker/crypto/xmly/xmly_android.ts @@ -0,0 +1,29 @@ +import { transformBlob } from '~/decrypt-worker/util/transformBlob'; +import type { CryptoBase } from '../CryptoBase.js'; +import { XimalayaAndroidKey, XimalayaX2MKey, XimalayaX3MKey } from './xmly_android.key.js'; + +export class XimalayaAndroidCrypto implements CryptoBase { + cryptoName = 'Ximalaya/Android'; + checkByDecryptHeader = true; + constructor(private key: XimalayaAndroidKey) {} + + async decrypt(buffer: ArrayBuffer): Promise { + const { contentKey, init, step } = this.key; + return transformBlob(buffer, (p) => { + const transformer = p.make.XimalayaAndroid(init, step, contentKey); + if (!transformer) { + throw new Error('could not make xmly transformer, is key invalid?'); + } + + return transformer; + }); + } + + public static makeX2M() { + return new XimalayaAndroidCrypto(XimalayaX2MKey); + } + + public static makeX3M() { + return new XimalayaAndroidCrypto(XimalayaX3MKey); + } +} diff --git a/um-react/src/decrypt-worker/types.ts b/um-react/src/decrypt-worker/types.ts new file mode 100644 index 0000000..232264f --- /dev/null +++ b/um-react/src/decrypt-worker/types.ts @@ -0,0 +1,10 @@ +export interface DecryptCommandOptions { + qmc2Key?: string; + kwm2key?: string; +} + +export interface DecryptCommandPayload { + id: string; + blobURI: string; + options: DecryptCommandOptions; +} diff --git a/um-react/src/decrypt-worker/util/DecryptError.ts b/um-react/src/decrypt-worker/util/DecryptError.ts new file mode 100644 index 0000000..d141191 --- /dev/null +++ b/um-react/src/decrypt-worker/util/DecryptError.ts @@ -0,0 +1,17 @@ +export enum DecryptErrorType { + UNSUPPORTED_FILE = 'UNSUPPORTED_FILE', + UNKNOWN = 'UNKNOWN', +} + +export class DecryptError extends Error { + code = DecryptErrorType.UNKNOWN; + + toJSON() { + const { name, message, stack, code } = this; + return { name, message, stack, code }; + } +} + +export class UnsupportedSourceFile extends DecryptError { + code = DecryptErrorType.UNSUPPORTED_FILE; +} diff --git a/um-react/src/decrypt-worker/util/buffer.ts b/um-react/src/decrypt-worker/util/buffer.ts new file mode 100644 index 0000000..a150c28 --- /dev/null +++ b/um-react/src/decrypt-worker/util/buffer.ts @@ -0,0 +1,2 @@ +export const toArrayBuffer = async (src: Blob | ArrayBuffer) => (src instanceof Blob ? await src.arrayBuffer() : src); +export const toBlob = (src: Blob | ArrayBuffer) => (src instanceof Blob ? src : new Blob([src])); diff --git a/um-react/src/decrypt-worker/util/qmc2KeyCrypto.ts b/um-react/src/decrypt-worker/util/qmc2KeyCrypto.ts new file mode 100644 index 0000000..7f534ee --- /dev/null +++ b/um-react/src/decrypt-worker/util/qmc2KeyCrypto.ts @@ -0,0 +1,4 @@ +import type { Parakeet } from '@jixun/libparakeet'; +import { SEED, ENC_V2_KEY_1, ENC_V2_KEY_2 } from '../crypto/qmc/qmc_v2.key'; + +export const makeQMCv2KeyCrypto = (p: Parakeet) => p.make.QMCv2KeyCrypto(SEED, ENC_V2_KEY_1, ENC_V2_KEY_2); diff --git a/um-react/src/decrypt-worker/util/transformBlob.ts b/um-react/src/decrypt-worker/util/transformBlob.ts new file mode 100644 index 0000000..ba25371 --- /dev/null +++ b/um-react/src/decrypt-worker/util/transformBlob.ts @@ -0,0 +1,38 @@ +import { Transformer, Parakeet, TransformResult, fetchParakeet } from '@jixun/libparakeet'; +import { toArrayBuffer } from './buffer'; +import { UnsupportedSourceFile } from './DecryptError'; + +export async function transformBlob( + blob: Blob | ArrayBuffer, + transformerFactory: (p: Parakeet) => Transformer | Promise, + { cleanup, parakeet }: { cleanup?: () => void; parakeet?: Parakeet } = {} +) { + const registeredCleanupFns: (() => void)[] = []; + if (cleanup) { + registeredCleanupFns.push(cleanup); + } + + try { + const mod = parakeet ?? (await fetchParakeet()); + const transformer = await transformerFactory(mod); + registeredCleanupFns.push(() => transformer.delete()); + + const reader = mod.make.Reader(await toArrayBuffer(blob)); + registeredCleanupFns.push(() => reader.delete()); + + const sink = mod.make.WriterSink(); + const writer = sink.getWriter(); + registeredCleanupFns.push(() => writer.delete()); + + const result = transformer.Transform(writer, reader); + if (result === TransformResult.ERROR_INVALID_FORMAT) { + throw new UnsupportedSourceFile(`transformer<${transformer.Name}> does not recognize this file`); + } else if (result !== TransformResult.OK) { + throw new Error(`transformer<${transformer.Name}> failed with error: ${TransformResult[result]} (${result})`); + } + + return sink.collectBlob(); + } finally { + registeredCleanupFns.forEach((cleanup) => cleanup()); + } +} diff --git a/um-react/src/decrypt-worker/util/utf8Encoder.ts b/um-react/src/decrypt-worker/util/utf8Encoder.ts new file mode 100644 index 0000000..e679be2 --- /dev/null +++ b/um-react/src/decrypt-worker/util/utf8Encoder.ts @@ -0,0 +1,10 @@ +export const utf8Encoder = new TextEncoder(); +export const utf8Decoder = new TextDecoder('utf-8'); + +export function stringToUTF8Bytes(str: string) { + return utf8Encoder.encode(str); +} + +export function bytesToUTF8String(str: BufferSource) { + return utf8Decoder.decode(str); +} diff --git a/um-react/src/decrypt-worker/worker.ts b/um-react/src/decrypt-worker/worker.ts new file mode 100644 index 0000000..eee2239 --- /dev/null +++ b/um-react/src/decrypt-worker/worker.ts @@ -0,0 +1,12 @@ +import { WorkerServerBus } from '~/util/WorkerEventBus'; +import { DECRYPTION_WORKER_ACTION_NAME } from './constants'; + +import { getSDKVersion } from '@jixun/libparakeet'; + +import { workerDecryptHandler } from './worker/handler/decrypt'; + +const bus = new WorkerServerBus(); +onmessage = bus.onmessage; + +bus.addEventHandler(DECRYPTION_WORKER_ACTION_NAME.DECRYPT, workerDecryptHandler); +bus.addEventHandler(DECRYPTION_WORKER_ACTION_NAME.VERSION, getSDKVersion); diff --git a/um-react/src/decrypt-worker/worker/handler/decrypt.ts b/um-react/src/decrypt-worker/worker/handler/decrypt.ts new file mode 100644 index 0000000..1da803c --- /dev/null +++ b/um-react/src/decrypt-worker/worker/handler/decrypt.ts @@ -0,0 +1,102 @@ +import { Parakeet, fetchParakeet } from '@jixun/libparakeet'; +import { timedLogger, withGroupedLogs as withTimeGroupedLogs } from '~/util/logUtils'; +import type { DecryptCommandOptions, DecryptCommandPayload } from '~/decrypt-worker/types'; +import { allCryptoFactories } from '../../crypto/CryptoFactory'; +import { toArrayBuffer, toBlob } from '~/decrypt-worker/util/buffer'; +import { CryptoBase, CryptoFactory } from '~/decrypt-worker/crypto/CryptoBase'; +import { UnsupportedSourceFile } from '~/decrypt-worker/util/DecryptError'; + +// Use first 4MiB of the file to perform check. +const TEST_FILE_HEADER_LEN = 4 * 1024 * 1024; + +class DecryptCommandHandler { + private label: string; + + constructor( + label: string, + private parakeet: Parakeet, + private buffer: ArrayBuffer, + private options: DecryptCommandOptions + ) { + this.label = `DecryptCommandHandler(${label})`; + } + + log(label: string, fn: () => R): R { + return timedLogger(`${this.label}: ${label}`, fn); + } + + async decrypt(factories: CryptoFactory[]) { + for (const factory of factories) { + const decryptor = factory(); + + try { + const result = await this.decryptFile(decryptor); + if (result === null) { + continue; + } + return result; + } catch (error) { + if (error instanceof UnsupportedSourceFile) { + console.debug('WARN: decryptor does not recognize source file, wrong crypto?', error); + } else { + console.error('decrypt failed with unknown error: ', error); + } + } + } + + throw new UnsupportedSourceFile('could not decrypt file: no working decryptor found'); + } + + async decryptFile(crypto: CryptoBase) { + if (crypto.checkBySignature && !(await crypto.checkBySignature(this.buffer, this.options))) { + return null; + } + + if (crypto.checkByDecryptHeader && !(await this.acceptByDecryptFileHeader(crypto))) { + return null; + } + + const decrypted = await this.log(`decrypt (${crypto.cryptoName})`, () => crypto.decrypt(this.buffer, this.options)); + + // Check if we had a successful decryption + const audioExt = crypto.overrideExtension ?? (await this.detectAudioExtension(decrypted)); + if (crypto.checkByDecryptHeader && audioExt === 'bin') { + return null; + } + + return { decrypted: URL.createObjectURL(toBlob(decrypted)), ext: audioExt }; + } + + async detectAudioExtension(data: Blob | ArrayBuffer): Promise { + return this.log(`detect-audio-ext`, async () => { + const header = await toArrayBuffer(data.slice(0, TEST_FILE_HEADER_LEN)); + return this.parakeet.detectAudioExtension(header); + }); + } + + async acceptByDecryptFileHeader(crypto: CryptoBase): Promise { + // File too small, ignore. + if (this.buffer.byteLength <= TEST_FILE_HEADER_LEN) { + return true; + } + + // Check by decrypt max first 8MiB + const decryptedBuffer = await this.log(`${crypto.cryptoName}/decrypt-header-test`, async () => + toArrayBuffer(await crypto.decrypt(this.buffer.slice(0, TEST_FILE_HEADER_LEN), this.options)) + ); + + return this.parakeet.detectAudioExtension(decryptedBuffer) !== 'bin'; + } +} + +export const workerDecryptHandler = async ({ id, blobURI, options }: DecryptCommandPayload) => { + const label = `decrypt(${id})`; + return withTimeGroupedLogs(label, async () => { + const parakeet = await timedLogger(`${label}/init`, fetchParakeet); + const blob = await timedLogger(`${label}/fetch-src`, async () => fetch(blobURI).then((r) => r.blob())); + const buffer = await timedLogger(`${label}/read-src`, async () => blob.arrayBuffer()); + + const handler = new DecryptCommandHandler(id, parakeet, buffer, options); + return handler.decrypt(allCryptoFactories); + }); +}; diff --git a/um-react/src/dummy.mjs b/um-react/src/dummy.mjs new file mode 100644 index 0000000..86fdc82 --- /dev/null +++ b/um-react/src/dummy.mjs @@ -0,0 +1,2 @@ +// This is a dummy module for vite/rollup to resolve. +Object.defineProperty(Object.create(null), { sideEffects: true }); diff --git a/um-react/src/features/file-listing/AlbumImage.tsx b/um-react/src/features/file-listing/AlbumImage.tsx new file mode 100644 index 0000000..22c8dd2 --- /dev/null +++ b/um-react/src/features/file-listing/AlbumImage.tsx @@ -0,0 +1,24 @@ +import { Box, Image } from '@chakra-ui/react'; +import noCoverFallbackImageURL from '~/assets/no-cover.svg'; + +interface AlbumImageProps { + url?: string; + name?: string; +} + +export function AlbumImage({ name, url }: AlbumImageProps) { + const coverAlternativeText = name ? `${name} 的专辑封面` : '专辑封面'; + + return ( + + {coverAlternativeText} + + ); +} diff --git a/um-react/src/features/file-listing/FileError.tsx b/um-react/src/features/file-listing/FileError.tsx new file mode 100644 index 0000000..62d8550 --- /dev/null +++ b/um-react/src/features/file-listing/FileError.tsx @@ -0,0 +1,38 @@ +import { chakra, Box, Button, Collapse, Text, useDisclosure } from '@chakra-ui/react'; +import { DecryptErrorType } from '~/decrypt-worker/util/DecryptError'; + +export interface FileErrorProps { + error: null | string; + code: null | string; +} + +const errorMap = new Map([ + [DecryptErrorType.UNSUPPORTED_FILE, '尚未支持的文件格式'], +]); + +export function FileError({ error, code }: FileErrorProps) { + const { isOpen, onToggle } = useDisclosure(); + const errorSummary = errorMap.get(code) ?? '未知错误'; + + return ( + + + + 解密错误:{errorSummary} + + {error && ( + + )} + + {error && ( + + + {error} + + + )} + + ); +} diff --git a/um-react/src/features/file-listing/FileListing.tsx b/um-react/src/features/file-listing/FileListing.tsx new file mode 100644 index 0000000..09bec14 --- /dev/null +++ b/um-react/src/features/file-listing/FileListing.tsx @@ -0,0 +1,17 @@ +import { VStack } from '@chakra-ui/react'; + +import { selectFiles } from './fileListingSlice'; +import { useAppSelector } from '~/hooks'; +import { FileRow } from './FileRow'; + +export function FileListing() { + const files = useAppSelector(selectFiles); + + return ( + + {Object.entries(files).map(([id, file]) => ( + + ))} + + ); +} diff --git a/um-react/src/features/file-listing/FileRow.tsx b/um-react/src/features/file-listing/FileRow.tsx new file mode 100644 index 0000000..c33764e --- /dev/null +++ b/um-react/src/features/file-listing/FileRow.tsx @@ -0,0 +1,115 @@ +import { useRef } from 'react'; +import { + Box, + Button, + Card, + CardBody, + Collapse, + GridItem, + Link, + VStack, + Wrap, + WrapItem, + useDisclosure, +} from '@chakra-ui/react'; +import { FileRowResponsiveGrid } from './FileRowResponsiveGrid'; +import { DecryptedAudioFile, deleteFile, ProcessState } from './fileListingSlice'; +import { useAppDispatch } from '~/hooks'; +import { AnimationDefinition } from 'framer-motion'; +import { AlbumImage } from './AlbumImage'; +import { SongMetadata } from './SongMetadata'; +import { FileError } from './FileError'; + +interface FileRowProps { + id: string; + file: DecryptedAudioFile; +} + +export function FileRow({ id, file }: FileRowProps) { + const { isOpen, onClose } = useDisclosure({ defaultIsOpen: true }); + const dispatch = useAppDispatch(); + const isDecrypted = file.state === ProcessState.COMPLETE; + const metadata = file.metadata; + + const nameWithoutExt = file.fileName.replace(/\.[a-z\d]{3,6}$/, ''); + const decryptedName = nameWithoutExt + '.' + file.ext; + + const audioPlayerRef = useRef(null); + const togglePlay = () => { + const player = audioPlayerRef.current; + if (!player) { + return; + } + + if (player.paused) { + player.play(); + } else { + player.pause(); + } + }; + + const onCollapseAnimationComplete = (definition: AnimationDefinition) => { + if (definition === 'exit') { + dispatch(deleteFile({ id })); + } + }; + + return ( + + + + + + + + + + {metadata?.name ?? nameWithoutExt} + + + + {isDecrypted && metadata && } + {file.state === ProcessState.ERROR && } + + + + {file.decrypted && + + + + + + ); +} diff --git a/um-react/src/features/file-listing/FileRowResponsiveGrid.tsx b/um-react/src/features/file-listing/FileRowResponsiveGrid.tsx new file mode 100644 index 0000000..24e2783 --- /dev/null +++ b/um-react/src/features/file-listing/FileRowResponsiveGrid.tsx @@ -0,0 +1,27 @@ +import { Grid, chakra } from '@chakra-ui/react'; + +export const FileRowResponsiveGrid = chakra(Grid, { + baseStyle: { + gridTemplateAreas: { + base: ` + "cover" + "title" + "meta" + "action" + `, + md: ` + "cover title action" + "cover meta action" + `, + }, + gridTemplateRows: { + base: 'repeat(auto-fill)', + md: 'min-content 1fr', + }, + gridTemplateColumns: { + base: '1fr', + md: '160px 1fr', + }, + gap: 3, + }, +}); diff --git a/um-react/src/features/file-listing/SongMetadata.tsx b/um-react/src/features/file-listing/SongMetadata.tsx new file mode 100644 index 0000000..1756fa4 --- /dev/null +++ b/um-react/src/features/file-listing/SongMetadata.tsx @@ -0,0 +1,22 @@ +import { Box, Text } from '@chakra-ui/react'; +import type { AudioMetadata } from './fileListingSlice'; + +export interface SongMetadataProps { + metadata: AudioMetadata; +} + +export function SongMetadata({ metadata }: SongMetadataProps) { + return ( + + + 专辑: {metadata.album} + + + 艺术家: {metadata.artist} + + + 专辑艺术家: {metadata.albumArtist} + + + ); +} diff --git a/um-react/src/features/file-listing/__tests__/FileListing.test.tsx b/um-react/src/features/file-listing/__tests__/FileListing.test.tsx new file mode 100644 index 0000000..a694595 --- /dev/null +++ b/um-react/src/features/file-listing/__tests__/FileListing.test.tsx @@ -0,0 +1,18 @@ +import { FileListing } from '../FileListing'; +import { renderWithProviders, screen } from '~/test-utils/test-helper'; +import { ListingMode } from '../fileListingSlice'; +import { dummyFiles } from './__fixture__/file-list'; + +test('should be able to render a list of 3 items', () => { + renderWithProviders(, { + preloadedState: { + fileListing: { + displayMode: ListingMode.LIST, + files: dummyFiles, + }, + }, + }); + + expect(screen.getAllByTestId('file-row')).toHaveLength(3); + expect(screen.getByText('Für Alice')).toBeInTheDocument(); +}); diff --git a/um-react/src/features/file-listing/__tests__/FileRow.test.tsx b/um-react/src/features/file-listing/__tests__/FileRow.test.tsx new file mode 100644 index 0000000..4cc497e --- /dev/null +++ b/um-react/src/features/file-listing/__tests__/FileRow.test.tsx @@ -0,0 +1,24 @@ +import { renderWithProviders, screen } from '~/test-utils/test-helper'; +import { untouchedFile } from './__fixture__/file-list'; +import { FileRow } from '../FileRow'; +import { completedFile } from './__fixture__/file-list'; + +test('should render no metadata when unavailable', () => { + renderWithProviders(); + + expect(screen.getAllByTestId('file-row')).toHaveLength(1); + expect(screen.getByTestId('audio-meta-song-name')).toHaveTextContent('ready'); + expect(screen.queryByTestId('audio-meta-album-name')).toBeFalsy(); + expect(screen.queryByTestId('audio-meta-song-artist')).toBeFalsy(); + expect(screen.queryByTestId('audio-meta-album-artist')).toBeFalsy(); +}); + +test('should render metadata when file has been processed', () => { + renderWithProviders(); + + expect(screen.getAllByTestId('file-row')).toHaveLength(1); + expect(screen.getByTestId('audio-meta-song-name')).toHaveTextContent('Für Alice'); + expect(screen.getByTestId('audio-meta-album-name')).toHaveTextContent("NOW That's What I Call Cryptography 2023"); + expect(screen.getByTestId('audio-meta-song-artist')).toHaveTextContent('Jixun'); + expect(screen.getByTestId('audio-meta-album-artist')).toHaveTextContent('Cipher Lovers'); +}); diff --git a/um-react/src/features/file-listing/__tests__/__fixture__/file-list.ts b/um-react/src/features/file-listing/__tests__/__fixture__/file-list.ts new file mode 100644 index 0000000..4bdfdab --- /dev/null +++ b/um-react/src/features/file-listing/__tests__/__fixture__/file-list.ts @@ -0,0 +1,46 @@ +import { DecryptedAudioFile, ProcessState } from '../../fileListingSlice'; + +export const untouchedFile: DecryptedAudioFile = { + fileName: 'ready.bin', + raw: 'blob://localhost/file-a', + decrypted: '', + ext: '', + state: ProcessState.QUEUED, + errorMessage: null, + errorCode: null, + metadata: null, +}; + +export const completedFile: DecryptedAudioFile = { + fileName: 'hello-b.bin', + raw: 'blob://localhost/file-b', + decrypted: 'blob://localhost/file-b-decrypted', + ext: 'flac', + state: ProcessState.COMPLETE, + errorMessage: null, + errorCode: null, + metadata: { + name: 'Für Alice', + artist: 'Jixun', + albumArtist: 'Cipher Lovers', + album: "NOW That's What I Call Cryptography 2023", + cover: '', + }, +}; + +export const fileWithError: DecryptedAudioFile = { + fileName: 'hello-c.bin', + raw: 'blob://localhost/file-c', + decrypted: 'blob://localhost/file-c-decrypted', + ext: 'flac', + state: ProcessState.ERROR, + errorMessage: 'Could not decrypt blah blah', + errorCode: null, + metadata: null, +}; + +export const dummyFiles: Record = { + 'file://untouched': untouchedFile, + 'file://completed': completedFile, + 'file://error': fileWithError, +}; diff --git a/um-react/src/features/file-listing/fileListingSlice.ts b/um-react/src/features/file-listing/fileListingSlice.ts new file mode 100644 index 0000000..533f7ea --- /dev/null +++ b/um-react/src/features/file-listing/fileListingSlice.ts @@ -0,0 +1,153 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import type { PayloadAction } from '@reduxjs/toolkit'; +import type { RootState } from '~/store'; + +import type { DecryptionResult } from '~/decrypt-worker/constants'; +import type { DecryptCommandOptions } from '~/decrypt-worker/types'; +import { decryptionQueue } from '~/decrypt-worker/client'; +import { DecryptErrorType } from '~/decrypt-worker/util/DecryptError'; +import { selectQMCv2KeyByFileName, selectKWMv2Key } from '../settings/settingsSelector'; + +export enum ProcessState { + QUEUED = 'QUEUED', + PROCESSING = 'PROCESSING', + COMPLETE = 'COMPLETE', + ERROR = 'ERROR', +} + +export enum ListingMode { + LIST = 'LIST', + CARD = 'CARD', +} + +export interface AudioMetadata { + name: string; + artist: string; + album: string; + albumArtist: string; + cover: string; // blob uri +} + +export interface DecryptedAudioFile { + fileName: string; + raw: string; // blob uri + ext: string; + decrypted: string; // blob uri + state: ProcessState; + errorMessage: null | string; + errorCode: null | DecryptErrorType | string; + metadata: null | AudioMetadata; +} + +export interface FileListingState { + files: Record; + displayMode: ListingMode; +} +const initialState: FileListingState = { + files: Object.create(null), + displayMode: ListingMode.LIST, +}; + +export const processFile = createAsyncThunk< + DecryptionResult, + { fileId: string }, + { rejectValue: { message: string; stack?: string } } +>('fileListing/processFile', async ({ fileId }, thunkAPI) => { + const state = thunkAPI.getState() as RootState; + const file = selectFiles(state)[fileId]; + if (!file) { + const { message, stack } = new Error('ERROR: File not found'); + return thunkAPI.rejectWithValue({ message, stack }); + } + + const onPreProcess = () => { + thunkAPI.dispatch(setFileAsProcessing({ id: fileId })); + }; + + const fileHeader = await fetch(file.raw, { + headers: { + Range: 'bytes=0-1023', + }, + }) + .then((r) => r.blob()) + .then((r) => r.arrayBuffer()); + + const options: DecryptCommandOptions = { + qmc2Key: selectQMCv2KeyByFileName(state, file.fileName), + kwm2key: selectKWMv2Key(state, new DataView(fileHeader)), + }; + return decryptionQueue.add({ id: fileId, blobURI: file.raw, options }, onPreProcess); +}); + +export const fileListingSlice = createSlice({ + name: 'fileListing', + initialState, + reducers: { + addNewFile: (state, { payload }: PayloadAction<{ id: string; fileName: string; blobURI: string }>) => { + state.files[payload.id] = { + fileName: payload.fileName, + raw: payload.blobURI, + decrypted: '', + ext: '', + state: ProcessState.QUEUED, + errorMessage: null, + errorCode: null, + metadata: null, + }; + }, + setDecryptedContent: (state, { payload }: PayloadAction<{ id: string; decryptedBlobURI: string }>) => { + const file = state.files[payload.id]; + if (file) { + file.decrypted = payload.decryptedBlobURI; + } + }, + setFileAsProcessing: (state, { payload }: PayloadAction<{ id: string }>) => { + const file = state.files[payload.id]; + if (file) { + file.state = ProcessState.PROCESSING; + } + }, + deleteFile: (state, { payload }: PayloadAction<{ id: string }>) => { + if (state.files[payload.id]) { + const file = state.files[payload.id]; + if (file.decrypted) { + URL.revokeObjectURL(file.decrypted); + } + if (file.raw) { + URL.revokeObjectURL(file.raw); + } + delete state.files[payload.id]; + } + }, + }, + extraReducers(builder) { + builder.addCase(processFile.fulfilled, (state, action) => { + const { fileId } = action.meta.arg; + const file = state.files[fileId]; + if (!file) return; + + file.state = ProcessState.COMPLETE; + file.decrypted = action.payload.decrypted; + file.ext = action.payload.ext; + // TODO: populate file metadata + }); + + builder.addCase(processFile.rejected, (state, action) => { + const { fileId } = action.meta.arg; + const file = state.files[fileId]; + if (!file) return; + + file.errorMessage = action.error.message ?? 'unknown error'; + file.errorCode = action.error.code ?? null; + file.state = ProcessState.ERROR; + }); + }, +}); + +export const { addNewFile, setFileAsProcessing, setDecryptedContent, deleteFile } = fileListingSlice.actions; + +export const selectFileCount = (state: RootState) => state.fileListing.files.length; +export const selectFiles = (state: RootState) => state.fileListing.files; +export const selectFileListingMode = (state: RootState) => state.fileListing.displayMode; + +export default fileListingSlice.reducer; diff --git a/um-react/src/features/settings/Settings.tsx b/um-react/src/features/settings/Settings.tsx new file mode 100644 index 0000000..6e3ab6a --- /dev/null +++ b/um-react/src/features/settings/Settings.tsx @@ -0,0 +1,159 @@ +import { + chakra, + Box, + Button, + Center, + Flex, + HStack, + Icon, + IconButton, + Menu, + MenuButton, + MenuItem, + MenuList, + Portal, + Spacer, + Tab, + TabList, + TabPanel, + TabPanels, + Tabs, + Text, + VStack, + useBreakpointValue, + useToast, +} from '@chakra-ui/react'; +import { PanelQMCv2Key } from './panels/PanelQMCv2Key'; +import { useState } from 'react'; +import { MdExpandMore, MdMenu, MdOutlineSettingsBackupRestore } from 'react-icons/md'; +import { useAppDispatch, useAppSelector } from '~/hooks'; +import { commitStagingChange, discardStagingChanges } from './settingsSlice'; +import { PanelKWMv2Key } from './panels/PanelKWMv2Key'; +import { selectIsSettingsNotSaved } from './settingsSelector'; + +const TABS: { name: string; Tab: () => JSX.Element }[] = [ + { name: 'QMCv2 密钥', Tab: PanelQMCv2Key }, + { name: 'KWMv2 密钥', Tab: PanelKWMv2Key }, + { + name: '其它/待定', + Tab: () => 这里空空如也~, + }, +]; + +export function Settings() { + const toast = useToast(); + const dispatch = useAppDispatch(); + const isLargeWidthDevice = + useBreakpointValue({ + base: false, + lg: true, + }) ?? false; + + const [tabIndex, setTabIndex] = useState(0); + const handleTabChange = (idx: number) => { + setTabIndex(idx); + }; + const handleResetSettings = () => { + dispatch(discardStagingChanges()); + + toast({ + status: 'info', + title: '未储存的设定已舍弃', + description: '已还原到更改前的状态。', + isClosable: true, + }); + }; + const handleApplySettings = () => { + dispatch(commitStagingChange()); + toast({ + status: 'success', + title: '设定已应用', + isClosable: true, + }); + }; + const isSettingsNotSaved = useAppSelector(selectIsSettingsNotSaved); + + return ( + + + } + rightIcon={} + colorScheme="gray" + variant="outline" + w="full" + flexShrink={0} + hidden={isLargeWidthDevice} + mb="4" + > + {TABS[tabIndex].name} + + + + {TABS.map(({ name }, i) => ( + setTabIndex(i)}> + {name} + + ))} + + + + + + + + + {TABS.map(({ name, Tab }) => ( + + + + + + + +
+ {isSettingsNotSaved ? ( + + 有未储存的更改{' '} + + 设定将在保存后生效 + + + ) : ( + 设定将在保存后生效 + )} +
+ + + } + onClick={handleResetSettings} + colorScheme="red" + variant="ghost" + title="放弃未储存的更改,将设定还原为储存前的状态。" + aria-label="放弃未储存的更改" + /> + + +
+
+
+ ))} +
+
+
+ ); +} diff --git a/um-react/src/features/settings/keyFormats.ts b/um-react/src/features/settings/keyFormats.ts new file mode 100644 index 0000000..a9647d6 --- /dev/null +++ b/um-react/src/features/settings/keyFormats.ts @@ -0,0 +1,73 @@ +import { nanoid } from 'nanoid'; +import { objectify } from 'radash'; + +export function productionKeyToStaging>( + src: P, + make: (k: keyof P, v: P[keyof P]) => null | S +): S[] { + const result: S[] = []; + for (const [key, value] of Object.entries(src)) { + const item = make(key, value as P[keyof P]); + if (item) { + result.push(item); + } + } + return result; +} +export function stagingKeyToProduction(src: S[], toKey: (s: S) => keyof P, toValue: (s: S) => P[keyof P]): P { + return objectify(src, toKey, toValue) as P; +} + +// QMCv2 (QQ) +export interface StagingQMCv2Key { + id: string; + name: string; + ekey: string; +} + +export type ProductionQMCv2Keys = Record; + +export const qmc2StagingToProductionKey = (key: StagingQMCv2Key) => key.name.normalize(); +export const qmc2StagingToProductionValue = (key: StagingQMCv2Key) => key.ekey.trim(); +export const qmc2ProductionToStaging = ( + key: keyof ProductionQMCv2Keys, + value: ProductionQMCv2Keys[keyof ProductionQMCv2Keys] +): StagingQMCv2Key => { + return { + id: nanoid(), + name: key.normalize(), + ekey: value.trim(), + }; +}; + +// KWMv2 (KuWo) + +export interface StagingKWMv2Key { + id: string; + rid: string; + quality: string; + ekey: string; +} + +export type ProductionKWMv2Keys = Record; + +export const parseKwm2ProductionKey = (key: string): null | { rid: string; quality: string } => { + const m = key.match(/^(\d+)-(\w+)$/); + if (!m) return null; + const [_, rid, quality] = m; + + return { rid, quality }; +}; +export const kwm2StagingToProductionKey = (key: StagingKWMv2Key) => `${key.rid}-${key.quality}`; +export const kwm2StagingToProductionValue = (key: StagingKWMv2Key) => key.ekey; +export const kwm2ProductionToStaging = ( + key: keyof ProductionKWMv2Keys, + value: ProductionKWMv2Keys[keyof ProductionKWMv2Keys] +): null | StagingKWMv2Key => { + if (typeof value !== 'string') return null; + + const parsed = parseKwm2ProductionKey(key); + if (!parsed) return null; + + return { id: nanoid(), rid: parsed.rid, quality: parsed.quality, ekey: value }; +}; diff --git a/um-react/src/features/settings/panels/KWMv2/InstructionsPC.tsx b/um-react/src/features/settings/panels/KWMv2/InstructionsPC.tsx new file mode 100644 index 0000000..86d0a07 --- /dev/null +++ b/um-react/src/features/settings/panels/KWMv2/InstructionsPC.tsx @@ -0,0 +1,9 @@ +import { Text } from '@chakra-ui/react'; + +export function InstructionsPC() { + return ( + <> + 使用 Windows 客户端下载的文件不需要导入密钥。 + + ); +} diff --git a/um-react/src/features/settings/panels/KWMv2/KWMv2EKeyItem.tsx b/um-react/src/features/settings/panels/KWMv2/KWMv2EKeyItem.tsx new file mode 100644 index 0000000..f9969a2 --- /dev/null +++ b/um-react/src/features/settings/panels/KWMv2/KWMv2EKeyItem.tsx @@ -0,0 +1,81 @@ +import { + HStack, + Icon, + IconButton, + Input, + InputGroup, + InputLeftElement, + InputRightElement, + ListItem, + Text, + VStack, +} from '@chakra-ui/react'; +import { MdDelete, MdVpnKey } from 'react-icons/md'; +import { kwm2DeleteKey, kwm2UpdateKey } from '../../settingsSlice'; +import { useAppDispatch } from '~/hooks'; +import { memo } from 'react'; +import { StagingKWMv2Key } from '../../keyFormats'; + +export const KWMv2EKeyItem = memo(({ id, ekey, quality, rid, i }: StagingKWMv2Key & { i: number }) => { + const dispatch = useAppDispatch(); + + const updateKey = (prop: keyof StagingKWMv2Key, e: React.ChangeEvent) => + dispatch(kwm2UpdateKey({ id, field: prop, value: e.target.value })); + const deleteKey = () => dispatch(kwm2DeleteKey({ id })); + + return ( + + + + {i + 1} + + + + + updateKey('rid', e)} + type="number" + maxW="8em" + /> + updateKey('quality', e)} + flex={1} + /> + + + + + + + updateKey('ekey', e)} + /> + + + {ekey.length || '?'} + + + + + + } + variant="ghost" + colorScheme="red" + type="button" + onClick={deleteKey} + /> + + + ); +}); diff --git a/um-react/src/features/settings/panels/PanelKWMv2Key.tsx b/um-react/src/features/settings/panels/PanelKWMv2Key.tsx new file mode 100644 index 0000000..ba6d4e7 --- /dev/null +++ b/um-react/src/features/settings/panels/PanelKWMv2Key.tsx @@ -0,0 +1,141 @@ +import { + Box, + Button, + ButtonGroup, + Code, + Flex, + HStack, + Heading, + Icon, + IconButton, + List, + Menu, + MenuButton, + MenuDivider, + MenuItem, + MenuList, + Tab, + TabList, + TabPanel, + TabPanels, + Text, + useToast, +} from '@chakra-ui/react'; +import { useState } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { MdAdd, MdDeleteForever, MdExpandMore, MdFileUpload } from 'react-icons/md'; + +import { ImportSecretModal } from '~/components/ImportSecretModal'; +import { MMKVParser } from '~/util/MMKVParser'; + +import { kwm2AddKey, kwm2ClearKeys, kwm2ImportKeys } from '../settingsSlice'; +import { selectStagingKWMv2Keys } from '../settingsSelector'; +import { KWMv2EKeyItem } from './KWMv2/KWMv2EKeyItem'; +import type { StagingKWMv2Key } from '../keyFormats'; +import { InstructionsPC } from './KWMv2/InstructionsPC'; +import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; + +export function PanelKWMv2Key() { + const toast = useToast(); + const dispatch = useDispatch(); + const kwm2Keys = useSelector(selectStagingKWMv2Keys); + const [showImportModal, setShowImportModal] = useState(false); + + const addKey = () => dispatch(kwm2AddKey()); + const clearAll = () => dispatch(kwm2ClearKeys()); + const handleSecretImport = async (file: File) => { + let keys: Omit[] | null = null; + if (/cn\.kuwo\.player\.mmkv/i.test(file.name)) { + const fileBuffer = await file.arrayBuffer(); + keys = MMKVParser.parseKuwoEKey(new DataView(fileBuffer)); + } + if (keys?.length === 0) { + toast({ + title: '未导入密钥', + description: '选择的密钥数据库文件未发现任何可用的密钥。', + isClosable: true, + status: 'warning', + }); + } else if (keys) { + dispatch(kwm2ImportKeys(keys)); + setShowImportModal(false); + toast({ + title: `导入完成,共导入了 ${keys.length} 个密钥。`, + description: '记得按下「保存」来应用。', + isClosable: true, + status: 'success', + }); + } else { + toast({ + title: `不支持的文件:${file.name}`, + isClosable: true, + status: 'error', + }); + } + }; + + return ( + + + 酷我解密密钥(KwmV2) + + + + 酷我安卓版本的「臻品音质」已经换用 V2 版,后缀名为 mflac 或沿用旧的 kwm。{''} + 该格式需要提取密钥后才能正常解密。 + + + + + + + }> + + setShowImportModal(true)} icon={}> + 从文件导入密钥… + + + }> + 清空密钥 + + + + + + + + + {kwm2Keys.map(({ id, ekey, quality, rid }, i) => ( + + ))} + + {kwm2Keys.length === 0 && 还没有添加密钥。} + + + setShowImportModal(false)} + onImport={handleSecretImport} + > + + 安卓 + Windows + + + + + + + + + + + + ); +} diff --git a/um-react/src/features/settings/panels/PanelQMCv2Key.tsx b/um-react/src/features/settings/panels/PanelQMCv2Key.tsx new file mode 100644 index 0000000..c309b2c --- /dev/null +++ b/um-react/src/features/settings/panels/PanelQMCv2Key.tsx @@ -0,0 +1,197 @@ +import { + Box, + Button, + ButtonGroup, + Checkbox, + Flex, + HStack, + Heading, + Icon, + IconButton, + List, + Menu, + MenuButton, + MenuDivider, + MenuItem, + MenuList, + Tab, + TabList, + TabPanel, + TabPanels, + Text, + Tooltip, + useToast, +} from '@chakra-ui/react'; +import { useDispatch, useSelector } from 'react-redux'; +import { qmc2AddKey, qmc2AllowFuzzyNameSearch, qmc2ClearKeys, qmc2ImportKeys } from '../settingsSlice'; +import { selectStagingQMCv2Settings } from '../settingsSelector'; +import React, { useState } from 'react'; +import { MdAdd, MdDeleteForever, MdExpandMore, MdFileUpload } from 'react-icons/md'; +import { QMCv2EKeyItem } from './QMCv2/QMCv2EKeyItem'; +import { InfoOutlineIcon } from '@chakra-ui/icons'; +import { ImportSecretModal } from '~/components/ImportSecretModal'; +import { StagingQMCv2Key } from '../keyFormats'; +import { DatabaseKeyExtractor } from '~/util/DatabaseKeyExtractor'; +import { MMKVParser } from '~/util/MMKVParser'; +import { getFileName } from '~/util/pathHelper'; +import { InstructionsIOS } from './QMCv2/InstructionsIOS'; +import { InstructionsMac } from './QMCv2/InstructionsMac'; +import { InstructionsPC } from './QMCv2/InstructionsPC'; +import { AndroidADBPullInstruction } from '~/components/AndroidADBPullInstruction/AndroidADBPullInstruction'; + +export function PanelQMCv2Key() { + const toast = useToast(); + const dispatch = useDispatch(); + const { keys: qmc2Keys, allowFuzzyNameSearch } = useSelector(selectStagingQMCv2Settings); + const [showImportModal, setShowImportModal] = useState(false); + + const addKey = () => dispatch(qmc2AddKey()); + const clearAll = () => dispatch(qmc2ClearKeys()); + + const handleAllowFuzzyNameSearchCheckbox = (e: React.ChangeEvent) => { + dispatch(qmc2AllowFuzzyNameSearch({ enable: e.target.checked })); + }; + + const handleSecretImport = async (file: File) => { + try { + const fileBuffer = await file.arrayBuffer(); + + let qmc2Keys: null | Omit[] = null; + + if (/[_.]db$/i.test(file.name)) { + const extractor = await DatabaseKeyExtractor.getInstance(); + qmc2Keys = extractor.extractQmAndroidDbKeys(fileBuffer); + if (!qmc2Keys) { + alert(`不是支持的 SQLite 数据库文件。\n表名:${qmc2Keys}`); + return; + } + } else if (/MMKVStreamEncryptId|filenameEkeyMap/i.test(file.name)) { + const fileBuffer = await file.arrayBuffer(); + const map = MMKVParser.toStringMap(new DataView(fileBuffer)); + qmc2Keys = Array.from(map.entries(), ([name, ekey]) => ({ name: getFileName(name), ekey })); + } + + if (qmc2Keys?.length === 0) { + toast({ + title: '未导入密钥', + description: '选择的密钥数据库文件未发现任何可用的密钥。', + isClosable: true, + status: 'warning', + }); + } else if (qmc2Keys) { + dispatch(qmc2ImportKeys(qmc2Keys)); + setShowImportModal(false); + toast({ + title: `导入成功 (${qmc2Keys.length})`, + description: '记得保存更改来应用。', + isClosable: true, + status: 'success', + }); + } else { + alert(`不支持的文件:${file.name}`); + } + } catch (e) { + console.error('error during import: ', e); + alert(`导入数据库时发生错误:${e}`); + } + }; + + return ( + + + QMCv2 解密密钥 + + + + QQ 音乐目前采用的加密方案(QMCv2)。在使用「QQ 音乐」安卓、Mac 或 iOS + 客户端的情况下,其「离线加密文件」对应的「密钥」储存在独立的数据库文件内。 + + + + + + + }> + + setShowImportModal(true)} icon={}> + 从文件导入密钥… + + + }> + 清空密钥 + + + + + + + + 匹配相似文件名 + + + 若文件名匹配失败,则使用相似文件名的密钥。 + + 使用「 + + 莱文斯坦距离 + ( + Levenshtein distance + ) + + 」算法计算相似程度。 + + 若密钥数量过多,匹配时可能会造成浏览器卡顿或无响应一段时间。 + 若不确定,请勾选该项。 + + } + > + + + + + + + + {qmc2Keys.map(({ id, ekey, name }, i) => ( + + ))} + + {qmc2Keys.length === 0 && 还没有添加密钥。} + + + setShowImportModal(false)} + onImport={handleSecretImport} + > + + 安卓 + iOS + Mac + Windows + + + + + + + + + + + + + + + + + + ); +} diff --git a/um-react/src/features/settings/panels/QMCv2/InstructionsIOS.tsx b/um-react/src/features/settings/panels/QMCv2/InstructionsIOS.tsx new file mode 100644 index 0000000..3454525 --- /dev/null +++ b/um-react/src/features/settings/panels/QMCv2/InstructionsIOS.tsx @@ -0,0 +1,51 @@ +import { + Accordion, + AccordionButton, + AccordionIcon, + AccordionItem, + AccordionPanel, + Box, + Heading, + Text, +} from '@chakra-ui/react'; +import { InstructionsIOSCondition } from './InstructionsIOSCondition'; + +export function InstructionsIOS() { + return ( + <> + + iOS 设备获取应用私有文件比较麻烦,你需要越狱或使用一台 PC 或 Mac 来对 iOS 设备进行完整备份。 + 因此,建议换用 PC 或 Mac 重新下载音乐文件然后再尝试解密。 + + + + + + + 我的 iOS 设备已经越狱 + + + + + + + + + + + + + + 我的 iOS 设备没有越狱 + + + + + + + + + + + ); +} diff --git a/um-react/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx b/um-react/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx new file mode 100644 index 0000000..2527e09 --- /dev/null +++ b/um-react/src/features/settings/panels/QMCv2/InstructionsIOSCondition.tsx @@ -0,0 +1,101 @@ +import { Box, Code, Heading, Image, ListItem, OrderedList, Text } from '@chakra-ui/react'; +import iosAllowBackup from './iosAllowBackup.webp'; +import { FilePathBlock } from '~/components/FilePathBlock'; + +const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv'; +const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy'; +const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac'; + +export function InstructionsIOSCondition({ jailbreak }: { jailbreak: boolean }) { + const useJailbreak = jailbreak; + const useBackup = !jailbreak; + + const pathPrefix = jailbreak ? '/var/mobile/Containers/Data/Application/<随机>/' : '/AppDomain-'; + + return ( + <> + + 获取密钥数据库文件 + + + {useBackup && ( + + 首先需要在 iOS 客户端的设定允许备份: + + + )} + {useBackup && ( + + 使用你喜欢的备份软件对 iOS 设备进行完整备份; + + )} + + {useBackup && 打开备份文件,并导航到下述目录:} + {useJailbreak && 访问下述目录:} + {pathPrefix}com.tencent.QQMusic/Documents/mmkv/ + + + + 提取或导出密钥数据库文件 filenameEkeyMap; + + + + + 提交导出的 filenameEkeyMap 文件; + + + + 按下「保存」来应用更改。 + + + + + 获取离线文件 + + + 访问下述目录: + + {pathPrefix}com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic + + + 该目录又存在数个子目录,其子目录下保存的「[字符].m[字符]」文件则是最终的加密文件。 + + + 格式:[song_id]-[mid]-[随机数字].m[后缀] + + +  例:{EXAMPLE_NAME_IOS} + + + + + 解密离线文件 + + 勾选设定界面的「使用近似文件名匹配」可跳过该节内容。 + ⚠ 注意:若密钥过多,匹配过程可能会造成浏览器卡顿或无响应。 + + + + 提取文件的 [mid] 部分,如 {EXAMPLE_MEDIA_ID}; + + + + + 查找密钥表,得到文件名「{EXAMPLE_NAME_DB}」; + + + + + 将文件更名为对应的文件名,如{EXAMPLE_NAME_IOS} ➔ + {EXAMPLE_NAME_DB}; + + + + + 回到主界面,提交文件「{EXAMPLE_NAME_DB}」。 + + + + + ); +} diff --git a/um-react/src/features/settings/panels/QMCv2/InstructionsMac.tsx b/um-react/src/features/settings/panels/QMCv2/InstructionsMac.tsx new file mode 100644 index 0000000..44c2526 --- /dev/null +++ b/um-react/src/features/settings/panels/QMCv2/InstructionsMac.tsx @@ -0,0 +1,48 @@ +import { Heading, Text, Code, Kbd, OrderedList, ListItem } from '@chakra-ui/react'; +import { FilePathBlock } from '~/components/FilePathBlock'; +import { MacCommandKey } from '~/components/Key/MacCommandKey'; +import { ShiftKey } from '~/components/Key/ShiftKey'; + +export function InstructionsMac() { + return ( + <> + Mac 客户端使用 mmkv 数据库储存密钥。 + 该密钥文件通常存储在下述路径: + + ~/Library/Containers/com.tencent.QQMusicMac/Data/Library/Application Support/QQMusicMac/mmkv/MMKVStreamEncryptId + + + + 导入密钥 + + + + + 选中并复制上述的 MMKVStreamEncryptId 文件路径 + + + + 点击上方的「文件选择区域」,打开「文件选择框」 + + + + 按下「 + + {' + '} + + {' + '} + {'G'}」组合键打开「路径输入框」 + + + + + 粘贴之前复制的 MMKVStreamEncryptId 文件路径 + + + + 按下「回车键」确认。 + + + + ); +} diff --git a/um-react/src/features/settings/panels/QMCv2/InstructionsPC.tsx b/um-react/src/features/settings/panels/QMCv2/InstructionsPC.tsx new file mode 100644 index 0000000..86d0a07 --- /dev/null +++ b/um-react/src/features/settings/panels/QMCv2/InstructionsPC.tsx @@ -0,0 +1,9 @@ +import { Text } from '@chakra-ui/react'; + +export function InstructionsPC() { + return ( + <> + 使用 Windows 客户端下载的文件不需要导入密钥。 + + ); +} diff --git a/um-react/src/features/settings/panels/QMCv2/QMCv2EKeyItem.tsx b/um-react/src/features/settings/panels/QMCv2/QMCv2EKeyItem.tsx new file mode 100644 index 0000000..305e4de --- /dev/null +++ b/um-react/src/features/settings/panels/QMCv2/QMCv2EKeyItem.tsx @@ -0,0 +1,69 @@ +import { + HStack, + Icon, + IconButton, + Input, + InputGroup, + InputLeftElement, + InputRightElement, + ListItem, + Text, + VStack, +} from '@chakra-ui/react'; +import { MdDelete, MdVpnKey } from 'react-icons/md'; +import { qmc2DeleteKey, qmc2UpdateKey } from '../../settingsSlice'; +import { useAppDispatch } from '~/hooks'; +import { memo } from 'react'; + +export const QMCv2EKeyItem = memo(({ id, name, ekey, i }: { id: string; name: string; ekey: string; i: number }) => { + const dispatch = useAppDispatch(); + + const updateKey = (prop: 'name' | 'ekey', e: React.ChangeEvent) => + dispatch(qmc2UpdateKey({ id, field: prop, value: e.target.value })); + const deleteKey = () => dispatch(qmc2DeleteKey({ id })); + + return ( + + + + {i + 1} + + + + updateKey('name', e)} + /> + + + + + + updateKey('ekey', e)} + /> + + + {ekey.length || '?'} + + + + + + } + variant="ghost" + colorScheme="red" + type="button" + onClick={deleteKey} + /> + + + ); +}); diff --git a/um-react/src/features/settings/panels/QMCv2/iosAllowBackup.webp b/um-react/src/features/settings/panels/QMCv2/iosAllowBackup.webp new file mode 100644 index 0000000000000000000000000000000000000000..513d7b4c83a51a0b67619f30eace86141e07689e GIT binary patch literal 5236 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 literal 0 HcmV?d00001 diff --git a/um-react/src/features/settings/persistSettings.ts b/um-react/src/features/settings/persistSettings.ts new file mode 100644 index 0000000..c16163c --- /dev/null +++ b/um-react/src/features/settings/persistSettings.ts @@ -0,0 +1,63 @@ +import { debounce } from 'radash'; +import { produce } from 'immer'; + +import type { AppStore } from '~/store'; +import { settingsSlice, setProductionChanges, ProductionSettings } from './settingsSlice'; +import { enumObject } from '~/util/objects'; +import { getLogger } from '~/util/logUtils'; +import { parseKwm2ProductionKey } from './keyFormats'; + +const DEFAULT_STORAGE_KEY = 'um-react-settings'; + +function mergeSettings(settings: ProductionSettings): ProductionSettings { + return produce(settingsSlice.getInitialState().production, (draft) => { + if (settings?.qmc2) { + const { allowFuzzyNameSearch, keys } = settings.qmc2; + for (const [k, v] of enumObject(keys)) { + if (typeof v === 'string') { + draft.qmc2.keys[k] = v; + } + } + + if (typeof allowFuzzyNameSearch === 'boolean') { + draft.qmc2.allowFuzzyNameSearch = allowFuzzyNameSearch; + } + } + + if (settings?.kwm2) { + const { keys } = settings.kwm2; + + for (const [k, v] of enumObject(keys)) { + if (typeof v === 'string' && parseKwm2ProductionKey(k)) { + draft.kwm2.keys[k] = v; + } + } + } + }); +} + +export function persistSettings(store: AppStore, storageKey = DEFAULT_STORAGE_KEY) { + let lastSettings: unknown; + + try { + const loadedSettings: ProductionSettings = JSON.parse(localStorage.getItem(storageKey) ?? ''); + if (loadedSettings) { + const mergedSettings = mergeSettings(loadedSettings); + store.dispatch(setProductionChanges(mergedSettings)); + getLogger().debug('settings loaded'); + } + } catch { + // load failed, ignore. + } + + return store.subscribe( + debounce({ delay: 150 }, () => { + const currentSettings = store.getState().settings.production; + if (lastSettings !== currentSettings) { + lastSettings = currentSettings; + localStorage.setItem(storageKey, JSON.stringify(currentSettings)); + getLogger().debug('settings saved'); + } + }) + ); +} diff --git a/um-react/src/features/settings/settingsSelector.ts b/um-react/src/features/settings/settingsSelector.ts new file mode 100644 index 0000000..6b695e5 --- /dev/null +++ b/um-react/src/features/settings/settingsSelector.ts @@ -0,0 +1,49 @@ +import { parseKuwoHeader } from '~/crypto/parseKuwo'; +import type { RootState } from '~/store'; +import { closestByLevenshtein } from '~/util/levenshtein'; +import { hasOwn } from '~/util/objects'; +import { kwm2StagingToProductionKey } from './keyFormats'; + +export const selectIsSettingsNotSaved = (state: RootState) => state.settings.dirty; + +export const selectStagingQMCv2Settings = (state: RootState) => state.settings.staging.qmc2; +export const selectFinalQMCv2Settings = (state: RootState) => state.settings.production.qmc2; + +export const selectStagingKWMv2Keys = (state: RootState) => state.settings.staging.kwm2.keys; +export const selectFinalKWMv2Keys = (state: RootState) => state.settings.production.kwm2.keys; + +export const selectQMCv2KeyByFileName = (state: RootState, name: string): string | undefined => { + const normalizedName = name.normalize(); + + let ekey: string | undefined; + const { keys, allowFuzzyNameSearch } = selectFinalQMCv2Settings(state); + if (hasOwn(keys, normalizedName)) { + ekey = keys[normalizedName]; + } else if (allowFuzzyNameSearch) { + const qmc2KeyStoreNames = Object.keys(keys); + if (qmc2KeyStoreNames.length > 0) { + const closestName = closestByLevenshtein(normalizedName, qmc2KeyStoreNames); + console.debug('qmc2: key db could not find %o, using closest %o instead.', normalizedName, closestName); + ekey = keys[closestName]; + } + } + + return ekey; +}; + +export const selectKWMv2Key = (state: RootState, headerView: DataView): string | undefined => { + const hdr = parseKuwoHeader(headerView); + if (!hdr) { + return; + } + + const keys = selectFinalKWMv2Keys(state); + const lookupKey = kwm2StagingToProductionKey({ id: '', ekey: '', quality: hdr.quality, rid: hdr.rid }); + + let ekey: string | undefined; + if (hasOwn(keys, lookupKey)) { + ekey = keys[lookupKey]; + } + + return ekey; +}; diff --git a/um-react/src/features/settings/settingsSlice.ts b/um-react/src/features/settings/settingsSlice.ts new file mode 100644 index 0000000..10bbaf1 --- /dev/null +++ b/um-react/src/features/settings/settingsSlice.ts @@ -0,0 +1,190 @@ +import { createSlice } from '@reduxjs/toolkit'; +import type { PayloadAction } from '@reduxjs/toolkit'; +import { nanoid } from 'nanoid'; +import { + ProductionKWMv2Keys, + ProductionQMCv2Keys, + StagingKWMv2Key, + StagingQMCv2Key, + kwm2ProductionToStaging, + kwm2StagingToProductionKey, + kwm2StagingToProductionValue, + productionKeyToStaging, + qmc2ProductionToStaging, + qmc2StagingToProductionKey, + qmc2StagingToProductionValue, + stagingKeyToProduction, +} from './keyFormats'; + +export interface StagingSettings { + qmc2: { + keys: StagingQMCv2Key[]; + allowFuzzyNameSearch: boolean; + }; + kwm2: { + keys: StagingKWMv2Key[]; + }; +} + +export interface ProductionSettings { + qmc2: { + keys: ProductionQMCv2Keys; // { [fileName]: ekey } + allowFuzzyNameSearch: boolean; + }; + kwm2: { + keys: ProductionKWMv2Keys; // { [`${rid}-${quality}`]: ekey } + }; +} + +export interface SettingsState { + dirty: boolean; + staging: StagingSettings; + production: ProductionSettings; +} +const initialState: SettingsState = { + dirty: false, + staging: { + qmc2: { allowFuzzyNameSearch: true, keys: [] }, + kwm2: { keys: [] }, + }, + production: { + qmc2: { allowFuzzyNameSearch: true, keys: {} }, + kwm2: { keys: {} }, + }, +}; + +const stagingToProduction = (staging: StagingSettings): ProductionSettings => ({ + qmc2: { + keys: stagingKeyToProduction(staging.qmc2.keys, qmc2StagingToProductionKey, qmc2StagingToProductionValue), + allowFuzzyNameSearch: staging.qmc2.allowFuzzyNameSearch, + }, + kwm2: { + keys: stagingKeyToProduction(staging.kwm2.keys, kwm2StagingToProductionKey, kwm2StagingToProductionValue), + }, +}); + +const productionToStaging = (production: ProductionSettings): StagingSettings => ({ + qmc2: { + keys: productionKeyToStaging(production.qmc2.keys, qmc2ProductionToStaging), + allowFuzzyNameSearch: production.qmc2.allowFuzzyNameSearch, + }, + kwm2: { + keys: productionKeyToStaging(production.kwm2.keys, kwm2ProductionToStaging), + }, +}); + +export const settingsSlice = createSlice({ + name: 'settings', + initialState, + reducers: { + setProductionChanges: (_state, { payload }: PayloadAction) => { + return { + dirty: false, + production: payload, + staging: productionToStaging(payload), + }; + }, + // + qmc2AddKey(state) { + state.staging.qmc2.keys.push({ id: nanoid(), name: '', ekey: '' }); + state.dirty = true; + }, + qmc2ImportKeys(state, { payload }: PayloadAction[]>) { + const newItems = payload.map((item) => ({ id: nanoid(), ...item })); + state.staging.qmc2.keys.push(...newItems); + state.dirty = true; + }, + qmc2DeleteKey(state, { payload: { id } }: PayloadAction<{ id: string }>) { + const qmc2 = state.staging.qmc2; + qmc2.keys = qmc2.keys.filter((item) => item.id !== id); + state.dirty = true; + }, + qmc2UpdateKey( + state, + { payload: { id, field, value } }: PayloadAction<{ id: string; field: keyof StagingQMCv2Key; value: string }> + ) { + const keyItem = state.staging.qmc2.keys.find((item) => item.id === id); + if (keyItem) { + keyItem[field] = value; + state.dirty = true; + } + }, + qmc2ClearKeys(state) { + state.staging.qmc2.keys = []; + state.dirty = true; + }, + qmc2AllowFuzzyNameSearch(state, { payload: { enable } }: PayloadAction<{ enable: boolean }>) { + state.staging.qmc2.allowFuzzyNameSearch = enable; + state.dirty = true; + }, + // TODO: reuse the logic somehow? + kwm2AddKey(state) { + state.staging.kwm2.keys.push({ id: nanoid(), ekey: '', quality: '', rid: '' }); + state.dirty = true; + }, + kwm2ImportKeys(state, { payload }: PayloadAction[]>) { + const newItems = payload.map((item) => ({ id: nanoid(), ...item })); + state.staging.kwm2.keys.push(...newItems); + state.dirty = true; + }, + kwm2DeleteKey(state, { payload: { id } }: PayloadAction<{ id: string }>) { + const kwm2 = state.staging.kwm2; + kwm2.keys = kwm2.keys.filter((item) => item.id !== id); + state.dirty = true; + }, + kwm2UpdateKey( + state, + { payload: { id, field, value } }: PayloadAction<{ id: string; field: keyof StagingKWMv2Key; value: string }> + ) { + const keyItem = state.staging.kwm2.keys.find((item) => item.id === id); + if (keyItem) { + keyItem[field] = value; + state.dirty = true; + } + }, + kwm2ClearKeys(state) { + state.staging.kwm2.keys = []; + state.dirty = true; + }, + // + discardStagingChanges: (state) => { + state.dirty = false; + state.staging = productionToStaging(state.production); + }, + commitStagingChange: (state) => { + const production = stagingToProduction(state.staging); + return { + dirty: false, + // Sync back to staging + staging: productionToStaging(production), + production, + }; + }, + resetConfig: () => { + return initialState; + }, + }, +}); + +export const { + setProductionChanges, + resetConfig, + + qmc2AddKey, + qmc2UpdateKey, + qmc2DeleteKey, + qmc2ClearKeys, + qmc2ImportKeys, + qmc2AllowFuzzyNameSearch, + + kwm2AddKey, + kwm2UpdateKey, + kwm2DeleteKey, + kwm2ClearKeys, + kwm2ImportKeys, + + commitStagingChange, + discardStagingChanges, +} = settingsSlice.actions; + +export default settingsSlice.reducer; diff --git a/um-react/src/hooks.ts b/um-react/src/hooks.ts new file mode 100644 index 0000000..ec02f99 --- /dev/null +++ b/um-react/src/hooks.ts @@ -0,0 +1,6 @@ +import { useDispatch, useSelector } from 'react-redux'; +import type { TypedUseSelectorHook } from 'react-redux'; +import type { RootState, AppDispatch } from './store'; + +export const useAppDispatch: () => AppDispatch = useDispatch; +export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/um-react/src/main.tsx b/um-react/src/main.tsx new file mode 100644 index 0000000..bc08353 --- /dev/null +++ b/um-react/src/main.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; + +import { AppRoot } from './components/AppRoot'; + +import { Light as SyntaxHighlighter } from 'react-syntax-highlighter'; +import hljsSyntaxPowerShell from 'react-syntax-highlighter/dist/esm/languages/hljs/powershell'; +import hljsSyntaxBash from 'react-syntax-highlighter/dist/esm/languages/hljs/bash'; + +SyntaxHighlighter.registerLanguage('ps1', hljsSyntaxPowerShell); +SyntaxHighlighter.registerLanguage('bash', hljsSyntaxBash); + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + +); diff --git a/um-react/src/store.ts b/um-react/src/store.ts new file mode 100644 index 0000000..b97f8a6 --- /dev/null +++ b/um-react/src/store.ts @@ -0,0 +1,18 @@ +import { PreloadedState, combineReducers, configureStore } from '@reduxjs/toolkit'; +import fileListingReducer from './features/file-listing/fileListingSlice'; +import settingsReducer from './features/settings/settingsSlice'; + +const rootReducer = combineReducers({ + fileListing: fileListingReducer, + settings: settingsReducer, +}); + +export const setupStore = (preloadedState?: PreloadedState) => + configureStore({ + reducer: rootReducer, + preloadedState, + }); + +export type RootState = ReturnType; +export type AppStore = ReturnType; +export type AppDispatch = AppStore['dispatch']; diff --git a/um-react/src/tabs/MainTab.tsx b/um-react/src/tabs/MainTab.tsx new file mode 100644 index 0000000..8027d12 --- /dev/null +++ b/um-react/src/tabs/MainTab.tsx @@ -0,0 +1,18 @@ +import { Box, VStack } from '@chakra-ui/react'; +import { SelectFile } from '../components/SelectFile'; + +import { FileListing } from '~/features/file-listing/FileListing'; + +export function MainTab() { + return ( + + + + + + + + + + ); +} diff --git a/um-react/src/tabs/SettingsTab.tsx b/um-react/src/tabs/SettingsTab.tsx new file mode 100644 index 0000000..2642feb --- /dev/null +++ b/um-react/src/tabs/SettingsTab.tsx @@ -0,0 +1,15 @@ +import { Container, Flex, useBreakpointValue } from '@chakra-ui/react'; +import { Settings } from '~/features/settings/Settings'; + +export function SettingsTab() { + const containerProps = useBreakpointValue({ + base: { p: '0' }, + lg: { p: undefined }, + }); + + return ( + + + + ); +} diff --git a/um-react/src/test-utils/setup-jest.ts b/um-react/src/test-utils/setup-jest.ts new file mode 100644 index 0000000..b93e9b1 --- /dev/null +++ b/um-react/src/test-utils/setup-jest.ts @@ -0,0 +1,31 @@ +import '@testing-library/jest-dom'; + +// FIXME: Use something like jsdom-worker? +// see: https://github.com/developit/jsdom-worker +if (!global.Worker) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (global as any).Worker = class MockWorker { + events: Record void> = Object.create(null); + + onmessage = undefined; + addEventListener(name: string, e: unknown) { + if (Object.hasOwn(this.events, name)) { + this.events[name](e); + } + } + }; +} + +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: (query: string) => ({ + matches: false, + media: query, + onchange: null, + addListener: vi.fn(), // deprecated + removeListener: vi.fn(), // deprecated + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), + }), +}); diff --git a/um-react/src/test-utils/test-helper.tsx b/um-react/src/test-utils/test-helper.tsx new file mode 100644 index 0000000..7764c65 --- /dev/null +++ b/um-react/src/test-utils/test-helper.tsx @@ -0,0 +1,26 @@ +import { PreloadedState } from '@reduxjs/toolkit'; +import { RenderOptions, render } from '@testing-library/react'; +import { PropsWithChildren } from 'react'; +import { Provider } from 'react-redux'; +import { AppStore, RootState, setupStore } from '~/store'; + +// Adapted from: https://redux.js.org/usage/writing-tests + +// eslint-disable-next-line react-refresh/only-export-components +export * from '@testing-library/react'; + +export interface ExtendedRenderOptions extends RenderOptions { + preloadedState?: PreloadedState; + store?: AppStore; +} + +export function renderWithProviders( + ui: React.ReactElement, + { preloadedState = {}, store = setupStore(preloadedState), ...renderOptions }: ExtendedRenderOptions = {} +) { + function Wrapper({ children }: PropsWithChildren): JSX.Element { + return {children}; + } + + return { store, ...render(ui, { wrapper: Wrapper, ...renderOptions }) }; +} diff --git a/um-react/src/theme.ts b/um-react/src/theme.ts new file mode 100644 index 0000000..ee8c96a --- /dev/null +++ b/um-react/src/theme.ts @@ -0,0 +1,45 @@ +import { extendTheme } from '@chakra-ui/react'; +import { tabsTheme } from './themes/Tabs'; + +export const theme = extendTheme({ + fonts: { + body: [ + '-system-ui,-apple-system,BlinkMacSystemFont', + 'Source Han Sans CN,Noto Sans CJK SC', + 'Segoe UI,Helvetica,Arial,sans-serif', + 'Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol', + ].join(','), + }, + components: { + Button: { + baseStyle: { + fontWeight: 'normal', + }, + defaultProps: { + colorScheme: 'teal', + }, + }, + Tabs: tabsTheme, + Link: { + baseStyle: { + color: 'blue.600', + }, + }, + }, + styles: { + global: { + '#root': { + minHeight: '100vh', + maxHeight: '100vh', + display: 'flex', + flexDirection: 'column', + }, + }, + }, + sizes: { + footer: { + container: '5rem', + content: '4rem', + }, + }, +}); diff --git a/um-react/src/themes/Tabs.tsx b/um-react/src/themes/Tabs.tsx new file mode 100644 index 0000000..e13a42b --- /dev/null +++ b/um-react/src/themes/Tabs.tsx @@ -0,0 +1,74 @@ +import { tabsAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, cssVar } from '@chakra-ui/react'; + +const $fg = cssVar('tabs-color'); +const $bg = cssVar('tabs-bg'); + +const { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(tabsAnatomy.keys); + +const variantLineInvert = definePartsStyle((props) => { + const { colorScheme: c, orientation } = props; + const isVertical = orientation === 'vertical'; + const borderProp = isVertical ? 'borderEnd' : 'borderTop'; + const marginProp = isVertical ? 'marginEnd' : 'marginTop'; + + return { + tablist: { + [borderProp]: '2px solid', + borderColor: 'inherit', + }, + tabpanels: { + flex: 1, + minH: 0, + }, + tabpanel: { + padding: 0, + }, + tab: { + [borderProp]: '2px solid', + borderColor: 'transparent', + [marginProp]: '-2px', + justifyContent: 'flex-end', + _selected: { + [$fg.variable]: `colors.${c}.600`, + _dark: { + [$fg.variable]: `colors.${c}.300`, + }, + borderColor: 'currentColor', + }, + _active: { + [$bg.variable]: 'colors.gray.200', + _dark: { + [$bg.variable]: 'colors.whiteAlpha.300', + }, + }, + _disabled: { + _active: { bg: 'none' }, + }, + color: $fg.reference, + bg: $bg.reference, + }, + root: { + display: 'flex', + flexDir: isVertical ? 'row' : 'column', + gap: 8, + minH: 0, + }, + }; +}); + +export const tabsTheme = defineMultiStyleConfig({ + baseStyle: { + tablist: { + userSelect: 'none', + }, + tabpanel: { + minHeight: 0, + overflow: 'auto', + maxHeight: '100%', + }, + }, + variants: { + 'line-i': variantLineInvert, + }, +}); diff --git a/um-react/src/util/ConcurrentQueue.ts b/um-react/src/util/ConcurrentQueue.ts new file mode 100644 index 0000000..dd8e339 --- /dev/null +++ b/um-react/src/util/ConcurrentQueue.ts @@ -0,0 +1,48 @@ +import { nextTickAsync } from './nextTick'; + +export abstract class ConcurrentQueue { + protected items: [T, (result: R) => void, (error: unknown) => void, void | (() => void)][] = []; + + constructor(protected maxConcurrent = 5) {} + + abstract handler(item: T): Promise; + + public async add(item: T, onPreProcess?: () => void): Promise { + return new Promise((resolve, reject) => { + this.items.push([item, resolve, reject, onPreProcess]); + this.runWorkerIfFree(); + }); + } + + private runWorkerIfFree() { + if (this.maxConcurrent > 0) { + this.maxConcurrent--; + this.processQueue() + /* c8 ignore start: imposible to reach */ + .catch((e) => { + console.error('process queue with error, continue.', e); + }) + /* c8 ignore stop: imposible to reach */ + .finally(() => { + this.maxConcurrent++; + }); + } + } + + private async processQueue() { + let item: (typeof this.items)[0] | void; + while ((item = this.items.shift())) { + const [payload, resolve, reject, onPreProcess] = item; + + try { + onPreProcess?.(); + + resolve(await this.handler(payload)); + } catch (error: unknown) { + reject(error); + } finally { + await nextTickAsync(); + } + } + } +} diff --git a/um-react/src/util/DatabaseKeyExtractor.ts b/um-react/src/util/DatabaseKeyExtractor.ts new file mode 100644 index 0000000..0a4b8e9 --- /dev/null +++ b/um-react/src/util/DatabaseKeyExtractor.ts @@ -0,0 +1,50 @@ +import { getFileName } from './pathHelper'; +import { SQLDatabase, SQLStatic, loadSQL } from './sqlite'; + +export interface QMAndroidKeyEntry { + name: string; + ekey: string; +} + +export class DatabaseKeyExtractor { + private static _instance: DatabaseKeyExtractor; + + static async getInstance() { + if (!DatabaseKeyExtractor._instance) { + DatabaseKeyExtractor._instance = new DatabaseKeyExtractor(await loadSQL()); + } + return DatabaseKeyExtractor._instance; + } + + constructor(private SQL: SQLStatic) {} + + private hasTable(db: SQLDatabase, name: string): boolean { + const tables = db.exec('SELECT name FROM sqlite_master WHERE type="table"')[0].values.map((x) => x[0]); + return tables.includes(name); + } + + extractQmAndroidDbKeys(buffer: ArrayBuffer): null | QMAndroidKeyEntry[] { + let db: SQLDatabase | null = null; + + try { + db = new this.SQL.Database(new Uint8Array(buffer)); + if (!this.hasTable(db, 'audio_file_ekey_table')) { + return null; + } + + const result = db.exec('select file_path, ekey from audio_file_ekey_table'); + if (result.length === 0) { + return []; + } + + const keys = result[0].values; + return keys.map(([path, ekey]) => ({ + // strip dir name + name: getFileName(String(path)), + ekey: String(ekey), + })); + } finally { + db?.close(); + } + } +} diff --git a/um-react/src/util/DecryptionQueue.ts b/um-react/src/util/DecryptionQueue.ts new file mode 100644 index 0000000..6f65dbd --- /dev/null +++ b/um-react/src/util/DecryptionQueue.ts @@ -0,0 +1,15 @@ +import type { DecryptCommandPayload } from '~/decrypt-worker/types'; +import { DECRYPTION_WORKER_ACTION_NAME, DecryptionResult } from '~/decrypt-worker/constants'; + +import { ConcurrentQueue } from './ConcurrentQueue'; +import { WorkerClientBus } from './WorkerEventBus'; + +export class DecryptionQueue extends ConcurrentQueue { + constructor(private workerClientBus: WorkerClientBus, maxQueue?: number) { + super(maxQueue); + } + + async handler(item: DecryptCommandPayload): Promise { + return this.workerClientBus.request(DECRYPTION_WORKER_ACTION_NAME.DECRYPT, item); + } +} diff --git a/um-react/src/util/MMKVParser.ts b/um-react/src/util/MMKVParser.ts new file mode 100644 index 0000000..f2a7d43 --- /dev/null +++ b/um-react/src/util/MMKVParser.ts @@ -0,0 +1,125 @@ +import type { StagingKWMv2Key } from '~/features/settings/keyFormats'; +import { bytesToUTF8String } from '~/decrypt-worker/util/utf8Encoder'; +import { formatHex } from './formatHex'; + +export class MMKVParser { + private offset = 4; + private length: number; + + constructor(private view: DataView) { + const payloadLength = view.getUint32(0, true); + this.length = 4 + payloadLength; + + // skip unused str + this.readInt(); + } + + toString() { + const offset = formatHex(this.offset, 8); + const length = formatHex(this.length, 8); + return ``; + } + + get eof() { + return this.offset >= this.length; + } + + public readByte() { + return this.view.getUint8(this.offset++); + } + + public readBigInt() { + let value = 0n; + let shift = 0n; + + let b: number; + do { + b = this.readByte(); + value |= BigInt(b & 0x7f) << shift; + shift += 7n; + } while ((b & 0x80) !== 0); + + return value; + } + + public readInt() { + const value = this.readBigInt(); + + if (value > Number.MAX_SAFE_INTEGER) { + throw new Error('Runtime Error: BigInt too large to cast as number'); + } + + return Number(value); + } + + public readBytes(n: number) { + const offset = this.offset; + const end = offset + n; + this.offset = end; + return new Uint8Array(this.view.buffer.slice(offset, end)); + } + + public readString() { + // String [ + // len: int, + // data: byte[int], # utf-8 + // ] + const strByteLen = this.readInt(); + const data = this.readBytes(strByteLen); + return bytesToUTF8String(data).normalize(); + } + + public readVariantString() { + // Container [ + // len: int, + // data: variant + // ] + const containerLen = this.readInt(); + const newOffset = this.offset + containerLen; + const result = this.readString(); + if (newOffset !== this.offset) { + const expected = formatHex(newOffset); + const actual = formatHex(this.offset); + throw new Error(`readVariantString failed: offset does mismatch (expect: ${expected}, actual: ${actual})`); + } + return result; + } + + public skipContainer() { + // Container [ + // len: int, + // data: variant + // ] + const containerLen = this.readInt(); + this.offset += containerLen; + } + + public static toStringMap(view: DataView): Map { + const mmkv = new MMKVParser(view); + const result = new Map(); + while (!mmkv.eof) { + const key = mmkv.readString(); + const value = mmkv.readVariantString(); + result.set(key, value); + } + return result; + } + + public static parseKuwoEKey(view: DataView) { + const mmkv = new MMKVParser(view); + const result: Omit[] = []; + while (!mmkv.eof) { + const key = mmkv.readString(); + const idMatch = key.match(/^sec_ekey#(\d+)-(.+)/); + if (!idMatch) { + mmkv.skipContainer(); + continue; + } + + const [_, rid, quality] = idMatch; + const ekey = mmkv.readVariantString(); + result.push({ rid, quality, ekey }); + } + return result; + } +} diff --git a/um-react/src/util/WorkerEventBus.ts b/um-react/src/util/WorkerEventBus.ts new file mode 100644 index 0000000..54ad649 --- /dev/null +++ b/um-react/src/util/WorkerEventBus.ts @@ -0,0 +1,94 @@ +import { nanoid } from 'nanoid'; +import { DecryptError } from '~/decrypt-worker/util/DecryptError'; + +type WorkerServerHandler = (payload: P) => R | Promise; + +interface SerializedError { + message: string; + stack?: string; + code?: string; +} + +interface WorkerClientRequestPayload

{ + id: string; + action: string; + payload: P; +} + +interface WorkerServerResponsePayload { + id: string; + result: R; + error: SerializedError; +} + +export class WorkerClientBus { + private idPromiseMap = new Map void, (error: Error) => void]>(); + + constructor(private worker: Worker) { + worker.addEventListener('message', this.eventHandler); + } + + eventHandler = (e: MessageEvent) => { + const { id, result, error } = e.data; + const actionPromise = this.idPromiseMap.get(id); + if (!actionPromise) { + console.error('cound not fetch worker promise for action: %s', id); + return; + } + this.idPromiseMap.delete(id); + + const [resolve, reject] = actionPromise; + if (error) { + const wrappedError = new Error(error.message, { cause: error }); + wrappedError.stack = error.stack; + Object.assign(wrappedError, { code: error.code ?? null }); + reject(wrappedError); + } else { + resolve(result as never); + } + }; + + async request(actionName: T, payload: P): Promise { + return new Promise((resolve, reject) => { + const id = `request://${actionName}/${nanoid()}`; + this.idPromiseMap.set(id, [resolve, reject]); + this.worker.postMessage({ + id, + action: actionName, + payload, + }); + }); + } +} + +export class WorkerServerBus { + private handlers = new Map>(); + + addEventHandler(actionName: string, handler: WorkerServerHandler) { + this.handlers.set(actionName, handler as WorkerServerHandler); + } + + onmessage = async (e: MessageEvent) => { + const { id, action, payload } = e.data; + const handler = this.handlers.get(action); + + let result = null; + let error = null; + + if (!handler) { + error = new Error('Handler missing for action ' + action); + } else { + try { + result = await handler(payload); + } catch (err: unknown) { + if (err instanceof DecryptError) { + error = err.toJSON(); + } else { + error = err; + } + } + } + + postMessage({ id, result, error }); + }; +} diff --git a/um-react/src/util/__tests__/ConcurrentQueue.test.ts b/um-react/src/util/__tests__/ConcurrentQueue.test.ts new file mode 100644 index 0000000..5074953 --- /dev/null +++ b/um-react/src/util/__tests__/ConcurrentQueue.test.ts @@ -0,0 +1,109 @@ +import { ConcurrentQueue } from '../ConcurrentQueue'; +import { nextTickAsync } from '../nextTick'; + +class SimpleQueue extends ConcurrentQueue { + handler(_item: T): Promise { + throw new Error('Method not overridden'); + } +} + +test('should be able to process the queue within limit', async () => { + const inputs: number[] = []; + const queuedResolver: (() => void)[] = []; + const queue = new SimpleQueue(3); + + try { + vi.spyOn(queue, 'handler').mockImplementation((item) => { + inputs.push(item); + return new Promise((resolve, _reject) => { + queuedResolver.push(resolve); + }); + }); + + const promises = [ + // Add some values + queue.add(1), + queue.add(2), + queue.add(3), + queue.add(4), + queue.add(5), + ]; + + // Should queue 3 things at once + expect(queue.handler).toHaveBeenCalledTimes(3); + expect(inputs).toEqual([1, 2, 3]); + + // Let first 3 go + for (let i = 0; i < 3; i++) { + queuedResolver[i](); + await promises[i]; + } + + // Wait till all fulfilled + while (queuedResolver.length !== 5) { + await nextTickAsync(); + } + + // Now it should've queued everything. + expect(inputs).toEqual([1, 2, 3, 4, 5]); + expect(queue.handler).toHaveBeenCalledTimes(5); + + // Resolve everything + queuedResolver.forEach((resolve) => resolve()); + await Promise.all(promises); + } finally { + vi.spyOn(queue, 'handler').mockRejectedValue(new Error('handler ran too late')); + queuedResolver.forEach((resolve) => resolve()); + } +}); + +test('it should move on to the next item in the queue once failed', async () => { + const inputs: number[] = []; + const queuedResolver: (() => void)[] = []; + const queue = new SimpleQueue(3); + + try { + vi.spyOn(queue, 'handler').mockImplementation((item) => { + if (item === 3) { + throw new Error('dummy error'); + } + + inputs.push(item); + return new Promise((resolve, _reject) => { + queuedResolver.push(() => resolve(item)); + }); + }); + + const promises = [ + // Add some values + queue.add(1), + queue.add(2), + ]; + const errorHandler = vi.fn(); + const badPromise = queue.add(3); + badPromise.catch(errorHandler); + promises.push(queue.add(4)); + promises.push(queue.add(5)); + + // Let first 2 be fulfilled + for (let i = 0; i < 2; i++) { + queuedResolver[i](); + await promises[i]; + } + + // Wait till all fulfilled + while (queuedResolver.length !== 4) { + await nextTickAsync(); + } + + // Should've moved on, as 3 will throw error + expect(queue.handler).toHaveBeenCalledTimes(5); + await expect(badPromise).rejects.toThrowError('dummy error'); + + queuedResolver.forEach((resolve) => resolve()); + expect(Promise.all(promises)).resolves.toEqual([1, 2, 4, 5]); + } finally { + vi.spyOn(queue, 'handler').mockRejectedValue(new Error('handler ran too late')); + queuedResolver.forEach((resolve) => resolve()); + } +}); diff --git a/um-react/src/util/__tests__/DecryptionQueue.test.ts b/um-react/src/util/__tests__/DecryptionQueue.test.ts new file mode 100644 index 0000000..4f2bf35 --- /dev/null +++ b/um-react/src/util/__tests__/DecryptionQueue.test.ts @@ -0,0 +1,32 @@ +import { DECRYPTION_WORKER_ACTION_NAME } from '~/decrypt-worker/constants'; +import { WorkerClientBus } from '../WorkerEventBus'; +import { DecryptionQueue } from '../DecryptionQueue'; + +vi.mock('../WorkerEventBus', () => { + class MyWorkerClientBus { + request() { + throw new Error('request not mocked'); + } + } + + return { WorkerClientBus: MyWorkerClientBus }; +}); + +test('should be able to forward request to worker client bus', async () => { + // This class is mocked + const bus = new WorkerClientBus(null as never); + vi.spyOn(bus, 'request').mockImplementation( + async (actionName: DECRYPTION_WORKER_ACTION_NAME, payload: unknown): Promise => { + return { actionName, payload }; + } + ); + + const queue = new DecryptionQueue(bus, 1); + await expect(queue.add({ id: 'file://1', blobURI: 'blob://mock-file' })).resolves.toEqual({ + actionName: DECRYPTION_WORKER_ACTION_NAME.DECRYPT, + payload: { + blobURI: 'blob://mock-file', + id: 'file://1', + }, + }); +}); diff --git a/um-react/src/util/__tests__/MMKVParser.test.ts b/um-react/src/util/__tests__/MMKVParser.test.ts new file mode 100644 index 0000000..e4eebcb --- /dev/null +++ b/um-react/src/util/__tests__/MMKVParser.test.ts @@ -0,0 +1,19 @@ +import { MMKVParser } from '../MMKVParser'; +import { readFileSync } from 'node:fs'; + +test('parse mmkv file as expected', () => { + const buff = readFileSync(__dirname + '/__fixture__/test.mmkv'); + const view = new DataView(buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength)); + expect(MMKVParser.toStringMap(view)).toEqual( + new Map([ + ['key', 'value'], + [ + 'Lorem Ipsum', + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + + 'Vestibulum congue volutpat metus non molestie. Quisque id est sapien. ' + + 'Fusce eget tristique sem. Donec tellus lacus, viverra sed lectus eget, elementum ultrices dolor. ' + + 'Integer non urna justo.', + ], + ]) + ); +}); diff --git a/um-react/src/util/__tests__/__fixture__/test.mmkv b/um-react/src/util/__tests__/__fixture__/test.mmkv new file mode 100644 index 0000000000000000000000000000000000000000..04a8a013432b3f44aea3464fb9d3ffdc855ad1b7 GIT binary patch literal 288 zcmXAkO-cko427o=-RL3S0h+pl&?p0g=*E3n9hzwUw3Vd6mB$uWW7=6J`QGEp-EcU3 zUwzQm&GimnXI@zn*9DYW171m# z-zMr>e%Yg=D^a1U?qb<{63OM6fMZoh`oE3!8u4zTEu5e4r|J0g Gc>V*1BWaWX literal 0 HcmV?d00001 diff --git a/um-react/src/util/__tests__/enumObject.test.ts b/um-react/src/util/__tests__/enumObject.test.ts new file mode 100644 index 0000000..64ab335 --- /dev/null +++ b/um-react/src/util/__tests__/enumObject.test.ts @@ -0,0 +1,24 @@ +import { enumObject } from '../objects'; + +test('it should ignore and not crash with non-object', () => { + expect(Array.from(enumObject('string' as never))).toEqual([]); +}); + +test('it should ignore and not crash with null', () => { + expect(Array.from(enumObject(null))).toEqual([]); +}); + +test('it be able to iterate object', () => { + expect(Array.from(enumObject({ a: '1', b: '2' }))).toMatchInlineSnapshot(` + [ + [ + "a", + "1", + ], + [ + "b", + "2", + ], + ] + `); +}); diff --git a/um-react/src/util/__tests__/levenshtein.test.ts b/um-react/src/util/__tests__/levenshtein.test.ts new file mode 100644 index 0000000..e3c5b1e --- /dev/null +++ b/um-react/src/util/__tests__/levenshtein.test.ts @@ -0,0 +1,17 @@ +import { closestByLevenshtein, levenshtein } from '../levenshtein'; + +test('levenshtein quick test', () => { + expect(levenshtein('cat', '')).toStrictEqual(3); + expect(levenshtein('', 'cat')).toStrictEqual(3); + expect(levenshtein('cat', 'cat')).toStrictEqual(0); + expect(levenshtein('cat', 'cut')).toStrictEqual(1); + expect(levenshtein('kitten', 'sitting')).toStrictEqual(3); + expect(levenshtein('tier', 'tor')).toStrictEqual(2); + expect(levenshtein('mississippi', 'swiss miss')).toStrictEqual(8); +}); + +test('closestByLevenshtein quick test', () => { + expect(closestByLevenshtein('cat', ['cut', 'dog', 'bat'])).toStrictEqual('cut'); + expect(closestByLevenshtein('dag', ['dog', 'pumpkin'])).toStrictEqual('dog'); + expect(closestByLevenshtein('hello', ['jello', 'yellow', 'bello'])).toStrictEqual('jello'); +}); diff --git a/um-react/src/util/__tests__/pathHelper.test.ts b/um-react/src/util/__tests__/pathHelper.test.ts new file mode 100644 index 0000000..b8ac642 --- /dev/null +++ b/um-react/src/util/__tests__/pathHelper.test.ts @@ -0,0 +1,13 @@ +import { getFileName } from '../pathHelper'; + +test('handle linux path', () => { + expect(getFileName('/path/to/file.bin')).toEqual('file.bin'); +}); + +test('handle win32 path', () => { + expect(getFileName('C:\\system32\\file.bin')).toEqual('file.bin'); +}); + +test('handle file name only as well', () => { + expect(getFileName('file.bin')).toEqual('file.bin'); +}); diff --git a/um-react/src/util/__tests__/splitN.ts.test.ts b/um-react/src/util/__tests__/splitN.ts.test.ts new file mode 100644 index 0000000..448322b --- /dev/null +++ b/um-react/src/util/__tests__/splitN.ts.test.ts @@ -0,0 +1,10 @@ +import { splitN } from '../splitN'; + +test('some test cases', () => { + expect(splitN('1,2,3', ',', 2)).toEqual(['1', '2,3']); + expect(splitN('1,2,3', ',', 3)).toEqual(['1', '2', '3']); + expect(splitN('1,2,3', ',', 4)).toEqual(['1', '2', '3']); + + expect(splitN('1,2,3', '.', 3)).toEqual(['1,2,3']); + expect(splitN('1,2,3', '?', 0)).toEqual(['1,2,3']); +}); diff --git a/um-react/src/util/fnWrapper.ts b/um-react/src/util/fnWrapper.ts new file mode 100644 index 0000000..8c3bdf4 --- /dev/null +++ b/um-react/src/util/fnWrapper.ts @@ -0,0 +1,20 @@ +function isPromise(p: unknown): p is Promise { + return !!p && typeof p === 'object' && 'then' in p && 'catch' in p && 'finally' in p; +} + +export function wrapFunctionCall(pre: () => void, post: () => void, fn: () => R): R { + pre(); + + try { + const result = fn(); + + if (isPromise(result)) { + result.finally(post); + } + + return result; + } catch (e) { + post(); + throw e; + } +} diff --git a/um-react/src/util/formatHex.ts b/um-react/src/util/formatHex.ts new file mode 100644 index 0000000..0d778c1 --- /dev/null +++ b/um-react/src/util/formatHex.ts @@ -0,0 +1,3 @@ +export function formatHex(value: number, len = 8) { + return '0x' + (value | 0).toString(16).padStart(len, '0'); +} diff --git a/um-react/src/util/levenshtein.ts b/um-react/src/util/levenshtein.ts new file mode 100644 index 0000000..340a057 --- /dev/null +++ b/um-react/src/util/levenshtein.ts @@ -0,0 +1,77 @@ +// translation of pseudocode from Wikipedia: +import { stringToUTF8Bytes } from '~/decrypt-worker/util/utf8Encoder'; + +// https://en.wikipedia.org/wiki/Levenshtein_distance#Iterative_with_two_matrix_rows +export function levenshtein(str1: string, str2: string) { + if (str1 === str2) { + return 0; + } + + if (str1.length === 0) { + return str2.length; + } else if (str2.length === 0) { + return str1.length; + } + + // Convert them to Uint8Array to avoid expensive string APIs. + const s = stringToUTF8Bytes(str1.normalize().toLowerCase()); + const t = stringToUTF8Bytes(str2.normalize().toLowerCase()); + const m = s.byteLength; + const n = t.byteLength; + + // create two work vectors of integer distances + let v0 = new Uint32Array(n + 1); + let v1 = new Uint32Array(n + 1); + + // initialize v0 (the previous row of distances) + // this row is A[0][i]: edit distance from an empty s to t; + // that distance is the number of characters to append to s to make t. + for (let i = 0; i <= n; i++) { + v0[i] = i; + } + + for (let i = 0; i < m; i++) { + // calculate v1 (current row distances) from the previous row v0 + + // first element of v1 is A[i + 1][0] + // edit distance is delete (i + 1) chars from s to match empty t + v1[0] = i + 1; + + // use formula to fill in the rest of the row + for (let j = 0; j < n; j++) { + // calculating costs for A[i + 1][j + 1] + const deletionCost = v0[j + 1] + 1; + const insertionCost = v1[j] + 1; + const substitutionCost = v0[j] + (s[i] === t[j] ? 0 : 1); + v1[j + 1] = Math.min(deletionCost, insertionCost, substitutionCost); + } + + // copy v1 (current row) to v0 (previous row) for next iteration + // since data in v1 is always invalidated, a swap without copy could be more efficient + [v0, v1] = [v1, v0]; + } + + // after the last swap, the results of v1 are now in v0 + return v0[n]; +} + +export function closestByLevenshtein(str: string, candidates: string[]) { + // Faster than pre-calculate all and pass scores to Math.min. + const n = candidates.length; + if (n === 0) { + throw new Error('empty candidates'); + } + + let lowestIdx = 0; + let lowestScore = levenshtein(str, candidates[0]); + + for (let i = 1; i < n; i++) { + const score = levenshtein(str, candidates[i]); + if (score < lowestScore) { + lowestScore = score; + lowestIdx = i; + } + } + + return candidates[lowestIdx]; +} diff --git a/um-react/src/util/logUtils.ts b/um-react/src/util/logUtils.ts new file mode 100644 index 0000000..29430b5 --- /dev/null +++ b/um-react/src/util/logUtils.ts @@ -0,0 +1,45 @@ +import { wrapFunctionCall } from './fnWrapper'; + +export function timedLogger(label: string, fn: () => R): R { + if (import.meta.env.ENABLE_PERF_LOG !== '1') { + return fn(); + } else { + return wrapFunctionCall( + () => console.time(label), + () => console.timeEnd(label), + fn + ); + } +} + +export function withGroupedLogs(label: string, fn: () => R): R { + if (import.meta.env.ENABLE_PERF_LOG !== '1') { + return fn(); + } else { + return wrapFunctionCall( + () => console.group(label), + () => (console.groupEnd as (label: string) => void)(label), + () => timedLogger(`${label}/total`, fn) + ); + } +} + +const noop = (..._args: unknown[]) => { + // noop +}; + +const dummyLogger = { + log: noop, + info: noop, + warn: noop, + debug: noop, + trace: noop, +}; + +export function getLogger() { + if (import.meta.env.ENABLE_PERF_LOG === '1') { + return window.console; + } else { + return dummyLogger; + } +} diff --git a/um-react/src/util/nextTick.ts b/um-react/src/util/nextTick.ts new file mode 100644 index 0000000..0b50258 --- /dev/null +++ b/um-react/src/util/nextTick.ts @@ -0,0 +1,14 @@ +type NextTickFn = (callback: () => void) => void; + +/* c8 ignore start */ +const nextTickFn = + typeof setImmediate !== 'undefined' + ? (setImmediate as NextTickFn) + : typeof requestAnimationFrame !== 'undefined' + ? (requestAnimationFrame as NextTickFn) + : (setTimeout as NextTickFn); +/* c8 ignore stop */ + +export async function nextTickAsync() { + return new Promise((resolve) => nextTickFn(resolve)); +} diff --git a/um-react/src/util/objects.ts b/um-react/src/util/objects.ts new file mode 100644 index 0000000..ee7fe14 --- /dev/null +++ b/um-react/src/util/objects.ts @@ -0,0 +1,9 @@ +export function* enumObject(obj: Record | null | void): Generator<[string, T]> { + if (obj && typeof obj === 'object') { + for (const key in obj) { + yield [key, obj[key]]; + } + } +} + +export const { hasOwn } = Object; diff --git a/um-react/src/util/pathHelper.ts b/um-react/src/util/pathHelper.ts new file mode 100644 index 0000000..c50939b --- /dev/null +++ b/um-react/src/util/pathHelper.ts @@ -0,0 +1,3 @@ +export function getFileName(path: string) { + return path.replace(/.*[\\/]/, ''); +} diff --git a/um-react/src/util/splitN.ts b/um-react/src/util/splitN.ts new file mode 100644 index 0000000..0b3d402 --- /dev/null +++ b/um-react/src/util/splitN.ts @@ -0,0 +1,20 @@ +export function splitN(str: string, sep: string, maxN: number) { + if (maxN <= 1) { + return [str]; + } + + const chunks: string[] = []; + const lenSep = sep.length; + let searchIdx = 0; + for (; maxN > 1; maxN--) { + const nextIdx = str.indexOf(sep, searchIdx); + if (nextIdx === -1) { + break; + } + chunks.push(str.slice(searchIdx, nextIdx)); + searchIdx = nextIdx + lenSep; + } + + chunks.push(str.slice(searchIdx)); + return chunks; +} diff --git a/um-react/src/util/sqlite.ts b/um-react/src/util/sqlite.ts new file mode 100644 index 0000000..f1c652c --- /dev/null +++ b/um-react/src/util/sqlite.ts @@ -0,0 +1,15 @@ +import * as initSqlite from 'sql.js'; + +const urlWasm = new URL('@nm/sql.js/dist/sql-wasm.wasm', import.meta.url).toString(); + +export type SQLStatic = Awaited>; +export type SQLDatabase = SQLStatic['Database']['prototype']; + +let sqlLoaderPromise: Promise | void; + +export async function loadSQL() { + if (!sqlLoaderPromise) { + sqlLoaderPromise = initSqlite.default({ locateFile: () => urlWasm }); + } + return await sqlLoaderPromise; +} diff --git a/um-react/src/vite-env.d.ts b/um-react/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/um-react/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/um-react/tsconfig.json b/um-react/tsconfig.json new file mode 100644 index 0000000..86d1a54 --- /dev/null +++ b/um-react/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "types": ["vitest/globals", "@testing-library/jest-dom"], + "module": "ESNext", + "skipLibCheck": true, + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "baseUrl": ".", + "esModuleInterop": true, + "paths": { + "~/*": ["./src/*"], + "@nm/*": ["./node_modules/*"] + } + }, + "include": ["src"], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/um-react/tsconfig.node.json b/um-react/tsconfig.node.json new file mode 100644 index 0000000..b5a3431 --- /dev/null +++ b/um-react/tsconfig.node.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": [ + "vite.config.ts" + ] +} diff --git a/um-react/tsconfig.prod.json b/um-react/tsconfig.prod.json new file mode 100644 index 0000000..a829226 --- /dev/null +++ b/um-react/tsconfig.prod.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig", + "exclude": [ + "./src/**/__tests__/**", + "./src/**/__mocks__/**", + "./src/test-utils/**", + "./src/**/*.test.{js,jsx,ts,tsx}" + ] +} \ No newline at end of file diff --git a/um-react/vite.config.ts b/um-react/vite.config.ts new file mode 100644 index 0000000..cec9341 --- /dev/null +++ b/um-react/vite.config.ts @@ -0,0 +1,108 @@ +import cp from 'node:child_process'; +import url from 'node:url'; +import path from 'node:path'; +import fs from 'node:fs'; + +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import wasm from 'vite-plugin-wasm'; +import replace from '@rollup/plugin-replace'; +import topLevelAwait from 'vite-plugin-top-level-await'; +import { VitePWA } from 'vite-plugin-pwa'; + +const gitRoot = url.fileURLToPath(new URL('.', import.meta.url)); +const pkg = JSON.parse(fs.readFileSync(gitRoot + '/package.json', 'utf-8')); + +function command(cmd, dir = '') { + return cp.execSync(cmd, { cwd: path.join(gitRoot, dir), encoding: 'utf-8' }).trim(); +} + +const COMMAND_GIT_VERSION = 'git describe --long --dirty --tags --always'; +const shortCommit = command(COMMAND_GIT_VERSION); +const version = `${pkg.version}-${shortCommit}`; + +// https://vitejs.dev/config/ +export default defineConfig({ + worker: { + format: 'es', + }, + server: { + fs: { + // Note: + // This is _insecure_, but is required to get pnpm link to work. + // strict: false, + + allow: [ + 'src', + 'node_modules', + + // Allow pnpm to link. + process.env.LIB_PARAKEET_JS_DIR || '../libparakeet-js', + ], + }, + }, + base: './', + optimizeDeps: { + exclude: ['@jixun/libparakeet', 'sql.js'], + }, + plugins: [ + replace({ + preventAssignment: true, + values: { + __APP_VERSION_SHORT__: pkg.version, + __APP_VERSION__: version, + }, + }), + react(), + wasm(), + topLevelAwait(), + VitePWA({ + registerType: 'prompt', + workbox: { + // Cache everything from dist + globPatterns: ['**/*.{js,css,html,ico,png,svg,wasm}'], + }, + manifest: { + display: 'standalone', + name: '音乐解锁 (Unlock Music)', + short_name: '音乐解锁', + lang: 'zh-cmn-Hans-CN', + description: '在现代浏览器解锁已购的加密音乐!', + theme_color: '#ffffff', + icons: [ + { + src: 'pwa-192x192.png', + sizes: '192x192', + type: 'image/png', + purpose: 'maskable', + }, + { + src: 'pwa-512x512.png', + sizes: '512x512', + type: 'image/png', + }, + ], + }, + }), + ], + resolve: { + alias: { + '~': path.resolve(__dirname, 'src'), + '@nm': path.resolve(__dirname, 'node_modules'), + module: path.resolve(__dirname, 'src', 'dummy.mjs'), + }, + }, + build: { + outDir: '../src/renderer', + rollupOptions: { + output: { + manualChunks: { + reacts: ['react', 'react-dom', 'react-dropzone', 'react-promise-suspense', 'react-redux', '@reduxjs/toolkit'], + chakra: ['@chakra-ui/react', '@emotion/react', '@emotion/styled', 'framer-motion'], + icons: ['react-icons', '@chakra-ui/icons'], + utility: ['radash', 'nanoid', 'immer', 'react-syntax-highlighter'], + }, + }, + }, + }, +}); diff --git a/um-react/vitest.config.ts b/um-react/vitest.config.ts new file mode 100644 index 0000000..e7e0842 --- /dev/null +++ b/um-react/vitest.config.ts @@ -0,0 +1,43 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + mockReset: true, + environment: 'jsdom', + setupFiles: ['src/test-utils/setup-jest.ts'], + alias: [ + { + find: /^~\/(.*)/, + replacement: 'src/$1', + }, + ], + // workaround: sql.js is not ESModule friendly, yet... + deps: { + inline: ['sql.js'], + }, + api: { + port: 5174, // vite port + 1 + }, + coverage: { + exclude: [ + // default rules + 'coverage/**', + 'dist/**', + 'packages/*/test{,s}/**', + '**/*.d.ts', + 'cypress/**', + 'test{,s}/**', + 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx}', + '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx}', + '**/*{.,-}spec.{js,cjs,mjs,ts,tsx,jsx}', + '**/__tests__/**', + '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*', + '**/.{eslint,mocha,prettier}rc.{js,cjs,yml}', + + // custom ones + 'src/test-utils/**', + ], + }, + }, +});