From e91ff65c22fce2eaf3a7f18909f47f13fb632072 Mon Sep 17 00:00:00 2001 From: fm453 <1280880631@qq.com> Date: Sun, 8 Sep 2024 23:46:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A1=86=E6=9E=B6=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 14 + .electron-vite/build.ts | 117 + .electron-vite/dev-runner.ts | 263 + .electron-vite/hot-updater.ts | 104 + .electron-vite/log/index.ts | 17 + .electron-vite/plugin/vite-ikaros-tools.ts | 17 + .electron-vite/preloads.ts | 72 + .electron-vite/rollup.config.ts | 92 + .electron-vite/utils.ts | 20 + .electron-vite/vite.config.mts | 175 + .gitignore | 25 +- .vscode/settings.json | 13 + CHANGELOG.md | 152 + DIR.md | 112 + LICENSE | 36 +- README.md | 63 +- README_ZH.md | 37 + build.json | 44 + config/index.ts | 12 + env/dev.env | 11 + env/prod.env | 2 + fixTypes/auto-imports.d.ts | 1780 ++ fixTypes/electron-env.d.ts | 23 + fixTypes/vite-env.d.ts | 12 + package-lock.json | 17076 ++++++++++++++++ package.json | 176 + pnpm-lock.yaml | 12048 +++++++++++ src/main/config/alias.ts | 7 + src/main/config/channels.ts | 213 + src/main/config/const.ts | 33 + src/main/config/domains.ts | 5 + src/main/config/hotPublish.ts | 11 + src/main/config/staticPath.ts | 164 + src/main/config/windowsConfig.ts | 44 + src/main/handle/browserHandle.ts | 323 + src/main/handle/mainHandle.ts | 104 + src/main/handle/printHandle.ts | 25 + src/main/handle/serverHandle.ts | 45 + src/main/handle/updateHandle.ts | 40 + src/main/hook/browserHook.ts | 110 + src/main/hook/devToolHook.ts | 17 + src/main/hook/disableButtonHook.ts | 17 + src/main/hook/exceptionHook.ts | 147 + src/main/hook/hotkeysHook.ts | 30 + src/main/hook/menuHook.ts | 92 + src/main/hook/printHook.ts | 29 + src/main/hook/trayHook.ts | 128 + src/main/index.ts | 78 + src/main/ipc.ts | 419 + src/main/server/index.ts | 67 + src/main/server/server.ts | 81 + src/main/server/wsRouters.ts | 84 + src/main/server/wsServer.ts | 72 + src/main/services/HotUpdater.ts | 101 + src/main/services/HotUpdaterTest.ts | 62 + src/main/services/checkUpdate.ts | 82 + src/main/services/downloadFile.ts | 135 + src/main/services/ipcMain-bak.ts | 186 + src/main/services/ipcMain.ts | 21 + src/main/services/regeditUtils.ts | 165 + src/main/services/trayDiyManager.ts | 38 + src/main/services/trayManager.ts | 30 + src/main/services/windowManager.ts | 100 + src/preload/index.ts | 40 + src/renderer/App.vue | 16 + src/renderer/api/auth.ts | 72 + src/renderer/api/demo.ts | 25 + src/renderer/api/dept.ts | 130 + src/renderer/api/dict.ts | 183 + src/renderer/api/file.ts | 47 + src/renderer/api/log.ts | 56 + src/renderer/api/menu.ts | 209 + src/renderer/api/role.ts | 140 + src/renderer/api/stats.ts | 35 + src/renderer/api/user.ts | 232 + src/renderer/assets/404_images/404.png | Bin 0 -> 98071 bytes src/renderer/assets/404_images/404_cloud.png | Bin 0 -> 4766 bytes src/renderer/assets/icons/svg/close.svg | 1 + .../assets/icons/svg/electron-logo.svg | 529 + src/renderer/assets/icons/svg/mini.svg | 1 + src/renderer/assets/icons/svg/mix.svg | 1 + src/renderer/assets/icons/svg/reduction.svg | 1 + src/renderer/assets/logo.png | Bin 0 -> 111354 bytes .../LandingPage/SystemInformation.vue | 80 + .../components/UniverJs/SDK/open-file-csv.ts | 161 + .../components/UniverJs/SDK/save-data.ts | 91 + .../components/UniverJs/UniverSheet.vue | 307 + src/renderer/components/common/TitleBar.vue | 132 + .../components/updataProgress/index.vue | 154 + src/renderer/error.ts | 20 + src/renderer/fixTypes/auto-imports.d.ts | 586 + src/renderer/fixTypes/components.d.ts | 120 + src/renderer/i18n/index.ts | 32 + src/renderer/i18n/languages/en.ts | 59 + src/renderer/i18n/languages/zh-cn.ts | 66 + src/renderer/index.html | 41 + src/renderer/interceptor.ts | 52 + src/renderer/main-multi-themes.ts | 24 + src/renderer/main-notheme.ts | 30 + src/renderer/main-single-theme.ts | 35 + src/renderer/mock/index.ts | 24 + src/renderer/mock/v1/auth.ts | 41 + src/renderer/mock/v1/dept.ts | 151 + src/renderer/mock/v1/dict.ts | 166 + src/renderer/mock/v1/files.ts | 25 + src/renderer/mock/v1/menu.ts | 1665 ++ src/renderer/mock/v1/role.ts | 333 + src/renderer/mock/v1/stats.ts | 25 + src/renderer/mock/v1/user.ts | 187 + src/renderer/public/loader.html | 131 + src/renderer/public/pay.html | 24 + src/renderer/public/tray.html | 31 + .../public/trayIcon/transparent@1x.png | Bin 0 -> 269 bytes .../public/trayIcon/transparent@2x.png | Bin 0 -> 323 bytes .../public/trayIcon/transparent@3x.png | Bin 0 -> 381 bytes .../public/trayIcon/transparent@4x.png | Bin 0 -> 435 bytes .../public/trayIcon/transparent@5x.png | Bin 0 -> 569 bytes src/renderer/public/trayIcon/trayIcon@1x.png | Bin 0 -> 1969 bytes src/renderer/public/trayIcon/trayIcon@2x.png | Bin 0 -> 3291 bytes src/renderer/public/trayIcon/trayIcon@3x.png | Bin 0 -> 4876 bytes src/renderer/public/trayIcon/trayIcon@4x.png | Bin 0 -> 6762 bytes src/renderer/public/trayIcon/trayIcon@5x.png | Bin 0 -> 8792 bytes src/renderer/router/constantRouterMap.ts | 81 + src/renderer/router/dynamicRouter.ts | 35 + src/renderer/router/index.ts | 40 + src/renderer/router/path2map.ts | 25 + src/renderer/router/themeRouter.ts | 12 + src/renderer/store/index.ts | 28 + src/renderer/store/modules/app.ts | 31 + src/renderer/store/modules/permission.ts | 100 + src/renderer/store/modules/template.ts | 26 + src/renderer/store/modules/test.ts | 25 + src/renderer/store/modules/theme.ts | 25 + src/renderer/store/modules/user.ts | 131 + src/renderer/styles/custom-title.scss | 9 + src/renderer/styles/index.scss | 79 + src/renderer/styles/mixin.scss | 27 + src/renderer/styles/transition.scss | 32 + src/renderer/theme.ts | 4 + src/renderer/themes/_single/App.vue | 18 + src/renderer/themes/_single/router/index.ts | 81 + src/renderer/themes/_single/views/Browser.vue | 403 + .../themes/_single/views/LandingPage.vue | 462 + src/renderer/themes/_single/views/Login.vue | 138 + src/renderer/themes/default/App-theme.vue | 37 + src/renderer/themes/default/App.vue | 37 + .../themes/default/assets/icons/api.svg | 1 + .../themes/default/assets/icons/backtop.svg | 1 + .../themes/default/assets/icons/captcha.svg | 1 + .../themes/default/assets/icons/cascader.svg | 1 + .../themes/default/assets/icons/client.svg | 1 + .../themes/default/assets/icons/close.svg | 1 + .../themes/default/assets/icons/close_all.svg | 1 + .../default/assets/icons/close_left.svg | 1 + .../default/assets/icons/close_other.svg | 1 + .../default/assets/icons/close_right.svg | 1 + .../themes/default/assets/icons/dict.svg | 1 + .../themes/default/assets/icons/document.svg | 1 + .../themes/default/assets/icons/download.svg | 1 + .../themes/default/assets/icons/edit.svg | 1 + .../themes/default/assets/icons/eye-open.svg | 1 + .../themes/default/assets/icons/eye.svg | 1 + .../default/assets/icons/fullscreen-exit.svg | 1 + .../default/assets/icons/fullscreen.svg | 1 + .../themes/default/assets/icons/github.svg | 1 + .../themes/default/assets/icons/homepage.svg | 1 + .../default/assets/icons/indent-decrease.svg | 1 + .../themes/default/assets/icons/ip.svg | 1 + .../themes/default/assets/icons/language.svg | 1 + .../themes/default/assets/icons/link.svg | 1 + .../themes/default/assets/icons/lock.svg | 1 + .../themes/default/assets/icons/menu.svg | 1 + .../themes/default/assets/icons/message.svg | 1 + .../themes/default/assets/icons/monitor.svg | 1 + .../themes/default/assets/icons/moon.svg | 1 + .../themes/default/assets/icons/peoples.svg | 1 + .../themes/default/assets/icons/project.svg | 1 + .../themes/default/assets/icons/publish.svg | 1 + .../themes/default/assets/icons/pv.svg | 1 + .../themes/default/assets/icons/refresh.svg | 1 + .../themes/default/assets/icons/role.svg | 1 + .../themes/default/assets/icons/security.svg | 1 + .../themes/default/assets/icons/setting.svg | 1 + .../themes/default/assets/icons/size.svg | 1 + .../themes/default/assets/icons/sunny.svg | 1 + .../themes/default/assets/icons/system.svg | 1 + .../themes/default/assets/icons/table.svg | 1 + .../themes/default/assets/icons/todolist.svg | 1 + .../themes/default/assets/icons/tree.svg | 1 + .../themes/default/assets/icons/user.svg | 1 + .../themes/default/assets/icons/uv.svg | 1 + .../themes/default/assets/icons/visit.svg | 1 + .../themes/default/assets/images/401.gif | Bin 0 -> 162867 bytes .../themes/default/assets/images/404.png | Bin 0 -> 20613 bytes .../default/assets/images/404_cloud.png | Bin 0 -> 2644 bytes .../assets/images/login-background-dark.jpg | Bin 0 -> 20471 bytes .../assets/images/login-background-light.jpg | Bin 0 -> 32872 bytes src/renderer/themes/default/assets/logo.png | Bin 0 -> 4151 bytes .../default/components/AppLink/index.vue | 38 + .../default/components/Breadcrumb/index.vue | 97 + .../default/components/CURD/PageContent.vue | 1022 + .../default/components/CURD/PageForm.vue | 158 + .../default/components/CURD/PageModal.vue | 372 + .../default/components/CURD/PageSearch.vue | 237 + .../themes/default/components/CURD/types.ts | 268 + .../themes/default/components/CURD/usePage.ts | 73 + .../default/components/CopyButton/index.vue | 62 + .../default/components/Dictionary/index.vue | 76 + .../default/components/GithubCorner/index.vue | 62 + .../default/components/Hamburger/index.vue | 41 + .../default/components/IconSelect/index.vue | 208 + .../default/components/LangSelect/index.vue | 49 + .../default/components/Pagination/index.vue | 81 + .../default/components/SizeSelect/index.vue | 41 + .../default/components/SvgIcon/index.vue | 45 + .../default/components/TableSelect/index.vue | 371 + .../default/components/Upload/MultiUpload.vue | 139 + .../components/Upload/SingleUpload.vue | 79 + .../default/components/WangEditor/index.vue | 74 + .../themes/default/directive/index.ts | 9 + .../default/directive/permission/index.ts | 38 + .../themes/default/enums/CacheEnum.ts | 4 + .../themes/default/enums/DeviceEnum.ts | 14 + .../themes/default/enums/LanguageEnum.ts | 14 + .../themes/default/enums/LayoutEnum.ts | 18 + .../themes/default/enums/MenuTypeEnum.ts | 22 + .../themes/default/enums/ResultEnum.ts | 18 + .../themes/default/enums/SidebarStatusEnum.ts | 14 + src/renderer/themes/default/enums/SizeEnum.ts | 19 + .../themes/default/enums/ThemeEnum.ts | 18 + src/renderer/themes/default/lang/index.ts | 31 + .../themes/default/lang/package/en.ts | 59 + .../themes/default/lang/package/zh-cn.ts | 59 + .../layout/components/AppMain/index.vue | 37 + .../NavBar/components/NavbarLeft.vue | 20 + .../NavBar/components/NavbarRight.vue | 132 + .../layout/components/NavBar/index.vue | 22 + .../Settings/components/LayoutSelect.vue | 108 + .../Settings/components/ThemeColorPicker.vue | 41 + .../layout/components/Settings/index.vue | 147 + .../Sidebar/components/SidebarLogo.vue | 64 + .../Sidebar/components/SidebarMenu.vue | 67 + .../Sidebar/components/SidebarMenuItem.vue | 204 + .../components/SidebarMenuItemTitle.vue | 43 + .../Sidebar/components/SidebarMixTopMenu.vue | 88 + .../layout/components/Sidebar/index.vue | 43 + .../layout/components/TagsView/index.vue | 450 + src/renderer/themes/default/layout/index.vue | 327 + src/renderer/themes/default/main.ts | 16 + .../UniverJs/SDK/open-file-csv.ts | 161 + .../mycomponents/UniverJs/SDK/save-data.ts | 91 + .../mycomponents/UniverJs/UniverSheet.vue | 308 + .../mycomponents/UniverJs/UniverSheet2.vue | 291 + src/renderer/themes/default/plugins/icons.ts | 9 + src/renderer/themes/default/plugins/index.ts | 24 + .../themes/default/plugins/permission.ts | 104 + .../themes/default/router/index-theme.ts | 140 + src/renderer/themes/default/router/index.ts | 134 + src/renderer/themes/default/settings.ts | 27 + src/renderer/themes/default/store/index.ts | 16 + .../themes/default/store/modules/app.ts | 109 + .../default/store/modules/permission.ts | 94 + .../themes/default/store/modules/settings.ts | 125 + .../themes/default/store/modules/tagsView.ts | 253 + .../themes/default/store/modules/user.ts | 97 + src/renderer/themes/default/styles/index.scss | 28 + src/renderer/themes/default/styles/login.scss | 81 + src/renderer/themes/default/styles/reset.scss | 76 + .../default/styles/variables.module.scss | 11 + .../themes/default/styles/variables.scss | 34 + .../themes/default/types/components.d.ts | 107 + src/renderer/themes/default/types/env.d.ts | 40 + src/renderer/themes/default/types/global.d.ts | 95 + src/renderer/themes/default/types/router.d.ts | 54 + src/renderer/themes/default/types/socket.d.ts | 6 + src/renderer/themes/default/utils/i18n.ts | 12 + src/renderer/themes/default/utils/index.ts | 41 + .../themes/default/utils/nprogress.ts | 18 + src/renderer/themes/default/utils/request.ts | 71 + .../views/dashboard/components/VisitTrend.vue | 225 + .../themes/default/views/dashboard/index.vue | 325 + .../themes/default/views/demo/api/apifox.vue | 27 + .../themes/default/views/demo/api/knife4j.vue | 27 + .../themes/default/views/demo/api/swagger.vue | 27 + .../default/views/demo/curd/config/add.ts | 119 + .../default/views/demo/curd/config/content.ts | 121 + .../views/demo/curd/config/content2.ts | 135 + .../default/views/demo/curd/config/edit.ts | 122 + .../default/views/demo/curd/config/search.ts | 74 + .../themes/default/views/demo/curd/index.vue | 157 + .../themes/default/views/demo/dict.vue | 32 + .../default/views/demo/icon-selector.vue | 17 + .../themes/default/views/demo/icons.vue | 139 + .../default/views/demo/internal-doc.vue | 28 + .../children/children/level3-1.vue | 5 + .../children/children/level3-2.vue | 5 + .../demo/multi-level/children/level2.vue | 7 + .../default/views/demo/multi-level/level1.vue | 15 + .../themes/default/views/demo/other.vue | 16 + .../themes/default/views/demo/route-param.vue | 16 + .../themes/default/views/demo/sheet.vue | 63 + .../themes/default/views/demo/signature.vue | 187 + .../views/demo/table-select/config/select.ts | 114 + .../default/views/demo/table-select/index.vue | 51 + .../themes/default/views/demo/upload.vue | 37 + .../themes/default/views/demo/wang-editor.vue | 19 + .../themes/default/views/demo/websocket.vue | 298 + .../themes/default/views/error-page/401.vue | 113 + .../themes/default/views/error-page/404.vue | 276 + .../themes/default/views/login/index.vue | 302 + .../themes/default/views/redirect/index.vue | 15 + .../default/views/system/dept/index.vue | 318 + .../default/views/system/dict/index.vue | 406 + .../themes/default/views/system/log/index.vue | 105 + .../default/views/system/menu/index.vue | 645 + .../default/views/system/role/index.vue | 488 + .../system/user/components/dept-tree.vue | 69 + .../system/user/components/user-import.vue | 147 + .../default/views/system/user/index.vue | 562 + src/renderer/tools/notification.ts | 29 + src/renderer/tools/performance.ts | 58 + src/renderer/tools/timer.ts | 70 + src/renderer/types/Item.d.ts | 4 + src/renderer/types/express.d.ts | 1 + src/renderer/types/glob.d.ts | 1 + src/renderer/types/global.d.ts | 33 + src/renderer/types/image.d.ts | 7 + src/renderer/types/shims-vue.d.ts | 9 + src/renderer/utils/hi.ts | 8 + src/renderer/utils/hi/storage.ts | 65 + src/renderer/utils/ipcRenderer.ts | 60 + src/renderer/utils/request.ts | 71 + src/renderer/views/403.vue | 246 + src/renderer/views/404.vue | 246 + src/renderer/views/Browser.vue | 403 + src/renderer/views/LandingPage.vue | 462 + src/renderer/views/Login.vue | 378 + src/renderer/views/Print.vue | 209 + tsconfig.json | 82 + uno.config.ts | 43 + updateConfig.json | 11 + yarn.lock | 9253 +++++++++ 启动逻辑图.jpg | Bin 0 -> 167445 bytes 343 files changed, 70230 insertions(+), 30 deletions(-) create mode 100644 .editorconfig create mode 100644 .electron-vite/build.ts create mode 100644 .electron-vite/dev-runner.ts create mode 100644 .electron-vite/hot-updater.ts create mode 100644 .electron-vite/log/index.ts create mode 100644 .electron-vite/plugin/vite-ikaros-tools.ts create mode 100644 .electron-vite/preloads.ts create mode 100644 .electron-vite/rollup.config.ts create mode 100644 .electron-vite/utils.ts create mode 100644 .electron-vite/vite.config.mts create mode 100644 .vscode/settings.json create mode 100644 CHANGELOG.md create mode 100644 DIR.md create mode 100644 README_ZH.md create mode 100644 build.json create mode 100644 config/index.ts create mode 100644 env/dev.env create mode 100644 env/prod.env create mode 100644 fixTypes/auto-imports.d.ts create mode 100644 fixTypes/electron-env.d.ts create mode 100644 fixTypes/vite-env.d.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src/main/config/alias.ts create mode 100644 src/main/config/channels.ts create mode 100644 src/main/config/const.ts create mode 100644 src/main/config/domains.ts create mode 100644 src/main/config/hotPublish.ts create mode 100644 src/main/config/staticPath.ts create mode 100644 src/main/config/windowsConfig.ts create mode 100644 src/main/handle/browserHandle.ts create mode 100644 src/main/handle/mainHandle.ts create mode 100644 src/main/handle/printHandle.ts create mode 100644 src/main/handle/serverHandle.ts create mode 100644 src/main/handle/updateHandle.ts create mode 100644 src/main/hook/browserHook.ts create mode 100644 src/main/hook/devToolHook.ts create mode 100644 src/main/hook/disableButtonHook.ts create mode 100644 src/main/hook/exceptionHook.ts create mode 100644 src/main/hook/hotkeysHook.ts create mode 100644 src/main/hook/menuHook.ts create mode 100644 src/main/hook/printHook.ts create mode 100644 src/main/hook/trayHook.ts create mode 100644 src/main/index.ts create mode 100644 src/main/ipc.ts create mode 100644 src/main/server/index.ts create mode 100644 src/main/server/server.ts create mode 100644 src/main/server/wsRouters.ts create mode 100644 src/main/server/wsServer.ts create mode 100644 src/main/services/HotUpdater.ts create mode 100644 src/main/services/HotUpdaterTest.ts create mode 100644 src/main/services/checkUpdate.ts create mode 100644 src/main/services/downloadFile.ts create mode 100644 src/main/services/ipcMain-bak.ts create mode 100644 src/main/services/ipcMain.ts create mode 100644 src/main/services/regeditUtils.ts create mode 100644 src/main/services/trayDiyManager.ts create mode 100644 src/main/services/trayManager.ts create mode 100644 src/main/services/windowManager.ts create mode 100644 src/preload/index.ts create mode 100644 src/renderer/App.vue create mode 100644 src/renderer/api/auth.ts create mode 100644 src/renderer/api/demo.ts create mode 100644 src/renderer/api/dept.ts create mode 100644 src/renderer/api/dict.ts create mode 100644 src/renderer/api/file.ts create mode 100644 src/renderer/api/log.ts create mode 100644 src/renderer/api/menu.ts create mode 100644 src/renderer/api/role.ts create mode 100644 src/renderer/api/stats.ts create mode 100644 src/renderer/api/user.ts create mode 100644 src/renderer/assets/404_images/404.png create mode 100644 src/renderer/assets/404_images/404_cloud.png create mode 100644 src/renderer/assets/icons/svg/close.svg create mode 100644 src/renderer/assets/icons/svg/electron-logo.svg create mode 100644 src/renderer/assets/icons/svg/mini.svg create mode 100644 src/renderer/assets/icons/svg/mix.svg create mode 100644 src/renderer/assets/icons/svg/reduction.svg create mode 100644 src/renderer/assets/logo.png create mode 100644 src/renderer/components/LandingPage/SystemInformation.vue create mode 100644 src/renderer/components/UniverJs/SDK/open-file-csv.ts create mode 100644 src/renderer/components/UniverJs/SDK/save-data.ts create mode 100644 src/renderer/components/UniverJs/UniverSheet.vue create mode 100644 src/renderer/components/common/TitleBar.vue create mode 100644 src/renderer/components/updataProgress/index.vue create mode 100644 src/renderer/error.ts create mode 100644 src/renderer/fixTypes/auto-imports.d.ts create mode 100644 src/renderer/fixTypes/components.d.ts create mode 100644 src/renderer/i18n/index.ts create mode 100644 src/renderer/i18n/languages/en.ts create mode 100644 src/renderer/i18n/languages/zh-cn.ts create mode 100644 src/renderer/index.html create mode 100644 src/renderer/interceptor.ts create mode 100644 src/renderer/main-multi-themes.ts create mode 100644 src/renderer/main-notheme.ts create mode 100644 src/renderer/main-single-theme.ts create mode 100644 src/renderer/mock/index.ts create mode 100644 src/renderer/mock/v1/auth.ts create mode 100644 src/renderer/mock/v1/dept.ts create mode 100644 src/renderer/mock/v1/dict.ts create mode 100644 src/renderer/mock/v1/files.ts create mode 100644 src/renderer/mock/v1/menu.ts create mode 100644 src/renderer/mock/v1/role.ts create mode 100644 src/renderer/mock/v1/stats.ts create mode 100644 src/renderer/mock/v1/user.ts create mode 100644 src/renderer/public/loader.html create mode 100644 src/renderer/public/pay.html create mode 100644 src/renderer/public/tray.html create mode 100644 src/renderer/public/trayIcon/transparent@1x.png create mode 100644 src/renderer/public/trayIcon/transparent@2x.png create mode 100644 src/renderer/public/trayIcon/transparent@3x.png create mode 100644 src/renderer/public/trayIcon/transparent@4x.png create mode 100644 src/renderer/public/trayIcon/transparent@5x.png create mode 100644 src/renderer/public/trayIcon/trayIcon@1x.png create mode 100644 src/renderer/public/trayIcon/trayIcon@2x.png create mode 100644 src/renderer/public/trayIcon/trayIcon@3x.png create mode 100644 src/renderer/public/trayIcon/trayIcon@4x.png create mode 100644 src/renderer/public/trayIcon/trayIcon@5x.png create mode 100644 src/renderer/router/constantRouterMap.ts create mode 100644 src/renderer/router/dynamicRouter.ts create mode 100644 src/renderer/router/index.ts create mode 100644 src/renderer/router/path2map.ts create mode 100644 src/renderer/router/themeRouter.ts create mode 100644 src/renderer/store/index.ts create mode 100644 src/renderer/store/modules/app.ts create mode 100644 src/renderer/store/modules/permission.ts create mode 100644 src/renderer/store/modules/template.ts create mode 100644 src/renderer/store/modules/test.ts create mode 100644 src/renderer/store/modules/theme.ts create mode 100644 src/renderer/store/modules/user.ts create mode 100644 src/renderer/styles/custom-title.scss create mode 100644 src/renderer/styles/index.scss create mode 100644 src/renderer/styles/mixin.scss create mode 100644 src/renderer/styles/transition.scss create mode 100644 src/renderer/theme.ts create mode 100644 src/renderer/themes/_single/App.vue create mode 100644 src/renderer/themes/_single/router/index.ts create mode 100644 src/renderer/themes/_single/views/Browser.vue create mode 100644 src/renderer/themes/_single/views/LandingPage.vue create mode 100644 src/renderer/themes/_single/views/Login.vue create mode 100644 src/renderer/themes/default/App-theme.vue create mode 100644 src/renderer/themes/default/App.vue create mode 100644 src/renderer/themes/default/assets/icons/api.svg create mode 100644 src/renderer/themes/default/assets/icons/backtop.svg create mode 100644 src/renderer/themes/default/assets/icons/captcha.svg create mode 100644 src/renderer/themes/default/assets/icons/cascader.svg create mode 100644 src/renderer/themes/default/assets/icons/client.svg create mode 100644 src/renderer/themes/default/assets/icons/close.svg create mode 100644 src/renderer/themes/default/assets/icons/close_all.svg create mode 100644 src/renderer/themes/default/assets/icons/close_left.svg create mode 100644 src/renderer/themes/default/assets/icons/close_other.svg create mode 100644 src/renderer/themes/default/assets/icons/close_right.svg create mode 100644 src/renderer/themes/default/assets/icons/dict.svg create mode 100644 src/renderer/themes/default/assets/icons/document.svg create mode 100644 src/renderer/themes/default/assets/icons/download.svg create mode 100644 src/renderer/themes/default/assets/icons/edit.svg create mode 100644 src/renderer/themes/default/assets/icons/eye-open.svg create mode 100644 src/renderer/themes/default/assets/icons/eye.svg create mode 100644 src/renderer/themes/default/assets/icons/fullscreen-exit.svg create mode 100644 src/renderer/themes/default/assets/icons/fullscreen.svg create mode 100644 src/renderer/themes/default/assets/icons/github.svg create mode 100644 src/renderer/themes/default/assets/icons/homepage.svg create mode 100644 src/renderer/themes/default/assets/icons/indent-decrease.svg create mode 100644 src/renderer/themes/default/assets/icons/ip.svg create mode 100644 src/renderer/themes/default/assets/icons/language.svg create mode 100644 src/renderer/themes/default/assets/icons/link.svg create mode 100644 src/renderer/themes/default/assets/icons/lock.svg create mode 100644 src/renderer/themes/default/assets/icons/menu.svg create mode 100644 src/renderer/themes/default/assets/icons/message.svg create mode 100644 src/renderer/themes/default/assets/icons/monitor.svg create mode 100644 src/renderer/themes/default/assets/icons/moon.svg create mode 100644 src/renderer/themes/default/assets/icons/peoples.svg create mode 100644 src/renderer/themes/default/assets/icons/project.svg create mode 100644 src/renderer/themes/default/assets/icons/publish.svg create mode 100644 src/renderer/themes/default/assets/icons/pv.svg create mode 100644 src/renderer/themes/default/assets/icons/refresh.svg create mode 100644 src/renderer/themes/default/assets/icons/role.svg create mode 100644 src/renderer/themes/default/assets/icons/security.svg create mode 100644 src/renderer/themes/default/assets/icons/setting.svg create mode 100644 src/renderer/themes/default/assets/icons/size.svg create mode 100644 src/renderer/themes/default/assets/icons/sunny.svg create mode 100644 src/renderer/themes/default/assets/icons/system.svg create mode 100644 src/renderer/themes/default/assets/icons/table.svg create mode 100644 src/renderer/themes/default/assets/icons/todolist.svg create mode 100644 src/renderer/themes/default/assets/icons/tree.svg create mode 100644 src/renderer/themes/default/assets/icons/user.svg create mode 100644 src/renderer/themes/default/assets/icons/uv.svg create mode 100644 src/renderer/themes/default/assets/icons/visit.svg create mode 100644 src/renderer/themes/default/assets/images/401.gif create mode 100644 src/renderer/themes/default/assets/images/404.png create mode 100644 src/renderer/themes/default/assets/images/404_cloud.png create mode 100644 src/renderer/themes/default/assets/images/login-background-dark.jpg create mode 100644 src/renderer/themes/default/assets/images/login-background-light.jpg create mode 100644 src/renderer/themes/default/assets/logo.png create mode 100644 src/renderer/themes/default/components/AppLink/index.vue create mode 100644 src/renderer/themes/default/components/Breadcrumb/index.vue create mode 100644 src/renderer/themes/default/components/CURD/PageContent.vue create mode 100644 src/renderer/themes/default/components/CURD/PageForm.vue create mode 100644 src/renderer/themes/default/components/CURD/PageModal.vue create mode 100644 src/renderer/themes/default/components/CURD/PageSearch.vue create mode 100644 src/renderer/themes/default/components/CURD/types.ts create mode 100644 src/renderer/themes/default/components/CURD/usePage.ts create mode 100644 src/renderer/themes/default/components/CopyButton/index.vue create mode 100644 src/renderer/themes/default/components/Dictionary/index.vue create mode 100644 src/renderer/themes/default/components/GithubCorner/index.vue create mode 100644 src/renderer/themes/default/components/Hamburger/index.vue create mode 100644 src/renderer/themes/default/components/IconSelect/index.vue create mode 100644 src/renderer/themes/default/components/LangSelect/index.vue create mode 100644 src/renderer/themes/default/components/Pagination/index.vue create mode 100644 src/renderer/themes/default/components/SizeSelect/index.vue create mode 100644 src/renderer/themes/default/components/SvgIcon/index.vue create mode 100644 src/renderer/themes/default/components/TableSelect/index.vue create mode 100644 src/renderer/themes/default/components/Upload/MultiUpload.vue create mode 100644 src/renderer/themes/default/components/Upload/SingleUpload.vue create mode 100644 src/renderer/themes/default/components/WangEditor/index.vue create mode 100644 src/renderer/themes/default/directive/index.ts create mode 100644 src/renderer/themes/default/directive/permission/index.ts create mode 100644 src/renderer/themes/default/enums/CacheEnum.ts create mode 100644 src/renderer/themes/default/enums/DeviceEnum.ts create mode 100644 src/renderer/themes/default/enums/LanguageEnum.ts create mode 100644 src/renderer/themes/default/enums/LayoutEnum.ts create mode 100644 src/renderer/themes/default/enums/MenuTypeEnum.ts create mode 100644 src/renderer/themes/default/enums/ResultEnum.ts create mode 100644 src/renderer/themes/default/enums/SidebarStatusEnum.ts create mode 100644 src/renderer/themes/default/enums/SizeEnum.ts create mode 100644 src/renderer/themes/default/enums/ThemeEnum.ts create mode 100644 src/renderer/themes/default/lang/index.ts create mode 100644 src/renderer/themes/default/lang/package/en.ts create mode 100644 src/renderer/themes/default/lang/package/zh-cn.ts create mode 100644 src/renderer/themes/default/layout/components/AppMain/index.vue create mode 100644 src/renderer/themes/default/layout/components/NavBar/components/NavbarLeft.vue create mode 100644 src/renderer/themes/default/layout/components/NavBar/components/NavbarRight.vue create mode 100644 src/renderer/themes/default/layout/components/NavBar/index.vue create mode 100644 src/renderer/themes/default/layout/components/Settings/components/LayoutSelect.vue create mode 100644 src/renderer/themes/default/layout/components/Settings/components/ThemeColorPicker.vue create mode 100644 src/renderer/themes/default/layout/components/Settings/index.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/components/SidebarLogo.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenu.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItem.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItemTitle.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/components/SidebarMixTopMenu.vue create mode 100644 src/renderer/themes/default/layout/components/Sidebar/index.vue create mode 100644 src/renderer/themes/default/layout/components/TagsView/index.vue create mode 100644 src/renderer/themes/default/layout/index.vue create mode 100644 src/renderer/themes/default/main.ts create mode 100644 src/renderer/themes/default/mycomponents/UniverJs/SDK/open-file-csv.ts create mode 100644 src/renderer/themes/default/mycomponents/UniverJs/SDK/save-data.ts create mode 100644 src/renderer/themes/default/mycomponents/UniverJs/UniverSheet.vue create mode 100644 src/renderer/themes/default/mycomponents/UniverJs/UniverSheet2.vue create mode 100644 src/renderer/themes/default/plugins/icons.ts create mode 100644 src/renderer/themes/default/plugins/index.ts create mode 100644 src/renderer/themes/default/plugins/permission.ts create mode 100644 src/renderer/themes/default/router/index-theme.ts create mode 100644 src/renderer/themes/default/router/index.ts create mode 100644 src/renderer/themes/default/settings.ts create mode 100644 src/renderer/themes/default/store/index.ts create mode 100644 src/renderer/themes/default/store/modules/app.ts create mode 100644 src/renderer/themes/default/store/modules/permission.ts create mode 100644 src/renderer/themes/default/store/modules/settings.ts create mode 100644 src/renderer/themes/default/store/modules/tagsView.ts create mode 100644 src/renderer/themes/default/store/modules/user.ts create mode 100644 src/renderer/themes/default/styles/index.scss create mode 100644 src/renderer/themes/default/styles/login.scss create mode 100644 src/renderer/themes/default/styles/reset.scss create mode 100644 src/renderer/themes/default/styles/variables.module.scss create mode 100644 src/renderer/themes/default/styles/variables.scss create mode 100644 src/renderer/themes/default/types/components.d.ts create mode 100644 src/renderer/themes/default/types/env.d.ts create mode 100644 src/renderer/themes/default/types/global.d.ts create mode 100644 src/renderer/themes/default/types/router.d.ts create mode 100644 src/renderer/themes/default/types/socket.d.ts create mode 100644 src/renderer/themes/default/utils/i18n.ts create mode 100644 src/renderer/themes/default/utils/index.ts create mode 100644 src/renderer/themes/default/utils/nprogress.ts create mode 100644 src/renderer/themes/default/utils/request.ts create mode 100644 src/renderer/themes/default/views/dashboard/components/VisitTrend.vue create mode 100644 src/renderer/themes/default/views/dashboard/index.vue create mode 100644 src/renderer/themes/default/views/demo/api/apifox.vue create mode 100644 src/renderer/themes/default/views/demo/api/knife4j.vue create mode 100644 src/renderer/themes/default/views/demo/api/swagger.vue create mode 100644 src/renderer/themes/default/views/demo/curd/config/add.ts create mode 100644 src/renderer/themes/default/views/demo/curd/config/content.ts create mode 100644 src/renderer/themes/default/views/demo/curd/config/content2.ts create mode 100644 src/renderer/themes/default/views/demo/curd/config/edit.ts create mode 100644 src/renderer/themes/default/views/demo/curd/config/search.ts create mode 100644 src/renderer/themes/default/views/demo/curd/index.vue create mode 100644 src/renderer/themes/default/views/demo/dict.vue create mode 100644 src/renderer/themes/default/views/demo/icon-selector.vue create mode 100644 src/renderer/themes/default/views/demo/icons.vue create mode 100644 src/renderer/themes/default/views/demo/internal-doc.vue create mode 100644 src/renderer/themes/default/views/demo/multi-level/children/children/level3-1.vue create mode 100644 src/renderer/themes/default/views/demo/multi-level/children/children/level3-2.vue create mode 100644 src/renderer/themes/default/views/demo/multi-level/children/level2.vue create mode 100644 src/renderer/themes/default/views/demo/multi-level/level1.vue create mode 100644 src/renderer/themes/default/views/demo/other.vue create mode 100644 src/renderer/themes/default/views/demo/route-param.vue create mode 100644 src/renderer/themes/default/views/demo/sheet.vue create mode 100644 src/renderer/themes/default/views/demo/signature.vue create mode 100644 src/renderer/themes/default/views/demo/table-select/config/select.ts create mode 100644 src/renderer/themes/default/views/demo/table-select/index.vue create mode 100644 src/renderer/themes/default/views/demo/upload.vue create mode 100644 src/renderer/themes/default/views/demo/wang-editor.vue create mode 100644 src/renderer/themes/default/views/demo/websocket.vue create mode 100644 src/renderer/themes/default/views/error-page/401.vue create mode 100644 src/renderer/themes/default/views/error-page/404.vue create mode 100644 src/renderer/themes/default/views/login/index.vue create mode 100644 src/renderer/themes/default/views/redirect/index.vue create mode 100644 src/renderer/themes/default/views/system/dept/index.vue create mode 100644 src/renderer/themes/default/views/system/dict/index.vue create mode 100644 src/renderer/themes/default/views/system/log/index.vue create mode 100644 src/renderer/themes/default/views/system/menu/index.vue create mode 100644 src/renderer/themes/default/views/system/role/index.vue create mode 100644 src/renderer/themes/default/views/system/user/components/dept-tree.vue create mode 100644 src/renderer/themes/default/views/system/user/components/user-import.vue create mode 100644 src/renderer/themes/default/views/system/user/index.vue create mode 100644 src/renderer/tools/notification.ts create mode 100644 src/renderer/tools/performance.ts create mode 100644 src/renderer/tools/timer.ts create mode 100644 src/renderer/types/Item.d.ts create mode 100644 src/renderer/types/express.d.ts create mode 100644 src/renderer/types/glob.d.ts create mode 100644 src/renderer/types/global.d.ts create mode 100644 src/renderer/types/image.d.ts create mode 100644 src/renderer/types/shims-vue.d.ts create mode 100644 src/renderer/utils/hi.ts create mode 100644 src/renderer/utils/hi/storage.ts create mode 100644 src/renderer/utils/ipcRenderer.ts create mode 100644 src/renderer/utils/request.ts create mode 100644 src/renderer/views/403.vue create mode 100644 src/renderer/views/404.vue create mode 100644 src/renderer/views/Browser.vue create mode 100644 src/renderer/views/LandingPage.vue create mode 100644 src/renderer/views/Login.vue create mode 100644 src/renderer/views/Print.vue create mode 100644 tsconfig.json create mode 100644 uno.config.ts create mode 100644 updateConfig.json create mode 100644 yarn.lock create mode 100644 启动逻辑图.jpg diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6808a87 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = tab +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = true +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.electron-vite/build.ts b/.electron-vite/build.ts new file mode 100644 index 0000000..2cb7dc3 --- /dev/null +++ b/.electron-vite/build.ts @@ -0,0 +1,117 @@ +process.env.NODE_ENV = "production"; + +import { join } from "path"; +import { say } from "cfonts"; +import { deleteAsync } from "del"; +import chalk from "chalk"; +import { rollup, OutputOptions } from "rollup"; +import { Listr } from "listr2"; +import rollupOptions from "./rollup.config"; +import { errorLog, doneLog } from "./log"; + +const mainOpt = rollupOptions(process.env.NODE_ENV, "main"); +const preloadOpt = rollupOptions(process.env.NODE_ENV, "preload"); +const isCI = process.env.CI || false; + +if (process.env.BUILD_TARGET === "web") web().then(r => { + console.log(r) +}); +else unionBuild().then(r => { + console.log(r) +}); + +async function clean() { + await deleteAsync([ + "dist/electron/main/*", + "dist/electron/renderer/*", + "dist/web/*", + "build/*", + "!build/icons", + "!build/lib", + "!build/lib/electron-build.*", + "!build/icons/icon.*", + ]); + doneLog(`clear done`); + if (process.env.BUILD_TARGET === "onlyClean") process.exit(); +} + +async function unionBuild() { + greeting(); + await clean(); + + const tasksLister = new Listr( + [ + { + title: "building main process", + task: async () => { + try { + const build = await rollup(mainOpt); + await build.write(mainOpt.output as OutputOptions); + } catch (error) { + errorLog(`failed to build main process\n`); + return Promise.reject(error); + } + }, + }, + { + title: "building preload process", + task: async () => { + try { + const build = await rollup(preloadOpt); + await build.write(preloadOpt.output as OutputOptions); + } catch (error) { + errorLog(`failed to build main process\n`); + return Promise.reject(error); + } + }, + }, + { + title: "building renderer process", + task: async (_, tasks) => { + try { + const { build } = await import("vite"); + await build({ configFile: join(__dirname, "vite.config.mts") }); + tasks.output = `take it away ${chalk.yellow( + "`electron-builder`" + )}\n`; + } catch (error) { + errorLog(`failed to build renderer process\n`); + return Promise.reject(error); + } + }, + }, + ], + { + concurrent: true, + exitOnError: true, + } + ); + await tasksLister.run(); +} + +async function web() { + await deleteAsync(["dist/web/*", "!.gitkeep"]); + const { build } = await import("vite"); + build({ configFile: join(__dirname, "vite.config.mts") }).then((res) => { + doneLog(`web build success`); + process.exit(); + }); +} + +function greeting() { + const cols = process.stdout.columns; + let text: boolean | string = ""; + + if (cols > 85) text = `let's-build`; + else if (cols > 60) text = `let's-|build`; + else text = false; + + if (text && !isCI) { + say(text, { + colors: ["yellow"], + font: "simple3d", + space: false, + }); + } else console.log(chalk.yellow.bold(`\n let's-build`)); + console.log(); +} diff --git a/.electron-vite/dev-runner.ts b/.electron-vite/dev-runner.ts new file mode 100644 index 0000000..1bbb680 --- /dev/null +++ b/.electron-vite/dev-runner.ts @@ -0,0 +1,263 @@ +process.env.NODE_ENV = "development"; + +import electron from "electron"; +import chalk from "chalk"; +import {join} from "path"; +import {watch} from "rollup"; +import Portfinder from "portfinder"; +import config from "../config"; +import {say} from "cfonts"; +import {spawn} from "child_process"; +import type {ChildProcess} from "child_process"; +import rollupOptions from "./rollup.config"; + +const mainOpt = rollupOptions(process.env.NODE_ENV, "main"); +const preloadOpt = rollupOptions(process.env.NODE_ENV, "preload"); + +let electronProcess: ChildProcess | null = null; +let manualRestart = false; + +function logStats(proc: string, data: any) { + let log = ""; + + log += chalk.yellow.bold( + `┏ ${proc} ${config.dev.chineseLog ? "编译过程" : "Process"} ${new Array( + 19 - proc.length + 1 + ).join("-")}` + ); + log += "\n\n"; + + if (typeof data === "object") { + data + .toString({ + colors: true, + chunks: false, + }) + .split(/\r?\n/) + .forEach((line) => { + log += " " + line + "\n"; + }); + } else { + log += ` ${data}\n`; + } + + log += "\n" + chalk.yellow.bold(`┗ ${new Array(28 + 1).join("-")}`) + "\n"; + console.log(log); +} + +function removeJunk(chunk: string) { + if (config.dev.removeElectronJunk) { + // Example: 2018-08-10 22:48:42.866 Electron[90311:4883863] *** WARNING: Textured window + if ( + /\d+-\d+-\d+ \d+:\d+:\d+\.\d+ Electron(?: Helper)?\[\d+:\d+] /.test(chunk) + ) { + return false; + } + + // Example: [90789:0810/225804.894349:ERROR:CONSOLE(105)] "Uncaught (in promise) Error: Could not instantiate: ProductRegistryImpl.Registry", source: chrome-devtools://devtools/bundled/inspector.js (105) + if (/\[\d+:\d+\/|\d+\.\d+:ERROR:CONSOLE\(\d+\)\]/.test(chunk)) { + return false; + } + + // Example: ALSA lib confmisc.c:767:(parse_card) cannot find card '0' + if (/ALSA lib [a-z]+\.c:\d+:\([a-z_]+\)/.test(chunk)) { + return false; + } + } + + return chunk; +} + +function startRenderer(): Promise { + return new Promise((resolve, reject) => { + Portfinder.basePort = config.dev.port || 9080; + Portfinder.getPort(async (err, port) => { + if (err) { + reject("PortError:" + err); + } else { + const {createServer} = await import("vite"); + const server = await createServer({ + configFile: join(__dirname, "vite.config.mts"), + }); + process.env.PORT = String(port); + await server.listen(port); + console.log( + "\n\n" + + chalk.blue( + `${ + config.dev.chineseLog + ? " 正在准备主进程,请等待..." + : " Preparing main process, please wait..." + }` + ) + + "\n\n" + ); + resolve(); + } + }); + }); +} + +function startMain(): Promise { + return new Promise((resolve, reject) => { + const MainWatcher = watch(mainOpt); + MainWatcher.on("change", (filename) => { + // 主进程日志部分 + logStats( + `${config.dev.chineseLog ? "主进程文件变更" : "Main-FileChange"}`, + filename + ); + }); + MainWatcher.on("event", (event) => { + if (event.code === "END") { + if (electronProcess) { + manualRestart = true; + electronProcess.pid && process.kill(electronProcess.pid); + electronProcess = null; + startElectron(); + + setTimeout(() => { + manualRestart = false; + }, 5000); + } + + resolve(); + } else if (event.code === "ERROR") { + reject(event.error); + } + }); + }); +} + +function startPreload(): Promise { + console.log( + "\n\n" + + chalk.blue( + `${ + config.dev.chineseLog + ? " 正在准备预加载脚本,请等待..." + : " Preparing preLoad File, please wait..." + }` + ) + + "\n\n" + ); + return new Promise((resolve, reject) => { + const PreloadWatcher = watch(preloadOpt); + PreloadWatcher.on("change", (filename) => { + // 预加载脚本日志部分 + logStats( + `${ + config.dev.chineseLog ? "预加载脚本文件变更" : "preLoad-FileChange" + }`, + filename + ); + }); + PreloadWatcher.on("event", (event) => { + if (event.code === "END") { + if (electronProcess) { + manualRestart = true; + electronProcess.pid && process.kill(electronProcess.pid); + electronProcess = null; + startElectron(); + + setTimeout(() => { + manualRestart = false; + }, 5000); + } + + resolve(); + } else if (event.code === "ERROR") { + reject(event.error); + } + }); + }); +} + +function startElectron() { + let args = [ + "--inspect=5858", + join(__dirname, "../dist/electron/main/main.js"), + ]; + + // detect yarn or npm and process commandline args accordingly + if (process.env.npm_execpath?.endsWith("yarn.js")) { + args = args.concat(process.argv.slice(3)); + } else if (process.env.npm_execpath?.endsWith("npm-cli.js")) { + args = args.concat(process.argv.slice(2)); + } + + electronProcess = spawn(electron as any, args); + + electronProcess.stdout?.on("data", (data: string) => { + electronLog(removeJunk(data), "blue"); + }); + electronProcess.stderr?.on("data", (data: string) => { + electronLog(removeJunk(data), "red"); + }); + + electronProcess.on("close", () => { + if (!manualRestart) process.exit(); + }); +} + +function electronLog(data: any, color: string) { + if (data) { + let log = ""; + data = data.toString().split(/\r?\n/); + data.forEach((line) => { + log += ` ${line}\n`; + }); + console.log( + chalk[color].bold( + `┏ ${ + config.dev.chineseLog ? "主程序日志" : "Electron" + } -------------------` + ) + + "\n\n" + + log + + chalk[color].bold("┗ ----------------------------") + + "\n" + ); + } +} + +function greeting(arg: string) { + const cols = process.stdout.columns; + let text: string; + text = arg ? arg : "Hi-Sass"; + let length = text ? text.length : 0; + if (cols > 104) { + text = length > 104 ? text.slice(0, 103) : text; + } else if (cols > 76) { + text = length > 76 ? text.slice(0, 75) : text; + } else text = ""; + + if (text) { + say(text, { + colors: ["yellow"], + font: "simple3d", + space: false, + }); + } else console.log(chalk.yellow.bold("\n electron-vite")); + console.log( + chalk.blue( + `${config.dev.chineseLog ? " 准备启动..." : " getting ready..."}` + ) + "\n" + ); +} + +async function init() { + greeting("Hi-Sass"); + + try { + await startRenderer(); + await startMain(); + await startPreload(); + startElectron(); + } catch (error) { + console.error(error); + process.exit(1); + } +} + +init(); diff --git a/.electron-vite/hot-updater.ts b/.electron-vite/hot-updater.ts new file mode 100644 index 0000000..ed87b78 --- /dev/null +++ b/.electron-vite/hot-updater.ts @@ -0,0 +1,104 @@ +/** + * power by biuuu + */ + +import chalk from 'chalk' +import {join} from 'path' +import {ensureDir, emptyDir, copy, outputJSON, remove, stat, readFile} from 'fs-extra' +import {createHmac} from 'crypto' +import {platform} from 'os' +import AdmZip from 'adm-zip' +import packageFile from '../package.json' +import buildConfig from '../build.json' +import config from '../config' +import {okayLog, errorLog, doneLog} from './log' + + +const platformName = platform().includes('win32') ? 'win' : platform().includes('darwin') ? 'mac' : 'linux' +const buildPath = join('.', 'build', `${platformName === 'mac' ? 'mac' : platformName + '-unpacked'}`) + +const hash = (data, type = 'sha256') => { + const hmac = createHmac(type, 'Sky') + hmac.update(data) + return hmac.digest('hex') +} + +const createZip = (filePath: string, dest: string) => { + const zip = new AdmZip() + zip.addLocalFolder(filePath, "", undefined) + zip.toBuffer() + zip.writeZip(dest, undefined) +} + +const start = async () => { + console.log(chalk.green.bold(`Start packing \n`)) + + if (buildConfig.asar) { + errorLog(`${chalk.red("Please make sure the build.asar option in the Package.json file is set to false")}\n`) + return; + } + + if (config.build.hotPublishConfigName === '') { + errorLog(`${chalk.red("HotPublishConfigName is not set, which will cause the update to fail, please set it in the config/index.js \n") + chalk.red.bold(`\n Packing failed \n`)}`) + process.exit(1) + } + + stat(join(buildPath, 'resources', 'app'), async (err, stats) => { + if (err) { + errorLog(`${chalk.red("No resource files were found, please execute this command after the build command")}\n`) + return; + } + + try { + console.log(chalk.green.bold(`Check the resource files \n`)) + const packResourcesPath = join('.', 'build', 'resources', 'dist'); + const packPackagePath = join('.', 'build', 'resources'); + const resourcesPath = join('.', 'dist'); + const appPath = join('.', 'build', 'resources'); + const name = "app.zip"; + const outputPath = join('.', 'build', 'update'); + const zipPath = join(outputPath, name); + + + await ensureDir(packResourcesPath); + await emptyDir(packResourcesPath); + await copy(resourcesPath, packResourcesPath); + okayLog(chalk.cyan.bold(`File copy complete \n`)) + await outputJSON(join(packPackagePath, "package.json"), { + name: packageFile.name, + productName: buildConfig.productName, + version: packageFile.version, + description: packageFile.description, + main: packageFile.main, + author: packageFile.author, + dependencies: packageFile.dependencies + }); + okayLog(chalk.cyan.bold(`Rewrite package file complete \n`)) + await ensureDir(outputPath); + await emptyDir(outputPath); + createZip(appPath, zipPath); + const buffer = await readFile(zipPath); + const sha256 = hash(buffer); + const hashName = sha256.slice(7, 12); + await copy(zipPath, join(outputPath, `${hashName}.zip`)); + await outputJSON(join(outputPath, `${config.build.hotPublishConfigName}.json`), + { + version: packageFile.version, + name: `${hashName}.zip`, + hash: sha256 + } + ); + okayLog(chalk.cyan.bold(`Zip file complete, Start cleaning up redundant files \n`)) + await remove(zipPath); + await remove(appPath) + okayLog(chalk.cyan.bold(`Cleaning up redundant files completed \n`)) + doneLog('The resource file is packaged!\n') + console.log("File location: " + chalk.green(outputPath) + "\n"); + } catch (error) { + errorLog(`${chalk.red(error.message || error)}\n`) + process.exit(1) + } + }); +} + +start() diff --git a/.electron-vite/log/index.ts b/.electron-vite/log/index.ts new file mode 100644 index 0000000..974d26c --- /dev/null +++ b/.electron-vite/log/index.ts @@ -0,0 +1,17 @@ +import chalk from 'chalk' + +export const doneLog = (text: string) => { + console.log('\n' + chalk.bgGreen.white(' DONE ') + ' ' + text) +} +export const errorLog = (text: string) => { + console.log('\n ' + chalk.bgRed.white(' ERROR ') + ' ' + text) +} +export const okayLog = (text: string) => { + console.log('\n ' + chalk.bgBlue.white(' OKAY ') + ' ' + text) +} +export const warningLog = (text: string) => { + console.log('\n ' + chalk.bgYellow.white(' WARNING ') + ' ' + text) +} +export const infoLog = (text: string) => { + console.log('\n ' + chalk.bgCyan.white(' INFO ') + ' ' + text) +} \ No newline at end of file diff --git a/.electron-vite/plugin/vite-ikaros-tools.ts b/.electron-vite/plugin/vite-ikaros-tools.ts new file mode 100644 index 0000000..1cafd48 --- /dev/null +++ b/.electron-vite/plugin/vite-ikaros-tools.ts @@ -0,0 +1,17 @@ +import { ResolvedConfig } from "vite"; + +export default () => { + let command = ""; + return { + name: "ikaros-tools", + configResolved(resolvedConfig: ResolvedConfig) { + command = resolvedConfig.command; + }, + buildStart: () => { + if (command.includes("serve")) { + globalThis.__name = (target: string, value: Record) => + Object.defineProperty(target, "name", { value, configurable: true }); + } + }, + }; +}; diff --git a/.electron-vite/preloads.ts b/.electron-vite/preloads.ts new file mode 100644 index 0000000..1ad35a6 --- /dev/null +++ b/.electron-vite/preloads.ts @@ -0,0 +1,72 @@ +export const preloads = { + include: [ + "vue", + "vue-router", + "pinia", + "axios", + "@vueuse/core", + "sortablejs", + "path-to-regexp", + "echarts", + "@wangeditor/editor", + "@wangeditor/editor-for-vue", + "vue-i18n", + "path-browserify", + "unocss", + "node", + "element-plus/es/components/form/style/css", + "element-plus/es/components/form-item/style/css", + "element-plus/es/components/button/style/css", + "element-plus/es/components/input/style/css", + "element-plus/es/components/input-number/style/css", + "element-plus/es/components/switch/style/css", + "element-plus/es/components/upload/style/css", + "element-plus/es/components/menu/style/css", + "element-plus/es/components/col/style/css", + "element-plus/es/components/icon/style/css", + "element-plus/es/components/row/style/css", + "element-plus/es/components/tag/style/css", + "element-plus/es/components/dialog/style/css", + "element-plus/es/components/loading/style/css", + "element-plus/es/components/radio/style/css", + "element-plus/es/components/radio-group/style/css", + "element-plus/es/components/popover/style/css", + "element-plus/es/components/scrollbar/style/css", + "element-plus/es/components/tooltip/style/css", + "element-plus/es/components/dropdown/style/css", + "element-plus/es/components/dropdown-menu/style/css", + "element-plus/es/components/dropdown-item/style/css", + "element-plus/es/components/sub-menu/style/css", + "element-plus/es/components/menu-item/style/css", + "element-plus/es/components/divider/style/css", + "element-plus/es/components/card/style/css", + "element-plus/es/components/link/style/css", + "element-plus/es/components/breadcrumb/style/css", + "element-plus/es/components/breadcrumb-item/style/css", + "element-plus/es/components/table/style/css", + "element-plus/es/components/tree-select/style/css", + "element-plus/es/components/table-column/style/css", + "element-plus/es/components/select/style/css", + "element-plus/es/components/option/style/css", + "element-plus/es/components/pagination/style/css", + "element-plus/es/components/tree/style/css", + "element-plus/es/components/alert/style/css", + "element-plus/es/components/radio-button/style/css", + "element-plus/es/components/checkbox-group/style/css", + "element-plus/es/components/checkbox/style/css", + "element-plus/es/components/tabs/style/css", + "element-plus/es/components/tab-pane/style/css", + "element-plus/es/components/rate/style/css", + "element-plus/es/components/date-picker/style/css", + "element-plus/es/components/notification/style/css", + "element-plus/es/components/image/style/css", + "element-plus/es/components/statistic/style/css", + "element-plus/es/components/watermark/style/css", + "element-plus/es/components/config-provider/style/css", + "element-plus/es/components/text/style/css", + "element-plus/es/components/drawer/style/css", + "element-plus/es/components/color-picker/style/css", + "element-plus/es/components/backtop/style/css", + "element-plus/es/components/message-box/style/css", + ], +} diff --git a/.electron-vite/rollup.config.ts b/.electron-vite/rollup.config.ts new file mode 100644 index 0000000..0561053 --- /dev/null +++ b/.electron-vite/rollup.config.ts @@ -0,0 +1,92 @@ +import path from "path"; +import { nodeResolve } from "@rollup/plugin-node-resolve"; +import { builtinModules } from "module"; +import commonjs from "@rollup/plugin-commonjs"; +import replace from "@rollup/plugin-replace"; +import alias from "@rollup/plugin-alias"; +import json from "@rollup/plugin-json"; +import esbuild from "rollup-plugin-esbuild"; +import obfuscator from "rollup-plugin-obfuscator"; +import { defineConfig } from "rollup"; +import { getConfig } from "./utils"; +const config = getConfig(); + +export default (env = "production", type = "main") => { + return defineConfig({ + input: + type === "main" + ? path.join(__dirname, "..", "src", "main", "index.ts") + : path.join(__dirname, "..", "src", "preload", "index.ts"), + output: { + file: path.join( + __dirname, + "..", + "dist", + "electron", + "main", + `${type === "main" ? type : "preload"}.js` + ), + format: "cjs", + name: type === "main" ? "MainProcess" : "MainPreloadProcess", + sourcemap: false, + }, + plugins: [ + replace({ + preventAssignment: true, + "process.env.userConfig": config ? JSON.stringify(config) : "{}", + }), + // 提供路径和读取别名 + nodeResolve({ + preferBuiltins: true, + browser: false, + extensions: [".mjs", ".ts", ".js", ".json", ".node"], + }), + commonjs({ + sourceMap: false, + }), + json(), + esbuild({ + // All options are optional + include: /\.[jt]s?$/, // default, inferred from `loaders` option + exclude: /node_modules/, // default + // watch: process.argv.includes('--watch'), // rollup 中有配置 + sourceMap: false, // default + minify: env === "production", + target: "esnext", // default, or 'es20XX', 'esnext' //es2017 + // Like @rollup/plugin-replace + define: { + __VERSION__: '"x.y.z"', + }, + // Add extra loaders + loaders: { + // Add .json files support + // require @rollup/plugin-commonjs + ".json": "json", + // Enable JSX in .js files too + ".js": "jsx", + }, + }), + alias({ + entries: [ + { find: "@main", replacement: path.join(__dirname, "../src/main") }, + { + find: "@config", + replacement: path.join(__dirname, "..", "config"), + }, + ], + }), + process.env.NODE_ENV === "production" && obfuscator({}), + ], + external: [ + ...builtinModules, + "axios", + "electron", + "express", + "ffi-napi", + "ref-napi", + "ref-struct-napi", + "semver", + "glob", + ], + }); +}; diff --git a/.electron-vite/utils.ts b/.electron-vite/utils.ts new file mode 100644 index 0000000..52f4a20 --- /dev/null +++ b/.electron-vite/utils.ts @@ -0,0 +1,20 @@ +import { config } from "dotenv"; +import { join } from "path"; +import minimist from "minimist"; + +const argv = minimist(process.argv.slice(2)); +const rootResolve = (...pathSegments: string[]) => join(__dirname, "..", ...pathSegments); + +export const getEnv = () => argv["m"]; + +const getEnvPath = () => { + if ( + String(typeof getEnv()) === "boolean" || + String(typeof getEnv()) === "undefined" + ) { + return rootResolve("env/dev.env"); + } + return rootResolve(`env/${getEnv()}.env`); +}; + +export const getConfig = () => config({ path: getEnvPath() }).parsed; diff --git a/.electron-vite/vite.config.mts b/.electron-vite/vite.config.mts new file mode 100644 index 0000000..8200aad --- /dev/null +++ b/.electron-vite/vite.config.mts @@ -0,0 +1,175 @@ +import {join} from "path"; +import {UserConfig, ConfigEnv, loadEnv, defineConfig} from "vite"; +import vuePlugin from "@vitejs/plugin-vue"; +import vueJsx from "@vitejs/plugin-vue-jsx"; +import viteIkarosTools from "./plugin/vite-ikaros-tools"; +import {getConfig} from "./utils"; + +/** + * 自动引用功能 + */ +import AutoImport from "unplugin-auto-import/vite"; +import Components from "unplugin-vue-components/vite"; +import {ElementPlusResolver} from "unplugin-vue-components/resolvers"; +import Icons from "unplugin-icons/vite"; +import IconsResolver from "unplugin-icons/resolver"; +/** + * SVG图标 + */ +import {createSvgIconsPlugin} from "vite-plugin-svg-icons"; + +/** + * univerJs插件 + */ +import {univerPlugin} from "@univerjs/vite-plugin"; + +import UnoCSS from "unocss/vite"; + +/** + * 需要预加载的资源 + */ +import {preloads} from "./preloads"; + +function resolve(dir: string) { + return join(__dirname, "..", dir); +} + +const config = getConfig(); +import pkg from "../package.json"; + +/** 平台的名称、版本、运行所需的`node`版本、依赖、构建时间的类型提示 */ +const __APP_INFO__ = { + pkg: pkg, + buildTimestamp: Date.now(), +}; + +const root = resolve("src/renderer"); +const src = resolve("src"); +const theme: string = resolve("src/renderer/themes/default"); +const mode = config && config.NODE_ENV; + +export default defineConfig({ + mode: mode, + root: root, + define: { + __CONFIG__: config, + __ISWEB__: Number(config && config.target), + __APP_INFO__: JSON.stringify(__APP_INFO__), + 'process.env': process.env, + }, + resolve: { + alias: { + "@": root, + "@api": join(root, "/api"), + "@config": join(src, "../config"), + "@main": join(src, "/main"), + "@mock": join(root, "/mock"), + "@renderer": root, + "@src": src, + "@store": join(root, "/store/modules"), + "@theme": theme + }, + }, + base: "./", + build: { + outDir: + config && config.target + ? resolve("dist/web") + : resolve("dist/electron/renderer"), + emptyOutDir: true, + target: "esnext", + cssCodeSplit: false, + }, + css: { + // CSS 预处理器 + preprocessorOptions: { + // 定义全局 SCSS 变量 + scss: { + javascriptEnabled: true, + additionalData: ` + @use "@theme/styles/variables.scss" as *; + `, + }, + }, + }, + server: { + // 无须配置 + }, + plugins: [ + vuePlugin(), + // jsx、tsx语法支持 + vueJsx(), + viteIkarosTools(), + //CSS预处理 + UnoCSS({ + hmrTopLevelAwait: false, + }), + // univerjs的虚拟化插件技术,用于语言包的自动引用 + univerPlugin(), + + // 自动导入参考: https://github.com/sxzz/element-plus-best-practices/blob/main/vite.config.ts + AutoImport({ + // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等 + imports: ["vue", "@vueuse/core", "pinia", "vue-router", "vue-i18n"], + resolvers: [ + // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式) + ElementPlusResolver(), + // 自动导入图标组件 + IconsResolver({}), + ], + eslintrc: { + // 是否自动生成 eslint 规则,建议生成之后设置 false + enabled: true, + // 指定自动导入函数 eslint 规则的文件 + filepath: "../.eslintrc-auto-import.json", + globalsPropValue: true, + }, + // 是否在 vue 模板中自动导入 + vueTemplate: true, + // 指定自动导入函数TS类型声明文件路径 (false:关闭自动生成) + // dts: false, + dts: "fixTypes/auto-imports.d.ts", + }), + Components({ + resolvers: [ + // 自动导入 Element Plus 组件 + ElementPlusResolver(), + /** + * 自动注册图标组件 + */ + IconsResolver({ + // element-plus图标库,其他图标库 https://icon-sets.iconify.design/ + enabledCollections: ["ep"], + }), + ], + /** + * 指定自定义组件位置(默认:src/components) + * TBD: resolve("@theme/components"),测试用法,效果未知 + */ + dirs: ["src/components", join(theme, "/components"), join(theme, "/**/components")], + // 指定自动导入组件TS类型声明文件路径 (false:关闭自动生成) + // dts: false, + dts: "fixTypes/components.d.ts", + }), + Icons({ + // 自动安装图标库 + autoInstall: true, + }), + createSvgIconsPlugin({ + // 指定需要缓存的图标文件夹 + iconDirs: [join(theme, "assets/icons")], + // 指定symbolId格式 + symbolId: "icon-[dir]-[name]", + }), + + // node({ + // // 默认情况下,`node` 插件会重写 `process` 和全局变量。 + // // 如果你不想要这个行为,可以将 `mock` 设置为 `false`。 + // mock: true, + // + // // 如果你想要包括一些特定的Node.js全局变量,可以在 `additional` 中指定。 + // additional: ['process', 'fs', 'path'] + // }) + ], + optimizeDeps: preloads, +}); diff --git a/.gitignore b/.gitignore index a19f004..4910c5b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,18 @@ -# ---> Vue -# gitignore template for Vue.js projects -# -# Recommended template: Node.gitignore +.DS_Store +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* -# TODO: where does this rule come from? -docs/_book - -# TODO: where does this rule come from? -test/ +dist/ +build/ +!build/icons +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +build-说明.json +/release/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d79bc6f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "**/node_modules": true + }, + "npm.packageManager": "yarn", + "workbench.editor.highlightModifiedTabs": true +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..97180cc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,152 @@ +# 2024.09.07 + +- 新增已知问题: + - preload预加载,不能直接传导出process,会导致程序假死、主界面无显; + - 渲染进程中,要使用通过预加载传导的变量,最好还是用window.*的方式 + +# 2024.09.06 + +- 修复增加了系统托盘按钮功能,主要涉及的文件 +- src/renderer/public/tray.html (这个是用于定制化的托盘,我因为没有精力搞,简化了,所以直接无视了它) +- src/main/中,添加了trayHook、修改了trayManager + +# 2024.09.05 + +- 关于新增自定义主题,需要调用nodejs模块的API时,不应直接调用(在electron中会失效),而是参考 + src/utils/ipcRender的进程通信方式。大部分情况下,这是不需要的,因为我已经写好了很多来适配。在* + /views/demo中可以找到主|子进程之间通信的示例。 +- 需要新增主|子 进程间通信的,已知要进行以下操作: + - 强烈建议任何文件修改前,请在其所在目录直接完整复制保存一份!!! + - 任何时候,不要破坏这几个文件的结构,只按照以下说明添加具体功能即可!!! + - src/ipc.ts中,添加类型声明,在enum(枚举)channel中,参照添加即可。 + - src/main/services/ipcMain.ts中,添加需要增加的通信功能。 + +# 2024.09.04 + +- 修复了几个开发依赖,至此,要求必须使用yarn为包管理工具 +- 修复了preload.js调用,修复主进程与渲染进程的通信;尝试将主进程脚本与渲染进程脚本完全分离 + - 主要涉及文件: + - src/main/config/ => staticPath.ts、windowsConfig.ts + - src/main/services => windowManager.ts +- 修改了dev-runner.ts脚本中的欢迎函数,自定义了chalk脚本的欢迎词“hi-sass” +- 修复热更新脚本语法错误: + - npm i --save-dev @types/adm-zip, 使adm-zip插件支持ts + - const zip = new AdmZip() +- 修复改进了主进程中的部分循环引用,减少不必要的错误。具体文件归类尚待最终确认。 + +# 2024.09.01 + +- 修复express来模拟mock服务的参数路由问题;路由中带参数时,body是函数,不能直接输出结果,需要执行该函数。具体代码在@main/server/server.ts中。 +- 添加热键支持,修复全局复制、粘贴等按钮的响应。具体代码在@main/config/hotkeys.ts中。 +- 重整文件夹,相应调整对应的设置;注意: 文件夹位置如有移动,需要相应地调整引用 + - 在vite.config.mts及ts.config中均配置了文件路径别名,方便后期开发使用;文件夹移动也方便一些; + - 别名路径文件夹移动后,要注意重新配置上述两个文件 + - mock文件夹不可以放置在根目录,即使配置了别名,也可能会有各种乱七八糟的报错 + - 非特殊情况,都建议将运行代码放置在根目录别名@下(也就是src/renderer/) + - 如果对框架没有修改的需求,只需要修改前端,就无须修改src/renderer/目录以外的文件。 + +# 2024.08.28 + +- 添加univerJs组件,由于使用yarn方式无法自动为它安装peerDependencies依赖,所以需要额外手动补充添加; + - 另外,已知还需要依赖外部库: + - react + - @wendellhu/redi + - clsx + - rxjs + - dayjs + - @grpc/grpc-js + +- 使用express-ws做wss服务器模拟,依赖于express,ts中还需要安装@types/express-ws + +# 2024.08.27 + +- 去掉mock尝试及相关依赖,改为使用express做服务器进行模拟(配置容易、编写简洁,简直不要太方便),ts需要安装 @types/express + +# 2024.08.25 + +- TBD:修复模拟浏览器,升级相应语法到最新; + - 浏览器函数文件在src/main/services/browserHandle.ts中 + - 里面默认的url地址,是在src/main/config/const.ts中配置 + +# 2024.08.21 + +- 修复依赖,更新到最新包 +- 添加express依赖,制作内置服务器使用 +- 添加element-plus作为前端默认UI组件,相应地,有以下编译前变量定义 + - 默认主题:@theme ,在 .electron-vite/vite-config.mts 文件; + - 组件库形成的主题文件,应该有一套完整的、可独立访问的前端路径; + - 主题目录: src/renderer/themes/ 下;默认 default + - 非必要不建议对themes进行任何更改。 + - 如果使用其他组件,可在主题目录下新建一个目录,并将一应文件存入。具体可参考themes里的default目录 + - 如果需要完善补充默认主题,建议复制default目录全部内容后再改。 + - 启用新的主题,需要修改 @theme 的路径定义。 + - 主题内,建议使用相对路径进行各内容的引用。 + +- 其他补充: + - 添加mock,做本地调试 + - 尝试:修改了src下的request.ts中的baseURL,(有可能还需要改回来) + +# 2024.08.20 + +- 修复依赖 minimist + - 检查是否存在: npm i --save-dev @types/minimist + - 安装: yarn add @types/minimist +- 修复依赖 semver + - 检查是否存在: npm i --save-dev @types/semver + - 安装: yarn add @types/semver +- 修改主应用菜单 + - 文件目录: src/main/hooks/menu-hooks.ts + - 暂时去掉了“关于”菜单中的多余按钮(对话框相应的事件没写好,暂时去掉) +- 项目定名:hi-sass-frame-front + - 修改package.json + - 修改build.json +- 修复build脚本 + - 文件: .electron-vite/build.ts + - web()或unionBuild()为异步方法,需要添加.then()来操作回调结果。 +- 修复语言包加载报错问题 :vue: Property glob does not exist on type ImportMeta + - 报错文件:src/i18n/index.ts + - 问题:import.meta.glob函数报错 + - 原因:使用了ts类型的文件,需要处理相应的types类型 + - 解决:(1)修改tsconfig.json,types中添加“vite/client”;此时,大部分vite构建的项目都基本OK了; + (2)添加glob.d.ts声明文件,放置在合适的位置;对于electron-vite配置,本项目指定了customTypes目录存放这些额外的声明文件,我又自定义了一个fixTypes目录来存放开发中需要补充的声明文件。文件内添加声明头注释: + ```/// ``` +- 修改启动界面提示文字 + - 文件: src/render/public/loader.html + - 修改:"资源加载中" +- 添加release目录,用于存放打包好的APP + - 目前以版本号为子目录 + - 替换程序的默认图标 + - mac 系统创建icns图标需要用到命令行. + - 第一步:选定png图标文件(高清,1024*1028分辨率以上); + - 第二步:在当前目录下创建文件夹 pngpic.iconset; + - 第三步:命令sips生成图标文件(7组共14张),全部存放在pngpic.iconset目录下; + - 第四步:命令iconutil生成icns文件 + - 命令参考 + ```bash + sips -z 16 16 hi.png --out icon_16x16.png + sips -z 32 32 hi.png --out icon_16x16@2x.png + sips -z 32 32 hi.png --out icon_32x32.png + sips -z 64 64 hi.png --out icon_32x32@2x.png + sips -z 64 64 hi.png --out icon_64x64.png + sips -z 128 128 hi.png --out icon_64x64@2x.png + sips -z 128 128 hi.png --out icon_128x128.png + sips -z 256 256 hi.png --out icon_128x128@2x.png + sips -z 256 256 hi.png --out icon_256x256.png + sips -z 512 512 hi.png --out icon_256x256@2x.png + sips -z 512 512 hi.png --out icon_512x512.png + sips -z 1024 1024 hi.png --out icon_512x512@2x.png + sips -z 1024 1024 hi.png --out icon_1024x1024.png + sips -z 2048 2048 hi.png --out icon_1024x1024@2x.png + ``` + ```bash + iconutil -c icns pngpic.iconset -o icon.icns + ``` + +# 2024.08.19 + +- 项目创建。 +- 项目基础构成: + - electron@31.4.0 + - vue@3.4.21 + - element-plus@2.7.5 + - vite@5.2.7 diff --git a/DIR.md b/DIR.md new file mode 100644 index 0000000..c52f9c3 --- /dev/null +++ b/DIR.md @@ -0,0 +1,112 @@ +# 目录结构说明 + +--- + +``` +├── .electron-vue # 构建相关(非必要不要修改,修改请先做好源文件备份) +│ ├── log # 控制台日志,利用chalk插件。(非必要不更改) +│ ├── plugin # vite插件目录 +│ │ ├── vite-ikaros-tools.ts # 参考项目中带的,未测试 +│ ├── build.ts # 构建命令 +│ ├── dev-runner.ts # 开发调试命令 +│ ├── hot-updater.ts # 热更新命令 +│ ├── rollup.config.ts # 回滚命令 +│ ├── utils.ts # 全局设置(从根目录的*.env文件取出运行环境的定义-dotenv插件,如果没有取到,就判定为开发环境),根据运行环境再从env目录取相应的配置文件 +│ ├── vite.config.mts # VITE运行配置,切记不要改为.ts后缀(.mts支持兼容某些插件js的require引用,例如unocss) +├── build # 项目打包目录 +│ │── icon # 图标 +│ └── lib # 打包依赖(win) +├── config # 构建相关的配置 +├── dist # 构建内容的临时存放目录(每次打包时会先清空该文件夹) +├── env # 开发/运行环境相关 +│ │── xxx.env # 环境变量配置 +├── fixTypes # 自动生成ts语法的auto-import.d.ts(目前未在项目中使用) +├─ public # 公共目录(无视) +├─ release # 可以将已打包好的版本存放在此(根据自己项目的情况自行考虑),对项目本身无影响 +├─ src # 源码目录 +│ ├─main # 主进程目录 +│ │ ├──config # 主进程配置 +│ │ │ ├── const # 静态变量 +│ │ │ ├── domains # 打算用于域名白名单配置的(未启用) +│ │ │ ├── hotPublish # 热更新配置 +│ │ │ ├── staticPath # 静态路径 +│ │ │ └── windowsConfig # 窗口配置 +│ │ ├──handle # 进程事件定义 +│ │ │ ├── browserHandle # 浏览器进程 +│ │ │ ├── mainHandle # 其他主要进程 +│ │ │ ├── serverHanle # 内置服务器进程 +│ │ │ ├── printHanle # 打印进程 +│ │ │ └── serverHanle # 内置服务器进程 +│ │ ├──hooks # 事件响应 +│ │ │ ├── browser # 内置浏览器 +│ │ │ ├── devTool # 打开开发者调试窗口 +│ │ │ ├── disableButton # 禁用指定按钮 +│ │ │ ├── exception # 进程渲染响应事件 +│ │ │ ├── hotkeys # 快捷键 +│ │ │ ├── menu # 应用主菜单 +│ │ │ ├── print # 打印功能 +│ │ │ └── tray # 系统托盘 +│ │ ├─server # 内置服务端文件夹 +│ │ │ ├─index # 内置服务端启停 +│ │ │ ├─server # 内置服务端主体 +│ │ │ ├─wsRouters # 内置Ws服务端路由配置 +│ │ │ └─wsServer # 内置WS服务端主体启停 +│ │ ├─services # 主进程服务文件夹 +│ │ │ ├── HotUpdater # 热更新 +│ │ │ ├── checkupdate # electron-updater +│ │ │ ├── downloadFile # 下载文件 +│ │ │ ├── ipcMain # ipc通讯 +│ │ │ └── windowManager # 窗口管理 +│ │ ├─index.ts # 主进程入口 +│ │ └─ipc.ts # IPC相关的ts类定义声明 +│ ├─preload # 预加载(使渲染进程-子进程可以使用主进程的一些接口) +│ └─renderer # 渲染进程文件夹 +├── .editorconfig # 编辑器配置,统一编码风格(可以根据自己的编程习惯来,但强烈建议别修改) +├── tsconfig.json # typeScript配置 +├── updateConfig.json # update升级配置 +├── build.json # 项目打包配置 +└── package.json # package.json;推荐使用yarn安装各种包 +``` + +--- + +--- + +``` +├── renderer # 渲染进程补充说明 +│ ├─api # 请求以及数据库操作文件夹 +│ ├─assets # 渲染进程主题 字体等静态资源 +│ ├─components # 全局公用组件 +│ ├─fixTypes # TS模块补充 +│ ├─i18n # 多语言配置 +│ ├─mock # 本地模拟数据 +│ ├─public # 启动页等(非必要不要改) +│ ├─router # 路由(各自定义主题的路由请按规范在主题内添加就好,这里不用修改) +│ ├─store # 全局 store管理 +│ ├─styles # 全局样式 +│ ├─themes # 自定义主题框架 +│ │ ├─default # 默认主题框架(UI组件主要使用element-plus) +│ ├─types # 全局TS模块补充 +│ ├─utils # 全局公共方法 +│ └─views # views 所有页面 +│ ├─App*.vue # vue主模块(需要自定义的可以复制新建一份修改后再引用即可) +│ ├─error.ts # 错误捕捉 +│ ├─index.html # 入口html +│ ├─interceptor.ts # 路由权限的基础拦截(更细致的拦截方法可以自行编写,如通过数据库获取等) +│ ├─main-multi-theme.ts # 自定义主题入口文件 + + +│ ├─icons # 项目svg icons +│ ├─layout # 全局 layout + + + + + + + +``` + +--- + +# [更新日志](./CHANGELOG.md) diff --git a/LICENSE b/LICENSE index ff185d3..0ed4942 100644 --- a/LICENSE +++ b/LICENSE @@ -1,23 +1,21 @@ -Copyright The Open Group +MIT License -Permission to use, copy, modify, distribute, and sell this software and -its documentation for any purpose is hereby granted without fee, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation. +Modified work Copyright (c) 2021-present umbrella22 -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. +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 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 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. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -Except as contained in this notice, the name of The Open Group -shall not be used in advertising or otherwise to promote the sale, use -or other dealings in this Software without prior written authorization -from The Open Group. +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. \ No newline at end of file diff --git a/README.md b/README.md index cf49c96..4e53cfb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,62 @@ -# hi-sass-frame +# electron-vite-template -基于https://gitee.com/Zh-Sky/electron-vite-template.git项目进行改造,升级内置组件electron31+vite5+vue3,添加引入elementUi2.7.5。框架思路借鉴有来开源的https://gitee.com/youlaiorg/vue3-element-admin.git项目。 \ No newline at end of file +[Open in Visual Studio Code](https://open.vscode.dev/umbrella22/electron-vite-template/) +![GitHub Repo stars](https://img.shields.io/github/stars/umbrella22/electron-vite-template) +[![vue](https://img.shields.io/badge/vue-3.4.21-brightgreen.svg)](https://github.com/vuejs/vue-next) +[![vite](https://img.shields.io/badge/vite-5.2.7-brightgreen.svg)](https://github.com/vitejs/vite) +[![element-ui](https://img.shields.io/badge/element-plus-brightgreen.svg)](https://www.npmjs.org/package/element-plus) +[![electron](https://img.shields.io/badge/electron-29.1.6-brightgreen.svg)](https://github.com/electron/electron) +[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/umbrella22/electron-vite-template/blob/master/LICENSE) + +# Installation + +You can choose to clone the project or fork repository, or download the zip file directly. It is recommended to clone the repository so that you can receive the latest patches. + +To run a project, you need to have **node version 18** or higher and **use npm as your dependency management tool** + +[Document (Chinese only)](https://umbrella22.github.io/electron-vue-template-doc/) + +[For Chinese Developers](/README_ZH.md) + +[![Build TEST](https://github.com/umbrella22/electron-vite-template/actions/workflows/Build.yml/badge.svg)](https://github.com/umbrella22/electron-vite-template/actions/workflows/Build.yml) + +# Build Setup + +```bash +# Clone this repository +$ git clone https://github.com/umbrella22/electron-vite-template.git +# Go into the repository +$ cd electron-vite-template +# install dependencies +$ npm install + +# serve with hot reload at localhost:9080 +$ npm run dev + +# build electron application for production +$ npm run build + + +``` + +--- + +# Function list + +[x] Auto update +[x] Incremental update +[x] Loading animation before startup +[x] i18n + +# Built-in + +- [vue-router](https://next.router.vuejs.org/index.html) +- [pinia](https://pinia.esm.dev/) +- [electron](http://www.electronjs.org/docs) +- electron-updater +- typescript + +# Note + +- [gitee](https://gitee.com/Zh-Sky/electron-vite-template) is only for domestic users to pull code,from github to synchronize,please visit github for PR +- **Welcome to Issues and PR** diff --git a/README_ZH.md b/README_ZH.md new file mode 100644 index 0000000..6039ad1 --- /dev/null +++ b/README_ZH.md @@ -0,0 +1,37 @@ +# Electron-Vite-template + +![GitHub Repo stars](https://img.shields.io/github/stars/umbrella22/electron-vite-template) +[![vue](https://img.shields.io/badge/vue-3.2.23-brightgreen.svg)](https://github.com/vuejs/vue-next) +[![vite](https://img.shields.io/badge/vite-3.0.3-brightgreen.svg)](https://github.com/vitejs/vite) +[![element-ui](https://img.shields.io/badge/element-plus-brightgreen.svg)](https://www.npmjs.org/package/element-plus) +[![electron](https://img.shields.io/badge/electron-19.0.4-brightgreen.svg)](https://github.com/electron/electron) +[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/umbrella22/electron-vite-template/blob/master/LICENSE) + +[国内访问地址](https://gitee.com/Zh-Sky/electron-vite-template) + +--- +### 请确保您的 node 版本大于等于 16. + +#### 如何安装 + +```bash +npm config edit +# 该命令会打开npm的配置文件,请在空白处添加 +# registry=https://registry.npmmirror.com +# ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ +# ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/ +# 然后关闭该窗口,重启命令行. +# 使用yarn安装 +npm install + +# 启动之后,会在9080端口监听 +npm run dev + +# build命令在不同系统环境中,需要的的不一样,需要自己根据自身环境进行配置 +npm run build + +``` + +--- +# [文件目录说明](DIR.md) +# [更新日志](./CHANGELOG.md) diff --git a/build.json b/build.json new file mode 100644 index 0000000..50d2577 --- /dev/null +++ b/build.json @@ -0,0 +1,44 @@ +{ + "asar": false, + "extraFiles": [], + "publish": [ + { + "provider": "generic", + "url": "http://127.0.0.1" + } + ], + "productName": "hi-sass", + "appId": "cn.fm453.hi-sass-frame-front.template", + "directories": { + "output": "build" + }, + "files": [ + "dist/electron/**/*" + ], + "dmg": { + "contents": [ + { + "x": 410, + "y": 150, + "type": "link", + "path": "/Applications" + }, + { + "x": 130, + "y": 150, + "type": "file" + } + ] + }, + "mac": { + "icon": "build/icons/icon.icns" + }, + "win": { + "icon": "build/icons/icon.ico", + "target": "nsis" + }, + "linux": { + "target": "deb", + "icon": "build/icons" + } +} diff --git a/config/index.ts b/config/index.ts new file mode 100644 index 0000000..55d25d0 --- /dev/null +++ b/config/index.ts @@ -0,0 +1,12 @@ +export default { + build: { + cleanConsole: true, + hotPublishConfigName:"updater", + }, + dev: { + removeElectronJunk: true, + chineseLog: true, + port: 9080, + }, + DllFolder: "", +}; diff --git a/env/dev.env b/env/dev.env new file mode 100644 index 0000000..d032183 --- /dev/null +++ b/env/dev.env @@ -0,0 +1,11 @@ +BASE_API='http://127.0.0.1:25565' +NODE_ENV='development' + +# 远程服务 +REMOTE_PORT=3000 +REMOTE_API='/api/v1/' +# 线上接口地址 +REMOTE_API_URL='http://api.frame.sass.hiluker.cn' +# 开发接口地址 +# REMOTE_API_URL='http://127.0.0.1:8989' +REMOTE_SERVER=false diff --git a/env/prod.env b/env/prod.env new file mode 100644 index 0000000..687bc2c --- /dev/null +++ b/env/prod.env @@ -0,0 +1,2 @@ +BASE_API='http://127.0.0.1:25565' +NODE_ENV='production' diff --git a/fixTypes/auto-imports.d.ts b/fixTypes/auto-imports.d.ts new file mode 100644 index 0000000..f4a814d --- /dev/null +++ b/fixTypes/auto-imports.d.ts @@ -0,0 +1,1780 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: (typeof import("vue"))["EffectScope"]; + const ElForm: (typeof import("element-plus/es"))["ElForm"]; + const ElMessage: (typeof import("element-plus/es"))["ElMessage"]; + const ElMessageBox: (typeof import("element-plus/es"))["ElMessageBox"]; + const ElNotification: (typeof import("element-plus/es"))["ElNotification"]; + const ElTree: (typeof import("element-plus/es"))["ElTree"]; + const acceptHMRUpdate: (typeof import("pinia"))["acceptHMRUpdate"]; + const asyncComputed: (typeof import("@vueuse/core"))["asyncComputed"]; + const autoResetRef: (typeof import("@vueuse/core"))["autoResetRef"]; + const computed: (typeof import("vue"))["computed"]; + const computedAsync: (typeof import("@vueuse/core"))["computedAsync"]; + const computedEager: (typeof import("@vueuse/core"))["computedEager"]; + const computedInject: (typeof import("@vueuse/core"))["computedInject"]; + const computedWithControl: (typeof import("@vueuse/core"))["computedWithControl"]; + const controlledComputed: (typeof import("@vueuse/core"))["controlledComputed"]; + const controlledRef: (typeof import("@vueuse/core"))["controlledRef"]; + const createApp: (typeof import("vue"))["createApp"]; + const createEventHook: (typeof import("@vueuse/core"))["createEventHook"]; + const createGlobalState: (typeof import("@vueuse/core"))["createGlobalState"]; + const createInjectionState: (typeof import("@vueuse/core"))["createInjectionState"]; + const createPinia: (typeof import("pinia"))["createPinia"]; + const createReactiveFn: (typeof import("@vueuse/core"))["createReactiveFn"]; + const createReusableTemplate: (typeof import("@vueuse/core"))["createReusableTemplate"]; + const createSharedComposable: (typeof import("@vueuse/core"))["createSharedComposable"]; + const createTemplatePromise: (typeof import("@vueuse/core"))["createTemplatePromise"]; + const createUnrefFn: (typeof import("@vueuse/core"))["createUnrefFn"]; + const customRef: (typeof import("vue"))["customRef"]; + const debouncedRef: (typeof import("@vueuse/core"))["debouncedRef"]; + const debouncedWatch: (typeof import("@vueuse/core"))["debouncedWatch"]; + const defineAsyncComponent: (typeof import("vue"))["defineAsyncComponent"]; + const defineComponent: (typeof import("vue"))["defineComponent"]; + const defineStore: (typeof import("pinia"))["defineStore"]; + const eagerComputed: (typeof import("@vueuse/core"))["eagerComputed"]; + const effectScope: (typeof import("vue"))["effectScope"]; + const extendRef: (typeof import("@vueuse/core"))["extendRef"]; + const getActivePinia: (typeof import("pinia"))["getActivePinia"]; + const getCurrentInstance: (typeof import("vue"))["getCurrentInstance"]; + const getCurrentScope: (typeof import("vue"))["getCurrentScope"]; + const h: (typeof import("vue"))["h"]; + const ignorableWatch: (typeof import("@vueuse/core"))["ignorableWatch"]; + const inject: (typeof import("vue"))["inject"]; + const injectLocal: (typeof import("@vueuse/core"))["injectLocal"]; + const isDefined: (typeof import("@vueuse/core"))["isDefined"]; + const isProxy: (typeof import("vue"))["isProxy"]; + const isReactive: (typeof import("vue"))["isReactive"]; + const isReadonly: (typeof import("vue"))["isReadonly"]; + const isRef: (typeof import("vue"))["isRef"]; + const makeDestructurable: (typeof import("@vueuse/core"))["makeDestructurable"]; + const mapActions: (typeof import("pinia"))["mapActions"]; + const mapGetters: (typeof import("pinia"))["mapGetters"]; + const mapState: (typeof import("pinia"))["mapState"]; + const mapStores: (typeof import("pinia"))["mapStores"]; + const mapWritableState: (typeof import("pinia"))["mapWritableState"]; + const markRaw: (typeof import("vue"))["markRaw"]; + const nextTick: (typeof import("vue"))["nextTick"]; + const onActivated: (typeof import("vue"))["onActivated"]; + const onBeforeMount: (typeof import("vue"))["onBeforeMount"]; + const onBeforeRouteLeave: (typeof import("vue-router"))["onBeforeRouteLeave"]; + const onBeforeRouteUpdate: (typeof import("vue-router"))["onBeforeRouteUpdate"]; + const onBeforeUnmount: (typeof import("vue"))["onBeforeUnmount"]; + const onBeforeUpdate: (typeof import("vue"))["onBeforeUpdate"]; + const onClickOutside: (typeof import("@vueuse/core"))["onClickOutside"]; + const onDeactivated: (typeof import("vue"))["onDeactivated"]; + const onErrorCaptured: (typeof import("vue"))["onErrorCaptured"]; + const onKeyStroke: (typeof import("@vueuse/core"))["onKeyStroke"]; + const onLongPress: (typeof import("@vueuse/core"))["onLongPress"]; + const onMounted: (typeof import("vue"))["onMounted"]; + const onRenderTracked: (typeof import("vue"))["onRenderTracked"]; + const onRenderTriggered: (typeof import("vue"))["onRenderTriggered"]; + const onScopeDispose: (typeof import("vue"))["onScopeDispose"]; + const onServerPrefetch: (typeof import("vue"))["onServerPrefetch"]; + const onStartTyping: (typeof import("@vueuse/core"))["onStartTyping"]; + const onUnmounted: (typeof import("vue"))["onUnmounted"]; + const onUpdated: (typeof import("vue"))["onUpdated"]; + const pausableWatch: (typeof import("@vueuse/core"))["pausableWatch"]; + const provide: (typeof import("vue"))["provide"]; + const provideLocal: (typeof import("@vueuse/core"))["provideLocal"]; + const reactify: (typeof import("@vueuse/core"))["reactify"]; + const reactifyObject: (typeof import("@vueuse/core"))["reactifyObject"]; + const reactive: (typeof import("vue"))["reactive"]; + const reactiveComputed: (typeof import("@vueuse/core"))["reactiveComputed"]; + const reactiveOmit: (typeof import("@vueuse/core"))["reactiveOmit"]; + const reactivePick: (typeof import("@vueuse/core"))["reactivePick"]; + const readonly: (typeof import("vue"))["readonly"]; + const ref: (typeof import("vue"))["ref"]; + const refAutoReset: (typeof import("@vueuse/core"))["refAutoReset"]; + const refDebounced: (typeof import("@vueuse/core"))["refDebounced"]; + const refDefault: (typeof import("@vueuse/core"))["refDefault"]; + const refThrottled: (typeof import("@vueuse/core"))["refThrottled"]; + const refWithControl: (typeof import("@vueuse/core"))["refWithControl"]; + const resolveComponent: (typeof import("vue"))["resolveComponent"]; + const resolveRef: (typeof import("@vueuse/core"))["resolveRef"]; + const resolveUnref: (typeof import("@vueuse/core"))["resolveUnref"]; + const setActivePinia: (typeof import("pinia"))["setActivePinia"]; + const setMapStoreSuffix: (typeof import("pinia"))["setMapStoreSuffix"]; + const shallowReactive: (typeof import("vue"))["shallowReactive"]; + const shallowReadonly: (typeof import("vue"))["shallowReadonly"]; + const shallowRef: (typeof import("vue"))["shallowRef"]; + const storeToRefs: (typeof import("pinia"))["storeToRefs"]; + const syncRef: (typeof import("@vueuse/core"))["syncRef"]; + const syncRefs: (typeof import("@vueuse/core"))["syncRefs"]; + const templateRef: (typeof import("@vueuse/core"))["templateRef"]; + const throttledRef: (typeof import("@vueuse/core"))["throttledRef"]; + const throttledWatch: (typeof import("@vueuse/core"))["throttledWatch"]; + const toRaw: (typeof import("vue"))["toRaw"]; + const toReactive: (typeof import("@vueuse/core"))["toReactive"]; + const toRef: (typeof import("vue"))["toRef"]; + const toRefs: (typeof import("vue"))["toRefs"]; + const toValue: (typeof import("vue"))["toValue"]; + const triggerRef: (typeof import("vue"))["triggerRef"]; + const tryOnBeforeMount: (typeof import("@vueuse/core"))["tryOnBeforeMount"]; + const tryOnBeforeUnmount: (typeof import("@vueuse/core"))["tryOnBeforeUnmount"]; + const tryOnMounted: (typeof import("@vueuse/core"))["tryOnMounted"]; + const tryOnScopeDispose: (typeof import("@vueuse/core"))["tryOnScopeDispose"]; + const tryOnUnmounted: (typeof import("@vueuse/core"))["tryOnUnmounted"]; + const unref: (typeof import("vue"))["unref"]; + const unrefElement: (typeof import("@vueuse/core"))["unrefElement"]; + const until: (typeof import("@vueuse/core"))["until"]; + const useActiveElement: (typeof import("@vueuse/core"))["useActiveElement"]; + const useAnimate: (typeof import("@vueuse/core"))["useAnimate"]; + const useArrayDifference: (typeof import("@vueuse/core"))["useArrayDifference"]; + const useArrayEvery: (typeof import("@vueuse/core"))["useArrayEvery"]; + const useArrayFilter: (typeof import("@vueuse/core"))["useArrayFilter"]; + const useArrayFind: (typeof import("@vueuse/core"))["useArrayFind"]; + const useArrayFindIndex: (typeof import("@vueuse/core"))["useArrayFindIndex"]; + const useArrayFindLast: (typeof import("@vueuse/core"))["useArrayFindLast"]; + const useArrayIncludes: (typeof import("@vueuse/core"))["useArrayIncludes"]; + const useArrayJoin: (typeof import("@vueuse/core"))["useArrayJoin"]; + const useArrayMap: (typeof import("@vueuse/core"))["useArrayMap"]; + const useArrayReduce: (typeof import("@vueuse/core"))["useArrayReduce"]; + const useArraySome: (typeof import("@vueuse/core"))["useArraySome"]; + const useArrayUnique: (typeof import("@vueuse/core"))["useArrayUnique"]; + const useAsyncQueue: (typeof import("@vueuse/core"))["useAsyncQueue"]; + const useAsyncState: (typeof import("@vueuse/core"))["useAsyncState"]; + const useAttrs: (typeof import("vue"))["useAttrs"]; + const useBase64: (typeof import("@vueuse/core"))["useBase64"]; + const useBattery: (typeof import("@vueuse/core"))["useBattery"]; + const useBluetooth: (typeof import("@vueuse/core"))["useBluetooth"]; + const useBreakpoints: (typeof import("@vueuse/core"))["useBreakpoints"]; + const useBroadcastChannel: (typeof import("@vueuse/core"))["useBroadcastChannel"]; + const useBrowserLocation: (typeof import("@vueuse/core"))["useBrowserLocation"]; + const useCached: (typeof import("@vueuse/core"))["useCached"]; + const useClipboard: (typeof import("@vueuse/core"))["useClipboard"]; + const useClipboardItems: (typeof import("@vueuse/core"))["useClipboardItems"]; + const useCloned: (typeof import("@vueuse/core"))["useCloned"]; + const useColorMode: (typeof import("@vueuse/core"))["useColorMode"]; + const useConfirmDialog: (typeof import("@vueuse/core"))["useConfirmDialog"]; + const useCounter: (typeof import("@vueuse/core"))["useCounter"]; + const useCssModule: (typeof import("vue"))["useCssModule"]; + const useCssVar: (typeof import("@vueuse/core"))["useCssVar"]; + const useCssVars: (typeof import("vue"))["useCssVars"]; + const useCurrentElement: (typeof import("@vueuse/core"))["useCurrentElement"]; + const useCycleList: (typeof import("@vueuse/core"))["useCycleList"]; + const useDark: (typeof import("@vueuse/core"))["useDark"]; + const useDateFormat: (typeof import("@vueuse/core"))["useDateFormat"]; + const useDebounce: (typeof import("@vueuse/core"))["useDebounce"]; + const useDebounceFn: (typeof import("@vueuse/core"))["useDebounceFn"]; + const useDebouncedRefHistory: (typeof import("@vueuse/core"))["useDebouncedRefHistory"]; + const useDeviceMotion: (typeof import("@vueuse/core"))["useDeviceMotion"]; + const useDeviceOrientation: (typeof import("@vueuse/core"))["useDeviceOrientation"]; + const useDevicePixelRatio: (typeof import("@vueuse/core"))["useDevicePixelRatio"]; + const useDevicesList: (typeof import("@vueuse/core"))["useDevicesList"]; + const useDisplayMedia: (typeof import("@vueuse/core"))["useDisplayMedia"]; + const useDocumentVisibility: (typeof import("@vueuse/core"))["useDocumentVisibility"]; + const useDraggable: (typeof import("@vueuse/core"))["useDraggable"]; + const useDropZone: (typeof import("@vueuse/core"))["useDropZone"]; + const useElementBounding: (typeof import("@vueuse/core"))["useElementBounding"]; + const useElementByPoint: (typeof import("@vueuse/core"))["useElementByPoint"]; + const useElementHover: (typeof import("@vueuse/core"))["useElementHover"]; + const useElementSize: (typeof import("@vueuse/core"))["useElementSize"]; + const useElementVisibility: (typeof import("@vueuse/core"))["useElementVisibility"]; + const useEventBus: (typeof import("@vueuse/core"))["useEventBus"]; + const useEventListener: (typeof import("@vueuse/core"))["useEventListener"]; + const useEventSource: (typeof import("@vueuse/core"))["useEventSource"]; + const useEyeDropper: (typeof import("@vueuse/core"))["useEyeDropper"]; + const useFavicon: (typeof import("@vueuse/core"))["useFavicon"]; + const useFetch: (typeof import("@vueuse/core"))["useFetch"]; + const useFileDialog: (typeof import("@vueuse/core"))["useFileDialog"]; + const useFileSystemAccess: (typeof import("@vueuse/core"))["useFileSystemAccess"]; + const useFocus: (typeof import("@vueuse/core"))["useFocus"]; + const useFocusWithin: (typeof import("@vueuse/core"))["useFocusWithin"]; + const useFps: (typeof import("@vueuse/core"))["useFps"]; + const useFullscreen: (typeof import("@vueuse/core"))["useFullscreen"]; + const useGamepad: (typeof import("@vueuse/core"))["useGamepad"]; + const useGeolocation: (typeof import("@vueuse/core"))["useGeolocation"]; + const useI18n: (typeof import("vue-i18n"))["useI18n"]; + const useIdle: (typeof import("@vueuse/core"))["useIdle"]; + const useImage: (typeof import("@vueuse/core"))["useImage"]; + const useInfiniteScroll: (typeof import("@vueuse/core"))["useInfiniteScroll"]; + const useIntersectionObserver: (typeof import("@vueuse/core"))["useIntersectionObserver"]; + const useInterval: (typeof import("@vueuse/core"))["useInterval"]; + const useIntervalFn: (typeof import("@vueuse/core"))["useIntervalFn"]; + const useKeyModifier: (typeof import("@vueuse/core"))["useKeyModifier"]; + const useLastChanged: (typeof import("@vueuse/core"))["useLastChanged"]; + const useLink: (typeof import("vue-router"))["useLink"]; + const useLocalStorage: (typeof import("@vueuse/core"))["useLocalStorage"]; + const useMagicKeys: (typeof import("@vueuse/core"))["useMagicKeys"]; + const useManualRefHistory: (typeof import("@vueuse/core"))["useManualRefHistory"]; + const useMediaControls: (typeof import("@vueuse/core"))["useMediaControls"]; + const useMediaQuery: (typeof import("@vueuse/core"))["useMediaQuery"]; + const useMemoize: (typeof import("@vueuse/core"))["useMemoize"]; + const useMemory: (typeof import("@vueuse/core"))["useMemory"]; + const useMounted: (typeof import("@vueuse/core"))["useMounted"]; + const useMouse: (typeof import("@vueuse/core"))["useMouse"]; + const useMouseInElement: (typeof import("@vueuse/core"))["useMouseInElement"]; + const useMousePressed: (typeof import("@vueuse/core"))["useMousePressed"]; + const useMutationObserver: (typeof import("@vueuse/core"))["useMutationObserver"]; + const useNavigatorLanguage: (typeof import("@vueuse/core"))["useNavigatorLanguage"]; + const useNetwork: (typeof import("@vueuse/core"))["useNetwork"]; + const useNow: (typeof import("@vueuse/core"))["useNow"]; + const useObjectUrl: (typeof import("@vueuse/core"))["useObjectUrl"]; + const useOffsetPagination: (typeof import("@vueuse/core"))["useOffsetPagination"]; + const useOnline: (typeof import("@vueuse/core"))["useOnline"]; + const usePageLeave: (typeof import("@vueuse/core"))["usePageLeave"]; + const useParallax: (typeof import("@vueuse/core"))["useParallax"]; + const useParentElement: (typeof import("@vueuse/core"))["useParentElement"]; + const usePerformanceObserver: (typeof import("@vueuse/core"))["usePerformanceObserver"]; + const usePermission: (typeof import("@vueuse/core"))["usePermission"]; + const usePointer: (typeof import("@vueuse/core"))["usePointer"]; + const usePointerLock: (typeof import("@vueuse/core"))["usePointerLock"]; + const usePointerSwipe: (typeof import("@vueuse/core"))["usePointerSwipe"]; + const usePreferredColorScheme: (typeof import("@vueuse/core"))["usePreferredColorScheme"]; + const usePreferredContrast: (typeof import("@vueuse/core"))["usePreferredContrast"]; + const usePreferredDark: (typeof import("@vueuse/core"))["usePreferredDark"]; + const usePreferredLanguages: (typeof import("@vueuse/core"))["usePreferredLanguages"]; + const usePreferredReducedMotion: (typeof import("@vueuse/core"))["usePreferredReducedMotion"]; + const usePrevious: (typeof import("@vueuse/core"))["usePrevious"]; + const useRafFn: (typeof import("@vueuse/core"))["useRafFn"]; + const useRefHistory: (typeof import("@vueuse/core"))["useRefHistory"]; + const useResizeObserver: (typeof import("@vueuse/core"))["useResizeObserver"]; + const useRoute: (typeof import("vue-router"))["useRoute"]; + const useRouter: (typeof import("vue-router"))["useRouter"]; + const useScreenOrientation: (typeof import("@vueuse/core"))["useScreenOrientation"]; + const useScreenSafeArea: (typeof import("@vueuse/core"))["useScreenSafeArea"]; + const useScriptTag: (typeof import("@vueuse/core"))["useScriptTag"]; + const useScroll: (typeof import("@vueuse/core"))["useScroll"]; + const useScrollLock: (typeof import("@vueuse/core"))["useScrollLock"]; + const useSessionStorage: (typeof import("@vueuse/core"))["useSessionStorage"]; + const useShare: (typeof import("@vueuse/core"))["useShare"]; + const useSlots: (typeof import("vue"))["useSlots"]; + const useSorted: (typeof import("@vueuse/core"))["useSorted"]; + const useSpeechRecognition: (typeof import("@vueuse/core"))["useSpeechRecognition"]; + const useSpeechSynthesis: (typeof import("@vueuse/core"))["useSpeechSynthesis"]; + const useStepper: (typeof import("@vueuse/core"))["useStepper"]; + const useStorage: (typeof import("@vueuse/core"))["useStorage"]; + const useStorageAsync: (typeof import("@vueuse/core"))["useStorageAsync"]; + const useStyleTag: (typeof import("@vueuse/core"))["useStyleTag"]; + const useSupported: (typeof import("@vueuse/core"))["useSupported"]; + const useSwipe: (typeof import("@vueuse/core"))["useSwipe"]; + const useTemplateRefsList: (typeof import("@vueuse/core"))["useTemplateRefsList"]; + const useTextDirection: (typeof import("@vueuse/core"))["useTextDirection"]; + const useTextSelection: (typeof import("@vueuse/core"))["useTextSelection"]; + const useTextareaAutosize: (typeof import("@vueuse/core"))["useTextareaAutosize"]; + const useThrottle: (typeof import("@vueuse/core"))["useThrottle"]; + const useThrottleFn: (typeof import("@vueuse/core"))["useThrottleFn"]; + const useThrottledRefHistory: (typeof import("@vueuse/core"))["useThrottledRefHistory"]; + const useTimeAgo: (typeof import("@vueuse/core"))["useTimeAgo"]; + const useTimeout: (typeof import("@vueuse/core"))["useTimeout"]; + const useTimeoutFn: (typeof import("@vueuse/core"))["useTimeoutFn"]; + const useTimeoutPoll: (typeof import("@vueuse/core"))["useTimeoutPoll"]; + const useTimestamp: (typeof import("@vueuse/core"))["useTimestamp"]; + const useTitle: (typeof import("@vueuse/core"))["useTitle"]; + const useToNumber: (typeof import("@vueuse/core"))["useToNumber"]; + const useToString: (typeof import("@vueuse/core"))["useToString"]; + const useToggle: (typeof import("@vueuse/core"))["useToggle"]; + const useTransition: (typeof import("@vueuse/core"))["useTransition"]; + const useUrlSearchParams: (typeof import("@vueuse/core"))["useUrlSearchParams"]; + const useUserMedia: (typeof import("@vueuse/core"))["useUserMedia"]; + const useVModel: (typeof import("@vueuse/core"))["useVModel"]; + const useVModels: (typeof import("@vueuse/core"))["useVModels"]; + const useVibrate: (typeof import("@vueuse/core"))["useVibrate"]; + const useVirtualList: (typeof import("@vueuse/core"))["useVirtualList"]; + const useWakeLock: (typeof import("@vueuse/core"))["useWakeLock"]; + const useWebNotification: (typeof import("@vueuse/core"))["useWebNotification"]; + const useWebSocket: (typeof import("@vueuse/core"))["useWebSocket"]; + const useWebWorker: (typeof import("@vueuse/core"))["useWebWorker"]; + const useWebWorkerFn: (typeof import("@vueuse/core"))["useWebWorkerFn"]; + const useWindowFocus: (typeof import("@vueuse/core"))["useWindowFocus"]; + const useWindowScroll: (typeof import("@vueuse/core"))["useWindowScroll"]; + const useWindowSize: (typeof import("@vueuse/core"))["useWindowSize"]; + const watch: (typeof import("vue"))["watch"]; + const watchArray: (typeof import("@vueuse/core"))["watchArray"]; + const watchAtMost: (typeof import("@vueuse/core"))["watchAtMost"]; + const watchDebounced: (typeof import("@vueuse/core"))["watchDebounced"]; + const watchDeep: (typeof import("@vueuse/core"))["watchDeep"]; + const watchEffect: (typeof import("vue"))["watchEffect"]; + const watchIgnorable: (typeof import("@vueuse/core"))["watchIgnorable"]; + const watchImmediate: (typeof import("@vueuse/core"))["watchImmediate"]; + const watchOnce: (typeof import("@vueuse/core"))["watchOnce"]; + const watchPausable: (typeof import("@vueuse/core"))["watchPausable"]; + const watchPostEffect: (typeof import("vue"))["watchPostEffect"]; + const watchSyncEffect: (typeof import("vue"))["watchSyncEffect"]; + const watchThrottled: (typeof import("@vueuse/core"))["watchThrottled"]; + const watchTriggerable: (typeof import("@vueuse/core"))["watchTriggerable"]; + const watchWithFilter: (typeof import("@vueuse/core"))["watchWithFilter"]; + const whenever: (typeof import("@vueuse/core"))["whenever"]; +} +// for type re-export +declare global { + // @ts-ignore + export type { + Component, + ComponentPublicInstance, + ComputedRef, + ExtractDefaultPropTypes, + ExtractPropTypes, + ExtractPublicPropTypes, + InjectionKey, + PropType, + Ref, + VNode, + WritableComputedRef, + } from "vue"; + import("vue"); +} +// for vue template auto import +import { UnwrapRef } from "vue"; +declare module "vue" { + interface GlobalComponents {} + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef<(typeof import("vue"))["EffectScope"]>; + readonly ElMessage: UnwrapRef< + (typeof import("element-plus/es"))["ElMessage"] + >; + readonly ElMessageBox: UnwrapRef< + (typeof import("element-plus/es"))["ElMessageBox"] + >; + readonly acceptHMRUpdate: UnwrapRef< + (typeof import("pinia"))["acceptHMRUpdate"] + >; + readonly asyncComputed: UnwrapRef< + (typeof import("@vueuse/core"))["asyncComputed"] + >; + readonly autoResetRef: UnwrapRef< + (typeof import("@vueuse/core"))["autoResetRef"] + >; + readonly computed: UnwrapRef<(typeof import("vue"))["computed"]>; + readonly computedAsync: UnwrapRef< + (typeof import("@vueuse/core"))["computedAsync"] + >; + readonly computedEager: UnwrapRef< + (typeof import("@vueuse/core"))["computedEager"] + >; + readonly computedInject: UnwrapRef< + (typeof import("@vueuse/core"))["computedInject"] + >; + readonly computedWithControl: UnwrapRef< + (typeof import("@vueuse/core"))["computedWithControl"] + >; + readonly controlledComputed: UnwrapRef< + (typeof import("@vueuse/core"))["controlledComputed"] + >; + readonly controlledRef: UnwrapRef< + (typeof import("@vueuse/core"))["controlledRef"] + >; + readonly createApp: UnwrapRef<(typeof import("vue"))["createApp"]>; + readonly createEventHook: UnwrapRef< + (typeof import("@vueuse/core"))["createEventHook"] + >; + readonly createGlobalState: UnwrapRef< + (typeof import("@vueuse/core"))["createGlobalState"] + >; + readonly createInjectionState: UnwrapRef< + (typeof import("@vueuse/core"))["createInjectionState"] + >; + readonly createPinia: UnwrapRef<(typeof import("pinia"))["createPinia"]>; + readonly createReactiveFn: UnwrapRef< + (typeof import("@vueuse/core"))["createReactiveFn"] + >; + readonly createReusableTemplate: UnwrapRef< + (typeof import("@vueuse/core"))["createReusableTemplate"] + >; + readonly createSharedComposable: UnwrapRef< + (typeof import("@vueuse/core"))["createSharedComposable"] + >; + readonly createTemplatePromise: UnwrapRef< + (typeof import("@vueuse/core"))["createTemplatePromise"] + >; + readonly createUnrefFn: UnwrapRef< + (typeof import("@vueuse/core"))["createUnrefFn"] + >; + readonly customRef: UnwrapRef<(typeof import("vue"))["customRef"]>; + readonly debouncedRef: UnwrapRef< + (typeof import("@vueuse/core"))["debouncedRef"] + >; + readonly debouncedWatch: UnwrapRef< + (typeof import("@vueuse/core"))["debouncedWatch"] + >; + readonly defineAsyncComponent: UnwrapRef< + (typeof import("vue"))["defineAsyncComponent"] + >; + readonly defineComponent: UnwrapRef< + (typeof import("vue"))["defineComponent"] + >; + readonly defineStore: UnwrapRef<(typeof import("pinia"))["defineStore"]>; + readonly eagerComputed: UnwrapRef< + (typeof import("@vueuse/core"))["eagerComputed"] + >; + readonly effectScope: UnwrapRef<(typeof import("vue"))["effectScope"]>; + readonly extendRef: UnwrapRef<(typeof import("@vueuse/core"))["extendRef"]>; + readonly getActivePinia: UnwrapRef< + (typeof import("pinia"))["getActivePinia"] + >; + readonly getCurrentInstance: UnwrapRef< + (typeof import("vue"))["getCurrentInstance"] + >; + readonly getCurrentScope: UnwrapRef< + (typeof import("vue"))["getCurrentScope"] + >; + readonly h: UnwrapRef<(typeof import("vue"))["h"]>; + readonly ignorableWatch: UnwrapRef< + (typeof import("@vueuse/core"))["ignorableWatch"] + >; + readonly inject: UnwrapRef<(typeof import("vue"))["inject"]>; + readonly injectLocal: UnwrapRef< + (typeof import("@vueuse/core"))["injectLocal"] + >; + readonly isDefined: UnwrapRef<(typeof import("@vueuse/core"))["isDefined"]>; + readonly isProxy: UnwrapRef<(typeof import("vue"))["isProxy"]>; + readonly isReactive: UnwrapRef<(typeof import("vue"))["isReactive"]>; + readonly isReadonly: UnwrapRef<(typeof import("vue"))["isReadonly"]>; + readonly isRef: UnwrapRef<(typeof import("vue"))["isRef"]>; + readonly makeDestructurable: UnwrapRef< + (typeof import("@vueuse/core"))["makeDestructurable"] + >; + readonly mapActions: UnwrapRef<(typeof import("pinia"))["mapActions"]>; + readonly mapGetters: UnwrapRef<(typeof import("pinia"))["mapGetters"]>; + readonly mapState: UnwrapRef<(typeof import("pinia"))["mapState"]>; + readonly mapStores: UnwrapRef<(typeof import("pinia"))["mapStores"]>; + readonly mapWritableState: UnwrapRef< + (typeof import("pinia"))["mapWritableState"] + >; + readonly markRaw: UnwrapRef<(typeof import("vue"))["markRaw"]>; + readonly nextTick: UnwrapRef<(typeof import("vue"))["nextTick"]>; + readonly onActivated: UnwrapRef<(typeof import("vue"))["onActivated"]>; + readonly onBeforeMount: UnwrapRef<(typeof import("vue"))["onBeforeMount"]>; + readonly onBeforeRouteLeave: UnwrapRef< + (typeof import("vue-router"))["onBeforeRouteLeave"] + >; + readonly onBeforeRouteUpdate: UnwrapRef< + (typeof import("vue-router"))["onBeforeRouteUpdate"] + >; + readonly onBeforeUnmount: UnwrapRef< + (typeof import("vue"))["onBeforeUnmount"] + >; + readonly onBeforeUpdate: UnwrapRef< + (typeof import("vue"))["onBeforeUpdate"] + >; + readonly onClickOutside: UnwrapRef< + (typeof import("@vueuse/core"))["onClickOutside"] + >; + readonly onDeactivated: UnwrapRef<(typeof import("vue"))["onDeactivated"]>; + readonly onErrorCaptured: UnwrapRef< + (typeof import("vue"))["onErrorCaptured"] + >; + readonly onKeyStroke: UnwrapRef< + (typeof import("@vueuse/core"))["onKeyStroke"] + >; + readonly onLongPress: UnwrapRef< + (typeof import("@vueuse/core"))["onLongPress"] + >; + readonly onMounted: UnwrapRef<(typeof import("vue"))["onMounted"]>; + readonly onRenderTracked: UnwrapRef< + (typeof import("vue"))["onRenderTracked"] + >; + readonly onRenderTriggered: UnwrapRef< + (typeof import("vue"))["onRenderTriggered"] + >; + readonly onScopeDispose: UnwrapRef< + (typeof import("vue"))["onScopeDispose"] + >; + readonly onServerPrefetch: UnwrapRef< + (typeof import("vue"))["onServerPrefetch"] + >; + readonly onStartTyping: UnwrapRef< + (typeof import("@vueuse/core"))["onStartTyping"] + >; + readonly onUnmounted: UnwrapRef<(typeof import("vue"))["onUnmounted"]>; + readonly onUpdated: UnwrapRef<(typeof import("vue"))["onUpdated"]>; + readonly pausableWatch: UnwrapRef< + (typeof import("@vueuse/core"))["pausableWatch"] + >; + readonly provide: UnwrapRef<(typeof import("vue"))["provide"]>; + readonly provideLocal: UnwrapRef< + (typeof import("@vueuse/core"))["provideLocal"] + >; + readonly reactify: UnwrapRef<(typeof import("@vueuse/core"))["reactify"]>; + readonly reactifyObject: UnwrapRef< + (typeof import("@vueuse/core"))["reactifyObject"] + >; + readonly reactive: UnwrapRef<(typeof import("vue"))["reactive"]>; + readonly reactiveComputed: UnwrapRef< + (typeof import("@vueuse/core"))["reactiveComputed"] + >; + readonly reactiveOmit: UnwrapRef< + (typeof import("@vueuse/core"))["reactiveOmit"] + >; + readonly reactivePick: UnwrapRef< + (typeof import("@vueuse/core"))["reactivePick"] + >; + readonly readonly: UnwrapRef<(typeof import("vue"))["readonly"]>; + readonly ref: UnwrapRef<(typeof import("vue"))["ref"]>; + readonly refAutoReset: UnwrapRef< + (typeof import("@vueuse/core"))["refAutoReset"] + >; + readonly refDebounced: UnwrapRef< + (typeof import("@vueuse/core"))["refDebounced"] + >; + readonly refDefault: UnwrapRef< + (typeof import("@vueuse/core"))["refDefault"] + >; + readonly refThrottled: UnwrapRef< + (typeof import("@vueuse/core"))["refThrottled"] + >; + readonly refWithControl: UnwrapRef< + (typeof import("@vueuse/core"))["refWithControl"] + >; + readonly resolveComponent: UnwrapRef< + (typeof import("vue"))["resolveComponent"] + >; + readonly resolveRef: UnwrapRef< + (typeof import("@vueuse/core"))["resolveRef"] + >; + readonly resolveUnref: UnwrapRef< + (typeof import("@vueuse/core"))["resolveUnref"] + >; + readonly setActivePinia: UnwrapRef< + (typeof import("pinia"))["setActivePinia"] + >; + readonly setMapStoreSuffix: UnwrapRef< + (typeof import("pinia"))["setMapStoreSuffix"] + >; + readonly shallowReactive: UnwrapRef< + (typeof import("vue"))["shallowReactive"] + >; + readonly shallowReadonly: UnwrapRef< + (typeof import("vue"))["shallowReadonly"] + >; + readonly shallowRef: UnwrapRef<(typeof import("vue"))["shallowRef"]>; + readonly storeToRefs: UnwrapRef<(typeof import("pinia"))["storeToRefs"]>; + readonly syncRef: UnwrapRef<(typeof import("@vueuse/core"))["syncRef"]>; + readonly syncRefs: UnwrapRef<(typeof import("@vueuse/core"))["syncRefs"]>; + readonly templateRef: UnwrapRef< + (typeof import("@vueuse/core"))["templateRef"] + >; + readonly throttledRef: UnwrapRef< + (typeof import("@vueuse/core"))["throttledRef"] + >; + readonly throttledWatch: UnwrapRef< + (typeof import("@vueuse/core"))["throttledWatch"] + >; + readonly toRaw: UnwrapRef<(typeof import("vue"))["toRaw"]>; + readonly toReactive: UnwrapRef< + (typeof import("@vueuse/core"))["toReactive"] + >; + readonly toRef: UnwrapRef<(typeof import("vue"))["toRef"]>; + readonly toRefs: UnwrapRef<(typeof import("vue"))["toRefs"]>; + readonly toValue: UnwrapRef<(typeof import("vue"))["toValue"]>; + readonly triggerRef: UnwrapRef<(typeof import("vue"))["triggerRef"]>; + readonly tryOnBeforeMount: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnBeforeMount"] + >; + readonly tryOnBeforeUnmount: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnBeforeUnmount"] + >; + readonly tryOnMounted: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnMounted"] + >; + readonly tryOnScopeDispose: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnScopeDispose"] + >; + readonly tryOnUnmounted: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnUnmounted"] + >; + readonly unref: UnwrapRef<(typeof import("vue"))["unref"]>; + readonly unrefElement: UnwrapRef< + (typeof import("@vueuse/core"))["unrefElement"] + >; + readonly until: UnwrapRef<(typeof import("@vueuse/core"))["until"]>; + readonly useActiveElement: UnwrapRef< + (typeof import("@vueuse/core"))["useActiveElement"] + >; + readonly useAnimate: UnwrapRef< + (typeof import("@vueuse/core"))["useAnimate"] + >; + readonly useArrayDifference: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayDifference"] + >; + readonly useArrayEvery: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayEvery"] + >; + readonly useArrayFilter: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFilter"] + >; + readonly useArrayFind: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFind"] + >; + readonly useArrayFindIndex: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFindIndex"] + >; + readonly useArrayFindLast: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFindLast"] + >; + readonly useArrayIncludes: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayIncludes"] + >; + readonly useArrayJoin: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayJoin"] + >; + readonly useArrayMap: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayMap"] + >; + readonly useArrayReduce: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayReduce"] + >; + readonly useArraySome: UnwrapRef< + (typeof import("@vueuse/core"))["useArraySome"] + >; + readonly useArrayUnique: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayUnique"] + >; + readonly useAsyncQueue: UnwrapRef< + (typeof import("@vueuse/core"))["useAsyncQueue"] + >; + readonly useAsyncState: UnwrapRef< + (typeof import("@vueuse/core"))["useAsyncState"] + >; + readonly useAttrs: UnwrapRef<(typeof import("vue"))["useAttrs"]>; + readonly useBase64: UnwrapRef<(typeof import("@vueuse/core"))["useBase64"]>; + readonly useBattery: UnwrapRef< + (typeof import("@vueuse/core"))["useBattery"] + >; + readonly useBluetooth: UnwrapRef< + (typeof import("@vueuse/core"))["useBluetooth"] + >; + readonly useBreakpoints: UnwrapRef< + (typeof import("@vueuse/core"))["useBreakpoints"] + >; + readonly useBroadcastChannel: UnwrapRef< + (typeof import("@vueuse/core"))["useBroadcastChannel"] + >; + readonly useBrowserLocation: UnwrapRef< + (typeof import("@vueuse/core"))["useBrowserLocation"] + >; + readonly useCached: UnwrapRef<(typeof import("@vueuse/core"))["useCached"]>; + readonly useClipboard: UnwrapRef< + (typeof import("@vueuse/core"))["useClipboard"] + >; + readonly useClipboardItems: UnwrapRef< + (typeof import("@vueuse/core"))["useClipboardItems"] + >; + readonly useCloned: UnwrapRef<(typeof import("@vueuse/core"))["useCloned"]>; + readonly useColorMode: UnwrapRef< + (typeof import("@vueuse/core"))["useColorMode"] + >; + readonly useConfirmDialog: UnwrapRef< + (typeof import("@vueuse/core"))["useConfirmDialog"] + >; + readonly useCounter: UnwrapRef< + (typeof import("@vueuse/core"))["useCounter"] + >; + readonly useCssModule: UnwrapRef<(typeof import("vue"))["useCssModule"]>; + readonly useCssVar: UnwrapRef<(typeof import("@vueuse/core"))["useCssVar"]>; + readonly useCssVars: UnwrapRef<(typeof import("vue"))["useCssVars"]>; + readonly useCurrentElement: UnwrapRef< + (typeof import("@vueuse/core"))["useCurrentElement"] + >; + readonly useCycleList: UnwrapRef< + (typeof import("@vueuse/core"))["useCycleList"] + >; + readonly useDark: UnwrapRef<(typeof import("@vueuse/core"))["useDark"]>; + readonly useDateFormat: UnwrapRef< + (typeof import("@vueuse/core"))["useDateFormat"] + >; + readonly useDebounce: UnwrapRef< + (typeof import("@vueuse/core"))["useDebounce"] + >; + readonly useDebounceFn: UnwrapRef< + (typeof import("@vueuse/core"))["useDebounceFn"] + >; + readonly useDebouncedRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useDebouncedRefHistory"] + >; + readonly useDeviceMotion: UnwrapRef< + (typeof import("@vueuse/core"))["useDeviceMotion"] + >; + readonly useDeviceOrientation: UnwrapRef< + (typeof import("@vueuse/core"))["useDeviceOrientation"] + >; + readonly useDevicePixelRatio: UnwrapRef< + (typeof import("@vueuse/core"))["useDevicePixelRatio"] + >; + readonly useDevicesList: UnwrapRef< + (typeof import("@vueuse/core"))["useDevicesList"] + >; + readonly useDisplayMedia: UnwrapRef< + (typeof import("@vueuse/core"))["useDisplayMedia"] + >; + readonly useDocumentVisibility: UnwrapRef< + (typeof import("@vueuse/core"))["useDocumentVisibility"] + >; + readonly useDraggable: UnwrapRef< + (typeof import("@vueuse/core"))["useDraggable"] + >; + readonly useDropZone: UnwrapRef< + (typeof import("@vueuse/core"))["useDropZone"] + >; + readonly useElementBounding: UnwrapRef< + (typeof import("@vueuse/core"))["useElementBounding"] + >; + readonly useElementByPoint: UnwrapRef< + (typeof import("@vueuse/core"))["useElementByPoint"] + >; + readonly useElementHover: UnwrapRef< + (typeof import("@vueuse/core"))["useElementHover"] + >; + readonly useElementSize: UnwrapRef< + (typeof import("@vueuse/core"))["useElementSize"] + >; + readonly useElementVisibility: UnwrapRef< + (typeof import("@vueuse/core"))["useElementVisibility"] + >; + readonly useEventBus: UnwrapRef< + (typeof import("@vueuse/core"))["useEventBus"] + >; + readonly useEventListener: UnwrapRef< + (typeof import("@vueuse/core"))["useEventListener"] + >; + readonly useEventSource: UnwrapRef< + (typeof import("@vueuse/core"))["useEventSource"] + >; + readonly useEyeDropper: UnwrapRef< + (typeof import("@vueuse/core"))["useEyeDropper"] + >; + readonly useFavicon: UnwrapRef< + (typeof import("@vueuse/core"))["useFavicon"] + >; + readonly useFetch: UnwrapRef<(typeof import("@vueuse/core"))["useFetch"]>; + readonly useFileDialog: UnwrapRef< + (typeof import("@vueuse/core"))["useFileDialog"] + >; + readonly useFileSystemAccess: UnwrapRef< + (typeof import("@vueuse/core"))["useFileSystemAccess"] + >; + readonly useFocus: UnwrapRef<(typeof import("@vueuse/core"))["useFocus"]>; + readonly useFocusWithin: UnwrapRef< + (typeof import("@vueuse/core"))["useFocusWithin"] + >; + readonly useFps: UnwrapRef<(typeof import("@vueuse/core"))["useFps"]>; + readonly useFullscreen: UnwrapRef< + (typeof import("@vueuse/core"))["useFullscreen"] + >; + readonly useGamepad: UnwrapRef< + (typeof import("@vueuse/core"))["useGamepad"] + >; + readonly useGeolocation: UnwrapRef< + (typeof import("@vueuse/core"))["useGeolocation"] + >; + readonly useI18n: UnwrapRef<(typeof import("vue-i18n"))["useI18n"]>; + readonly useIdle: UnwrapRef<(typeof import("@vueuse/core"))["useIdle"]>; + readonly useImage: UnwrapRef<(typeof import("@vueuse/core"))["useImage"]>; + readonly useInfiniteScroll: UnwrapRef< + (typeof import("@vueuse/core"))["useInfiniteScroll"] + >; + readonly useIntersectionObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useIntersectionObserver"] + >; + readonly useInterval: UnwrapRef< + (typeof import("@vueuse/core"))["useInterval"] + >; + readonly useIntervalFn: UnwrapRef< + (typeof import("@vueuse/core"))["useIntervalFn"] + >; + readonly useKeyModifier: UnwrapRef< + (typeof import("@vueuse/core"))["useKeyModifier"] + >; + readonly useLastChanged: UnwrapRef< + (typeof import("@vueuse/core"))["useLastChanged"] + >; + readonly useLink: UnwrapRef<(typeof import("vue-router"))["useLink"]>; + readonly useLocalStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useLocalStorage"] + >; + readonly useMagicKeys: UnwrapRef< + (typeof import("@vueuse/core"))["useMagicKeys"] + >; + readonly useManualRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useManualRefHistory"] + >; + readonly useMediaControls: UnwrapRef< + (typeof import("@vueuse/core"))["useMediaControls"] + >; + readonly useMediaQuery: UnwrapRef< + (typeof import("@vueuse/core"))["useMediaQuery"] + >; + readonly useMemoize: UnwrapRef< + (typeof import("@vueuse/core"))["useMemoize"] + >; + readonly useMemory: UnwrapRef<(typeof import("@vueuse/core"))["useMemory"]>; + readonly useMounted: UnwrapRef< + (typeof import("@vueuse/core"))["useMounted"] + >; + readonly useMouse: UnwrapRef<(typeof import("@vueuse/core"))["useMouse"]>; + readonly useMouseInElement: UnwrapRef< + (typeof import("@vueuse/core"))["useMouseInElement"] + >; + readonly useMousePressed: UnwrapRef< + (typeof import("@vueuse/core"))["useMousePressed"] + >; + readonly useMutationObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useMutationObserver"] + >; + readonly useNavigatorLanguage: UnwrapRef< + (typeof import("@vueuse/core"))["useNavigatorLanguage"] + >; + readonly useNetwork: UnwrapRef< + (typeof import("@vueuse/core"))["useNetwork"] + >; + readonly useNow: UnwrapRef<(typeof import("@vueuse/core"))["useNow"]>; + readonly useObjectUrl: UnwrapRef< + (typeof import("@vueuse/core"))["useObjectUrl"] + >; + readonly useOffsetPagination: UnwrapRef< + (typeof import("@vueuse/core"))["useOffsetPagination"] + >; + readonly useOnline: UnwrapRef<(typeof import("@vueuse/core"))["useOnline"]>; + readonly usePageLeave: UnwrapRef< + (typeof import("@vueuse/core"))["usePageLeave"] + >; + readonly useParallax: UnwrapRef< + (typeof import("@vueuse/core"))["useParallax"] + >; + readonly useParentElement: UnwrapRef< + (typeof import("@vueuse/core"))["useParentElement"] + >; + readonly usePerformanceObserver: UnwrapRef< + (typeof import("@vueuse/core"))["usePerformanceObserver"] + >; + readonly usePermission: UnwrapRef< + (typeof import("@vueuse/core"))["usePermission"] + >; + readonly usePointer: UnwrapRef< + (typeof import("@vueuse/core"))["usePointer"] + >; + readonly usePointerLock: UnwrapRef< + (typeof import("@vueuse/core"))["usePointerLock"] + >; + readonly usePointerSwipe: UnwrapRef< + (typeof import("@vueuse/core"))["usePointerSwipe"] + >; + readonly usePreferredColorScheme: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredColorScheme"] + >; + readonly usePreferredContrast: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredContrast"] + >; + readonly usePreferredDark: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredDark"] + >; + readonly usePreferredLanguages: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredLanguages"] + >; + readonly usePreferredReducedMotion: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredReducedMotion"] + >; + readonly usePrevious: UnwrapRef< + (typeof import("@vueuse/core"))["usePrevious"] + >; + readonly useRafFn: UnwrapRef<(typeof import("@vueuse/core"))["useRafFn"]>; + readonly useRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useRefHistory"] + >; + readonly useResizeObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useResizeObserver"] + >; + readonly useRoute: UnwrapRef<(typeof import("vue-router"))["useRoute"]>; + readonly useRouter: UnwrapRef<(typeof import("vue-router"))["useRouter"]>; + readonly useScreenOrientation: UnwrapRef< + (typeof import("@vueuse/core"))["useScreenOrientation"] + >; + readonly useScreenSafeArea: UnwrapRef< + (typeof import("@vueuse/core"))["useScreenSafeArea"] + >; + readonly useScriptTag: UnwrapRef< + (typeof import("@vueuse/core"))["useScriptTag"] + >; + readonly useScroll: UnwrapRef<(typeof import("@vueuse/core"))["useScroll"]>; + readonly useScrollLock: UnwrapRef< + (typeof import("@vueuse/core"))["useScrollLock"] + >; + readonly useSessionStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useSessionStorage"] + >; + readonly useShare: UnwrapRef<(typeof import("@vueuse/core"))["useShare"]>; + readonly useSlots: UnwrapRef<(typeof import("vue"))["useSlots"]>; + readonly useSorted: UnwrapRef<(typeof import("@vueuse/core"))["useSorted"]>; + readonly useSpeechRecognition: UnwrapRef< + (typeof import("@vueuse/core"))["useSpeechRecognition"] + >; + readonly useSpeechSynthesis: UnwrapRef< + (typeof import("@vueuse/core"))["useSpeechSynthesis"] + >; + readonly useStepper: UnwrapRef< + (typeof import("@vueuse/core"))["useStepper"] + >; + readonly useStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useStorage"] + >; + readonly useStorageAsync: UnwrapRef< + (typeof import("@vueuse/core"))["useStorageAsync"] + >; + readonly useStyleTag: UnwrapRef< + (typeof import("@vueuse/core"))["useStyleTag"] + >; + readonly useSupported: UnwrapRef< + (typeof import("@vueuse/core"))["useSupported"] + >; + readonly useSwipe: UnwrapRef<(typeof import("@vueuse/core"))["useSwipe"]>; + readonly useTemplateRefsList: UnwrapRef< + (typeof import("@vueuse/core"))["useTemplateRefsList"] + >; + readonly useTextDirection: UnwrapRef< + (typeof import("@vueuse/core"))["useTextDirection"] + >; + readonly useTextSelection: UnwrapRef< + (typeof import("@vueuse/core"))["useTextSelection"] + >; + readonly useTextareaAutosize: UnwrapRef< + (typeof import("@vueuse/core"))["useTextareaAutosize"] + >; + readonly useThrottle: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottle"] + >; + readonly useThrottleFn: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottleFn"] + >; + readonly useThrottledRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottledRefHistory"] + >; + readonly useTimeAgo: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeAgo"] + >; + readonly useTimeout: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeout"] + >; + readonly useTimeoutFn: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeoutFn"] + >; + readonly useTimeoutPoll: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeoutPoll"] + >; + readonly useTimestamp: UnwrapRef< + (typeof import("@vueuse/core"))["useTimestamp"] + >; + readonly useTitle: UnwrapRef<(typeof import("@vueuse/core"))["useTitle"]>; + readonly useToNumber: UnwrapRef< + (typeof import("@vueuse/core"))["useToNumber"] + >; + readonly useToString: UnwrapRef< + (typeof import("@vueuse/core"))["useToString"] + >; + readonly useToggle: UnwrapRef<(typeof import("@vueuse/core"))["useToggle"]>; + readonly useTransition: UnwrapRef< + (typeof import("@vueuse/core"))["useTransition"] + >; + readonly useUrlSearchParams: UnwrapRef< + (typeof import("@vueuse/core"))["useUrlSearchParams"] + >; + readonly useUserMedia: UnwrapRef< + (typeof import("@vueuse/core"))["useUserMedia"] + >; + readonly useVModel: UnwrapRef<(typeof import("@vueuse/core"))["useVModel"]>; + readonly useVModels: UnwrapRef< + (typeof import("@vueuse/core"))["useVModels"] + >; + readonly useVibrate: UnwrapRef< + (typeof import("@vueuse/core"))["useVibrate"] + >; + readonly useVirtualList: UnwrapRef< + (typeof import("@vueuse/core"))["useVirtualList"] + >; + readonly useWakeLock: UnwrapRef< + (typeof import("@vueuse/core"))["useWakeLock"] + >; + readonly useWebNotification: UnwrapRef< + (typeof import("@vueuse/core"))["useWebNotification"] + >; + readonly useWebSocket: UnwrapRef< + (typeof import("@vueuse/core"))["useWebSocket"] + >; + readonly useWebWorker: UnwrapRef< + (typeof import("@vueuse/core"))["useWebWorker"] + >; + readonly useWebWorkerFn: UnwrapRef< + (typeof import("@vueuse/core"))["useWebWorkerFn"] + >; + readonly useWindowFocus: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowFocus"] + >; + readonly useWindowScroll: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowScroll"] + >; + readonly useWindowSize: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowSize"] + >; + readonly watch: UnwrapRef<(typeof import("vue"))["watch"]>; + readonly watchArray: UnwrapRef< + (typeof import("@vueuse/core"))["watchArray"] + >; + readonly watchAtMost: UnwrapRef< + (typeof import("@vueuse/core"))["watchAtMost"] + >; + readonly watchDebounced: UnwrapRef< + (typeof import("@vueuse/core"))["watchDebounced"] + >; + readonly watchDeep: UnwrapRef<(typeof import("@vueuse/core"))["watchDeep"]>; + readonly watchEffect: UnwrapRef<(typeof import("vue"))["watchEffect"]>; + readonly watchIgnorable: UnwrapRef< + (typeof import("@vueuse/core"))["watchIgnorable"] + >; + readonly watchImmediate: UnwrapRef< + (typeof import("@vueuse/core"))["watchImmediate"] + >; + readonly watchOnce: UnwrapRef<(typeof import("@vueuse/core"))["watchOnce"]>; + readonly watchPausable: UnwrapRef< + (typeof import("@vueuse/core"))["watchPausable"] + >; + readonly watchPostEffect: UnwrapRef< + (typeof import("vue"))["watchPostEffect"] + >; + readonly watchSyncEffect: UnwrapRef< + (typeof import("vue"))["watchSyncEffect"] + >; + readonly watchThrottled: UnwrapRef< + (typeof import("@vueuse/core"))["watchThrottled"] + >; + readonly watchTriggerable: UnwrapRef< + (typeof import("@vueuse/core"))["watchTriggerable"] + >; + readonly watchWithFilter: UnwrapRef< + (typeof import("@vueuse/core"))["watchWithFilter"] + >; + readonly whenever: UnwrapRef<(typeof import("@vueuse/core"))["whenever"]>; + } +} +declare module "@vue/runtime-core" { + interface GlobalComponents {} + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef<(typeof import("vue"))["EffectScope"]>; + readonly ElMessage: UnwrapRef< + (typeof import("element-plus/es"))["ElMessage"] + >; + readonly ElMessageBox: UnwrapRef< + (typeof import("element-plus/es"))["ElMessageBox"] + >; + readonly acceptHMRUpdate: UnwrapRef< + (typeof import("pinia"))["acceptHMRUpdate"] + >; + readonly asyncComputed: UnwrapRef< + (typeof import("@vueuse/core"))["asyncComputed"] + >; + readonly autoResetRef: UnwrapRef< + (typeof import("@vueuse/core"))["autoResetRef"] + >; + readonly computed: UnwrapRef<(typeof import("vue"))["computed"]>; + readonly computedAsync: UnwrapRef< + (typeof import("@vueuse/core"))["computedAsync"] + >; + readonly computedEager: UnwrapRef< + (typeof import("@vueuse/core"))["computedEager"] + >; + readonly computedInject: UnwrapRef< + (typeof import("@vueuse/core"))["computedInject"] + >; + readonly computedWithControl: UnwrapRef< + (typeof import("@vueuse/core"))["computedWithControl"] + >; + readonly controlledComputed: UnwrapRef< + (typeof import("@vueuse/core"))["controlledComputed"] + >; + readonly controlledRef: UnwrapRef< + (typeof import("@vueuse/core"))["controlledRef"] + >; + readonly createApp: UnwrapRef<(typeof import("vue"))["createApp"]>; + readonly createEventHook: UnwrapRef< + (typeof import("@vueuse/core"))["createEventHook"] + >; + readonly createGlobalState: UnwrapRef< + (typeof import("@vueuse/core"))["createGlobalState"] + >; + readonly createInjectionState: UnwrapRef< + (typeof import("@vueuse/core"))["createInjectionState"] + >; + readonly createPinia: UnwrapRef<(typeof import("pinia"))["createPinia"]>; + readonly createReactiveFn: UnwrapRef< + (typeof import("@vueuse/core"))["createReactiveFn"] + >; + readonly createReusableTemplate: UnwrapRef< + (typeof import("@vueuse/core"))["createReusableTemplate"] + >; + readonly createSharedComposable: UnwrapRef< + (typeof import("@vueuse/core"))["createSharedComposable"] + >; + readonly createTemplatePromise: UnwrapRef< + (typeof import("@vueuse/core"))["createTemplatePromise"] + >; + readonly createUnrefFn: UnwrapRef< + (typeof import("@vueuse/core"))["createUnrefFn"] + >; + readonly customRef: UnwrapRef<(typeof import("vue"))["customRef"]>; + readonly debouncedRef: UnwrapRef< + (typeof import("@vueuse/core"))["debouncedRef"] + >; + readonly debouncedWatch: UnwrapRef< + (typeof import("@vueuse/core"))["debouncedWatch"] + >; + readonly defineAsyncComponent: UnwrapRef< + (typeof import("vue"))["defineAsyncComponent"] + >; + readonly defineComponent: UnwrapRef< + (typeof import("vue"))["defineComponent"] + >; + readonly defineStore: UnwrapRef<(typeof import("pinia"))["defineStore"]>; + readonly eagerComputed: UnwrapRef< + (typeof import("@vueuse/core"))["eagerComputed"] + >; + readonly effectScope: UnwrapRef<(typeof import("vue"))["effectScope"]>; + readonly extendRef: UnwrapRef<(typeof import("@vueuse/core"))["extendRef"]>; + readonly getActivePinia: UnwrapRef< + (typeof import("pinia"))["getActivePinia"] + >; + readonly getCurrentInstance: UnwrapRef< + (typeof import("vue"))["getCurrentInstance"] + >; + readonly getCurrentScope: UnwrapRef< + (typeof import("vue"))["getCurrentScope"] + >; + readonly h: UnwrapRef<(typeof import("vue"))["h"]>; + readonly ignorableWatch: UnwrapRef< + (typeof import("@vueuse/core"))["ignorableWatch"] + >; + readonly inject: UnwrapRef<(typeof import("vue"))["inject"]>; + readonly injectLocal: UnwrapRef< + (typeof import("@vueuse/core"))["injectLocal"] + >; + readonly isDefined: UnwrapRef<(typeof import("@vueuse/core"))["isDefined"]>; + readonly isProxy: UnwrapRef<(typeof import("vue"))["isProxy"]>; + readonly isReactive: UnwrapRef<(typeof import("vue"))["isReactive"]>; + readonly isReadonly: UnwrapRef<(typeof import("vue"))["isReadonly"]>; + readonly isRef: UnwrapRef<(typeof import("vue"))["isRef"]>; + readonly makeDestructurable: UnwrapRef< + (typeof import("@vueuse/core"))["makeDestructurable"] + >; + readonly mapActions: UnwrapRef<(typeof import("pinia"))["mapActions"]>; + readonly mapGetters: UnwrapRef<(typeof import("pinia"))["mapGetters"]>; + readonly mapState: UnwrapRef<(typeof import("pinia"))["mapState"]>; + readonly mapStores: UnwrapRef<(typeof import("pinia"))["mapStores"]>; + readonly mapWritableState: UnwrapRef< + (typeof import("pinia"))["mapWritableState"] + >; + readonly markRaw: UnwrapRef<(typeof import("vue"))["markRaw"]>; + readonly nextTick: UnwrapRef<(typeof import("vue"))["nextTick"]>; + readonly onActivated: UnwrapRef<(typeof import("vue"))["onActivated"]>; + readonly onBeforeMount: UnwrapRef<(typeof import("vue"))["onBeforeMount"]>; + readonly onBeforeRouteLeave: UnwrapRef< + (typeof import("vue-router"))["onBeforeRouteLeave"] + >; + readonly onBeforeRouteUpdate: UnwrapRef< + (typeof import("vue-router"))["onBeforeRouteUpdate"] + >; + readonly onBeforeUnmount: UnwrapRef< + (typeof import("vue"))["onBeforeUnmount"] + >; + readonly onBeforeUpdate: UnwrapRef< + (typeof import("vue"))["onBeforeUpdate"] + >; + readonly onClickOutside: UnwrapRef< + (typeof import("@vueuse/core"))["onClickOutside"] + >; + readonly onDeactivated: UnwrapRef<(typeof import("vue"))["onDeactivated"]>; + readonly onErrorCaptured: UnwrapRef< + (typeof import("vue"))["onErrorCaptured"] + >; + readonly onKeyStroke: UnwrapRef< + (typeof import("@vueuse/core"))["onKeyStroke"] + >; + readonly onLongPress: UnwrapRef< + (typeof import("@vueuse/core"))["onLongPress"] + >; + readonly onMounted: UnwrapRef<(typeof import("vue"))["onMounted"]>; + readonly onRenderTracked: UnwrapRef< + (typeof import("vue"))["onRenderTracked"] + >; + readonly onRenderTriggered: UnwrapRef< + (typeof import("vue"))["onRenderTriggered"] + >; + readonly onScopeDispose: UnwrapRef< + (typeof import("vue"))["onScopeDispose"] + >; + readonly onServerPrefetch: UnwrapRef< + (typeof import("vue"))["onServerPrefetch"] + >; + readonly onStartTyping: UnwrapRef< + (typeof import("@vueuse/core"))["onStartTyping"] + >; + readonly onUnmounted: UnwrapRef<(typeof import("vue"))["onUnmounted"]>; + readonly onUpdated: UnwrapRef<(typeof import("vue"))["onUpdated"]>; + readonly pausableWatch: UnwrapRef< + (typeof import("@vueuse/core"))["pausableWatch"] + >; + readonly provide: UnwrapRef<(typeof import("vue"))["provide"]>; + readonly provideLocal: UnwrapRef< + (typeof import("@vueuse/core"))["provideLocal"] + >; + readonly reactify: UnwrapRef<(typeof import("@vueuse/core"))["reactify"]>; + readonly reactifyObject: UnwrapRef< + (typeof import("@vueuse/core"))["reactifyObject"] + >; + readonly reactive: UnwrapRef<(typeof import("vue"))["reactive"]>; + readonly reactiveComputed: UnwrapRef< + (typeof import("@vueuse/core"))["reactiveComputed"] + >; + readonly reactiveOmit: UnwrapRef< + (typeof import("@vueuse/core"))["reactiveOmit"] + >; + readonly reactivePick: UnwrapRef< + (typeof import("@vueuse/core"))["reactivePick"] + >; + readonly readonly: UnwrapRef<(typeof import("vue"))["readonly"]>; + readonly ref: UnwrapRef<(typeof import("vue"))["ref"]>; + readonly refAutoReset: UnwrapRef< + (typeof import("@vueuse/core"))["refAutoReset"] + >; + readonly refDebounced: UnwrapRef< + (typeof import("@vueuse/core"))["refDebounced"] + >; + readonly refDefault: UnwrapRef< + (typeof import("@vueuse/core"))["refDefault"] + >; + readonly refThrottled: UnwrapRef< + (typeof import("@vueuse/core"))["refThrottled"] + >; + readonly refWithControl: UnwrapRef< + (typeof import("@vueuse/core"))["refWithControl"] + >; + readonly resolveComponent: UnwrapRef< + (typeof import("vue"))["resolveComponent"] + >; + readonly resolveRef: UnwrapRef< + (typeof import("@vueuse/core"))["resolveRef"] + >; + readonly resolveUnref: UnwrapRef< + (typeof import("@vueuse/core"))["resolveUnref"] + >; + readonly setActivePinia: UnwrapRef< + (typeof import("pinia"))["setActivePinia"] + >; + readonly setMapStoreSuffix: UnwrapRef< + (typeof import("pinia"))["setMapStoreSuffix"] + >; + readonly shallowReactive: UnwrapRef< + (typeof import("vue"))["shallowReactive"] + >; + readonly shallowReadonly: UnwrapRef< + (typeof import("vue"))["shallowReadonly"] + >; + readonly shallowRef: UnwrapRef<(typeof import("vue"))["shallowRef"]>; + readonly storeToRefs: UnwrapRef<(typeof import("pinia"))["storeToRefs"]>; + readonly syncRef: UnwrapRef<(typeof import("@vueuse/core"))["syncRef"]>; + readonly syncRefs: UnwrapRef<(typeof import("@vueuse/core"))["syncRefs"]>; + readonly templateRef: UnwrapRef< + (typeof import("@vueuse/core"))["templateRef"] + >; + readonly throttledRef: UnwrapRef< + (typeof import("@vueuse/core"))["throttledRef"] + >; + readonly throttledWatch: UnwrapRef< + (typeof import("@vueuse/core"))["throttledWatch"] + >; + readonly toRaw: UnwrapRef<(typeof import("vue"))["toRaw"]>; + readonly toReactive: UnwrapRef< + (typeof import("@vueuse/core"))["toReactive"] + >; + readonly toRef: UnwrapRef<(typeof import("vue"))["toRef"]>; + readonly toRefs: UnwrapRef<(typeof import("vue"))["toRefs"]>; + readonly toValue: UnwrapRef<(typeof import("vue"))["toValue"]>; + readonly triggerRef: UnwrapRef<(typeof import("vue"))["triggerRef"]>; + readonly tryOnBeforeMount: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnBeforeMount"] + >; + readonly tryOnBeforeUnmount: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnBeforeUnmount"] + >; + readonly tryOnMounted: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnMounted"] + >; + readonly tryOnScopeDispose: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnScopeDispose"] + >; + readonly tryOnUnmounted: UnwrapRef< + (typeof import("@vueuse/core"))["tryOnUnmounted"] + >; + readonly unref: UnwrapRef<(typeof import("vue"))["unref"]>; + readonly unrefElement: UnwrapRef< + (typeof import("@vueuse/core"))["unrefElement"] + >; + readonly until: UnwrapRef<(typeof import("@vueuse/core"))["until"]>; + readonly useActiveElement: UnwrapRef< + (typeof import("@vueuse/core"))["useActiveElement"] + >; + readonly useAnimate: UnwrapRef< + (typeof import("@vueuse/core"))["useAnimate"] + >; + readonly useArrayDifference: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayDifference"] + >; + readonly useArrayEvery: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayEvery"] + >; + readonly useArrayFilter: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFilter"] + >; + readonly useArrayFind: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFind"] + >; + readonly useArrayFindIndex: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFindIndex"] + >; + readonly useArrayFindLast: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayFindLast"] + >; + readonly useArrayIncludes: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayIncludes"] + >; + readonly useArrayJoin: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayJoin"] + >; + readonly useArrayMap: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayMap"] + >; + readonly useArrayReduce: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayReduce"] + >; + readonly useArraySome: UnwrapRef< + (typeof import("@vueuse/core"))["useArraySome"] + >; + readonly useArrayUnique: UnwrapRef< + (typeof import("@vueuse/core"))["useArrayUnique"] + >; + readonly useAsyncQueue: UnwrapRef< + (typeof import("@vueuse/core"))["useAsyncQueue"] + >; + readonly useAsyncState: UnwrapRef< + (typeof import("@vueuse/core"))["useAsyncState"] + >; + readonly useAttrs: UnwrapRef<(typeof import("vue"))["useAttrs"]>; + readonly useBase64: UnwrapRef<(typeof import("@vueuse/core"))["useBase64"]>; + readonly useBattery: UnwrapRef< + (typeof import("@vueuse/core"))["useBattery"] + >; + readonly useBluetooth: UnwrapRef< + (typeof import("@vueuse/core"))["useBluetooth"] + >; + readonly useBreakpoints: UnwrapRef< + (typeof import("@vueuse/core"))["useBreakpoints"] + >; + readonly useBroadcastChannel: UnwrapRef< + (typeof import("@vueuse/core"))["useBroadcastChannel"] + >; + readonly useBrowserLocation: UnwrapRef< + (typeof import("@vueuse/core"))["useBrowserLocation"] + >; + readonly useCached: UnwrapRef<(typeof import("@vueuse/core"))["useCached"]>; + readonly useClipboard: UnwrapRef< + (typeof import("@vueuse/core"))["useClipboard"] + >; + readonly useClipboardItems: UnwrapRef< + (typeof import("@vueuse/core"))["useClipboardItems"] + >; + readonly useCloned: UnwrapRef<(typeof import("@vueuse/core"))["useCloned"]>; + readonly useColorMode: UnwrapRef< + (typeof import("@vueuse/core"))["useColorMode"] + >; + readonly useConfirmDialog: UnwrapRef< + (typeof import("@vueuse/core"))["useConfirmDialog"] + >; + readonly useCounter: UnwrapRef< + (typeof import("@vueuse/core"))["useCounter"] + >; + readonly useCssModule: UnwrapRef<(typeof import("vue"))["useCssModule"]>; + readonly useCssVar: UnwrapRef<(typeof import("@vueuse/core"))["useCssVar"]>; + readonly useCssVars: UnwrapRef<(typeof import("vue"))["useCssVars"]>; + readonly useCurrentElement: UnwrapRef< + (typeof import("@vueuse/core"))["useCurrentElement"] + >; + readonly useCycleList: UnwrapRef< + (typeof import("@vueuse/core"))["useCycleList"] + >; + readonly useDark: UnwrapRef<(typeof import("@vueuse/core"))["useDark"]>; + readonly useDateFormat: UnwrapRef< + (typeof import("@vueuse/core"))["useDateFormat"] + >; + readonly useDebounce: UnwrapRef< + (typeof import("@vueuse/core"))["useDebounce"] + >; + readonly useDebounceFn: UnwrapRef< + (typeof import("@vueuse/core"))["useDebounceFn"] + >; + readonly useDebouncedRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useDebouncedRefHistory"] + >; + readonly useDeviceMotion: UnwrapRef< + (typeof import("@vueuse/core"))["useDeviceMotion"] + >; + readonly useDeviceOrientation: UnwrapRef< + (typeof import("@vueuse/core"))["useDeviceOrientation"] + >; + readonly useDevicePixelRatio: UnwrapRef< + (typeof import("@vueuse/core"))["useDevicePixelRatio"] + >; + readonly useDevicesList: UnwrapRef< + (typeof import("@vueuse/core"))["useDevicesList"] + >; + readonly useDisplayMedia: UnwrapRef< + (typeof import("@vueuse/core"))["useDisplayMedia"] + >; + readonly useDocumentVisibility: UnwrapRef< + (typeof import("@vueuse/core"))["useDocumentVisibility"] + >; + readonly useDraggable: UnwrapRef< + (typeof import("@vueuse/core"))["useDraggable"] + >; + readonly useDropZone: UnwrapRef< + (typeof import("@vueuse/core"))["useDropZone"] + >; + readonly useElementBounding: UnwrapRef< + (typeof import("@vueuse/core"))["useElementBounding"] + >; + readonly useElementByPoint: UnwrapRef< + (typeof import("@vueuse/core"))["useElementByPoint"] + >; + readonly useElementHover: UnwrapRef< + (typeof import("@vueuse/core"))["useElementHover"] + >; + readonly useElementSize: UnwrapRef< + (typeof import("@vueuse/core"))["useElementSize"] + >; + readonly useElementVisibility: UnwrapRef< + (typeof import("@vueuse/core"))["useElementVisibility"] + >; + readonly useEventBus: UnwrapRef< + (typeof import("@vueuse/core"))["useEventBus"] + >; + readonly useEventListener: UnwrapRef< + (typeof import("@vueuse/core"))["useEventListener"] + >; + readonly useEventSource: UnwrapRef< + (typeof import("@vueuse/core"))["useEventSource"] + >; + readonly useEyeDropper: UnwrapRef< + (typeof import("@vueuse/core"))["useEyeDropper"] + >; + readonly useFavicon: UnwrapRef< + (typeof import("@vueuse/core"))["useFavicon"] + >; + readonly useFetch: UnwrapRef<(typeof import("@vueuse/core"))["useFetch"]>; + readonly useFileDialog: UnwrapRef< + (typeof import("@vueuse/core"))["useFileDialog"] + >; + readonly useFileSystemAccess: UnwrapRef< + (typeof import("@vueuse/core"))["useFileSystemAccess"] + >; + readonly useFocus: UnwrapRef<(typeof import("@vueuse/core"))["useFocus"]>; + readonly useFocusWithin: UnwrapRef< + (typeof import("@vueuse/core"))["useFocusWithin"] + >; + readonly useFps: UnwrapRef<(typeof import("@vueuse/core"))["useFps"]>; + readonly useFullscreen: UnwrapRef< + (typeof import("@vueuse/core"))["useFullscreen"] + >; + readonly useGamepad: UnwrapRef< + (typeof import("@vueuse/core"))["useGamepad"] + >; + readonly useGeolocation: UnwrapRef< + (typeof import("@vueuse/core"))["useGeolocation"] + >; + readonly useI18n: UnwrapRef<(typeof import("vue-i18n"))["useI18n"]>; + readonly useIdle: UnwrapRef<(typeof import("@vueuse/core"))["useIdle"]>; + readonly useImage: UnwrapRef<(typeof import("@vueuse/core"))["useImage"]>; + readonly useInfiniteScroll: UnwrapRef< + (typeof import("@vueuse/core"))["useInfiniteScroll"] + >; + readonly useIntersectionObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useIntersectionObserver"] + >; + readonly useInterval: UnwrapRef< + (typeof import("@vueuse/core"))["useInterval"] + >; + readonly useIntervalFn: UnwrapRef< + (typeof import("@vueuse/core"))["useIntervalFn"] + >; + readonly useKeyModifier: UnwrapRef< + (typeof import("@vueuse/core"))["useKeyModifier"] + >; + readonly useLastChanged: UnwrapRef< + (typeof import("@vueuse/core"))["useLastChanged"] + >; + readonly useLink: UnwrapRef<(typeof import("vue-router"))["useLink"]>; + readonly useLocalStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useLocalStorage"] + >; + readonly useMagicKeys: UnwrapRef< + (typeof import("@vueuse/core"))["useMagicKeys"] + >; + readonly useManualRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useManualRefHistory"] + >; + readonly useMediaControls: UnwrapRef< + (typeof import("@vueuse/core"))["useMediaControls"] + >; + readonly useMediaQuery: UnwrapRef< + (typeof import("@vueuse/core"))["useMediaQuery"] + >; + readonly useMemoize: UnwrapRef< + (typeof import("@vueuse/core"))["useMemoize"] + >; + readonly useMemory: UnwrapRef<(typeof import("@vueuse/core"))["useMemory"]>; + readonly useMounted: UnwrapRef< + (typeof import("@vueuse/core"))["useMounted"] + >; + readonly useMouse: UnwrapRef<(typeof import("@vueuse/core"))["useMouse"]>; + readonly useMouseInElement: UnwrapRef< + (typeof import("@vueuse/core"))["useMouseInElement"] + >; + readonly useMousePressed: UnwrapRef< + (typeof import("@vueuse/core"))["useMousePressed"] + >; + readonly useMutationObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useMutationObserver"] + >; + readonly useNavigatorLanguage: UnwrapRef< + (typeof import("@vueuse/core"))["useNavigatorLanguage"] + >; + readonly useNetwork: UnwrapRef< + (typeof import("@vueuse/core"))["useNetwork"] + >; + readonly useNow: UnwrapRef<(typeof import("@vueuse/core"))["useNow"]>; + readonly useObjectUrl: UnwrapRef< + (typeof import("@vueuse/core"))["useObjectUrl"] + >; + readonly useOffsetPagination: UnwrapRef< + (typeof import("@vueuse/core"))["useOffsetPagination"] + >; + readonly useOnline: UnwrapRef<(typeof import("@vueuse/core"))["useOnline"]>; + readonly usePageLeave: UnwrapRef< + (typeof import("@vueuse/core"))["usePageLeave"] + >; + readonly useParallax: UnwrapRef< + (typeof import("@vueuse/core"))["useParallax"] + >; + readonly useParentElement: UnwrapRef< + (typeof import("@vueuse/core"))["useParentElement"] + >; + readonly usePerformanceObserver: UnwrapRef< + (typeof import("@vueuse/core"))["usePerformanceObserver"] + >; + readonly usePermission: UnwrapRef< + (typeof import("@vueuse/core"))["usePermission"] + >; + readonly usePointer: UnwrapRef< + (typeof import("@vueuse/core"))["usePointer"] + >; + readonly usePointerLock: UnwrapRef< + (typeof import("@vueuse/core"))["usePointerLock"] + >; + readonly usePointerSwipe: UnwrapRef< + (typeof import("@vueuse/core"))["usePointerSwipe"] + >; + readonly usePreferredColorScheme: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredColorScheme"] + >; + readonly usePreferredContrast: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredContrast"] + >; + readonly usePreferredDark: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredDark"] + >; + readonly usePreferredLanguages: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredLanguages"] + >; + readonly usePreferredReducedMotion: UnwrapRef< + (typeof import("@vueuse/core"))["usePreferredReducedMotion"] + >; + readonly usePrevious: UnwrapRef< + (typeof import("@vueuse/core"))["usePrevious"] + >; + readonly useRafFn: UnwrapRef<(typeof import("@vueuse/core"))["useRafFn"]>; + readonly useRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useRefHistory"] + >; + readonly useResizeObserver: UnwrapRef< + (typeof import("@vueuse/core"))["useResizeObserver"] + >; + readonly useRoute: UnwrapRef<(typeof import("vue-router"))["useRoute"]>; + readonly useRouter: UnwrapRef<(typeof import("vue-router"))["useRouter"]>; + readonly useScreenOrientation: UnwrapRef< + (typeof import("@vueuse/core"))["useScreenOrientation"] + >; + readonly useScreenSafeArea: UnwrapRef< + (typeof import("@vueuse/core"))["useScreenSafeArea"] + >; + readonly useScriptTag: UnwrapRef< + (typeof import("@vueuse/core"))["useScriptTag"] + >; + readonly useScroll: UnwrapRef<(typeof import("@vueuse/core"))["useScroll"]>; + readonly useScrollLock: UnwrapRef< + (typeof import("@vueuse/core"))["useScrollLock"] + >; + readonly useSessionStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useSessionStorage"] + >; + readonly useShare: UnwrapRef<(typeof import("@vueuse/core"))["useShare"]>; + readonly useSlots: UnwrapRef<(typeof import("vue"))["useSlots"]>; + readonly useSorted: UnwrapRef<(typeof import("@vueuse/core"))["useSorted"]>; + readonly useSpeechRecognition: UnwrapRef< + (typeof import("@vueuse/core"))["useSpeechRecognition"] + >; + readonly useSpeechSynthesis: UnwrapRef< + (typeof import("@vueuse/core"))["useSpeechSynthesis"] + >; + readonly useStepper: UnwrapRef< + (typeof import("@vueuse/core"))["useStepper"] + >; + readonly useStorage: UnwrapRef< + (typeof import("@vueuse/core"))["useStorage"] + >; + readonly useStorageAsync: UnwrapRef< + (typeof import("@vueuse/core"))["useStorageAsync"] + >; + readonly useStyleTag: UnwrapRef< + (typeof import("@vueuse/core"))["useStyleTag"] + >; + readonly useSupported: UnwrapRef< + (typeof import("@vueuse/core"))["useSupported"] + >; + readonly useSwipe: UnwrapRef<(typeof import("@vueuse/core"))["useSwipe"]>; + readonly useTemplateRefsList: UnwrapRef< + (typeof import("@vueuse/core"))["useTemplateRefsList"] + >; + readonly useTextDirection: UnwrapRef< + (typeof import("@vueuse/core"))["useTextDirection"] + >; + readonly useTextSelection: UnwrapRef< + (typeof import("@vueuse/core"))["useTextSelection"] + >; + readonly useTextareaAutosize: UnwrapRef< + (typeof import("@vueuse/core"))["useTextareaAutosize"] + >; + readonly useThrottle: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottle"] + >; + readonly useThrottleFn: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottleFn"] + >; + readonly useThrottledRefHistory: UnwrapRef< + (typeof import("@vueuse/core"))["useThrottledRefHistory"] + >; + readonly useTimeAgo: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeAgo"] + >; + readonly useTimeout: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeout"] + >; + readonly useTimeoutFn: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeoutFn"] + >; + readonly useTimeoutPoll: UnwrapRef< + (typeof import("@vueuse/core"))["useTimeoutPoll"] + >; + readonly useTimestamp: UnwrapRef< + (typeof import("@vueuse/core"))["useTimestamp"] + >; + readonly useTitle: UnwrapRef<(typeof import("@vueuse/core"))["useTitle"]>; + readonly useToNumber: UnwrapRef< + (typeof import("@vueuse/core"))["useToNumber"] + >; + readonly useToString: UnwrapRef< + (typeof import("@vueuse/core"))["useToString"] + >; + readonly useToggle: UnwrapRef<(typeof import("@vueuse/core"))["useToggle"]>; + readonly useTransition: UnwrapRef< + (typeof import("@vueuse/core"))["useTransition"] + >; + readonly useUrlSearchParams: UnwrapRef< + (typeof import("@vueuse/core"))["useUrlSearchParams"] + >; + readonly useUserMedia: UnwrapRef< + (typeof import("@vueuse/core"))["useUserMedia"] + >; + readonly useVModel: UnwrapRef<(typeof import("@vueuse/core"))["useVModel"]>; + readonly useVModels: UnwrapRef< + (typeof import("@vueuse/core"))["useVModels"] + >; + readonly useVibrate: UnwrapRef< + (typeof import("@vueuse/core"))["useVibrate"] + >; + readonly useVirtualList: UnwrapRef< + (typeof import("@vueuse/core"))["useVirtualList"] + >; + readonly useWakeLock: UnwrapRef< + (typeof import("@vueuse/core"))["useWakeLock"] + >; + readonly useWebNotification: UnwrapRef< + (typeof import("@vueuse/core"))["useWebNotification"] + >; + readonly useWebSocket: UnwrapRef< + (typeof import("@vueuse/core"))["useWebSocket"] + >; + readonly useWebWorker: UnwrapRef< + (typeof import("@vueuse/core"))["useWebWorker"] + >; + readonly useWebWorkerFn: UnwrapRef< + (typeof import("@vueuse/core"))["useWebWorkerFn"] + >; + readonly useWindowFocus: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowFocus"] + >; + readonly useWindowScroll: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowScroll"] + >; + readonly useWindowSize: UnwrapRef< + (typeof import("@vueuse/core"))["useWindowSize"] + >; + readonly watch: UnwrapRef<(typeof import("vue"))["watch"]>; + readonly watchArray: UnwrapRef< + (typeof import("@vueuse/core"))["watchArray"] + >; + readonly watchAtMost: UnwrapRef< + (typeof import("@vueuse/core"))["watchAtMost"] + >; + readonly watchDebounced: UnwrapRef< + (typeof import("@vueuse/core"))["watchDebounced"] + >; + readonly watchDeep: UnwrapRef<(typeof import("@vueuse/core"))["watchDeep"]>; + readonly watchEffect: UnwrapRef<(typeof import("vue"))["watchEffect"]>; + readonly watchIgnorable: UnwrapRef< + (typeof import("@vueuse/core"))["watchIgnorable"] + >; + readonly watchImmediate: UnwrapRef< + (typeof import("@vueuse/core"))["watchImmediate"] + >; + readonly watchOnce: UnwrapRef<(typeof import("@vueuse/core"))["watchOnce"]>; + readonly watchPausable: UnwrapRef< + (typeof import("@vueuse/core"))["watchPausable"] + >; + readonly watchPostEffect: UnwrapRef< + (typeof import("vue"))["watchPostEffect"] + >; + readonly watchSyncEffect: UnwrapRef< + (typeof import("vue"))["watchSyncEffect"] + >; + readonly watchThrottled: UnwrapRef< + (typeof import("@vueuse/core"))["watchThrottled"] + >; + readonly watchTriggerable: UnwrapRef< + (typeof import("@vueuse/core"))["watchTriggerable"] + >; + readonly watchWithFilter: UnwrapRef< + (typeof import("@vueuse/core"))["watchWithFilter"] + >; + readonly whenever: UnwrapRef<(typeof import("@vueuse/core"))["whenever"]>; + } +} diff --git a/fixTypes/electron-env.d.ts b/fixTypes/electron-env.d.ts new file mode 100644 index 0000000..daa1225 --- /dev/null +++ b/fixTypes/electron-env.d.ts @@ -0,0 +1,23 @@ +/// + +declare namespace NodeJS { + interface ProcessEnv { + VSCODE_DEBUG?: 'true' + /** + * The built directory structure + * + * ```tree + * ├─┬ dist-electron + * │ ├─┬ main + * │ │ └── index.js > Electron-Main + * │ └─┬ preload + * │ └── index.mjs > Preload-Scripts + * ├─┬ dist + * │ └── index.html > Electron-Renderer + * ``` + */ + APP_ROOT: string + /** /dist/ or /public/ */ + VITE_PUBLIC: string + } +} diff --git a/fixTypes/vite-env.d.ts b/fixTypes/vite-env.d.ts new file mode 100644 index 0000000..788532e --- /dev/null +++ b/fixTypes/vite-env.d.ts @@ -0,0 +1,12 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} + +interface Window { + // expose in the `electron/preload/index.ts` + ipcRenderer: import('electron').IpcRenderer +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..466ee0d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,17076 @@ +{ + "name": "hi-sass-frame-front", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hi-sass-frame-front", + "version": "0.0.1", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@grpc/grpc-js": "^1.11.1", + "@types/node": "^22.5.4", + "@univerjs/core": "^0.2.8", + "@univerjs/data-validation": "^0.2.8", + "@univerjs/design": "^0.2.8", + "@univerjs/docs": "^0.2.8", + "@univerjs/docs-hyper-link": "^0.2.9", + "@univerjs/docs-ui": "^0.2.8", + "@univerjs/drawing": "^0.2.8", + "@univerjs/drawing-ui": "^0.2.8", + "@univerjs/engine-formula": "^0.2.8", + "@univerjs/engine-numfmt": "^0.2.8", + "@univerjs/engine-render": "^0.2.8", + "@univerjs/facade": "^0.2.8", + "@univerjs/find-replace": "^0.2.8", + "@univerjs/network": "^0.2.9", + "@univerjs/rpc": "^0.2.9", + "@univerjs/sheets": "^0.2.8", + "@univerjs/sheets-conditional-formatting": "^0.2.8", + "@univerjs/sheets-conditional-formatting-ui": "^0.2.8", + "@univerjs/sheets-crosshair-highlight": "^0.2.9", + "@univerjs/sheets-data-validation": "^0.2.8", + "@univerjs/sheets-drawing": "^0.2.8", + "@univerjs/sheets-drawing-ui": "^0.2.8", + "@univerjs/sheets-filter": "^0.2.8", + "@univerjs/sheets-filter-ui": "^0.2.8", + "@univerjs/sheets-find-replace": "^0.2.8", + "@univerjs/sheets-formula": "^0.2.8", + "@univerjs/sheets-hyper-link": "^0.2.8", + "@univerjs/sheets-hyper-link-ui": "^0.2.8", + "@univerjs/sheets-numfmt": "^0.2.8", + "@univerjs/sheets-sort": "^0.2.8", + "@univerjs/sheets-sort-ui": "^0.2.8", + "@univerjs/sheets-thread-comment": "^0.2.8", + "@univerjs/sheets-thread-comment-base": "^0.2.8", + "@univerjs/sheets-ui": "^0.2.8", + "@univerjs/sheets-zen-editor": "^0.2.8", + "@univerjs/thread-comment": "^0.2.8", + "@univerjs/thread-comment-ui": "^0.2.8", + "@univerjs/ui": "^0.2.8", + "@univerjs/vite-plugin": "^0.5.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "animate.css": "^4.1.1", + "axios": "^1.7.4", + "clsx": "^2.1.1", + "color": "^4.2.3", + "csstype": "^3.1.3", + "dayjs": "^1.11.13", + "echarts": "^5.5.1", + "electron_updater_node_cli": "^0.3.3", + "electron_updater_node_core": "^0.3.3", + "electron-log": "^5.1.7", + "electron-updater": "^6.2.1", + "element-plus": "^2.8.0", + "exceljs": "^4.4.0", + "express": "^4.19.2", + "express-ws": "^5.0.2", + "glob": "^11.0.0", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "pinia": "^2.2.2", + "regedit": "^5.1.3", + "rxjs": "^7.8.1", + "semver": "^7.6.3", + "sockjs-client": "^1.6.1", + "stompjs": "^2.3.3", + "unocss": "^0.62.3", + "uuid": "^10.0.0", + "vue": "^3.4.21", + "vue-i18n": "9.14.0", + "vue-router": "^4.4.3", + "webstomp-client": "^1.2.6", + "ws": "^8.18.0" + }, + "devDependencies": { + "@iconify-json/ep": "^1.1.16", + "@rollup/plugin-alias": "^5.1.0", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.5", + "@rollup/plugin-typescript": "^11.1.6", + "@types/adm-zip": "^0.5.5", + "@types/color": "^3.0.6", + "@types/express": "^4.17.21", + "@types/express-ws": "^3.0.5", + "@types/fs-extra": "^11.0.4", + "@types/lodash": "^4.17.7", + "@types/minimist": "^1.2.5", + "@types/nprogress": "^0.2.3", + "@types/path-browserify": "^1.0.3", + "@types/semver": "^7.5.8", + "@types/sockjs-client": "^1.5.4", + "@types/sortablejs": "^1.15.8", + "@types/stompjs": "^2.3.9", + "@types/uuid": "^10.0.0", + "@vitejs/plugin-vue": "^5.1.2", + "@vitejs/plugin-vue-jsx": "^4.0.1", + "@vue/compiler-sfc": "^3.4.38", + "adm-zip": "^0.5.15", + "cfonts": "^3.3.0", + "chalk": "5.3.0", + "cross-env": "^7.0.3", + "del": "^7.1.0", + "dotenv": "^16.4.5", + "electron": "^32.0.2", + "electron-builder": "^24.13.3", + "electron-builder-squirrel-windows": "^24.13.3", + "electron-devtools-vendor": "^3.0.0", + "esbuild": "^0.23.1", + "extract-zip": "^2.0.1", + "fs-extra": "^11.2.0", + "inquirer": "^10.1.8", + "javascript-obfuscator": "^4.1.1", + "listr2": "^8.2.4", + "minimist": "^1.2.8", + "path-to-regexp": "^7.1.0", + "portfinder": "^1.0.32", + "postcss": "^8.4.41", + "postcss-html": "^1.7.0", + "postcss-scss": "^4.0.9", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rollup": "^4.21.0", + "rollup-plugin-esbuild": "^6.1.1", + "rollup-plugin-obfuscator": "^1.1.0", + "sass": "^1.77.8", + "tslib": "^2.6.3", + "tsx": "^4.17.0", + "typescript": "^5.5.4", + "unplugin-auto-import": "^0.17.6", + "unplugin-icons": "^0.18.5", + "unplugin-vue-components": "^0.26.0", + "vite": "^5.4.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-devtools": "^7.3.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.3.5.tgz", + "integrity": "sha512-HwIACY0IzrM7FGafMbWZOqEDBSfCwPcylu+GacaRcxJm4Yvvuh3Dy2vZwqdJAzXponc6aLO9FaH4l75pq8/ZSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jsdevtools/ez-spawn": "^3.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "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.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", + "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "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.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmmirror.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "license": "MIT", + "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/asar": { + "version": "3.2.10", + "resolved": "https://registry.npmmirror.com/@electron/asar/-/asar-3.2.10.tgz", + "integrity": "sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@electron/asar/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "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/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@electron/notarize/-/notarize-2.2.1.tgz", + "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "dev": true, + "license": "BSD-2-Clause", + "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.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/universal": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/@electron/universal/-/universal-1.5.1.tgz", + "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "dev": true, + "license": "MIT", + "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/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "license": "MIT", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/format/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "license": "MIT" + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "license": "MIT", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/@fast-csv/parse/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "license": "MIT" + }, + "node_modules/@floating-ui/core": { + "version": "1.6.7", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.10", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==", + "license": "MIT" + }, + "node_modules/@grpc/grpc-js": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@grpc/grpc-js/-/grpc-js-1.11.1.tgz", + "integrity": "sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmmirror.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@iconify-json/ep": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@iconify-json/ep/-/ep-1.2.0.tgz", + "integrity": "sha512-0PQ0YxrYj373w7zPg/b50sbJUvlOGqb8a9l4DJA32hBM+SmEAPpRZrlz0c8rlA5RbjJF4nYZsrpB9ZzIX55o2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.1.32", + "resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.32.tgz", + "integrity": "sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^0.4.0", + "@antfu/utils": "^0.7.10", + "@iconify/types": "^2.0.0", + "debug": "^4.3.6", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "mlly": "^1.7.1" + } + }, + "node_modules/@iconify/utils/node_modules/@antfu/install-pkg": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", + "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.0", + "tinyexec": "^0.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@inquirer/confirm/-/confirm-3.2.0.tgz", + "integrity": "sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/@inquirer/core/-/core-9.1.0.tgz", + "integrity": "sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.2", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@inquirer/expand/-/expand-2.2.0.tgz", + "integrity": "sha512-PD0z1dTRTIlpcnXRMRvdVPfBe10jBf4i7YLBU8tNWDkf3HxqmdymVvqnT8XG+hxQSvqfpJCe13Jv2Iv1eB3bIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.4.0", + "resolved": "https://registry.npmmirror.com/@inquirer/prompts/-/prompts-5.4.0.tgz", + "integrity": "sha512-HIQGd7JOX6WXf7zg7WGs+1m+e3eRFyL4mDtWRlV01AXqZido9W3BSoku2BR4E1lK/NCXok6jg6tTcLw4I0thfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^2.5.0", + "@inquirer/confirm": "^3.2.0", + "@inquirer/editor": "^2.2.0", + "@inquirer/expand": "^2.2.0", + "@inquirer/input": "^2.3.0", + "@inquirer/number": "^1.1.0", + "@inquirer/password": "^2.2.0", + "@inquirer/rawlist": "^2.3.0", + "@inquirer/search": "^1.1.0", + "@inquirer/select": "^2.5.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.3", + "resolved": "https://registry.npmmirror.com/@inquirer/type/-/type-1.5.3.tgz", + "integrity": "sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.14.0", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.0.tgz", + "integrity": "sha512-zJn0imh9HIsZZUtt9v8T16PeVstPv6bP2YzlrYJwoF8F30gs4brZBwW2KK6EI5WYKFi3NeqX6+UU4gniz5TkGg==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.14.0", + "@intlify/shared": "9.14.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.14.0", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.0.tgz", + "integrity": "sha512-sXNsoMI0YsipSXW8SR75drmVK56tnJHoYbPXUv2Cf9lz6FzvwsosFm6JtC1oQZI/kU+n7qx0qRrEWkeYFTgETA==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.14.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.14.0", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.0.tgz", + "integrity": "sha512-r+N8KRQL7LgN1TMTs1A2svfuAU0J94Wu9wWdJVJqYsoMMLIeJxrPjazihfHpmJqfgZq0ah3Y9Q4pgWV2O90Fyg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@javascript-obfuscator/escodegen": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz", + "integrity": "sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmmirror.com/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@jsdevtools/ez-spawn": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@jsdevtools/ez-spawn/-/ez-spawn-3.0.4.tgz", + "integrity": "sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-me-maybe": "^1.0.1", + "cross-spawn": "^7.0.3", + "string-argv": "^0.3.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@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" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.2.2.tgz", + "integrity": "sha512-xDyi0fJ3IV6XJEReMOewS9PEnnuLHKz4rjbgIniDsJFHjL5nROuUlu64mfo90jglLDkQUxRwK7aTtumA65/zYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rollup/plugin-alias": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz", + "integrity": "sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "slash": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "26.0.1", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", + "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^10.4.1", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.7", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", + "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "license": "MIT", + "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||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.21.2", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", + "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/adm-zip": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/@types/adm-zip/-/adm-zip-0.5.5.tgz", + "integrity": "sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/color": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/@types/color/-/color-3.0.6.tgz", + "integrity": "sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/color-convert": "*" + } + }, + "node_modules/@types/color-convert": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/color-convert/-/color-convert-2.0.3.tgz", + "integrity": "sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/color-name": "*" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@types/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-hulKeREDdLFesGQjl96+4aoJSHY5b2GRjagzzcqCfIrWhe5vkCqIvrLbqzBaI1q94Vg8DNJZZqTR5ocdWmWclg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT" + }, + "node_modules/@types/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express-ws": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/express-ws/-/express-ws-3.0.5.tgz", + "integrity": "sha512-lbWMjoHrm/v85j81UCmb/GNZFO3genxRYBW1Ob7rjRI+zxUBR+4tcFuOpKKsYQ1LYTYiy3356epLeYi/5zxUwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/express-serve-static-core": "*", + "@types/ws": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.9", + "resolved": "https://registry.npmmirror.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.9.tgz", + "integrity": "sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmmirror.com/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.5.4", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/path-browserify": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@types/path-browserify/-/path-browserify-1.0.3.tgz", + "integrity": "sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.5", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.5.tgz", + "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-mentions": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/@types/react-mentions/-/react-mentions-4.4.0.tgz", + "integrity": "sha512-dKnY1h42GPUO/QAyei6HxEsFUbEcqK/t1k60ZbLJstB9RAs8OCT69mj9AnUbeNdbzYVISE88OC2IYkkthAAn2g==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs-client": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/@types/sockjs-client/-/sockjs-client-1.5.4.tgz", + "integrity": "sha512-zk+uFZeWyvJ5ZFkLIwoGA/DfJ+pYzcZ8eH4H/EILCm2OBZyHH6Hkdna1/UWL/CFruh5wj6ES7g75SvUB0VsH5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stompjs": { + "version": "2.3.9", + "resolved": "https://registry.npmmirror.com/@types/stompjs/-/stompjs-2.3.9.tgz", + "integrity": "sha512-fu/GgkRdxwyEJ+JeUsGhDxGwmZQi+xeNElradGQ4ehWiG2z/o89gsi5Y7Gv0KC6VK1v78Cjh8zj3VF+RvqCGSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/svgo": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz", + "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.1", + "resolved": "https://registry.npmmirror.com/@types/validator/-/validator-13.12.1.tgz", + "integrity": "sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/verror": { + "version": "1.10.10", + "resolved": "https://registry.npmmirror.com/@types/verror/-/verror-1.10.10.tgz", + "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "license": "MIT" + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.12", + "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@univerjs/core": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/core/-/core-0.2.11.tgz", + "integrity": "sha512-0W3ajDmx2OhWrnuuiOpoKoXWffB6BNeYDqVH7/cqI3RGkcTBUE/feIPyBX+AjW/7qxXSJTVxiyDvN7xyZEK36Q==", + "license": "Apache-2.0", + "dependencies": { + "@types/lodash.mergewith": "^4.6.9", + "@univerjs/protocol": "0.1.39-alpha.15", + "@wendellhu/redi": "0.16.1", + "lodash.mergewith": "^4.6.2", + "nanoid": "5.0.7", + "numeral": "^2.0.6", + "numfmt": "^2.5.2", + "ot-json1": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/core/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@univerjs/data-validation": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/data-validation/-/data-validation-0.2.11.tgz", + "integrity": "sha512-4Y9FkyjDbZNqQuCUsCQh2dxCuo2ljOanY4PDtT6KEEcGqYUZn5PBbFGuvGGwc51T+lW5B6KX+pLwOERhB7OQlw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/sheets": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/design": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/design/-/design-0.2.11.tgz", + "integrity": "sha512-S9MLDxqJUbkQWIqdxRJMzsrAt6EgcpjI+ezMYsQ0SW81CdiSPpPFTNH4tEAOvfp1bsdjDLcJxBGps8mHt/c+QQ==", + "license": "Apache-2.0", + "dependencies": { + "@rc-component/color-picker": "^2.0.1", + "@rc-component/trigger": "^2.2.1", + "@types/react-mentions": "^4.4.0", + "@univerjs/icons": "^0.1.77", + "rc-dialog": "^9.6.0", + "rc-dropdown": "^4.2.0", + "rc-input": "^1.6.3", + "rc-input-number": "^9.2.0", + "rc-menu": "^9.15.1", + "rc-picker": "^4.6.13", + "rc-segmented": "^2.4.1", + "rc-select": "^14.15.1", + "rc-textarea": "^1.8.1", + "rc-tooltip": "^6.2.0", + "rc-util": "^5.43.0", + "react-draggable": "^4.4.6", + "react-grid-layout": "^1.4.4", + "react-mentions": "^4.4.10", + "react-transition-group": "^4.4.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "clsx": ">=2.0.0", + "dayjs": ">=1.11.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@univerjs/docs": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/docs/-/docs-0.2.11.tgz", + "integrity": "sha512-UAIBzH1/cOsLl2a5nAeR5TJAuiD52QgdxiREwzmWCOg5R+KAsCrYSQB++Hf9WoI4JqMcPvVURJ5v9m99BbhR9A==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/docs-hyper-link": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/docs-hyper-link/-/docs-hyper-link-0.2.11.tgz", + "integrity": "sha512-IlkwX5MPgxpGq0Zo7RmF+VS9NLC1EmxmuzhzduQpsz4YL9nZsPFJKzzXAYUpPmxsbAyJLht5TF3hKQfwlPqWjA==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/docs-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/docs-ui/-/docs-ui-0.2.11.tgz", + "integrity": "sha512-IRW9jk4tvXcQqTGmDPNygJ8Ywyk3SubuRaGL+PTz52WpLTHa/8UMJPja3LCN9VSg6X2mmsqce6X0oinMNFN5Aw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/drawing": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/drawing/-/drawing-0.2.11.tgz", + "integrity": "sha512-dvsSkJHJm8ZSg3O6LXldb29T+zChBC2yJWWQ9FsCe4Z2VFSFiHJwrSgJ1loD+agatHoAj61SMeOOO1KH8cPFhg==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "ot-json1": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/drawing-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/drawing-ui/-/drawing-ui-0.2.11.tgz", + "integrity": "sha512-jCBqF+t+UrX9raTwu/9BhmsHRwVc8wLWmz60Ww+IPXBF0jcxvznSjwv/Gss0V40xaiTCLmF9qMd+TY3LmGMMkw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/drawing": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/engine-formula": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/engine-formula/-/engine-formula-0.2.11.tgz", + "integrity": "sha512-9lmOPjQoZ7/xzPSXC/DL4eDwk+ABPBw6gtK3FOVxpzg6QZyFhmlfDZX7Es3EgrKdQfPvUBgZ/PbbxWtMpCzSgA==", + "license": "Apache-2.0", + "dependencies": { + "decimal.js": "^10.4.3", + "numfmt": "^2.5.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/rpc": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/engine-numfmt": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/engine-numfmt/-/engine-numfmt-0.2.11.tgz", + "integrity": "sha512-1Yy0bizFMFqDuM0KDxRPWLsPR3+/12vtrBhTGnQOaS8doSNm+5mAoR9DjNkAgo2gatwhFN1qAESugIcOI3NAxQ==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + } + }, + "node_modules/@univerjs/engine-render": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/engine-render/-/engine-render-0.2.11.tgz", + "integrity": "sha512-76MmuTAf8eX6uMOpm1FM5GHNZb9E2rUJADvOMU9sl6vUzu68upG9b3YmCrPk9ZHPdXH1u7ZN5lbGFC/Wp7rbMA==", + "license": "Apache-2.0", + "dependencies": { + "@floating-ui/dom": "^1.6.10", + "@floating-ui/utils": "^0.2.7", + "cjk-regex": "^3.1.0", + "franc-min": "^6.2.0", + "opentype.js": "^1.3.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/facade": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/facade/-/facade-0.2.11.tgz", + "integrity": "sha512-eL3lk5gkBV6dNtrFl/92nlhP5bvLcP6Wsn3WlNlsW9i45myieDVfwE/1vEGYu8gOUXgoM54Q6PBnUHQe8YR2IA==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/data-validation": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/network": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-crosshair-highlight": "0.2.11", + "@univerjs/sheets-data-validation": "0.2.11", + "@univerjs/sheets-drawing-ui": "0.2.11", + "@univerjs/sheets-filter": "0.2.11", + "@univerjs/sheets-filter-ui": "0.2.11", + "@univerjs/sheets-formula": "0.2.11", + "@univerjs/sheets-numfmt": "0.2.11", + "@univerjs/sheets-thread-comment": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/thread-comment": "0.2.11", + "@univerjs/thread-comment-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/find-replace": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/find-replace/-/find-replace-0.2.11.tgz", + "integrity": "sha512-I/PW+eY0Gp7aHhKalyP4Yk8SSQllt+CkSN9ozUJk6XGiFkHYYMZVoPaliL1uh3w7go5PUtQK7aPbwmpeZucqxA==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/icons": { + "version": "0.1.77", + "resolved": "https://registry.npmmirror.com/@univerjs/icons/-/icons-0.1.77.tgz", + "integrity": "sha512-ADkX1PkXG+rptU+OJzrPX+asVawRVKF6v+Ce3DYq/pVKOnKm8qPbKsbVmCMyxPOCq9N5Cd0TAkjJavyft+XsEw==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@univerjs/network": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/network/-/network-0.2.11.tgz", + "integrity": "sha512-m9RQWaYnmq5flJncE0quQfad1aSjJZ/5EMeK9MW9FX6LmgzZlihS3mwifepsEoqdc8WysWCcgsOuYMc/cf0T0g==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/protocol": { + "version": "0.1.39-alpha.15", + "resolved": "https://registry.npmmirror.com/@univerjs/protocol/-/protocol-0.1.39-alpha.15.tgz", + "integrity": "sha512-vNV9y+5qGbzOAkGn1Na/DhWWqDLPyUHVZkC5xKUZxp9Df8Em190A9qQcNw+szaudSwotLHtqDSJLDlPUy4g3Jg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "peerDependencies": { + "@grpc/grpc-js": "1.9.14", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/rpc": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/rpc/-/rpc-0.2.11.tgz", + "integrity": "sha512-Nm7SC6d2H+TNGwYbd31EXVqIwupRJynF5UfA0rRNyL6rwBBrD0spzIJYznSA7MTA5K7BK+p8i+Fu+jCSfBY3fw==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets/-/sheets-0.2.11.tgz", + "integrity": "sha512-qoKN3eSyXi9ugyq83L7ausQm802exjmJ0e6ZCWuSfS9mLC1eyJmKfSy6OQ47LBUMQKSEUf0U+ty800cKTKWtEA==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-numfmt": "0.2.11", + "@univerjs/rpc": "0.2.11", + "@univerjs/sheets": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-conditional-formatting": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-conditional-formatting/-/sheets-conditional-formatting-0.2.11.tgz", + "integrity": "sha512-89TXW14eBrhyxz35A70ZzRtw+56fOqR1zyzikUQJJgaw4wZBu5oFR6jXbfMcLzx+B0uHmkZPqdoOXQnSYprfDQ==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "dayjs": ">=1.11.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-conditional-formatting-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-conditional-formatting-ui/-/sheets-conditional-formatting-ui-0.2.11.tgz", + "integrity": "sha512-HwrQ+3GcErH6OZPGyvOTEnXBFZEIzGmQo5FhthEbjxAjD05etW/GpIYD2fmRwFWvvYseopm2FyTRbb/03dGdFQ==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/protocol": "0.1.39-alpha.15", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "react-grid-layout": "^1.4.4", + "react-resizable": "^3.0.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-conditional-formatting": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-crosshair-highlight": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-crosshair-highlight/-/sheets-crosshair-highlight-0.2.11.tgz", + "integrity": "sha512-OVPAYVaarXLCx9ex9Ez/kPN+WLxBa4wng+etPRbFZUTXINu8LDFRUomQtAlBhIak78BeuUBziWTpsLg9kHD5nw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-data-validation": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-data-validation/-/sheets-data-validation-0.2.11.tgz", + "integrity": "sha512-DVcXAmig9fKwUm/h51lgzxTI8OP+96xZaFW8Ysx6QQPj+o0q6Z1IGGKQ7gFTZgNm3hJRKjY38hpHpddaG2ypbw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/data-validation": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-formula": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "dayjs": ">=1.11.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-drawing": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-drawing/-/sheets-drawing-0.2.11.tgz", + "integrity": "sha512-BUwPT2TdFSAR1KMLJNKcyszuAK+M25Ue82SkQoNK7krkbzhMjwIYqjdr75XTlUC6lf+itz5MghYZvGVzof1RVg==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/drawing": "0.2.11" + } + }, + "node_modules/@univerjs/sheets-drawing-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-drawing-ui/-/sheets-drawing-ui-0.2.11.tgz", + "integrity": "sha512-vcC7EBYsUAcQpEZ0zueag0f1PM5ow6vxCz1oaDbvT60t9qpOKR1dbpROhja4RpTWIo3xKG79X0rKwesn8HzLVA==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/drawing": "0.2.11", + "@univerjs/drawing-ui": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-drawing": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-filter": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-filter/-/sheets-filter-0.2.11.tgz", + "integrity": "sha512-Yk0FSHgh7njZEmxY5Q30DqiXdk4ECxmXdTrocKElK0puS9NIlqWbKtMa41BWqD61ipvn9uNcilVq7+lJ0I+TAA==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/sheets": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-filter-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-filter-ui/-/sheets-filter-ui-0.2.11.tgz", + "integrity": "sha512-iYTHYRdZ1P0VdLliHFb+Mh3Zw8a9zCakfn0mT6/bsRBT4RjqV1wj3HJxt0rth/Z7MoiKVtrMnL0nsMF2swosZw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "rc-virtual-list": "^3.14.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/rpc": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-filter": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-find-replace": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-find-replace/-/sheets-find-replace-0.2.11.tgz", + "integrity": "sha512-J+rfnYoCQ1PS9nXysM1qbdcvESXGY+8ZAP+aMkbStZTGBlgSs3ke8+dCNggjg2Hy/IdQgKjTXDOwi5imuBn5xQ==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/find-replace": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-formula": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-formula/-/sheets-formula-0.2.11.tgz", + "integrity": "sha512-V6Xam3jLJUYY6LL2prJDFuO35WcvDyHr7Qjzp0AebD73KNXFKbEEWO4Dy0S/SupnAUN3ELs5Pkf2yleuwX69kA==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/rpc": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-hyper-link": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-hyper-link/-/sheets-hyper-link-0.2.11.tgz", + "integrity": "sha512-z9N9CZAxRy8SPhpxIb3NVWERRZYhUpepa7cd90msJM15no56/8AVqzJ27U7+y+oKBMOh6pS30EW2kGJ3xndsQQ==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-hyper-link": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-hyper-link-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-hyper-link-ui/-/sheets-hyper-link-ui-0.2.11.tgz", + "integrity": "sha512-E00C3nEeC9KXXpbu3Pe4xRRmXbkSrq4CkelyjEoMsFaK4HVxJm4xt8MO52rMLHCLcLujjwflOBwlZna1CAAnSw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/sheets-hyper-link": "0.2.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/docs-hyper-link": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-hyper-link": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-numfmt": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-numfmt/-/sheets-numfmt-0.2.11.tgz", + "integrity": "sha512-bw9A2LEorKhsWP7gZhaoDcFc4wFaLvyFc6XWyfN6BTtrzgVjCtVW0gTjC1Xf5d51yHdzwexQwVgkKkHoWEViGw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-numfmt": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-sort": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-sort/-/sheets-sort-0.2.11.tgz", + "integrity": "sha512-RvOZ5Xs/s9BNNEI+jPayTDvHaQTajQf+X9rTftYx+QYyQZrXixx9hJp8C2P0yLLc2Z+aErbkkVeIxlYQJ/yGlg==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/sheets": "0.2.11" + } + }, + "node_modules/@univerjs/sheets-sort-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-sort-ui/-/sheets-sort-ui-0.2.11.tgz", + "integrity": "sha512-/vfoLnv6ZE6Hk5E7x1g7uuFgH8uJPl8h8vbd6BDtbxjrkM2pdrsoUNp8/CuT8phThr12UvwU1CkfpbuKf0GoQQ==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "rc-virtual-list": "^3.14.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-sort": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-thread-comment": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-thread-comment/-/sheets-thread-comment-0.2.11.tgz", + "integrity": "sha512-asYLwsFddMTxDA/feYHxpa4P8BOW7j4KDPh3GUzCDhiOvQ8EyjqJxyyh5A47JwxsCtlFYdn+dkZQNdwQ62zV/g==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-thread-comment-base": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/thread-comment": "0.2.11", + "@univerjs/thread-comment-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-thread-comment-base": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-thread-comment-base/-/sheets-thread-comment-base-0.2.11.tgz", + "integrity": "sha512-zyKU7cIvDKJgrNVyGEDjYxJ4RrH0p/LZQlSMpgi0Szjj+tBwnpZOGu7out2XmLZ2QZObpQxINnX6TjKGDywbMg==", + "license": "Apache-2.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/thread-comment": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-ui/-/sheets-ui-0.2.11.tgz", + "integrity": "sha512-xGC/YQXkfap4K+5+PT/kq9XRDIt8DXK3zbSqKR4O0ckiDmjKdq1IquncTLYmY5HyEf/M9E9Q9pLOCoOdm/qQ9A==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/sheets-zen-editor": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/sheets-zen-editor/-/sheets-zen-editor-0.2.11.tgz", + "integrity": "sha512-DeSdkT/l9Jsc95gOLloRaat/sPRiRsZSTlketE/jwF27Wt94PDcdsWw649kApNL5mmJFdKJfOqIXHueW/FMQRA==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/sheets": "0.2.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/docs-ui": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/sheets": "0.2.11", + "@univerjs/sheets-ui": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/thread-comment": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/thread-comment/-/thread-comment-0.2.11.tgz", + "integrity": "sha512-gAVAIlAgyxyMghYPz72bxBUDT8KXXfhl0DF1FCBLn9fmMYumeJT8ym0jy9V4BOo+xgIzufso7uGcuHG7topRSQ==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/thread-comment-ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/thread-comment-ui/-/thread-comment-ui-0.2.11.tgz", + "integrity": "sha512-dooGf/0E0N5Dz6cDnIA8+5whOz9D9VBh+alida2w6UyETAaxlrMOGm9TjeCGc9LWpQgFBTT5qmKwMvdLeM75uw==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "@univerjs/protocol": "0.1.39-alpha.15" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/docs": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/thread-comment": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "dayjs": ">=1.11.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/ui": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@univerjs/ui/-/ui-0.2.11.tgz", + "integrity": "sha512-/dEgVJd4Kt0X4NNE6LpKccGCM0wx8laUpZx8SgCUULRiVLKNNfC8rRAz9rNwGgHquAFPoHv/cGFc2+eqmwAaAg==", + "license": "Apache-2.0", + "dependencies": { + "@univerjs/icons": "^0.1.77", + "localforage": "^1.10.0", + "rc-notification": "^5.6.0", + "rc-util": "^5.43.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/univer" + }, + "optionalDependencies": { + "vue": ">=3.0.0" + }, + "peerDependencies": { + "@univerjs/core": "0.2.11", + "@univerjs/design": "0.2.11", + "@univerjs/engine-formula": "0.2.11", + "@univerjs/engine-render": "0.2.11", + "@univerjs/ui": "0.2.11", + "clsx": ">=2.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0", + "rxjs": ">=7.0.0" + } + }, + "node_modules/@univerjs/vite-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/@univerjs/vite-plugin/-/vite-plugin-0.5.0.tgz", + "integrity": "sha512-VTVcvStR4ugrJwnWUPCwm9Wxrg97e5Fk2hBHyHNkuTUd5Ezupx/4zk9jjzM/lC+Fw7J9FDGJ0Uw3vg+oN3bgsQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + } + }, + "node_modules/@unocss/astro": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/astro/-/astro-0.62.3.tgz", + "integrity": "sha512-C6ZdyLbLDS0LebwmgwVItLNAOSkL/tvVWNRd1i3Jy5uj1vPxlrw+3lIYiHjEofn0GFpBiwlv5+OCvO1Xpq5MqA==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/reset": "0.62.3", + "@unocss/vite": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/@unocss/cli": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/cli/-/cli-0.62.3.tgz", + "integrity": "sha512-yEl1iNKkBVpo8+i8gzveM5/0/vOVe6m8+FmuSDuKeSPJnYMhI1mAn+OCKFb/I+qEeLbRPXebbJUUB1xZNzya+w==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@rollup/pluginutils": "^5.1.0", + "@unocss/config": "0.62.3", + "@unocss/core": "0.62.3", + "@unocss/preset-uno": "0.62.3", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "colorette": "^2.0.20", + "consola": "^3.2.3", + "magic-string": "^0.30.11", + "pathe": "^1.1.2", + "perfect-debounce": "^1.0.0", + "tinyglobby": "^0.2.5" + }, + "bin": { + "unocss": "bin/unocss.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/config": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/config/-/config-0.62.3.tgz", + "integrity": "sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "unconfig": "^0.5.5" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/core": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/core/-/core-0.62.3.tgz", + "integrity": "sha512-Pfyrj8S7jq9K1QXD6Z5BCeiQavaHpbMN5q958/kmdbNGp57hOg1e346fMJAvgPjLBR+lE/hgZEsDrijtRiZXnw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/extractor-arbitrary-variants": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.62.3.tgz", + "integrity": "sha512-9ZscWyXEwDZif+b56xZyJFHwJOjdMXmj+6x96jOsnRNBzwT9eW7YcGCErP1ih/q1S6KmuRrHM/JOXMBQ6H4qlw==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/inspector": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/inspector/-/inspector-0.62.3.tgz", + "integrity": "sha512-nTSXOf7YimFPxEYJo5VfP5wlMgYOCjlv3c5Ub/0fynCJXZNb89SFeU05ABXkEgg/FfiobVBTscikLc6guW8eHQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/rule-utils": "0.62.3", + "gzip-size": "^6.0.0", + "sirv": "^2.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/postcss": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/postcss/-/postcss-0.62.3.tgz", + "integrity": "sha512-CwL378ef0QazduXqlaGcWgKJAzemBUxdhapWWiRqI8sXC/eXht5xK6nS1JxqADDuxosgqsGdvcCGmP8ZFrEyiA==", + "license": "MIT", + "dependencies": { + "@unocss/config": "0.62.3", + "@unocss/core": "0.62.3", + "@unocss/rule-utils": "0.62.3", + "css-tree": "^2.3.1", + "magic-string": "^0.30.11", + "postcss": "^8.4.41", + "tinyglobby": "^0.2.5" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/@unocss/postcss/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/@unocss/postcss/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/@unocss/preset-attributify": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-attributify/-/preset-attributify-0.62.3.tgz", + "integrity": "sha512-ORNwyLobGTwnn/tK5yHnMabdJU6Mr/C4LyFH7G8VSLit/aVS0fFa795kJXwxfbqQoQ7Gw0Zxs9oE5RXI0/0y7g==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-icons": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-icons/-/preset-icons-0.62.3.tgz", + "integrity": "sha512-Ie+5RTyac1Q5CNB/s/4aB4VTHAQgQqsI5hshMNLkJ0Jj1lWxodUdEbCRKjXDalRjAXOS9vsLjfJ35ozJ1RSTIQ==", + "license": "MIT", + "dependencies": { + "@iconify/utils": "^2.1.32", + "@unocss/core": "0.62.3", + "ofetch": "^1.3.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-mini": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-mini/-/preset-mini-0.62.3.tgz", + "integrity": "sha512-dn/8ubeW2ry/ZF3iKxdQHnS0l3EBibt0rIOE/XVwx24ub6pRzclU4r7xHnXeqvAFOO9PoiKDGgFR92m6R2MxyQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/extractor-arbitrary-variants": "0.62.3", + "@unocss/rule-utils": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-tagify": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-tagify/-/preset-tagify-0.62.3.tgz", + "integrity": "sha512-8BpUCZ5sjOZOzBKtu7ecfhRggwwPF78IqeqeNjI+XYRs8r7TBBcUVeF6zUkwhlX/TbtREkw2OZj0Iusa9CBO+A==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-typography": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-typography/-/preset-typography-0.62.3.tgz", + "integrity": "sha512-GjtDgQ1Jec/5RNmnyGMWMgyPdStWcFG/S+NUfOuroRsGSI8PDxihVOwFu5CwvOB2J2r6mRNLeUYMluE05jW3sw==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/preset-mini": "0.62.3" + } + }, + "node_modules/@unocss/preset-uno": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-uno/-/preset-uno-0.62.3.tgz", + "integrity": "sha512-RlsrMlpEzoZqB0lr5VvlkHGpEgr0Vp6z4Q/7DjW5t7mi20Z2i8olaLGWM0TO1wKoRi8bxc6HP0RHUS7pHtZxBA==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/preset-mini": "0.62.3", + "@unocss/preset-wind": "0.62.3", + "@unocss/rule-utils": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-web-fonts": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.62.3.tgz", + "integrity": "sha512-rGEouncGFwcUY1cjkQ/ZoSmEzOeSi3Yk4YAfHGyS0ff5zKuTDWZgivB8hh/mTtvRzZunIL+FW1+1z5G9rUwjgQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "ofetch": "^1.3.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-wind": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/preset-wind/-/preset-wind-0.62.3.tgz", + "integrity": "sha512-6+VNce1he1U5EXKlXRwTIPn8KeK6bZ2jAEgcCxk8mFy8SzOlLeYzXCI9lcdiWRTjIeIiK5iSaUqmsQFtKdTyQg==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/preset-mini": "0.62.3", + "@unocss/rule-utils": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/reset": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/reset/-/reset-0.62.3.tgz", + "integrity": "sha512-XVKPkbm8y9SGzRaG3x+HygGZURm50MvKLVHXsbxi67RbIir9Ouyt9hQTV6Xs3RicRZFWOpJx3wMRb8iKUOe5Zw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/rule-utils": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/rule-utils/-/rule-utils-0.62.3.tgz", + "integrity": "sha512-qI37jHH//XzyR5Y2aN3Kpo4lQrQO+CaiXpqPSwMLYh2bIypc2RQVpqGVtU736x0eA6IIx41XEkKzUW+VtvJvmg==", + "license": "MIT", + "dependencies": { + "@unocss/core": "^0.62.3", + "magic-string": "^0.30.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/scope": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/scope/-/scope-0.62.3.tgz", + "integrity": "sha512-TJGmFfsMrTo8DBJ7CJupIqObpgij+w4jCHMBf1uu0/9jbm63dH6WGcrl3zf5mm6UBTeLmB0RwJ8K4hs7LtrBDQ==", + "license": "MIT" + }, + "node_modules/@unocss/transformer-attributify-jsx": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.62.3.tgz", + "integrity": "sha512-AutidZj26QW1vLQzuW/aQigC/5ZnIeqGYIBeb/O+FKKt0bU411tHrHnA1iV4CoxIdWJTkw2sGAl6z6YvwAYG6w==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-attributify-jsx-babel": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.62.3.tgz", + "integrity": "sha512-3yFZPSoN8VLiAGUAFIyfDRv9HQYTKFGKawDdMM9ATZmSEYOecJnYjS2HayT1P9kzGwBwuKoFjcX50JH1PuNokg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/preset-typescript": "^7.24.7", + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-compile-class": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.62.3.tgz", + "integrity": "sha512-1hf+99wJXzQXQPz9xR0AiTB3vBXT5RiEyugIX95HFx7EvSE/P17RP90yKEKZtDZRUwGiz2vIyySlxcKTFak9Vg==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-directives": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/transformer-directives/-/transformer-directives-0.62.3.tgz", + "integrity": "sha512-HqHwFOA7DfxD/A1ROZIp8Dr8iZcE0z4w3VQtViWPQ89Fqmb7p2wCPGekk+8yW5PAltpynvHE4ahJEto5xjdg6w==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3", + "@unocss/rule-utils": "0.62.3", + "css-tree": "^2.3.1" + } + }, + "node_modules/@unocss/transformer-directives/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/@unocss/transformer-directives/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/@unocss/transformer-variant-group": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.62.3.tgz", + "integrity": "sha512-oNX1SdfWemz0GWGSXACu8NevM0t2l44j2ancnooNkNz3l1+z1nbn4vFwfsJCOqOaoVm4ZqxaiQ8HIx81ZSiU1A==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.62.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/vite": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/@unocss/vite/-/vite-0.62.3.tgz", + "integrity": "sha512-RrqF6Go8s0BGpwRfkOiLuO+n3CUE/CXxGqb0ipbUARhmNWJlekE3YPfayqImSEnCcImpaPgtVGv6Y0u3kLGG/w==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@rollup/pluginutils": "^5.1.0", + "@unocss/config": "0.62.3", + "@unocss/core": "0.62.3", + "@unocss/inspector": "0.62.3", + "@unocss/scope": "0.62.3", + "@unocss/transformer-directives": "0.62.3", + "chokidar": "^3.6.0", + "magic-string": "^0.30.11", + "tinyglobby": "^0.2.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", + "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", + "license": "MIT", + "dependencies": { + "@uppy/utils": "^4.1.2", + "namespace-emitter": "^2.0.1" + } + }, + "node_modules/@uppy/core": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", + "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", + "license": "MIT", + "dependencies": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.1.1", + "@uppy/utils": "^4.1.3", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/store-default": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", + "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==", + "license": "MIT" + }, + "node_modules/@uppy/utils": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", + "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/@uppy/xhr-upload": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", + "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", + "license": "MIT", + "dependencies": { + "@uppy/companion-client": "^2.2.2", + "@uppy/utils": "^4.1.2", + "nanoid": "^3.1.25" + }, + "peerDependencies": { + "@uppy/core": "^2.3.3" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz", + "integrity": "sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.0.1.tgz", + "integrity": "sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7", + "@vue/babel-plugin-jsx": "^1.2.2" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.0.tgz", + "integrity": "sha512-ja7cpqAOfw4tyFAxgBz70Z42miNDeaqTxExTsnXDLomRpqfyCgyvZvFp482fmsElpfvsoMJUsvzULhvxUTW6Iw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.0", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.0.tgz", + "integrity": "sha512-xYjUybWZXl+1R/toDy815i4PbeehL2hThiSGkcpmIOCy2HoYyeeC/gAWK/Y/xsoK+GSw198/T5O31bYuQx5uvQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.0", + "@vue/shared": "3.5.0" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.0.tgz", + "integrity": "sha512-B9DgLtrqok2GLuaFjLlSL15ZG3ZDBiitUH1ecex9guh/ZcA5MCdwuVE6nsfQxktuZY/QY0awJ35/ripIviCQTQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.0", + "@vue/compiler-dom": "3.5.0", + "@vue/compiler-ssr": "3.5.0", + "@vue/shared": "3.5.0", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.44", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.0.tgz", + "integrity": "sha512-E263QZmA1dqRd7c3u/sWTLRMpQOT0aZ8av/L9SoD/v/BVMZaWFHPUUBswS+bzrfvG2suJF8vSLKx6k6ba5SUdA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.0", + "@vue/shared": "3.5.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "license": "MIT" + }, + "node_modules/@vue/devtools-core": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-core/-/devtools-core-7.4.0.tgz", + "integrity": "sha512-FqVAUrxpXsj3q8TreNLkT5ZtKg7uFWmi6nBtbuCKEb19s3W9qHdFHdFI0op2djdUEVUnanZHYIKWRmllumNW/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.4.0", + "@vue/devtools-shared": "^7.4.0", + "mitt": "^3.0.1", + "nanoid": "^3.3.4", + "pathe": "^1.1.2", + "vite-hot-client": "^0.2.3" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.4.0.tgz", + "integrity": "sha512-s89qhhMtlKUIgivToI9g8BK43wD0+5M5IyCkp7OF1yk2ImcZimNeBEezfPST6JGYpwwI9OUFFa8QuMh2Q2DM1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.4.0", + "birpc": "^0.2.17", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.4.0.tgz", + "integrity": "sha512-LpHkjzUlbPHSH6qaCVSyfQDaF8fZwFbEDbHrtAGA9K1/yEZn99zYvXXqE4e5IQCk8GBXiVJo9/bn7vBXJQIIGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.0.tgz", + "integrity": "sha512-Ew3F5riP3B3ZDGjD3ZKb9uZylTTPSqt8hAf4sGbvbjrjDjrFb3Jm15Tk1/w7WwTE5GbQ2Qhwxx1moc9hr8A/OQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.0.tgz", + "integrity": "sha512-mQyW0F9FaNRdt8ghkAs+BMG3iQ7LGgWKOpkzUzR5AI5swPNydHGL5hvVTqFaeMzwecF1g0c86H4yFQsSxJhH1w==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.0", + "@vue/shared": "3.5.0" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.0.tgz", + "integrity": "sha512-NQQXjpdXgyYVJ2M56FJ+lSJgZiecgQ2HhxhnQBN95FymXegRNY/N2htI7vOTwpP75pfxhIeYOJ8mE8sW8KAW6A==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.0", + "@vue/runtime-core": "3.5.0", + "@vue/shared": "3.5.0", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.0.tgz", + "integrity": "sha512-HyDIFUg+l7L4PKrEnJlCYWHUOlm6NxZhmSxIefZ5MTYjkIPfDfkwhX7hqxAQHfgIAE1uLMLQZwuNR/ozI0NhZg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.0", + "@vue/shared": "3.5.0" + }, + "peerDependencies": { + "vue": "3.5.0" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.0.tgz", + "integrity": "sha512-m9IgiteBpCkFaMNwCOBkFksA7z8QiKc30ooRuoXWUFRDu0mGyNPlFHmbncF0/Kra1RlX8QrmBbRaIxVvikaR0Q==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@wangeditor/basic-modules": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", + "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", + "license": "MIT", + "dependencies": { + "is-url": "^1.2.4" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/code-highlight": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", + "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.23.0" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/core": { + "version": "1.1.19", + "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", + "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", + "license": "MIT", + "dependencies": { + "@types/event-emitter": "^0.3.3", + "event-emitter": "^0.3.5", + "html-void-elements": "^2.0.0", + "i18next": "^20.4.0", + "scroll-into-view-if-needed": "^2.2.28", + "slate-history": "^0.66.0" + }, + "peerDependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor": { + "version": "5.1.23", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", + "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", + "license": "MIT", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.7", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.19", + "@wangeditor/list-module": "^1.0.5", + "@wangeditor/table-module": "^1.1.4", + "@wangeditor/upload-image-module": "^1.0.2", + "@wangeditor/video-module": "^1.1.4", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor-for-vue": { + "version": "5.1.12", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz", + "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/editor": ">=5.1.0", + "vue": "^3.0.5" + } + }, + "node_modules/@wangeditor/list-module": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", + "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/table-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", + "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/upload-image-module": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", + "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.0.3", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "1.x", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.foreach": "^4.5.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/video-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", + "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.1.4", + "@uppy/xhr-upload": "^2.0.7", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wendellhu/redi": { + "version": "0.16.1", + "resolved": "https://registry.npmmirror.com/@wendellhu/redi/-/redi-0.16.1.tgz", + "integrity": "sha512-nwyKHCIbAgA7ZjhH6a49lVhe8oPFHjg4AtUHUSqdQgYNvHIFTbIWEbieS1pU0TMMHrff+mxGCGp3BZW14AvNsw==", + "license": "MIT" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/7zip-bin": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.2.0.tgz", + "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==", + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true, + "license": "MIT" + }, + "node_modules/app-builder-lib": { + "version": "24.13.3", + "resolved": "https://registry.npmmirror.com/app-builder-lib/-/app-builder-lib-24.13.3.tgz", + "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.2.1", + "@electron/osx-sign": "1.0.5", + "@electron/universal": "1.5.1", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "electron-publish": "24.13.1", + "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" + }, + "peerDependencies": { + "dmg-builder": "24.13.3", + "electron-builder-squirrel-windows": "24.13.3" + } + }, + "node_modules/app-builder-lib/node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "license": "MIT", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "license": "MIT", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "0.2.17", + "resolved": "https://registry.npmmirror.com/birpc/-/birpc-0.2.17.tgz", + "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/builder-util": { + "version": "24.13.1", + "resolved": "https://registry.npmmirror.com/builder-util/-/builder-util-24.13.1.tgz", + "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.2.0", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.4", + "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.4", + "resolved": "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", + "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bundle-require": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/bundle-require/-/bundle-require-5.0.0.tgz", + "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "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/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001655", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", + "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/cfonts": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/cfonts/-/cfonts-3.3.0.tgz", + "integrity": "sha512-RlVxeEw2FXWI5Bs9LD0/Ef3bsQIc9m6lK/DINN20HIW0Y0YHUO2jjy88cot9YKZITiRTCdWzTfLmTyx47HeSLA==", + "dev": true, + "license": "GPL-3.0-or-later", + "dependencies": { + "supports-color": "^8", + "window-size": "^1" + }, + "bin": { + "cfonts": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "license": "MIT/X11", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + } + }, + "node_modules/chainsaw/node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "license": "MIT/X11" + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chance": { + "version": "1.1.9", + "resolved": "https://registry.npmmirror.com/chance/-/chance-1.1.9.tgz", + "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjk-regex": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cjk-regex/-/cjk-regex-3.1.0.tgz", + "integrity": "sha512-hM1tngsO2Sco+LesFtGHkkemNBJONUKCeY6RU2VqHBE5kDB8SdnCEJ5M3VoG7M7gL5Kx+GFlzaeSCKXEL9pGTA==", + "license": "MIT", + "dependencies": { + "regexp-util": "^2.0.0", + "unicode-regex": "^4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "license": "MIT" + }, + "node_modules/config-file-ts": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/config-file-ts/-/config-file-ts-0.2.6.tgz", + "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.3.10", + "typescript": "^5.3.3" + } + }, + "node_modules/config-file-ts/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/config-file-ts/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/config-file-ts/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmmirror.com/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/del": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/del/-/del-7.1.0.tgz", + "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "license": "MIT" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dmg-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmmirror.com/dmg-builder/-/dmg-builder-24.13.3.tgz", + "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "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.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "license": "MIT", + "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/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "license": "MIT", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/echarts": { + "version": "5.5.1", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz", + "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.0" + } + }, + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "32.0.2", + "resolved": "https://registry.npmmirror.com/electron/-/electron-32.0.2.tgz", + "integrity": "sha512-nmZblq8wW3HZ17MAyaUuiMI9Mb0Cgc7UR3To85h/rVopbfyF5s34NxtK4gvyRfYPxpDGP4k+HoQIPniPPrdE3w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^20.9.0", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron_updater_node_cli": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/electron_updater_node_cli/-/electron_updater_node_cli-0.3.3.tgz", + "integrity": "sha512-fOK5f8osp6acFfDxIY3OE1P3xQro7aS4+GJ0Rqx5w9wn+w0sKoINbxlCuI33oNUcwig3xxQptBZ/j1fRgKN2xw==", + "license": "MIT", + "dependencies": { + "chalk": "4.1.2" + }, + "bin": { + "electron_updater_node_cli": "index.js" + } + }, + "node_modules/electron_updater_node_cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron_updater_node_cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron_updater_node_core": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/electron_updater_node_core/-/electron_updater_node_core-0.3.3.tgz", + "integrity": "sha512-4cmDE0bWYhLPEskUAgMDwAP0ATe9BhzCRZ4xKKZ1Haw4OvXNSkYHCt2mOnwzbne83CSWTXdB+LSJR/uzrNwZDQ==", + "license": "MIT" + }, + "node_modules/electron-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmmirror.com/electron-builder/-/electron-builder-24.13.3.tgz", + "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "dmg-builder": "24.13.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-squirrel-windows": { + "version": "24.13.3", + "resolved": "https://registry.npmmirror.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", + "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "archiver": "^5.3.1", + "builder-util": "24.13.1", + "fs-extra": "^10.1.0" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-devtools-vendor": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/electron-devtools-vendor/-/electron-devtools-vendor-3.0.0.tgz", + "integrity": "sha512-eZrQajB1ioHE81EQN12xr6RYh7fVHkKAunq752pDvKlETMZWu/vqXWl49Qnzi3n/Bbk0gIDTRxvRfPExA5RMow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-log": { + "version": "5.1.7", + "resolved": "https://registry.npmmirror.com/electron-log/-/electron-log-5.1.7.tgz", + "integrity": "sha512-/PjrS9zGkrZCDTHt6IgNE3FeciBbi4wd7U76NG9jAoNXF99E9IJdvBkqvaUJ1NjLojYDKs0kTvn9YhKy1/Zi+Q==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/electron-publish": { + "version": "24.13.1", + "resolved": "https://registry.npmmirror.com/electron-publish/-/electron-publish-24.13.1.tgz", + "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/electron-publish/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-publish/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "license": "ISC" + }, + "node_modules/electron-updater": { + "version": "6.3.4", + "resolved": "https://registry.npmmirror.com/electron-updater/-/electron-updater-6.3.4.tgz", + "integrity": "sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg==", + "license": "MIT", + "dependencies": { + "builder-util-runtime": "9.2.5", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.6.3", + "tiny-typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/builder-util-runtime": { + "version": "9.2.5", + "resolved": "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz", + "integrity": "sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron/node_modules/@types/node": { + "version": "20.16.3", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.16.3.tgz", + "integrity": "sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/element-plus": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.1.tgz", + "integrity": "sha512-p11/6w/O0+hGvPhiN3jrcgh+XG+eg5jZlLdQVYvcPHZYhhCh3J3YeZWW1JO/REPES1vevkboT6VAi+9wHA8Dsg==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", + "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "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/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/exceljs": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz", + "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", + "license": "MIT", + "dependencies": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.10.1", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/exceljs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-ws": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/express-ws/-/express-ws-5.0.2.tgz", + "integrity": "sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==", + "license": "BSD-2-Clause", + "dependencies": { + "ws": "^7.4.6" + }, + "engines": { + "node": ">=4.5.0" + }, + "peerDependencies": { + "express": "^4.0.0 || ^5.0.0-alpha.1" + } + }, + "node_modules/express-ws/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "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.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true + }, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "license": "MIT", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.7", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.7.tgz", + "integrity": "sha512-aAW9al/NMw4COcZnwgUaG8kAjBUXq/El+1R11e9RDHAIlxa1fb1b5SP0K6BbMoNgWdmJ/kXAwoTlVDlUN3OTDw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/franc-min": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/franc-min/-/franc-min-6.2.0.tgz", + "integrity": "sha512-1uDIEUSlUZgvJa2AKYR/dmJC66v/PvGQ9mWfI9nOr/kPpMFyvswK0gPXOwpYJYiYD008PpHLkGfG58SPjQJFxw==", + "license": "MIT", + "dependencies": { + "trigram-utils": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.8.0.tgz", + "integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmmirror.com/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmmirror.com/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "license": "MIT", + "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-corefoundation/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "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/iconv-corefoundation/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "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/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/if-async": { + "version": "3.7.4", + "resolved": "https://registry.npmmirror.com/if-async/-/if-async-3.7.4.tgz", + "integrity": "sha512-BFEH2mZyeF6KZKaKLVPZ0wMjIiWOdjvZ7zbx8ENec0qfZhJwKFbX/4jKM5LTKyJEc/GOqUKiiJ2IFKT9yWrZqA==", + "license": "MIT" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/importx": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/importx/-/importx-0.4.4.tgz", + "integrity": "sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w==", + "license": "MIT", + "dependencies": { + "bundle-require": "^5.0.0", + "debug": "^4.3.6", + "esbuild": "^0.20.2 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "jiti": "2.0.0-beta.3", + "jiti-v1": "npm:jiti@^1.21.6", + "pathe": "^1.1.2", + "tsx": "^4.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/inquirer/-/inquirer-10.2.0.tgz", + "integrity": "sha512-OE/HDYrQAgeUPs3mKetfarr/EFiotdULUc7R2XvwqPHMEjFtCqNsfYDfCZ5baAKKtb9kCaKclNTTE9hSi7JFjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^5.4.0", + "@inquirer/type": "^1.5.3", + "@types/mute-stream": "^0.0.4", + "ansi-escapes": "^4.3.2", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "rxjs": "^7.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/inversify": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/inversify/-/inversify-6.0.1.tgz", + "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", + "license": "MIT" + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "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-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT", + "optional": true + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "license": "MIT" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmmirror.com/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/javascript-obfuscator": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/javascript-obfuscator/-/javascript-obfuscator-4.1.1.tgz", + "integrity": "sha512-gt+KZpIIrrxXHEQGD8xZrL8mTRwRY0U76/xz/YX0gZdPrSqQhT/c7dYLASlLlecT3r+FxE7je/+C0oLnTDCx4A==", + "dev": true, + "hasInstallScript": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.0", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.8.2", + "assert": "2.0.0", + "chalk": "4.1.2", + "chance": "1.1.9", + "class-validator": "0.14.1", + "commander": "10.0.0", + "eslint-scope": "7.1.1", + "eslint-visitor-keys": "3.3.0", + "fast-deep-equal": "3.1.3", + "inversify": "6.0.1", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "2.1.3", + "multimatch": "5.0.0", + "opencollective-postinstall": "2.0.3", + "process": "0.11.10", + "reflect-metadata": "0.1.13", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.5.0" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/javascript-obfuscator" + } + }, + "node_modules/javascript-obfuscator/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/javascript-obfuscator/node_modules/mkdirp": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/javascript-obfuscator/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/javascript-obfuscator/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/jiti": { + "version": "2.0.0-beta.3", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-2.0.0-beta.3.tgz", + "integrity": "sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jiti-v1": { + "name": "jiti", + "version": "1.21.6", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "license": "MIT" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.11.7", + "resolved": "https://registry.npmmirror.com/libphonenumber-js/-/libphonenumber-js-1.11.7.tgz", + "integrity": "sha512-x2xON4/Qg2bRIS11KIN9yCNYUjhtiEjNyptjX0mX+pyKHecxuJVLIpfX1lq9ZD6CrC/rB+y4GBi18c6CEcUR+A==", + "dev": true, + "license": "MIT" + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", + "license": "ISC" + }, + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "license": "MIT" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "license": "MIT" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "license": "MIT" + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "license": "MIT" + }, + "node_modules/lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "license": "MIT" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==", + "license": "MIT" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmmirror.com/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "license": "ISC", + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/n-gram": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/n-gram/-/n-gram-2.0.2.tgz", + "integrity": "sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "license": "MIT" + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/numfmt": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/numfmt/-/numfmt-2.5.2.tgz", + "integrity": "sha512-VXrB2bpU9Xa0oCHq8IsqE2CcUx5OLupLC3oryFT4DB9e/xe+OnUzBndhXfNHUzxFE4DYI3Sx4OtzS1Sdaf7tEw==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ofetch": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/ofetch/-/ofetch-1.3.4.tgz", + "integrity": "sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.3", + "ufo": "^1.5.3" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opentype.js": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/opentype.js/-/opentype.js-1.3.4.tgz", + "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==", + "license": "MIT", + "dependencies": { + "string.prototype.codepointat": "^0.2.1", + "tiny-inflate": "^1.0.3" + }, + "bin": { + "ot": "bin/ot" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ot-json1": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/ot-json1/-/ot-json1-1.0.2.tgz", + "integrity": "sha512-IhxkqVWQqlkWULoi/Q2AdzKk0N5vQRbUMUwubFXFCPcY4TsOZjmp2YKrk0/z1TeiECPadWEK060sdFdQ3Grokg==", + "license": "ISC", + "dependencies": { + "ot-text-unicode": "4" + } + }, + "node_modules/ot-text-unicode": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/ot-text-unicode/-/ot-text-unicode-4.0.0.tgz", + "integrity": "sha512-W7ZLU8QXesY2wagYFv47zErXud3E93FGImmSGJsQnBzE+idcPPyo2u2KMilIrTwBh4pbCizy71qRjmmV6aDhcQ==", + "license": "ISC", + "dependencies": { + "unicount": "1.1" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/package-manager-detector": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/package-manager-detector/-/package-manager-detector-0.2.0.tgz", + "integrity": "sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==", + "license": "MIT" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-7.1.0.tgz", + "integrity": "sha512-ZToe+MbUF4lBqk6dV8GKot4DKfzrxXsplOddH8zN3YK+qw9/McvP7+4ICjZvOne0jQhN4eJwHsX6tT0Ns19fvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.2.tgz", + "integrity": "sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.2.0.tgz", + "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.44", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.44.tgz", + "integrity": "sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-html": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/postcss-html/-/postcss-html-1.7.0.tgz", + "integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^8.0.0", + "js-tokens": "^9.0.0", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "engines": { + "node": "^12 || >=14" + } + }, + "node_modules/postcss-html/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmmirror.com/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/posthtml-parser/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/posthtml-parser/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-rename-id": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "1.0.5" + } + }, + "node_modules/posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, + "node_modules/preact": { + "version": "10.23.2", + "resolved": "https://registry.npmmirror.com/preact/-/preact-10.23.2.tgz", + "integrity": "sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.0.tgz", + "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-input": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.6.3.tgz", + "integrity": "sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.2.0.tgz", + "integrity": "sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.6.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.15.1", + "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.15.1.tgz", + "integrity": "sha512-UKporqU6LPfHnpPmtP6hdEK4iO5Q+b7BRv/uRpxdIyDGplZy9jwUjsnpev5bs3PQKB0H0n34WAPDfjAfn3kAPA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.2", + "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.2.tgz", + "integrity": "sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.0.tgz", + "integrity": "sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.6.14", + "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.14.tgz", + "integrity": "sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.38.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.4.1.tgz", + "integrity": "sha512-KUi+JJFdKnumV9iXlm+BJ00O4NdVBp2TEexLCk6bK1x/RH83TvYKQMzIz/7m3UTRPD08RM/8VG/JNjWgWbd4cw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.15.2", + "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.15.2.tgz", + "integrity": "sha512-oNoXlaFmpqXYcQDzcPVLrEqS2J9c+/+oJuGrlXeVVX/gVgrbHa5YcyiRUXRydFjyuA7GP3elRuLF7Y3Tfwltlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-textarea": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.8.1.tgz", + "integrity": "sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.6.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.2.0.tgz", + "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.43.0", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.43.0.tgz", + "integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.14.5", + "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", + "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-draggable": { + "version": "4.4.6", + "resolved": "https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.6.tgz", + "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-draggable/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-grid-layout": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/react-grid-layout/-/react-grid-layout-1.4.4.tgz", + "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "fast-equals": "^4.0.3", + "prop-types": "^15.8.1", + "react-draggable": "^4.4.5", + "react-resizable": "^3.0.5", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-mentions": { + "version": "4.4.10", + "resolved": "https://registry.npmmirror.com/react-mentions/-/react-mentions-4.4.10.tgz", + "integrity": "sha512-JHiQlgF1oSZR7VYPjq32wy97z1w1oE4x10EuhKjPr4WUKhVzG1uFQhQjKqjQkbVqJrmahf+ldgBTv36NrkpKpA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "7.4.5", + "invariant": "^2.2.4", + "prop-types": "^15.5.8", + "substyle": "^9.1.0" + }, + "peerDependencies": { + "react": ">=16.8.3", + "react-dom": ">=16.8.3" + } + }, + "node_modules/react-mentions/node_modules/@babel/runtime": { + "version": "7.4.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/react-mentions/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/react-resizable": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz", + "integrity": "sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==", + "license": "MIT", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-config-file": { + "version": "6.3.2", + "resolved": "https://registry.npmmirror.com/read-config-file/-/read-config-file-6.3.2.tgz", + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "dev": true, + "license": "MIT", + "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/read-config-file/node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/regedit": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/regedit/-/regedit-5.1.3.tgz", + "integrity": "sha512-sHsmh8FuioHve3lMmN6gNHdKmgGRxMGzgJ/qfzRQgsPx+Zv8kdlQ0y04JAg/6MqQC/7NRBZ1G5Qiccs1Q9tNtg==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "if-async": "^3.7.4", + "stream-slicer": "0.0.6", + "through2": "^0.6.3" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp-util": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/regexp-util/-/regexp-util-2.0.0.tgz", + "integrity": "sha512-HbLDPF+RkBiPjlzmU0hnUQd4abs56JiA2riHxNVfxjagcGwIy3Xhc2Yyx2+0/p5QeM0kj270nEOlTj57HvWXFA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "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-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true, + "license": "MIT" + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "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/rollup": { + "version": "4.21.2", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.21.2.tgz", + "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.21.2", + "@rollup/rollup-android-arm64": "4.21.2", + "@rollup/rollup-darwin-arm64": "4.21.2", + "@rollup/rollup-darwin-x64": "4.21.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", + "@rollup/rollup-linux-arm-musleabihf": "4.21.2", + "@rollup/rollup-linux-arm64-gnu": "4.21.2", + "@rollup/rollup-linux-arm64-musl": "4.21.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", + "@rollup/rollup-linux-riscv64-gnu": "4.21.2", + "@rollup/rollup-linux-s390x-gnu": "4.21.2", + "@rollup/rollup-linux-x64-gnu": "4.21.2", + "@rollup/rollup-linux-x64-musl": "4.21.2", + "@rollup/rollup-win32-arm64-msvc": "4.21.2", + "@rollup/rollup-win32-ia32-msvc": "4.21.2", + "@rollup/rollup-win32-x64-msvc": "4.21.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-esbuild": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz", + "integrity": "sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.5", + "debug": "^4.3.4", + "es-module-lexer": "^1.3.1", + "get-tsconfig": "^4.7.2" + }, + "engines": { + "node": ">=14.18.0" + }, + "peerDependencies": { + "esbuild": ">=0.18.0", + "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/rollup-plugin-obfuscator": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/rollup-plugin-obfuscator/-/rollup-plugin-obfuscator-1.1.0.tgz", + "integrity": "sha512-cMfQIKyGePlfHGGO+rSDhSATMBx7WWxXW/X66c53HylUE/owanTbG6nhttUQOkbdCiQH8tClskNEH/IPRoqZwA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "peerDependencies": { + "javascript-obfuscator": "*", + "rollup": "^2.56.3||^3.0.0||^4.0.0" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "devOptional": true, + "license": "MIT", + "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/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slate": { + "version": "0.72.8", + "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", + "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", + "license": "MIT", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/slate-history": { + "version": "0.66.0", + "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", + "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/slate-history/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slate/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snabbdom": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz", + "integrity": "sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==", + "license": "MIT", + "engines": { + "node": ">=12.17.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://tidelift.com/funding/github/npm/sockjs-client" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", + "license": "MIT" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stompjs": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/stompjs/-/stompjs-2.3.3.tgz", + "integrity": "sha512-5l/Ogz0DTFW7TrpHF0LAETGqM/so8UxNJvYZjJKqcX31EVprSQgnGkO80tZctPC/lFBDUrSFiTG3xd0R27XAIA==", + "license": "Apache-2.0", + "optionalDependencies": { + "websocket": "latest" + } + }, + "node_modules/stream-slicer": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/stream-slicer/-/stream-slicer-0.0.6.tgz", + "integrity": "sha512-QsY0LbweYE5L+e+iBQgtkM5WUIf7+kCMA/m2VULv8rEEDDnlDPsPvOHH4nli6uaZOKQEt64u65h0l/eeZo7lCw==", + "license": "MIT" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "license": "MIT" + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/substyle": { + "version": "9.4.1", + "resolved": "https://registry.npmmirror.com/substyle/-/substyle-9.4.1.tgz", + "integrity": "sha512-VOngeq/W1/UkxiGzeqVvDbGDPM8XgUyJVWjrqeh+GgKqspEPiLYndK+XRcsKUHM5Muz/++1ctJ1QCF/OqRiKWA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.3.4", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": ">=16.8.3" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-baker": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + } + }, + "node_modules/svg-baker/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/svg-baker/node_modules/postcss-prefix-selector": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", + "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": ">4 <9" + } + }, + "node_modules/svg-baker/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "license": "MIT", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.5.tgz", + "integrity": "sha512-Dlqgt6h0QkoHttG53/WGADNh9QhcjCAIZMTERAVhdpmIBEejSuLI9ZmGKWzB7tweBjlk30+s/ofi4SLmBeTYhw==", + "license": "ISC", + "dependencies": { + "fdir": "^6.2.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.3.0.tgz", + "integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/traverse": { + "version": "0.6.9", + "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.9.tgz", + "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/trigram-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/trigram-utils/-/trigram-utils-2.0.1.tgz", + "integrity": "sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==", + "license": "MIT", + "dependencies": { + "collapse-white-space": "^2.0.0", + "n-gram": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/tsx/-/tsx-4.19.0.tgz", + "integrity": "sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==", + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "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/unconfig": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/unconfig/-/unconfig-0.5.5.tgz", + "integrity": "sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==", + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "defu": "^6.1.4", + "importx": "^0.4.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/unicode-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/unicode-regex/-/unicode-regex-4.0.0.tgz", + "integrity": "sha512-Zdlz4CqHeCy1pw2J15RmCMw/9QLRBz+BykmI8YNbtbf4pIV8t+1fHKD7y13NhauPEvisi2e5SoaonBNX77opGA==", + "license": "MIT", + "dependencies": { + "regexp-util": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/unicount": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/unicount/-/unicount-1.1.0.tgz", + "integrity": "sha512-RlwWt1ywVW4WErPGAVHw/rIuJ2+MxvTME0siJ6lk9zBhpDfExDbspe6SRlWT3qU6AucNjotPl9qAJRVjP7guCQ==", + "license": "ISC" + }, + "node_modules/unimport": { + "version": "3.11.1", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.11.1.tgz", + "integrity": "sha512-DuB1Uoq01LrrXTScxnwOoMSlTXxyKcULguFxbLrMDFcE/CO0ZWHpEiyhovN0mycPt7K6luAHe8laqvwvuoeUPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "acorn": "^8.12.1", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.11", + "mlly": "^1.7.1", + "pathe": "^1.1.2", + "pkg-types": "^1.2.0", + "scule": "^1.3.0", + "strip-literal": "^2.1.0", + "unplugin": "^1.12.2" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unocss": { + "version": "0.62.3", + "resolved": "https://registry.npmmirror.com/unocss/-/unocss-0.62.3.tgz", + "integrity": "sha512-CLS6+JIlBobe/iPTz07pehyGDP8VqGJsiE+ZZ3Xkgib3hw76nCqAQF/4mJ8jVoV4C8KvGyVxmHaSSCFOkWmmZg==", + "license": "MIT", + "dependencies": { + "@unocss/astro": "0.62.3", + "@unocss/cli": "0.62.3", + "@unocss/core": "0.62.3", + "@unocss/extractor-arbitrary-variants": "0.62.3", + "@unocss/postcss": "0.62.3", + "@unocss/preset-attributify": "0.62.3", + "@unocss/preset-icons": "0.62.3", + "@unocss/preset-mini": "0.62.3", + "@unocss/preset-tagify": "0.62.3", + "@unocss/preset-typography": "0.62.3", + "@unocss/preset-uno": "0.62.3", + "@unocss/preset-web-fonts": "0.62.3", + "@unocss/preset-wind": "0.62.3", + "@unocss/reset": "0.62.3", + "@unocss/transformer-attributify-jsx": "0.62.3", + "@unocss/transformer-attributify-jsx-babel": "0.62.3", + "@unocss/transformer-compile-class": "0.62.3", + "@unocss/transformer-directives": "0.62.3", + "@unocss/transformer-variant-group": "0.62.3", + "@unocss/vite": "0.62.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@unocss/webpack": "0.62.3", + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@unocss/webpack": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.12.3.tgz", + "integrity": "sha512-my8DH0/T/Kx33KO+6QXAqdeMYgyy0GktlOpdQjpagfHKw5DrD0ctPr7SHUyOT3g4ZVpzCQGt/qcpuoKJ/pniHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.12.1", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.17.8", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz", + "integrity": "sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.0", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.10", + "minimatch": "^9.0.4", + "unimport": "^3.7.2", + "unplugin": "^1.11.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unplugin-icons": { + "version": "0.18.5", + "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.18.5.tgz", + "integrity": "sha512-KVNAohXbZ7tVcG1C3p6QaC7wU9Qrj7etv4XvsMMJAxr5LccQZ+Iuv5LOIv/7GtqXaGN1BuFCqRO1ErsHEgEXdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^0.3.1", + "@antfu/utils": "^0.7.7", + "@iconify/utils": "^2.1.22", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "unplugin": "^1.6.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@svgr/core": ">=7.0.0", + "@svgx/core": "^1.0.1", + "@vue/compiler-sfc": "^3.0.2 || ^2.7.0", + "vue-template-compiler": "^2.6.12", + "vue-template-es2015-compiler": "^1.9.0" + }, + "peerDependenciesMeta": { + "@svgr/core": { + "optional": true + }, + "@svgx/core": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + }, + "vue-template-es2015-compiler": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.26.0", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz", + "integrity": "sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.6", + "@rollup/pluginutils": "^5.0.4", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.3", + "minimatch": "^9.0.3", + "resolve": "^1.22.4", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/unzipper/node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "license": "MIT" + }, + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmmirror.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmmirror.com/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmmirror.com/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "license": "MIT", + "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/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/vite": { + "version": "5.4.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.3.tgz", + "integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/vite-hot-client/-/vite-hot-client-0.2.3.tgz", + "integrity": "sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.7", + "resolved": "https://registry.npmmirror.com/vite-plugin-inspect/-/vite-plugin-inspect-0.8.7.tgz", + "integrity": "sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.0", + "debug": "^4.3.6", + "error-stack-parser-es": "^0.1.5", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.0.1", + "sirv": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-svg-icons": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz", + "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/svgo": "^2.6.1", + "cors": "^2.8.5", + "debug": "^4.3.3", + "etag": "^1.8.1", + "fs-extra": "^10.0.0", + "pathe": "^0.2.0", + "svg-baker": "1.7.0", + "svgo": "^2.8.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.4.0.tgz", + "integrity": "sha512-0cIX+mi8QaRsf8hQckRPOWNHj5XyJVHDKo5ddLKVOh3vzurfFCGFVTXPALUy9A4sMGfWKTt0VyIh8OYk7V7m+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-core": "^7.4.0", + "@vue/devtools-kit": "^7.4.0", + "@vue/devtools-shared": "^7.4.0", + "execa": "^8.0.1", + "sirv": "^2.0.4", + "vite-plugin-inspect": "^0.8.7", + "vite-plugin-vue-inspector": "^5.2.0" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.2.0.tgz", + "integrity": "sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vue": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.0.tgz", + "integrity": "sha512-1t70favYoFijwfWJ7g81aTd32obGaAnKYE9FNyMgnEzn3F4YncRi/kqAHHKloG0VXTD8vBYMhbgLKCA+Sk6QDw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.0", + "@vue/compiler-sfc": "3.5.0", + "@vue/runtime-dom": "3.5.0", + "@vue/server-renderer": "3.5.0", + "@vue/shared": "3.5.0" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "9.14.0", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.0.tgz", + "integrity": "sha512-LxmpRuCt2rI8gqU+kxeflRZMQn4D5+4M3oP3PWZdowW/ePJraHqhF7p4CuaME52mUxdw3Mmy2yAUKgfZYgCRjA==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "9.14.0", + "@intlify/shared": "9.14.0", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.3.tgz", + "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/websocket": { + "version": "1.0.35", + "resolved": "https://registry.npmmirror.com/websocket/-/websocket-1.0.35.tgz", + "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==", + "optional": true, + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.63", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true + }, + "node_modules/webstomp-client": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/webstomp-client/-/webstomp-client-1.2.6.tgz", + "integrity": "sha512-9HajO6Ki2ViEGIusLZtjM2lcO2VaQUvtXhLQQ4Cm543RLjfTCEgI3sFaiXts3TvfZgrtY/vI/+qUkm2qWD/NVg==", + "license": "Apache-2.0" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "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.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "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-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==", + "license": "MIT" + }, + "node_modules/window-size": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/window-size/-/window-size-1.1.1.tgz", + "integrity": "sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "is-number": "^3.0.0" + }, + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/window-size/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "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.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "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.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "license": "MIT", + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/zrender": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz", + "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zrender/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2ee445d --- /dev/null +++ b/package.json @@ -0,0 +1,176 @@ +{ + "name": "hi-sass-frame-front", + "title": "Hi-sass系统框架", + "version": "0.0.1", + "main": "./dist/electron/main/main.js", + "author": "fm453 ", + "homepage": "https://gitea.hiluker.com/fm453/hi-sass-frame", + "repository": "https://gitea.hiluker.com/fm453/hi-sass-frame.git", + "description": "基于https://gitee.com/Zh-Sky/electron-vite-template.git项目进行改造,升级内置组件electron31+vite5+vue3,添加引入elementUi2.7.5。框架思路借鉴有来开源的https://gitee.com/youlaiorg/vue3-element-admin.git项目。", + "license": "MIT", + "scripts": { + "dev": "cross-env tsx .electron-vite/dev-runner.ts -m dev", + "build": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -m prod && electron-builder -c build.json", + "build:win32": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -w prod && electron-builder -c build.json --win --ia32", + "build:win64": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -w prod && electron-builder -c build.json --win --x64", + "build:mac": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -m prod && electron-builder -c build.json --mac", + "build:dir": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -m prod && electron-builder -c build.json --dir", + "build:deb": "cross-env BUILD_TARGET=clean tsx .electron-vite/build.ts -l prod && electron-builder -c build.json --linux", + "build:clean": "cross-env BUILD_TARGET=onlyClean tsx .electron-vite/build.ts", + "build:web": "cross-env BUILD_TARGET=web tsx .electron-vite/build.ts -m prod", + "pack:resources": "tsx .electron-vite/hot-updater.ts", + "dep:upgrade": "yarn upgrade-interactive --latest", + "postinstall": "electron-builder install-app-deps" + }, + "dependencies": { + "@grpc/grpc-js": "^1.11.1", + "@univerjs/core": "^0.2.8", + "@univerjs/data-validation": "^0.2.8", + "@univerjs/design": "^0.2.8", + "@univerjs/docs": "^0.2.8", + "@univerjs/docs-hyper-link": "^0.2.9", + "@univerjs/docs-ui": "^0.2.8", + "@univerjs/drawing": "^0.2.8", + "@univerjs/drawing-ui": "^0.2.8", + "@univerjs/engine-formula": "^0.2.8", + "@univerjs/engine-numfmt": "^0.2.8", + "@univerjs/engine-render": "^0.2.8", + "@univerjs/facade": "^0.2.8", + "@univerjs/find-replace": "^0.2.8", + "@univerjs/network": "^0.2.9", + "@univerjs/rpc": "^0.2.9", + "@univerjs/sheets": "^0.2.8", + "@univerjs/sheets-conditional-formatting": "^0.2.8", + "@univerjs/sheets-conditional-formatting-ui": "^0.2.8", + "@univerjs/sheets-crosshair-highlight": "^0.2.9", + "@univerjs/sheets-data-validation": "^0.2.8", + "@univerjs/sheets-drawing": "^0.2.8", + "@univerjs/sheets-drawing-ui": "^0.2.8", + "@univerjs/sheets-filter": "^0.2.8", + "@univerjs/sheets-filter-ui": "^0.2.8", + "@univerjs/sheets-find-replace": "^0.2.8", + "@univerjs/sheets-formula": "^0.2.8", + "@univerjs/sheets-hyper-link": "^0.2.8", + "@univerjs/sheets-hyper-link-ui": "^0.2.8", + "@univerjs/sheets-numfmt": "^0.2.8", + "@univerjs/sheets-sort": "^0.2.8", + "@univerjs/sheets-sort-ui": "^0.2.8", + "@univerjs/sheets-thread-comment": "^0.2.8", + "@univerjs/sheets-thread-comment-base": "^0.2.8", + "@univerjs/sheets-ui": "^0.2.8", + "@univerjs/sheets-zen-editor": "^0.2.8", + "@univerjs/thread-comment": "^0.2.8", + "@univerjs/thread-comment-ui": "^0.2.8", + "@univerjs/ui": "^0.2.8", + "@univerjs/vite-plugin": "^0.5.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "animate.css": "^4.1.1", + "axios": "^1.7.4", + "clsx": "^2.1.1", + "color": "^4.2.3", + "csstype": "^3.1.3", + "date-fns": "^3.6.0", + "dayjs": "^1.11.13", + "echarts": "^5.5.1", + "electron-log": "^5.1.7", + "electron-updater": "^6.2.1", + "electron_updater_node_cli": "^0.3.3", + "electron_updater_node_core": "^0.3.3", + "element-plus": "^2.8.0", + "exceljs": "^4.4.0", + "express": "^4.19.2", + "express-ws": "^5.0.2", + "glob": "^11.0.0", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "pinia": "^2.2.2", + "regedit": "^5.1.3", + "rxjs": "^7.8.1", + "semver": "^7.6.3", + "sockjs-client": "^1.6.1", + "sortablejs": "^1.15.3", + "stompjs": "^2.3.3", + "unocss": "^0.62.3", + "uuid": "^10.0.0", + "vue": "^3.4.21", + "vue-i18n": "9.14.0", + "vue-router": "^4.4.3", + "webstomp-client": "^1.2.6", + "ws": "^8.18.0" + }, + "devDependencies": { + "@iconify-json/ep": "^1.1.16", + "@rollup/plugin-alias": "^5.1.0", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.5", + "@rollup/plugin-typescript": "^11.1.6", + "@types/adm-zip": "^0.5.5", + "@types/color": "^3.0.6", + "@types/express": "^4.17.21", + "@types/express-ws": "^3.0.5", + "@types/fs-extra": "^11.0.4", + "@types/lodash": "^4.17.7", + "@types/minimist": "^1.2.5", + "@types/node": "^22.5.4", + "@types/nprogress": "^0.2.3", + "@types/path-browserify": "^1.0.3", + "@types/semver": "^7.5.8", + "@types/sockjs-client": "^1.5.4", + "@types/sortablejs": "^1.15.8", + "@types/stompjs": "^2.3.9", + "@types/uuid": "^10.0.0", + "@vitejs/plugin-vue": "^5.1.2", + "@vitejs/plugin-vue-jsx": "^4.0.1", + "@vue/compiler-sfc": "^3.4.38", + "adm-zip": "^0.5.15", + "cfonts": "^3.3.0", + "chalk": "5.3.0", + "cross-env": "^7.0.3", + "del": "^7.1.0", + "dotenv": "^16.4.5", + "electron": "^32.0.2", + "electron-builder": "^24.13.3", + "electron-builder-squirrel-windows": "^24.13.3", + "electron-devtools-vendor": "^3.0.0", + "esbuild": "^0.23.1", + "extract-zip": "^2.0.1", + "fs-extra": "^11.2.0", + "inquirer": "^10.1.8", + "javascript-obfuscator": "^4.1.1", + "listr2": "^8.2.4", + "minimist": "^1.2.8", + "path-to-regexp": "^7.1.0", + "portfinder": "^1.0.32", + "postcss": "^8.4.41", + "postcss-html": "^1.7.0", + "postcss-scss": "^4.0.9", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rollup": "^4.21.0", + "rollup-plugin-esbuild": "^6.1.1", + "rollup-plugin-obfuscator": "^1.1.0", + "sass": "^1.77.8", + "tslib": "^2.6.3", + "tsx": "^4.17.0", + "typescript": "^5.5.4", + "unplugin-auto-import": "^0.17.6", + "unplugin-icons": "^0.18.5", + "unplugin-vue-components": "^0.26.0", + "vite": "^5.4.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-devtools": "^7.3.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "keywords": [ + "vite", + "electron", + "vue3", + "rollup", + "element-ui" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..a52396e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,12048 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@grpc/grpc-js': + specifier: ^1.11.1 + version: 1.11.1 + '@types/node': + specifier: ^22.5.4 + version: 22.5.4 + '@univerjs/core': + specifier: ^0.2.8 + version: 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/data-validation': + specifier: ^0.2.8 + version: 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/design': + specifier: ^0.2.8 + version: 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/docs-hyper-link': + specifier: ^0.2.9 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/docs-ui': + specifier: ^0.2.8 + version: 0.2.11(ttgjob7j3j75xmtnyfmdn23pk4) + '@univerjs/drawing': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + '@univerjs/drawing-ui': + specifier: ^0.2.8 + version: 0.2.11(semu3nlmxnkrrxkcijgkw5znqm) + '@univerjs/engine-formula': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-numfmt': + specifier: ^0.2.8 + version: 0.2.11 + '@univerjs/engine-render': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/facade': + specifier: ^0.2.8 + version: 0.2.11(ajka3zlkffbbqy6tockfi7zsr4) + '@univerjs/find-replace': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/ui@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + '@univerjs/network': + specifier: ^0.2.9 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/rpc': + specifier: ^0.2.9 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': + specifier: ^0.2.8 + version: 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-conditional-formatting': + specifier: ^0.2.8 + version: 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(dayjs@1.11.13)(rxjs@7.8.1) + '@univerjs/sheets-conditional-formatting-ui': + specifier: ^0.2.8 + version: 0.2.11(esblm2llhoq5d7mhjqvgd2khuu) + '@univerjs/sheets-crosshair-highlight': + specifier: ^0.2.9 + version: 0.2.11(vrsx45dguhibv7tukar6pbtoqi) + '@univerjs/sheets-data-validation': + specifier: ^0.2.8 + version: 0.2.11(ygpdcebi3dckn6ghawdkfr2h4a) + '@univerjs/sheets-drawing': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/drawing@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)) + '@univerjs/sheets-drawing-ui': + specifier: ^0.2.8 + version: 0.2.11(vaqxpsdjvtitnxy3a3whu3scpm) + '@univerjs/sheets-filter': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-filter-ui': + specifier: ^0.2.8 + version: 0.2.11(34kdd6svzvrzfcqifv2xqcfwbq) + '@univerjs/sheets-find-replace': + specifier: ^0.2.8 + version: 0.2.11(jefe3lyt2sugquh7nzcx24ulpu) + '@univerjs/sheets-formula': + specifier: ^0.2.8 + version: 0.2.11(qcm54sxq4znfurnc2o2omzvhwq) + '@univerjs/sheets-hyper-link': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-hyper-link-ui': + specifier: ^0.2.8 + version: 0.2.11(knq3mfhrn4qmx6eoprmng26oiq) + '@univerjs/sheets-numfmt': + specifier: ^0.2.8 + version: 0.2.11(xblmg67qgglsp2tx2cxsl7zme4) + '@univerjs/sheets-sort': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)) + '@univerjs/sheets-sort-ui': + specifier: ^0.2.8 + version: 0.2.11(joluz6icy5f2curalllyfkfziq) + '@univerjs/sheets-thread-comment': + specifier: ^0.2.8 + version: 0.2.11(kczhii6qqwczre2be5ym66l2oy) + '@univerjs/sheets-thread-comment-base': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/thread-comment@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': + specifier: ^0.2.8 + version: 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/sheets-zen-editor': + specifier: ^0.2.8 + version: 0.2.11(nraalvjwgwpi4qi6eismso4yme) + '@univerjs/thread-comment': + specifier: ^0.2.8 + version: 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/thread-comment-ui': + specifier: ^0.2.8 + version: 0.2.11(kplje42oytrakoxuex6jwrxalq) + '@univerjs/ui': + specifier: ^0.2.8 + version: 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + '@univerjs/vite-plugin': + specifier: ^0.5.0 + version: 0.5.0 + '@wangeditor/editor': + specifier: ^5.1.23 + version: 5.1.23 + '@wangeditor/editor-for-vue': + specifier: ^5.1.12 + version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.4.38(typescript@5.5.4)) + animate.css: + specifier: ^4.1.1 + version: 4.1.1 + axios: + specifier: ^1.7.4 + version: 1.7.5 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + color: + specifier: ^4.2.3 + version: 4.2.3 + csstype: + specifier: ^3.1.3 + version: 3.1.3 + dayjs: + specifier: ^1.11.13 + version: 1.11.13 + echarts: + specifier: ^5.5.1 + version: 5.5.1 + electron-log: + specifier: ^5.1.7 + version: 5.1.7 + electron-updater: + specifier: ^6.2.1 + version: 6.2.1 + electron_updater_node_cli: + specifier: ^0.3.3 + version: 0.3.3 + electron_updater_node_core: + specifier: ^0.3.3 + version: 0.3.3 + element-plus: + specifier: ^2.8.0 + version: 2.8.1(vue@3.4.38(typescript@5.5.4)) + exceljs: + specifier: ^4.4.0 + version: 4.4.0 + express: + specifier: ^4.19.2 + version: 4.19.2 + express-ws: + specifier: ^5.0.2 + version: 5.0.2(bufferutil@4.0.8)(express@4.19.2)(utf-8-validate@5.0.10) + glob: + specifier: ^11.0.0 + version: 11.0.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + pinia: + specifier: ^2.2.2 + version: 2.2.2(typescript@5.5.4)(vue@3.4.38(typescript@5.5.4)) + regedit: + specifier: ^5.1.3 + version: 5.1.3 + rxjs: + specifier: ^7.8.1 + version: 7.8.1 + semver: + specifier: ^7.6.3 + version: 7.6.3 + sockjs-client: + specifier: ^1.6.1 + version: 1.6.1 + stompjs: + specifier: ^2.3.3 + version: 2.3.3 + unocss: + specifier: ^0.62.3 + version: 0.62.3(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + uuid: + specifier: ^10.0.0 + version: 10.0.0 + vue: + specifier: ^3.4.21 + version: 3.4.38(typescript@5.5.4) + vue-i18n: + specifier: 9.14.0 + version: 9.14.0(vue@3.4.38(typescript@5.5.4)) + vue-router: + specifier: ^4.4.3 + version: 4.4.3(vue@3.4.38(typescript@5.5.4)) + webstomp-client: + specifier: ^1.2.6 + version: 1.2.6 + ws: + specifier: ^8.18.0 + version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + devDependencies: + '@iconify-json/ep': + specifier: ^1.1.16 + version: 1.1.16 + '@rollup/plugin-alias': + specifier: ^5.1.0 + version: 5.1.0(rollup@4.21.1) + '@rollup/plugin-commonjs': + specifier: ^26.0.1 + version: 26.0.1(rollup@4.21.1) + '@rollup/plugin-json': + specifier: ^6.1.0 + version: 6.1.0(rollup@4.21.1) + '@rollup/plugin-node-resolve': + specifier: ^15.2.3 + version: 15.2.3(rollup@4.21.1) + '@rollup/plugin-replace': + specifier: ^5.0.5 + version: 5.0.7(rollup@4.21.1) + '@rollup/plugin-typescript': + specifier: ^11.1.6 + version: 11.1.6(rollup@4.21.1)(tslib@2.7.0)(typescript@5.5.4) + '@types/adm-zip': + specifier: ^0.5.5 + version: 0.5.5 + '@types/color': + specifier: ^3.0.6 + version: 3.0.6 + '@types/express': + specifier: ^4.17.21 + version: 4.17.21 + '@types/express-ws': + specifier: ^3.0.5 + version: 3.0.5 + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 + '@types/lodash': + specifier: ^4.17.7 + version: 4.17.7 + '@types/minimist': + specifier: ^1.2.5 + version: 1.2.5 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@types/path-browserify': + specifier: ^1.0.3 + version: 1.0.3 + '@types/semver': + specifier: ^7.5.8 + version: 7.5.8 + '@types/sockjs-client': + specifier: ^1.5.4 + version: 1.5.4 + '@types/sortablejs': + specifier: ^1.15.8 + version: 1.15.8 + '@types/stompjs': + specifier: ^2.3.9 + version: 2.3.9 + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + '@vitejs/plugin-vue': + specifier: ^5.1.2 + version: 5.1.2(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + '@vitejs/plugin-vue-jsx': + specifier: ^4.0.1 + version: 4.0.1(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + '@vue/compiler-sfc': + specifier: ^3.4.38 + version: 3.4.38 + adm-zip: + specifier: ^0.5.15 + version: 0.5.15 + cfonts: + specifier: ^3.3.0 + version: 3.3.0 + chalk: + specifier: 5.3.0 + version: 5.3.0 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + del: + specifier: ^7.1.0 + version: 7.1.0 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + electron: + specifier: ^32.0.0 + version: 32.0.1 + electron-builder: + specifier: ^24.13.3 + version: 24.13.3(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)) + electron-builder-squirrel-windows: + specifier: ^24.13.3 + version: 24.13.3(dmg-builder@24.13.3) + electron-devtools-vendor: + specifier: ^3.0.0 + version: 3.0.0 + esbuild: + specifier: ^0.23.1 + version: 0.23.1 + extract-zip: + specifier: ^2.0.1 + version: 2.0.1 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + inquirer: + specifier: ^10.1.8 + version: 10.1.8 + javascript-obfuscator: + specifier: ^4.1.1 + version: 4.1.1 + listr2: + specifier: ^8.2.4 + version: 8.2.4 + minimist: + specifier: ^1.2.8 + version: 1.2.8 + path-to-regexp: + specifier: ^7.1.0 + version: 7.1.0 + portfinder: + specifier: ^1.0.32 + version: 1.0.32 + postcss: + specifier: ^8.4.41 + version: 8.4.41 + postcss-html: + specifier: ^1.7.0 + version: 1.7.0 + postcss-scss: + specifier: ^4.0.9 + version: 4.0.9(postcss@8.4.41) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + rollup: + specifier: ^4.21.0 + version: 4.21.1 + rollup-plugin-esbuild: + specifier: ^6.1.1 + version: 6.1.1(esbuild@0.23.1)(rollup@4.21.1) + rollup-plugin-obfuscator: + specifier: ^1.1.0 + version: 1.1.0(javascript-obfuscator@4.1.1)(rollup@4.21.1) + sass: + specifier: ^1.77.8 + version: 1.77.8 + tslib: + specifier: ^2.6.3 + version: 2.7.0 + tsx: + specifier: ^4.17.0 + version: 4.18.0 + typescript: + specifier: ^5.5.4 + version: 5.5.4 + unplugin-auto-import: + specifier: ^0.17.6 + version: 0.17.8(@vueuse/core@9.13.0(vue@3.4.38(typescript@5.5.4)))(rollup@4.21.1) + unplugin-icons: + specifier: ^0.18.5 + version: 0.18.5(@vue/compiler-sfc@3.4.38) + unplugin-vue-components: + specifier: ^0.26.0 + version: 0.26.0(@babel/parser@7.25.4)(rollup@4.21.1)(vue@3.4.38(typescript@5.5.4)) + vite: + specifier: ^5.4.1 + version: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + vite-plugin-vue-devtools: + specifier: ^7.3.0 + version: 7.3.9(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + +packages: + + 7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@ant-design/fast-color@2.0.6': + resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} + engines: {node: '>=8.x'} + + '@antfu/install-pkg@0.3.5': + resolution: {integrity: sha512-HwIACY0IzrM7FGafMbWZOqEDBSfCwPcylu+GacaRcxJm4Yvvuh3Dy2vZwqdJAzXponc6aLO9FaH4l75pq8/ZSA==} + + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.5': + resolution: {integrity: sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.22.15': + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.0': + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.4': + resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-decorators@7.24.7': + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.24.7': + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.7': + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.4': + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.8': + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.25.2': + resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.7': + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.25.4': + resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.4.5': + resolution: {integrity: sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==} + + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.4': + resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.4': + resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} + engines: {node: '>=6.9.0'} + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@develar/schema-utils@2.6.5': + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + + '@electron/asar@3.2.10': + resolution: {integrity: sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==} + engines: {node: '>=10.12.0'} + hasBin: true + + '@electron/get@2.0.3': + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + + '@electron/notarize@2.2.1': + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} + engines: {node: '>= 10.0.0'} + + '@electron/osx-sign@1.0.5': + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} + engines: {node: '>=12.0.0'} + hasBin: true + + '@electron/universal@1.5.1': + resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} + engines: {node: '>=8.6'} + + '@element-plus/icons-vue@2.3.1': + resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} + peerDependencies: + vue: ^3.2.0 + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@fast-csv/format@4.3.5': + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} + + '@fast-csv/parse@4.3.6': + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} + + '@floating-ui/core@1.6.7': + resolution: {integrity: sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==} + + '@floating-ui/dom@1.6.10': + resolution: {integrity: sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==} + + '@floating-ui/utils@0.2.7': + resolution: {integrity: sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==} + + '@grpc/grpc-js@1.11.1': + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@iconify-json/ep@1.1.16': + resolution: {integrity: sha512-g7XnumVhTGlMDFkr7D3U19HJxneGdRwG8MIeV/PIubfRQu1wOh9aYQSycbTYMV9LCVr0Hg2wN1U45R8MJvPjlA==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.1.32': + resolution: {integrity: sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ==} + + '@inquirer/checkbox@2.4.7': + resolution: {integrity: sha512-5YwCySyV1UEgqzz34gNsC38eKxRBtlRDpJLlKcRtTjlYA/yDKuc1rfw+hjw+2WJxbAZtaDPsRl5Zk7J14SBoBw==} + engines: {node: '>=18'} + + '@inquirer/confirm@3.1.22': + resolution: {integrity: sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==} + engines: {node: '>=18'} + + '@inquirer/core@9.0.10': + resolution: {integrity: sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==} + engines: {node: '>=18'} + + '@inquirer/editor@2.1.22': + resolution: {integrity: sha512-K1QwTu7GCK+nKOVRBp5HY9jt3DXOfPGPr6WRDrPImkcJRelG9UTx2cAtK1liXmibRrzJlTWOwqgWT3k2XnS62w==} + engines: {node: '>=18'} + + '@inquirer/expand@2.1.22': + resolution: {integrity: sha512-wTZOBkzH+ItPuZ3ZPa9lynBsdMp6kQ9zbjVPYEtSBG7UulGjg2kQiAnUjgyG4SlntpTce5bOmXAPvE4sguXjpA==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.5': + resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} + engines: {node: '>=18'} + + '@inquirer/input@2.2.9': + resolution: {integrity: sha512-7Z6N+uzkWM7+xsE+3rJdhdG/+mQgejOVqspoW+w0AbSZnL6nq5tGMEVASaYVWbkoSzecABWwmludO2evU3d31g==} + engines: {node: '>=18'} + + '@inquirer/number@1.0.10': + resolution: {integrity: sha512-kWTxRF8zHjQOn2TJs+XttLioBih6bdc5CcosXIzZsrTY383PXI35DuhIllZKu7CdXFi2rz2BWPN9l0dPsvrQOA==} + engines: {node: '>=18'} + + '@inquirer/password@2.1.22': + resolution: {integrity: sha512-5Fxt1L9vh3rAKqjYwqsjU4DZsEvY/2Gll+QkqR4yEpy6wvzLxdSgFhUcxfDAOtO4BEoTreWoznC0phagwLU5Kw==} + engines: {node: '>=18'} + + '@inquirer/prompts@5.3.8': + resolution: {integrity: sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==} + engines: {node: '>=18'} + + '@inquirer/rawlist@2.2.4': + resolution: {integrity: sha512-pb6w9pWrm7EfnYDgQObOurh2d2YH07+eDo3xQBsNAM2GRhliz6wFXGi1thKQ4bN6B0xDd6C3tBsjdr3obsCl3Q==} + engines: {node: '>=18'} + + '@inquirer/search@1.0.7': + resolution: {integrity: sha512-p1wpV+3gd1eST/o5N3yQpYEdFNCzSP0Klrl+5bfD3cTTz8BGG6nf4Z07aBW0xjlKIj1Rp0y3x/X4cZYi6TfcLw==} + engines: {node: '>=18'} + + '@inquirer/select@2.4.7': + resolution: {integrity: sha512-JH7XqPEkBpNWp3gPCqWqY8ECbyMoFcCZANlL6pV9hf59qK6dGmkOlx1ydyhY+KZ0c5X74+W6Mtp+nm2QX0/MAQ==} + engines: {node: '>=18'} + + '@inquirer/type@1.5.2': + resolution: {integrity: sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==} + engines: {node: '>=18'} + + '@intlify/core-base@9.14.0': + resolution: {integrity: sha512-zJn0imh9HIsZZUtt9v8T16PeVstPv6bP2YzlrYJwoF8F30gs4brZBwW2KK6EI5WYKFi3NeqX6+UU4gniz5TkGg==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@9.14.0': + resolution: {integrity: sha512-sXNsoMI0YsipSXW8SR75drmVK56tnJHoYbPXUv2Cf9lz6FzvwsosFm6JtC1oQZI/kU+n7qx0qRrEWkeYFTgETA==} + engines: {node: '>= 16'} + + '@intlify/shared@9.14.0': + resolution: {integrity: sha512-r+N8KRQL7LgN1TMTs1A2svfuAU0J94Wu9wWdJVJqYsoMMLIeJxrPjazihfHpmJqfgZq0ah3Y9Q4pgWV2O90Fyg==} + engines: {node: '>= 16'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@javascript-obfuscator/escodegen@2.3.0': + resolution: {integrity: sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==} + engines: {node: '>=6.0'} + + '@javascript-obfuscator/estraverse@5.4.0': + resolution: {integrity: sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==} + engines: {node: '>=4.0'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + + '@malept/cross-spawn-promise@1.1.1': + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + + '@malept/flatpak-bundler@0.4.0': + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@rc-component/color-picker@2.0.1': + resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/mini-decimal@1.1.0': + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} + + '@rc-component/portal@1.1.2': + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/trigger@2.2.2': + resolution: {integrity: sha512-xDyi0fJ3IV6XJEReMOewS9PEnnuLHKz4rjbgIniDsJFHjL5nROuUlu64mfo90jglLDkQUxRwK7aTtumA65/zYQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rollup/plugin-alias@5.1.0': + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@26.0.1': + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-typescript@11.1.6': + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.21.1': + resolution: {integrity: sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.21.1': + resolution: {integrity: sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.21.1': + resolution: {integrity: sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.21.1': + resolution: {integrity: sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.21.1': + resolution: {integrity: sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.21.1': + resolution: {integrity: sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.21.1': + resolution: {integrity: sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.21.1': + resolution: {integrity: sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.1': + resolution: {integrity: sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.21.1': + resolution: {integrity: sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-s390x-gnu@4.21.1': + resolution: {integrity: sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.21.1': + resolution: {integrity: sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.21.1': + resolution: {integrity: sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.21.1': + resolution: {integrity: sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.21.1': + resolution: {integrity: sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.21.1': + resolution: {integrity: sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==} + cpu: [x64] + os: [win32] + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sxzz/popperjs-es@2.11.7': + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@transloadit/prettier-bytes@0.0.7': + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@types/adm-zip@0.5.5': + resolution: {integrity: sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/color-convert@2.0.3': + resolution: {integrity: sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==} + + '@types/color-name@1.1.4': + resolution: {integrity: sha512-hulKeREDdLFesGQjl96+4aoJSHY5b2GRjagzzcqCfIrWhe5vkCqIvrLbqzBaI1q94Vg8DNJZZqTR5ocdWmWclg==} + + '@types/color@3.0.6': + resolution: {integrity: sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/event-emitter@0.3.5': + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} + + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + + '@types/express-ws@3.0.5': + resolution: {integrity: sha512-lbWMjoHrm/v85j81UCmb/GNZFO3genxRYBW1Ob7rjRI+zxUBR+4tcFuOpKKsYQ1LYTYiy3356epLeYi/5zxUwA==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash.mergewith@4.6.9': + resolution: {integrity: sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw==} + + '@types/lodash@4.17.7': + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@20.16.1': + resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} + + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + + '@types/path-browserify@1.0.3': + resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} + + '@types/plist@3.0.5': + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-mentions@4.4.0': + resolution: {integrity: sha512-dKnY1h42GPUO/QAyei6HxEsFUbEcqK/t1k60ZbLJstB9RAs8OCT69mj9AnUbeNdbzYVISE88OC2IYkkthAAn2g==} + + '@types/react@18.3.5': + resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sockjs-client@1.5.4': + resolution: {integrity: sha512-zk+uFZeWyvJ5ZFkLIwoGA/DfJ+pYzcZ8eH4H/EILCm2OBZyHH6Hkdna1/UWL/CFruh5wj6ES7g75SvUB0VsH5w==} + + '@types/sortablejs@1.15.8': + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} + + '@types/stompjs@2.3.9': + resolution: {integrity: sha512-fu/GgkRdxwyEJ+JeUsGhDxGwmZQi+xeNElradGQ4ehWiG2z/o89gsi5Y7Gv0KC6VK1v78Cjh8zj3VF+RvqCGSA==} + + '@types/svgo@2.6.4': + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/validator@13.12.1': + resolution: {integrity: sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA==} + + '@types/verror@1.10.10': + resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@univerjs/core@0.2.11': + resolution: {integrity: sha512-0W3ajDmx2OhWrnuuiOpoKoXWffB6BNeYDqVH7/cqI3RGkcTBUE/feIPyBX+AjW/7qxXSJTVxiyDvN7xyZEK36Q==} + peerDependencies: + '@univerjs/core': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/data-validation@0.2.11': + resolution: {integrity: sha512-4Y9FkyjDbZNqQuCUsCQh2dxCuo2ljOanY4PDtT6KEEcGqYUZn5PBbFGuvGGwc51T+lW5B6KX+pLwOERhB7OQlw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/sheets': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/design@0.2.11': + resolution: {integrity: sha512-S9MLDxqJUbkQWIqdxRJMzsrAt6EgcpjI+ezMYsQ0SW81CdiSPpPFTNH4tEAOvfp1bsdjDLcJxBGps8mHt/c+QQ==} + peerDependencies: + clsx: '>=2.0.0' + dayjs: '>=1.11.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 + + '@univerjs/docs-hyper-link@0.2.11': + resolution: {integrity: sha512-IlkwX5MPgxpGq0Zo7RmF+VS9NLC1EmxmuzhzduQpsz4YL9nZsPFJKzzXAYUpPmxsbAyJLht5TF3hKQfwlPqWjA==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/docs-ui@0.2.11': + resolution: {integrity: sha512-IRW9jk4tvXcQqTGmDPNygJ8Ywyk3SubuRaGL+PTz52WpLTHa/8UMJPja3LCN9VSg6X2mmsqce6X0oinMNFN5Aw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/docs@0.2.11': + resolution: {integrity: sha512-UAIBzH1/cOsLl2a5nAeR5TJAuiD52QgdxiREwzmWCOg5R+KAsCrYSQB++Hf9WoI4JqMcPvVURJ5v9m99BbhR9A==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-render': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/drawing-ui@0.2.11': + resolution: {integrity: sha512-jCBqF+t+UrX9raTwu/9BhmsHRwVc8wLWmz60Ww+IPXBF0jcxvznSjwv/Gss0V40xaiTCLmF9qMd+TY3LmGMMkw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/drawing': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/drawing@0.2.11': + resolution: {integrity: sha512-dvsSkJHJm8ZSg3O6LXldb29T+zChBC2yJWWQ9FsCe4Z2VFSFiHJwrSgJ1loD+agatHoAj61SMeOOO1KH8cPFhg==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/engine-formula@0.2.11': + resolution: {integrity: sha512-9lmOPjQoZ7/xzPSXC/DL4eDwk+ABPBw6gtK3FOVxpzg6QZyFhmlfDZX7Es3EgrKdQfPvUBgZ/PbbxWtMpCzSgA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/rpc': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/engine-numfmt@0.2.11': + resolution: {integrity: sha512-1Yy0bizFMFqDuM0KDxRPWLsPR3+/12vtrBhTGnQOaS8doSNm+5mAoR9DjNkAgo2gatwhFN1qAESugIcOI3NAxQ==} + + '@univerjs/engine-render@0.2.11': + resolution: {integrity: sha512-76MmuTAf8eX6uMOpm1FM5GHNZb9E2rUJADvOMU9sl6vUzu68upG9b3YmCrPk9ZHPdXH1u7ZN5lbGFC/Wp7rbMA==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/facade@0.2.11': + resolution: {integrity: sha512-eL3lk5gkBV6dNtrFl/92nlhP5bvLcP6Wsn3WlNlsW9i45myieDVfwE/1vEGYu8gOUXgoM54Q6PBnUHQe8YR2IA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/data-validation': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/network': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-crosshair-highlight': 0.2.11 + '@univerjs/sheets-data-validation': 0.2.11 + '@univerjs/sheets-drawing-ui': 0.2.11 + '@univerjs/sheets-filter': 0.2.11 + '@univerjs/sheets-filter-ui': 0.2.11 + '@univerjs/sheets-formula': 0.2.11 + '@univerjs/sheets-numfmt': 0.2.11 + '@univerjs/sheets-thread-comment': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/thread-comment': 0.2.11 + '@univerjs/thread-comment-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/find-replace@0.2.11': + resolution: {integrity: sha512-I/PW+eY0Gp7aHhKalyP4Yk8SSQllt+CkSN9ozUJk6XGiFkHYYMZVoPaliL1uh3w7go5PUtQK7aPbwmpeZucqxA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/icons@0.1.77': + resolution: {integrity: sha512-ADkX1PkXG+rptU+OJzrPX+asVawRVKF6v+Ce3DYq/pVKOnKm8qPbKsbVmCMyxPOCq9N5Cd0TAkjJavyft+XsEw==} + peerDependencies: + react: '*' + react-dom: '*' + + '@univerjs/network@0.2.11': + resolution: {integrity: sha512-m9RQWaYnmq5flJncE0quQfad1aSjJZ/5EMeK9MW9FX6LmgzZlihS3mwifepsEoqdc8WysWCcgsOuYMc/cf0T0g==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/protocol@0.1.39-alpha.15': + resolution: {integrity: sha512-vNV9y+5qGbzOAkGn1Na/DhWWqDLPyUHVZkC5xKUZxp9Df8Em190A9qQcNw+szaudSwotLHtqDSJLDlPUy4g3Jg==} + engines: {node: '>=16.0.0', npm: '>=8.0.0'} + peerDependencies: + '@grpc/grpc-js': 1.9.14 + rxjs: '>=7.0.0' + + '@univerjs/rpc@0.2.11': + resolution: {integrity: sha512-Nm7SC6d2H+TNGwYbd31EXVqIwupRJynF5UfA0rRNyL6rwBBrD0spzIJYznSA7MTA5K7BK+p8i+Fu+jCSfBY3fw==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/sheets-conditional-formatting-ui@0.2.11': + resolution: {integrity: sha512-HwrQ+3GcErH6OZPGyvOTEnXBFZEIzGmQo5FhthEbjxAjD05etW/GpIYD2fmRwFWvvYseopm2FyTRbb/03dGdFQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-conditional-formatting': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-conditional-formatting@0.2.11': + resolution: {integrity: sha512-89TXW14eBrhyxz35A70ZzRtw+56fOqR1zyzikUQJJgaw4wZBu5oFR6jXbfMcLzx+B0uHmkZPqdoOXQnSYprfDQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + dayjs: '>=1.11.0' + rxjs: '>=7.0.0' + + '@univerjs/sheets-crosshair-highlight@0.2.11': + resolution: {integrity: sha512-OVPAYVaarXLCx9ex9Ez/kPN+WLxBa4wng+etPRbFZUTXINu8LDFRUomQtAlBhIak78BeuUBziWTpsLg9kHD5nw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-data-validation@0.2.11': + resolution: {integrity: sha512-DVcXAmig9fKwUm/h51lgzxTI8OP+96xZaFW8Ysx6QQPj+o0q6Z1IGGKQ7gFTZgNm3hJRKjY38hpHpddaG2ypbw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/data-validation': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-formula': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + dayjs: '>=1.11.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-drawing-ui@0.2.11': + resolution: {integrity: sha512-vcC7EBYsUAcQpEZ0zueag0f1PM5ow6vxCz1oaDbvT60t9qpOKR1dbpROhja4RpTWIo3xKG79X0rKwesn8HzLVA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/drawing': 0.2.11 + '@univerjs/drawing-ui': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-drawing': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-drawing@0.2.11': + resolution: {integrity: sha512-BUwPT2TdFSAR1KMLJNKcyszuAK+M25Ue82SkQoNK7krkbzhMjwIYqjdr75XTlUC6lf+itz5MghYZvGVzof1RVg==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/drawing': 0.2.11 + + '@univerjs/sheets-filter-ui@0.2.11': + resolution: {integrity: sha512-iYTHYRdZ1P0VdLliHFb+Mh3Zw8a9zCakfn0mT6/bsRBT4RjqV1wj3HJxt0rth/Z7MoiKVtrMnL0nsMF2swosZw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/rpc': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-filter': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-filter@0.2.11': + resolution: {integrity: sha512-Yk0FSHgh7njZEmxY5Q30DqiXdk4ECxmXdTrocKElK0puS9NIlqWbKtMa41BWqD61ipvn9uNcilVq7+lJ0I+TAA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/sheets': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/sheets-find-replace@0.2.11': + resolution: {integrity: sha512-J+rfnYoCQ1PS9nXysM1qbdcvESXGY+8ZAP+aMkbStZTGBlgSs3ke8+dCNggjg2Hy/IdQgKjTXDOwi5imuBn5xQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/find-replace': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/sheets-formula@0.2.11': + resolution: {integrity: sha512-V6Xam3jLJUYY6LL2prJDFuO35WcvDyHr7Qjzp0AebD73KNXFKbEEWO4Dy0S/SupnAUN3ELs5Pkf2yleuwX69kA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/rpc': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-hyper-link-ui@0.2.11': + resolution: {integrity: sha512-E00C3nEeC9KXXpbu3Pe4xRRmXbkSrq4CkelyjEoMsFaK4HVxJm4xt8MO52rMLHCLcLujjwflOBwlZna1CAAnSw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/docs-hyper-link': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-hyper-link': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-hyper-link@0.2.11': + resolution: {integrity: sha512-z9N9CZAxRy8SPhpxIb3NVWERRZYhUpepa7cd90msJM15no56/8AVqzJ27U7+y+oKBMOh6pS30EW2kGJ3xndsQQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-hyper-link': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/sheets-numfmt@0.2.11': + resolution: {integrity: sha512-bw9A2LEorKhsWP7gZhaoDcFc4wFaLvyFc6XWyfN6BTtrzgVjCtVW0gTjC1Xf5d51yHdzwexQwVgkKkHoWEViGw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-numfmt': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-sort-ui@0.2.11': + resolution: {integrity: sha512-/vfoLnv6ZE6Hk5E7x1g7uuFgH8uJPl8h8vbd6BDtbxjrkM2pdrsoUNp8/CuT8phThr12UvwU1CkfpbuKf0GoQQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-sort': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-sort@0.2.11': + resolution: {integrity: sha512-RvOZ5Xs/s9BNNEI+jPayTDvHaQTajQf+X9rTftYx+QYyQZrXixx9hJp8C2P0yLLc2Z+aErbkkVeIxlYQJ/yGlg==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/sheets': 0.2.11 + + '@univerjs/sheets-thread-comment-base@0.2.11': + resolution: {integrity: sha512-zyKU7cIvDKJgrNVyGEDjYxJ4RrH0p/LZQlSMpgi0Szjj+tBwnpZOGu7out2XmLZ2QZObpQxINnX6TjKGDywbMg==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/thread-comment': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/sheets-thread-comment@0.2.11': + resolution: {integrity: sha512-asYLwsFddMTxDA/feYHxpa4P8BOW7j4KDPh3GUzCDhiOvQ8EyjqJxyyh5A47JwxsCtlFYdn+dkZQNdwQ62zV/g==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-thread-comment-base': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/thread-comment': 0.2.11 + '@univerjs/thread-comment-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-ui@0.2.11': + resolution: {integrity: sha512-xGC/YQXkfap4K+5+PT/kq9XRDIt8DXK3zbSqKR4O0ckiDmjKdq1IquncTLYmY5HyEf/M9E9Q9pLOCoOdm/qQ9A==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets-zen-editor@0.2.11': + resolution: {integrity: sha512-DeSdkT/l9Jsc95gOLloRaat/sPRiRsZSTlketE/jwF27Wt94PDcdsWw649kApNL5mmJFdKJfOqIXHueW/FMQRA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/docs-ui': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/sheets': 0.2.11 + '@univerjs/sheets-ui': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/sheets@0.2.11': + resolution: {integrity: sha512-qoKN3eSyXi9ugyq83L7ausQm802exjmJ0e6ZCWuSfS9mLC1eyJmKfSy6OQ47LBUMQKSEUf0U+ty800cKTKWtEA==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-numfmt': 0.2.11 + '@univerjs/rpc': 0.2.11 + '@univerjs/sheets': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/thread-comment-ui@0.2.11': + resolution: {integrity: sha512-dooGf/0E0N5Dz6cDnIA8+5whOz9D9VBh+alida2w6UyETAaxlrMOGm9TjeCGc9LWpQgFBTT5qmKwMvdLeM75uw==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/docs': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/thread-comment': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + dayjs: '>=1.11.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/thread-comment@0.2.11': + resolution: {integrity: sha512-gAVAIlAgyxyMghYPz72bxBUDT8KXXfhl0DF1FCBLn9fmMYumeJT8ym0jy9V4BOo+xgIzufso7uGcuHG7topRSQ==} + peerDependencies: + '@univerjs/core': 0.2.11 + rxjs: '>=7.0.0' + + '@univerjs/ui@0.2.11': + resolution: {integrity: sha512-/dEgVJd4Kt0X4NNE6LpKccGCM0wx8laUpZx8SgCUULRiVLKNNfC8rRAz9rNwGgHquAFPoHv/cGFc2+eqmwAaAg==} + peerDependencies: + '@univerjs/core': 0.2.11 + '@univerjs/design': 0.2.11 + '@univerjs/engine-formula': 0.2.11 + '@univerjs/engine-render': 0.2.11 + '@univerjs/ui': 0.2.11 + clsx: '>=2.0.0' + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 + rxjs: '>=7.0.0' + + '@univerjs/vite-plugin@0.5.0': + resolution: {integrity: sha512-VTVcvStR4ugrJwnWUPCwm9Wxrg97e5Fk2hBHyHNkuTUd5Ezupx/4zk9jjzM/lC+Fw7J9FDGJ0Uw3vg+oN3bgsQ==} + engines: {node: '>=16.0.0', npm: '>=8.0.0'} + + '@unocss/astro@0.62.3': + resolution: {integrity: sha512-C6ZdyLbLDS0LebwmgwVItLNAOSkL/tvVWNRd1i3Jy5uj1vPxlrw+3lIYiHjEofn0GFpBiwlv5+OCvO1Xpq5MqA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + + '@unocss/cli@0.62.3': + resolution: {integrity: sha512-yEl1iNKkBVpo8+i8gzveM5/0/vOVe6m8+FmuSDuKeSPJnYMhI1mAn+OCKFb/I+qEeLbRPXebbJUUB1xZNzya+w==} + engines: {node: '>=14'} + hasBin: true + + '@unocss/config@0.62.3': + resolution: {integrity: sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw==} + engines: {node: '>=14'} + + '@unocss/core@0.62.3': + resolution: {integrity: sha512-Pfyrj8S7jq9K1QXD6Z5BCeiQavaHpbMN5q958/kmdbNGp57hOg1e346fMJAvgPjLBR+lE/hgZEsDrijtRiZXnw==} + + '@unocss/extractor-arbitrary-variants@0.62.3': + resolution: {integrity: sha512-9ZscWyXEwDZif+b56xZyJFHwJOjdMXmj+6x96jOsnRNBzwT9eW7YcGCErP1ih/q1S6KmuRrHM/JOXMBQ6H4qlw==} + + '@unocss/inspector@0.62.3': + resolution: {integrity: sha512-nTSXOf7YimFPxEYJo5VfP5wlMgYOCjlv3c5Ub/0fynCJXZNb89SFeU05ABXkEgg/FfiobVBTscikLc6guW8eHQ==} + + '@unocss/postcss@0.62.3': + resolution: {integrity: sha512-CwL378ef0QazduXqlaGcWgKJAzemBUxdhapWWiRqI8sXC/eXht5xK6nS1JxqADDuxosgqsGdvcCGmP8ZFrEyiA==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + + '@unocss/preset-attributify@0.62.3': + resolution: {integrity: sha512-ORNwyLobGTwnn/tK5yHnMabdJU6Mr/C4LyFH7G8VSLit/aVS0fFa795kJXwxfbqQoQ7Gw0Zxs9oE5RXI0/0y7g==} + + '@unocss/preset-icons@0.62.3': + resolution: {integrity: sha512-Ie+5RTyac1Q5CNB/s/4aB4VTHAQgQqsI5hshMNLkJ0Jj1lWxodUdEbCRKjXDalRjAXOS9vsLjfJ35ozJ1RSTIQ==} + + '@unocss/preset-mini@0.62.3': + resolution: {integrity: sha512-dn/8ubeW2ry/ZF3iKxdQHnS0l3EBibt0rIOE/XVwx24ub6pRzclU4r7xHnXeqvAFOO9PoiKDGgFR92m6R2MxyQ==} + + '@unocss/preset-tagify@0.62.3': + resolution: {integrity: sha512-8BpUCZ5sjOZOzBKtu7ecfhRggwwPF78IqeqeNjI+XYRs8r7TBBcUVeF6zUkwhlX/TbtREkw2OZj0Iusa9CBO+A==} + + '@unocss/preset-typography@0.62.3': + resolution: {integrity: sha512-GjtDgQ1Jec/5RNmnyGMWMgyPdStWcFG/S+NUfOuroRsGSI8PDxihVOwFu5CwvOB2J2r6mRNLeUYMluE05jW3sw==} + + '@unocss/preset-uno@0.62.3': + resolution: {integrity: sha512-RlsrMlpEzoZqB0lr5VvlkHGpEgr0Vp6z4Q/7DjW5t7mi20Z2i8olaLGWM0TO1wKoRi8bxc6HP0RHUS7pHtZxBA==} + + '@unocss/preset-web-fonts@0.62.3': + resolution: {integrity: sha512-rGEouncGFwcUY1cjkQ/ZoSmEzOeSi3Yk4YAfHGyS0ff5zKuTDWZgivB8hh/mTtvRzZunIL+FW1+1z5G9rUwjgQ==} + + '@unocss/preset-wind@0.62.3': + resolution: {integrity: sha512-6+VNce1he1U5EXKlXRwTIPn8KeK6bZ2jAEgcCxk8mFy8SzOlLeYzXCI9lcdiWRTjIeIiK5iSaUqmsQFtKdTyQg==} + + '@unocss/reset@0.62.3': + resolution: {integrity: sha512-XVKPkbm8y9SGzRaG3x+HygGZURm50MvKLVHXsbxi67RbIir9Ouyt9hQTV6Xs3RicRZFWOpJx3wMRb8iKUOe5Zw==} + + '@unocss/rule-utils@0.62.3': + resolution: {integrity: sha512-qI37jHH//XzyR5Y2aN3Kpo4lQrQO+CaiXpqPSwMLYh2bIypc2RQVpqGVtU736x0eA6IIx41XEkKzUW+VtvJvmg==} + engines: {node: '>=14'} + + '@unocss/scope@0.62.3': + resolution: {integrity: sha512-TJGmFfsMrTo8DBJ7CJupIqObpgij+w4jCHMBf1uu0/9jbm63dH6WGcrl3zf5mm6UBTeLmB0RwJ8K4hs7LtrBDQ==} + + '@unocss/transformer-attributify-jsx-babel@0.62.3': + resolution: {integrity: sha512-3yFZPSoN8VLiAGUAFIyfDRv9HQYTKFGKawDdMM9ATZmSEYOecJnYjS2HayT1P9kzGwBwuKoFjcX50JH1PuNokg==} + + '@unocss/transformer-attributify-jsx@0.62.3': + resolution: {integrity: sha512-AutidZj26QW1vLQzuW/aQigC/5ZnIeqGYIBeb/O+FKKt0bU411tHrHnA1iV4CoxIdWJTkw2sGAl6z6YvwAYG6w==} + + '@unocss/transformer-compile-class@0.62.3': + resolution: {integrity: sha512-1hf+99wJXzQXQPz9xR0AiTB3vBXT5RiEyugIX95HFx7EvSE/P17RP90yKEKZtDZRUwGiz2vIyySlxcKTFak9Vg==} + + '@unocss/transformer-directives@0.62.3': + resolution: {integrity: sha512-HqHwFOA7DfxD/A1ROZIp8Dr8iZcE0z4w3VQtViWPQ89Fqmb7p2wCPGekk+8yW5PAltpynvHE4ahJEto5xjdg6w==} + + '@unocss/transformer-variant-group@0.62.3': + resolution: {integrity: sha512-oNX1SdfWemz0GWGSXACu8NevM0t2l44j2ancnooNkNz3l1+z1nbn4vFwfsJCOqOaoVm4ZqxaiQ8HIx81ZSiU1A==} + + '@unocss/vite@0.62.3': + resolution: {integrity: sha512-RrqF6Go8s0BGpwRfkOiLuO+n3CUE/CXxGqb0ipbUARhmNWJlekE3YPfayqImSEnCcImpaPgtVGv6Y0u3kLGG/w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + + '@uppy/companion-client@2.2.2': + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} + + '@uppy/core@2.3.4': + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} + + '@uppy/store-default@2.1.1': + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} + + '@uppy/utils@4.1.3': + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} + + '@uppy/xhr-upload@2.1.3': + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} + peerDependencies: + '@uppy/core': ^2.3.3 + + '@vitejs/plugin-vue-jsx@4.0.1': + resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.1.2': + resolution: {integrity: sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@vue/babel-helper-vue-transform-on@1.2.2': + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + + '@vue/babel-plugin-jsx@1.2.2': + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.2.2': + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.4.38': + resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} + + '@vue/compiler-dom@3.4.38': + resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + + '@vue/compiler-sfc@3.4.38': + resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + + '@vue/compiler-ssr@3.4.38': + resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + + '@vue/devtools-api@6.6.3': + resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} + + '@vue/devtools-core@7.3.9': + resolution: {integrity: sha512-B5zAl9ulNjI6nknSnGNRzmP/ldR9ADUwwT8HkI8Hejo1W00uK9ABUahbfrXzME296rBfmwhQuCFwJ6t9KFdbXQ==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@7.3.9': + resolution: {integrity: sha512-Gr17nA+DaQzqyhNx1DUJr1CJRzTRfbIuuC80ZgU8MD/qNO302tv9la+ROi+Uaw+ULVwU9T71GnwLy4n8m9Lspg==} + + '@vue/devtools-shared@7.3.9': + resolution: {integrity: sha512-CdfMRZKXyI8vw+hqOcQIiLihB6Hbbi7WNZGp7LsuH1Qe4aYAFmTaKjSciRZ301oTnwmU/knC/s5OGuV6UNiNoA==} + + '@vue/reactivity@3.4.38': + resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + + '@vue/runtime-core@3.4.38': + resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + + '@vue/runtime-dom@3.4.38': + resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + + '@vue/server-renderer@3.4.38': + resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + peerDependencies: + vue: 3.4.38 + + '@vue/shared@3.4.38': + resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + + '@wangeditor/basic-modules@1.1.7': + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/code-highlight@1.0.3': + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/core@1.1.19': + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/editor-for-vue@5.1.12': + resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==} + peerDependencies: + '@wangeditor/editor': '>=5.1.0' + vue: ^3.0.5 + + '@wangeditor/editor@5.1.23': + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} + + '@wangeditor/list-module@1.0.5': + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/table-module@1.1.4': + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/upload-image-module@1.0.2': + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/video-module@1.1.4': + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wendellhu/redi@0.16.1': + resolution: {integrity: sha512-nwyKHCIbAgA7ZjhH6a49lVhe8oPFHjg4AtUHUSqdQgYNvHIFTbIWEbieS1pU0TMMHrff+mxGCGp3BZW14AvNsw==} + + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + + adm-zip@0.5.15: + resolution: {integrity: sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==} + engines: {node: '>=12.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + animate.css@4.1.1: + resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + + app-builder-lib@24.13.3: + resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 24.13.3 + electron-builder-squirrel-windows: 24.13.3 + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + assert@2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axios@1.7.5: + resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + + birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + builder-util-runtime@9.2.4: + resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} + engines: {node: '>=12.0.0'} + + builder-util@24.13.1: + resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001653: + resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} + + cfonts@3.3.0: + resolution: {integrity: sha512-RlVxeEw2FXWI5Bs9LD0/Ef3bsQIc9m6lK/DINN20HIW0Y0YHUO2jjy88cot9YKZITiRTCdWzTfLmTyx47HeSLA==} + engines: {node: '>=10'} + hasBin: true + + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chance@1.1.9: + resolution: {integrity: sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjk-regex@3.1.0: + resolution: {integrity: sha512-hM1tngsO2Sco+LesFtGHkkemNBJONUKCeY6RU2VqHBE5kDB8SdnCEJ5M3VoG7M7gL5Kx+GFlzaeSCKXEL9pGTA==} + engines: {node: '>=16'} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + class-validator@0.14.1: + resolution: {integrity: sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} + engines: {node: '>=14'} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + config-file-ts@0.2.6: + resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + del@7.1.0: + resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} + engines: {node: '>=14.16'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dmg-builder@24.13.3: + resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} + + dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + + domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + echarts@5.5.1: + resolution: {integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-builder-squirrel-windows@24.13.3: + resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==} + + electron-builder@24.13.3: + resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} + engines: {node: '>=14.0.0'} + hasBin: true + + electron-devtools-vendor@3.0.0: + resolution: {integrity: sha512-eZrQajB1ioHE81EQN12xr6RYh7fVHkKAunq752pDvKlETMZWu/vqXWl49Qnzi3n/Bbk0gIDTRxvRfPExA5RMow==} + + electron-log@5.1.7: + resolution: {integrity: sha512-/PjrS9zGkrZCDTHt6IgNE3FeciBbi4wd7U76NG9jAoNXF99E9IJdvBkqvaUJ1NjLojYDKs0kTvn9YhKy1/Zi+Q==} + engines: {node: '>= 14'} + + electron-publish@24.13.1: + resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} + + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + + electron-updater@6.2.1: + resolution: {integrity: sha512-83eKIPW14qwZqUUM6wdsIRwVKZyjmHxQ4/8G+1C6iS5PdDt7b1umYQyj1/qPpH510GmHEQe4q0kCPe3qmb3a0Q==} + + electron@32.0.1: + resolution: {integrity: sha512-5Hd5Jaf9niYVR2hZxoRd3gOrcxPOxQV1XPV5WaoSfT9jLJHFadhlKtuSDIk3U6rQZke+aC7GqPPAv55nWFCMsA==} + engines: {node: '>= 12.20.55'} + hasBin: true + + electron_updater_node_cli@0.3.3: + resolution: {integrity: sha512-fOK5f8osp6acFfDxIY3OE1P3xQro7aS4+GJ0Rqx5w9wn+w0sKoINbxlCuI33oNUcwig3xxQptBZ/j1fRgKN2xw==} + hasBin: true + + electron_updater_node_core@0.3.3: + resolution: {integrity: sha512-4cmDE0bWYhLPEskUAgMDwAP0ATe9BhzCRZ4xKKZ1Haw4OvXNSkYHCt2mOnwzbne83CSWTXdB+LSJR/uzrNwZDQ==} + + element-plus@2.8.1: + resolution: {integrity: sha512-p11/6w/O0+hGvPhiN3jrcgh+XG+eg5jZlLdQVYvcPHZYhhCh3J3YeZWW1JO/REPES1vevkboT6VAi+9wHA8Dsg==} + peerDependencies: + vue: ^3.2.0 + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-stack-parser-es@0.1.5: + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + + es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} + + es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + + exceljs@4.4.0: + resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} + engines: {node: '>=8.3.0'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + express-ws@5.0.2: + resolution: {integrity: sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==} + engines: {node: '>=4.5.0'} + peerDependencies: + express: ^4.0.0 || ^5.0.0-alpha.1 + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + + fast-csv@4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} + engines: {node: '>=10.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-equals@4.0.3: + resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.3.0: + resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + franc-min@6.2.0: + resolution: {integrity: sha512-1uDIEUSlUZgvJa2AKYR/dmJC66v/PvGQ9mWfI9nOr/kPpMFyvswK0gPXOwpYJYiYD008PpHLkGfG58SPjQJFxw==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + + 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'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + + htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} + + iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + if-async@3.7.4: + resolution: {integrity: sha512-BFEH2mZyeF6KZKaKLVPZ0wMjIiWOdjvZ7zbx8ENec0qfZhJwKFbX/4jKM5LTKyJEc/GOqUKiiJ2IFKT9yWrZqA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + importx@0.4.3: + resolution: {integrity: sha512-x6E6OxmWq/SUaj7wDeDeSjyHP+rMUbEaqJ5fw0uEtC/FTX9ocxNMFJ+ONnpJIsRpFz3ya6qJAK4orwSKqw0BSQ==} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inquirer@10.1.8: + resolution: {integrity: sha512-syxGpOzLyqVeZi1KDBjRTnCn5PiGWySGHP0BbqXbqsEK0ckkZk3egAepEWslUjZXj0rhkUapVXM/IpADWe4D6w==} + engines: {node: '>=18'} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + inversify@6.0.1: + resolution: {integrity: sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + 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'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-cwd@3.0.0: + resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + javascript-obfuscator@4.1.1: + resolution: {integrity: sha512-gt+KZpIIrrxXHEQGD8xZrL8mTRwRY0U76/xz/YX0gZdPrSqQhT/c7dYLASlLlecT3r+FxE7je/+C0oLnTDCx4A==} + engines: {node: '>=12.22.0'} + hasBin: true + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + jiti@2.0.0-beta.2: + resolution: {integrity: sha512-c+PHQZakiQuMKbnhvrjZUvrK6E/AfmTOf4P+E3Y4FNVHcNMX9e/XrnbEvO+m4wS6ZjsvhHh/POQTlfy8uXFc0A==} + hasBin: true + + js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + libphonenumber-js@1.11.7: + resolution: {integrity: sha512-x2xON4/Qg2bRIS11KIN9yCNYUjhtiEjNyptjX0mX+pyKHecxuJVLIpfX1lq9ZD6CrC/rB+y4GBi18c6CEcUR+A==} + + lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + engines: {node: '>=18.0.0'} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash-unified@1.0.3: + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.groupby@4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isundefined@3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.set@4.3.2: + resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} + + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + + lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} + + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@2.1.3: + resolution: {integrity: sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + n-gram@2.0.2: + resolution: {integrity: sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==} + + namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + + node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + numeral@2.0.6: + resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==} + + numfmt@2.5.2: + resolution: {integrity: sha512-VXrB2bpU9Xa0oCHq8IsqE2CcUx5OLupLC3oryFT4DB9e/xe+OnUzBndhXfNHUzxFE4DYI3Sx4OtzS1Sdaf7tEw==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + opencollective-postinstall@2.0.3: + resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} + hasBin: true + + opentype.js@1.3.4: + resolution: {integrity: sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==} + engines: {node: '>= 8.0.0'} + hasBin: true + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + ot-json1@1.0.2: + resolution: {integrity: sha512-IhxkqVWQqlkWULoi/Q2AdzKk0N5vQRbUMUwubFXFCPcY4TsOZjmp2YKrk0/z1TeiECPadWEK060sdFdQ3Grokg==} + + ot-text-unicode@4.0.0: + resolution: {integrity: sha512-W7ZLU8QXesY2wagYFv47zErXud3E93FGImmSGJsQnBzE+idcPPyo2u2KMilIrTwBh4pbCizy71qRjmmV6aDhcQ==} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-to-regexp@7.1.0: + resolution: {integrity: sha512-ZToe+MbUF4lBqk6dV8GKot4DKfzrxXsplOddH8zN3YK+qw9/McvP7+4ICjZvOne0jQhN4eJwHsX6tT0Ns19fvw==} + engines: {node: '>=16'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pinia@2.2.2: + resolution: {integrity: sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-html@1.7.0: + resolution: {integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==} + engines: {node: ^12 || >=14} + + postcss-prefix-selector@1.16.1: + resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==} + peerDependencies: + postcss: '>4 <9' + + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + + postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + + posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + + posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + + posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + + posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + + posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + + preact@10.23.2: + resolution: {integrity: sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc-dialog@9.6.0: + resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dropdown@4.2.0: + resolution: {integrity: sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + + rc-input-number@9.2.0: + resolution: {integrity: sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input@1.6.3: + resolution: {integrity: sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-menu@9.15.1: + resolution: {integrity: sha512-UKporqU6LPfHnpPmtP6hdEK4iO5Q+b7BRv/uRpxdIyDGplZy9jwUjsnpev5bs3PQKB0H0n34WAPDfjAfn3kAPA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-motion@2.9.2: + resolution: {integrity: sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-notification@5.6.0: + resolution: {integrity: sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-overflow@1.3.2: + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-picker@4.6.14: + resolution: {integrity: sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + + rc-resize-observer@1.4.0: + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-segmented@2.4.1: + resolution: {integrity: sha512-KUi+JJFdKnumV9iXlm+BJ00O4NdVBp2TEexLCk6bK1x/RH83TvYKQMzIz/7m3UTRPD08RM/8VG/JNjWgWbd4cw==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-select@14.15.1: + resolution: {integrity: sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-textarea@1.8.1: + resolution: {integrity: sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tooltip@6.2.0: + resolution: {integrity: sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-util@5.43.0: + resolution: {integrity: sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-virtual-list@3.14.5: + resolution: {integrity: sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-draggable@4.4.6: + resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + + react-grid-layout@1.4.4: + resolution: {integrity: sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-mentions@4.4.10: + resolution: {integrity: sha512-JHiQlgF1oSZR7VYPjq32wy97z1w1oE4x10EuhKjPr4WUKhVzG1uFQhQjKqjQkbVqJrmahf+ldgBTv36NrkpKpA==} + peerDependencies: + react: '>=16.8.3' + react-dom: '>=16.8.3' + + react-resizable@3.0.5: + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} + peerDependencies: + react: '>= 16.3' + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + + readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reflect-metadata@0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + + regedit@5.1.3: + resolution: {integrity: sha512-sHsmh8FuioHve3lMmN6gNHdKmgGRxMGzgJ/qfzRQgsPx+Zv8kdlQ0y04JAg/6MqQC/7NRBZ1G5Qiccs1Q9tNtg==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp-util@2.0.0: + resolution: {integrity: sha512-HbLDPF+RkBiPjlzmU0hnUQd4abs56JiA2riHxNVfxjagcGwIy3Xhc2Yyx2+0/p5QeM0kj270nEOlTj57HvWXFA==} + engines: {node: '>=16'} + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + + rollup-plugin-esbuild@6.1.1: + resolution: {integrity: sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==} + engines: {node: '>=14.18.0'} + peerDependencies: + esbuild: '>=0.18.0' + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + + rollup-plugin-obfuscator@1.1.0: + resolution: {integrity: sha512-cMfQIKyGePlfHGGO+rSDhSATMBx7WWxXW/X66c53HylUE/owanTbG6nhttUQOkbdCiQH8tClskNEH/IPRoqZwA==} + peerDependencies: + javascript-obfuscator: '*' + rollup: ^2.56.3||^3.0.0||^4.0.0 + + rollup@4.21.1: + resolution: {integrity: sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + slate-history@0.66.0: + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} + peerDependencies: + slate: '>=0.65.3' + + slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + snabbdom@3.6.2: + resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==} + engines: {node: '>=12.17.0'} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + sockjs-client@1.6.1: + resolution: {integrity: sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==} + engines: {node: '>=12'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + stompjs@2.3.3: + resolution: {integrity: sha512-5l/Ogz0DTFW7TrpHF0LAETGqM/so8UxNJvYZjJKqcX31EVprSQgnGkO80tZctPC/lFBDUrSFiTG3xd0R27XAIA==} + + stream-slicer@0.0.6: + resolution: {integrity: sha512-QsY0LbweYE5L+e+iBQgtkM5WUIf7+kCMA/m2VULv8rEEDDnlDPsPvOHH4nli6uaZOKQEt64u65h0l/eeZo7lCw==} + + strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-template@1.0.0: + resolution: {integrity: sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringz@2.1.0: + resolution: {integrity: sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + substyle@9.4.1: + resolution: {integrity: sha512-VOngeq/W1/UkxiGzeqVvDbGDPM8XgUyJVWjrqeh+GgKqspEPiLYndK+XRcsKUHM5Muz/++1ctJ1QCF/OqRiKWA==} + peerDependencies: + react: '>=16.8.3' + + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + + through2@0.6.5: + resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + + tinyglobby@0.2.5: + resolution: {integrity: sha512-Dlqgt6h0QkoHttG53/WGADNh9QhcjCAIZMTERAVhdpmIBEejSuLI9ZmGKWzB7tweBjlk30+s/ofi4SLmBeTYhw==} + engines: {node: '>=12.0.0'} + + tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + + traverse@0.6.9: + resolution: {integrity: sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==} + engines: {node: '>= 0.4'} + + trigram-utils@2.0.1: + resolution: {integrity: sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==} + + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tsx@4.18.0: + resolution: {integrity: sha512-a1jaKBSVQkd6yEc1/NI7G6yHFfefIcuf3QJST7ZEyn4oQnxLYrZR5uZAM8UrwUa3Ge8suiZHcNS1gNrEvmobqg==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typedarray.prototype.slice@1.0.3: + resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + engines: {node: '>= 0.4'} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unconfig@0.5.5: + resolution: {integrity: sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unicode-regex@4.0.0: + resolution: {integrity: sha512-Zdlz4CqHeCy1pw2J15RmCMw/9QLRBz+BykmI8YNbtbf4pIV8t+1fHKD7y13NhauPEvisi2e5SoaonBNX77opGA==} + engines: {node: '>=16'} + + unicount@1.1.0: + resolution: {integrity: sha512-RlwWt1ywVW4WErPGAVHw/rIuJ2+MxvTME0siJ6lk9zBhpDfExDbspe6SRlWT3qU6AucNjotPl9qAJRVjP7guCQ==} + + unimport@3.11.1: + resolution: {integrity: sha512-DuB1Uoq01LrrXTScxnwOoMSlTXxyKcULguFxbLrMDFcE/CO0ZWHpEiyhovN0mycPt7K6luAHe8laqvwvuoeUPg==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unocss@0.62.3: + resolution: {integrity: sha512-CLS6+JIlBobe/iPTz07pehyGDP8VqGJsiE+ZZ3Xkgib3hw76nCqAQF/4mJ8jVoV4C8KvGyVxmHaSSCFOkWmmZg==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.62.3 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin-auto-import@0.17.8: + resolution: {integrity: sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + + unplugin-icons@0.18.5: + resolution: {integrity: sha512-KVNAohXbZ7tVcG1C3p6QaC7wU9Qrj7etv4XvsMMJAxr5LccQZ+Iuv5LOIv/7GtqXaGN1BuFCqRO1ErsHEgEXdQ==} + peerDependencies: + '@svgr/core': '>=7.0.0' + '@svgx/core': ^1.0.1 + '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + vue-template-compiler: ^2.6.12 + vue-template-es2015-compiler: ^1.9.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@svgx/core': + optional: true + '@vue/compiler-sfc': + optional: true + vue-template-compiler: + optional: true + vue-template-es2015-compiler: + optional: true + + unplugin-vue-components@0.26.0: + resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin@1.12.2: + resolution: {integrity: sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==} + engines: {node: '>=14.0.0'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + + vite-hot-client@0.2.3: + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + + vite-plugin-inspect@0.8.7: + resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-svg-icons@2.0.1: + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + + vite-plugin-vue-devtools@7.3.9: + resolution: {integrity: sha512-ybDV2kepW0NpusvtfbRKHs0pvyrReNcFtL572gyZ6Alox6u5uebYefd2eAG/7mJSU3NPI5UxUH1e/Mof5exdlw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 + + vite-plugin-vue-inspector@5.1.3: + resolution: {integrity: sha512-pMrseXIDP1Gb38mOevY+BvtNGNqiqmqa2pKB99lnLsADQww9w9xMbAfT4GB6RUoaOkSPrtlXqpq2Fq+Dj2AgFg==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + + vite@5.4.2: + resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-i18n@9.14.0: + resolution: {integrity: sha512-LxmpRuCt2rI8gqU+kxeflRZMQn4D5+4M3oP3PWZdowW/ePJraHqhF7p4CuaME52mUxdw3Mmy2yAUKgfZYgCRjA==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + + vue-router@4.4.3: + resolution: {integrity: sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==} + peerDependencies: + vue: ^3.2.0 + + vue@3.4.38: + resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + websocket@1.0.35: + resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} + engines: {node: '>=4.0.0'} + + webstomp-client@1.2.6: + resolution: {integrity: sha512-9HajO6Ki2ViEGIusLZtjM2lcO2VaQUvtXhLQQ4Cm543RLjfTCEgI3sFaiXts3TvfZgrtY/vI/+qUkm2qWD/NVg==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + + window-size@1.1.1: + resolution: {integrity: sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==} + engines: {node: '>= 0.10.0'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + 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 + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaeti@0.0.6: + resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} + engines: {node: '>=0.10.32'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + + zrender@5.6.0: + resolution: {integrity: sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==} + +snapshots: + + 7zip-bin@5.2.0: {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@ant-design/fast-color@2.0.6': + dependencies: + '@babel/runtime': 7.25.4 + + '@antfu/install-pkg@0.3.5': + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.0 + tinyexec: 0.3.0 + + '@antfu/utils@0.7.10': {} + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/compat-data@7.25.4': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.5 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.4 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + convert-source-map: 2.0.0 + debug: 4.3.6 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.5': + dependencies: + '@babel/types': 7.25.4 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-compilation-targets@7.25.2': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.4 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.24.8': + dependencies: + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.8': {} + + '@babel/helpers@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.4 + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.25.4': + dependencies: + '@babel/types': 7.25.4 + + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.25.4': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.4.5': + dependencies: + regenerator-runtime: 0.13.11 + + '@babel/template@7.25.0': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 + + '@babel/traverse@7.25.4': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.5 + '@babel/parser': 7.25.4 + '@babel/template': 7.25.0 + '@babel/types': 7.25.4 + debug: 4.3.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.4': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@ctrl/tinycolor@3.6.1': {} + + '@develar/schema-utils@2.6.5': + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + '@electron/asar@3.2.10': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + + '@electron/get@2.0.3': + dependencies: + debug: 4.3.6 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@electron/notarize@2.2.1': + dependencies: + debug: 4.3.6 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@electron/osx-sign@1.0.5': + dependencies: + compare-version: 0.1.2 + debug: 4.3.6 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/universal@1.5.1': + dependencies: + '@electron/asar': 3.2.10 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.3.6 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@element-plus/icons-vue@2.3.1(vue@3.4.38(typescript@5.5.4))': + dependencies: + vue: 3.4.38(typescript@5.5.4) + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@fast-csv/format@4.3.5': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + + '@fast-csv/parse@4.3.6': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + + '@floating-ui/core@1.6.7': + dependencies: + '@floating-ui/utils': 0.2.7 + + '@floating-ui/dom@1.6.10': + dependencies: + '@floating-ui/core': 1.6.7 + '@floating-ui/utils': 0.2.7 + + '@floating-ui/utils@0.2.7': {} + + '@grpc/grpc-js@1.11.1': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@iconify-json/ep@1.1.16': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.1.32': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.3.6 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.7.1 + transitivePeerDependencies: + - supports-color + + '@inquirer/checkbox@2.4.7': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.2 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/confirm@3.1.22': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + + '@inquirer/core@9.0.10': + dependencies: + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.2 + '@types/mute-stream': 0.0.4 + '@types/node': 22.5.4 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/editor@2.1.22': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + external-editor: 3.1.0 + + '@inquirer/expand@2.1.22': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/figures@1.0.5': {} + + '@inquirer/input@2.2.9': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + + '@inquirer/number@1.0.10': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + + '@inquirer/password@2.1.22': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + ansi-escapes: 4.3.2 + + '@inquirer/prompts@5.3.8': + dependencies: + '@inquirer/checkbox': 2.4.7 + '@inquirer/confirm': 3.1.22 + '@inquirer/editor': 2.1.22 + '@inquirer/expand': 2.1.22 + '@inquirer/input': 2.2.9 + '@inquirer/number': 1.0.10 + '@inquirer/password': 2.1.22 + '@inquirer/rawlist': 2.2.4 + '@inquirer/search': 1.0.7 + '@inquirer/select': 2.4.7 + + '@inquirer/rawlist@2.2.4': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/type': 1.5.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/search@1.0.7': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/select@2.4.7': + dependencies: + '@inquirer/core': 9.0.10 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.2 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/type@1.5.2': + dependencies: + mute-stream: 1.0.0 + + '@intlify/core-base@9.14.0': + dependencies: + '@intlify/message-compiler': 9.14.0 + '@intlify/shared': 9.14.0 + + '@intlify/message-compiler@9.14.0': + dependencies: + '@intlify/shared': 9.14.0 + source-map-js: 1.2.0 + + '@intlify/shared@9.14.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@javascript-obfuscator/escodegen@2.3.0': + dependencies: + '@javascript-obfuscator/estraverse': 5.4.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + + '@javascript-obfuscator/estraverse@5.4.0': {} + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.1.0 + + '@malept/cross-spawn-promise@1.1.1': + dependencies: + cross-spawn: 7.0.3 + + '@malept/flatpak-bundler@0.4.0': + dependencies: + debug: 4.3.6 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.25': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/fast-color': 2.0.6 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/mini-decimal@1.1.0': + dependencies: + '@babel/runtime': 7.25.4 + + '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/trigger@2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rollup/plugin-alias@5.1.0(rollup@4.21.1)': + dependencies: + slash: 4.0.0 + optionalDependencies: + rollup: 4.21.1 + + '@rollup/plugin-commonjs@26.0.1(rollup@4.21.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 10.4.5 + is-reference: 1.2.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.21.1 + + '@rollup/plugin-json@6.1.0(rollup@4.21.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + optionalDependencies: + rollup: 4.21.1 + + '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 4.21.1 + + '@rollup/plugin-replace@5.0.7(rollup@4.21.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.21.1 + + '@rollup/plugin-typescript@11.1.6(rollup@4.21.1)(tslib@2.7.0)(typescript@5.5.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + resolve: 1.22.8 + typescript: 5.5.4 + optionalDependencies: + rollup: 4.21.1 + tslib: 2.7.0 + + '@rollup/pluginutils@5.1.0(rollup@4.21.1)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.21.1 + + '@rollup/rollup-android-arm-eabi@4.21.1': + optional: true + + '@rollup/rollup-android-arm64@4.21.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.21.1': + optional: true + + '@rollup/rollup-darwin-x64@4.21.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.21.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.21.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.21.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.21.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.21.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.21.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.21.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.21.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.21.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.21.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.21.1': + optional: true + + '@sindresorhus/is@4.6.0': {} + + '@sxzz/popperjs-es@2.11.7': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@tootallnate/once@2.0.0': {} + + '@transloadit/prettier-bytes@0.0.7': {} + + '@trysound/sax@0.2.0': {} + + '@types/adm-zip@0.5.5': + dependencies: + '@types/node': 22.5.4 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.5.4 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 22.5.4 + '@types/responselike': 1.0.3 + + '@types/color-convert@2.0.3': + dependencies: + '@types/color-name': 1.1.4 + + '@types/color-name@1.1.4': {} + + '@types/color@3.0.6': + dependencies: + '@types/color-convert': 2.0.3 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.5.4 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree@1.0.5': {} + + '@types/event-emitter@0.3.5': {} + + '@types/express-serve-static-core@4.19.5': + dependencies: + '@types/node': 22.5.4 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express-ws@3.0.5': + dependencies: + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.5 + '@types/ws': 8.5.12 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 22.5.4 + + '@types/fs-extra@9.0.13': + dependencies: + '@types/node': 22.5.4 + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-errors@2.0.4': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 22.5.4 + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.5.4 + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.7 + + '@types/lodash.mergewith@4.6.9': + dependencies: + '@types/lodash': 4.17.7 + + '@types/lodash@4.17.7': {} + + '@types/mime@1.3.5': {} + + '@types/minimatch@3.0.5': {} + + '@types/minimist@1.2.5': {} + + '@types/ms@0.7.34': {} + + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 22.5.4 + + '@types/node@14.18.63': {} + + '@types/node@20.16.1': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.5.4': + dependencies: + undici-types: 6.19.8 + + '@types/nprogress@0.2.3': {} + + '@types/path-browserify@1.0.3': {} + + '@types/plist@3.0.5': + dependencies: + '@types/node': 22.5.4 + xmlbuilder: 15.1.1 + optional: true + + '@types/prop-types@15.7.12': {} + + '@types/qs@6.9.15': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-mentions@4.4.0': + dependencies: + '@types/react': 18.3.5 + + '@types/react@18.3.5': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + '@types/resolve@1.20.2': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.5.4 + + '@types/semver@7.5.8': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.5.4 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.5.4 + '@types/send': 0.17.4 + + '@types/sockjs-client@1.5.4': {} + + '@types/sortablejs@1.15.8': {} + + '@types/stompjs@2.3.9': + dependencies: + '@types/node': 22.5.4 + + '@types/svgo@2.6.4': + dependencies: + '@types/node': 22.5.4 + + '@types/uuid@10.0.0': {} + + '@types/validator@13.12.1': {} + + '@types/verror@1.10.10': + optional: true + + '@types/web-bluetooth@0.0.16': {} + + '@types/wrap-ansi@3.0.0': {} + + '@types/ws@8.5.12': + dependencies: + '@types/node': 22.5.4 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.5.4 + optional: true + + '@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1)': + dependencies: + '@types/lodash.mergewith': 4.6.9 + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@wendellhu/redi': 0.16.1 + lodash.mergewith: 4.6.2 + nanoid: 5.0.7 + numeral: 2.0.6 + numfmt: 2.5.2 + ot-json1: 1.0.2 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/data-validation@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/react-mentions': 4.4.0 + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + dayjs: 1.11.13 + rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-dropdown: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input-number: 9.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-picker: 4.6.14(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-segmented: 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-select: 14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-textarea: 1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tooltip: 6.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-grid-layout: 1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-mentions: 4.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - date-fns + - luxon + - moment + + '@univerjs/docs-hyper-link@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/docs-ui@0.2.11(ttgjob7j3j75xmtnyfmdn23pk4)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/docs@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/drawing-ui@0.2.11(semu3nlmxnkrrxkcijgkw5znqm)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/drawing': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/drawing@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ot-json1: 1.0.2 + rxjs: 7.8.1 + transitivePeerDependencies: + - react + - react-dom + + '@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/rpc': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + decimal.js: 10.4.3 + numfmt: 2.5.2 + rxjs: 7.8.1 + + '@univerjs/engine-numfmt@0.2.11': {} + + '@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@floating-ui/dom': 1.6.10 + '@floating-ui/utils': 0.2.7 + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + cjk-regex: 3.1.0 + franc-min: 6.2.0 + opentype.js: 1.3.4 + rxjs: 7.8.1 + + '@univerjs/facade@0.2.11(ajka3zlkffbbqy6tockfi7zsr4)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/data-validation': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/network': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-crosshair-highlight': 0.2.11(vrsx45dguhibv7tukar6pbtoqi) + '@univerjs/sheets-data-validation': 0.2.11(ygpdcebi3dckn6ghawdkfr2h4a) + '@univerjs/sheets-drawing-ui': 0.2.11(vaqxpsdjvtitnxy3a3whu3scpm) + '@univerjs/sheets-filter': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-filter-ui': 0.2.11(34kdd6svzvrzfcqifv2xqcfwbq) + '@univerjs/sheets-formula': 0.2.11(qcm54sxq4znfurnc2o2omzvhwq) + '@univerjs/sheets-numfmt': 0.2.11(xblmg67qgglsp2tx2cxsl7zme4) + '@univerjs/sheets-thread-comment': 0.2.11(kczhii6qqwczre2be5ym66l2oy) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/thread-comment': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/thread-comment-ui': 0.2.11(kplje42oytrakoxuex6jwrxalq) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + rxjs: 7.8.1 + + '@univerjs/find-replace@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/ui@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/icons@0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@univerjs/network@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/protocol@0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1)': + dependencies: + '@grpc/grpc-js': 1.11.1 + rxjs: 7.8.1 + + '@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/sheets-conditional-formatting-ui@0.2.11(esblm2llhoq5d7mhjqvgd2khuu)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-conditional-formatting': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(dayjs@1.11.13)(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + lodash.get: 4.4.2 + lodash.set: 4.3.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-grid-layout: 1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/sheets-conditional-formatting@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(dayjs@1.11.13)(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + dayjs: 1.11.13 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/sheets-crosshair-highlight@0.2.11(vrsx45dguhibv7tukar6pbtoqi)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-data-validation@0.2.11(ygpdcebi3dckn6ghawdkfr2h4a)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/data-validation': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-formula': 0.2.11(qcm54sxq4znfurnc2o2omzvhwq) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + dayjs: 1.11.13 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + - react-dom + + '@univerjs/sheets-drawing-ui@0.2.11(vaqxpsdjvtitnxy3a3whu3scpm)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/drawing': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + '@univerjs/drawing-ui': 0.2.11(semu3nlmxnkrrxkcijgkw5znqm) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-drawing': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/drawing@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-drawing@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/drawing@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1))': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/drawing': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + + '@univerjs/sheets-filter-ui@0.2.11(34kdd6svzvrzfcqifv2xqcfwbq)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/rpc': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-filter': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rxjs: 7.8.1 + + '@univerjs/sheets-filter@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/sheets-find-replace@0.2.11(jefe3lyt2sugquh7nzcx24ulpu)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/find-replace': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/ui@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/sheets-formula@0.2.11(qcm54sxq4znfurnc2o2omzvhwq)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/rpc': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-hyper-link-ui@0.2.11(knq3mfhrn4qmx6eoprmng26oiq)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/docs-hyper-link': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-hyper-link': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-hyper-link@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-hyper-link': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/sheets-numfmt@0.2.11(xblmg67qgglsp2tx2cxsl7zme4)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-numfmt': 0.2.11 + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-sort-ui@0.2.11(joluz6icy5f2curalllyfkfziq)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-sort': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-sort@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + + '@univerjs/sheets-thread-comment-base@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/thread-comment@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/thread-comment': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + + '@univerjs/sheets-thread-comment@0.2.11(kczhii6qqwczre2be5ym66l2oy)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-thread-comment-base': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/thread-comment@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/thread-comment': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/thread-comment-ui': 0.2.11(kplje42oytrakoxuex6jwrxalq) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets-ui@0.2.11(2qxhltaal4gxrvh6so67ib4zim)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + - react-dom + + '@univerjs/sheets-zen-editor@0.2.11(nraalvjwgwpi4qi6eismso4yme)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/docs-ui': 0.2.11(ttgjob7j3j75xmtnyfmdn23pk4) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets-ui': 0.2.11(2qxhltaal4gxrvh6so67ib4zim) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - react-dom + + '@univerjs/sheets@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-numfmt': 0.2.11 + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/rpc': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/sheets': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-numfmt@0.2.11)(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/thread-comment-ui@0.2.11(kplje42oytrakoxuex6jwrxalq)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/docs': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + '@univerjs/thread-comment': 0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + dayjs: 1.11.13 + react: 18.3.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + - react-dom + + '@univerjs/thread-comment@0.2.11(@grpc/grpc-js@1.11.1)(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/protocol': 0.1.39-alpha.15(@grpc/grpc-js@1.11.1)(rxjs@7.8.1) + rxjs: 7.8.1 + transitivePeerDependencies: + - '@grpc/grpc-js' + + '@univerjs/ui@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4)': + dependencies: + '@univerjs/core': 0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1) + '@univerjs/design': 0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/engine-formula': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/engine-render': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1) + '@univerjs/icons': 0.1.77(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@univerjs/ui': 0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/design@0.2.11(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@univerjs/engine-formula@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(@univerjs/rpc@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(rxjs@7.8.1))(@univerjs/engine-render@0.2.11(@univerjs/core@0.2.11(@grpc/grpc-js@1.11.1)(react@18.3.1)(rxjs@7.8.1))(rxjs@7.8.1))(clsx@2.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.1)(typescript@5.5.4) + clsx: 2.1.1 + localforage: 1.10.0 + rc-notification: 5.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rxjs: 7.8.1 + optionalDependencies: + vue: 3.4.38(typescript@5.5.4) + transitivePeerDependencies: + - typescript + + '@univerjs/vite-plugin@0.5.0': {} + + '@unocss/astro@0.62.3(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/reset': 0.62.3 + '@unocss/vite': 0.62.3(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + optionalDependencies: + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - rollup + - supports-color + + '@unocss/cli@0.62.3(rollup@4.21.1)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/preset-uno': 0.62.3 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + magic-string: 0.30.11 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + tinyglobby: 0.2.5 + transitivePeerDependencies: + - rollup + - supports-color + + '@unocss/config@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + unconfig: 0.5.5 + transitivePeerDependencies: + - supports-color + + '@unocss/core@0.62.3': {} + + '@unocss/extractor-arbitrary-variants@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/inspector@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 + gzip-size: 6.0.0 + sirv: 2.0.4 + + '@unocss/postcss@0.62.3(postcss@8.4.41)': + dependencies: + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 + css-tree: 2.3.1 + magic-string: 0.30.11 + postcss: 8.4.41 + tinyglobby: 0.2.5 + transitivePeerDependencies: + - supports-color + + '@unocss/preset-attributify@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/preset-icons@0.62.3': + dependencies: + '@iconify/utils': 2.1.32 + '@unocss/core': 0.62.3 + ofetch: 1.3.4 + transitivePeerDependencies: + - supports-color + + '@unocss/preset-mini@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/extractor-arbitrary-variants': 0.62.3 + '@unocss/rule-utils': 0.62.3 + + '@unocss/preset-tagify@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/preset-typography@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 + + '@unocss/preset-uno@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/preset-wind': 0.62.3 + '@unocss/rule-utils': 0.62.3 + + '@unocss/preset-web-fonts@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + ofetch: 1.3.4 + + '@unocss/preset-wind@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/rule-utils': 0.62.3 + + '@unocss/reset@0.62.3': {} + + '@unocss/rule-utils@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + magic-string: 0.30.11 + + '@unocss/scope@0.62.3': {} + + '@unocss/transformer-attributify-jsx-babel@0.62.3': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@unocss/core': 0.62.3 + transitivePeerDependencies: + - supports-color + + '@unocss/transformer-attributify-jsx@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/transformer-compile-class@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/transformer-directives@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + '@unocss/rule-utils': 0.62.3 + css-tree: 2.3.1 + + '@unocss/transformer-variant-group@0.62.3': + dependencies: + '@unocss/core': 0.62.3 + + '@unocss/vite@0.62.3(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + '@unocss/config': 0.62.3 + '@unocss/core': 0.62.3 + '@unocss/inspector': 0.62.3 + '@unocss/scope': 0.62.3 + '@unocss/transformer-directives': 0.62.3 + chokidar: 3.6.0 + magic-string: 0.30.11 + tinyglobby: 0.2.5 + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - rollup + - supports-color + + '@uppy/companion-client@2.2.2': + dependencies: + '@uppy/utils': 4.1.3 + namespace-emitter: 2.0.1 + + '@uppy/core@2.3.4': + dependencies: + '@transloadit/prettier-bytes': 0.0.7 + '@uppy/store-default': 2.1.1 + '@uppy/utils': 4.1.3 + lodash.throttle: 4.1.1 + mime-match: 1.0.2 + namespace-emitter: 2.0.1 + nanoid: 3.3.7 + preact: 10.23.2 + + '@uppy/store-default@2.1.1': {} + + '@uppy/utils@4.1.3': + dependencies: + lodash.throttle: 4.1.1 + + '@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4)': + dependencies: + '@uppy/companion-client': 2.2.2 + '@uppy/core': 2.3.4 + '@uppy/utils': 4.1.3 + nanoid: 3.3.7 + + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + vue: 3.4.38(typescript@5.5.4) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + dependencies: + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + vue: 3.4.38(typescript@5.5.4) + + '@vue/babel-helper-vue-transform-on@1.2.2': {} + + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.25.2) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/parser': 7.25.4 + '@vue/compiler-sfc': 3.4.38 + + '@vue/compiler-core@3.4.38': + dependencies: + '@babel/parser': 7.25.4 + '@vue/shared': 3.4.38 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.38': + dependencies: + '@vue/compiler-core': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/compiler-sfc@3.4.38': + dependencies: + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.4.38 + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.41 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.38': + dependencies: + '@vue/compiler-dom': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/devtools-api@6.6.3': {} + + '@vue/devtools-core@7.3.9(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@vue/devtools-kit': 7.3.9 + '@vue/devtools-shared': 7.3.9 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + vue: 3.4.38(typescript@5.5.4) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.3.9': + dependencies: + '@vue/devtools-shared': 7.3.9 + birpc: 0.2.17 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + + '@vue/devtools-shared@7.3.9': + dependencies: + rfdc: 1.4.1 + + '@vue/reactivity@3.4.38': + dependencies: + '@vue/shared': 3.4.38 + + '@vue/runtime-core@3.4.38': + dependencies: + '@vue/reactivity': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/runtime-dom@3.4.38': + dependencies: + '@vue/reactivity': 3.4.38 + '@vue/runtime-core': 3.4.38 + '@vue/shared': 3.4.38 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 + vue: 3.4.38(typescript@5.5.4) + + '@vue/shared@3.4.38': {} + + '@vueuse/core@9.13.0(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.4.38(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@9.13.0(vue@3.4.38(typescript@5.5.4))': + dependencies: + vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + is-url: 1.2.4 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + prismjs: 1.29.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@types/event-emitter': 0.3.5 + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + dom7: 3.0.0 + event-emitter: 0.3.5 + html-void-elements: 2.0.1 + i18next: 20.6.1 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + scroll-into-view-if-needed: 2.2.31 + slate: 0.72.8 + slate-history: 0.66.0(slate@0.72.8) + snabbdom: 3.6.2 + + '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@wangeditor/editor': 5.1.23 + vue: 3.4.38(typescript@5.5.4) + + '@wangeditor/editor@5.1.23': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + lodash.foreach: 4.5.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wendellhu/redi@0.16.1': {} + + '@xmldom/xmldom@0.8.10': {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn@8.12.1: {} + + acorn@8.8.2: {} + + adm-zip@0.5.15: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + aggregate-error@4.0.1: + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + 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 + + animate.css@4.1.1: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@2.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@2.2.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + app-builder-bin@4.0.0: {} + + app-builder-lib@24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)): + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.2.1 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.5.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chromium-pickle-js: 0.2.0 + debug: 4.3.6 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + ejs: 3.1.10 + electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3) + electron-publish: 24.13.1 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.2 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.6.3 + tar: 6.2.1 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + + argparse@2.0.1: {} + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-differ@3.0.0: {} + + array-flatten@1.1.1: {} + + array-union@2.1.0: {} + + array-unique@0.3.2: {} + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + arrify@2.0.1: {} + + assert-plus@1.0.0: + optional: true + + assert@2.0.0: + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.6 + util: 0.12.5 + + assign-symbols@1.0.0: {} + + astral-regex@2.0.0: + optional: true + + async-exit-hook@2.0.1: {} + + async-validator@4.2.5: {} + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + atob@2.1.2: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axios@1.7.5: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + big-integer@1.6.52: {} + + big.js@5.2.2: {} + + binary-extensions@2.3.0: {} + + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + + birpc@0.2.17: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bluebird-lst@1.0.9: + dependencies: + bluebird: 3.7.2 + + bluebird@3.4.7: {} + + bluebird@3.7.2: {} + + body-parser@1.20.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + boolbase@1.0.0: {} + + boolean@3.2.0: + optional: true + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001653 + electron-to-chromium: 1.5.13 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + buffer-crc32@0.2.13: {} + + buffer-equal@1.0.1: {} + + buffer-from@1.1.2: {} + + buffer-indexof-polyfill@1.0.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffers@0.1.1: {} + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.2 + optional: true + + builder-util-runtime@9.2.4: + dependencies: + debug: 4.3.6 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + builder-util@24.13.1: + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + + builtin-modules@3.3.0: {} + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + bundle-require@5.0.0(esbuild@0.23.1): + dependencies: + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + + bytes@3.1.2: {} + + cac@6.7.14: {} + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + call-me-maybe@1.0.2: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001653: {} + + cfonts@3.3.0: + dependencies: + supports-color: 8.1.1 + window-size: 1.1.1 + + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + + chalk@1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + chance@1.1.9: {} + + char-regex@1.0.2: {} + + chardet@0.7.0: {} + + charenc@0.0.2: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + 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.3 + + chownr@2.0.0: {} + + chromium-pickle-js@0.2.0: {} + + ci-info@3.9.0: {} + + cjk-regex@3.1.0: + dependencies: + regexp-util: 2.0.0 + unicode-regex: 4.0.0 + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + class-validator@0.14.1: + dependencies: + '@types/validator': 13.12.1 + libphonenumber-js: 1.11.7 + validator: 13.12.0 + + classnames@2.5.1: {} + + clean-stack@4.2.0: + dependencies: + escape-string-regexp: 5.0.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + optional: true + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + clone@2.1.2: {} + + clsx@1.2.1: {} + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@10.0.0: {} + + commander@5.1.0: {} + + commander@7.2.0: {} + + commondir@1.0.1: {} + + compare-version@0.1.2: {} + + component-emitter@1.3.1: {} + + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compute-scroll-into-view@1.0.20: {} + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + config-file-ts@0.2.6: + dependencies: + glob: 10.4.5 + typescript: 5.5.4 + + consola@3.2.3: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.6.0: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + copy-descriptor@0.1.1: {} + + core-util-is@1.0.2: + optional: true + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + crc-32@1.2.2: {} + + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + crc@3.8.0: + dependencies: + buffer: 5.7.1 + optional: true + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.3 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypt@0.0.2: {} + + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + + css-what@6.1.0: {} + + csso@4.2.0: + dependencies: + css-tree: 1.1.3 + + csstype@3.1.3: {} + + d@1.0.2: + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + dayjs@1.11.13: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + decimal.js@10.4.3: {} + + decode-uri-component@0.2.2: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-lazy-prop@3.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + defu@6.1.4: {} + + del@7.1.0: + dependencies: + globby: 13.2.2 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 3.0.0 + is-path-inside: 4.0.0 + p-map: 5.5.0 + rimraf: 3.0.2 + slash: 4.0.0 + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + destroy@1.2.0: {} + + detect-node@2.1.0: + optional: true + + dir-compare@3.3.0: + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + dmg-license@1.0.11: + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.10 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + optional: true + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.25.4 + csstype: 3.1.3 + + dom-serializer@0.2.2: + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + dom7@3.0.0: + dependencies: + ssr-window: 3.0.0 + + domelementtype@1.3.1: {} + + domelementtype@2.3.0: {} + + domhandler@2.4.2: + dependencies: + domelementtype: 1.3.1 + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@1.7.0: + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dotenv-expand@5.1.0: {} + + dotenv@16.4.5: {} + + dotenv@9.0.2: {} + + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + echarts@5.5.1: + dependencies: + tslib: 2.3.0 + zrender: 5.6.0 + + ee-first@1.1.1: {} + + ejs@3.1.10: + dependencies: + jake: 10.9.2 + + electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)) + archiver: 5.3.2 + builder-util: 24.13.1 + fs-extra: 10.1.0 + transitivePeerDependencies: + - dmg-builder + - supports-color + + electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + electron-devtools-vendor@3.0.0: {} + + electron-log@5.1.7: {} + + electron-publish@24.13.1: + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + + electron-to-chromium@1.5.13: {} + + electron-updater@6.2.1: + dependencies: + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.6.3 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + + electron@32.0.1: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.16.1 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + electron_updater_node_cli@0.3.3: + dependencies: + chalk: 4.1.2 + + electron_updater_node_core@0.3.3: {} + + element-plus@2.8.1(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@ctrl/tinycolor': 3.6.1 + '@element-plus/icons-vue': 2.3.1(vue@3.4.38(typescript@5.5.4)) + '@floating-ui/dom': 1.6.10 + '@popperjs/core': '@sxzz/popperjs-es@2.11.7' + '@types/lodash': 4.17.7 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 9.13.0(vue@3.4.38(typescript@5.5.4)) + async-validator: 4.2.5 + dayjs: 1.11.13 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.4.38(typescript@5.5.4) + transitivePeerDependencies: + - '@vue/composition-api' + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojis-list@3.0.0: {} + + encodeurl@1.0.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + entities@1.1.2: {} + + entities@2.2.0: {} + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + environment@1.1.0: {} + + err-code@2.0.3: {} + + error-stack-parser-es@0.1.5: {} + + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + es5-ext@0.10.64: + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + + es6-error@4.1.1: + optional: true + + es6-iterator@2.0.3: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + + es6-object-assign@1.1.0: {} + + es6-symbol@3.1.4: + dependencies: + d: 1.0.2 + ext: 1.7.0 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.1.2: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: + optional: true + + escape-string-regexp@5.0.0: {} + + eslint-scope@7.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.3.0: {} + + esniff@2.0.1: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + + esprima@4.0.1: {} + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-emitter@0.3.5: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + + eventemitter3@5.0.1: {} + + eventsource@2.0.2: {} + + exceljs@4.4.0: + dependencies: + archiver: 5.3.2 + dayjs: 1.11.13 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.3 + unzipper: 0.10.14 + uuid: 8.3.2 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + express-ws@5.0.2(bufferutil@4.0.8)(express@4.19.2)(utf-8-validate@5.0.10): + dependencies: + express: 4.19.2 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + express@4.19.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + ext@1.7.0: + dependencies: + type: 2.7.3 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + extract-zip@2.0.1: + dependencies: + debug: 4.3.6 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + extsprintf@1.4.1: + optional: true + + fast-csv@4.3.6: + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + + fast-deep-equal@3.1.3: {} + + fast-equals@4.0.3: {} + + fast-glob@3.3.2: + 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.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fdir@6.3.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + follow-redirects@1.15.6: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + for-in@1.0.2: {} + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + franc-min@6.2.0: + dependencies: + trigram-utils: 2.0.1 + + fresh@0.5.2: {} + + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-stream@5.2.0: + dependencies: + pump: 3.0.0 + + get-stream@8.0.1: {} + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + get-value@2.0.6: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 + + glob@7.2.3: + 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 + + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.3 + serialize-error: 7.0.1 + optional: true + + globals@11.12.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 4.0.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + has-ansi@2.0.0: + dependencies: + ansi-regex: 2.1.1 + + has-bigints@1.0.2: {} + + has-flag@1.0.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hookable@5.5.3: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + html-tags@3.3.1: {} + + html-void-elements@2.0.1: {} + + htmlparser2@3.10.1: + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + http-cache-semantics@4.1.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-parser-js@0.5.8: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + human-signals@5.0.0: {} + + i18next@20.6.1: + dependencies: + '@babel/runtime': 7.25.4 + + iconv-corefoundation@1.1.7: + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + optional: true + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + if-async@3.7.4: {} + + ignore@5.3.2: {} + + image-size@0.5.5: {} + + immediate@3.0.6: {} + + immer@9.0.21: {} + + immutable@4.3.7: {} + + importx@0.4.3: + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + debug: 4.3.6 + esbuild: 0.23.1 + jiti: 2.0.0-beta.2 + jiti-v1: jiti@1.21.6 + pathe: 1.1.2 + pkg-types: 1.2.0 + tsx: 4.18.0 + transitivePeerDependencies: + - supports-color + + indent-string@5.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + inquirer@10.1.8: + dependencies: + '@inquirer/prompts': 5.3.8 + '@inquirer/type': 1.5.2 + '@types/mute-stream': 0.0.4 + ansi-escapes: 4.3.2 + mute-stream: 1.0.0 + run-async: 3.0.0 + rxjs: 7.8.1 + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + inversify@6.0.1: {} + + ipaddr.js@1.9.1: {} + + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-arrayish@0.3.2: {} + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-buffer@1.1.6: {} + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-callable@1.2.7: {} + + is-ci@3.0.1: + dependencies: + ci-info: 3.9.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-docker@3.0.0: {} + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hotkey@0.2.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-module@1.0.0: {} + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@7.0.0: {} + + is-path-cwd@3.0.0: {} + + is-path-inside@4.0.0: {} + + is-plain-obj@1.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-plain-object@5.0.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-stream@3.0.0: {} + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-typedarray@1.0.0: + optional: true + + is-url@1.2.4: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-what@4.1.16: {} + + is-windows@1.0.2: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isbinaryfile@4.0.10: {} + + isbinaryfile@5.0.2: {} + + isexe@2.0.0: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.1: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + javascript-obfuscator@4.1.1: + dependencies: + '@javascript-obfuscator/escodegen': 2.3.0 + '@javascript-obfuscator/estraverse': 5.4.0 + acorn: 8.8.2 + assert: 2.0.0 + chalk: 4.1.2 + chance: 1.1.9 + class-validator: 0.14.1 + commander: 10.0.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.3.0 + fast-deep-equal: 3.1.3 + inversify: 6.0.1 + js-string-escape: 1.0.1 + md5: 2.3.0 + mkdirp: 2.1.3 + multimatch: 5.0.0 + opencollective-postinstall: 2.0.3 + process: 0.11.10 + reflect-metadata: 0.1.13 + source-map-support: 0.5.21 + string-template: 1.0.0 + stringz: 2.1.0 + tslib: 2.5.0 + + jiti@1.21.6: {} + + jiti@2.0.0-beta.2: {} + + js-base64@2.6.4: {} + + js-string-escape@1.0.1: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@2.5.2: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stringify-safe@5.0.1: + optional: true + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@5.1.0: {} + + kind-of@6.0.3: {} + + kolorist@1.8.0: {} + + lazy-val@1.0.5: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + libphonenumber-js@1.11.7: {} + + lie@3.1.1: + dependencies: + immediate: 3.0.6 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + listenercount@1.0.1: {} + + listr2@8.2.4: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + load-tsconfig@0.2.5: {} + + loader-utils@1.4.2: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + + local-pkg@0.4.3: {} + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.2.0 + + localforage@1.10.0: + dependencies: + lie: 3.1.1 + + lodash-es@4.17.21: {} + + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.21 + lodash-es: 4.17.21 + + lodash.camelcase@4.3.0: {} + + lodash.clonedeep@4.5.0: {} + + lodash.debounce@4.0.8: {} + + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.flatten@4.4.0: {} + + lodash.foreach@4.5.0: {} + + lodash.get@4.4.2: {} + + lodash.groupby@4.6.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isequal@4.5.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isnil@4.0.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isundefined@3.0.1: {} + + lodash.mergewith@4.6.2: {} + + lodash.set@4.3.2: {} + + lodash.throttle@4.1.1: {} + + lodash.toarray@4.4.0: {} + + lodash.union@4.6.0: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.21: {} + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + long@5.2.3: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lowercase-keys@2.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@11.0.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + map-cache@0.2.2: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + mdn-data@2.0.14: {} + + mdn-data@2.0.30: {} + + media-typer@0.3.0: {} + + memoize-one@6.0.0: {} + + merge-descriptors@1.0.1: {} + + merge-options@1.0.1: + dependencies: + is-plain-obj: 1.1.0 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@3.1.0: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-match@1.0.2: + dependencies: + wildcard: 1.1.2 + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@2.6.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mitt@3.0.1: {} + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mkdirp@2.1.3: {} + + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.4 + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + multimatch@5.0.0: + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + + mute-stream@1.0.0: {} + + n-gram@2.0.2: {} + + namespace-emitter@2.0.1: {} + + nanoid@3.3.7: {} + + nanoid@5.0.7: {} + + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + negotiator@0.6.3: {} + + next-tick@1.1.0: {} + + node-addon-api@1.7.2: + optional: true + + node-fetch-native@1.6.4: {} + + node-gyp-build@4.8.2: + optional: true + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-url@6.1.0: {} + + normalize-wheel-es@1.2.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nprogress@0.2.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + numeral@2.0.6: {} + + numfmt@2.5.2: {} + + object-assign@4.1.1: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + ofetch@1.3.4: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + opencollective-postinstall@2.0.3: {} + + opentype.js@1.3.4: + dependencies: + string.prototype.codepointat: 0.2.1 + tiny-inflate: 1.0.3 + + optionator@0.8.3: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + os-tmpdir@1.0.2: {} + + ot-json1@1.0.2: + dependencies: + ot-text-unicode: 4.0.0 + + ot-text-unicode@4.0.0: + dependencies: + unicount: 1.1.0 + + p-cancelable@2.1.1: {} + + p-map@5.5.0: + dependencies: + aggregate-error: 4.0.1 + + package-json-from-dist@1.0.0: {} + + package-manager-detector@0.2.0: {} + + pako@1.0.11: {} + + parseurl@1.3.3: {} + + pascalcase@0.1.1: {} + + path-browserify@1.0.1: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.0 + minipass: 7.1.2 + + path-to-regexp@0.1.7: {} + + path-to-regexp@7.1.0: {} + + path-type@4.0.0: {} + + pathe@0.2.0: {} + + pathe@1.1.2: {} + + pend@1.2.0: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pinia@2.2.2(typescript@5.5.4)(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.4.38(typescript@5.5.4) + vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + optionalDependencies: + typescript: 5.5.4 + + pkg-types@1.2.0: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + portfinder@1.0.32: + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + + posix-character-classes@0.1.1: {} + + possible-typed-array-names@1.0.0: {} + + postcss-html@1.7.0: + dependencies: + htmlparser2: 8.0.2 + js-tokens: 9.0.0 + postcss: 8.4.41 + postcss-safe-parser: 6.0.0(postcss@8.4.41) + + postcss-prefix-selector@1.16.1(postcss@5.2.18): + dependencies: + postcss: 5.2.18 + + postcss-safe-parser@6.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-scss@4.0.9(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss@5.2.18: + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 + + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + posthtml-parser@0.2.1: + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + + posthtml-rename-id@1.0.12: + dependencies: + escape-string-regexp: 1.0.5 + + posthtml-render@1.4.0: {} + + posthtml-svg-mode@1.0.3: + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + + posthtml@0.9.2: + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + + preact@10.23.2: {} + + prelude-ls@1.1.2: {} + + prismjs@1.29.0: {} + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + progress@2.0.3: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.5.4 + long: 5.2.3 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@1.1.0: {} + + pump@3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + qs@6.11.0: + dependencies: + side-channel: 1.0.6 + + query-string@4.3.4: + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-dropdown@4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input-number@9.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/mini-decimal': 1.1.0 + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input@1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-menu@9.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-motion@2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-notification@5.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-overflow@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-picker@4.6.14(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + dayjs: 1.11.13 + + rc-resize-observer@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + resize-observer-polyfill: 1.5.1 + + rc-segmented@2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-select@14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-textarea@1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tooltip@6.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-util@5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + + rc-virtual-list@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-draggable@4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-grid-layout@1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 2.1.1 + fast-equals: 4.0.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + resize-observer-polyfill: 1.5.1 + + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-mentions@4.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.4.5 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + substyle: 9.4.1(react@18.3.1) + + react-resizable@3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react-dom + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-config-file@6.3.2: + dependencies: + config-file-ts: 0.2.6 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + + readable-stream@1.0.34: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reflect-metadata@0.1.13: {} + + regedit@5.1.3: + dependencies: + debug: 4.3.6 + if-async: 3.7.4 + stream-slicer: 0.0.6 + through2: 0.6.5 + transitivePeerDependencies: + - supports-color + + regenerator-runtime@0.13.11: {} + + regenerator-runtime@0.14.1: {} + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + regexp-util@2.0.0: + dependencies: + tslib: 2.7.0 + + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + require-directory@2.1.1: {} + + requires-port@1.0.0: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-alpn@1.2.1: {} + + resolve-pkg-maps@1.0.0: {} + + resolve-url@0.2.1: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + ret@0.1.15: {} + + retry@0.12.0: {} + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + + rollup-plugin-esbuild@6.1.1(esbuild@0.23.1)(rollup@4.21.1): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + debug: 4.3.6 + es-module-lexer: 1.5.4 + esbuild: 0.23.1 + get-tsconfig: 4.7.6 + rollup: 4.21.1 + transitivePeerDependencies: + - supports-color + + rollup-plugin-obfuscator@1.1.0(javascript-obfuscator@4.1.1)(rollup@4.21.1): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + javascript-obfuscator: 4.1.1 + rollup: 4.21.1 + + rollup@4.21.1: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.1 + '@rollup/rollup-android-arm64': 4.21.1 + '@rollup/rollup-darwin-arm64': 4.21.1 + '@rollup/rollup-darwin-x64': 4.21.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.1 + '@rollup/rollup-linux-arm-musleabihf': 4.21.1 + '@rollup/rollup-linux-arm64-gnu': 4.21.1 + '@rollup/rollup-linux-arm64-musl': 4.21.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.1 + '@rollup/rollup-linux-riscv64-gnu': 4.21.1 + '@rollup/rollup-linux-s390x-gnu': 4.21.1 + '@rollup/rollup-linux-x64-gnu': 4.21.1 + '@rollup/rollup-linux-x64-musl': 4.21.1 + '@rollup/rollup-win32-arm64-msvc': 4.21.1 + '@rollup/rollup-win32-ia32-msvc': 4.21.1 + '@rollup/rollup-win32-x64-msvc': 4.21.1 + fsevents: 2.3.3 + + run-applescript@7.0.0: {} + + run-async@3.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safer-buffer@2.1.2: {} + + sanitize-filename@1.6.3: + dependencies: + truncate-utf8-bytes: 1.0.2 + + sass@1.77.8: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.0 + + sax@1.4.1: {} + + saxes@5.0.1: + dependencies: + xmlchars: 2.2.0 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + scule@1.3.0: {} + + semver-compare@1.0.0: + optional: true + + semver@6.3.1: {} + + semver@7.6.3: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + setimmediate@1.0.5: {} + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + simple-update-notifier@2.0.0: + dependencies: + semver: 7.6.3 + + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + + slash@4.0.0: {} + + slate-history@0.66.0(slate@0.72.8): + dependencies: + is-plain-object: 5.0.0 + slate: 0.72.8 + + slate@0.72.8: + dependencies: + immer: 9.0.21 + is-plain-object: 5.0.0 + tiny-warning: 1.0.3 + + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + smart-buffer@4.2.0: + optional: true + + snabbdom@3.6.2: {} + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + sockjs-client@1.6.1: + dependencies: + debug: 3.2.7 + eventsource: 2.0.2 + faye-websocket: 0.11.4 + inherits: 2.0.4 + url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color + + source-map-js@1.2.0: {} + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-url@0.4.1: {} + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + speakingurl@14.0.1: {} + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + sprintf-js@1.1.3: + optional: true + + ssr-window@3.0.0: {} + + stable@0.1.8: {} + + stat-mode@1.0.0: {} + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + statuses@2.0.1: {} + + stompjs@2.3.3: + optionalDependencies: + websocket: 1.0.35 + transitivePeerDependencies: + - supports-color + + stream-slicer@0.0.6: {} + + strict-uri-encode@1.1.0: {} + + string-argv@0.3.2: {} + + string-template@1.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string.prototype.codepointat@0.2.1: {} + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string_decoder@0.10.31: {} + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringz@2.1.0: + dependencies: + char-regex: 1.0.2 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-final-newline@3.0.0: {} + + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + + substyle@9.4.1(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + invariant: 2.2.4 + react: 18.3.1 + + sumchecker@3.0.1: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + + supports-color@2.0.0: {} + + supports-color@3.2.3: + dependencies: + has-flag: 1.0.0 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-baker@1.7.0: + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.1(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.9 + transitivePeerDependencies: + - supports-color + + svg-tags@1.0.0: {} + + svgo@2.8.0: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.1 + stable: 0.1.8 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + temp-file@3.4.0: + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + + through2@0.6.5: + dependencies: + readable-stream: 1.0.34 + xtend: 4.0.2 + + tiny-inflate@1.0.3: {} + + tiny-typed-emitter@2.1.0: {} + + tiny-warning@1.0.3: {} + + tinyexec@0.3.0: {} + + tinyglobby@0.2.5: + dependencies: + fdir: 6.3.0(picomatch@4.0.2) + picomatch: 4.0.2 + + tmp-promise@3.0.3: + dependencies: + tmp: 0.2.3 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-fast-properties@2.0.0: {} + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + traverse@0.3.9: {} + + traverse@0.6.9: + dependencies: + gopd: 1.0.1 + typedarray.prototype.slice: 1.0.3 + which-typed-array: 1.1.15 + + trigram-utils@2.0.1: + dependencies: + collapse-white-space: 2.1.0 + n-gram: 2.0.2 + + truncate-utf8-bytes@1.0.2: + dependencies: + utf8-byte-length: 1.0.5 + + tslib@2.3.0: {} + + tslib@2.5.0: {} + + tslib@2.7.0: {} + + tsx@4.18.0: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.7.6 + optionalDependencies: + fsevents: 2.3.3 + + type-check@0.3.2: + dependencies: + prelude-ls: 1.1.2 + + type-detect@4.1.0: {} + + type-fest@0.13.1: + optional: true + + type-fest@0.21.3: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type@2.7.3: {} + + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + optional: true + + typedarray.prototype.slice@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + typed-array-buffer: 1.0.2 + typed-array-byte-offset: 1.0.2 + + typescript@5.5.4: {} + + ufo@1.5.4: {} + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + unconfig@0.5.5: + dependencies: + '@antfu/utils': 0.7.10 + defu: 6.1.4 + importx: 0.4.3 + transitivePeerDependencies: + - supports-color + + undici-types@6.19.8: {} + + unicode-regex@4.0.0: + dependencies: + regexp-util: 2.0.0 + + unicount@1.1.0: {} + + unimport@3.11.1(rollup@4.21.1): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.12.2 + transitivePeerDependencies: + - rollup + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unocss@0.62.3(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)): + dependencies: + '@unocss/astro': 0.62.3(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + '@unocss/cli': 0.62.3(rollup@4.21.1) + '@unocss/core': 0.62.3 + '@unocss/extractor-arbitrary-variants': 0.62.3 + '@unocss/postcss': 0.62.3(postcss@8.4.41) + '@unocss/preset-attributify': 0.62.3 + '@unocss/preset-icons': 0.62.3 + '@unocss/preset-mini': 0.62.3 + '@unocss/preset-tagify': 0.62.3 + '@unocss/preset-typography': 0.62.3 + '@unocss/preset-uno': 0.62.3 + '@unocss/preset-web-fonts': 0.62.3 + '@unocss/preset-wind': 0.62.3 + '@unocss/reset': 0.62.3 + '@unocss/transformer-attributify-jsx': 0.62.3 + '@unocss/transformer-attributify-jsx-babel': 0.62.3 + '@unocss/transformer-compile-class': 0.62.3 + '@unocss/transformer-directives': 0.62.3 + '@unocss/transformer-variant-group': 0.62.3 + '@unocss/vite': 0.62.3(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + optionalDependencies: + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + + unpipe@1.0.0: {} + + unplugin-auto-import@0.17.8(@vueuse/core@9.13.0(vue@3.4.38(typescript@5.5.4)))(rollup@4.21.1): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + minimatch: 9.0.5 + unimport: 3.11.1(rollup@4.21.1) + unplugin: 1.12.2 + optionalDependencies: + '@vueuse/core': 9.13.0(vue@3.4.38(typescript@5.5.4)) + transitivePeerDependencies: + - rollup + + unplugin-icons@0.18.5(@vue/compiler-sfc@3.4.38): + dependencies: + '@antfu/install-pkg': 0.3.5 + '@antfu/utils': 0.7.10 + '@iconify/utils': 2.1.32 + debug: 4.3.6 + kolorist: 1.8.0 + local-pkg: 0.5.0 + unplugin: 1.12.2 + optionalDependencies: + '@vue/compiler-sfc': 3.4.38 + transitivePeerDependencies: + - supports-color + + unplugin-vue-components@0.26.0(@babel/parser@7.25.4)(rollup@4.21.1)(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + chokidar: 3.6.0 + debug: 4.3.6 + fast-glob: 3.3.2 + local-pkg: 0.4.3 + magic-string: 0.30.11 + minimatch: 9.0.5 + resolve: 1.22.8 + unplugin: 1.12.2 + vue: 3.4.38(typescript@5.5.4) + optionalDependencies: + '@babel/parser': 7.25.4 + transitivePeerDependencies: + - rollup + - supports-color + + unplugin@1.12.2: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + unzipper@0.10.14: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + use@3.1.1: {} + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.2 + optional: true + + utf8-byte-length@1.0.5: {} + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + + utils-merge@1.0.1: {} + + uuid@10.0.0: {} + + uuid@8.3.2: {} + + validator@13.12.0: {} + + vary@1.1.2: {} + + verror@1.10.1: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + optional: true + + vite-hot-client@0.2.3(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)): + dependencies: + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + + vite-plugin-inspect@0.8.7(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) + debug: 4.3.6 + error-stack-parser-es: 0.1.5 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.1 + sirv: 2.0.4 + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - rollup + - supports-color + + vite-plugin-svg-icons@2.0.1(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)): + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.6 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - supports-color + + vite-plugin-vue-devtools@7.3.9(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@vue/devtools-core': 7.3.9(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + '@vue/devtools-kit': 7.3.9 + '@vue/devtools-shared': 7.3.9 + execa: 8.0.1 + sirv: 2.0.4 + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + vite-plugin-inspect: 0.8.7(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + vite-plugin-vue-inspector: 5.1.3(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)) + transitivePeerDependencies: + - '@nuxt/kit' + - rollup + - supports-color + - vue + + vite-plugin-vue-inspector@5.1.3(vite@5.4.2(@types/node@22.5.4)(sass@1.77.8)): + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + '@vue/compiler-dom': 3.4.38 + kolorist: 1.8.0 + magic-string: 0.30.11 + vite: 5.4.2(@types/node@22.5.4)(sass@1.77.8) + transitivePeerDependencies: + - supports-color + + vite@5.4.2(@types/node@22.5.4)(sass@1.77.8): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.21.1 + optionalDependencies: + '@types/node': 22.5.4 + fsevents: 2.3.3 + sass: 1.77.8 + + vue-demi@0.14.10(vue@3.4.38(typescript@5.5.4)): + dependencies: + vue: 3.4.38(typescript@5.5.4) + + vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@intlify/core-base': 9.14.0 + '@intlify/shared': 9.14.0 + '@vue/devtools-api': 6.6.3 + vue: 3.4.38(typescript@5.5.4) + + vue-router@4.4.3(vue@3.4.38(typescript@5.5.4)): + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.4.38(typescript@5.5.4) + + vue@3.4.38(typescript@5.5.4): + dependencies: + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-sfc': 3.4.38 + '@vue/runtime-dom': 3.4.38 + '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) + '@vue/shared': 3.4.38 + optionalDependencies: + typescript: 5.5.4 + + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.2: {} + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + websocket@1.0.35: + dependencies: + bufferutil: 4.0.8 + debug: 2.6.9 + es5-ext: 0.10.64 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + optional: true + + webstomp-client@1.2.6: {} + + which-boxed-primitive@1.0.2: + 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 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wildcard@1.1.2: {} + + window-size@1.1.1: + dependencies: + define-property: 1.0.0 + is-number: 3.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + xmlbuilder@15.1.1: {} + + xmlchars@2.2.0: {} + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yaeti@0.0.6: + optional: true + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yoctocolors-cjs@2.1.2: {} + + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + + zrender@5.6.0: + dependencies: + tslib: 2.3.0 diff --git a/src/main/config/alias.ts b/src/main/config/alias.ts new file mode 100644 index 0000000..3a6cf9f --- /dev/null +++ b/src/main/config/alias.ts @@ -0,0 +1,7 @@ +/** + * electron的主进程默认无法使用路径别名,故此想法自己搞一个 TBD 未开始 + */ +export const alias = { + "@": "src/renderer", + "@src": "src", +}; diff --git a/src/main/config/channels.ts b/src/main/config/channels.ts new file mode 100644 index 0000000..b893500 --- /dev/null +++ b/src/main/config/channels.ts @@ -0,0 +1,213 @@ +// TBD 将进程通信的channel拎出来单独写,方便清晰调用,未使用 +export default { + "IsUseSysTitle": { + "key": "", + "handle": "IsUseSysTitle", + "des": "是否使用无边框" + }, + "WindowMini": { + "key": "", + "handle": "windows-mini", + "des": "窗口最小化" + }, + "WindowMax": { + "key": "", + "handle": "windows-max", + "des": "窗口最大化" + }, + "WindowClose": { + "key": "", + "handle": "windows-close", + "des": "窗口关闭" + }, + "CheckUpdate": { + "key": "", + "handle": "check-update", + "des": "检查更新" + }, + "ConfirmUpdate": { + "key": "", + "handle": "confirm-update", + "des": "确认更新" + }, + "AppClose": { + "key": "", + "handle": "app-close", + "des": "app退出" + }, + "GetStaticPath": { + "key": "", + "handle": "get-static-path", + "des": "获取静态资源路径" + }, + "OpenMessagebox": { + "key": "", + "handle": "open-messagebox", + "des": "打开系统弹窗信息" + }, + "OpenErrorbox": { + "key": "", + "handle": "open-errorbox", + "des": "打开系统错误弹窗信息" + }, + "StartServer": { + "key": "", + "handle": "start-server", + "des": "开启http服务" + }, + "StopServer": { + "key": "", + "handle": "stop-server", + "des": "停止http服务" + }, + "StartWsServer": { + "key": "", + "handle": "start-wsserver", + "des": "开启WS服务" + }, + "StopWsServer": { + "key": "", + "handle": "stop-wsserver", + "des": "停止WS服务" + }, + "HotUpdate": { + "key": "", + "handle": "hot-update", + "des": "增量更新" + }, + "HotUpdateTest": { + "key": "", + "handle": "hot-update-test", + "des": "测试增量更新" + }, + "StartDownload": { + "key": "", + "handle": "start-download", + "des": "下载东西" + }, + "OpenWin": { + "key": "", + "handle": "open-win", + "des": "打开新的弹窗" + }, + "GetPrinters": { + "key": "", + "handle": "getPrinters", + "des": "获取打印机信息" + }, + "PrintHandlePrint": { + "key": "", + "handle": "printHandlePrint", + "des": "打印" + }, + "OpenPrintDemoWindow": { + "key": "", + "handle": "openPrintDemoWindow", + "des": "打开测试打印页面" + }, + "DownloadProgress": { + "key": "", + "handle": "download-progress", + "des": "下载进度回调" + }, + "DownloadError": { + "key": "", + "handle": "download-error", + "des": "下载错误回调" + }, + "DownloadPaused": { + "key": "", + "handle": "download-paused", + "des": "下载暂停回调" + }, + "DownloadDone": { + "key": "", + "handle": "download-done", + "des": "下载完成回调" + }, + "UpdateMsg": { + "key": "", + "handle": "UpdateMsg", + "des": "更新回调消息" + }, + "HotUpdateStatus": { + "key": "", + "handle": "hot-update-status", + "des": "热更新状态回调" + }, + "SendDataTest": { + "key": "", + "handle": "send-data-test", + "des": "数据测试回调" + }, + "AddDefaultBrowserView": { + "key": "", + "handle": "add-default-browser-view", + "des": "添加新的默认页面" + }, + "SelectBrowserDemoTab": { + "key": "", + "handle": "select-browser-demo-tab", + "des": "选择tab" + }, + "DestroyBrowserDemoTab": { + "key": "", + "handle": "destroy-browser-demo-tab", + "des": "关闭tab" + }, + "BrowserDemoTabJumpToUrl": { + "key": "", + "handle": "browser-demo-tab-jump-to-url", + "des": "tab 跳转" + }, + "OpenBrowserDemoWindow": { + "key": "", + "handle": "open-browser-demo", + "des": "打开浏览器demo" + }, + "BrowserTabMousedown": { + "key": "", + "handle": "browser-tab-mousedown", + "des": "Browser tab 鼠标按下" + }, + "BrowserTabMousemove": { + "key": "", + "handle": "browser-tab-mousemove", + "des": "Browser tab 鼠标拖动" + }, + "BrowserTabMouseup": { + "key": "", + "handle": "browser-tab-mouseup", + "des": "Browser tab 鼠标松开" + }, + "GetLastBrowserDemoTabData": { + "key": "", + "handle": "get-last-browser-demo-tab-data", + "des": "获取最后一次拖动的 tab 信息" + }, + "BrowserViewTabDataUpdate": { + "key": "", + "handle": "browser-view-tab-data-updated", + "des": "更新 tab 信息" + }, + "BrowserViewTabPositionXUpdate": { + "key": "", + "handle": "browser-view-tab-position-x-updated", + "des": "更新 tab 坐标" + }, + "SetShowOnMyComputer": { + "key": "", + "handle": "set-show-on-my-computer", + "des": "设置在我的电脑显示" + }, + "CheckShowOnMyComputer": { + "key": "", + "handle": "check-show-on-my-computer", + "des": "查询当前是否显示在我的电脑" + }, + "Mocker": { + "key": "", + "handle": "get-mock-data", + "des": "自定义Mock模拟网络请求-By fm453" + } +} diff --git a/src/main/config/const.ts b/src/main/config/const.ts new file mode 100644 index 0000000..a0e8f84 --- /dev/null +++ b/src/main/config/const.ts @@ -0,0 +1,33 @@ +export const UseStartupChart: boolean = true; +export const IsUseSysTitle: boolean = true; +export const BuiltInServerPort: number = 25565; +export const hotPublishUrl: string = + "https://gitea.hiluker.com/fm453/hi-sass-frame"; +export const hotPublishConfigName: string = "update-config"; +export const openDevTools: boolean = false; +export const DisableF12: boolean = true; +export const HotUpdateFolder: string = "hot-update"; +export const GwLink: string = "http://www.hiluker.cn"; +export const HilukerLink: string = "http://www.hiluker.cn"; +export const BrowserDemoUrl: string = "https://www.hiluker.cn"; +// 本地数组缓存KEY,根据自己的项目另行设置,封装localStorage方法的时候用到 +export const StorageKey: string = "Hi_sass_tester_453"; + +// # 远程服务 +const RemotePort = 3000; +const RemoteApi = "/api/v1/"; +// # 线上接口地址 +const RemoteApiUrl = "http://api.frame.sass.hiluker.cn"; +// # 开发接口地址 +// const REMOTE_API_URL = "http://127.0.0.1:8989"; +const RemoteServer = false; + +export default { + GwLink, + UseStartupChart, + IsUseSysTitle, + DisableF12, + HilukerLink, + StorageKey, + RemoteApi +} diff --git a/src/main/config/domains.ts b/src/main/config/domains.ts new file mode 100644 index 0000000..9897b25 --- /dev/null +++ b/src/main/config/domains.ts @@ -0,0 +1,5 @@ +/** + * 域名白名单 + */ +const domains = ["http://127.0.0.1", "https://127.0.0.1", "http://localhost"]; +export default domains; diff --git a/src/main/config/hotPublish.ts b/src/main/config/hotPublish.ts new file mode 100644 index 0000000..e5a8007 --- /dev/null +++ b/src/main/config/hotPublish.ts @@ -0,0 +1,11 @@ +import {hotPublishUrl, hotPublishConfigName} from "./const"; + +interface hotPublish { + url: string; + configName: string; +} + +export const hotPublishConfig: hotPublish = { + url: hotPublishUrl, + configName: hotPublishConfigName, +}; diff --git a/src/main/config/staticPath.ts b/src/main/config/staticPath.ts new file mode 100644 index 0000000..ee37ef2 --- /dev/null +++ b/src/main/config/staticPath.ts @@ -0,0 +1,164 @@ +// 这里定义了静态文件路径的位置 +import {join} from "path"; +import {HotUpdateFolder} from "./const"; +import {app} from "electron"; +import {URL} from "url"; + +const isDev = process.env.NODE_ENV === "development"; + +/** + * 目录名: 生产环境 | 开发环境 + * 基础目录: APP目录 | src下 + * __static: 基础目录/renderer | 基础目录/renderer/public + * __lib: 基础目录 | 基础目录/build/lib/* + * __common: 基础目录 | 基础目录/build/lib/common + */ +class StaticPath { + /** + * 静态文件路径 渲染进程目录下 + * + * @type {string} + * @memberof StaticPath + */ + __static: string; + /** + * dll文件夹及其他os平台相关的文件路径 + * + * @type {string} + * @memberof StaticPath + */ + __lib: string; + /** + * 与os无关的资源 + * + * @type {string} + * @memberof StaticPath + */ + __common: string; + /** + * 增量更新文件夹 + * + * @type {string} + * @memberof StaticPath + */ + __updateFolder: string; + + constructor() { + const basePath = isDev + ? join(__dirname, "..", "..", "..") + : join(app.getAppPath(), "..", ".."); + this.__updateFolder = join(basePath, `${HotUpdateFolder}`); + if (isDev) { + this.__static = join(basePath, "src", "renderer", "public"); + this.__lib = join( + basePath, + `build`, + `lib`, + `${process.platform}`, + `${process.arch}` + ); + this.__common = join(basePath, "build", "lib", "common"); + } else { + this.__static = join(__dirname, "..", "renderer"); + this.__lib = basePath; + this.__common = basePath; + } + } +} + +const staticPath = new StaticPath(); + +/** + * 获取真正的地址 + * + * @param {string} devPath 开发环境路径 + * @param {string} proPath 生产环境路径 + * @param {string} [hash=""] hash值 + * @param {string} [search=""] search值 + * @return {*} {string} 地址 + */ +function getUrl( + devPath: string, + proPath: string, + hash: string = "", + search: string = "" +): string { + const url = isDev + ? new URL(`http://localhost:${process.env.PORT}`) + : new URL("file://"); + url.pathname = isDev ? devPath : proPath; + url.hash = hash; + url.search = search; + return url.href; +} + +/** + * 窗口入口文件 + * 开发环境:"" + * 产品环境:src/renderer/index.html + */ +export const winURL = getUrl( + "", + join(__dirname, "..", "renderer", "index.html") +); +/** + * 窗口入口文件 + * 开发环境:"/loader.html" + * 产品环境:src/render/public/loader.html + */ +export const loadingURL = getUrl( + "/loader.html", + `${staticPath.__static}/loader.html` +); + +export const preloadURL = getUrl( + "/preload.html", + `${staticPath.__static}/preload.html` +); +export const printURL = getUrl( + "", + join(__dirname, "..", "renderer", "index.html"), + "#/Print" +); +export const browserDemoURL = getUrl( + "", + join(__dirname, "..", "renderer", "index.html"), + "#/Browser" +); +/** + * 预加载文件 + * 开发环境:src/main/preload/index.ts + * 产品环境:dist/electron/preload/main/preload.js + */ +export const preloadPath = isDev + ? join(__dirname, "..", "..", "..", "dist", "electron", "main", "preload.js") + : join(app.getAppPath(), "dist", "electron", "main", "preload.js"); + +/** + * 托盘设置文件 + * 开发环境:/tray.html + * 产品环境:src/renderer/public/tray.html + */ +export const trayURL = getUrl( + "/tray.html", + `${staticPath.__static}/tray.html` +); +/** + * 托盘图标设置 + */ +export const trayIconPath = isDev + ? join(staticPath.__static, "trayIcon", "trayIcon.png") + : join(app.getAppPath(), "dist", "electron", "renderer", "trayIcon", "trayIcon.png"); +export const trayTransparentIconPath = isDev + ? join(staticPath.__static, "trayIcon", "transparent.png") + : join(app.getAppPath(), "dist", "electron", "renderer", "trayIcon", "transparent.png"); + +export const lib = staticPath.__lib; +export const common = staticPath.__common; +export const updateFolder = staticPath.__updateFolder; +export const staticPaths = getUrl("", staticPath.__static); + +// process.env 修改 +for (const key in staticPath) { + process.env[key] = staticPath[key]; +} diff --git a/src/main/config/windowsConfig.ts b/src/main/config/windowsConfig.ts new file mode 100644 index 0000000..c2c6c93 --- /dev/null +++ b/src/main/config/windowsConfig.ts @@ -0,0 +1,44 @@ +import {IsUseSysTitle} from "./const"; +import {preloadPath} from "./staticPath"; +import {BrowserWindowConstructorOptions} from "electron"; + +const preload = preloadPath; + +export const mainWindowConfig: BrowserWindowConstructorOptions = { + height: 800, + useContentSize: true, + width: 1700, + minWidth: 1366, + show: false, + frame: IsUseSysTitle, + webPreferences: { + preload, + contextIsolation: true, //内容上下文隔离 + nodeIntegration: false, //是否允许禁用渲染器沙盒,禁用则窗口可使用Node.js模块的系统API + webSecurity: true, //开启后将出现域名cors限制;内置服务器的mock请求要相应地调整express配置,在server/server.ts中配置跨域 + // 如果是开发模式可以使用devTools + devTools: process.env.NODE_ENV === "development", + // 在macos中启用橡皮动画 + scrollBounce: process.platform === "darwin", + }, +}; + +export const otherWindowConfig: BrowserWindowConstructorOptions = { + height: 595, + useContentSize: true, + width: 1140, + autoHideMenuBar: true, + minWidth: 842, + frame: IsUseSysTitle, + show: false, + webPreferences: { + preload, + contextIsolation: true, + nodeIntegration: false, + webSecurity: true, + // 如果是开发模式可以使用devTools + devTools: process.env.NODE_ENV === "development", + // 在macos中启用橡皮动画 + scrollBounce: process.platform === "darwin", + }, +}; diff --git a/src/main/handle/browserHandle.ts b/src/main/handle/browserHandle.ts new file mode 100644 index 0000000..5f1474d --- /dev/null +++ b/src/main/handle/browserHandle.ts @@ -0,0 +1,323 @@ +import {BrowserView, BrowserWindow, screen} from "electron"; +import {IpcChannel, IpcMainHandle} from "../ipc"; +import {useHookBrowser} from "../hook/browserHook"; + +let dragTabOffsetX: number; +let lastDragView: BrowserView; +let emptyWin: BrowserWindow; +let viewFromWin: BrowserWindow; +let useNewWindow: BrowserWindow; +const winList: BrowserWindow[] = []; +const viewList: BrowserView[] = []; +let startScreenY: number; + +export function useBrowserHandle(): Pick< + IpcMainHandle, + | IpcChannel.OpenBrowserDemoWindow + | IpcChannel.GetLastBrowserDemoTabData + | IpcChannel.AddDefaultBrowserView + | IpcChannel.SelectBrowserDemoTab + | IpcChannel.DestroyBrowserDemoTab + | IpcChannel.BrowserDemoTabJumpToUrl + | IpcChannel.BrowserTabMousedown + | IpcChannel.BrowserTabMousemove + | IpcChannel.BrowserTabMouseup +> { + return { + [IpcChannel.OpenBrowserDemoWindow]: async (event) => { + useHookBrowser.openBrowserDemoWindow(); + }, + [IpcChannel.GetLastBrowserDemoTabData]: async (event) => { + // 拖出tab创建的窗口获取当前tab信息 + if (lastDragView) { + let positionX = -1 + if (dragTabOffsetX) { + const currentWin = BrowserWindow.fromBrowserView(lastDragView) + const bound = currentWin.getBounds() + const {x, y} = screen.getCursorScreenPoint() + positionX = x - bound.x - dragTabOffsetX + } + return { + positionX, + bvWebContentsId: lastDragView.webContents.id, + title: lastDragView.webContents.getTitle(), + url: lastDragView.webContents.getURL(), + }; + } + useHookBrowser.openBrowserDemoWindow(); + }, + [IpcChannel.AddDefaultBrowserView]: async (event) => { + // 添加tab的内容 + const currentWin = BrowserWindow.fromWebContents(event.sender); + let bvWebContentsId = -1; + if (currentWin) { + const bv = useHookBrowser.createDefaultBrowserView(currentWin); + bvWebContentsId = bv.webContents.id; + } + return {bvWebContentsId}; + }, + [IpcChannel.SelectBrowserDemoTab]: async (event, bvWebContentsId) => { + // 选择tab为当前tab + const currentWin = BrowserWindow.fromWebContents(event.sender); + if (currentWin) { + const bvList = currentWin.getBrowserViews(); + for (let i = 0; i < bvList.length; i++) { + const bv = bvList[i]; + if (bv.webContents.id === bvWebContentsId) { + currentWin.setTopBrowserView(bv); + return true; + } + } + } + return false; + }, + [IpcChannel.DestroyBrowserDemoTab]: async (event, bvWebContentsId) => { + // 关闭tab + const currentWin = BrowserWindow.fromWebContents(event.sender); + if (currentWin) { + const bvList = currentWin.getBrowserViews(); + for (let i = 0; i < bvList.length; i++) { + const bv = bvList[i]; + if (bv.webContents.id === bvWebContentsId) { + currentWin.removeBrowserView(bv); + if (bvList.length === 1) { + currentWin.close(); + } + bv.webContents.close(); + break; + } + } + } + }, + [IpcChannel.BrowserDemoTabJumpToUrl]: async ( + event, + {bvWebContentsId, url} + ) => { + // 跳转 + const currentView = viewList.find( + (v) => v.webContents.id === bvWebContentsId + ); + currentView.webContents.loadURL(url); + }, + [IpcChannel.BrowserTabMousedown]: async (event, { + offsetX + }) => { + dragTabOffsetX = offsetX + }, + [IpcChannel.BrowserTabMousemove]: async ( + event, + { + screenX, // 鼠标在显示器的x坐标 + screenY, // 鼠标在显示器的y坐标 + startX, // 按下鼠标时在窗口的x坐标 + startY, // 按下鼠标时在窗口的y坐标 + bvWebContentsId, + } + ) => { + if (!startScreenY) { + startScreenY = screenY; + } + if (!viewFromWin) { + viewFromWin = BrowserWindow.fromWebContents(event.sender); + } + let movingWin: BrowserWindow; + const currentView = viewList.find( + (v) => v.webContents.id === bvWebContentsId + ); + lastDragView = currentView; + if (viewFromWin.getBrowserViews().length <= 1) { + movingWin = viewFromWin; + } else { + if (useNewWindow) { + movingWin = useNewWindow; + viewFromWin = useNewWindow; + } else if (Math.abs(startScreenY - screenY) > 40) { + // 如果Y差值大于40,则移动到新窗口 + if (emptyWin) { + useNewWindow = emptyWin; + useNewWindow.setHasShadow(true); + emptyWin = null; + } else { + useNewWindow = useHookBrowser.openBrowserDemoWindow(); + } + useHookBrowser.removeBrowserView(viewFromWin, currentView); + useHookBrowser.addBrowserView(useNewWindow, currentView); + viewFromWin = useNewWindow; + movingWin = useNewWindow; + movingWin.show(); + startScreenY = screenY; + + // 设置拖拽的 tab 位置 + const bound = movingWin.getBounds() + movingWin.webContents.send( + IpcChannel.BrowserViewTabPositionXUpdate, + { + dragTabOffsetX, + positionX: screenX - bound.x, + bvWebContentsId: currentView.webContents.id, + } + ); + + } else { + // 内部移动 movingWin = null + for (let i = 0; i < winList.length; i++) { + const existsWin = winList[i]; + const bound = existsWin.getBounds(); + if ( + existsWin !== emptyWin && + bound.x < screenX && + bound.x + bound.width > screenX && + // 在tabbar的范围 + bound.y + 30 < screenY && + bound.y + 70 > screenY + ) { + existsWin.webContents.send( + IpcChannel.BrowserViewTabPositionXUpdate, + { + dragTabOffsetX, + positionX: screenX - bound.x, + bvWebContentsId: currentView.webContents.id, + } + ); + return; + } + } + } + } + if (movingWin) { + movingWin.setPosition(screenX - startX, screenY - startY); + // 判断是否需要添加进新窗口 + for (let i = 0; i < winList.length; i++) { + const existsWin = winList[i]; + const bound = existsWin.getBounds(); + const tabbarCenterY = bound.y + 50; // titlebar 30 tabbar 40 / 2 + if ( + existsWin !== emptyWin && + existsWin !== movingWin && + bound.x < screenX && + bound.x + bound.width > screenX && + Math.abs(tabbarCenterY - screenY) < 20 + ) { + useHookBrowser.removeBrowserView(movingWin, currentView); + if (movingWin.getBrowserViews().length === 0) { + emptyWin = movingWin; + emptyWin.setHasShadow(false); + emptyWin.setAlwaysOnTop(false); + emptyWin.setBounds(bound); + if (emptyWin === useNewWindow) { + useNewWindow = null; + } + } + useHookBrowser.addBrowserView(existsWin, currentView); + viewFromWin = existsWin; + startScreenY = screenY; + return; + } + } + } + }, + [IpcChannel.BrowserTabMouseup]: async (event) => { + winList.map((win) => { + if (win?.getBrowserViews().length === 0) { + win?.close(); + } else { + win?.setAlwaysOnTop(false); + win?.webContents?.send(IpcChannel.BrowserTabMouseup) + } + }); + useNewWindow = null; + startScreenY = null; + emptyWin = null; + viewFromWin = null; + }, + }; +} + +// +// +// function openBrowserDemoWindow() { +// let win = new BrowserWindow({ +// titleBarStyle: IsUseSysTitle ? "default" : "hidden", +// ...Object.assign(otherWindowConfig, {}), +// }); +// // // 开发模式下自动开启devtools +// if (process.env.NODE_ENV === "development") { +// openDevTools(win) +// } +// win.loadURL(browserDemoURL); +// win.on("ready-to-show", () => { +// win.show(); +// }); +// win.on("closed", () => { +// const findIndex = winList.findIndex((v) => win === v); +// if (findIndex !== -1) { +// winList.splice(findIndex, 1); +// } +// }); +// winList.push(win); +// return win; +// } +// +// function createDefaultBrowserView( +// win: BrowserWindow, +// defaultUrl = BrowserDemoUrl +// ) { +// const [winWidth, winHeight] = win.getSize(); +// const bv = new BrowserView(); +// win.addBrowserView(bv); +// // title-bar 30px tabbar 40px searchbar 40px +// bv.setBounds({x: 0, y: 110, width: winWidth, height: winHeight - 110}); +// bv.setAutoResize({ +// width: true, +// height: true, +// }); +// bv.webContents.on('did-finish-load', () => { +// console.log(bv.webContents.getURL()) +// }) +// bv.webContents.loadURL(defaultUrl); +// bv.webContents.on("page-title-updated", (event, title) => { +// const parentBw = BrowserWindow.fromBrowserView(bv); +// if (parentBw) { +// freshTabData(parentBw, bv, 1) +// } +// }); +// bv.webContents.on("destroyed", () => { +// const findIndex = viewList.findIndex((v) => v === bv); +// if (findIndex !== -1) { +// viewList.splice(findIndex, 1); +// } +// }); +// bv.webContents.setWindowOpenHandler((details) => { +// const parentBw = BrowserWindow.fromBrowserView(bv); +// createDefaultBrowserView(parentBw, details.url); +// return {action: "deny"}; +// }); +// freshTabData(win, bv, 1) +// viewList.push(bv); +// return bv; +// } +// +// function addBrowserView(win: BrowserWindow, view: BrowserView) { +// if (BrowserWindow.fromBrowserView(view) !== win) { +// win.addBrowserView(view); +// win.show(); +// win.setAlwaysOnTop(true); +// } +// freshTabData(win, view, 1) +// } +// +// function removeBrowserView(win: BrowserWindow, view: BrowserView) { +// if (BrowserWindow.fromBrowserView(view) === win) { +// win.removeBrowserView(view); +// } +// freshTabData(win, view, -1) +// } +// +// function freshTabData(win: BrowserWindow, bv: BrowserView, status: -1 | 1) { +// win.webContents.send(IpcChannel.BrowserViewTabDataUpdate, { +// bvWebContentsId: bv.webContents.id, +// title: bv.webContents.getTitle(), +// url: bv.webContents.getURL(), +// status: status, +// }); +// } diff --git a/src/main/handle/mainHandle.ts b/src/main/handle/mainHandle.ts new file mode 100644 index 0000000..b94c283 --- /dev/null +++ b/src/main/handle/mainHandle.ts @@ -0,0 +1,104 @@ +import {dialog, BrowserWindow, app} from "electron"; +import {IsUseSysTitle} from "../config/const"; +import {winURL, staticPaths} from "../config/staticPath"; +import DownloadFile from "../services/downloadFile"; +import {otherWindowConfig} from "../config/windowsConfig"; +import {IpcChannel} from "../ipc"; +import {showOnMyComputer, hideOnMyComputer, checkIsShowOnMyComputer} from "../services/regeditUtils" +import {openDevTools} from "../hook/devToolHook"; + +export function useMainHandle() { + return { + [IpcChannel.IsUseSysTitle]: () => { + return IsUseSysTitle; + }, + + [IpcChannel.WindowMini]: (event) => { + BrowserWindow.fromWebContents(event.sender)?.minimize(); + }, + [IpcChannel.WindowMax]: (event) => { + if (BrowserWindow.fromWebContents(event.sender)?.isMaximized()) { + BrowserWindow.fromWebContents(event.sender)?.restore(); + return {status: false}; + } else { + BrowserWindow.fromWebContents(event.sender)?.maximize(); + return {status: true}; + } + }, + [IpcChannel.WindowClose]: (event) => { + BrowserWindow.fromWebContents(event.sender)?.close(); + }, + [IpcChannel.AppClose]: () => { + //关闭APP前先停止内置服务器 By fm453 + // Server.StopServer(); + // + app.quit(); + }, + [IpcChannel.GetStaticPath]: () => { + return staticPaths; + }, + [IpcChannel.OpenMessagebox]: async (event, arg) => { + return dialog.showMessageBox( + BrowserWindow.fromWebContents(event.sender), + { + type: arg.type || "info", + title: arg.title || "", + buttons: arg.buttons || [], + message: arg.message || "", + noLink: arg.noLink || true, + } + ); + }, + + [IpcChannel.OpenErrorbox]: (_event, arg) => { + dialog.showErrorBox(arg.title, arg.message) + }, + + [IpcChannel.StartDownload]: (event, downloadUrl) => { + new DownloadFile( + BrowserWindow.fromWebContents(event.sender), + downloadUrl + ).start(); + }, + [IpcChannel.OpenWin]: (_event, arg) => { + const ChildWin = new BrowserWindow({ + titleBarStyle: IsUseSysTitle ? "default" : "hidden", + ...Object.assign(otherWindowConfig, {}), + }); + // 开发模式下自动开启devtools + if (process.env.NODE_ENV === "development") { + openDevTools(ChildWin) + } + ChildWin.loadURL(winURL + `#${arg.url}`); + ChildWin.once("ready-to-show", () => { + ChildWin.show(); + if (arg.IsPay) { + // 检查支付时候自动关闭小窗口 + const testUrl = setInterval(() => { + const Url = ChildWin.webContents.getURL(); + if (Url.includes(arg.PayUrl)) { + ChildWin.close(); + } + }, 1200); + ChildWin.on("close", () => { + clearInterval(testUrl); + }); + } + }); + // 渲染进程显示时触发 + ChildWin.once("show", () => { + ChildWin.webContents.send("send-data-test", arg.sendData); + }); + }, + [IpcChannel.CheckShowOnMyComputer]: async () => { + return await checkIsShowOnMyComputer() + }, + [IpcChannel.SetShowOnMyComputer]: async (event, bool) => { + if (bool) { + return await showOnMyComputer() + } else { + return await hideOnMyComputer() + } + } + } +} diff --git a/src/main/handle/printHandle.ts b/src/main/handle/printHandle.ts new file mode 100644 index 0000000..427e8b8 --- /dev/null +++ b/src/main/handle/printHandle.ts @@ -0,0 +1,25 @@ +import {WebContentsPrintOptions} from "electron"; +import {IpcChannel, IpcMainHandle} from "../ipc"; + +import {openPrintDemoWindow} from "../hook/printHook"; + +export function usePrintHandle(): Pick { + return { + [IpcChannel.GetPrinters]: async (event) => { + return await event.sender.getPrintersAsync(); + }, + [IpcChannel.PrintHandlePrint]: async (event, options: WebContentsPrintOptions) => { + return new Promise((resolve) => { + event.sender.print( + options, + (success: boolean, failureReason: string) => { + resolve({success, failureReason}); + } + ); + }); + }, + [IpcChannel.OpenPrintDemoWindow]: () => { + openPrintDemoWindow(); + } + } +} diff --git a/src/main/handle/serverHandle.ts b/src/main/handle/serverHandle.ts new file mode 100644 index 0000000..b423bec --- /dev/null +++ b/src/main/handle/serverHandle.ts @@ -0,0 +1,45 @@ +import {dialog} from "electron"; +import Server from "../server"; +import WsServer from "../server/wsServer"; +import {IpcMainHandle, IpcChannel} from "../ipc"; + +export function useServerHandle(): Pick { + return { + [IpcChannel.StartServer]: async () => { + try { + const serverStatus = await Server.StartServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StopServer]: async () => { + try { + const serverStatus = await Server.StopServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StartWsServer]: async () => { + try { + const serverStatus = await WsServer.StartServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StopWsServer]: async () => { + try { + const serverStatus = await WsServer.StopServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + } +} diff --git a/src/main/handle/updateHandle.ts b/src/main/handle/updateHandle.ts new file mode 100644 index 0000000..541bba7 --- /dev/null +++ b/src/main/handle/updateHandle.ts @@ -0,0 +1,40 @@ +import {BrowserWindow, app} from "electron"; +import {updater} from "../services/HotUpdater"; +import {updater as updaterTest} from "../services/HotUpdaterTest"; +import Update from "../services/checkUpdate"; +import {UpdateStatus} from "electron_updater_node_core"; +import {IpcMainHandle, IpcChannel} from "../ipc"; + +const ALL_UPDATER = new Update(); + +export function useUpdateHandle(): Pick { + return { + [IpcChannel.CheckUpdate]: (event) => { + ALL_UPDATER.checkUpdate(BrowserWindow.fromWebContents(event.sender)); + }, + [IpcChannel.ConfirmUpdate]: () => { + ALL_UPDATER.quitAndInstall(); + }, + [IpcChannel.HotUpdate]: (event) => { + updater(BrowserWindow.fromWebContents(event.sender)) + }, + [IpcChannel.HotUpdateTest]: async (event, arg) => { + console.log("hot-update-test"); + try { + let updateInfo = await updaterTest( + BrowserWindow.fromWebContents(event.sender) + ); + if (updateInfo === UpdateStatus.Success) { + app.quit(); + } else if (updateInfo === UpdateStatus.HaveNothingUpdate) { + console.log("不需要更新"); + } else if (updateInfo === UpdateStatus.Failed) { + console.error("更新出错"); + } + } catch (error) { + // 更新出错 + console.error("更新出错"); + } + } + } +} diff --git a/src/main/hook/browserHook.ts b/src/main/hook/browserHook.ts new file mode 100644 index 0000000..748bffa --- /dev/null +++ b/src/main/hook/browserHook.ts @@ -0,0 +1,110 @@ +import {BrowserView, BrowserWindow} from "electron"; +import {IpcChannel} from "../ipc"; +import {IsUseSysTitle, BrowserDemoUrl} from "../config/const"; +import {otherWindowConfig} from "../config/windowsConfig"; +import {browserDemoURL} from "../config/staticPath"; +import {openDevTools} from "./devToolHook"; + +let dragTabOffsetX: number; +let lastDragView: BrowserView; +let emptyWin: BrowserWindow; +let viewFromWin: BrowserWindow; +let useNewWindow: BrowserWindow; +const winList: BrowserWindow[] = []; +const viewList: BrowserView[] = []; +let startScreenY: number; + +export function openBrowserDemoWindow() { + let win = new BrowserWindow({ + titleBarStyle: IsUseSysTitle ? "default" : "hidden", + ...Object.assign(otherWindowConfig, {}), + }); + // // 开发模式下自动开启devtools + if (process.env.NODE_ENV === "development") { + openDevTools(win) + } + win.loadURL(browserDemoURL); + win.on("ready-to-show", () => { + win.show(); + }); + win.on("closed", () => { + const findIndex = winList.findIndex((v) => win === v); + if (findIndex !== -1) { + winList.splice(findIndex, 1); + } + }); + winList.push(win); + return win; +} + +export function createDefaultBrowserView( + win: BrowserWindow, + defaultUrl = BrowserDemoUrl +) { + const [winWidth, winHeight] = win.getSize(); + const bv = new BrowserView(); + win.addBrowserView(bv); + // title-bar 30px tabbar 40px searchbar 40px + bv.setBounds({x: 0, y: 110, width: winWidth, height: winHeight - 110}); + bv.setAutoResize({ + width: true, + height: true, + }); + bv.webContents.on('did-finish-load', () => { + console.log(bv.webContents.getURL()) + }) + bv.webContents.loadURL(defaultUrl); + bv.webContents.on("page-title-updated", (event, title) => { + const parentBw = BrowserWindow.fromBrowserView(bv); + if (parentBw) { + freshTabData(parentBw, bv, 1) + } + }); + bv.webContents.on("destroyed", () => { + const findIndex = viewList.findIndex((v) => v === bv); + if (findIndex !== -1) { + viewList.splice(findIndex, 1); + } + }); + bv.webContents.setWindowOpenHandler((details) => { + const parentBw = BrowserWindow.fromBrowserView(bv); + createDefaultBrowserView(parentBw, details.url); + return {action: "deny"}; + }); + freshTabData(win, bv, 1) + viewList.push(bv); + return bv; +} + +export function addBrowserView(win: BrowserWindow, view: BrowserView) { + if (BrowserWindow.fromBrowserView(view) !== win) { + win.addBrowserView(view); + win.show(); + win.setAlwaysOnTop(true); + } + freshTabData(win, view, 1) +} + +export function removeBrowserView(win: BrowserWindow, view: BrowserView) { + if (BrowserWindow.fromBrowserView(view) === win) { + win.removeBrowserView(view); + } + freshTabData(win, view, -1) +} + +export function freshTabData(win: BrowserWindow, bv: BrowserView, status: -1 | 1) { + win.webContents.send(IpcChannel.BrowserViewTabDataUpdate, { + bvWebContentsId: bv.webContents.id, + title: bv.webContents.getTitle(), + url: bv.webContents.getURL(), + status: status, + }); +} + +export const useHookBrowser = { + openBrowserDemoWindow, + createDefaultBrowserView, + addBrowserView, + removeBrowserView, + freshTabData, +} diff --git a/src/main/hook/devToolHook.ts b/src/main/hook/devToolHook.ts new file mode 100644 index 0000000..b439c60 --- /dev/null +++ b/src/main/hook/devToolHook.ts @@ -0,0 +1,17 @@ +import {BrowserWindow} from "electron"; + +export function openDevTools(win: BrowserWindow) { + let devtools = new BrowserWindow(); + devtools.setMenu(null) + devtools.webContents.on('did-finish-load', () => devtools.setTitle(win.webContents.getTitle())) + win.webContents.setDevToolsWebContents(devtools.webContents); + win.webContents.openDevTools({ + mode: "detach", + }); + win.on("closed", () => { + devtools?.close(); + }); + devtools.on("closed", () => { + devtools = null; + }); +} diff --git a/src/main/hook/disableButtonHook.ts b/src/main/hook/disableButtonHook.ts new file mode 100644 index 0000000..31da824 --- /dev/null +++ b/src/main/hook/disableButtonHook.ts @@ -0,0 +1,17 @@ +import {globalShortcut} from 'electron' +import {DisableF12} from "../config/const" + +const disableF12 = () => { + if (process.env.NODE_ENV === 'production' || DisableF12) { + // 在生产环境下,或者设置禁用了F12键的情况下,禁止响应F12键 + globalShortcut.register('f12', () => { + console.log('OS用户试图启动控制台') + }) + globalShortcut.register('CmdOrCtrl+I', () => { + console.log('MAC用户试图启动控制台') + }) + } +} +export default { + disableF12 +} diff --git a/src/main/hook/exceptionHook.ts b/src/main/hook/exceptionHook.ts new file mode 100644 index 0000000..0a6ec1c --- /dev/null +++ b/src/main/hook/exceptionHook.ts @@ -0,0 +1,147 @@ +import {WebContents, app, dialog} from "electron"; +import type { + Details, + RenderProcessGoneDetails, + Event, + BrowserWindow, +} from "electron"; + +export interface UseProcessExceptionReturn { + /** + * Emitted when the renderer process unexpectedly disappears. This is normally because it was crashed or killed. + * If a listener is not passed in, it will default to following the crash prompt + * + * @see https://www.electronjs.org/docs/latest/api/app#event-render-process-gone + */ + renderProcessGone: ( + listener?: ( + event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails + ) => void + ) => void; + /** + * Emitted when the child process unexpectedly disappears. This is normally because it was crashed or killed. It does not include renderer processes. + * If a listener is not passed in, it will default to following the crash prompt + * + * @see https://www.electronjs.org/docs/latest/api/app#event-child-process-gone + */ + childProcessGone: ( + window: BrowserWindow, + listener?: (event: Event, details: Details) => void + ) => void; +} + +export const useProcessException = (): UseProcessExceptionReturn => { + const renderProcessGone = ( + listener?: ( + event: Event, + webContents: WebContents, + details: RenderProcessGoneDetails + ) => void + ) => { + app.on("render-process-gone", (event, webContents, details) => { + if (listener) { + listener(event, webContents, details); + return; + } + const message = { + title: "", + buttons: [], + message: "", + }; + switch (details.reason) { + case "crashed": + message.title = "警告"; + message.buttons = ["确定", "退出"]; + message.message = "图形化进程崩溃,是否进行软重启操作?"; + break; + case "killed": + message.title = "警告"; + message.buttons = ["确定", "退出"]; + message.message = + "由于未知原因导致图形化进程被终止,是否进行软重启操作?"; + break; + case "oom": + message.title = "警告"; + message.buttons = ["确定", "退出"]; + message.message = "内存不足,是否软重启释放内存?"; + break; + + default: + break; + } + dialog + .showMessageBox({ + type: "warning", + title: message.title, + buttons: message.buttons, + message: message.message, + noLink: true, + }) + .then((res) => { + if (res.response === 0) webContents.reload(); + else webContents.close(); + }); + }); + }; + const childProcessGone = ( + window: BrowserWindow, + listener?: (event: Event, details: Details) => void + ) => { + app.on("child-process-gone", (event, details) => { + if (listener) { + listener(event, details); + return; + } + const message = { + title: "", + buttons: [], + message: "", + }; + switch (details.type) { + case "GPU": + switch (details.reason) { + case "crashed": + message.title = "警告"; + message.buttons = ["确定", "退出"]; + message.message = "硬件加速进程已崩溃,是否关闭硬件加速并重启?"; + break; + case "killed": + message.title = "警告"; + message.buttons = ["确定", "退出"]; + message.message = + "硬件加速进程被意外终止,是否关闭硬件加速并重启?"; + break; + default: + break; + } + break; + + default: + break; + } + dialog + .showMessageBox(window, { + type: "warning", + title: message.title, + buttons: message.buttons, + message: message.message, + noLink: true, + }) + .then((res) => { + // 当显卡出现崩溃现象时使用该设置禁用显卡加速模式。 + if (res.response === 0) { + if (details.type === "GPU") app.disableHardwareAcceleration(); + window.reload(); + } else { + window.close(); + } + }); + }); + }; + return { + renderProcessGone, + childProcessGone, + }; +}; diff --git a/src/main/hook/hotkeysHook.ts b/src/main/hook/hotkeysHook.ts new file mode 100644 index 0000000..ab0e746 --- /dev/null +++ b/src/main/hook/hotkeysHook.ts @@ -0,0 +1,30 @@ +import {app, globalShortcut} from "electron"; + +const hotkeysHook = function (mainWindow) { + mainWindow.on('focus', () => { + // mac下快捷键失效的问题 + if (process.platform === 'darwin') { + let contents = mainWindow.webContents + globalShortcut.register('CmdOrCtrl+C', () => { + console.log('注册复制快捷键成功') + contents.copy() + }) + globalShortcut.register('CommandOrControl+V', () => { + console.log('注册粘贴快捷键成功') + contents.paste() + }) + globalShortcut.register('CommandOrControl+X', () => { + console.log('注册剪切快捷键成功') + contents.cut() + }) + globalShortcut.register('CommandOrControl+A', () => { + console.log('注册全选快捷键成功') + contents.selectAll() + }) + } + }) + mainWindow.on('blur', () => { + globalShortcut.unregisterAll() // 注销键盘事件 + }) +} +export default hotkeysHook; diff --git a/src/main/hook/menuHook.ts b/src/main/hook/menuHook.ts new file mode 100644 index 0000000..027d9c7 --- /dev/null +++ b/src/main/hook/menuHook.ts @@ -0,0 +1,92 @@ +// 这里是定义菜单的地方,详情请查看 https://electronjs.org/zh/docs/api/menu +import {dialog, BrowserWindow} from "electron"; +import type {MenuItemConstructorOptions, MenuItem} from "electron" +import packageInfo from '../../../package.json'; +import * as diyConst from "../config/const"; + +function platform() { + if (process.platform === "darwin") return "Mac OS"; + return process.platform; +} + +const type = platform(); +const release = process.getSystemVersion(); +const arch = process.arch; + +function info() { + dialog.showMessageBox({ + title: '关于', + type: 'info', + message: `${packageInfo.title}`, + detail: `版本信息:${packageInfo.version}\n引擎版本:${process.versions.v8}\n当前系统:${type} ${arch} ${release}`, + noLink: true, + buttons: ["官网", '确定'] + }).then(r => { + console.log(r); + if (r.response === 0) { + const win = new BrowserWindow({width: 800, height: 600}) + // Load a remote URL + win.loadURL(diyConst.GwLink); + // Or load a local HTML file + // win.loadFile('index.html') + } + }) +} + +const menu: Array<(MenuItemConstructorOptions) | (MenuItem)> = [ + { + label: "设置", + submenu: [ + { + label: "快速重启", + accelerator: "F5", + role: "reload", + }, + { + label: "退出", + accelerator: "CmdOrCtrl+F4", + role: "close", + }, + ], + }, + { + label: '编辑', + submenu: [{ + label: '撤销', + accelerator: 'CmdOrCtrl+Z', + role: 'undo' + }, + { + label: '重做', + accelerator: 'Shift+CmdOrCtrl+Z', + role: 'redo' + }, + { + label: '剪切', + accelerator: 'CmdOrCtrl+X', + role: 'cut' + }, + { + label: '复制', + accelerator: 'CmdOrCtrl+C', + role: 'copy' + }, + { + label: '粘贴', + accelerator: 'CmdOrCtrl+V', + role: 'paste' + } + ] + }, + { + label: "帮助", + submenu: [ + { + label: "关于", + click: info + }, + ], + }, +]; + +export default menu diff --git a/src/main/hook/printHook.ts b/src/main/hook/printHook.ts new file mode 100644 index 0000000..e967197 --- /dev/null +++ b/src/main/hook/printHook.ts @@ -0,0 +1,29 @@ +import {BrowserWindow} from "electron"; +import {IsUseSysTitle} from "../config/const"; +import {otherWindowConfig} from "../config/windowsConfig"; +import {printURL} from "../config/staticPath"; +import {openDevTools} from "../hook/devToolHook"; + +let win: BrowserWindow; + +export function openPrintDemoWindow() { + if (win) { + win.show(); + return; + } + win = new BrowserWindow({ + titleBarStyle: IsUseSysTitle ? "default" : "hidden", + ...Object.assign(otherWindowConfig, {}), + }); + // 开发模式下自动开启devtools + if (process.env.NODE_ENV === "development") { + openDevTools(win) + } + win.loadURL(printURL); + win.on("ready-to-show", () => { + win.show(); + }); + win.on("closed", () => { + win = null; + }); +} diff --git a/src/main/hook/trayHook.ts b/src/main/hook/trayHook.ts new file mode 100644 index 0000000..d0b2e04 --- /dev/null +++ b/src/main/hook/trayHook.ts @@ -0,0 +1,128 @@ +//定义系统托盘 +import {dialog, BrowserWindow, Menu} from "electron"; +import type {MenuItemConstructorOptions, MenuItem} from "electron" +import packageInfo from '../../../package.json'; +import * as diyConst from "../config/const"; +import {trayURL} from "../config/staticPath"; + +function platform() { + if (process.platform === "darwin") return "Mac OS"; + return process.platform; +} + +const type = platform(); +const release = process.getSystemVersion(); +const arch = process.arch; + +function info() { + dialog.showMessageBox({ + title: '关于', + type: 'info', + message: `${packageInfo.title}`, + detail: `版本信息:${packageInfo.version}\n引擎版本:${process.versions.v8}\n当前系统:${type} ${arch} ${release}`, + noLink: true, + buttons: ["官网", '确定'] + }).then(r => { + console.log(r); + if (r.response === 0) { + const win = new BrowserWindow({width: 800, height: 600}) + // Load a remote URL + win.loadURL(diyConst.GwLink); + // Or load a local HTML file + // win.loadFile('index.html') + } + }) +} + +export function sleep(ms: number) { + return new Promise(resolve => { + setTimeout(resolve, ms) + }) +} + +export function createTrayWindow() { + const win = new BrowserWindow({ + width: 300, + height: 160, + show: false, + opacity: 0, + resizable: false, + movable: false, + frame: false, + hiddenInMissionControl: true, + skipTaskbar: true, + visualEffectState: 'active', + vibrancy: 'menu' + }) + win.loadURL(trayURL) + + win.on('blur', async () => { + let opacity = 1 + while (opacity > 0) { + await sleep(10) + opacity -= 0.1 + win.setOpacity(opacity) + } + win.hide() + }) + + win.on('show', async () => { + let opacity = 0 + while (opacity < 1) { + await sleep(10) + opacity += 0.2 + win.setOpacity(opacity) + } + win.focus() + }) + return win +} + +const menu: Array<(MenuItemConstructorOptions) | (MenuItem)> = [ + { + label: "快速重启", + accelerator: "F5", + role: "reload", + }, + + { + label: '编辑', + submenu: [{ + label: '撤销', + accelerator: 'CmdOrCtrl+Z', + role: 'undo' + }, + { + label: '重做', + accelerator: 'Shift+CmdOrCtrl+Z', + role: 'redo' + }, + { + label: '剪切', + accelerator: 'CmdOrCtrl+X', + role: 'cut' + }, + { + label: '复制', + accelerator: 'CmdOrCtrl+C', + role: 'copy' + }, + { + label: '粘贴', + accelerator: 'CmdOrCtrl+V', + role: 'paste' + } + ] + }, + { + label: "关于我们", + click: info + }, + { + label: "退出", + accelerator: "CmdOrCtrl+F4", + role: "close", + } +]; + +export default Menu.buildFromTemplate(menu) diff --git a/src/main/index.ts b/src/main/index.ts new file mode 100644 index 0000000..03a223d --- /dev/null +++ b/src/main/index.ts @@ -0,0 +1,78 @@ +'use strict' + +import {app, session} from 'electron' +import InitWindow from './services/windowManager' +import disableButton from './hook/disableButtonHook' +import {initTray} from './services/trayManager' +import domains from "./config/domains"; +import server from "./server"; + +function onAppReady() { + new InitWindow().initWindow() + initTray() + disableButton.disableF12() + if (process.env.NODE_ENV === 'development') { + const {VUEJS_DEVTOOLS} = require("electron-devtools-vendor"); + session.defaultSession.loadExtension(VUEJS_DEVTOOLS, { + allowFileAccess: true, + }).then(r => { + console.log('已安装: vue-devtools'); + }); + + //添加启动内置服务器 + server.StartServer().then((r) => { + console.log('内置服务器已启动'); + }) + } +} + +app.whenReady().then(onAppReady) + +//禁止程序多开;需要单例锁的时候用 +const gotTheLock = app.requestSingleInstanceLock() +if (!gotTheLock) { + console.log("检测到应用单例锁") + app.quit() +} + +// 由于9.x版本问题,需要加入该配置关闭跨域问题 +app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') + +app.on('window-all-closed', () => { + // 所有平台均为所有窗口关闭就退出软件 + app.quit() +}) +app.on('browser-window-created', () => { + console.log('window-created') +}) +/** + * 安全检查 + * 创建WebView前先检查内容来源 + */ +app.on('web-contents-created', (event, contents) => { + contents.on('will-attach-webview', (event, webPreferences, params) => { + let isSafe = 0; + domains.some((d) => { + // 验证正在加载的 URL + if (!params.src.startsWith(d)) { + isSafe -= 1; + } + }) + if (isSafe < 0) { + // 禁用 Node.js 集成 + // webPreferences.nodeIntegration = false; + // event.preventDefault() + // 如果未使用,则删除预加载脚本或验证其位置是否合法 + // delete webPreferences.preload + } + }) +}) + +if (process.defaultApp) { + if (process.argv.length >= 2) { + app.removeAsDefaultProtocolClient('Hi-sass-frame') + console.log('由于框架特殊性,开发环境下无法使用') + } +} else { + app.setAsDefaultProtocolClient('Hi-sass-frame') +} diff --git a/src/main/ipc.ts b/src/main/ipc.ts new file mode 100644 index 0000000..b873dde --- /dev/null +++ b/src/main/ipc.ts @@ -0,0 +1,419 @@ +import type { + IpcMainInvokeEvent, + IpcRendererEvent, + MessageBoxOptions, + MessageBoxReturnValue, + PrinterInfo, + WebContents, + WebContentsPrintOptions, +} from "electron"; +import {ProgressInfo} from "electron-updater"; +// import _channels_ from "./config/channels"; + +/** + * 定义主进程监听类型 + * send:消息发送事件 + * receive:消息接收事件 + */ +type IpcMainEventListener = { + ipcMainHandle: ( + event: IpcMainInvokeEvent, + args: Send + ) => Receive | Promise; + ipcRendererInvoke: (args: Send) => Promise; +}; +/** + * 定义渲染进程监听类型 + */ +type IpcRendererEventListener = { + ipcRendererOn: (event: IpcRendererEvent, args?: Send) => void; + webContentSend: (args: Send) => void; +}; + +/** + * 枚举进程名称定义 + */ +export const enum IpcChannel { + /** + * 是否使用无边框 + */ + IsUseSysTitle = "IsUseSysTitle", + + /** + * 窗口最小化 + */ + WindowMini = "windows-mini", + + /** + * 窗口最大化 + */ + WindowMax = "window-max", + + /** + * 窗口关闭 + */ + WindowClose = "window-close", + + /** + * 检查更新 + */ + CheckUpdate = "check-update", + + /** + * 确认更新 + */ + ConfirmUpdate = "confirm-update", + + /** + * app退出 + */ + AppClose = "app-close", + + /** + * 获取静态资源路径 + */ + GetStaticPath = "get-static-path", + + /** + * 打开系统弹窗信息 + */ + OpenMessagebox = "open-messagebox", + + /** + * 打开系统错误弹窗信息 + */ + OpenErrorbox = "open-errorbox", + + /** + * 开启http服务 + */ + StartServer = "start-server", + + /** + * 停止http服务 + */ + StopServer = "stop-server", + + /** + * 开启WS服务 + */ + StartWsServer = "start-wsserver", + + /** + * 停止WS服务 + */ + StopWsServer = "stop-wsserver", + + /** + * 增量更新 + */ + HotUpdate = "hot-update", + + /** + * 增量更新2 + */ + HotUpdateTest = "hot-update-test", + + /** + * 下载东西 + */ + StartDownload = "start-download", + + /** + * 打开新的弹窗 + */ + OpenWin = "open-win", + + /** + * 获取打印机信息 + */ + GetPrinters = "getPrinters", + + /** + * 打印 + */ + PrintHandlePrint = "printHandlePrint", + + /** + * 打开测试打印页面 + */ + OpenPrintDemoWindow = "openPrintDemoWindow", + + /** + * 下载进度回调 + */ + DownloadProgress = "download-progress", + + /** + * 下载错误回调 + */ + DownloadError = "download-error", + + /** + * 下载暂停回调 + */ + DownloadPaused = "download-paused", + + /** + * 下载完成回调 + */ + DownloadDone = "download-done", + + UpdateMsg = "UpdateMsg", + + /** + * 热更新状态回调 + */ + HotUpdateStatus = "hot-update-status", + + /** + * 数据测试回调 + */ + SendDataTest = "send-data-test", + + /** + * 添加新的默认页面 + */ + AddDefaultBrowserView = "add-default-browser-view", + + /** + * 选择tab + */ + SelectBrowserDemoTab = "select-browser-demo-tab", + + /** + * 关闭tab + */ + DestroyBrowserDemoTab = "destroy-browser-demo-tab", + + /** + * tab 跳转 + */ + BrowserDemoTabJumpToUrl = "browser-demo-tab-jump-to-url", + + /** + * 打开浏览器demo + */ + OpenBrowserDemoWindow = "open-browser-demo", + + /** + * Browser tab 鼠标按下 + */ + BrowserTabMousedown = "browser-tab-mousedown", + + /** + * Browser tab 鼠标拖动 + */ + BrowserTabMousemove = "browser-tab-mousemove", + + /** + * Browser tab 鼠标松开 + */ + BrowserTabMouseup = "browser-tab-mouseup", + + /** + * 获取最后一次拖动的 tab 信息 + */ + GetLastBrowserDemoTabData = "get-last-browser-demo-tab-data", + + /** + * 更新 tab 信息 + */ + BrowserViewTabDataUpdate = "browser-view-tab-data-updated", + + /** + * 更新 tab 坐标 + */ + BrowserViewTabPositionXUpdate = "browser-view-tab-position-x-updated", + + /** + * 设置在我的电脑显示 + */ + SetShowOnMyComputer = "set-show-on-my-computer", + /** + * 查询当前是否显示在我的电脑 + */ + CheckShowOnMyComputer = "check-show-on-my-computer", + /** + * 自定义Mock模拟网络请求-By fm453 + */ + Mocker = "get-mock-data", +} + +type IpcMainEvent = { + [IpcChannel.AppClose]: IpcMainEventListener; + [IpcChannel.CheckUpdate]: IpcMainEventListener; + [IpcChannel.ConfirmUpdate]: IpcMainEventListener; + [IpcChannel.GetStaticPath]: IpcMainEventListener; + [IpcChannel.HotUpdate]: IpcMainEventListener; + [IpcChannel.HotUpdateTest]: IpcMainEventListener; + [IpcChannel.IsUseSysTitle]: IpcMainEventListener; + [IpcChannel.OpenErrorbox]: IpcMainEventListener< + { title: string; message: string }, + void + >; + [IpcChannel.OpenMessagebox]: IpcMainEventListener< + MessageBoxOptions, + MessageBoxReturnValue + >; + [IpcChannel.OpenWin]: IpcMainEventListener< + { + /** + * 新的窗口地址 + * + * @type {string} + */ + url: string; + + /** + * 是否是支付页 + * + * @type {boolean} + */ + IsPay?: boolean; + + /** + * 支付参数 + * + * @type {string} + */ + PayUrl?: string; + + /** + * 发送的新页面数据 + * + * @type {unknown} + */ + sendData?: unknown; + }, + void + >; + [IpcChannel.StartDownload]: IpcMainEventListener; + [IpcChannel.StartServer]: IpcMainEventListener; + [IpcChannel.StopServer]: IpcMainEventListener; + [IpcChannel.StartWsServer]: IpcMainEventListener; + [IpcChannel.StopWsServer]: IpcMainEventListener; + [IpcChannel.WindowClose]: IpcMainEventListener; + [IpcChannel.WindowMax]: IpcMainEventListener; + [IpcChannel.WindowMini]: IpcMainEventListener; + [IpcChannel.GetPrinters]: IpcMainEventListener; + [IpcChannel.PrintHandlePrint]: IpcMainEventListener< + WebContentsPrintOptions, + { success: boolean; failureReason: string } + >; + [IpcChannel.OpenPrintDemoWindow]: IpcMainEventListener; + [IpcChannel.OpenBrowserDemoWindow]: IpcMainEventListener; + [IpcChannel.BrowserTabMousedown]: IpcMainEventListener< + { + offsetX: number; + }, + void + >; + [IpcChannel.BrowserTabMousemove]: IpcMainEventListener< + { + screenX: number; + screenY: number; + startX: number; + startY: number; + bvWebContentsId: number; + }, + void + >; + [IpcChannel.BrowserTabMouseup]: IpcMainEventListener; + [IpcChannel.AddDefaultBrowserView]: IpcMainEventListener< + void, + { bvWebContentsId: number } + >; + [IpcChannel.SelectBrowserDemoTab]: IpcMainEventListener; + [IpcChannel.DestroyBrowserDemoTab]: IpcMainEventListener; + [IpcChannel.BrowserDemoTabJumpToUrl]: IpcMainEventListener< + { + url: string; + bvWebContentsId: number; + }, + void + >; + [IpcChannel.GetLastBrowserDemoTabData]: IpcMainEventListener< + void, + { + positionX: number; + bvWebContentsId: number; + title: string; + url: string; + } + >; + [IpcChannel.CheckShowOnMyComputer]: IpcMainEventListener; + [IpcChannel.SetShowOnMyComputer]: IpcMainEventListener; +}; + +type IpcRenderderEvent = { + [IpcChannel.DownloadProgress]: IpcRendererEventListener; + [IpcChannel.DownloadError]: IpcRendererEventListener; + [IpcChannel.DownloadPaused]: IpcRendererEventListener; + [IpcChannel.DownloadDone]: IpcRendererEventListener<{ + /** + * 下载的文件路径 + * + * @type {string} + */ + filePath: string; + }>; + [IpcChannel.UpdateMsg]: IpcRendererEventListener<{ + state: number; + msg: string | ProgressInfo; + }>; + [IpcChannel.HotUpdateStatus]: IpcRendererEventListener<{ + status: + | "init" + | "downloading" + | "moving" + | "finished" + | "failed" + | "download"; + message: string; + }>; + + [IpcChannel.SendDataTest]: IpcRendererEventListener; + [IpcChannel.BrowserViewTabDataUpdate]: IpcRendererEventListener<{ + bvWebContentsId: number; + title: string; + url: string; + status: 1 | -1; // 1 添加/更新 -1 删除 + }>; + [IpcChannel.BrowserViewTabPositionXUpdate]: IpcRendererEventListener<{ + dragTabOffsetX: number; + positionX: number; + bvWebContentsId: number; + }>; + [IpcChannel.BrowserTabMouseup]: IpcRendererEventListener; +}; + +export type IpcMainHandle = { + [Key in keyof IpcMainEvent]: IpcMainEvent[Key]["ipcMainHandle"]; +}; + +export type IpcRendererInvoke = { + [Key in keyof IpcMainEvent]: IpcMainEvent[Key]["ipcRendererInvoke"]; +}; + +export type IpcRendererOn = { + [Key in keyof IpcRenderderEvent]: IpcRenderderEvent[Key]["ipcRendererOn"]; +}; + +export type WebContentSend = { + [Key in keyof IpcRenderderEvent]: IpcRenderderEvent[Key]["webContentSend"]; +}; + +type VoidParametersWebContentSendKey = { + [K in keyof WebContentSend]: Parameters[0] extends void ? K : never +}[keyof WebContentSend] + +type NotVoidParametersWebContentSendKey = Exclude + + +export function winContentSend(win: WebContents, channel: T): void; +export function winContentSend(win: WebContents, channel: T, args: Parameters[0]): void; + +export function winContentSend(win: WebContents, channel: T, args?: Parameters[0]): void { + win.send(channel, args); +} diff --git a/src/main/server/index.ts b/src/main/server/index.ts new file mode 100644 index 0000000..4145ac3 --- /dev/null +++ b/src/main/server/index.ts @@ -0,0 +1,67 @@ +/* eslint-disable prefer-promise-reject-errors */ +import appExp from "./server"; +import { BuiltInServerPort } from "../config/const"; +import { createServer, Server } from "http"; +const port = BuiltInServerPort; + +class SingleServer { + constructor(app: any) { + app.set("port", port); + this.server = createServer(app); + this.server.keepAliveTimeout = 0; + this.server.on("connection", (socket) => { + // keep-alive 1s后自动关闭 + socket.setTimeout(1000); + }); + } + server: Server; + startServer() { + return new Promise((resolve: (value: string) => void, reject) => { + try { + this.server.listen(port); + resolve("内置服务端已经启动"); + } catch (error) { + switch (error.code) { + case "ERR_SERVER_ALREADY_LISTEN": + resolve("服务端已经启动"); + break; + case "EACCES": + reject("权限不足内置服务器启动失败,请使用管理员权限运行。"); + break; + case "EADDRINUSE": + reject("内置服务器端口已被占用,请检查。"); + break; + default: + reject(error); + } + } + }); + } + stopServer() { + return new Promise((resolve: (value: string) => void, reject) => { + this.server.close((err) => { + if (err) { + switch ((err as any).code) { + case "ERR_SERVER_NOT_RUNNING": + resolve("服务端未启动"); + break; + default: + reject(err); + } + } else { + resolve("服务端已关闭"); + } + }); + }); + } +} + +const singleServer = new SingleServer(appExp); +export default { + StartServer() { + return singleServer.startServer(); + }, + StopServer() { + return singleServer.stopServer(); + }, +}; diff --git a/src/main/server/server.ts b/src/main/server/server.ts new file mode 100644 index 0000000..469a0d3 --- /dev/null +++ b/src/main/server/server.ts @@ -0,0 +1,81 @@ +import express from 'express' + +const app = express() +const router = express.Router(); +import config from "../config/const"; + +const BaseApi = process.env.REMOTE_API ?? config.RemoteApi; + +/** + * 解决跨域 + */ +const cors = (req, res, next) => { + //设置允许跨域的域名,*代表允许任意域名跨域 + res.header("Access-Control-Allow-Origin", "*"); + //允许的header类型 + res.header("Access-Control-Allow-Headers", "*"); + res.header("Access-Control-Allow-Credentials", true); + //跨域允许的请求方式 + res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); + res.header("Content-Type", "application/json;charset=utf-8") + + if (req.method.toLowerCase() === 'options') + res.sendStatus(200); //让options尝试请求快速结束 + else + next(); +} + +//添加空路由占位符,后期动态添加路由用 +// const arr = ["GET","POST","DELETE","PUT","HEAD","OPTIONS"]; +// arr.some((method)=>{ +// let m = lowerCase(method); +// router[m]("/*", (req,res,next)=>{ +// next(); +// }) +// }); + +//示范 +app.get('/message', (req, res) => { + res.send('这是来自node服务端的信息') +}) + +app.post('/message', (req, res) => { + if (req) { + res.send(req + '--来自node') + } +}) + +// 引入mock +import mocks from "../../renderer/mock/index"; +import {lowerCase} from "lodash"; + +for (let i in mocks) { + let mocker = mocks[i]; + mocker.forEach(mock => { + // console.log(BaseApi+mock.url); + let api = BaseApi + mock.url; + let callback = function (req, res) { + // console.log(req.params); + //{userId:'2'} + if (Object.keys(req.params).length > 0) { + // console.log(mock.body) + let data = mock.body({params: req.params}); + // console.log(data) + res.send(data); + } else { + let data = mock.body + res.send(data); + } + } + /** + * 请求类型 ["GET","POST","DELETE","PUT","HEAD","OPTIONS",……]; + */ + let methods = mock.method; + methods.some((method) => { + let m = lowerCase(method); + router[m](api, callback) + }); + }); +} +app.use("/", cors, router); +export default app diff --git a/src/main/server/wsRouters.ts b/src/main/server/wsRouters.ts new file mode 100644 index 0000000..9eeb615 --- /dev/null +++ b/src/main/server/wsRouters.ts @@ -0,0 +1,84 @@ +import express from 'express'; +import expressWs from "express-ws"; + +const router = express.Router(); +const app = express(); +expressWs(app);//混入功能,使router支持ws方法 +const wsClients = []; + +/** + * 解决跨域 + */ +const cors = (req, res, next) => { + //设置允许跨域的域名,*代表允许任意域名跨域 + res.header("Access-Control-Allow-Origin", "*"); + //允许的header类型 + res.header("Access-Control-Allow-Headers", "*"); + res.header("Access-Control-Allow-Credentials", true); + //跨域允许的请求方式 + res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); + res.header("Content-Type", "application/json;charset=utf-8") + + if (req.method.toLowerCase() === 'options') + res.sendStatus(200); //让options尝试请求快速结束 + else + next(); +} + +/** + * 接收client的command请求 + * @param cmd + */ +function get(cmd) { + console.log(cmd) +} + +/** + * 发送command到client端 + * @param msg + * @param cb + */ +function send(msg: string, cb) { + cb.send(msg) +} + +/** + * 设置ws的回调方法 + */ +function callback(ws, req, next) { + // 有客户端连接时, 打印一条日志 + console.log("client connect to server successful!", req, next); + // 保存客户端标识 + wsClients.push(ws); + ws.on('connect', () => { + ws.send('hello, I am wss'); + }); + // 创建message监听 + ws.on('message', (msg) => { + // 直接将消息打印出来 + console.log("receive client msg :", msg); + //处理接收的消息 + get(msg); + send("演示自动回复一个消息", ws); + }); + //监听客户端断连 + ws.on("close", function (msg) { + console.log("client is closed", msg); + for (var index = 0; index < wsClients.length; index++) { + if (wsClients[index] === this) { + wsClients.splice(index, 1) + } + } + }); +} + +//合并app +// import appExp from "./server"; +// const newApp = {...app,...appExp} +/** + * 构造路由 + */ +router.ws('/*', callback); + +app.use('/ws', cors, router); +export default app; diff --git a/src/main/server/wsServer.ts b/src/main/server/wsServer.ts new file mode 100644 index 0000000..b797f5c --- /dev/null +++ b/src/main/server/wsServer.ts @@ -0,0 +1,72 @@ +/** + * 利用express-ws创建wss服务;注意这个只能在主进程(如 src/main/index.ts)中加载 + * 只是个演示,生产中其实不需要也不建议在本地搭建WSS服务 + */ +import expressWs from "express-ws"; +/** + * 引入http服务器 + */ +import { createServer, Server } from "http"; +/** + * 初始化WS服务,并设置最大传输文件大小 + */ +const port = 8888; +class WsServer { + constructor(app: any) { + app.set("port", port); + this.server = createServer(app); + expressWs(app, this.server, { wsOptions: { maxPayload: 5 * 1024 * 1024 * 1024, } }) + } + + server: Server; + startServer() { + return new Promise((resolve: (value: string) => void, reject) => { + try { + this.server.listen(port); + resolve("内置WS服务端已经启动"); + } catch (error) { + switch (error.code) { + case "ERR_SERVER_ALREADY_LISTEN": + resolve("WS服务端已经启动"); + break; + case "EACCES": + reject("权限不足WS服务器启动失败,请使用管理员权限运行。"); + break; + case "EADDRINUSE": + reject("WS服务器端口已被占用,请检查。"); + break; + default: + reject(error); + } + } + }); + } + stopServer() { + return new Promise((resolve: (value: string) => void, reject) => { + this.server.close((err) => { + if (err) { + switch ((err as any).code) { + case "ERR_SERVER_NOT_RUNNING": + resolve("WS服务端未启动"); + break; + default: + reject(err); + } + } else { + resolve("WS服务端已关闭"); + } + }); + }); + } +} + +import app from "./wsRouters"; +const myServer = new WsServer(app); +export default { + StartServer() { + return myServer.startServer(); + }, + StopServer() { + return myServer.stopServer(); + }, +}; diff --git a/src/main/services/HotUpdater.ts b/src/main/services/HotUpdater.ts new file mode 100644 index 0000000..d1aa3db --- /dev/null +++ b/src/main/services/HotUpdater.ts @@ -0,0 +1,101 @@ +/** + * power by biuuu + */ + +import {emptyDir, createWriteStream, readFile, copy, remove} from 'fs-extra' +import {join, resolve} from 'path' +import {promisify} from 'util' +import {pipeline} from 'stream' +import {app, BrowserWindow} from 'electron' +import {gt} from 'semver' +import {createHmac} from 'crypto' +import extract from 'extract-zip' +import {version} from '../../../package.json' +import {hotPublishConfig} from '../config/hotPublish' +import axios from 'axios' +import {IpcChannel, winContentSend} from "../ipc"; + +const streamPipeline = promisify(pipeline) +const appPath = app.getAppPath() +const updatePath = resolve(appPath, '..', '..', 'update') +const request = axios.create() + +/** + * @param data 文件流 + * @param type 类型,默认sha256 + * @param key 密钥,用于匹配计算结果 + * @returns {string} 计算结果 + * @author umbrella22 + * @date 2021-03-05 + */ +function hash(data, type = 'sha256', key = 'Sky') { + const hmac = createHmac(type, key) + hmac.update(data) + return hmac.digest('hex') +} + + +/** + * @param url 下载地址 + * @param filePath 文件存放地址 + * @returns {void} + * @author umbrella22 + * @date 2021-03-05 + */ +async function download(url: string, filePath: string) { + const res = await request({url, responseType: "stream"}) + await streamPipeline(res.data, createWriteStream(filePath)) +} + +const updateInfo: { + status: "init" | "downloading" | "moving" | "finished" | "failed"; + message: string; +} = { + status: 'init', + message: '' +} + +/** + * @param windows 指主窗口 + * @returns {void} + * @author umbrella22 + * @date 2021-03-05 + */ +export const updater = async (windows?: BrowserWindow) => { + const statusCallback = (status: { + status: "init" | "downloading" | "moving" | "finished" | "failed"; + message: string; + }) => { + if (windows) winContentSend(windows.webContents, IpcChannel.HotUpdateStatus, status) + } + try { + const res = await request({url: `${hotPublishConfig.url}/${hotPublishConfig.configName}.json?time=${new Date().getTime()}`,}) + if (!gt(res.data.version, version)) return + await emptyDir(updatePath) + const filePath = join(updatePath, res.data.name) + updateInfo.status = 'downloading' + statusCallback(updateInfo); + await download(`${hotPublishConfig.url}/${res.data.name}`, filePath); + const buffer = await readFile(filePath) + const sha256 = hash(buffer) + if (sha256 !== res.data.hash) throw new Error('sha256 error') + const appPathTemp = join(updatePath, 'temp') + await extract(filePath, {dir: appPathTemp}) + updateInfo.status = 'moving' + statusCallback(updateInfo); + await remove(join(`${appPath}`, 'dist')); + await remove(join(`${appPath}`, 'package.json')); + await copy(appPathTemp, appPath) + updateInfo.status = 'finished' + statusCallback(updateInfo); + resolve('success') + + } catch (error) { + console.log(error) + updateInfo.status = 'failed' + updateInfo.message = error.message ? error.message : error + statusCallback(updateInfo) + } +} + +export const getUpdateInfo = () => updateInfo diff --git a/src/main/services/HotUpdaterTest.ts b/src/main/services/HotUpdaterTest.ts new file mode 100644 index 0000000..4844e14 --- /dev/null +++ b/src/main/services/HotUpdaterTest.ts @@ -0,0 +1,62 @@ +import {app, BrowserWindow} from "electron"; +import {UpdateInfo, UpdateJson, UpdateStatus, UpdateElectron} from "electron_updater_node_core" +import {dirname, join} from "path"; +import {version} from '../../../package.json' +import {Readable} from "stream"; +import axios from 'axios' + +const request = axios.create() +import updateConfig from "../../../updateConfig.json"; +import {IpcChannel, winContentSend} from "../ipc"; + +/** + * 增量更新 + * + * @export + * @param {BrowserWindow} [windows] + */ +export async function updater(windows?: BrowserWindow) { + const statusCallback = (status: UpdateInfo) => { + if (windows) winContentSend(windows.webContents, IpcChannel.HotUpdateStatus, status) + } + const downloadFn = async (url: string): Promise => { + const response = await request({ + method: 'get', + url: url, + responseType: 'stream', + }); + return response.data; + } + const dirDirectory = join(app.getAppPath(), '..', '..'); + const tempDirectory = join(dirDirectory, updateConfig.tempDirectory); + try { + const res = await request({url: `${updateConfig.url}/${updateConfig.updateJsonName}.json?time=${new Date().getTime()}`,}) + const updateJson: UpdateJson = res.data; + const updateElectron = new UpdateElectron(statusCallback, updateConfig.updaterName || "updater", version, app.getPath('exe'), tempDirectory, updateConfig.updateJsonName, updateJson, `${updateConfig.url}/${updateConfig.target + updateJson.version}`, downloadFn) + const needUpdateNumber = await updateElectron.checkForUpdates(); + // have nothing to update + if (needUpdateNumber === 0) { + console.log("have nothing to update"); + return UpdateStatus.HaveNothingUpdate; + } else { + const download = await updateElectron.downloadUpdate(); + if (download) { + const r = await updateElectron.install(false, true); + if (r) { + return UpdateStatus.Success; + } else { + throw new Error("update Fail") + } + } else { + throw new Error("download Fail") + } + } + } catch (error) { + console.log(error); + const updateInfo = new UpdateInfo(); + updateInfo.status = 'failed' + updateInfo.message = error; + statusCallback(updateInfo); + return UpdateStatus.Failed + } +} diff --git a/src/main/services/checkUpdate.ts b/src/main/services/checkUpdate.ts new file mode 100644 index 0000000..d33b5a6 --- /dev/null +++ b/src/main/services/checkUpdate.ts @@ -0,0 +1,82 @@ +import {ProgressInfo, autoUpdater} from 'electron-updater' +import {BrowserWindow} from 'electron' +import {IpcChannel, winContentSend} from "../ipc"; + + +/** + * -1 检查更新失败 0 正在检查更新 1 检测到新版本,准备下载 2 未检测到新版本 3 下载中 4 下载完成 + **/ +class Update { + public mainWindow: BrowserWindow + + constructor() { + // 设置url + autoUpdater.setFeedURL('http://127.0.0.1:25565/') + + // 当更新发生错误的时候触发。 + autoUpdater.on('error', (err) => { + console.log('更新出现错误', err.message) + if (err.message.includes('sha512 checksum mismatch')) { + this.Message(this.mainWindow, -1, 'sha512校验失败') + } else { + this.Message(this.mainWindow, -1, '错误信息请看主进程控制台') + + } + }) + + // 当开始检查更新的时候触发 + autoUpdater.on('checking-for-update', () => { + console.log('开始检查更新') + this.Message(this.mainWindow, 0) + }) + + // 发现可更新数据时 + autoUpdater.on('update-available', () => { + console.log('有更新') + this.Message(this.mainWindow, 1) + }) + + // 没有可更新数据时 + autoUpdater.on('update-not-available', () => { + console.log('没有更新') + this.Message(this.mainWindow, 2) + }) + + // 下载监听 + autoUpdater.on('download-progress', (progressObj) => { + this.Message(this.mainWindow, 3, progressObj) + }) + + // 下载完成 + autoUpdater.on('update-downloaded', () => { + console.log('下载完成') + this.Message(this.mainWindow, 4) + }) + + + } + + // 负责向渲染进程发送信息 + Message(mainWindow: BrowserWindow, type: number, data: string | ProgressInfo = "") { + const senddata = { + state: type, + msg: data + } + winContentSend(mainWindow.webContents, IpcChannel.UpdateMsg, senddata) + } + + // 执行自动更新检查 + checkUpdate(mainWindow: BrowserWindow) { + this.mainWindow = mainWindow + autoUpdater.checkForUpdates().catch(err => { + console.log('网络连接问题', err) + }) + } + + // 退出并安装 + quitAndInstall() { + autoUpdater.quitAndInstall() + } +} + +export default Update diff --git a/src/main/services/downloadFile.ts b/src/main/services/downloadFile.ts new file mode 100644 index 0000000..4024945 --- /dev/null +++ b/src/main/services/downloadFile.ts @@ -0,0 +1,135 @@ +import {app, BrowserWindow, dialog} from "electron"; + +import {join} from "path"; +import {arch, platform} from "os"; +import {stat, remove, appendFileSync} from "fs-extra"; +import type {IncomingMessage} from "http"; +import {request as httpRequest} from "http"; +import {request as httpsRequest} from "https"; +import packageInfo from "../../../package.json"; +import {IpcChannel, winContentSend} from "../ipc"; + +/** + * + * @description + * @returns {void} 下载类 + * @param {mainWindow} 主窗口 + * @param {downloadUrl} 下载地址,当未传入时则会使用预先设置好的baseUrl拼接名称 + * @author Sky + * @date 2020-08-12 + */ + +class Main { + public mainWindow: BrowserWindow = null; + public downloadUrl: string = ""; + public fileName: string = ""; + public filePath: string = ""; + public version: string = packageInfo.version; + public baseUrl: string = process.env.BASE_API; + public Sysarch: string = arch().includes("64") ? "win64" : "win32"; + public HistoryFilePath = join( + app.getPath("downloads"), + platform().includes("win32") + ? `electron_${this.version}_${this.Sysarch}.exe` + : `electron_${this.version}_mac.dmg` + ); + + constructor(mainWindow: BrowserWindow, downloadUrl?: string) { + this.mainWindow = mainWindow; + if (downloadUrl) { + this.downloadUrl = downloadUrl; + } else { + this.downloadUrl = platform().includes("win32") + ? this.baseUrl + + `electron_${this.version}_${this.Sysarch}.exe?${new Date().getTime()}` + : this.baseUrl + + `electron_${this.version}_mac.dmg?${new Date().getTime()}`; + } + } + + start() { + // 更新时检查有无同名文件,若有就删除,若无就开始下载 + stat(this.HistoryFilePath, async (err, stats) => { + try { + if (stats) { + await remove(this.HistoryFilePath); + } + this.download( + this.downloadUrl, + (chunk: any, size: number, fullSize: number) => { + // 保存文件 + appendFileSync(this.filePath, chunk, {encoding: "binary"}); + + //发送进度 + winContentSend(this.mainWindow.webContents, IpcChannel.DownloadProgress, Number(((size / fullSize) * 100).toFixed(2))); + + //完成后反馈 + if (size === fullSize) { + const data = { + filePath: this.filePath, + }; + winContentSend(this.mainWindow.webContents, IpcChannel.DownloadDone, data); + return; + } + } + ).catch((err) => { + winContentSend(this.mainWindow.webContents, IpcChannel.DownloadError, true); + console.error(err); + dialog.showErrorBox("下载出错", err.message); + }); + } catch (error) { + console.log(error); + } + }); + } + + download( + url: string, + onDown: (chunk: any, size: number, fullSize: number) => void + ) { + return new Promise((resolve, reject) => { + try { + let size: number = 0; + const ing = (response: IncomingMessage) => { + if (response.statusCode && response.statusCode === 301) { + this.download(response.headers.location as string, onDown) + .then(resolve) + .catch(reject); + return; + } + const fullSize = Number(response.headers["content-length"] || 0); + this.fileName = response.headers["content-disposition"] + .match(/filename=[\"|'](.*?)[\"|']/gi)[0] + .match(/["|'](.*)["|']/)[1]; + this.filePath = join(app.getPath("downloads"), this.fileName); + response.on("data", (chunk) => { + size += chunk.length; + onDown(chunk, size, fullSize); + }); + response.on("end", () => { + if (response.statusCode && response.statusCode >= 400) { + reject(new Error(response.statusCode + "")); + return; + } + resolve({ + msg: "downloaded", + fullSize, + }); + }); + }; + let request; + const isHttp = url.startsWith("http://"); + if (isHttp) request = httpRequest(url, {}, ing); + request = httpsRequest(url, {}, ing); + request.on("destroyed", () => reject(new Error("destroy"))); + request.on("error", (err) => reject(err)); + request.end(); + } catch (error) { + console.log(error); + reject(error); + } + }); + } +} + +export default Main; diff --git a/src/main/services/ipcMain-bak.ts b/src/main/services/ipcMain-bak.ts new file mode 100644 index 0000000..280b815 --- /dev/null +++ b/src/main/services/ipcMain-bak.ts @@ -0,0 +1,186 @@ +import {ipcMain, dialog, BrowserWindow, app, WebContents} from "electron"; +import {IsUseSysTitle} from "../config/const"; +import Server from "../server"; +import WsServer from "../server/wsServer"; +import {winURL, preloadURL, staticPaths} from "../config/staticPath"; +import {updater} from "./HotUpdater"; +import {updater as updaterTest} from "./HotUpdaterTest"; +import DownloadFile from "./downloadFile"; +import Update from "./checkUpdate"; +import {otherWindowConfig} from "../config/windowsConfig"; +import {usePrintHandle} from "src/main/handle/printHandle"; +import {useBrowserHandle} from "src/main/handle/browserHandle"; +import {useMainHandle} from "src/main/handle/mainHandle"; +import {UpdateStatus} from "electron_updater_node_core"; +import {IpcMainHandle, IpcChannel, winContentSend} from "../ipc"; +import {ProgressInfo} from "electron-updater"; +import {showOnMyComputer, hideOnMyComputer, checkIsShowOnMyComputer} from "./regeditUtils" +import {openDevTools} from "../hook/devToolHook"; + +const ALL_UPDATER = new Update(); + +const ipcMainHandle: IpcMainHandle = { + [IpcChannel.IsUseSysTitle]: () => { + return IsUseSysTitle; + }, + + [IpcChannel.WindowMini]: (event) => { + BrowserWindow.fromWebContents(event.sender)?.minimize(); + }, + [IpcChannel.WindowMax]: (event) => { + if (BrowserWindow.fromWebContents(event.sender)?.isMaximized()) { + BrowserWindow.fromWebContents(event.sender)?.restore(); + return {status: false}; + } else { + BrowserWindow.fromWebContents(event.sender)?.maximize(); + return {status: true}; + } + }, + [IpcChannel.WindowClose]: (event) => { + BrowserWindow.fromWebContents(event.sender)?.close(); + }, + + [IpcChannel.CheckUpdate]: (event) => { + ALL_UPDATER.checkUpdate(BrowserWindow.fromWebContents(event.sender)); + }, + [IpcChannel.ConfirmUpdate]: () => { + ALL_UPDATER.quitAndInstall(); + }, + [IpcChannel.AppClose]: () => { + //关闭APP前先停止内置服务器 By fm453 + // Server.StopServer(); + // + app.quit(); + }, + [IpcChannel.GetStaticPath]: () => { + return staticPaths; + }, + [IpcChannel.OpenMessagebox]: async (event, arg) => { + return dialog.showMessageBox( + BrowserWindow.fromWebContents(event.sender), + { + type: arg.type || "info", + title: arg.title || "", + buttons: arg.buttons || [], + message: arg.message || "", + noLink: arg.noLink || true, + } + ); + }, + + [IpcChannel.OpenErrorbox]: (_event, arg) => { + dialog.showErrorBox(arg.title, arg.message) + }, + [IpcChannel.StartServer]: async () => { + try { + const serverStatus = await Server.StartServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StopServer]: async () => { + try { + const serverStatus = await Server.StopServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StartWsServer]: async () => { + try { + const serverStatus = await WsServer.StartServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + [IpcChannel.StopWsServer]: async () => { + try { + const serverStatus = await WsServer.StopServer(); + return serverStatus; + } catch (error) { + dialog.showErrorBox("错误", error); + return "" + } + }, + + [IpcChannel.HotUpdate]: (event) => { + updater(BrowserWindow.fromWebContents(event.sender)) + }, + [IpcChannel.HotUpdateTest]: async (event, arg) => { + console.log("hot-update-test"); + try { + let updateInfo = await updaterTest( + BrowserWindow.fromWebContents(event.sender) + ); + if (updateInfo === UpdateStatus.Success) { + app.quit(); + } else if (updateInfo === UpdateStatus.HaveNothingUpdate) { + console.log("不需要更新"); + } else if (updateInfo === UpdateStatus.Failed) { + console.error("更新出错"); + } + } catch (error) { + // 更新出错 + console.error("更新出错"); + } + }, + [IpcChannel.StartDownload]: (event, downloadUrl) => { + new DownloadFile( + BrowserWindow.fromWebContents(event.sender), + downloadUrl + ).start(); + }, + [IpcChannel.OpenWin]: (_event, arg) => { + const ChildWin = new BrowserWindow({ + titleBarStyle: IsUseSysTitle ? "default" : "hidden", + ...Object.assign(otherWindowConfig, {}), + }); + // 开发模式下自动开启devtools + if (process.env.NODE_ENV === "development") { + openDevTools(ChildWin) + } + ChildWin.loadURL(winURL + `#${arg.url}`); + ChildWin.once("ready-to-show", () => { + ChildWin.show(); + if (arg.IsPay) { + // 检查支付时候自动关闭小窗口 + const testUrl = setInterval(() => { + const Url = ChildWin.webContents.getURL(); + if (Url.includes(arg.PayUrl)) { + ChildWin.close(); + } + }, 1200); + ChildWin.on("close", () => { + clearInterval(testUrl); + }); + } + }); + // 渲染进程显示时触发 + ChildWin.once("show", () => { + ChildWin.webContents.send("send-data-test", arg.sendData); + }); + }, + [IpcChannel.CheckShowOnMyComputer]: async () => { + return await checkIsShowOnMyComputer() + }, + [IpcChannel.SetShowOnMyComputer]: async (event, bool) => { + if (bool) { + return await showOnMyComputer() + } else { + return await hideOnMyComputer() + } + }, + ...usePrintHandle(), + ...useBrowserHandle(), +} + +export function installIpcMain() { + Object.entries(ipcMainHandle).forEach(([ipcChannelName, ipcListener]) => { + ipcMain.handle(ipcChannelName, ipcListener) + }) +} diff --git a/src/main/services/ipcMain.ts b/src/main/services/ipcMain.ts new file mode 100644 index 0000000..4834926 --- /dev/null +++ b/src/main/services/ipcMain.ts @@ -0,0 +1,21 @@ +import {ipcMain} from "electron"; +import {usePrintHandle} from "../handle/printHandle"; +import {useBrowserHandle} from "../handle/browserHandle"; +import {useMainHandle} from "../handle/mainHandle"; +import {useUpdateHandle} from "../handle/updateHandle"; +import {useServerHandle} from "../handle/serverHandle"; +import {IpcMainHandle} from "../ipc"; + +const ipcMainHandle: IpcMainHandle = { + ...useMainHandle(), + ...useBrowserHandle(), + ...usePrintHandle(), + ...useServerHandle(), + ...useUpdateHandle(), +} + +export function installIpcMain() { + Object.entries(ipcMainHandle).forEach(([ipcChannelName, ipcListener]) => { + ipcMain.handle(ipcChannelName, ipcListener) + }) +} diff --git a/src/main/services/regeditUtils.ts b/src/main/services/regeditUtils.ts new file mode 100644 index 0000000..a685bca --- /dev/null +++ b/src/main/services/regeditUtils.ts @@ -0,0 +1,165 @@ +import { app } from "electron"; +import regedit from "regedit"; +import { v5 as uuidv5 } from "uuid"; +import { appId } from "../../../build.json"; + +const reg = regedit.promisified; + +const appName = app.getName(); +const exePath = app.getPath("exe"); + +const ELECTRON_BUILDER_NS_UUID = "50e065bc-3134-11e6-9bab-38c9862bdaf3"; +const GUID = `{${uuidv5(appId, ELECTRON_BUILDER_NS_UUID)}}`; +const options = { + name: appName, // 显示名 + infoTip: "双击运行" + appName, // 鼠标移入显示 + localizedString: appName, // 本地化显示名 + itemAuthors: "双击运行" + appName, // 显示名下描述 + iconPath: exePath, // exe / ico + exe: exePath, // 双击打开 +}; +// 在设备和驱动器占位 +const nameSpacePath = + "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\NameSpace"; +const appInNameSpacePath = `HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\NameSpace\\${GUID}`; + +// 配置设备和驱动器信息 +const clsidPath = `HKCU\\Software\\Classes\\CLSID`; +const appInClsidPath = `HKCU\\Software\\Classes\\CLSID\\${GUID}`; +const appInClsidShell = `HKCU\\Software\\Classes\\CLSID\\${GUID}\\Shell`; +const appInClsidShellOpen = `HKCU\\Software\\Classes\\CLSID\\${GUID}\\Shell\\Open`; +const appInClsidShellOpenCommand = `HKCU\\Software\\Classes\\CLSID\\${GUID}\\Shell\\Open\\Command`; + +// 设置图标 +const appInClsidDefaultIconPath = `HKCU\\Software\\Classes\\CLSID\\${GUID}\\DefaultIcon`; + +export async function showOnMyComputer() { + try { + if (!(await checkExists(appInNameSpacePath))) { + await reg.createKey([appInNameSpacePath]); + } + // 修改默认值 + await reg.putValue({ + [appInNameSpacePath]: { + default: { + value: options.name, + type: "REG_DEFAULT", + }, + }, + }); + + if (!(await checkExists(appInClsidPath))) { + await reg.createKey([appInClsidPath]); + } + // 修改默认值 + await reg.putValue({ + [appInClsidPath]: { + default: { + value: options.name, + type: "REG_DEFAULT", + }, + InfoTip: { + value: options.infoTip, + type: "REG_SZ", + }, + LocalizedString: { + value: options.localizedString, + type: "REG_SZ", + }, + "System.ItemAuthors": { + value: options.itemAuthors, + type: "REG_SZ", + }, + TileInfo: { + value: "prop:System.ItemAuthors", + type: "REG_SZ", + }, + }, + }); + + if (!(await checkExists(appInClsidDefaultIconPath))) { + await reg.createKey([appInClsidDefaultIconPath]); + } + await reg.putValue({ + [appInClsidDefaultIconPath]: { + Icon: { + value: options.iconPath, + type: "REG_DEFAULT", + }, + }, + }); + // // InprocServer32 注册 32 位进程内服务器,并指定服务器可以在其中运行的单元的线程模型。 + // const appInClsidInprocServer32 = appInClsidPath + '\\InprocServer32' + // if (!await checkExists(appInClsidInprocServer32)) { + // await reg.createKey([appInClsidInprocServer32]) + // } + // await reg.putValue({ + // [appInClsidInprocServer32]: { + // default: { + // value: '%SystemRoot%\system32\shdocvw.dll', + // type: 'REG_DEFAULT' + // }, + // ThreadingModel: { + // value: 'Apartment', + // type: 'REG_SZ' + // } + // } + // }) + + if (!(await checkExists(appInClsidShell))) { + await reg.createKey([appInClsidShell]); + } + if (!(await checkExists(appInClsidShellOpen))) { + await reg.createKey([appInClsidShellOpen]); + } + if (!(await checkExists(appInClsidShellOpenCommand))) { + await reg.createKey([appInClsidShellOpenCommand]); + } + await reg.putValue({ + [appInClsidShellOpenCommand]: { + default: { + value: options.exe, + type: "REG_DEFAULT", + }, + }, + }); + return true; + } catch (err) { + console.error(err); + return false; + } +} + +export async function hideOnMyComputer() { + try { + await rmrf(appInNameSpacePath); + await rmrf(appInClsidPath); + return true; + } catch (err) { + console.error(err); + return false; + } +} + +export async function checkIsShowOnMyComputer() { + try { + return await checkExists(appInNameSpacePath); + } catch (err) { + console.error(err); + return false; + } +} + +async function checkExists(key: string) { + return (await reg.list([key]))[key].exists; +} + +async function rmrf(key: string) { + const data = (await reg.list([key]))[key]; + if (data.exists) { + for (let i = 0; i < data.keys.length; i++) { + await rmrf(key + "\\" + data.keys[i]); + } + await reg.deleteKey([key]); + } +} diff --git a/src/main/services/trayDiyManager.ts b/src/main/services/trayDiyManager.ts new file mode 100644 index 0000000..dda5690 --- /dev/null +++ b/src/main/services/trayDiyManager.ts @@ -0,0 +1,38 @@ +import {BrowserWindow, Menu, Tray, app, shell} from "electron"; +import {trayURL, trayIconPath, trayTransparentIconPath} from "../config/staticPath"; +import pkg from "../../../package.json"; +import menu, {createTrayWindow, sleep} from "../hook/trayHook"; + +let tray: Tray + +export function initTray() { + // console.log('trayIconPath', trayIconPath) + tray = new Tray(trayIconPath); + + tray.setToolTip(app.name) + tray.setTitle(pkg.title) + + if (process.platform === 'darwin') { + const trayWin = createTrayWindow() + tray.on('click', (e, bounds, position) => { + trayWin.setPosition(bounds.x, bounds.y) + trayWin.show() + }) + } else { + tray.setContextMenu(menu) + } + + tray.on('double-click', async () => { + let times = 3 + while (times > 0) { + shell.beep() + tray.setImage(trayTransparentIconPath) + await sleep(500) + tray.setImage(trayIconPath) + await sleep(500) + times-- + } + }) + + return tray +} diff --git a/src/main/services/trayManager.ts b/src/main/services/trayManager.ts new file mode 100644 index 0000000..76b68f3 --- /dev/null +++ b/src/main/services/trayManager.ts @@ -0,0 +1,30 @@ +import {BrowserWindow, Menu, Tray, app, shell} from "electron"; +import {trayURL, trayIconPath, trayTransparentIconPath} from "../config/staticPath"; +import pkg from "../../../package.json"; +import menu, {sleep} from "../hook/trayHook"; + +let tray: Tray + +export function initTray() { + // console.log('trayIconPath', trayIconPath) + tray = new Tray(trayIconPath); + + tray.setToolTip(app.name) + tray.setTitle(pkg.title) + + tray.setContextMenu(menu) + + tray.on('double-click', async () => { + let times = 3 + while (times > 0) { + shell.beep() + tray.setImage(trayTransparentIconPath) + await sleep(500) + tray.setImage(trayIconPath) + await sleep(500) + times-- + } + }) + + return tray +} diff --git a/src/main/services/windowManager.ts b/src/main/services/windowManager.ts new file mode 100644 index 0000000..7113920 --- /dev/null +++ b/src/main/services/windowManager.ts @@ -0,0 +1,100 @@ +import {installIpcMain} from "./ipcMain"; +import {IsUseSysTitle, openDevTools, UseStartupChart} from "../config/const"; +import menuconfig from "../hook/menuHook"; +import {app, BrowserWindow, Menu, dialog} from "electron"; +import {winURL, loadingURL} from "../config/staticPath"; +import {mainWindowConfig} from "../config/windowsConfig"; +import hotkeysHook from "../hook/hotkeysHook"; +import {useProcessException} from "../hook/exceptionHook"; +import {openDevTools as openDevToolsFunc} from "../hook/devToolHook"; + +class MainInit { + public winURL: string = ""; + public shartURL: string = ""; + public loadWindow: BrowserWindow = null; + public mainWindow: BrowserWindow = null; + + constructor() { + this.winURL = winURL; + this.shartURL = loadingURL; + // 开发环境或者设置了打开开发者模式时 + if (process.env.NODE_ENV === "development" || openDevTools) { + menuconfig.push({ + label: "开发者设置", + submenu: [ + { + label: "切换到开发者模式", + accelerator: "CmdOrCtrl+I", + click: () => openDevToolsFunc(BrowserWindow.getFocusedWindow()), + }, + ], + }); + } + // 启用协议 + installIpcMain(); + } + + // 主窗口函数 + createMainWindow() { + this.mainWindow = new BrowserWindow({ + titleBarStyle: IsUseSysTitle ? "default" : "hidden", + ...Object.assign(mainWindowConfig, {}), + }); + //注册全局快捷键 + hotkeysHook(this.mainWindow); + // 赋予主菜单模板 + const menu = Menu.buildFromTemplate(menuconfig as any); + // 加载模板 + Menu.setApplicationMenu(menu); + // 加载主窗口 + this.mainWindow.loadURL(this.winURL); + // ready-to-show之后显示界面 + this.mainWindow.once("ready-to-show", () => { + this.mainWindow.show(); + // 开发模式下自动开启devtools + if (process.env.NODE_ENV === "development") { + openDevToolsFunc(this.mainWindow); + } + if (UseStartupChart) this.loadWindow.destroy(); + }); + // 对进程进行监控处理(响应假死等状态) + useProcessException().renderProcessGone; + useProcessException().childProcessGone; + + this.mainWindow.on("closed", () => { + this.mainWindow = null; + }); + } + + // 加载窗口函数 + loadingWindow(loadingURL: string) { + this.loadWindow = new BrowserWindow({ + width: 400, + height: 600, + frame: false, + skipTaskbar: true, + transparent: true, + resizable: false, + webPreferences: {experimentalFeatures: true}, + }); + + this.loadWindow.loadURL(loadingURL); + this.loadWindow.show(); + this.loadWindow.setAlwaysOnTop(true); + // 延迟两秒可以根据情况后续调快,= =,就相当于个,sleep吧,就那种。 = =。。。 + setTimeout(() => { + this.createMainWindow(); + }, 1500); + } + + // 初始化窗口函数 + initWindow() { + if (UseStartupChart) { + return this.loadingWindow(this.shartURL); + } else { + return this.createMainWindow(); + } + } +} + +export default MainInit; diff --git a/src/preload/index.ts b/src/preload/index.ts new file mode 100644 index 0000000..cb5159d --- /dev/null +++ b/src/preload/index.ts @@ -0,0 +1,40 @@ +import {contextBridge, ipcRenderer, IpcRendererEvent, shell} from "electron" +import pkg from "../../package.json"; + +contextBridge.exposeInMainWorld("ipcRenderer", { + send: (channel: string, args?: any) => ipcRenderer.send(channel, args), + sendSync: (channel: string, args?: any) => ipcRenderer.sendSync(channel, args), + on: (channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void) => + ipcRenderer.on(channel, listener), + once: (channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void) => + ipcRenderer.once(channel, listener), + invoke: (channel: string, args: any) => ipcRenderer.invoke(channel, args), + removeAllListeners: (channel: string) => ipcRenderer.removeAllListeners(channel) +}); + +function platform() { + if (process.platform === "darwin") return "Mac OS"; + return process.platform; +} + +const release = process.getSystemVersion(); +const arch = process.arch; + +contextBridge.exposeInMainWorld("systemInfo", { + platform: platform(), + release: release, + arch: arch, + node: () => process.versions.node, + chrome: () => process.versions.chrome, + electron: () => process.versions.electron +}) + +contextBridge.exposeInMainWorld("pkgInfo", pkg) + +contextBridge.exposeInMainWorld("shell", shell) + +contextBridge.exposeInMainWorld("crash", { + start: () => { + process.crash() + } +}) diff --git a/src/renderer/App.vue b/src/renderer/App.vue new file mode 100644 index 0000000..63c4296 --- /dev/null +++ b/src/renderer/App.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/renderer/api/auth.ts b/src/renderer/api/auth.ts new file mode 100644 index 0000000..eb904d8 --- /dev/null +++ b/src/renderer/api/auth.ts @@ -0,0 +1,72 @@ +import request from "@/utils/request"; + +const AUTH_BASE_URL = "/api/v1/auth"; + +class AuthAPI { + /** 登录 接口*/ + static login(data: LoginData) { + const formData = new FormData(); + formData.append("username", data.username); + formData.append("password", data.password); + formData.append("captchaKey", data.captchaKey); + formData.append("captchaCode", data.captchaCode); + return request({ + url: `${AUTH_BASE_URL}/login`, + method: "post", + data: formData, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + } + + /** 注销 接口*/ + static logout() { + return request({ + url: `${AUTH_BASE_URL}/logout`, + method: "delete", + }); + } + + /** 获取验证码 接口*/ + static getCaptcha() { + return request({ + url: `${AUTH_BASE_URL}/captcha`, + method: "get", + }); + } +} + +export default AuthAPI; + +/** 登录请求参数 */ +export interface LoginData { + /** 用户名 */ + username: string; + /** 密码 */ + password: string; + /** 验证码缓存key */ + captchaKey: string; + /** 验证码 */ + captchaCode: string; +} + +/** 登录响应 */ +export interface LoginResult { + /** 访问token */ + accessToken?: string; + /** 过期时间(单位:毫秒) */ + expires?: number; + /** 刷新token */ + refreshToken?: string; + /** token 类型 */ + tokenType?: string; +} + +/** 验证码响应 */ +export interface CaptchaResult { + /** 验证码缓存key */ + captchaKey: string; + /** 验证码图片Base64字符串 */ + captchaBase64: string; +} diff --git a/src/renderer/api/demo.ts b/src/renderer/api/demo.ts new file mode 100644 index 0000000..8ac2410 --- /dev/null +++ b/src/renderer/api/demo.ts @@ -0,0 +1,25 @@ +// 仅示例 +import request from '@/utils/request' + +// export function login (data) { +// return request({ +// url: '/user/login', +// method: 'post', +// data +// }) +// } + +// export function getInfo (token) { +// return request({ +// url: '/user/info', +// method: 'get', +// params: { token } +// }) +// } + +export function message() { + return request({ + url: '/message', + method: 'get' + }) +} diff --git a/src/renderer/api/dept.ts b/src/renderer/api/dept.ts new file mode 100644 index 0000000..9bd4673 --- /dev/null +++ b/src/renderer/api/dept.ts @@ -0,0 +1,130 @@ +import request from "@/utils/request"; + +const DEPT_BASE_URL = "/api/v1/dept"; + +class DeptAPI { + /** + * 获取部门列表 + * + * @param queryParams 查询参数(可选) + * @returns 部门树形表格数据 + */ + static getList(queryParams?: DeptQuery) { + return request({ + url: `${DEPT_BASE_URL}`, + method: "get", + params: queryParams, + }); + } + + /** 获取部门下拉列表 */ + static getOptions() { + return request({ + url: `${DEPT_BASE_URL}/options`, + method: "get", + }); + } + + /** + * 获取部门详情表单数据 + * + * @param id 部门ID + * @returns 部门详情表单数据 + */ + static getFormData(id: number) { + return request({ + url: `${DEPT_BASE_URL}/${id}/form`, + method: "get", + }); + } + + /** + * 新增部门 + * + * @param data 部门表单数据 + * @returns 请求结果 + */ + static add(data: DeptForm) { + return request({ + url: `${DEPT_BASE_URL}`, + method: "post", + data: data, + }); + } + + /** + * 修改部门 + * + * @param id 部门ID + * @param data 部门表单数据 + * @returns 请求结果 + */ + static update(id: number, data: DeptForm) { + return request({ + url: `${DEPT_BASE_URL}/${id}`, + method: "put", + data: data, + }); + } + + /** + * 删除部门 + * + * @param ids 部门ID,多个以英文逗号(,)分隔 + * @returns 请求结果 + */ + static deleteByIds(ids: string) { + return request({ + url: `${DEPT_BASE_URL}/${ids}`, + method: "delete", + }); + } +} + +export default DeptAPI; + +/** 部门查询参数 */ +export interface DeptQuery { + /** 搜索关键字 */ + keywords?: string; + /** 状态 */ + status?: number; +} + +/** 部门类型 */ +export interface DeptVO { + /** 子部门 */ + children?: DeptVO[]; + /** 创建时间 */ + createTime?: Date; + /** 部门ID */ + id?: number; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentId?: number; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; + /** 修改时间 */ + updateTime?: Date; +} + +/** 部门表单类型 */ +export interface DeptForm { + /** 部门ID(新增不填) */ + id?: number; + /** 部门名称 */ + name?: string; + /** 部门编号 */ + code?: string; + /** 父部门ID */ + parentId: number; + /** 排序 */ + sort?: number; + /** 状态(1:启用;0:禁用) */ + status?: number; +} diff --git a/src/renderer/api/dict.ts b/src/renderer/api/dict.ts new file mode 100644 index 0000000..b951200 --- /dev/null +++ b/src/renderer/api/dict.ts @@ -0,0 +1,183 @@ +import request from "@/utils/request"; + +const DICT_BASE_URL = "/api/v1/dict"; + +class DictAPI { + /** + * 获取字典分页列表 + * + * @param queryParams 查询参数 + * @returns 字典分页结果 + */ + static getPage(queryParams: DictPageQuery) { + return request>({ + url: `${DICT_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + } + + /** + * 获取字典表单数据 + * + * @param id 字典ID + * @returns 字典表单数据 + */ + static getFormData(id: number) { + return request>({ + url: `${DICT_BASE_URL}/${id}/form`, + method: "get", + }); + } + + /** + * 新增字典 + * + * @param data 字典表单数据 + * @returns 请求结果 + */ + static add(data: DictForm) { + return request({ + url: `${DICT_BASE_URL}`, + method: "post", + data: data, + }); + } + + /** + * 修改字典 + * + * @param id 字典ID + * @param data 字典表单数据 + * @returns 请求结果 + */ + static update(id: number, data: DictForm) { + return request({ + url: `${DICT_BASE_URL}/${id}`, + method: "put", + data: data, + }); + } + + /** + * 删除字典 + * + * @param ids 字典ID,多个以英文逗号(,)分隔 + * @returns 请求结果 + */ + static deleteByIds(ids: string) { + return request({ + url: `${DICT_BASE_URL}/${ids}`, + method: "delete", + }); + } + + /** + * 获取字典的数据项 + * + * @param typeCode 字典编码 + * @returns 字典数据项 + */ + static getOptions(code: string) { + return request({ + url: `${DICT_BASE_URL}/${code}/options`, + method: "get", + }); + } +} + +export default DictAPI; + +/** + * 字典查询参数 + */ +export interface DictPageQuery extends PageQuery { + /** + * 关键字(字典名称/编码) + */ + keywords?: string; +} + +/** + * 字典分页对象 + */ +export interface DictPageVO { + /** + * 字典ID + */ + id: number; + /** + * 字典名称 + */ + name: string; + /** + * 字典编码 + */ + code: string; + /** + * 字典状态(1-启用,0-禁用) + */ + status: number; + /** + * 字典项列表 + */ + dictItems: DictItem[]; +} + +/** + * 字典项 + */ +export interface DictItem { + /** + * 字典项ID + */ + id?: number; + /** + * 字典项名称 + */ + name?: string; + /** + * 字典项值 + */ + value?: string; + /** + * 排序 + */ + sort?: number; + /** + * 状态(1-启用,0-禁用) + */ + status?: number; +} + +// TypeScript 类型声明 + +/** + * 字典 + */ +export interface DictForm { + /** + * 字典ID + */ + id?: number; + /** + * 字典名称 + */ + name?: string; + /** + * 字典编码 + */ + code?: string; + /** + * 字典状态(1-启用,0-禁用) + */ + status?: number; + /** + * 备注 + */ + remark?: string; + /** + * 字典数据项列表 + */ + dictItems?: DictItem[]; +} diff --git a/src/renderer/api/file.ts b/src/renderer/api/file.ts new file mode 100644 index 0000000..42f67cd --- /dev/null +++ b/src/renderer/api/file.ts @@ -0,0 +1,47 @@ +import request from "@/utils/request"; + +const DICT_BASE_URL = "/api/v1/files"; +class FileAPI { + /** + * 上传文件 + * + * @param file + */ + static upload(file: File) { + const formData = new FormData(); + formData.append("file", file); + return request({ + url: `${DICT_BASE_URL}`, + method: "post", + data: formData, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + } + + /** + * 删除文件 + * + * @param filePath 文件完整路径 + */ + static deleteByPath(filePath?: string) { + return request({ + url: `${DICT_BASE_URL}`, + method: "delete", + params: { filePath: filePath }, + }); + } +} + +export default FileAPI; + +/** + * 文件API类型声明 + */ +export interface FileInfo { + /** 文件名 */ + name: string; + /** 文件路径 */ + url: string; +} diff --git a/src/renderer/api/log.ts b/src/renderer/api/log.ts new file mode 100644 index 0000000..6730be0 --- /dev/null +++ b/src/renderer/api/log.ts @@ -0,0 +1,56 @@ +import request from "@/utils/request"; + +const LOG_BASE_URL = "/api/v1/logs"; + +class LogAPI { + /** + * 获取日志分页列表 + * + * @param queryParams 查询参数 + */ + static getPage(queryParams: LogPageQuery) { + return request>({ + url: `${LOG_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + } +} + +export default LogAPI; + +/** + * 日志分页查询对象 + */ +export interface LogPageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; +} + +/** + * 系统日志分页VO + */ +export interface LogPageVO { + /** 主键 */ + id: number; + /** 日志模块 */ + module: string; + /** 日志内容 */ + content: string; + /** 请求路径 */ + requestUri: string; + /** 请求方法 */ + method: string; + /** IP 地址 */ + ip: string; + /** 地区 */ + region: string; + /** 浏览器 */ + browser: string; + /** 终端系统 */ + os: string; + /** 执行时间(毫秒) */ + executionTime: number; + /** 操作人 */ + operator: string; +} diff --git a/src/renderer/api/menu.ts b/src/renderer/api/menu.ts new file mode 100644 index 0000000..9cdba5c --- /dev/null +++ b/src/renderer/api/menu.ts @@ -0,0 +1,209 @@ +import request from "@/utils/request"; +// 菜单基础URL +const MENU_BASE_URL = "/api/v1/menus"; + +class MenuAPI { + /** + * 获取当前用户的路由列表 + *

+ * 无需传入角色,后端解析token获取角色自行判断是否拥有路由的权限 + * + * @returns 路由列表 + */ + static getRoutes() { + return request({ + url: `${MENU_BASE_URL}/routes`, + method: "get", + }); + } + + /** + * 获取菜单树形列表 + * + * @param queryParams 查询参数 + * @returns 菜单树形列表 + */ + static getList(queryParams: MenuQuery) { + return request({ + url: `${MENU_BASE_URL}`, + method: "get", + params: queryParams, + }); + } + + /** + * 获取菜单下拉数据源 + * + * @returns 菜单下拉数据源 + */ + static getOptions() { + return request({ + url: `${MENU_BASE_URL}/options`, + method: "get", + }); + } + + /** + * 获取菜单表单数据 + * + * @param id 菜单ID + * @returns 菜单表单数据 + */ + static getFormData(id: number) { + return request({ + url: `${MENU_BASE_URL}/${id}/form`, + method: "get", + }); + } + + /** + * 添加菜单 + * + * @param data 菜单表单数据 + * @returns 请求结果 + */ + static add(data: MenuForm) { + return request({ + url: `${MENU_BASE_URL}`, + method: "post", + data: data, + }); + } + + /** + * 修改菜单 + * + * @param id 菜单ID + * @param data 菜单表单数据 + * @returns 请求结果 + */ + static update(id: string, data: MenuForm) { + return request({ + url: `${MENU_BASE_URL}/${id}`, + method: "put", + data: data, + }); + } + + /** + * 删除菜单 + * + * @param id 菜单ID + * @returns 请求结果 + */ + static deleteById(id: number) { + return request({ + url: `${MENU_BASE_URL}/${id}`, + method: "delete", + }); + } +} + +export default MenuAPI; + +import { MenuTypeEnum } from "@theme/enums/MenuTypeEnum"; + +/** 菜单查询参数 */ +export interface MenuQuery { + /** 搜索关键字 */ + keywords?: string; +} + +/** 菜单视图对象 */ +export interface MenuVO { + /** 子菜单 */ + children?: MenuVO[]; + /** 组件路径 */ + component?: string; + /** ICON */ + icon?: string; + /** 菜单ID */ + id?: number; + /** 菜单名称 */ + name?: string; + /** 父菜单ID */ + parentId?: number; + /** 按钮权限标识 */ + perm?: string; + /** 跳转路径 */ + redirect?: string; + /** 路由名称 */ + routeName?: string; + /** 路由相对路径 */ + routePath?: string; + /** 菜单排序(数字越小排名越靠前) */ + sort?: number; + /** 菜单 */ + type?: MenuTypeEnum; + /** 菜单是否可见(1:显示;0:隐藏) */ + visible?: number; +} + +/** 菜单表单对象 */ +export interface MenuForm { + /** 菜单ID */ + id?: string; + /** 父菜单ID */ + parentId?: number; + /** 菜单名称 */ + name?: string; + /** 菜单是否可见(1-是 0-否) */ + visible: number; + /** ICON */ + icon?: string; + /** 排序 */ + sort?: number; + /** 路由名称 */ + routeName?: string; + /** 路由路径 */ + routePath?: string; + /** 组件路径 */ + component?: string; + /** 跳转路由路径 */ + redirect?: string; + /** 菜单 */ + type?: MenuTypeEnum; + /** 权限标识 */ + perm?: string; + /** 【菜单】是否开启页面缓存 */ + keepAlive?: number; + /** 【目录】只有一个子路由是否始终显示 */ + alwaysShow?: number; + /** 参数 */ + params?: KeyValue[]; +} + +interface KeyValue { + key: string; + value: string; +} + +/** RouteVO,路由对象 */ +export interface RouteVO { + /** 子路由列表 */ + children: RouteVO[]; + /** 组件路径 */ + component?: string; + /** 路由属性 */ + meta?: Meta; + /** 路由名称 */ + name?: string; + /** 路由路径 */ + path?: string; + /** 跳转链接 */ + redirect?: string; +} + +/** Meta,路由属性 */ +export interface Meta { + /** 【目录】只有一个子路由是否始终显示 */ + alwaysShow?: boolean; + /** 是否隐藏(true-是 false-否) */ + hidden?: boolean; + /** ICON */ + icon?: string; + /** 【菜单】是否开启页面缓存 */ + keepAlive?: boolean; + /** 路由title */ + title?: string; +} diff --git a/src/renderer/api/role.ts b/src/renderer/api/role.ts new file mode 100644 index 0000000..bfbbac2 --- /dev/null +++ b/src/renderer/api/role.ts @@ -0,0 +1,140 @@ +import request from "@/utils/request"; + +const ROLE_BASE_URL = "/api/v1/roles"; + +class RoleAPI { + /** 获取角色分页数据 */ + static getPage(queryParams?: RolePageQuery) { + return request>({ + url: `${ROLE_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + } + + /** 获取角色下拉数据源 */ + static getOptions() { + return request({ + url: `${ROLE_BASE_URL}/options`, + method: "get", + }); + } + + /** + * 获取角色的菜单ID集合 + * + * @param roleId 角色ID + * @returns 角色的菜单ID集合 + */ + static getRoleMenuIds(roleId: number) { + return request({ + url: `${ROLE_BASE_URL}/${roleId}/menuIds`, + method: "get", + }); + } + + /** + * 分配菜单权限 + * + * @param roleId 角色ID + * @param data 菜单ID集合 + * @returns 请求结果 + */ + static updateRoleMenus(roleId: number, data: number[]) { + return request({ + url: `${ROLE_BASE_URL}/${roleId}/menus`, + method: "put", + data: data, + }); + } + + /** + * 获取角色表单数据 + * + * @param id 角色ID + * @returns 角色表单数据 + */ + static getFormData(id: number) { + return request({ + url: `${ROLE_BASE_URL}/${id}/form`, + method: "get", + }); + } + + /** 添加角色 */ + static add(data: RoleForm) { + return request({ + url: `${ROLE_BASE_URL}`, + method: "post", + data: data, + }); + } + + /** + * 更新角色 + * + * @param id 角色ID + * @param data 角色表单数据 + */ + static update(id: number, data: RoleForm) { + return request({ + url: `${ROLE_BASE_URL}/${id}`, + method: "put", + data: data, + }); + } + + /** + * 批量删除角色,多个以英文逗号(,)分割 + * + * @param ids 角色ID字符串,多个以英文逗号(,)分割 + */ + static deleteByIds(ids: string) { + return request({ + url: `${ROLE_BASE_URL}/${ids}`, + method: "delete", + }); + } +} + +export default RoleAPI; + +/** 角色分页查询参数 */ +export interface RolePageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; +} + +/** 角色分页对象 */ +export interface RolePageVO { + /** 角色编码 */ + code?: string; + /** 角色ID */ + id?: number; + /** 角色名称 */ + name?: string; + /** 排序 */ + sort?: number; + /** 角色状态 */ + status?: number; + /** 创建时间 */ + createTime?: Date; + /** 修改时间 */ + updateTime?: Date; +} + +/** 角色表单对象 */ +export interface RoleForm { + /** 角色ID */ + id?: number; + /** 角色编码 */ + code: string; + /** 数据权限 */ + dataScope?: number; + /** 角色名称 */ + name: string; + /** 排序 */ + sort?: number; + /** 角色状态(1-正常;0-停用) */ + status?: number; +} diff --git a/src/renderer/api/stats.ts b/src/renderer/api/stats.ts new file mode 100644 index 0000000..cfaf39a --- /dev/null +++ b/src/renderer/api/stats.ts @@ -0,0 +1,35 @@ +import request from "@/utils/request"; + +const STATS_BASE_URL = "/api/v1/stats"; + +class StatsAPI { + static getVisitTrend(queryParams: VisitTrendQuery) { + return request({ + url: `${STATS_BASE_URL}/visit-trend`, + method: "get", + params: queryParams, + }); + } +} + +export default StatsAPI; + +/** 访问趋势视图对象 */ +export interface VisitTrendVO { + /** 日期列表 */ + dates: string[]; + /** 浏览量(PV) */ + pvList: number[]; + /** 访客数(UV) */ + uvList: number[]; + /** IP数 */ + ipList: number[]; +} + +/** 访问趋势查询参数 */ +export interface VisitTrendQuery { + /** 开始日期 */ + startDate: string; + /** 结束日期 */ + endDate: string; +} diff --git a/src/renderer/api/user.ts b/src/renderer/api/user.ts new file mode 100644 index 0000000..e4d29d5 --- /dev/null +++ b/src/renderer/api/user.ts @@ -0,0 +1,232 @@ +import request from "@/utils/request"; + +const USER_BASE_URL = "/api/v1/users"; + +class UserAPI { + /** + * 获取当前登录用户信息 + * + * @returns 登录用户昵称、头像信息,包括角色和权限 + */ + static getInfo() { + return request({ + url: `${USER_BASE_URL}/me`, + method: "get", + }); + } + + /** + * 获取用户分页列表 + * + * @param queryParams 查询参数 + */ + static getPage(queryParams: UserPageQuery) { + return request>({ + url: `${USER_BASE_URL}/page`, + method: "get", + params: queryParams, + }); + } + + /** + * 获取用户表单详情 + * + * @param userId 用户ID + * @returns 用户表单详情 + */ + static getFormData(userId: number) { + return request({ + url: `${USER_BASE_URL}/${userId}/form`, + method: "get", + }); + } + + /** + * 添加用户 + * + * @param data 用户表单数据 + */ + static add(data: UserForm) { + return request({ + url: `${USER_BASE_URL}`, + method: "post", + data: data, + }); + } + + /** + * 修改用户 + * + * @param id 用户ID + * @param data 用户表单数据 + */ + static update(id: number, data: UserForm) { + return request({ + url: `${USER_BASE_URL}/${id}`, + method: "put", + data: data, + }); + } + + /** + * 修改用户密码 + * + * @param id 用户ID + * @param password 新密码 + */ + static updatePassword(id: number, password: string) { + return request({ + url: `${USER_BASE_URL}/${id}/password`, + method: "patch", + params: { password: password }, + }); + } + + /** + * 批量删除用户,多个以英文逗号(,)分割 + * + * @param ids 用户ID字符串,多个以英文逗号(,)分割 + */ + static deleteByIds(ids: string) { + return request({ + url: `${USER_BASE_URL}/${ids}`, + method: "delete", + }); + } + + /** 下载用户导入模板 */ + static downloadTemplate() { + return request({ + url: `${USER_BASE_URL}/template`, + method: "get", + responseType: "arraybuffer", + }); + } + + /** + * 导出用户 + * + * @param queryParams 查询参数 + */ + static export(queryParams: UserPageQuery) { + return request({ + url: `${USER_BASE_URL}/export`, + method: "get", + params: queryParams, + responseType: "arraybuffer", + }); + } + + /** + * 导入用户 + * + * @param deptId 部门ID + * @param file 导入文件 + */ + static import(deptId: number, file: File) { + const formData = new FormData(); + formData.append("file", file); + return request({ + url: `${USER_BASE_URL}/import`, + method: "post", + params: { deptId: deptId }, + data: formData, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + } +} + +export default UserAPI; + +/** 登录用户信息 */ +export interface UserInfo { + /** 用户ID */ + userId?: number; + + /** 用户名 */ + username?: string; + + /** 昵称 */ + nickname?: string; + + /** 头像URL */ + avatar?: string; + + /** 角色 */ + roles: string[]; + + /** 权限 */ + perms: string[]; +} + +/** + * 用户分页查询对象 + */ +export interface UserPageQuery extends PageQuery { + /** 搜索关键字 */ + keywords?: string; + + /** 用户状态 */ + status?: number; + + /** 部门ID */ + deptId?: number; + + /** 开始时间 */ + startTime?: string; + + /** 结束时间 */ + endTime?: string; +} + +/** 用户分页对象 */ +export interface UserPageVO { + /** 用户头像URL */ + avatar?: string; + /** 创建时间 */ + createTime?: Date; + /** 部门名称 */ + deptName?: string; + /** 用户邮箱 */ + email?: string; + /** 性别 */ + genderLabel?: string; + /** 用户ID */ + id?: number; + /** 手机号 */ + mobile?: string; + /** 用户昵称 */ + nickname?: string; + /** 角色名称,多个使用英文逗号(,)分割 */ + roleNames?: string; + /** 用户状态(1:启用;0:禁用) */ + status?: number; + /** 用户名 */ + username?: string; +} + +/** 用户表单类型 */ +export interface UserForm { + /** 用户头像 */ + avatar?: string; + /** 部门ID */ + deptId?: number; + /** 邮箱 */ + email?: string; + /** 性别 */ + gender?: number; + /** 用户ID */ + id?: number; + /** 手机号 */ + mobile?: string; + /** 昵称 */ + nickname?: string; + /** 角色ID集合 */ + roleIds?: number[]; + /** 用户状态(1:正常;0:禁用) */ + status?: number; + /** 用户名 */ + username?: string; +} diff --git a/src/renderer/assets/404_images/404.png b/src/renderer/assets/404_images/404.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8e2305cc973ad2121403aee4bf08728f76c461 GIT binary patch literal 98071 zcmZsD1yoe)_qGfpFmxy&-5?DTB3;rUAxKDvbVzqeiAZ-S3L@QI(jWrT-5rArH4O2c zxq5&1-u3_1I%_Gcbl>@Z)@`}0ni zgTxS1Xz2Sp5LyN$jB+`(TK2go0$*ON+wYG~Qz71pR)(>+cvvo`d01{Xdj)u2?ZXzy zmA;x1Nzp_;m7?it6=)ebdFi9=K=7-zt#9B^kGF`IzK;CC(qMy@r8#>WqG2@cS5uox zXbf0B@c&#i)!^b0Mb!?4K=50dqjrDj)8Y7T(OQwKjh4xB0;y*hgfuAsToL#vtY-x2 zcDPC4UD@TJ&X)ylS~p2s{Vm(V1wS(C*u6kTtf;l}x2;9RDSK|B+2Q|vU# z5g|>`3ves^tw-x#pW$kM%4o{)rRUjP-bFAxh4kKaDr2nlD0Ny3>QcfT2w<51UE`{O zQGN&5UTB2YKA@#pXv;7`0|{yiD)FUE4eA?4@$j%fYDMKsqFQWUi?UOjnyuv<1_{u= zug?(m3a+6reFd6hu*h(3OM4>q*mTc~Pg?D7J-n+TvnsoY9 zWoxbD->+xD=K*Q$(+jLna6%I4kA`x*GDPIgI-Zm%UVn5!@S7kc4LW0oj3yb?d`)8c z7ej523IBV$9&o#~u-m;%@UGl)D|$=WY^|@KLU`Ac)l*@|602_{T4+M7IA6dbP#2AL)Eg1u&)lV@(b^iSAa}Wv>^6+>!0CyZsvtcv1&Qq&svN z+sZThYEIutRzAD;PdEXgWle?>lIf5kVEHlvET1a{;shO{ zn-EQLhR|g}l#-=7bY$DeCw*BaO6=ZCIRr)2d3ye8*IdkaiCqEbd9ba|DSo;7ROxl@(%P?=XHjX#v%4uLDStHz#?vp;8Jp~psBrurXiozhE0`(5iED>LBhfh5__U^oInU|$yP zEjDz&{zwWAxMdUZr8h#Q=vPr46k)9@kV_jypUZrWZ3!8{4Gc-ISvP>EqE52=OPg%cn3_A1Z+SuWO*0}uNWds4s zAhHbNeJ>FWsaCAW5waW9L4FA9Wr=FLpr*j>!WUNfY>TSb`i)Yththth%76Sc@)}q} z#=A@s1{4@Z>WAs!^^cH?WYrfik`9X{fiIcaicws{R=?W(`}oTdF7Taj4mNRDu&>;I z{4zufM6pn&*L_0n^uS2Kp2m8rj=vHajm%)0ZyNTcn@wug^UjqFs9J#iwD=khPyY|B zktqP6M89)9&wx(|%4a*P;&Jc6s(^o8=aRB(4Kgwpm-fAp_?~bxq0|4UPCxmP54Nw` zf8KveXS@t^YI)NG0{})#k;X3S`owvLhXtN)LG8zL?>f|k6Y<^+zeU_~P(n_T3cesZ z8M$)|qkPrp{Yt_1HBT1+ zO$}G`mF#sBF264SZO#=YiEgoZnB0y+E+=?at|BLr{=?)Ir}<1cztP~%gOtGG__6o( zMm~b3uxF~!@$Upjl>b=+yK-RE^|!b6=#XmBAb0Kk0yP63l$@RoTOm8=ocSwp{*zOYGx+e}se(;LO3e6?ei2{2&&Vv#NqBGgg!wJ(!R2P`LBb7c^&8 z?_}TM;6eYN3D70K&z~p#{=4r}rQ6HpW`vHNQ6cYvu$FmNk@Ifi=~0v3F+WPqS*X{> z2_Nn)^R~a;O-srktbEh9S&aNYACRic7*z#8+=w0Mna;iy>`*~9X)GjuDJ%2()!vdB zZ0%@0nm{d0Hybg!I$Csmq{VC#z5?Jn182ITfa?C@E(zU!0=cu06u$Y?}# z)Q!Vd5YFX{PI!wE)k>WaaQkvEERB9y_+J|{$ekI8#RaR>HTob-4E2h#JB02*h^Df6 z+hbAf6XDe)%Bk-yG^;-KiykYn{3G^*W_{J-^WXPidjIz05b`1L?_RQm-0y&O7;DB? znhfbMQX7`Q)xWCPdi9+!bnTwM4~5>a6{jc@y+8h6f(8CFuG-$*J2Knb^#~b_$kXV(?y&%;wLJv#A=pR$wIksq9h{$)&wK4AHHGojB6 z2(7_D+CMG$3c1i4)v3GYWLSQ5Fi4E)uPOqkT_=lR{&dUcQ=+q{7G%ZnFRo#YhBB7T zpTT4KG6XDdObk4tDsUWL!nCY;*QhBHa&fhy=Rzuuu@v+LHImBfsx)g-H;d=!^}p?a zgG^77#$I}a7(~GRLzx^(#GUa*ujinA+$hxZSd|yfo)lV_E1uj==Sh=$LkwNEasOf) zT5`b0yEWGfLaG^o+eYhw|&EXwMkEM>mX1|P;97mZ;zVY)Zsr#NQ z_wXNtrD+7xw4BGGkPG2sC178@xc9VW`wjIKq1&9CoxjJoJ{NDBp#buct7%`48WHE) zC$>LXBJREU2b$<4faQak(xe%J!T?_wMX2wIi)RGlMfr1i&r78EsVhp4-iqCvF&mHG z4kS$mO(x`l|FPc44H*0NiCw@p1ufF6T1qrfZx zWV5;6dMF$~gZGYJq({OgEp7LSuk~T2jza-BbAVZV3a>nup0jCE;N8am$F1!WO{#9F z%ZtF*))3`(x4OT{&;Ibpq5mgm{eg5pR8mNE`+AdK3E!M1R^k^_?eqFd6IT^(Ix_RdbaCSknTxXyUb|;m z&nNLmSwmlEZ7K+W|5x57X?vWEy@v0lp0n|tEjaXJUEYw9gaX7 z^uv?6E_PQbj8#SqOIQ0dtdeinTHL0b>j}|=KjZ()=~AFKB8@fg?{KMr7-*`eVN9v2 z5+(3xlWu4Te*okrAKMW0)Vu@Z-fg&P#851~z%5(K3%P>WkTRft_~S4dR%F~-z-#%4erE*iyIUDsI_aw!@R(+*>ZLLojl=EX;6?#;ZLvr}?BDkWfMk8f46 zly8wLw37nqASMlS?e0US<+1v!ZuJu)o=388_yaKFMZa(&D8r_&%q$fZ3;!1>^11Gy zH&1jY#kjMB{(5BY4VdEIM{#~yf1SA&y(8`ZDF$CA#^sPyKho>0h@rMeW|863S2=5b zZI*LJ9-puF-3MKE)x!UULqU`HK!EVidubDLM*;EsR7K7@Orc9%wX6s~WvK{qfnBqS zdPL)Yb>-qs`Os_K<6M_n3M(u4Uxf>>_qOZ-@3gObHKXsUN)R2Leg&}D3?__yiWf2{ z_V(gf^NLae+P38aZ?Jgbun=?<`Y)FtSr$1)N&!<)Ij|Hl_DA<$3TbL0u@oA_Pu=53 zPo9Vv!!I_vf6b{+B`MUR`4m&}!#^f5CPR^?F3DHuO97sVgG>x75ne&Bz@{VV{7gnk zz8pm<GC_er@IEsh z=7|sF0pe@QiuD95$$$3Lq|hqpBYVqOF`P2;GOKCPD)>t;&-s!xZ6Jz5f8M#F4bB9D zOoaNMO_xXyn1JGe19K1ta!J0G{E&HVTagC;yuR9vu(I*GVb9~LyzHxGW96Qzj^QDC zE5ak9qmHPu7iTq@REe+X$-7)cl>80e4z-=L?xp<4*t2f}Kg7z~cc!4y2C3ucni?(e z75ZH8?}@;V(BeweHxn$bx($aD63nujoxUaXE=Bh5z3nT-JrVJl8`doS#?v+%74Wa9szPtaGOjx8g5fJYN_27HkJicm~v@1-<} z=W)j=oqqC*zV(;aQ(H2V33Wf}k58JCua0sVA6TvIxx@}&yk;iI5dXaG(c#y2Ia9d* z#BG`lPxe*;<8k0(!0r7>CAY`SYLb6L48Ai6O&lTPYx&rh(3%eL+-H*_-hgW~78pr{ zot~+JNFcA#<@circTpjM-F_~Dv}@90IQpwjj_|L$2aqngFHQcV>5gVpD)#EfvCH8X zJ`uyzy7SDjemiuw<618slKkzNKqLfa2n!~@1*bm+(w)%w!*Q)P|2(#-(mL}HRv4Mg zQm8<>^G3{Aw#Z$6Xm2=s|066T!!JM%k?jWis-FoDxz7xDSlmL2rBBR`P|pqRTQo>8 zL?C~^Kw^%_`UjEioZ0#v1)6#A$I|JdN)OaT__=giTkbGnlfr;+LlYC8?ae5GTDFhc zdIc)R2o+ZybDfS7&D}Drw#-E>P%E+8Y4hqD`sI6)1gJ?#q4+3$>{87bS;qMtfBFBJ z>;4i@z9z!ze@nySP$v=-d%_-N(;>EmFErFAzEQPm{Mzwm|lFqUBuc9NI-DcEi1#S=7N~U6xl7j!oQ23A>GoOCz zu0p#A=$Xd8@q5I)xv<){ovZFNrVr)1zbKQgP9@^=CvwF8IWZ zNc?lp$>(V1gmqWooCCW!CtVxP=Ce86&vh}M{{0;zP9QWnasl7{W*~V=bYa*TaUQb? zo31v}b-tP!wp&WVNC_^Rxk&M7s4NtWosm9ztiOQqHqWNR^Z9yT#Kj8fZe6_*wqfro2X#-n{{aPZ-%v-r`uHAzt5cdI zc=SZ1D4J4B_7E{?n+3yKJT|Kl^({bi|l+Q!jcn7xl}x1MqMkULV?ct=_mz zelqcVi2J`-$wF?gN9x({!1C?NARW47f7xM!DYuxa+LGXSku;(Q((ad}-*XG=87a#* z_qLd-MV`|x3T44Il;|yPMop}pTE(n_UmtLWFy}q^h4?@l)1AXwfNl#25WC-`;+|m( znBiDcJEZwd5~TSWx1Ez7uAzS@*kHymO4-ZA(Uz@rRVjc2I3hMEt zfbZ1wmLFA-VzxpnW7{5f=A%wtsm^!hv@faA{FKODZwoqK>gEtF_xvmZ?~ZxiC^YVQ z|9?JtO31xW@F`AuqX9_s9~GDLIm(Nrc*<(;$M4O6D2;k@?+ZC}ShUd-z&I`^vbp+h znB`!{hwppFhV32vHTJvcPVZUS5}=Ue|B`&%XgifJL=I$2^<$s+pbq@-*kGp%@vem^ z@pBXV)z*$R-k|9#Xs7IF>IM+?NB&!Orq(|SWY7o_up1xdwF99sfv>K!6DwU&)>7Er zx?Gv_CR-FYp_MpWvuz-8kSV~(7BC?fm2HOV$WliWir*Z+#L}PnAGc5jbd$xzv|I|nA8yRK z5ZJiJ?7XFdoubkp&CJ55^plmn;;2l3yP4a5PG{XFQwp%L(|gmbA)GwDDJ1mERH(v^ zXsDeLyvf8MB?A&m{5e*NB^`~dRE-jj(vkxmZ5rKIpqwn10gsato-wTWfN!fW*Rn;b zp{(nR|4 zt+nh1hx~ijq4^wm)4oM5mVI1RPWVUFBE=B!>t|LN4Ldb$A$x8%ATgGU^w8lhurIzd zfy@ndCcapnr4I{ycx^b4^)lrpt(xC-rJ|Kjm#Q7``M<9iq>#j8;Po7+Q-}#ij@`-h z9rf7i_ve83GwHfM>rq`RUn2jp;%NWVJK~oIO#V|!pga~qfbeZxn^tswR-;JJfj+5si4i|3iE<2-3D8F^f<b zL{D5BKg+S}W6N8Ls2gGFnsRB5KZE&f_k@`KT+q4zUc7?#}&R{u6s_{6ZX_c3;&Z_Q?#CkO)G$u%5{DcU%B zvqJE}u-y7%w0^p;8u0Pm8s5)s8qHPErTcZ_&Qwp!C}+5=s5}RJMyi04LzC)eL6rCq z^M9&WkRmcqCEhy+csh5sgzdoGgNVC&2^mV!S$1~zJ`>+dJEWpqj3zX*cE1o`ldqJP ziDC`HxME3);a|7$ep<9`X4nuW5i`a44y(0?Cy|JAQWN{t>@sImEox4X8aMP-#$J(4 zGW*-R5KdkdH0QjC7&^z#2v~aQg@z@~pPy2!NOAbL;_-oAeIY@2`;A->U@cZ!r}Mz` zgSEUx9oCttaX(H&#$%t9a44HSVg9aJUzCxGuxMOL4u$fdYwy<7$i8`sZiP92L8<3b z(IoM`%bJ!`i&9Pmy0J5-9&G6iLQG#2qU#S4tywRc^Y<`wi1o%SK13^UN)g2k+J;4 zZ|&+AVX!!f5RmK+t|DPl~W-1C^UN3iax* z=qP`5R^~UkS*aSw=<_cDB|K{~4ZlyB;7?TM9s+7gnXpFod!U1o1|Cm(Jg{*Wm=?STJhVV&FP z&R^e|g2d|gZ9!rx@z%!rD6ZFK^yjN(`t++b0s(C_0^;wcugdn5j7HKOm)|~P_=_Y2 zy}{>(SvAs1Zz%k=K{2YjZ(vRQ^gf<#17!9UQ$ls`!@jG2to6Ik37<>ukirY|pNeuS zr&RRuf8$rPX-n6NUA3Qr*rKxb!9IWYS0f@CN2OiR$~c*#b3r(8k?Wz?NvjeE@rz8< zNb=taXf_Ne#}9ZDD9|A?@7ry*zfw2T1f!O@^kr{-1ZPjyhCi>B7`t$<88ND4rNH!a ze(Xn?Y|!@Xs`PZhFU7BG(>D29lc>ApLXZW81m%$IQXM;BTNRLdGZfpc))!X$S#@D; zUltUjVE`S7r7ZyTTB!CUS4icu^B=r7MwUZNKQJwTwEQLF&fuJOX#Y~bw7n1BgX5Cv ztF#mGT3Mp07rc=&*UtNxDVA$CxmNN^jdx+Oc`4jIMx>J)#Bb4>= z@&6(|0)PU%U+d3a6Grd`EwIVDXIp*B8tHo#)S*3p#b9vkL!78~E_+|Bt>|3r9<@=w zngkXv-w*Fa9>YNF8FXG9gCqtM#l?j;0d z#97D}K;WRP$zis!I+_8|-*9*qLKR{z%j+WlvGahZjJ%>+y zSf>u!zMdsH?>94Q>?13Q!Hh);he++PhbY%{$+M>!1aP-32oMbB+IZDIwO=8gKL7)* z`AfBY#p^-gym$51z4^IqE9-gdN4&c0@}Y>v_fW|P;s;4rr3^&u!3ZQ$Q4|ix^L{LSE;(JsBjeBRuvZmC7!jovh5X{^DSijU z2D6=qm2LhNjC&-}zL#`0k2@`lIN;mEoo)f~oCy9!4&8g-a9jmYs0WB_K&__ve%BuM ztKaZtCXIt*m!Wb_O}CT-JCw(!$X-H9!FmPPenpQhS|`yT`Coz(xfWEJ>|g*$yue~L zDxcU)K4OlDpw+zW4-sxHs5v;eyem-@FAlu71YX`pyl`fl)G*U~p3e>+K}*z-(Mh>Z zQ6uKvFXF!iYd171%kiKrHOcE2EE09s`*IXm*`%U7z)n{OpsP@5c4i_w@4+oT_ocl) z+F{GQcL}GlC*hx(0|TjD-?0`61y;fjeohOW3+J>Rs+l|Z%4u+HuO9#+tC9y9>Qwa4+X3JV~6|6 zPokd>F=p$TQM*L|Xw9rBDUdl&el_~{;LB*PgRZRG1-jB3`WD@PqE|# zzWFoi-V$+R#?QAm=Pw+|9zF{D9WvJBz+&bsS%vTktsOy4&m#<)=|c5#JH}QUA5_eT z+0IS*VBp3>UySh@UY4??vP5P>k^*$F4 z+OG!t>ZuOL4u;20=a->CB(#OB{0h;AXKN5P|>PLUl5&cbh z)dfMDHw=^Z5h4V@mYRlqIqp4n$4Qm7rb=gAs%*r%ImW5)k}A*=JYxq|q+|8AYSLHN z!fmm0+zz7{OMNzgk`o~(CpwynUI>w~OlkS9!U+0!2=O~F+Q%45^xl#UhX(APlMV}`a{w|Ah zSpoMHee2Ew5@EWE1d&xmv!Pj`4{mcXzjUj`^COp03-LT#ybpkNS3BY71MTpIqd+Kh;X5VWdJMqPE!u@-gG1X z{{HjAXQwQR-Pxjm`ofy-A47qxaIb^(Ks=SIPl(B@hf~+zCXcReee3s^D&^OcvG|Mp zJCG2wTPgmOzm$`x5OVP@FEQJ_r1-zT5_Hu8-pq1!|Uvrpmz z)slQ`wlgvV@oZm+I>}tzyYW{vgT(%baHT+=vur;7dhH?;}=^>aPu4U_w3*Z3rZNq&=M z31MVj{!ukp5ho!JF^Jw@vDIC4$ezh#?i6tv@c*Q+Q>pH#h5p83%wvWtc?^sES;>+= z|NLo9ku99OuhQuCj5zk-BmDy~z|=P%kNBGdf{Kx%<3M`Z2C0gDJ>&8kZ4;&3&BaWC zg>DJlbIB1MT7o4{l=+1<{yjG1EF9f*x9x+ zEwZs*GBGcAUUr$zAJzr!*i#+4b#01=>-*kO^uJASsl0U`lv>98V})rXfkR+x_!C+` z0;NCjea32@uAMO?c`tm82A=I6B)jARGzJ5{X1<*EEZ(kNUjt$x`zgEBsKxCImP`6{ zllLW-Ae$ke#p`JOm!wp_$))%pr}~!$%VmnU7d)X8VR1x`XbI;R5Z~+%Ie%$ES@r<; z4^1Yk=)IEw_}AuO`XB3e#2efb(WPUH~2*g$9{9=RnkFxE4y2m7!e&VgbiHy_V7 z6$QZN?a(8-ugkVVEz(Y0Rz-M0RgeqyhTPP^GV387HT;k{!s2K1LHcXBQ-pYmH&yRz zsL$c;EjoQ;$rd{40A6b4KjB-`O7R=VKX1YW0+5GO{4FPf zgp+9Wrh$^~_Si=CW<^#6ZA3D^^n49y$z$py9KL!e%28V6DF=}JsY}q zL5sSP_FT%5ACN|HR^d-~{6;BbR)D(a|G?g$3yL5ZxmZ@xdDa;*T^;UFFPn0WZE!Y` zZuE9g$3mRl1L`@M;Gt^qnfwD@7qyR+&P%FQgyh2;x72!Z?CqRe2Ta4y06|fF5 z=+{@snF46c5yaZ7$*skt!o%gKyfG)rL_%D_p&gp{I3AZStia%Wi)wV9Lw=hxTy@Lb zlaP&|Dm^17QMVa=K=c;pht$|eU3#G7V-9~3hGivM>TeqLdw`z9wEW1;xi5UR-(_AS zrx#x=r{fYo@hWHaaOXUCd&wj0isGD5%<^|j(V7YHz|f~54y*T-n zfNBSF_vgj{!RMIQzpgG%^A_yzRH5``a$S+p$@_8a2lnQ(ic*Et!_va$Sd2kCoQR`uXZI1N0L-86P2}qKuXJQ$OI4IrH>i>w zcj3DZ%Y`VW@mq;AEDzEmD*-A=HDik}c%_%=p=v}&6R_68b5AGouVo$l7d|+X?`|+F z;JwSW;<=oNiccagOP`5@@&DlBu4G`_;%RQ5D>82BoX80`yUFb2^q6)tY- zhuqf%Vr7LDK4I2dPUjp}LYoezkYc=2UE^YbYsB3zA9p^6WT-{s-0p0mV{6e`cX!;AP7Kb9Sr(ZA8g_c^S+_P8og#oCu@WWAWkfxA)dh&0uZbpHG`dD>WY@ zs{-y!U{tV^Ibt^ zBkVbQLBSy+sk#F)RX5($Xo{cfmA%JyUh$YuR$vWc?G{2%jQL6&;}tL-*0WypaS5xa z)jxoAeii>#ug`Tb6sLe1?zi^KR z3~x+EucSj1m5|!#5VP^klrJppC<^!ihskN^NgNh&hP|Q`>Tu!|{@D ze;-ypIawvtpin^+Q71T`)0A!Iu;m(K6&H%fCJp`8A&P>Br_x*iG&$UiI>p{PWEXcX zTnnq81Tc%TzR-mQfV~jEIE3y1HE2w7);A>PNhDyT-e@l}U^im}KU84=nAeJ%U@tpF z$8-MVtGL^1hQje-*-nlz42B8jHkrYx{ZMh(Co)GUji#7Bf}pSC?)rErvt#zzdRiVG zR}Q`qW>~<-@|Wgkfuagh9c@(CP}R3WTz>F?{5FT$_C%mt2#|j1K&B6yPMg}m|0Rqc z>~b%ar?Ds!M9{w1+8eV?wiO^ujg`2va|=x)_O552YVnGwJ6FH?5tWwh&~hjp`yEoi zyeu5*;te#lZHA`6zUfOHUG5jJpJ$6cW+ETn)3y2Nn;7}mi&OwESrrNMX23TA)!B2^ z2R0r&x^eu-b{u^u)M%5}O0Ws85NX2GVM^Frr92Do1~O;k z$aDcGLel|3rZ};iKlp-+I_>?`I~7Je>l%q>F=WCbl>#aXS|Ujv`P>DF-5V7PsExFW zI7et1-VePW?_$7TX>+3`tM2=Vhxqd|7djc$i{yb9!K(*8tRlfpHCQM$n>m1x$MQ2N z@T2(sl%+h#Mfz1zsqG7KVQy9^&MPv7-(q&q4!}dz3Oc5cVNCC|_2W&}lXzxMU8{^M zElP!-mbgz$=6L5`&agzc5FRaWLFpF7EIVHh62AZu2@S_~PI>y0i(T6EPp$i0)+z6X zH&&1h*B_6Q=kW$>#Qv#PT>*T}84T42{IaXOY?D|wHzLPa&8cf5Ik;IB?`GMfGqo`< zqF{}|aQztZYW1sjOGjO3G~!1k-(qVE6{W*0gUcGR8ZK_+)tXW=1$9nO64xN1lT&9F zvW@bqS+;zc1Q^=#G#qw!;p0Lqk%grwq7o{MYpQ2QBi*GZpWEV}rH>Jx0;FFS6$vGi z+kx7jInK6j;BgLtgdsXjuMqzF-LBO|4jTNB8Z9EuM$HGX<6W+$(B~0#P+Y&}7N#&n z)}Y8t)xdE=ccE#cLq#9|UJXMgGZfqFcwx%yc)x;4!aiEblNS@}c@PeOnjtVsrqr4| zQN#!o@yxu(-&UO24fwaH9HV!ZX@E8TQ;q~}5?ovm*W0-N)H7mp?sa2`p55@RElDy* zP~=Gb`t?20bSdKP#b^1Q)p*u(cZ0pTl-bUGd#Dkc3qn=x`RP64rS%_7;hpJ3lh!}DnAHJ4=u zCC=L6td2M!;`rhLI{x%0&}^nz1)oSBJ_QmooU?BW7C*#OT5b8>-aQx`oc>7jT$X-q z&&mu|-nZU6*J~1mBdIBStd!#I0w;?*G{+{?X{8&Di|D@#X!{f-8zSP`fR0B?YQIf{EiyAvE)ZP@hT=07jChp+NS0 z&9Ye-A))c@R$PP%-xw1(SWvpgq@4$cS#60=>_kdiFsv=FOl{p?zuBW%Tr6{RJT&Vn zg~_y*_a@Xtb41eHeV8Qf^_cN0KMA<^Qhv(u&7Rk6LLHhY{Ptx`e^G(0sL$(nIWnMD zh3!2nVBRRbEZO%!S1xWvK`z_dRf~!D(V)=NaC|vMB_kMOfbj%;5V^@l zBcVeXQ;kS<4iN^(a5C$CqL?JveAKU#&+HYAT0dXaU!mpMlaG#@8dZy>G^&w_s-ttl ze}y)#XTTg4%o=V}7P1YRs3wi;$MtdIRTc(G=)1OgS@Kd!h||6|9v^-IW=M?TEu;H$ z8(027qt@eb%)6Q3yGsdzOO(mJd5VfHv7-;l^6_rM1Yy3TI9}j=x{7z<7_OLtMzT!Oc zRdY*nd$dOl#qwQw-*f$x#>!W(zFYmY3wpA$+Gde=oA#-q8vZ$cGrC|( zdArb@5U*|go=uC~+=i!H?-XP9bKU)<4|~fmt9idT;sxvyR}a5j@0SydWIxc@yJ{E- zC5~`8iwDSE&XVmQvyZGp>xlG%+px#P?N$nh(A!Js-|E;122wVZOxj`y!XQ$|`!(z! zh}WLxJeITqU)xzL|ITDmC^&@mtvT&ovdr$goDh;IOMFLdSJ(rV3B9FOp{P?YC;W@7 zL4%pvc|sKjE0?MY(mHT7u8#C((WEzTkcM~o8&R(#6{T$Nsp4+61R;$-P#OjRolz>m zIbeY=!R;#g#-fjkn+?f+m64&^+KhR6b69L87QRT9pN@|prw}$~oyO?NNLB7{xAT6`3nK1g&`t&bh4kA_TM7D zPNX|U4Rmj11Ca?_Z-B(_cmaMU0t{UTb+Z_q@UWca*F1_S5v(cvz@OEhSY7`$D)DG- zC&LWFpG2_1swTnlt)zOAgb`NG^11(HUuJFfV2%4nfSr=$hhf@=*^5xlNiTm$lU8#D z7G}5eB&=+pxpep`3H&>5VyN`PmK46PE4z^A&lPzzJFQsbWcDj(N_$S%(|lSW$zFH1+xuPR&DKxs113IT z_-|7z+K0HipL|5Dic*0~yXicGvHzjP%cLvdbO!Maty}m=d|79tS&*ey9V7KD%W(%z zHnyoqz@@ITs_lWt|CSR7EC-XunFLr)7{uUC(HLTiquI#yydAajSH-Dor1d7^oeYR) zP?pj1Q0$ zFqxb=UQt!^I6C>Nl;MUl%MgP*Y~-7Zb=LX$8`t~cF#wZZ^{hTb8d?H^6ov(koOY3FmJ;F~M!Hl&;$yeZe^%_*T z&nzrf>$B!Vrxm*9rbeNwllFA|QO!X=UL4oh&89u{xGrab7xW&xm~%sYN+U8t&_k!V z@i2&>lz&E+@c{~tSl;(!fV^+N7t~TDTg&-KiNNi{b=Z*J@b~l2w+a?6oZlYuWk2C^ zX7Ok#U-yt2RkL~eIwX%>F*g6Y&O5tjuAuv!$D~EMl2iJgAexZ&14imantY3~DJYxv z_V8QbM`*jWjzQtP{zG3MbFZ!XN+Uy(0Us&KO7k1uO9p?Z&&@8)Sun{qpeMqu{GP$A zBNUkmZ>2~}n}d}bXQxT*e1rTlJmJrO68Zh8rBC2+VpK{5_SIL117)~B5}nb}Z4C9W5)ZD+M)ihZ8mNid{+_H*+AWae3IGv3sZ!m9FATHZFb@SLgZf z&0&x1Ymh6`g-d`+7@SZQ)i?x;o3pS;=2sNP_9k;O_)FBN>(byi6mbJDg;KZT6yz3# z8IP9$H6kWMw1Lcv>N#9{%0?T^mJsBV#GL!EW#4gw+9>dr349L84kZb)l(~-qxq;nd4RFS_9e!~UaqLJnDNN;S82Nt zy~9%Bo82DHpA34r>ueco^zSIh3++&Tj(H+{(b#`|9{m3Z!>sg2Y))|psRK_9X9!}J z*uuSM^U8xOWHZ_|=Xx`_E?Y|F-;d=p&rw_ow2P#HHXdSSdjNPglxo)LH%J+Tyfv6 zXW>XqV`oeTX8-wfUiiz;7;KAb_cgQ+?OD#T_*DXL*+@95b@s%jGD)31JB#RBm=?#( zvtSS5dIN`siIu{lMTv$Z1fEpQ@yp4MGZW#0;1;IX-|`N34$z$694267K*_`S0(zYh zv~loLNbaY9iEEzIv()$afmPur^nj`fP{^(RaKQ-cK83ga=l2wbRMrj*yXJcL;Y96* zbtp+V-rp-GhXtLM;>DHvp@EETJ_GS(pZ9@T%cMv<9Lq~W&;>;a7@(uZe;lq2I6UtO zj6x8Q+Kxt5=(gO_&PHNpH>)SnGoMjCk7`%LjkcbuT@z7rm^A>#fF|a)E6cEh`G@u$ zUg#|?q6=*?Pyt_ZnuwTEe+8wigkM;apMXyYEi%|^L5sV^Z`>hruvrM z`8;qd42MJlb4!t)h>Y5ZlYC|U$Hgvz)1nUgEDf)Q^mAG-tA2=llTKF`6kOTjOoc<1 zeyeygaR7+2{CLu<3_^kUk~x>9-=8f;vlZoCsfv?$gwZTacbroY59OE)E5(ZQbxe}a zp+2;mZHuwQhdAM+X4JG^?|UL%9%&6@)DA%EIa?9Oug2@Fn*BD$>zV)h8fFxk!Aj)2 z+P{G(ziD_KT!x+7o>9?%c~R!}VMac82K?p`-R)6uAGHYG@%G$Mt9N~w&fB^iF-*4( zD7V9kQ)8%Q>!hcT+I`o1k^h_TgwW$E+9S4S>9szO3MtY%w<&jjjBFTg?0)M znPVAdYb|U!?e+uCjnWO*9Tb3}20mDpr}};3cmz2KTQ{ieLcuU10ZM6~@a%Pg&A$z2 zhOzKZvozG(2Rc@-a~MpfbnrSm}fBhK>yi8FSy*>#*j zohK;Pj_}2deRhpMJ_JUpXY`BDMUId=xt+3!FSg8UiKhpYA;&${|BYT;aG2`q_erMQ zwXw9re8Cot*Dacp=e#Bkp9$ms{_~q(~E~W9fsu3F@6~HIhAG1fO1t z3}*EX<+ZkeZ-20Ryma_|%8WbqPJs4M29cr+h=UP7M67Jm8A~RgisfIhPY$}Wu+J!5mp~py zvQcQdpLV2To4(=Y^s!cV6iRKbz%jO&bSx9w9g)t*&rFh2qv%) zeaWmT1{7(?7Y#>KuckPN+;PX?b&yIp93a z&!MWZ;3E%$tm7-RJApjf^&CwhDxDP*+9G(wK9hB2Y#P~bkq>x_91~70%%x!%c>?m8 z>T8VFN!_B#@DO>BhJ6@PW&#%%8koMETzJvU3%Q43P(Pon^n6Uu@!Pd}MBSE60mN1E z!C%YB248gPtEG#OKtkUKZh4)>5j0H7jD{PRgfsgupLNC6n}?KPfm=E8fK#NY3d=u4 zDIWw>F@w5L(BM>$#USr20W0%lrfAkYm{`?TSIGWdYBT0vX;vZ(Ft!dx zR8yRUFk!p2A@woKby%dC@FQXolk9g}71GYm@b5OO;~M!GfDHI;tJbi3GUM?^m?vN* zL1zb+zmCm<0V|1N@KZ^H?4|BZUIt(-cr?7~RM;{|>q8q(^>AWfa>PB}8>;sDEHX;( zw2=QPb4h9Vfu_}>tLy5M2b$e^2EQ4mHvV#gNl!c91vCKBuC|o&Dy%5VLYB6z9RzMRFNgI-pRaB&N z0HHNCC?NbuaqXv8tQCdARxo0u&54((w|8jpXi2ONM@|Zq1jt9S4|n#~&7N9RZyrt* zJMvuDy1|Ma#XZpK!;oR{O*XKtekGj?(5>BQxdnFoz>3!;ZbB~%)mHnLJ&&d@MY7cc zJg4hxq8bTT`;k2mZ%v@f95Z=IGg=?2p$>%mqCmI%tLa1Fq+$&DRD@^M9pD6Iuz_b6v|Q zmv~^7t6lHb(JB4D+hc7*wUv*{z8sU6nncMW0l~!ijjEVxPeCXccDkm6NqebVA2nX@ zdY3)F)Gao)a(bSc|NiNdmDn;Bn@n&(cd)J3(pWeT_ z(Yq#}`x5M47B%=T$+uWHqJYzfVcEM3a$H>)CXz4|<;|HkZoo{>qqKG)RKPTZWkHKf zGcMo@K7)7IbqNyW1f)Y=)KZ-J!>NxybwKK~(C#V6`s~wCKS5nxGhtBI0o5TUFB`Kf z4^#z2_gZj&I8$_uS-sWV)fT`(XGv_wy2L55GWpZOM4m|>q8r)+{&odMJK4R?sx?9V z*KjYcjG-ppWZZ0;-LQmO3OQe(zx!Uo7GmHkDK&Y{Gu-W4m0NmV_-$~RR3e0u-l!*b7ibQWDH-!|7BoPF<^duGj=nRQyjtLL{v$6VXpMCO!Z8e&Dl#r9~4Is3d)DS01NQu6)*>1lFCgd7&2Bc%$C+zcl(b z$xi@G+DDUXM2BmD%H-h2`x5$@Au5~52JWt8id5A(R7}?#ddY^WUu1hTcwB6W-SXp4 zl5=|&>@N+>X|G7y)ZyAZ(VT!8^VT-x)HNR_hwy@oH?OEFG zS6%BUOqBd@Sy~*`>|s*rac~;&PDo`sgF+Ys|(46;9gb6C2S*Ja&o( zqF?ly2HM|6roPQgMw7?anzR~>bnLcZQKpU_DG>O4u&doa-8;0u4H?QRzshQ2*HFKR zXmo&oR6%_(!lsK5>_S*RR4q0f=+tZ%Sn) z#isMc53y8KcpmH0A9p7!25sUIeuv%Eu$vzwa7KfFho6UqtMlI3jLBrsDjY! zl)7Auq_MKRfa0ZKSFMEzTj$#9LviGKRsRorZc zXaGAzgbJF5|HIZ1)Ifp{waUh&!^K9WC5U=w#=38Pt2>E(DBPm6X=6nZ_S4qjm;To5 zab`rmzQEh<2Bd=4#S^E>2cX-9x$Nr{QdFN(?ujbT#tQuV_k}r6C^wGT`j(QVdX69B z&i_++@wddENFD8tcNwPtR%ny~iBd4Mz&a_q(tJ6+QJI9K*QZG?f1`ELUu)e_iLB2R zs3re4{U4;zoYJ8(UG3iUG_+5TXylL${&y9C;ZmTi2o|c8M~$U@`z}`O@C8-KA3e5< z;R&^>3jW$+Uc(tr^BD(*Zw93q7|YFtc^Sb|b=83jR~_W}l5Opg?q2Md2`2x0OjZCW zrOBkuy$1N+ft=;3fqdFZ)*ANr@A^AXVLx@986i1oM zgSMlCh33E`>NW}LZXpA8`A4r)``QSTkoB8Vv+uRN}>4#tEW|0qi; z@A-%OwxNVw$cJ_*0+vL<*aJ@~L*$;k<5~N{P z|0nY+urvWc2AzkA&hXBQ8amu>s7_=d*hURqGC@(EWcXz);W4b$wuM;dhyKg-;0fZnD@Z9GysG$06DTq zDMdxAJBI#VHOkk=!jIu~bErD;6u;M&3M zvyXoPD4U&#HvPo#!uaRHbc0=qZ6clvUR=WHc2BRdxeyOd4w{nvrz2@iA*>LSeXe&K*h(Wx2WmCsE3$ZaX;ld3u~|nME;o?I-b_fn(GSS=888Q1W zu`7|J%{!Y;zA=rGLVQ1Y}D3XjBI;Y02fcg!|19sOvBrC1dM+0UcB7JwajRAZc-)Bs(w2!ow8$L`g`H5 z?-bdCWEE4(xt$h%eCh1#KSBPZLB`&mtYWfU=mLTt9a67E<5gMUAGzCo^$YMngzd|l zrSUL^yF;gQ`AD!s{w=keKeQ*VVJd=v$$ns_vlJGNUk5M|Cd%5GVPl{8#~HHLYo6@` zhnG$V3i^76=9F*~DFTm#VXQT@?JotI3L>*q7ChhDm0#-?5q|F-AotpS8~)Zh;MGypLSqsU4$5oHlFgVpeU|gQ)P~-Yhg)$ zh^3MHyYbm+p?Pvd77hKw&eQ(x?Ozp{(y7$rgX8*XjM6_>^o|5kAQqq*_a@Y&hThlFXD_Mes?+N<~#8LLVdkMgo% zzwnz(+(L?T2aEqS5AH+|5`DLtg??oak}aOQ>WwnRKf7%4n_M-Vp*&c6E?o4#ISx|U z&XMigzQ|+?27fs`zs6nGka0O|P-a)~&1;?TN4CHg_aW4CYbZ9oO(;Qj$5u8f>PH(l zU0f!at1u3_uQaL)W*hQ5+DWD4$&co&23G|lB8SleyriAh)jU!7(QHMMunccqwg z(ET;31Jx>IZNvS)&@@>Ehd!*7CQpGp!>yxR z0+~*xTx66s@S_hCp#I~eE8pu^#Ga7;rCmG+DvLI_WZA92zl-<4QPuY}{ado+i4~VG zzYHyy11Iu~mbBLmUqi<}Q^d*UR>zw-&QOgFEfu<)?^yLW?qt2H+_K#{$&>%Y6^pwR zJnSB(^LIzyzQPnhS#F1}YJ?S&+s6P*QL8CxUL7ZgkGKJ4i5J|>=JRa<--Tnxe`uCT z%5Sa2tkaSE9|suc$6TTCtL)O9q^Wnk(AU>t83F+Y2*O7E``5?3E#ER$W)2McOK85p z(vHJcHDJ+io0v2zVXdBt?qnk_$Y-=-m|Dj~H{1A~!bMjCHe>YGpDse11y5mZ!OvlDO!^}qtKvO8AWbHifx^S#9iv0~ z&>#!rxp9$!n`?tD*$j5wDnH@(+K&fkxs_9KWE?zGIuIH@=!pBfO*x)JAFLbJrH`nY znq>}aA{USUcSekl*(lMG{$}g`fJc2}h*4B#|M1J`+Uz;Dzv#y~5BFKSB#P3?DWc=0 z^#&wnIZo8Aw^~}?lxz-<7RxP&2=n6E2NGSUtGh}8jDl6pn}&2vcjl|@vnG23)~0RU zhUP)iVTEyJz?0+vMF#bw|F|e#0{8ubOg>h*nT3M4Q=h$-b=f*ng&-v)NVZxkH9|lPR%8g1l4)l3X2hdDr~@^JpwyBcg9J?5hR2CvFAI^`WC z7x;)ZpgVWZS%vu{3Jrg%mU{u{3;m?s{4P|T@wm7;{ZzM1(EQ8N(x6gkhOrN{YLsjn zs9FJPjnM02ClEhYoEo*V?R+RGY7-`M-~Twn54}Fn&%9h&D>K64N!T#1z^ddE8`k3? zE4nv_HU&$ab=pS4aGqD#o*wJYy6n0pzv@K;q@z8RYwGz?a1{9M?aAp+|JIo9+<)>? zek2R%@=fqPAhL%7S(W~@kIdoHymp~-`{K^4vvY*;vPenk$)<*a)kuRh_BJhvvNHxl z)aH5vfxNH0Ay1B#bIncgg|qW?tU=FG+Qcj6wRG(!lj!EN(ZcuG;h0uq3DW1x72%H0 zdzO|sT_F8(N?7QC>;3<_gJXDpX+T{HU6U)E0!5ayjQjl7T&FksfGXe7z!T>eZI*LP z>-F{7Qj1z-^^UTszCh^xHHnmb7-wdOha05kr`Cl| zoRaK{QJAPZj`bvUQ26)A0z{lqaL&?1? zF{qTscxo>bNKk7R++`F}kSGVWq%^cG`IL~&t#Y_jK>#gz0rRk?Hz zN#kvXUkdnWihj!mKlB|+(=v!Te$e}|{KAg4>bxt=gS@tIakB~3gmH^``wRa#vin(< zEUGB)F0dh9A>Eal5%fg8{L;jFALpCY_pWrEuK_He97$tbKG9?9}8$Kb@`hh<~mU2jdee{?N>=J}NJ|70xzkKL*Ca`*V;j9-+}>Hir0 zo`Hb@LH-P`|4zFe`My7A0@PkwdU#02Z~qaepqY1+!QfFHYCwsR%3g$;ve+?3QwT?vS&IU%A?En2jV= ze;KgvAE3GsCA}C?B~^O#4356;iDYBCOh&`KN^uwNaDZMPE02ouWyHp6jbzC6m9w9P zV~nl_Kt6PuqHb^QUp0%R$c5TTsmc_gEd54Hdi^ESZ11MC_|N2X{^!vpRsAL*8{c8E zw#Sm$ffh=wSdp9m@c4UR!fB1EMwkOrUHs7y%(H13$tFL)V$gL`>n8Am1rAfu zrKp5w^~go~*yq_Gp_kyurR^&zM{m+*>hBFwc}Z=)eIwORDAcB-FR=9ee%!Y?!hkpM ze`vOakKXb2bbTx*Cr9l2CuGPgV+-Eyz)$f(W=PQS-rlX7ZlgU#@z%VeLR=~ZGQ0&+ zZDQc|ixx!u5-y~MX~QU=N6#XFe)HPj9Pjkk#{LSvh7j4pTAa#(V!bebxN7~Jc8473 zWK?&2Dlqh+#REl1%nDZqWrg*px)r9%g>gO9R)A8D`jN#sAZTg%4n=Fz+gXixU83()q%hmgX<7SvF2Tpe3RA2CoY9DKD$;)MxxZ4#--G{}7uPf@ z2Wud&$e6r;oZtT|O%v!I1tIXY_P{}it~j9)@Y!dr1IS9f&79N)L<3%!c3&oYLV4QZ z<~WFcH@SGD?B7ea5u@40u&+nl%f}vr8mrms6%^e}83l(R4~D-R$$Q zx)`uulwY~CeCFzS;JXAur_w^t`)F<1xwiAOy#k93Gt1%*rGamf0Tpe?q<+>YZw>Ix77%zKgt*;E>ewVK(@21ncMBoZ?nFuzAyc zd#S4X{w$++HW=+IZ#1%L$WH+jR;<={b%<*7-)lQ}1(NK$lZi||E%XPzd!penLs0Ew* zyXHd{6wpc7Hxm0dTZLE(1uMEwC58E{30r=;mZPv)EGk(WQ1FB*E5>uh!7VihzP zO`$*X%MN%OBQ$J^&kiIo6Cw)xyF2>Ub~9X3&b9kHgx7nEv>mM9DVAei_`1IXD8fV3 z?VK|LT8xB>3*$h`m%wf_(2}ADDvSBz9HTFEex8@QKr(z(cGalPB9?F`_3i|RqvLi1 zRCYaY4uSLuZf#5G8VGZ;XC}uIt|T4l6C{Ug(wlD9**tZ>FiH45$wF^G<;~ z%tix5Yu|9AQ-J13=q#=5Xu+u813xW5P%=@@Bt-+946>oM73#oezx?wBvs7(#tubbG zeEY^$-xeB|?hQEe!fP@!Mx@lXc?%Y(hhc+omP!mazu34UV#vn1C^mIg^6~7K5f-st zBwo5~^7?$4LI{@ISvLH9U`K26QdodjN4F(L7N>8&$j829>74MQxo*48Sp|49?1%0B zEih(zm*C!c|*@!PRCPQcPwXoZAQak}H%5u&t zdGo&&@uG)?#>LySJq)~ej(^4bZ*OlQQpHFUEHZ|J5}g-6V942pg*)Ojeh12mg8|&* zqyCjbB8g_I0DCcHOVHyL$@0YJVo&zm=vh%~MRuQXU=rSpz)XVO_o@XE9!a(_^CH*sH-|4dGeeAM6Br&VJ`4 zR!qsY)0)`2lIc&3q;=SVXND>cjS+G-zudlL4;=1Dn&MW~#@vMcWUa+!OtQUBKj#<8 z^mWznj_?1&ydX%B^tEtA4_AmgiFohYe@R)T);IUOGQM+e-QOJ7h~i&F21?PuaNw0W zjuIExaiN&Du4Rnxf`e>t=AJZN+Ej6^qBlbQAN2=AakaGVdRAKRc;XH|XYGlhn;pjw*!un56VA;9tKDQak*;frJ_Sh@ka7Th)? zs#;PCH#}afKh&+7m7VKD+ZIjo1NpGBr}BdJmf?~&0i<_PQMusMcu2MzJ%j1ZkfcC6 z8?XdwBG4X$8+_oRSR3;(J0Z6mdGt!zaDVISYfnBcr;kzbFoy0iTzX{waaF+Q4OwmK_=5Ikrcc;ZYE zTCUuusO~FLJfnjg5Hb%Y4m@GNOz8x^8Nl{86FX*%A0A*UGEVH5xrt~7zIWT@p*bL+ zpQc-q_;?8Rh5X_{aU%qHie&_;Th@`kE`o03gd3X#fvW_)6^dGmchzZNuLTqdmj2d& zQ@1Zkf48kNW&oeQy6ez?@$J_~^#hsrxSCm`=$d~FLSaMZYd9 za((3{C$j2sqc42qWb^L2;{<-S{8{rU{ir~P>%5YzIkW-4SjWBm|Ir=?tWDL z=&-APb@%Pmi5^6C7UEqpMpiTheLS6dB^ON9B;qoX)K%y4oX8)&=kWvA`arjKJzSbs zZ`3s(aU63SUM= zxEo`{c`$yKOz+0Rj2(qbV3+&rXNFmUl1PV~38Y1O z-cvI5AkFXz`@fiTFqsX3(AIH&h7(cAcLLK)cz$ChCB`66R>lqkB1h3opuYO($bs)D$-9fw6j{-hc`Pek+9!G^5OPXN zUu;bz_hm_fCsP^@L;T=MXdXCO-p6H!!@TfsDj4ILC^#uqDqRzk8$~T6!3I#od4<1Y zMWWDPN${5q_xNsi4>0<7yzE}lSB*)OytfmPRMH>MK_R7^-s7%w3ae0X_ATg{ymh`W zt)a(u;*CJm1zQ9>)td2H*=i@Jq0C(iMBR(^rZU5i$_;1En_tXe&hw^Tp^rPpPXO&> z{VXuyk}~qNah6Kbs&!6v16Xl;@URCb^F)O`DbLhah(4uksa|qfM)K(vH*OXSBq<$T z40fSA+`^NdE%$_j;nzz5kBKzQo<`Q`6i_~cW872aNEH@-TI;b&b9uu;L_jvwZa((V zH2?WQTq+u%Z=C2rx=}(aCw1_j;}!r{X&8 z*YNC2<9qyK13DIGGuViP)A@cal~flzJSW5+w%d_LDeCBIlGZN%3rZKavBJ&CdB%%n zhu5cfhLJOnw_I}rqKQHnIxN=hyZ53y_xIsFMB#pa-INW}Rih*)2-Dr?XyS zBtzo;P&2Q~xK>+tbZfsJ??p`;5hkDkJ`H-JMUlw8*)=u4d)j?{`$gw4vTa|7?j_bM zwiYgqf7I4GfaXP|U3RyOL8!If4yvY+vL{D^mAA9VLkHbD=RQ8BHvZQOtCeH(ug>{Z z_S}F-^o3OirX1m*kk~Eo-S#FcWEjr7)aZcpNbGmMVIY|B5=`o}!#M;dH>6Yiif8YU zS?&D(@pJ;it+a=GE}kb|(W?tC*Kr!g^j$Q8M91tpuT8Mt^M#;^b_S1Uccap21MY(Q zL5~md4t96*#ROR;hP5+YQ)U_yV~Qd<5a)XRv)#OKHxu~jXk}&rBQM^Ye^XR;Q`U6* z>_&md{U?#cO&BkQM7hmDIzr-Lv!0{e4fKr}!tncb`O0#AWs#6Yf!;b1IVviOzn{3c zkr^6lwINAX(iw%%WzHdU#d$#elLHwYh*osl{7Yy2Ld`xRXW^5hl~*gtBOiU6W^*zsVuy&S zuaH01^5#J@3x}kbk_RB1PoP(l$khOJoZ#-srQ)-x8hHw_HSWFq%(V~i5917*-a-&3 zw+YZR6Sb2tHMNtY+qNl>ziD4K-Zoc}R5jXV?lLOaXr!)Arn&GRF}FaPxSgaj_$}rd z>=vIr0oz_qK6~=a3_*%XP$^@MiWbZXs(kT@48wQDKcF=5^P9|w z<$|iGpf~e^vx+uHLKce+CTVZfS*dYxEjfW};!yomTQB`ATI6)bEZJM3+-nW@$mTQI zuyh6J5Jd=;BOIq0>~eJEA~pm^=W5h|ig;e`&EDPJQH4w+-+sFHB;={*y{LT1rdy|{ zr&^^m%wa2g+fHL zmm{nsV62SV)0dSq4%x_<;niUF>!X(2xW`SRJJD!@HeoGGL{e9D&6kD#Of~L4dor{G zn~KQgVI1j`;EW)`4+(UaSrlg_V=f<8(FkyhsQd#FjhAPxGGB*3&QR`qJ4nD?;O5ml zhVgoNau>*xIv3gIr{omv{n2Z95IAAnlyoV#u<8P@nF}T81%1yme+Ax z^D$4a9|YZ(mCYWhFDtyhtrULMtb4Py+#vds=)K+L0)fB{e<8l+v%n6h;D^UH-cEw9 z^aJ0_^N(sNioJhXk3-*GSPxYu6_`%KLL5FU2hQ$9GoDmiBs#cU*vkh==Kj0A|BU+R z!KjaV%;`|>e)Lg#oCefe5ij7i`IXPfnQ3qN-s9)aKDnT_SOVRQg-}5`o-2`op5#!y z-$u}u@LzYp_ z0LJ~*iW{muUf^nw6>ibMe`)3_J`q z?&D?8oFm|bo#r&Sp>XqDu;i*qwCF8Gn8Hah_N0x?p^d%1qpPV{pL$zYLJ_Y9D%e_Uox3It;I+E+lqtC z`iPman259v9u30jpV&luL;ho zu{kHD#pRLuyJHzpZLT(R>=fUqcVZ)F-$1p&P5OjS%3{AXyBVzo>BIZ54yE_+?P6Oq zu`3Z>$7AZIwffiKuTQNO-}n1g^+5O;vqX9s>)ZrleXS z;9uO)MrEV?dgwsP`=4V~aRF{s88QCrHYx*zfRb>msE?*!{jky2HH^$Mko&B?4+yyO zXQVQHKn%|3;lK+i)^07bhL%&WhDq-=zko=7-<5b?hzo-7p(bw2PW>Q7`s*u(KfLR_ z9+GBYvQo2WbN1%FA@kG6hYpVB1vSVX0gl0BY2-(>}1T>7*CXiYOiv?!1J>!>wd zvg|^TP+9Q=@{v~9$n!};qSl$e2PxNHKmm~b6QZ6OJ zqxi@qOVZ3xsGWaN`p$svhukY|H{})Ubmb5>_qa*|B8HvI2>Obw(c^nB z9c4vuDH)5pC=i+-4j@SBFMgz37RI5$>`*9IrlEvw-Rl$3THAVsi!!#-*wADAiz4^O(^qa}0P8NLGEDyldQ_VdyKvbb3e7ikAA;=q+wgLTs~v*(mumVG%{e}gH-u1MCk+o) z#?Bqi##51Pwx?&DfJmSRo>LOX2CWxJv_QmM(~I00!bj>}>+tS*P(b;03Sn+tWb(8Z zWPWp`C3P zMZF^`16hL8D8*FM7WpGY&RZZ0XQzw^wen5tir5KA$Oz~Wv^{3blUTD4>qvS>=71lz z*FG~{nfTieB9<#G`1xi?)=azd|nJS?6YNe_|J- z_#rCfw%s#-Sjt=Yb1MkuyzAKb3Z<$Yhu<#ZW+oiovhDjw(sAwESeg2D*01D6C(p7` zG2dcc6^tt^jIS?HMS_AnjEawz*rAS42|3>ebFhmwnRN{*8mx=G6q5u9-T#F;HXzK+ zNq4zsu(^Dd{AodK#DoT#;U?r}|18mm z?rzZviNOpt3wsPeSTwZ7r~bl|_ueH1eEof11Zsq)jbUU}`qxX!W@1P5RSgx5C{kJV zgseT!{?#IEQ4cOKA^w2VF}{7?7465<@9l`x=4+o`xMpobW>(8m-i}h>fM6U+-**QY zv%E3;=ir~n`)@e5!Es~<*YUVBI9FF!a2Q+Ta?MkjgTzk|Rx!s#rO2o{Km5VxOG z-Nuc!3_!KqLb^)J$@BV#bcW1OVv9>g!eDKR|#0#{Zr+BlsZ}FXwJXi(ZyElYISes!KO{6OlUJXs;31y!T+%A6>yn+;6Hg;`}VRrPOd)Cd)V217YwdgU|783 zO?MX!JO@=OC?R6aG?@%M8hq5lRKlf)ab6V!RR1 zaFg9k`2J$qw_n~JjsoCt*VV&Ze;eZOVS#f$mrvcuij~dBTehbAvqPYIC!O8wq{3VI z_F3srQ$@?3E+K=HTtonSiuL6eD+N2Yc1TZS>E@q z9*KM3|BX_FY|{r;^Rau>3^)-?|6j11_4k|A1!`26n;hu5nUdtsCTCF> zisFzW6#pGsYWjc-xR&S{%RZUqcaV+Y>WYs_!<^3=3xS(??oo$#%MoI0FiuEd;mss0 zQN_~NEAW40SL;K8z)(k?pQ*o1(Q;9|ZnDDP^mB7t5AB2UkQzI)`;|9bgK^i(RebVB z7nQI)9(*g)sw92TNa^|~bB>kfx=dR5^l5SegWmRKR*}s{$ z5|R~M#|@Fl4zi`Y740w^P(Ssh7-kOg^HU0g5b!L&o+h5(G}u2a+6Yo47##kSbAokX;PtNz(G8wdzJz5%+N9+x>?&z)eK^$XXR z4sOkoktYO|uIYPkCV_Dcjj6({u#N9>#0^(*EVcS$tWR zyDWNv(qQKeoLBn>Bj2HKpS!sx4s)weE+3mSj%)bb7m7lDY1@d+CClGy|G~*YVjo4X z`9hELX8hJSo}p2barB<$&7)VGV!Z&Kt1}gMelg3fyY+|bmUfaKT`Iq=n>qN7FClh9 z&G(rz(#*ij@cW)ve|3n&HvuUYm^}lkV2%S$puyoj*_Y{?#wEDLM+NPfh4|AYBOj{$^y_^1?5qJLv(Nv=P9G0`Z28{bEJ zQI&H4{!kwkMR^RgNRPg@H}_|*XhSxzI90ybGi4;B)Sy+gCS~%|&69nQ^NHFr4UOEW zna-mWS}?*E>O`DO+;g|ohY)kKN4AC$zQF!4(DVqs1sv%PaJw8w3IIKDb5QAY?Nen$W7}Ft-R_5$X zW>!v6M4u^6zvIa5bzX_eUEp6`-R+Cr5#!e}*GIGo$l&AspB4c0D7?J958u+q$A>xa z#lP%Cf~rYHV)nWl(t_9YKZqU8x;GUr4hdW`T*dlR0o9wXC9r}cPg|Gz}oNt1TLZ>gJcn(jG|SnSb{u%8QL+Md5(z7(vQ6 z*}CvK6AG&NJG16pJ$`iwalGK(tNiuL?WEZu^LD=54Xb@UmNrHA_6mqwy?h<$Q11DF zRbCkO1BUPyH*Cr5ApT&QH&Wq0(0={YLc@xZ>PFho8Y-*en_8ao*iJq3b;b#R<&(b< z4|pf`{sH)0Fs6O#P9EO+x&_*K|w^3ELP<2Ebmpoj;o>?cn4 z5X7GHF7D;w=xY}DAm_{`@4NKn4sFyA-YC@V&d41$HV+LTrFF7O<`s-N#0Gr0-1A(x zX(Qed&(6rU3&oCz*?ciNMQDPiMj?6?rQyTr~TPGlPx6LxECGG3)7xcCE-eXD8*8 zQas1M{F{M>wNK3Ri$p3YAwzoOw9keak@2%>b^;>f0F(@bk@yg#9cfDI$J=rLHH|~2Nvu2p4;#)XwZNIN5yV zMnZ6m@cBvXYFjIzu>FDSM@jf&)I*u<%&W`8Q5z@kVmQ_6@rW-pBW{(Ep*NYwumsxA z!4`#g@)$K7PtMk*Ex-5kaKD8yKbM9x{m!-SdS}~chKAO1@cMtHd>sx@R5*z1DhgkB z9v8$xGZ&*1T{C1Oe9cbIBAR6uXDAhQt~HH{sbPl|Ru$#^~xQp8gb4amCmY8rNb+Cn`71NVh1;Q zW2TobSTq`1)Ft1bT)c~0e^x3+`j=Ii(}K2JIS1g3 zcH+ryZd}=|zgqub*5hE5MTm3HPF1Fxz&nErePyI;AfVI&y3)|)>`AEEr^WWk02!X>@KKpZz8X;|1r4`}|gC0VoZWBr;6;MxzI@~6)Sn@)F&{gQrr~X1@{Jn09uj_J_ zq$=}Izs?!F&@xc+9YexCH(@AWJh(x(gXeRqmAL|;8%#2+L#I?~euR83&XpzEj_nH5 z>0dqE*+&f&8}Uw2EQwj=qcny`ZoM5r-%jg&hxHk!`t`SA$m>tun|={bxwsMZns?`3 z6Objdo>fH(sZY`Dw=*Nct&%fVo=@jrgOX~G6`l*7*HZu0j34)f>i_WpZ_eRPr#kTk z+VRVJ#rF!&X@YHh zoRwaCntEr9?LX{b`QZWP8`nl4_74rR)Z^x6&DRUA>e)-1GTn#h=glH#r^YjNW?P*o z@yPa%-GHW(+~jys9+%tZ{O!E*-_w)6?J1EroWU+GSUWpKH4S5i)kq+ z)>kiQc$s;SlGNF7Hx|CWRnBxfIhxk_WE=D@HkOP>=eM*b3y&;QcQ9=XcbL!CjxnCk zadrI9mX1(_&gd5FC(qf*@mPcZ!|)T$7-+_8`3>79@1}bX8Cf2QcD&yqENh30{*7i6yQnQ7&DG|3n@!rKp%AvfC z{(t@&puUeKCBfuU%%c~6Oc`_9Sc;1qJ7<5-rB=|B=>B%dsaNsL|L2Yr=kPsy@sfr4 zQWA~O>F&zUpFU|Rz41hL8Zeb*0JH6=hr&xr|2exHrb6_e4=UcVYo;H%#; zef@2Py)XZ6pF2B@eJShvZgy)X3Ld}m$zs8Zq(GX#ALHGkC1i5C>`K<_6k5IXDrb_Y*!J$iexkJb4ox z5=6gUWA^u#cH9P(VV(Z#JEuMUl&jpA!LnoDRCsk8m@%wX>hs+tQrBwirhhz%r#nh5 zPj3u`2TK{WYcfNXb83*R%+QptZG^)Hx(wK``nK$Al7Z{OiAp&TW2(uKxhRGc*}-u2 ziJ)VOlI^DFLH^b4QsZUo^JMdP%KT1nnca$&mEHG+a5wG#gKq)N=5Kwk3Zv5zPYyhV zlegZ>CvHiDKgiSdoLdDq@>X9#uf@v`zp-F&ZnZ2xG_FL+C2Q@ zG_BcL1+OM*jf4to(vHQ!kaeUI{W~%=yMBv2iam(P-bj+s(742j+jXO1{S}s_!!vCX ztGa1?AIKsCH1pnqVMyzRqy&LU(Of(XWdPBa6}*aYca_BU^g6f4eJ{qlIX6F&`^$mA z@RG2+(Lq_wu$e$m>~rF!sY9IliA?d^l&pa9n=D1qtJ~r!4`Pbw_@OYSp~$W0L9wyA zZW+F6FAE&Pucet11pnm+)*yfeQOK!LYNV65FBeh%H9y>}o?-lov*)ZWElsi~S^jXU zL=nq=4V0r+(!A(t887|Y_wehWkI8#x4YEeG~G9Yc3_4$?7nH%NEakl%Pe-+LVU5A1#Ib*(sKEj?;n zbek)hNB-u*Y2@1i?)D1O(r(ULFXP&qX0PPEBengGx6`ag(QUU#kebYn`mR_qTB zBd~4dnV!G>wY9cVF3`H`r@e?7IN2bm{<+|%R(KUj;Dt5v-t;UWekH7NLAYf-{Pa1p zQo;3Ia@B{RX#F$ok78vjQo40Bwr-i_l^$%zY=&PBZ{kVL$%NV&K6E3G>(dmdFj> z)TpeA+yOzTuHc~~v2_Jzp#5>*=#{R{oXwcmGnW z;u05^0>o>NS}gJ_9&&YP2I=0Tyi|sAkVdWNdwjgVyPYdg2iw0@Z2F0bd%I~Y9iDv< zc9fNsO;!$P1mvdpo^jpIh89jXc1OoV4M!u44Cyq0-?WVAJ23|3LELE5j~THZ+RFyB zem>U|@*f&;q*2@6htK1ROi_;Eh#gMiE$LzLNgP)h7iXOWRIW~d_>NX^XKtK@E@4m8 zUHG^bFKiDf#*-$RFPu58X6%YwZdjG}=N+PsDEh71-2L0I%sfDSpG5 z4IV+w!dp)iwvudlW|e+&HFzc+tVh=}&mm3jL~JW@o|p?y-YgMv_E+NhIJ494iE?u~ zW@Rw{Ookm_V3;@2&!7j4-~YaRHChzCJt6_pf}wgq)beV?{X>^E<$vks;$NJ=k2I~l zitPb-E;sJ3a$hT`DLYFf4!4Hp&nZc2tImBN0o)IjP?E{#&XS!KB8%d4QWz=oc6H&? z(s#X_A=as(d??Ge;^In)pzZK$r}$rvni6SM7<*X^u1%;nhq`IuK3V>UHE{>_q*h5I z>>PJxMPQxLG}n}&p^G?m+XrwKF-JP~D(|Dc^`6gmYF9lsECx=j4=dreF!_lX2+pW3 z$v5nhPW@I8vkM*z!)%mvIGPE6nW$}XfXZ3C;y(VKS{qHIY~dWx@&;#r+sz&4@p6m9 z7E`O_7c^U_2JmC%ExjK0xG(MdOgf#3{F}I*3X`HgQa3#QM@2A*=E)W^@d~u*_oX(9 zr>1YHBL{sghp|W6gC1jmt~Au3ZUkHZyj>e0U^vF?jq?QMGkYpZ`6Xe3dGzfoeLn^MDlbf}mAB^S)s_4NJt z0=PNC5WlS|0e-JY8fzPFQ~D4YB1fS4S#wpiwrOWDM~Ngse8;lJ%^&RSby7RoaP$XZpm9xGzJ^c_BC;KZP zD_Xb#7x9kxHEo{nJg!uzSq%#=<{>!bK74^&C0>AiLsd<2YZs!^UF#^gOo$rIYzC$? znDS_?KKzmo9o0h#VZ(eT*QY2>#Ne!cDBJZw3SY$4bGjfiN;4mTTl64OROmt3q=*eK2`L`@qCyZifShS6Wv zE?TheR-K99(*7IK`TRMA0XkkcYO_R_^g!rvQ>J(vTHWuv{#J@dM3A8Q%N+Mv`&D?u z1^?@T91zGj8a4^kyJsb8>t^~V%8C;pVyM#RB3CTmUXZ?^_%4`~SR%Y`*NTI^6V31yq_C#saqfn*F_qDAk1;cPl-;T^EwLAhT0vV-mYkE8s4}?D* zlD^GQbCy=jx3L3D@8YJ=uD@@8EVM$Ou+N^xX73hv8*^KY92~x!$a)9-q0R(hEod{N zp?fSolCpYDtH=Ras|f`}s0jPqRS^qy1VLxH+yMo6CBdv>I1D9t{sZ}O?yD)~K;cfd ztv#ol+RpIWRYltt%1!kZ0yL`Q3Gb-9V9q$eK)>e&B9_;{qw%MV*1NTk%%A@ymR5XN z&=4*>$nin9yX;z?eu_V9TCO#{)HhT$#8dP#y+p8m>C(!f z*{uNj90Pq8H*3Wxi?mL68k39Xzs%+wbe^=ezasRFbZLIOeJkESsX5?!?o`eTs;T?1&%T z5k_zDcUwged|jtc9FER*@_s6fjdyWr`92~^qB#a=29UnVnRjh?g?r>HSK44-3AwM0 zSSn{87YEPn+hhw=n%$@n?S7UuEFE6V5AyP7UAM3*9(7;%Y%?yuW<`QnwN>cY|4Gt? zL2Qk!>|w76^KOBqX3?wlY_*Y*fA4fH*;&&KZpa4rG&8I6*CiLdgw1q4CdeuOrurdb zzYNbfUz>aVNW+cVBkP+>lFWzRqNT~VbNeKQDqA>dt%G7Z|6^@jAGg!5~Rt3-XYq?Iw z9*5>(M?zc3=Uc=a^bCUNueJ5VUypGb@WRhrZTe7wn2q4oJlcr_!@$K1gK!|qGy_@>;btPXDjsGB9uTbhQh7{jZCtnB7hbGP02+JNy& zcE3hGJ%c#y8n06+io^s=0`j88E+ss2W0u{Xl$&gbP@h@;y|*Xqy{qaX7e1dM%rU@r zd0faiijMjv-w!@XdV9Y<+O!@NUX0XKu74%aQ3xOusjG6E<;bX@uV6%!)+8!SBl#n# zu^}e7xR+;Ng5W-olrZ3+vIFKl-|*dP*Kn zH(d6wHINX4VujOpC9#v2`6ylr#kO5@0rQMeRWeYtU$2CVmC>si$fof! z+=DM4Egl!k0R(R)o{6gx_GCR)rGf?+E!uwn>;5h2{*m%9z1aH+{U$ntBQMru6WFY3 z`@_#;1#`}CVZt8%hGEO(kNv_|jxYB0gXsn#Lk1F6B4llwxPqP0VPL$+cWS2kCMlK` zt>$_Crwd!x@+XP9fcWjQHD9=I*LrgIL;YP zs@{(dx$f~@>07FdU+b~2PBT8C8fYnO)nB^mn% z2l&uKO(*Tz{BF=cKvf8q%3tVyU)2uRMZJJv6frrhgiP@xj+m38#V=<>|Ja3~8Is4# z&tlQUt1MoBpLAWF=9KBeo%+!T_wd!~Q`x^i=^eXQYmU?iy_(L{s-=Ofx@r98PesXb ziJGYB4dMyT)ncDvn-h*vT0^}9!;{YeV)qSR-am(drvXv5p)NKKb0@OL78g^7)2d@i zBQJA!>WJ-;+P9pda>B0@pE_0z{SVmT?}HR~+?I%q0VSc*)WwuF)@DWN9FJHm~cJEUQH2!Y2=?P;zjO0Ha8rQ%34~}N$)JEv!B`;>5gYmDYGL4S0B{RWuXGcfJ zSqpSGov?M6Xw>(p4i4MREz^=JO54?1Mfg>1ciyTKR_hkmQR|%^H?{&)ffy|XQPWt9 zutlv^TqAjv(Z*G=PlroSq@%z}sc#3BUd$8mJ#IE;Vk4}E1a?Emeg^N*C%7JEDQ_Dl zB3Rt-@Wuy>3lb^q0A??|<>TvfVnwKh1{g8&9XfT@;58BxF^}ah(KWsmpuM$_mmQP2 z@Tp}4XkjHFcifZx1b=h-lSLOAVyZY(a|Ibze=m|E-PiLg!n16KMzNL^B0-?ors%Re zJ;-%)usFTOrvV4EeHyQ1#Rk(9#`S(Feikw6^yulUuK}HzVLme#CT*sdBJnan z9%UwoCd3m$^!|>a39uwnt4P>}a%5y#J?0kfQz&%>C0HP^om5yU#q@}u2_KYlv+-@G z<4d+fydVq&&40k^ZajRe-T|{u`YSzM2#)b?x5c{Ds6KNNJQR62o9dOt-ibdc$l0%x z%Ydy4Zo!Cs&VYc#clTs>c4afccWdr#`>2R?unI^e^iSI05#6+Px^BBlSngDSg+&Cw$q1`R*HEHUymT#Gdm_7wXwYEl`h>Bt`3q%++&UYx0whM+BZyQ zd~)86D268p9^?-v)=D2F;8O6*9BRgna zmRr^aApo{^T^u}f2cz)R6T+SRPV#KiBN$#5M06nrKfvMtx{hTI<$03Vij}#Hm?9hs zW=DGcaop|J_e8c3p zT?=`6T{|J69#~sh5hXx#60v@$7JO-i0Otq}B?}Y};U!_ULv&?TNwpJRVU_@gaIdqy zf`F$tYjPY@SVIZGkWS*K`wTb3zJV5D93Z3V*4~WtTyxw~dM|NoyVKO3XmeQ?>vFfv z@OG;0&ro2b@rkk4dXcJ?@MnI`nkJl@1^4YYoJ6_{m&}fS#n>(5{PsE5^KzN|QV2Au zzkeu)Nfo)*By`runhaXZd?w*o#mH~K9E{3$8*@DH*S^{w8Cl{mh>NE9 z*dn((iEMvJuTRJE9iO;YlXW)(n@vN@QVZ5nv#Z>|ZowDI+w@@1!It+JF%AnKzfDvv zGNciN4L>YpI~7XxdoV@tuSS%%eZw=_VaENWum!hJA4~<+g5L%BOD z#WrIC!p!P#d5UQO@nh}+Dk0t^!9S*2+BPc@Vqt3x;(HQ=etYvP;n-n=^!$Oph?|v- zI$h5Bdw~Eig3rr)%*qiH@L`m<)h<5)c?_4+j<+7V!izVm!4m3uF3eT^@*2#8(Agj4 z7l@a$5$61J>-IK>Psjm(LwMQ9qSysg4eD^;C3-D!GvIwv`2?40>>UfT2z9GqeTxpI zvA-(VMiCny|Ft_E@m993^z~zKe+FIKQ>weo5~nqOApcumT+wX$kmuyiryXxrHny9( z_F5Y?1I>g~&ZoO~@7|qpJM2&Nu@%;wn&#!@L6Sgs3pI`=6XZw}vRrr9Ce?8>AEt8= zL+oM9jz0 zF5c}{CdB<4jkBY`AEF1?%I!??Q|YH1?ZA8nDHTH?=LRXWnJ|B^%@;2plv+WxG<5Pg zuPYvHid5iCJ%L0%Fy2z8BmeeABYn@6vC<|gZ8&YT&>~`AEHR>(9wKe9PK}4X7E%9h zyJYCiZSK_e8`nZC#3V_!Vzje39b@94p-VRz+v$DO@S4(pcT2qkqf(^i$t+QeD@IVVRBI;HZT;k% z8#nq}-USB8EK_q68eE*|ouG%25i{IZ<^?25dB>E!bUwLNR=e`b(Rors8JjQuB^57* z5N6i*G+yeWbw5wODBW@t;$Jz`3mkJG9K}HT$w}S%Ut2#`X;WMfTuBV4VR&{#Q8f&F z|6HyN!86f}xevIH?2$9QqGg>}ESJT58t98iPVndHnH$N(&9xOi^+b<9f3&b4WX#zk zzmW__sACVBF|oKXa|gZmPR+UCKsJ2#MR7zRfmC9TFnWj+y^Fz@jJqX0@X}K8;&;{E zQFT?W_==x>&w+U!1NO#XetEJ4UIvNW4e@)QT6p^FVLyx_?fb7L^AmS%Zy!0hBza6WifAcgr$AOU@fjgm>Dt*P@t!$(67pSSJpev?R>p1Z3NttGml89 zfXoZawl&$5v1d@;)>+jPITmj{iH(sl2{iv`7!jlP8v8g~b?r)9v>s$F080G)&SAgv*bEX5Z7K z%2T};KRv)FQtAZh&JqiKt$;M;e*-G6ox9q}nYV=HzfuZO=3P;a^QW7V*0MidEuR}1 z)iTqOh!puq22EwpofTasHkIRp_%UC!tWgf(5zFj2c2Z(P_A+2Tt*rn)4z5ppCL#~o zjC}LSggjVsA2T|y#)=Dmh^c_imvs;wKGt|Y92D6I-@G{czGgMB`mPbCtQ!(Nx7oB` z^s`t<7`)s3SQRr+gY%>@hEh(FE8pqUQMZGPhdiSM&x~0teNA=Didii8@@2{c{Ffd6 z9}ff^$*OemiM`a|WDSML)m`(7yx(8=D? z5G*iTsq^V;E@h?YOz)!0vYUcU{REcyV8WU}p>;GzmyF*yZxoqV&pFm$8tDdJYld~W zN$Ih9vZYm9rATRojDyI>D;h+kYEV@O^e;i`O5tIfD&^Hd#i1Rf7SV%{BPTFL*L9-(S$(P zr3~}D5%I%H`Gbzzg}UehPjXLt-cBf>IfCdTjA=bSKGWGm(4D=ri26y^-u9G& zC-0{&uSLf_Y-_|#c)hBiXW%OtCkMWMGTniU1DpR)4sd=M+p$ly-%&VtQsg)x^i&Kc zwq>yNQ|E@Wk~@wj=5;$+Sy=&{@0SP8fOM_KqG4KX;QXh*{eAgSJ&<1~vEB21`AmE_PI3I;4E~htCAGyFEpY766JLK>*$?&_elER+03h`CnBx*ijXK2T{$Xk;MIAuqV?%&ipVyO8f`P#61I0l z^O3q;GLgK!J+zakt?ylWekk_9gUHl(>)ZG`*)cYTc&Vlm68Y)mYQEW!3`xd_^oL(w z%}ec+?d;hzRF08=qTwwhKNz^G^A3i)(-m^jBe|-B>iLSXv3 z4{HBvo+V3o7PdLeD2v=&(Vd~hxE}w-%k~>|ss;tm=f<)iE`uiZs&DhSrDtA?MKrb4 zj4o8S6~(ua<`$+D>lBSADlb~xzg}wI%xiN#ds%#bypx;7a<1#XY^BRi{ryKrGaT7> zxkf~m!Cq>yQStMM`}wExq>X=^I2^bKQbrj41%|XHP*;?mmm%h3h{IqB@vAbz^Pda# zS~=5^rC;sRFlJ!ac&FYwa9NXA4k6djte)usx*JeCEp)Ur`-6~wZ}{}=M~ORa-Y7mK{V5lRgxL-VUXoYl5zil7z)`A}Jm-CXB|TgzF%?ix{zCqc zWq==zd_m{~f^9Kx);SOQTG8Eb5@Pe+y*1iDt$gVwyDUH!uU}{lM+%-K>`a|?>g2kZ ztHyTH(|dx5cIG(D1~$~IEIbB~LL|RK(09`vt&cv@Wy_qaf%7Y*%Ux*2RG@4~0!z1! zI(|GRX3N{}TEgn%3w?bEG2JQdFMnC{d6$|WFq!;(ICt66Wt$@^+yu#qcZ7h4|M0y1 z>VBpTznZ#rL8^l}pczLo08k?KwzXtUhJbp`JmfaV_L`K&)~h`qT}CMb(Q$%Ed@v|&Tw!rpsua@C_W|jN%q$PZYrA~#7A@bDU}j<(+KdUVckS_EN%qo z{TDZ~X6rbmVCt&selMA7EA#wRXjnYa&WwfG!AE9$S_v>BzrqkI{j%y<|LNBFfOV_V z4!P>CjIDyqF8wq6gospe!>-rb%w;lUVcwsd<;$fZ5gwD^)kMQ2)mr}G?>b-XmBB&Y z(4c$4MvQy>6v|$(gE}i+&eZJ|mPV?`zY@*&Ea~-+eA;A~ zb!(txUEYNg&SoH1H&+mIjQyMIRx!L7r30v1BX`$;XIWo6zy~ zcKf}6EPN@JrvpUzrL+YWsk^E}(?Gza>v}&-1g|5Ok%TmC=YOR7bp)2H*;m4wHk)D( zU@fe*%Pv_@r9ieyfhNuvtcBI(GBvgM!pfRzlB=Uafr?}z0xx{4d?(9MYEaQATGU`e zu~apIN|b{k&|pfS5yTwD3RH=908v6?JS48&Ss}CV_Pzygqj?lz_DHH6Q5<7^Dc*JK zC9eCjOhq@Z5Hxj>c;T5ydbeXznYd)Z8=h2_Tu_iAB86@MUfEx+UK?z$-|~|x**EPt zU>Q7SWe?As*;QN2mK#(U&mYkn=}<)2h_p}i_q3>VrtoQ~3^THb$7&ko`a*-uk`gxu zo}rNVOK3t}B#G>;W$HE1tknA+36ZMzxjRqn8$G?A5+j{3bdaBczg>qDL&qMYxZB-1 zuy2x@s=S(x&XBjPTtt2>#axHdhYV{oY>6UK^)vw(kE^BNa6UA1%YYWH?>$Iek^FtS zVVD95tS8j+hbkG++}sWr+qoUe`NQ%nZMcP|2#^@n{=+MaG_Usy)zzdSG93sYdBa2_iOrU9p+{~4N6RYr^NsJ+Iwy#Dv@8E!GreXu4D-u*qk238HxG=t{lSel`s?1ysQvZ_>s&@88h8 z>YWXnKuP83o>fXD;Zg^TK+bOg44kB&%!k%j3__Tz1{32fEch$x01a;r%q`G0tIy4+ zFAf%-ckxVCe;B^9^@!YE`inT9+_oQ8*t4HOYr@>G7i-(Tw>2h%^h-dAY;9^rJn8Q= zm}qu$8eYSLyl5r1ao&UuiFeS*&-P0v5cD#tAJ)W1O^o*Lvk9B%Jd zqsAFkqKDA6zA0fLfj$b4VvX+V$aKRTni4sZrj;Rjxvh+vSm{j@L$iykvo~j9P6MIN z?A2oqR!D*8flQ}qwjF5Znfy&fuMU0ZeI_Mq?qLNr`3UA3%C3rVY*sov>ujYX&y-+m zTqHk@oY73KBRb=uhBr{;zu^-3j`~LXfh!%$>dzS59Ft=e+bt)>E__|z8x?Ai+&BsL zQ4#n=ZKK>~L&WMBH^2M(c6WmQLev0Ifk_?gti!83Jhc~c0KUh2D`1|X96pZmxVQa>~;1ESu8XqERMM%WdBvK!1OR?{JDU|KpC;F7@L3H_f*tqgQGA2xqZ* zRCRQHMDACo7FB@Oeql^+$7!}BA{Ari>#w7@O&#IWimP9nJ? z$MVOg4e&|C*%oDkW5Xu~0r>H61?yQ7Ab9yUCw?6S+|-qkWrqyMKSp=&f(*x=v<)P z$C!1^nzQ~-R)%Y2RX%^*(2J?s-P{f7Rx`;@a8fgc(tz$6S%=?hL0*~j?|_hjibepi zafu4wYh(Jdud2+JBnR=7x9cT6iKo(H*8zKseg^|5V7^D z5APUe6ybBCgH{luWd+@4MUsDSn7$&Z1;+&6-vp-JLXcUk33u)*n1)Q>Rs!W?mDFNYAZq}st( z3a#g{2NfJ6>O2V?WeD{*;WbyDnNP#XB+(6hs+jdYagwM3Ylm;~s)1BJuU<;i#2zOF*xKxe8hT&nj-!a^-t);&2qmh z9|!GTtPc6wm0C)UzNR4&)(*W-If^_tKK@YSNW|2vwCJxXpv!_Wp=w=IKTioJXkXeh zXOU`pX}=j7jharEh@OVP5SvBr)#9iIDP}G!OtF*sLDcJ8G!bk5>3X2IzkS?o*hct1 zzk8R>=EA{q0nrhM@3-S<5M8P=^h_{~KlJbg1uy*yZcE&1;Y~yi=g|Btds5x*d^?1(jf1XSVC}4yls_|q~-j5;Qdiwl_aCD#%tfRaJd;uk2Y#H zRJ;}A-)tW#Sz0LyKsnvL`74n*e6grkxgASLiDE-tO@l4;l6<-Upo|hv;e=|vmkg<) z?KQBXH1B-YNb zZ4Mt9kQ0y=R(6$=l-PY^W(C@T@$e;K{5y)~aZ8Vhm@U2HyzWTy%I+Z^t?Ij8i#~<3 zS4w%cR9VZ)mvs9*_`%(lCORqXpc``&daDP8OS|ro)c?~4l+0+w4d4$vWqdUqb&4RCC zh?9>1^~uRr#aDe$iNg_A!~XOva$iN;$2bj$WG?J}jrHK$TndR^j$$tb(#USI9u2m2 zWes*5`>>SNjYMk)Y=iEEU-jh|Z5B;L1{TnpjRdX0&b0 zvfu>IpBqBZ3K~^2yNeN;C3MaC{yz-SjivQ-!QR@IU*cG=F^JW>o`W}EUR%6l@QxBg zUw`6jmVPOd$8roYo;gV%D-!2l;U9^)l;ck+OlBQ?bB2=GY>nb25{=V#wC@6`Vh-Ld zBz_UTR5m{=qK|}Yk2NK9%2s&~W5RQlQsI34sDX0x*1 zNOj92z3loP5Q=?DlYDKeI6#x-qR;Pms9AVFkYsBU!U6?H1n~KJY71e0424;~ym>2u z?FO9~95$o`Vm=3scidSFbhHd8w>BfqF59%o}4>{>X4=E^@>y zF4E>hX@~e36Q2wCdqx>m#J#aFCfpvI-|GbElXtwITWKS%LC$md(_Ph^nEXGmgjoTK z#GWUwWoJGIs}D&-w#2QO8byR8F^8*rE`zH5c5S<;$(EnV+RuSNE#S>n3scDmM93U4@EmPGf$Cc#8_DDe)c~FD z*i7sb6*M|>VlPjch+nQY&6g|;(9~^jzm>6AB1oIXF4Z10EGAoWulFap~bR7Zdr`04na7yU$7UY`c=n4fO`-Nt+B zXWBU!G_Ycc8*u3MY!_Il*jb&i?zS?`vo1%l?!S}s2}T0wK>WsMJ<49bWiUrOk-iO+Ms(0SW?Q}6Q;7)7f=G?%mSvKMi&vwH2hGQv|opqFiR~i zoT5US&dH~#c{ox#36ig+HI54wQm->~*`SXWlX}ZU>sZ=}J+;YUAKp{Y|1ctui%o3& zGTI~PM%xVN1VnSXkCjR#_C*|SR?T$ndwt`S=Q6eoBcoVWA>mA~&lJZUcj{}RKcr%F zs{wX@#!bt}J{CPI@!J&td@9ilbb2F;yNuYNt&W>-1T9?p7?jD=F6alSo9)`#TNXT^ zj}dQ*U?1sGQk2=bMTqZX`FOeckb*4rK4!taoGm!^9`)_H2$g`Ii>}NGNpyg@Wc>Qf z69ZSp21pL+i=Aew)n`G)jR$;D9cWk9_C0iH7^SEmkZ3>YQiHCY0UC-P=uq5hI$7gQ zy?GCkb$+(e)L+*g-404F1K4yMK%f-8FexL5L*vpRpRrIvrF;iXQH}K2d z;X~Yhbfrn#i|nZ(kphRrNj$Fn(D;?#rN+!{t3INCJuyuzLIeg~eBhE}g$B5Js(Xfr zL-a}L>1K;&&V*97Gkci#HS%IeWKEFxG_hq`aC07?>~>_Po3>n}3AkS_-Z7QiRUR2D zZK7bdG$yDX5%HTo=H>(Av9?*wF*1o3E;Z zRAinm8uKl3> zO}QS9XFLqZYH^_*zKa+i8Ax`*w#VCY*_Z-*TDKA+dKY23A2}QnWa`Qj5$IGBk7N;P zj#Uvm>%fqQSFhv8>bC0tsL*8s*-40DE3mn#gX=P#g6S$L0nNd^xx`gNy+$t|1(ZB7 z)0#Qab5^lO;%|0nhRW28={ADfk(nF=%8&Y`7pzmQ?2$g2GptHP<2ZJw(u+tAai>w?G+y_ws%Q;M`D?{5aF ze}u#k&{rW-;1!sP8r8-@WHxrxW-1?OQ?jr@0u{YFDNTG5KC zlXd24MLA;&xTmG{4H?>5vI6;>+%UU=#6{~`bSidRwjO4i8(sd>DA2}Nk5A} zw)UZrDld@-?!{uSMFbCXO-=A00YNNINP89se3S~=Z8&|K1*zSg?e{~^c_!N4;|Z4H z!|-h>BVZ9L{PYWA2!{wFol<53gA1eSdp{ zTFFMUk|z=*+j)zpLp#AXjv9K@E=0A1!V`&+;2hvoc0I5O8FW@W3l@MNUn2`EP;TL8p93vMKk`2E5hZI&>{}D4{9Zb3v6un*U@S;xy zTBV<~O^i2ee^{g(6SXi$yi(!t43RlqD%)Dve{{&$5tT7!Xk{=4X5w%0cx9-z?5-^p^NBHO z=d7ciCO<5A2lScTte?(smUHjh&=sic{rcc*SVlkDnJ){}^a#)YoCFTs9g8;>Y4j>G zv=SVe)(IE-z^44f`n7K&!2i2ng(MM3kT&E}1?mB1IP4}Fw$w`UDKWUUXc8T>y5PEx zZ>D}De4X0$JwrluJoGy=VlyR}k@qv5k8JaNiU`hy)bVt5)S#n=3lxIhJLpU-$Vd}w zQDf=UCl_0fE+f0U2-Kp!BmiEoK=1Kfw=y9 zt!Y(_ZaZ#Ja+u^^+V)5HZIT=OskX?^B!9d#J(+~||53jy5Df!V303#s(fR?(-r7Fw z04=5%Fy!nnmw2qArc8yCXH|Rchu%s^CA2aH4&G|Zn|G6?_fFc>Ejv{Z?wbiLmo0{( zvMW>*?N)2ReADc#EfN0NFv?v~x%(R2u=|r*e}^YZ&NQT@wk|lcNx=9yV))}JOzDC@ ze!Nhwtk3SrgM4dxNA%cyr0XNobgqTW<0ay$NH8XRw8`u`n0zh={&~;Or7d#gWV9o zr~%9G7Qz-aWB2yY3bWbH;Oc}&JL>>3oz1mynCiEv@!4(`?ewj0(oX?UOy878tjEb< zrJh(DAu2UYqc~GZH3@NA!b3VWr0A}RwMuUy1A2yhQuwo~d0F{E;=wqb=sEWB@F-)k zMac*_<*|5>^qJaswEKEax zaa!H42~~B}*zJYBPQ7xjWv&_qG5GQCwu_|ksIk8ZaOFvII#?KCoy=BzgipT|I_%Kf zYQ^6A_6GlVD1X4>ru$TRyP>qbz)c*rUjcHK8A9%Y@CdA+KmRiTFC_g43HNcmWVefs zmVG0Q)PW2ii5IjD!s(}0@!(QtdNK@1jD8Q#b3aw5`Q0Tirz#Vg`fYGt7We*p0>-Q- zW;o{|Ao-|(=cCyr_o5JKYO!>iMZXraowae}lw#^P;XtH0s9X}`s0{db&+X7-9%Af3 zf2zPK`==weo$IHoaT`!Z#*FNZRH}g#C!`*S0xusf@^6Fol9@)|Hy8=aaCBODtf7G;~C4nIMZ0M#KJ9G^(*dx*r-}k(Xg6E zu(QDV##SZOLCEihdGa^S^mr}IwAI$^r_t+(p-?SiC@aR>*hjnml-EeGtR(ZFDg#kst#3G??FL{6DJRfxD8f z3m1)@j%^zq+qP|VY-`81JGRxaZQJVDHafZc{m#APj`I_$YRy%1KAN#Mc>C)iU{=(A z_10U9$E^U9{)FF?87Vc)?$b3?aaMVSjCzq%l|d)|kc{tO%0q+Qd7&a>eI}DvRpy*?ylVaF4GadkqLz z1Pi#aH`qbsAz~9BorMG%j?@M0Amh~08&0CZ3Zfw(J0>Z~()u&c-+9ZhUCF8mB|{=` z($~qs)NxhMyoiGeHs_ruUUkGLOLgB9<6HeP&Qn=#mJ6gK{dix84Wao0EC~Ip%99Qk zNKbKx9o(rIJ}iY-y?$+v)W&=v+n!aNni*9MZeJhI;q_3s^QC?Z%Tl0tUUyk@?Bn3+ zZ*OnENS{nraI)nVY=4-laOlSQ5WW<){hu*5nk@g$+P$_TDl^fy!fh4sOScPm5>s)o z@RExkl4XA~U9~rdae7wm*{7ma0t={lc`Cn@Wp-gNs(*M6%--Z4QyHj&v`6tzed8%@ zGB@-na>24d^FXKhN-n?h@D{X6q%7~nc4Z_G#QLar`FE#@V_Jbo_J0`ScUNNhn19VT znN%(kkBg3Q#^B@wK49qkoCtyj_JuV<7hZI}S&Hcu`xkVjn#c;Itvv;DI!I^1>QUVn z%TmnJCtmF(vA=n6tk~CEL{JRt1W{b)l@h(L{d~9DiSYohC;y%x)e%&X!B@oHz=H6y zt5tu;n`mpp4mJZRVrmr~0E?;ud0Fw_KRf!yPEFFVsYIgN(i}C_;>;&a)Ex?wNvOWM zJo#HRy<=SI$VUI;hvV500sk*Qyw#Q23DaY3m9;CZ+C8)bQxV#z#^No#WxFrbxenjB zRKCNv+G0RJ#ni5uQGJ*qOX5}|BAWWoEd0psHyBDLR0~&-;c~FcW%r#Kw`#j4YDM@F zqX($bA+AcDq3J~m&c2KFmKj3G@?^l#WZz|}jaZhY;%jY?74smo@)gqv=4 z0~5X2^F>Bq`v&d@!xXBtjDNFZ&5uW5#%}jMu7!L4+Ih*<&V7Yp7Upe7Sn1?J*<*Ur ziciolGLM}YiTgJj6;r&?3%80@YE##?+-@G}2`+F0XC%R+Vz7E_;nbP)&XI$4xRQ9*0*fjD6IBfZcAE&JNwz z99kKe%k!+T$l@s82M&Qul;ROK|b z{S|G16Su0~avvvhQSE`4rVJAnvolBa4xK!KuSmXD0cUFE3ZZi$S+Lc;`DlWftr-|g zNd*X7;j-1!$=*A>I44gTjzU_L@);8LHTEh=xj(UDmphitzs5 zy~r!b=Va`(I_$C`$;sHY=(t_@XnvRvmMtLGyKU0z zNCb3bHF1JXC%m?xl9Dz7r9#2B%bc55{;<=V8no{nlO|}mG2ZX5wD93_s-nr)w_xR9yicPDyZIAfGD1_=E|Mrd#L zr=lx}>D0|hg_7WfkDxaFdv9`V5`52s(~&yPC(U{gDW(LH8o8fD(kF60zEXCyy~wQo zNzeZcdS`RYU|1DRTO{{X1PfQuX|do!w(e=7_CuKFGqsnAlU$GXxjJ$6rD~${sA2&a zVIuSEjvZx8yk*4TYMg-`Sp#!t>F9`&8hOs=JQwa?cjs_D5Yw>RFJtS@N!oF)GdMTuAa3lyLjwOft3X=3lVy`d5KP`xm0l4Tp!lZHx2$){>l}gRyguUdE2f zX%;S#^WthDh|*$wWZ_w`kq$xN9tNBz{X>zY-sqE}aW8aL-2dXR=K5hyNepH7=_(wG zRva8Cecyu`(lf7^>zplLQxbg>|0-})+O*(i*CGuE)KRN2nZdF|1&mPSjCE%K* zH^HYFzjAkB8A%xx6w4ADc}21ukox#O+?xu!jSg-sl-)Wa*ST2 zsxnGqZRXj5P-1Mz=HFoHHa{*%VlTe(dN8PZv>m@2dEUP4dRK|-<4_~{1z9NinP2aW z(Z{Q!6@SyPGf3iDYK9+zhIR@pP<^6jql$^n;7>=#fYosLT>hM;ydyg@=EfvZH+&8O zvf#PS+w671^cm&Fnomr61=9_~5xtdxKv>bfpp3%c$9uQ#QajNp#o;s=R}VsVFcFEH zY0YVyYTt2GBvp2IXu zeC!a97UMd_V^=2G9!=kOWI7T61x+cZFI0E~q4ECc19ELhO?9FmyFKf1tQYZ$hl0%y zru0k7b=z~%Xd!$N*`ZTeP)ckxk%u3%>x-|797#esX6``JKkhJ#bCpUnB_y0!NYLb! zY~P}eXzhnDz8pcj1e+p;79xv4F#CX0QLohKPm_UT(0zG3Y}iJbM(-j-?7ic|bD5r@ zIV&(0`VN|73G^XTC(`E8X+RtELJX(kII(;IXuIRPTSj9<*RKE;Yp;@2YFI=B>Qc-K zk9ivi5$*cl&D(@la1eO>x8MpgJIr7au(&|5(76;yDL*YM!$1bUJ7kGgQjw&~2imistlOBhMsEyPZ-j+>bNVcQyV&Lh(O0_4L8)j@IZ_H3dfNTp4-y+&H5Vgmzwo|>jX zbN4;*93;B=6Mpb&NMd4ejNSsz#vb%_fUVqE0LE-^x9N#gw`Xm4r`Tf!A(tC+DqXQu z>07F3@)~ZViyPccig5;HgwJi2&a{e^3v(8cN0tAlFk@nX>1cQMRdpQ{qWJd;A#r5? zUrn5W0T><}W$cR9EUKtNsT4x#_V$N1-bM1KYYpL)xCPBH{h9jkEo%@Vjx_(#67xE8 zlGVbkC`F5O2gYRpfpKc*;QXc5(RQMb^9AA{cHALtz7)Hd#$BRA^zw|%VgejEOaX+i zEP-M3T8f|vxFCw1QoZ^eWWetdp9sA!0XqsKHf^hvql%dT$n@fh!PL#q4T0xC9!^o0 zewDlXNiJloiVzczN^`!FT{j%#E{U~)XVhv}8R>(Luj#KOKGNl6K*52qGt8A~ zS%uyQO9V~|o^hN0)Xs2a@;Ku+XU*(3G}v9Yx1}$BdMb8z{#Wn-TXo*Lp$1dyGA27i zYY>M9=IzBdPa_BvzOzMqHze!+?<|mlc|m~T9L6f9lO%iwA3K~JV4v9VAo1c)kauHD z;I%9rh-<5fLT7+xV=?}j5eO#8SfL&(UY~Q^K;&_W_XA!!2SNb=#?PyA@Td`y(-Zff z&hvt<@G2(|f9^NBN;~U%n#2Q$))Ft}Xd`411hGGja0k?3cxP(fE#i3D7?$v552MjV zEIpapJ2Q6Cj2Wl#?;m;2ZM9~Qzf`G~L80Yr172y!G*hYwIv4H%gI11|XZ7+cP&HJ|0 zA38W|Qu63+uq71IbaaI)D8rpH43%hMJgE@|uNiZaL`jUpSg`u+DW{F-M#GUhJ)V2%;bhKYk|)GBls; z7j9DYvaj$ZBwBZuFumZ=iL!nlR;8%ZRi?O&AFV2+ovf~`)H>+3IT|M?bZ1Ik`iP%n zfBGHZ?fzbM_dr@y*qF|i>(uXx2VM%KV9+EWI0z4|cX(0)Nx)S=$N5?#t2wLYs+oq% zWt#sYh3;Kc=SN#XB*$>*c3rZqb(!P65kqk#$@&{7K$Fp(LrQgKHRjPl#VRISMX^Z-WPC&tZf@`7RYu zeX4wFhhH}`K}9)wk}ssn1jLe3e848ad~@efp$8#(l!GbPHHUc$Wir)@mRoA;5n;~= zEQ)jbK@{6kONoT?L7Tdq?Ic=O*yLFIsOuB0Ra!tus%oVKXfPCGHceFDC2ZyC`k8Vq zjK_PMB~s%nnUysD+*wslacq$wwd8i+AI2`DBz>=#xW;LbP5y$A5Z3E~&BxQNFc4=etchoi z8)8_hK}ay043DCMuR$}ieq-cb*A^I~`x;J=#$u_#qx#wU_Tal4%m2}YC(+>tg>Mxu zM^@qSmMkb~Nt&)Emhuchg7%u7o!pBz*dcpZ;_h)5-RjKA z3PQqLH*0O~5mv=n=xf{$3{8gB2+i~jhR?en^>&=kI&Dt>)WqGefsKVzC}Qd2xa|3H zfuV7x9UBScpl==JJs-v%RBt6 zHTnqT5REkr?O5p_YK83F3wr6O9y6b{ZX<(^!Q{Vs`A+bNwHtV|Vw8I1XqXxGcCNL^)jZRAm{tD7z@ zTbap~URg5GCwp{4JXe!45u|pEArQ$3DINmtrbjp)i=#y~>!H?*P$CQ(dT zPnrk1Gc8Kkl53~ZCaUmwN$*Y+YYn6p5l?K`dc`T8HLQvP9d9d62Zz2w^9*!!-ruAy zq2nE5ev%@iaAAWQ6uvF5kpO+Hb&b+}NO30Besgw~y9!82@nS>;17iMSPyxOv_edZ^ z*u#tvMmtSagN{D%qWR!4gchb?wvAAUDlm|C`UeW=YZn+{GcDtB+ue|{d!e($w`iqH zfzpb4S=x(s7dj3|F+@njcI zSy7O~yJx2L1*7Cymr`k@7cs`#x(iqH5ZS0v$LogM82rF!h|(mn_*aS*?Zt{~#FJwP zj)zO)n+Qy5V@`?K!ClCiWYFayMt<-yNi5Ww`Qb?vGI^AekEI8QVGy}tHKKzpylCv$5Qtyv8#NIlEoy4wzU@$Nw+8Tqx(MI`9v}6E8tqcR&dfiPCTcXv- za461f6QahALJw^1Kq6z+2-;5ZvDr!lH-{Ok)Oj~;Pf~Kt0y-uS0-9Gd%X?RNm)5;R zn>u>(=Z6#AumiwWX#mybC5>tr2TEovpw`dV5=>}s9_+8#!)(TTf;F$~o6}oZz=3sn zM1ts42CfnlP6em0Z6;_gxfgU~0+Ezw+XxOg1OoC}0H|2j;}a_#O-K4ZYn$;7dg@jx zRzn5;UOa-MY%T@_8u_KyG`OJz)=p3|<{@FKI75`?^aT5va`ke!LQi3ohLh0lY~iLO=}Hp06IY ze32Si0C zBPzz(78}IMJU&}XLh=~9KB;uzKa4`8w9n{NJxT2DPwo}RvXxyWB#!1c!y317xm(9C z1`HEfK|tnLVZ!#RJ-rnA#)#)i23*b_q`Op@l(>$_k{7Vb$!XoFytJ*I=W%&D*}&?`cbS}CNXF(TQnk7g5nD5f{{9%p?TnxvOb z`i@rc6Qd_r-VokabB-1uNgCw`EUdJ-Q_@6eBO=E!AQi$YnuSe>A?u&?-!z>kdY#P% zl{u6^$}90*501OogNgo0{XWL`t_eE(+0r&0jfjh#+;ST- z(&qg8801IPtb@0R?^ zKyQ}x+9ld%9~aiMZfE}Pm(wDuH1%+jWC6XO3W;m+ZG=x}Tt(#mI-`nbT5C+e*5yT% zszV$iDjWp9nHcAI5s!Qz*s9S!snlo+^03lPS4TI z4||obKaKtMzZfY2W)S3&7~{emZJe|_f#K{!ltrsi^`O`V!_`Dobm%#W2%J(j!&5O^ zbU5jO*k7kWk2RRe#ey=HH*1s#R0#j}%aa|dx8LRA<}w=T$+1*?EkUAtGZ+%beHC_M zk7{z^ItM05V2h(nl5ozPz3Y5en80R`Cr5rhR|Js;!^dCQT>W3*_xM83P8k@pS5eX|aZrA1L4XxVqTlmr1KEw1VA zbiuabZx5gpUcyK&5|hY8=e(%pX0Z_4{UD1#!G80ApbjI#22_Gs(xqDG(cjrE|Ebu2 zC>>SMNYJem-eoU-BK0##{o}EEhat+YVhyp<94DkB-xA9d8r~u@S5T1P9YN=0;#y$l zx{&8`LT4(rTKs)n#tl-?iCN{=zs={fK^Z#%)8yGO+lxv@A%1dyG#P5By^$Y6wM^T& z@Dkb#BF1E@y(a=YNsSU3x)B{hN4SoQvs&^OMZkC?u*6vSQgZy&IS^+xN{6ek`}#G( zF_2wW?3(jzA;RP3T+E+W9^y{y~c%@LbotcnVF2i(nRsLk^$jbfa z)PVEVR%EAx?4q4lhP5hiq_bzQEc=E|Ei+uXbFK5b;ONc0RmSMmL@(-%=<_6-i<~=g zksBpJ95y=|N!fb73MnlB&R&qkSsxmW6Ayy`1A4r$ zy5_SWh>ox&HQ-*pMslkF0bBnwsm|~+2Fr*B07_$2%dZ!^G$o&|HFO(1Fx$N#ytcGu z7uTs7jCH)D-efSN7M*|;WOE|n7ctaO%wx844jr^(jdD*VgX7saFVl$n-E2((Ww=Y4 zIdvt0VJM*t#Da#>K|!^(Ka25QKeEoWWa}N_s2M=f{vM!J%43fAF7(5R?$e`EnL^;0 z*Z`IY*-Pi}tM9*3DLBgyZ{|gmjNlb3IsO!|Lg++NOH(y9wV#ultSf0$&oQVdo+o%q zaal+=-N`}0l=zVC+0O-Q9gcQM4d;NuI#Ac$7u{2XRK5bLc!$q4hN(c8bNMx2$LU^l z*>L5Q?kM!JGN=fp_!Bp?J?Kc*%-~db z6`3kPrF(y7x%efG$&R7OBX3oQJ)v8K*582Sj_h@39fKYFg`O=+RvJne24Mq*=`)K|i zjHt{Y+l}>0b6Gl=@mFE|MEj!w^1meVxIt2s!pp!Vu;jA{_-#JvF71`V=d;+pE(w9h zrbVa#qrUF$Cs@k7lr@QHSBGK)0rrjj0{Hg8$S!I7D}gn!!*&jHN0f`8R7i9z2|dDJ z*N00>aV4U)j%wL~Kj=W*52e@DgTOS34Gh43a!R*9EDp`?H_l@zTey&c%8K?j{9%E$ zJes|tniUO}=_*m&9s{9xO%@2etMaWPv9jW^6{Xal0^IRWW`s&M%42bi_V6XE%UZqF zCh1wLRmr+&H$1)`SX>{SM?n;>LkEhWe)vuBqEaW7SRHF%SRl6 zn6`Mnp~x=H>SJJZ#|=++_A}(Gt$mL-GJ?HaM*(k0KoUyZ}p5S=EQgeEgMRp4!$j;F!U<= zl*|8?@zO1<>XbB$2puqx*^gsX!s5bi!Q=pXeHn8zIZ-_1XkNwHzDIvdK)zB*+4Pjd zxwItS1#6yK#vIs{1boXXFG=26=Ox0R4HAc>|2M<>y38$B4w6=?r=O(^(8s?w!PjD( znb%3`4CbQ4-7epLYr@!?I3Z0^W%a`+eg`U(Z-w6;y^6X%v!K~E`iR{JIvomu_G#9% znX&CIWcrkx%XS+$Qh&3#qv@^>5XPS@!9*D=`(DB(H*<{}O}7(-MItf_P-I*AAyWL# zK58G+)Hf8WgPO21;~j)goh2Jn+Y%LBt{qLjCj(?y966(}n@nJdYcJ7y;f|z_xQ2?r ziYar&hutiX+6DbnrfI><; zBWqSTe5Av?Xksj3f##lgI)ON=)>7PSCRggxQ-ki&R=x2sP3j9V@ssx)Dod>zBqG0Z ztC%R9I{w{&lqYWKPDV*-mX@HdpHZrC*cgA@LrPvZ|W;VzP3WMNG!4F}4-Fvm&ifY3z2l90KaCNqkW$VR}_ zHX_6;9v_a?NS1nUNkQ>Id4OylTS|lYAv<`A@+2KX77A#!OYzP^5|U2Qa5c`6nGo^X zsc>|0=Or2rE#gprp+`qE_XQ@>28=ulV?}o@BHl#hJzK*2g_AJ~x9+64MJQ*{t(e>b zIk|4}R|+Z&f>2bcF+BHX0OX;5O13vM0}LmeFaSmpN_=6PqBn>9xuM0Ejy<02989N^ z5Sr$r%<3(d@g_xPxn#oq>G~M$7G5R&yJ=thCedQC>JT%prp}SNRKXT(1ZZp<>D~S!j}ESBI7ht^zB=%F{c*g zKrX-vkN~xJRP8PK)*l;5J%-E*iwS?;oqq>X0oiE9LiKC$FcKP-SIIDZOY}bR*a6Av z*3sa(%|6iVgjrt`GAUod*ISl|&X%QxcGB$}}@NvOq?|>CwZEzfAsw znaW4&*Ls_S=gDjXR2zmBz)T97vur(@s(9iZ&dDdFi4MeS!%K(t^vz!;spUbDy`Gq?Jg@oLGNj|-!sH%!VZ)%Ot|5U}@jIQ14>Ufmy5+ln zuMr|i{yCMnwD|Swa@sYd+;r|gjA;x8LPYS#!{FN`rkA}(^6j||)OFw?R_LuVC6wj! zWm0}!{Kepp_Mh=qkJH|oU*$GXjh;JwHkkoYNjWb=}K{yH(g!xNDt z&q<?eQt^qb0)7m^t;d}O@yUnnr)uQ zVx}Q^IjeDpgdHZ^G!%+z)^NfW+SQwCn^q(Kj5B&Tpvh~bicZl9(KjG4*3g5yAb+mC z%3#(5ND*1JAI+13xGDZkMMIQitN*hdG( z0UE<69T~O%Q({OILA zeYL{5Q~bswnnJlv3~NHyZMCN0Ae*|J?Of1t;H?wO&{gg&nH+3^Tu3A(Uj1r=3aCsGhpXFDq0cGN?q}Tnu7|=T1E!%f#sA7 zCtp^XTn$S;HVkIqx{?Rf8nHklCa&uWn2cMe z(atlHI(EUt@D|*J{n&jY_~G@p2DTl^`a{$w(tUCY`H}`6dSom&1VQStf@wF^H4g24 z6Zj!MvFg9xD=?uvxXL}$T~w0jq`*=KAnp3G9AA0mDU(|*Lun&*M18mm1kulAA@ z_LhK-k>bQ_BybEa46C2c6G)_B|#}Y=&7FxWE zS_);oN9+H^e2sBhKPG$xgzk-lfE#HAOx4gTdTljzeqrwl_^f z-o|I4&AmPUdYa?h?xf2PMlgO=M#Sx>xyI86gEFl}2K)ko2t(qhOtd@y!)9JbJ+Nsi z4z#a&a>Y{Ckf0y1ZN&14Ac!N%rA0BRa;TI1F<%ahJl6gY;FAlzd5JUi<%KRkCesuM)y^+5WT?Y@tct^2%BdBWB_+w0tJsZ{jIf zbU@|yM`~wIp8Q!foQo1j6QP2MlRoAIEL3Wag86^Y-Lh>r3kOoMrs+BMfD*$Eo_x7-vg{*8DuXm9LWvmJlE zv9%i(>CI-FI;vD%M*rPS5d&U8Z+!5{ztmzSF4le_-q&)}{@U#r$zd_B+b?JYrUAJ- z2%CEDvBG?Y{B#Qd>zp?=;0E>Agsf%kVy`1ptuG5|b29M?gE&NLiK8Ywg41e1*;pA% zPt+qFtM|^VW7}t-m0isYmQ{WEk6dDKfnedOJGD#W*G@p91X*M8U7OCEMJ*AFB8n31uP3R!Dg?xDn_#KOBSw7mR#!MVj6BX% zZ8*@@PLN=%AqMDQjKp3@cZvTIO9|Z`Ix3X*{02;zJ6OkP3vBxQdE2wBXV_tNJAv6XV}v&J5>WBi>z zYGKx}9v|UbgFP5X?J9isLSZdq*?y<2&D1yE)^4D0>34Nb)%2jFq59aUu1&g=lk8*A zhODEPBx~hwS^mxViAJZbdhFVR_m$5Dyjg6-4u>)TUzY5#xaeqj)?6!9knOC_5(mUt zwSRV5yj#S_f4uI68Ee#pRc_SpQnOjekp@Jb|qQ&FE>0|!T&3z7>8%)DUDn^eL}$HJ|hchkEpCGj1>0 zgx`uKcbZ>jbXSDgVu~DEAW1~G#I*o~h3RSS=M1YIG7%$6S2=QN)J^w9DkyX+IMghd z&jh-G96!-F#6%Xo{wiNPo^+A7Y%M4IA>ct@k?&9T3u;{%QlQkOi(Bo>=wyd^$p_ML zwIrZDZ%AOKp2*8>2!agE2YHQRZ&{N!;nNs3kUs+(ExK!>HBszIH)!MQx7nT4I?M(v z!l}?D_&8Cs*^5-@8kJ)whlGoL&w1i|wuGr$ZBSz;*pnPy*$y=OpWx@AtfU18g@Bn4 ztBOlOhSYy$L}E6Qv>yq+1i&>0(gF3%FgD9-PekM`arv|^O-5v&30}oD`|^kFR-^2o zZgG3iVMNIA|A#?o@g$r@jv?x>7jbt9>=zlggAuYIo3AZQNGJQpnM4O=TeU&w8=?9z zmsO*b$l`f`sy0+Uc#(Vcj2`|UfuefZGC}r37jg%(0Y9WK&D>Wy-_ifYSqOPVe9L(X5n zWI1J;FOL_dHe%D643?C1fw;{!@Q!BUd!+T0DD%%hKNUOJ`RE9WGh2NKyu5EJqq#>5$Xoiw!7OwH4u{o&#I-$0%*J1aMKW z40{wP&g?7Ke_>v4OT67q=R8ZCo&+mfiyZE&Yu=ItLN)r~{>h)ne46~aNze(p+apJZFm!gV;w#<+RPoRvb=+`tu-+(i zFiP0n;k>m}t;CP9poBqCtRN}ovqMkDi_jt6kKnsgn5;j*fgI)ug8&7xW2zsk{6jUD zS!l)E#h-^kG>i*jP5`MS=&?(E-}4PRK(`BC#mHoXZl;F6Xx8xVZzgtoJ^zEx8chRZ z=}k+ZR*g(a&EzKc8hoN|^;Pu#-h~Gs0_}1>I^at7tgIu5xs1k&g0hAcC=}F`+T=z+ z42mpN40yyX9adW5lMXoyMm(R zBe>GvyAetOn4a`igWFmv?Jh^er?y=xczse}*tq>wXg_#z{kfz$XaT8y()a02FnNT* ziFnKLuW4i#)*Z|uIWc)89>X%u2SV=|jdq7SZ*vX^{;r=0a-hI;vv#sxz(xnY8aSUw z?gA|Xb*C=b?76fYHdKt_Pd&;M(PI4?3&2)>R9!ec7XRyjcPFJk0h7aFAocFENN8;X**lt%v%w!rblS ze=~ozw;)H@&jX#Bhdw>>XH!-ApJXV3xyY93w@^t)psoi`{Nk!Gio)iCim1VCT&~%a z?fE_}i>lwTUT-O#FmCc5E$uBqw3XaSWYW(~_GMU5cb2Uje~LP;)pjpPyERL^4H-m4 zPwx|QGi8%oW%culXqlCkC6oMh$^A!d0$gEvkZoXy#kSiDqm|8M>Eqm1@qtOMH~;nq zVSaxO7AEYB-hvMxfidwx)+9h%O1F}9llFEY#(ri#ZuP#(>(p@{#WY1Y@n$lp*y2|9 zphiN^AiZ#|bM&C+>LwrJb+!oOVG%kYyS=u2*%JD%(Z*wcf`DBOA_^fV;z!Kkgf?_l zVjs#vs(hvN%=UWn(~S2{rZZsy%&me^)3ooE9a5A_W|J30xna({gj0*7OY(J*!;_3F0pboHQ|0AC*Q9--C&JLi}uMNln zqp2sx#j@el31VX8$b-yGdHo5}oaiJ>>m>jhCU9QlUee#kLa`$S6@$d%WrXlbq2aZK z`3*!Z3-E4$y+G~3lY)=Q@rIVh&Q@(%jgmM+|c;0kdbm+MuL->uv1;Wn16N6 zZDL8VCFh8hKk=kj>k>JR`qt9iK-|n1d>#%%YJmt{)Gkn$**EKCip;_80lO)_k%QZX z{9H@=?M%td`6xo+NjgPg{c5rccN`%A(fwqgj6Zhar&gNcpwaRHECHvdX`=wJq9`UZ zEVX;-3Cx|riSxYjAbWpS0vnp^&>CUbrtc&8JZo_T17=Gh9!4U}W&tx^+S?kH3SWll z^VP}N$M>AF8AE@H*viKN+DsH;X7(Y2y0~~4Ma&T&Cy2J^95EoUP8x&y(PJD7N(N>c z4g!%j+|I=ucqsY>N5AG0I{i=NepAy5Dam)t1SKX>;Jdkm3R_CRP5zB)TPciLDcQ2t z4ZAPsQ1#i0m2VTj@ts@RG|lU@$$yR?`@-begH!CW^?bbBj)3%^4R4&7CsQa_{|;eF zhrp;y=4V^vL=V-QhuAChUF}2h&a|?9lDDa?bta`PMp|49N%u>9w#VRbqMYRBK)w(H zlivFP(jST~%v6hck3A$hhvr|gEp58Aa!bJRV8P*BywHK4qw6PmSaQi&>-g{!L4x7s zU5(N;H>}HgeL6$KOF|6M5XzYbBevFDk)?f#bdPkD4AK|7oDn$m_0ExAt#!^jE7UH& zS^nEvd59kF1#Vxbfr3SCMZ#*!Le2$K@730oUY8j|W<;M93N?BC>YzOnNWzlO5kJqr zsJNRGz}7TiNI>RtwENlQixli1*&O3u=wm^HpxuHm&pW}1TQnBC;pM+U-%Ao2Q2?kw zmBlhUIIjWkA%s*;B9L%k$Eue6sewdazU7~o><-MWb{TNOh$hRFwJG6w~4 z!}wGu*3prK{ROZ+2WI||J`QyqteG88Jp`tJ_faHQI|?5zW|f=L0uGR^b)4OkZfNCj zI=pM=L2V{c)nO`#nC%*U=#N&6Yam=srCG7g>Rm+VK?)PL)Lpy-mC&^kpobnVeJS2w z0eGk+Ds1v}4GaS%L)w~@j@(iHTs=I{(NL^oSi*Jaxg8j^Zl4!}7=aI5!7}fFF3 zWsnZas=9_#-rzmJw4e~w^&vbV(A`=J+Z;%k4$)nv&L~2o9hI_Jx?f`nf_V;%0%$g9gFzc&&0`?cot9Ce^+1|llBw@@_lSQ?_zsC}=W4L>5 z)Bch?aj>*6$PU&DWQJiIX72Tb$nW@zNGOz`_Ry4TtZu%_N|HrUH(WjoUru(Fe zyTYY6LT63K*-#B=PE4zt(V$yBpA~R^Dq-V4_9Ghe0Cqyb{~b9&kL#`8n!@kOADH7= z)Q!MC6ZIpqa^m-TM4u3Het3gqCR1TZNGtV2vkxTg)P=oFkoavsl(QZL@I3*Q9i^7& z#zNr&9v@B7Lif=s;e(dpWkAq4<@j9iONj27c-v5-gNf!l3g$a%290hT3yZgk5N{OR zg>}5-$ou|1$*EbRpi_^;-K|NUer|e=Lxe^ae+Xmy>&ZaJL2oD0dLAzPCS%D!!1T3f z|HN?EzG*0cUEP<^PcSUVy9-e%`c#!4p$!5EB@5xU9&7%PTCSP+ADC=VHLiAnA%9z? z97NAhMG&!%HuQOJd;Vz`C4We4J_GG3J>E;pj*&g$G}Q_mXydb<0on z2y49c?SqFk&mVOMQC7#rNH*3Nlhh-^Bf}!b`@Fz|;jHTqR=-PI!Ep~@0=3ny2(go{PdJj9sb*RrbM zYZK(fp(0^yR~Aoi{Ce>d8$QLvNdgx(tkP<`^5jD25xI|Q)j}^#YZcG`!_-^GHTl2q z!<2%85(=n*q#!v21nH1YrF*0_6A(rZM5P-fCFFCdKzQyTv{r||Q&QaxIsYoaQavq7gYD;484HQ1VG;a{ARY#wv%tB|7uB=E&)(`7o5YR&9g}=4l58{%!B$p+ z#J-Ty8|LA_l>_SP1e19tGh{1#9<6aMdou=J9@3fwTzn{5Jn1bk zAvym2j>12zlLP-Iw(Q`|Pidu>nxpG8Uaq5yVJTw{!~^X z`eZ14a>6h-p{>~7kH7R2Xe4P!uYD_h$N61g+p8B4COoa+4p|Bxam;8dYQOY*Dc97= z^E9|sPIo&tL+iXizAL+X{_Eu3J$AE?)WD%6AxOFUcm{U1`KCsy0CYFJfzr=gzHsLq z$qc16dCyIaXo-Vvk!0~T93(!u|B#Qj8_!RLChi37bme#?0a(OMZeBNBt~hm8uk-DY zB4POu-28#dY(;xRo&v^#F~+cU!XvYupYFgaM!>WRuWLyoNGqkLZq zCbv{xqqt`Jmi+3s`1kx*CUIxEeA}61fU&H@43BCxqU+mw=ROTj9Y^jqRJgFI5s6ib z#VW?rwfGRf=pxRPUS(4)#{V>p?J=}j6}&N_{N_;e6I^H!O*lVQ?Ttxc?FFhIL=NSD zpV%s&*iO{T@YVETm3=}ULWB*LWyyTVy>%PzYNIlzUGAj6r)VRc&kxu&SP=1srEg$C zvj3IMNn?yee#x2omTNUt<({v!qeKYE4)1?XrkYe*7A-oQT;%#XK)Tyu-1&k;?)g}@ zYPta5YjDCgX~n(FgbJ~~mwOU!NXDDEBjzpOw0mLV^{hYxc94DG_#+<6uuvPFZ)1X{ zdJpAaSH1ZPiZfSWa35V9o;uu$hCu$^ z=$jo)@xqI|nDV(WS+a4Rqjy=k(scKQS(oSB{?@>UI&ps19eypZC;M9>8aOn-*&Y0H?pmp^6|T(?(1G4GmcaCSG2G-k)>fQ;&GCn3SsD`g z6)hs%u!rYVLe zLwrjoARZ)}(PMy;>|MtgyLx^;G(Wo%!Cg@( zQ8ElmiX_M61kdiun=Ez%^^mS_h6a-^%#2qQCsiPO;?a)p^w&ZEUf&22Elt(zP+X$! zZ9!D#?CIFMAc2zBba5X+15;B$icF0f)#w^K$56c%OYK(8@`W{2PH~>ytN88Q=IC#b zPkM8oSWcOkc&Ug8il4KXXG*N;Z(e4pZVpIe0dtWwNa+=%$Z}Lc1`3=$a;?FoGr#Zr zEX0K28k^%1n4SAzuK$_Lb(DcBbMoEMhW)dL5F@MG8GE%9(WOJsQPPXQ*YW%V>BF~m zwa-6$^)+dpUE$N!a`b<#OcP+AE{!Z>lI}|@Q{P>N4~XJxIe!%QN{Uz7;XWtx+&2{3 z?l#6I6o!;eQt@#I?^mJ+NHY@!CpA3``nf;Fb=uVISzyvhfnKk+h^f^6ZA2&$EpgQ> z@dY8l4B)`?6NNO5ZU(@(F-GjHpLt+^->|x=sra$h`}8o)>fZrrvRJWNcZPFcaO2}% z)`)AG&M7d*fO?PMscU+i)S38rG{+5Ylcxj^L742WsCmETi+>fb*!!Ahn^J9^IW#Nk z*KJdMu{UxulD~9`=GQw;+-1(3v;-dV>f2arW~WTtlyEvQTu+uP2R4h_BPmT?gLxGX z(Ts>z4W6*Sk{Gjr`)eYsb|yIjleMu<>?5OjcJIHfY-z{>A+J}$2PPw3$#>y-=gkdA zlpC7TOqIKiydBq!t|n@qJt=*Z=BYzLTqSAYZjlq~ge#bn;V6Cip?_A*g8UhK)vO94 zNM_$n#56;{`$w9KA`+i8ttu$*idU!fE!}jUVW~1D^c96mW=agBgidwU6B`K~-w;jW z=ofcUNKM@ruN2$aP>P6i{CkYOo>4?3__$b&fj1&4yS2~m^Km2?-Fr+S6_2MLO7JeQ6m8q zf~2Eo1^Xd92>1dM9tLB3C%^W_gWp^^J7|lyE^;+Zh{~_}-*^>_IPCR`S7)$08 zJ6U*d39xr1JB~x^;l;4z=2qhoqx+u1i}^anFZMD*sr}QgrswvGl`2YmKm_bSN1BIv z!9Wwj#w)Z$NfTr=^=4H3a_NTW5lj9?=r_JE3vYt>sFhMi zm65YY({Xi&xuda=Gq|Hhw?DSm40=x`jZBz&j1?KwNOEjdUKqtaJZd0%4spF|Q8mGSf ztKv=Sgr{GD0KuU|T(bwg3Qe7Q?OiDy6`?jTD$iOLxGtE7UQ&2M{)_;xg{9FxJaBXJ z6uew4oyYgwW%E@)K{e^~GkbLW$FI3td@+(14>my`N|stTBJ|~DAhpUbq-+;F&;e26 z$n~%(bRNx$kzA_3R;(%7ogC$}5S`K9%|N1w4%QfDX_#qII;;y$nIg^<%Y7Tv>@M7| zY-k@cc3f1szB7KXG2W9E25|XNJikcY+bqXgyhE8i2TxIK;`=DBlo~X`bV>0&s~!OJ z=aSlcNIv|B{-dWI-BNtTR!*L9_~6cZYXuCs^j-)%!kqG-1tBBnCHNr&zr@x50MDE` ztq~c~S3b3QO(fMSO!e&@y=jQVChasjM*B?PgtSo#Nw`* zVSS$lWc#sI^uYaqnB)bTp$=4OvnzBKMEH1)Ug@{J0|NrbemEBfh<-iAY3MCD(<9wy zIy>i;@5feGxV1)=cTVtNmYD=l7j)4a(psOWLOsMkV8P67f*P@bRo4Tb=NkRDA2@-5 z6h3VfUPw$))SXP99Nl;X8Lpz3&yt(jhea?2CZ#-$)PVFp^v~z5B2htZADaO}4WP(z z*L@P#_L%h~hHLCp|QjdY%o6l8yuQ` z+}TO96esD*TGIur(-l9@;iz!WuK4f4s*%+Tnp!_{)qTGSHFV8ivnLMX-w@(FTg;ga zvfBoG8G#t{WG%P+P42h_*qESKox#MybWzd^s6>5<7 zk@58=G2l0?3O42R&&?PkB8iv_7x0%Yz6*;&z7(N;)A4~U;LGS9{va(T-cX}}#~od; z-_C+UBu`L(ucQR>+jP=pzLRiAjoNv?d57cDNB!du{`P^2B!d#?oK4i`dqf+`UwaL# z-vjGn9#i^i#B#aZ#XzBr06z^;n8cc6!txy??;G`>Fw6qpaqjEv%rX@Gr_lnR`#|6u zyY_$0NXL$BXzG#HT#e7S29H@XJ^X36kL1OhvcI2};7H&FP2J9j9NZ|n`b#BG?-c3P zwp8{Xx32i1AK`xa+vGt_;WFzPaB2Hx%ZFEfMF}X*0HS8O`0R(0ma5 zmi#o4m9K>KI0u%8o9~NmN~H_Ze`@ec-`shzGf=zW2ce8Q3H-GO{oKaS!j2_j_KN@=d4N7YFe8ZPiDz<3+l7DZ{yAeUX_;|Q zcLp!RU}0j{*d?{P4tk*^ zZIOvyNf2Z&<%e90!0A*TaHDA3=d%(D84EeMpjROgJ|g-snm)6!n%q#e=K_!-y*?;P z&V5OR4-RtNNu>w`w&xz<=;D%`CauKVtLQw1Rp(X0sa{~6$C!g#@~2&MoedlHs@gr#i% z?jGnLvV0)(p`pGZQmk1RrWkQ4GQ*ixL#|EqNkEOD!^*>B<}ugu4c1jGWplqw!E@Oe zy6?J191Lq?y*lIZeTlJt_IZui(1wh$n9bahs$cx_N&QNVbU<6ILTZSV0s*4vxCGgI zb72?14c0pU4iDb>%^Wb!$HZ$+Bv2=q09x>i*>pRKCyt`TOJH=2OeV2)P|aJP&3A=p zP@H{C{_&7cG@g~s=GBMa?Q<&$dvWQLFOf*@zg)`=AKF???OLx;%gUkN;$^WOW*E4P zE9O+IPV%*N-3tN}?i{7nk8MdhF{_K~9|m*Ee;jYmPWGJUt!$E!a0|?^3_U8ut4`cKdsBL1d*@81tkXEDu|>Mv%$7K}vCfWdb7 zc2;Xb#;PW?c>B@P*5;ZUfmWl#!>`=haiXyEzW6nO!PyULh4qatuqw&<_aR7-|DOh> zBQT*5ci<1yi{f>gt!IZ=5_403`=UK5l-d_fsR_cz;yM;x~L@p=1N zVZQG7-ar2G!X-<_<$hkJajow`708S+DI8+B$t<2v@Ear`L6;|E(Em=h*jq!%Az!?i zp}-%MUqFrPRcOR?=^t(g^$!>QAlt{=l3yz4F3w~3zNN>}27Lx@yXrnOKO@J;W8>lf z1cVyq0_Eug>0=5ZMehMir@Yu|fzrE}k)7ea$-;QIoza%^xxd-LObac>8Samh6jABk zSI+E^XJq|_!jZED^`Hsg!g?6frIYQ6PSS%$5s0sRs$RwW^{PHVrXh8hC`3*S#l?R; z%z|dZ1n%~U;1=3?%VmXxyIdL~S|vk1{7NEy6T-^$L7RX9fu%)%3<@5#Y;YHRjpmNs zSaf*ti++tLSYrHztx~*~(jF-vQqTctveG|-?Mawl1C zwoW#OjO3KL!%f_E6KS_JR;jP4iPz?EwjoOeROo>VqLWUgGVS#GAItUF3xx~3*em$R$d}NdZlI;NQ``-7`wiC)w*3Z@;>F#_$Rm=KIX; zUJWVQ%?al9X*2ZVAN>#4o-6`Cu#@-r?1>J*4Y@!jN8#RW+=7F9>&9N6PB9vio@$uy zK?;vjgrlhcgK)D}^4+Ty$~QjB^S7_)Bn4LHkJCg$to4)A9U9hsY@mp(wbZ2dUsY@p zYaB^ezC3KFTO;Y77~V^wvx?u{6V?cIIX_QdkO<#4H{KK1jRDO+@5QBZwnB7niW3k{ z7n;vU3^wK3+f?mSr6P(cC%-{)pF>bGI6AXZXH6Np_yfVK`~Z3-Gwk8yFvZNS25tsd z?J^}GSLC@3X1;#O|=AX-~K-3i2Vii4JYsNG-1_rm_a4mY@MORcHs9fhwFX=^xS!g4lgDkS|$-a)p;j| zOW2WkwSL!INdRX$)}!5jd2?(4cn^0&iphv80txwpiJ&5Pu+01LVJFz=Zw8rgxH0dJFf|jI+6W2GTqY^al4~F^3@~XsdU#K&wb-+ScO+Ua?`juC66>x@>lSCt+jVC zv1r%#3c8M{RX+FfXdd25M@DY`KgR8dn_NA~Ircb)iAaxNg}__M&w3I~DQ<>vCA=Tk>pStnjxBsS-Z4_BBF zEpOb`(rhxng*e8*MWNS?=WnPkU({(6iO21?;_7MF1bHKzS9X(51$$lBMq)ukPALK<7TeX%P`;yv8+|NcB=QlDejFzvU8<-M;a@q-jTww==T|$pb1*7Q*A1P}1pAISr zl8qs1(%5=8T|B~1#=UaB@#)TaP{0Zd*4E%SjO4qYJMJ%~G35xv_sCBE{ay@FMJQg8*|I|+cnEsM?V?7f0Qf9FRFE$ zKA(5-1R&XVGJIT>`m`cycoIa zgdDW*xjO{nm*w}lrJ{sZ}t0LG3bZ;=d>o#~d?QM^wElapV3*Lfu*a~hd#gIN4(D_V8udf|#NA1>xIW|)@ypJE z+~*@rfP5&+OB=eSuXkq0BWj>#Cn4u7X-%ha5R(N?QUHqHdjvl`!(0pgrc787THBW# ztH%mt+T`_SAK&kOsYy2A_tCJCQ(eyU+64wVFXe>~}}>A$8M zw}Sj>LFt(}aq?G1XX$Y(%1uU1hv~8minohWM5-u5>S+g_S8HxMp&>;952>k0k?5Gmvb7H1r_n3qQ zHdS*erpj6MK0Yu=a3~!umNN9*OrSRs+NnSRr$hEb&d!pHeL z)AQYf8ao6e%`pwN2oO(SnTLVD{Nv*O+eLMv-Rbh!IeFKDN_GnaS4dli?`%Q)j@_^} z;x19bHr3Snu1fuZdMX`3wD|O!>q--b{Gyci_;hb-Ra#R5?PUs+l~xAGz&1&%Gv}qO z|Eu$7cEt)$y6_3E8acZ+0+?%UF3r+E1#*)^{eT~8Sc4X#lP}y_KRN|U?OnY;Oc^S{ z%^%}CGWC(1$N1 z5{6|4HR5pyN8gLpgfNsnz@i<23YDmA+|#qCgGc9;yt=G>sug}2>@UX;1@(V{N|`H6 zuG8pl!QaoRvhRcY-lnuj?J`Df9=?0Dr?S}hI4ir0_XbHuUd+nzJM!`P zgOcOy-}372@m?P@m~X2)Dv`1c9L7GSM{LK}W_MR}%jS#k4Z-wcHPsShLx*Y{I*Z#SeDV4FixIie}YxU}_vCOA_UJ5?JZH+MI+`X_09_J!$MdDS!zFjcyp zF%+XS&a9WvE4txaJ?gb?jM8QE)KL-^N^yreY_RMXh1&HQQCCHSv|U@Zlw)u6AG!?J zxwIi$MqV-&NpXCWLpTTO+$~;C`Q9qe{lU;xhr=}NfSL=ak1wJd*5>(Ud0!~w8P9*d zqAY<2^Qr_pe$3o)RQ(~3$`Mv*-3AqPjB5Sz4`QR5JLg#72~le%WT+R%A8#C4 z!^A@F{vA&x$)7ZtjUJaYP$unLbxkE<#qjEk^N#Tkl;{z*(|K*}LA_L=7*6)^ke-{u zLpb>%Rc#C+;d$rZKQ_QK??ggm{;(?%v7Y9qQGfrC>|_(VH8`67k4%!A0roSyAr;l=q=SqWxK`gs)$D zM1PCPIRfhhoDI-JMi(c99xL-V{~x$^tdV{0_J2l!=D8-DHD^3Ue%C=vt4LYjrDBKX zuq9%4o^qAI!GC!4Tc+*6lXQw!?@o5!<+GJam=Oh*lWT&Y$b@tDXx|8M-&2`Y4IZ91 z%#DBY8)}G;gOKFy4ca2te06@5Tx6JlbWu*(fGly|lBV-Bls(>PV zl$yP#x5tG_jFhZTHR7z!ooDqdgq{}o;kG$9Uf7SKqwu@XbaA8DkG?&5aeEwc-mQ8Kg5C{$hwU;B@4ouKOM{Z?2x;4%y8}G*F$5ff zyA)6%g?9`sI*8dGb%r-AZ!tZF`&LF+mS6p0vsY$7HoMkLLL0sU=3PCs>gj73J{Pw{{o^$X?OW=h!#3$yePr%8=j z;>;gRKg1$(AG{NW_nZ3|m^}B`G5PLt*HTXC*;nsgW*$oqer9%INw33@N~X^8!E(V@ zKFl%(evfh`w>~n!h2?^|ymy?Hs=hK+)K0W9TL z?#u;pehg68%uIg3xT90Sn&DpYjgBW4sSDd!XMUUY$c znSu44bY*p=%Z_bSm=r^K_eKck6kSb=-Pj+P%Kqtw-K7EK+ zYsfr#A=Q1xx{rx=v^%DRB=UapI?F8AOxP-NH7v@D;i~9}UcS1|jpXOw?BiJCS~j|4 zHk`l(y*pT*wtSiMU?-Magrb1Qj4U}`1DEwi{MXw+qL)4F6;b*Z|A8{E zD}lGytWm*?NA*sv=U}v=)7{3yiyR^~U~VHmyLpOZ(eW+Y{+FM5Khcl3cCrJzX_)Pp zRu$Ww@9~tLf!W{!*=^nR&p*x*cQys$^t&LhTI6|kAOE1?UCyhMm*DZ(Rm%M_n81eEx+w`-3 zgl=3l{Yvs9o4D4)wAatRiuKQdf9mMZu}QlL&9T7pJC7EB)=z^2$AYR`25-Eaf`Ef6Ikl-7=lCMfL>}R#ofpuZn zbISNol=BMH#Rdnhee!WY_a#^>{^_50m{OsIIh2W~G zqe_Ul9T&h}z~;9-(nss3hpMquvP!o1Le~i!L`0%i) zR)(v;^O@X9x>OSv^uA~Kp8-WIm%aQz#M^`r=ywm2*afV{R}@ zCYE*GA_MTI z!n*bL=OrafOs}Fh5biCjkwX8=a5<9g9^aD;fLA)&jD`$jLVns{evQC5sw;Ue-Xsgm zTP6BAV`0MG()dKXSwy6J(F?2XN&YxY1js(wg z_SGf!ZdJ-;Ro}fy2fQqh3PNxORH#_rIbfYMW~`G&dDodW8FDH|z)FrAzpWBSkC4mk z<|APmErMfHb04iCWFfupyyX~-py^Z4TO;}1>t8|~G)k9Yx-Bq~m)P5N{on1f_Vies zhC5U)7guOIL?V&t$|=tIc8Dgo`A$I3;Q>ni&Hae~B3@<%GkA!fC?2xDrZBJMZgxWc z%q1PFW(6r&9_>Gxv{J!qhG74zyA%$!wzBK{#)M}X5ukJ~KA@0Nx$}i1lDnhu`U?Jl zbRe4eM9rH2nSXZb;;fxt+*#S7*gE!+zCK*5^nm=rYrc2kf5|JI1Ct;d^M0+8bfn#$ zl^$w3PUBf0{hBLe>gaBC{_IAh{WD|R5{UMV@qf`JmTydoXQ=@{|E-t;fnp=@k1g_!0`OLBD z0CeLYw_=HIo}_X)T$#@E-*A|K!k#vl~rG$d4x8eN-4W1FnYTVu3>- z`u2OfmSTL1UEHnBvDd*3{-v5kR#67(4dq&Pq)*43%DI91(sMtk$n8#E~ ztjJM4>aYm@FGjDG^1mo@={?zq#5o@Z+pAx`nCK-}vmwCyvm;hM;j1-28_xK5IGO{U zzNlPFiKpWPMD9zf3}XG4T5a`e`L1#gKyjNhD_%}xz=~OEv8DzO)TIzLT&|4qK}8uX z&MKXsLNnEN?j{@kOkl5j1O8_%%E(@mRE_3x*xmX$Om7lS-(CNbFs7&45y`|JX`RR^ zgySo;Y$HeHL?c=R^K0b_r!>yW{UemvyIvXjQJ||J<#1RKk~n9Uh;G+M);_tUXm7Px|Oty zVocT%?&ystCjT93M;_A$&-UzSU~_f6Z{@>5U2pnHU2l-&$e^Z#v$FMF={fec32$v} zx@@x*EYssH6ZtjFts`ugW9FUc^R7t}q)>(9-=wp%>Va2D7XrGjq}D69>7%TXqLpmt zARkEFNTyPG7AH*yI*fPmyboE1qYgbQsHPZzgiM(Oqu`qrk>>r!W8Ok zGI0Yg=3Ckv*ckkvio|vusO*Z$g)F##_!BiTuTCT^8X|7AH!XYi$M40?_WLt~FVP4Y zqfp`#cMw3%%>bQwYdE3bR(vhKWpz6a-gV3W!TW>N@5E`~Z@6Sk!b{gd+xfw|yfaZ~ zPH=rQXM+oFo5|-3-x`DA_8ZjUzHa%7XYr2I;Y%z$9ENoNlU8P6`k+Wq>$3PI`H5X~ z5yc%}aNczxmdSx-sY-FRBf}cs-*FBiaC1WjzY+}%{pDZLrB_V90@N47qir-QqN~-t zW2DJY0l44la;~o^4W79S6`S`p&EURjFbxziqIet;>#K25D3>y7CLj5J>&G0xb}L5l z$i(OMMWv!ky~hw`)klr$bf@@*Xq{vms<`Bxc1d>0bLBW4!FW`@r1Bs&RIL;SeWj$4 zu2MZs(^8$v4d_ig1v6IPMYan!z#2_3lb6aHJ_03su&?Ogy-kifG^FJ4z@NhzIQt;o zmij+v4*T9QMUM8p+zV=`K;I?eCt@xSH!15UCdD}qMNi*Lbi`C9Za4hKp$UG5;l{#_ zbwxtjPuWZzMDE~i%<1t{aROJP%W;X|_IQ{-JfgA6qBS#@zCqz2im7CeHgv_1r1sas z?Ni0`$g$GD*z!yPe&7$P-btZigSm)ucwUsGI;*$~MAIJuu>0o9TKh4?bZ7G71Sv`BGk3%`4+#U~pGnpB>IC~jvMDo9a4eK*pcj{bR z+*n`lk9V1p{;vE(JSBk3E+!B9B<)KKs$*mWq%EK9rEe9@tmH5db#_7+x1C#k*Q$8e z^l{75aPqkzR%VHFfreJFF*oe-c^M=4qhId#7n%-_e3Jz-35BqUO1aqWTr69inF6KT zrZJ?0Pm#tSx!{pg@cBmGZLdrDW`5f>t{kR55l^bz)(d`Bt1KCZa&&5_&4>{C35ZsB z9!1|%A*?@Na(B>^zkrF9NBEhD(`~NSSE3`ZA85Mr^nEYky|APIi~l|l5HM98YlgE; zCS*+Sykij--qS%y7NC#GV?9-p%-&ah`XJpmw8+GbP3=0wtpk(7&h8aEL*IwWj|eer z;%5glJUq92n^)-+3Fl4pn|A$`O0R=3(s{oDQa*RbcE_&$*q6BUTDqJYv;*nM?_Pe2 z;y|{o>Bs^v1uZglux*d>@jUPLeD~JCERhGm353sG!*I5Zgr7Gmn?>ABn&8e+(|gEG zY2%1SY42uIX=7#xwUq05=f>0Sdgb&q88qXI&^nO}tAc#XyuQRb(!$P31 z@2v`^m%K~ve$-KvpIverq38J{#piaKBx&5+|2C3ysLfre(9xC=7Lqb_pciDx}fCYQOO@3WDhVB zlyA4x4=H?B`%6R()0}G^iV6zp1us!3y<4w1Zj*@)eQ|auMl^n+iS4qQ{nh-Sdtn^F z&KCoas60@PQ%cFK7P;*jWf^#B0kPhv9$PH3g507GmD^VOC6>VaqaYwszj+!g_Qvf0 z{IjPIu?jMT`ss1o=Ybd)wp&oQ=2%;DcO&ja_28`=zG_KfQNp%pe#L0u;H?vM@b&@u zL*04FWi6I_=h`eXuwr|LYiVnG@b)^^xmCQ(wPR$krQnvgBdiZxb$j_!K+;x^Yj>Dt zR>^i+uGO9~#;KAuvOMwUcc^{HT+$C!xWTkU>g2G zv63LSeJ9+uNKqy4JLb4C6*=H0)MckGkHrGmex<2-*L%GG$Kou8f3h_oV})G^2-Wg) zubJ?alL=^t_3qo;OuE|LvcWLF%JH9OMeh9HLkl7L?V>HvC9`@ve*xrhj>=r=uO`-< zzhgY*sh{*Qh=(XNgJUQB6x|}Bi#!c; z)kri$fVhnfcxQKG3w@9=pKb!j;}=&LJ@u11{(Et8fLtlG@kT8|VQ9?C^`E~=GA4&X z5*scek6 zy|+X1ZjVb+csHs7sbA1>#^F4Okt!t1`VAV3HMKWL8k>U5-UA=_XnN_Ni32w!@gBKo z1vRe;;m1xyZYhQi-TM4q2flWhCv{S@-F(O4q#~C%@*Y$#Jd+s33`cONhx4GH8-q$! zyj@Hsn17Gvm&{yzFS{Ppkb^YI-D~5U$?~inOHwJXX-JiXwky8pM$`d*>SI!0xvV~+ zSi~vhTk_L=OAqr62Ef&vCqNU1f~iEksvQ{rE(!hfpt4f??|Q^-b>4;j13P}%pgRId z_up5efOIM;(!B#yG5+;3>|_(l>s@OCh0wi&ZOE^y6avKn0>#xAcux_t48?a38z+iE z>)?ms&2V~3!XwmAdTR&-g-+2x&6nvgDWKM>LkR=+EZz+NMm-p?!sx!|?pFCijL4we(>u>3!lN zm#mrpWAwV9duRk~Iou2k4QxUW_4w~C{!)M#Hov@OInk}O)n017##-v+hR@7d%gh@)#^-+qI0ZjV_#i3!Oir06XLTYXDF3Z5 zYx2Q|IiWvnI6P=T7ESX_i;|^ak)-g*nX>qWU1Wx`OzTl!fNJw81}zk~^sN_dHr*6*sB9y9vcjn-uLtGtl}gwot7Kg@ zjfcGAfV%*{eJ7B4qW{;TQdAp!<4M`MvVVx2oZed&-6@CuxVIuN)yhbOytKG1Bm0wc zzOzi~|Kb7&Vr7WQpr-|4OkLJ~fXbH-!*4A(M1eO4YJq$zsrSduD+-n~ecw4BcL@jV z9Sq)ZedhnS9EQLJimcz2+@mQ+kHClSog2u9;dy7Uu4Um7DAUpfcjI28Sm@@eQW z0a81867Zn=)~aDz*wfT8M<*N@SnFJXHL<675d5+Hy1ifFMBLADm+<$!tat@t+C0|d z975u&oSufC!HTwD0nWZ?@=$uu`_4#dKhQ;)CpGX%d^<-qxzM49WP}$&@fY5KpD#>H zA0pRUdK?Pgq6_`g`4Wb1ylZ#fXh(yk+vG%>uV@abq(FQ&rsCph8Vr8RUE$HF`^UB@ zkvCANp?7=p_q_vWoN!P)){@{n;F1sM^nb&r*4SRTh`QIDKa@1lTXv3@gu&hYYspJ# zp=q`8aKX4OV95XRM+Er&(kfq7n{u&^?svcO%Y`1dy3b(c@hU3(lWQI{#|7irbc#k2 zM*aHf=d??vEDMyk+n)Glc;9S!j>YAL()tnPbyXzV7wl!(gOT#0nwSiIh*l!$ ze`<`Fr8Guxwoy4*Avv8@?r{|`Uxn-Pg!w+|oK>3frM!;fdDb8wq|Nj0sQncX^zAox zqqODCs;)14+I}fBZLpES)uDOfLk#=KuCv>EN$M5DCY|QDcz>uRLg$Mjgt2?@9_A>>_H&{zS=!N}>oQ zmh0UM>_EQVK1Z8_O`b$zI1KR+8tXhmJTEY|2!_|m&e^WW3Sdrr+|x=X#&A=Q_NMVJRg}b-0gx>go{(T;MLg7{ zcYU)se`$M!s(ER(@nBa3Ug_7NUgC@kX@1a~i@S^M(+N1Fur#nLCfBjX^N}~R3SDHglG%A()6y!t65f* z<<)~J9z9jM2KdL)xQ~MuBK;5Vviu}{lWI~~H3c~-ZOcsj3d!6JG z*w0C#;&=Ht64tuQvVmuJ8{1W#8)6pxIqLdpFjckU28GHK{@BdZ70}nMzP!z!!@B!* z^`NG`am+r~sD#w0gi7gyyCHX?SK{I7D5@ag!mF-uj^p{c|xV8C#TRO zTiRf}H@{1@r07PAjkNCxNrDAUGLiIkE7$GgZeKva^aTB~dHbb|bO?l3Ua>ycHVUBQ zB_=OX{E=Vm&Vlb+O?$dDs4{NUH=o6Gu`|c7+aeE!I+BWxUnMF*Smrw*S(|8_Gv@N~ z9l}mCoZuqtHeaII>VlWpP3`RLGRD{|EtMS0ofKpXRMBOm?)H!}P=GYJ(~B&(Xq1)C z6v3KF9jj>x2o68qBAwssQlo+ah?hEXN6EQD`Ef=)%5#tT#Mh$BWs(HuDVvAEVlDfI zL8TT~x?qRNrJe@Bwd8-6%z_UEH{YDh%HHfMf3H<@eq-A=|72ZGj=X|r4_i1&suP=! z4Xl5L09PT*y~;wlH#VFRsrhxew4Fe+IbYsX!4rlJOh)A+B<%Rj+Wqv)}DK^}`9;tQxyVYI%wndKHvhP2H8jHU4wc zaoek^VnNxLDa7vM7=NTc=|fZH=n?+IT>7Tk*WY`U(3;?~t+-SZgXp=pJDnKOH9E*+ z)bOn`n(n9b164+vRlO+&huO>`GrUi}!lih0NqxckeS0rztmOW#go;S;@>(u;}+8BYI77GtSh^C;8*ZQcnb!B5+MIN8$9 zn$Unv#TLuxa?kR^N9R;eX3Vcy1dJlMo9|~oWXKNZ`d~D#oskuHvqrnY+JQo-35vDZ zuVxuA3;oSjv%Nv&acDt0?NBEZE2U9~?{(W#j6W3x+%{UA3|Zh$NhX|8bQL5DOA;ih z$FZez1`RL-r{{Q57(P!u_CxtSP6l+7ROi^IM_GaY(X4m#xe*aw)b?Miy4x8?w#}Ie=2?uc` zu^*VR#@Kh4G$~YOauLU`Ec!h8dPg=cb8$I$kN%VKA7bN6j+m5_*yR%oW#Sn{dl=7P zY@m(6JRQfGrt&$8KDj$)Z#oo`8o|Wv_%_J1X1b5x$$>cS?3w6pYxD)^OXTNbjE;t= zMj=L|t;*+?W0}wTkLSiEiwkwTQy&Cu!tnP#;x|Lv)5hr~7~SP4uv8wS17j?Ac@RmUdLE6Kh9-e!ffpxtXu7XCwcCf9XJr-#jx{ z(t+a*8)911k|k9oq5LI^*x#hGgGAvD%~m+k3=M~*gB$T^XHN$?*35g0L-7JgH!pOh}(yP=p>t0@K}ZM3uIQJl?<<2?CE8vCkD|U zzEs;}`*m@?ZY1{tjzbiURk^=@!spPI`fKBTf9hUY9I+d*RlKxVRdwUYk%htJ+nomC z-#arDw3W}KQuX$SUTcZ^Gr4UMKrRqpxd*Al&rF}%ES`o86KUeV29!*Xn-NNt;hzcw6q4glC>>>(*hmhgUecuy;B~)Eswh2pDC*!Gj3t%ao}VI8qRn-kF{g$r?84;>73?tR|McWt2P~`I|Lr_lUqFjUkB`; zP&w1|`8hQ!==g@8c+G2-`}VHBubs^FROYU(TUYIj`I7FKb9MgqvFv1zjzuHWO-}dc zS4@7^ODxw!nr%R3;TFax@4o)y{*=_NRUlyXum;Itq@1v_^kJ8+PWzrpE{JDvptkNk zPbm4)uEOAh=YE2gP?U*v7_6L|?u)KoD{M8b>%P&37-R*QVrL z-vOEi-Z{Op;09FW>wdr&NemV?WI|sMwOjWHf?|^T#&f9@S)asdh6DhLZ+{4a3$8fdCP0oZOY`2 z3+e0f{cu`;$IYbFS3zyn0hNwV&exisjaH_@xi^t)G^Pk*V;$Pc9&s6*W^?tcDAuSZ(Mu*`)9HFYq@D_-pP=2OjEfV^v?oqL(AhO zT>JaAq!fBxPZ41tk}*rF_lqmO;6P~7R7&2vv|#z6yQB}C1h4DtI9|l+T(}t9_Kmj= z!zu#0CXtB?>dy`w8~I>*z#bR{xRn^p0Mv5|6_x;u)I!2lqE7Vz(KfSo2C2wFiDleIDE2eyXM85YyoKYK~m$q&nFp}`1RT5{>oe8pR8ZU z8Qg!REWXdPUsO=LV9)FLwr@B4+PdNV&iis`a~)c)jE8;Wd6nzqFUMv_2DtN<8JUs} z>w$-qO(p&D5D6_10P~J>D)|dip(b=~(;z?dCXk0g4*ZEcxhvB)Zac9{{TuMl;bM2H z-kgH*_LqZvjue6=joddbcT}E&vwz%EQD{8*aqrAyp!99$!UJ=%vkabKQW{fh-ylEG0dr_5K!G7s0m@YWXLX>C`D(|K5u(6JGzMi}(t$P#kgtSiKwqVG`} z&{hK#Rm?Vx8M`&0g54wfx@^C`cAEacHTBgztT2s+*G2#QDYi~LB48e;Ba?hWDy_Lg zQKdY0qAAbYk9~f>#B8g4te&xt+T_Wh3iN=^d@lrj%Q|O%AXNS`%<^dp-G(uox#_l)sZa9F-h_87G&2i|-wW%0ISv%YMX z1MzCJx8pGD^|JxA9=1sg&R1{93<`>wZe1U%5Iz!|)n?axa(-x60P1h}V)s3+rjPTa z?}sP-A8*Y6q$}TYDOI&i+mST5mubfq{uy31CDCGw*abl3=;w# zM-vY#B~kUCzds+rRRL|r0>2YB<`xmP6nZpNX&EWy&d;j-iii>qr$;l@IGQID>vMl& zg<2ZR`>O*jCQj@ZST{|e@MmzxS(ED{>!&}N;LKjQ`6qsyK%S8ZM+O^^|6q5 z{kY>mbB>UkZ7P3Y^&I}|WB)d3%B3)04KdW&9e%=HX5M==IyuLHc|fYSfA9WY_#f|0 zpnpc1ToKYa>tM&4a`_?9t*14N=I6$lC%H39D;^w8LiSG}aX@|ITE5$TH$3x=aPU{Q z`q8Gy!*zwCv0vj=mXX3ugYxG&Na??}-0E=QC>*Z(dVB2D>$Q8ccRzLPE8bDx zS1jElk~#nfw7whLb;w!JTXgkrdR{K9W_mERF*7z4Lm{d5^CX_z;wTXEE}&MJ>tA9p z@r~OScr9n`Gb;Ld`JC;^Q*OQ`6UY+y;^PO10YD|yyr_%kf#ho@^?{fbKgsUj9dXpp z;?Aiqc&2`F(T#zY3Fj=-CU3+~3=N^!B2us&E;To^oV&T`fo}DAaa!=#&DPZX5@$HT%u%>7PTF0E$oLto3a6k~)O|wB$YXyf_B%WqsGdLm|sTxx-V% z7F?o5J+ITw_CvS)5Ted)T{TlvUs5puT9$i6IDp1{?%YHy6jkA~F8OH(t|95HKwC+$ zIf}~7?(c~1I+Bxxy9-}cZ8x*s77rgL%CZdyzK!`fDN@^L;v zbw%!Alp3gQYuTlj{~Yu%IB1s|&2~z;sCqVRbwmZ}7N^-;KM^2})*68PX*<%sd|)C* z+$%QV>Sj}8YMf`+hT>I{4iI>fnhV@i!2WqskNAFA`_|__vr%lI^R9+D}K zNB!X9s+?`-Oc&GG6Win}+qNX)urFa^dGcxNAD2YY%lFf<7v`(5kLO>c?0)KYl7?G6 z^8Bm1bdLeo9wzL%dol?GMNb_|-M6%kXBZw4d4B8($1`;N5vHZE@tEorO}4YCIOI5Y z0*r+KpmeyE1U^=hFF2IpiEVJRPtfZ`buN2YKnrE!rAyLJcSvcGs>3yLM!o%aH#&BaGZ@H#OKj*E z^Y1DfS;|WTvXD#f5v;YAu9a5uwt!zYHu+u5-~tf&kD!DQ6dH)@g8t!`?JV%zudj92 zaayIr7jZWG5xYgjy(xEElEB>MFb5@e%;HboPudMJ^+}ctSHI?6;dmF{+ zgb91R-dKZgNmNK6?c#EUP@L%}E)(J3$|_%Q#kpIx8jqIM-Cc#c#i=Kd;|ZPEmPu&{ zUuM8D;!$3P>UQ-xVMg;$IbjDGW1 zXIR2Zalr$o@g*ULej2=%nnv^2GB{gg)(o$9GUE83ZF$)=qo1_Qy`{Yf1Ay{Z5k5{y zBt9hLON5%J%NnaGZB8lOFPQRM=Pgz*EiMvE{~GQK3~>R-K$?&*&==Zr^cA{P5;xQ& z=8Rr1z7|gFU|-qE%eAD-&!@MLH@_UP8&Y(}*Ven4DHFC|f&HnH^(B*P-SXsmwH@>u zXA``K8-vQYY%yXouB$QQWPM@Zgm^oL_uyH{S-AOS%YC=OSLvCF?&}kfolv-8ZSuY4oUtRz zby5e6HkMh_Z?p5xuNnVxFpLiDygYx+L*)YVCpuzO@vp*x zu7{fnDo?&E!L_{8_aQLZ^{MMsuKg~weZD_#yWtQyjB7jSP#);kgf0(is;hRRpAPpv z+s8sy`eiI;SqEpKAn_~?mA|;GcTh%G>8)alS3~jt&F5a!AEUHP@5%!m%WJ#n_t_kj`yOAoH^03XV+^h2bo*L17aLRNncp-;+z)(z8yuGK9@FQ%U|Mnk z;Ll3~)XJGDV~utAZcsh8?W?-tOA8%SSD00$P8dbD?w>%dV2&pfm4RVh%W{q?l5$L; zR!mVNm0$!O+CMO)^4>XmdU*fE1Cy~S!tk!iUT(G&you+|w`t}kCDP=gV~~mkcS4NQ znC`59jZj~?Z4a%>7Hx0;Xavi+$X}0)qMr~+14?1GF+)8J!zD>rDu7I!_N9s&&OOVh z>=6e}CPI>6$U{>x8cCg=1-BSsF6p4PD?-J%D2soH-OUWAXy+ECw>W#(1wk(wR>7E1(QtU{Vzc<`B7< zDDR{A)gVtk!eLu!63H9b>5wSy>Rtt^eLhwlrpZL&fQ4rRMd4Y-LSRWJT*nVQ+(7q2 zy7SHL)mJ?d%uyLDS%M?m;n2{4QfiZ3EAF`=&f=p~IZy?7Q_LoY5H{%EZ?EAt?% zPa0Wk{dRACy?Uh`7-x;Hfrjxdl);sbYSal)@C0t#Su96S1v;M$D4%e!QjYMK z&4{a$UX&cQYMxrwWCrDEjW@Rc$>Zmf!6sC_MR7BHzDNm_as8PY!(-MgCI{-u&d=Qy zx{rxWAQ3cx`20FB*$SP{JfJqpih`W|ge4gRJ7jVQ1R5)(+A3((7j>oJIG@#h^RSZigbN9; z^dtp&LY&|Kw7|Xo5Co#clRJZ!-z-X&cdiF%jCt|*CA)vhuIu;XR>d@tp8$(ixITN&te-Y8G6^ki-d-1VUN-rpRv zo%q!J<#-eNHM)4{NZbD3H@|fbC^|CgZnA6()Ks7f6fSMz1(Y1yw}$u}`LPgoz~ITX zSV2bG0fv?=TSq9>uCwOIyl~pnR@0m~?Uu~|!z|f#pLZkZF*9)<5}|X;Yn3oL+4{%1 z?}dPa)jfO8`z3WQ|HXJ&|4GnEG~1Bs(x%c4F3|DIm28rE=4jy}Z2M9iwW7^&?4l^G zV=}eCwF{!2A6wo~#CVc){A=%@qWw~zw2 z`j@yG@PsG~^7=)FLcCLCffN|)UM$7C@wlwhpFq*<33EhBaW~O!zq)(DEdDP5+3SOJ zvF~aXgl&O>%5_=)t^0;yy4qj;Ey8_(W#2_}2D)~mb?BM!ndUSy5&(QIqOJv`sY>jE z9i-N!FKkWde`>Zux1>Oe#kK&J_)?9IHKjFmlpbyBIf&uR;398WwUF40W$kESnzL=OeZ^*zCLvvV%->p`vP{*wsfu} z#{Nm^%>1WXS_jf4s$Z*3n;#9gLxFXiq~0jLuPpaU>2*2N$XelfP$i^M{zpOfL8e&( zv8_;};s(MkMD=wd9pi^BTB|n9l^ds6@Hn*@1bs454p>8L2<5f5V5dq5rCxknIg83Qh8@?(3#>q4{l^s5sA7fGtjBeR9HXff)75|k{Pp_$U25E!pjI@q1|(pjSoCf# zFR*7w@OeNHOV--p#%nKsUeCTjA9J$?g1NZlh>u~wO`pufwWv5nqdV&xCh7<=V zro1t%UXg#M%*CKtFDK*YHxLMy3E%QcA+bH=4dnixVy+IKJvehiUdjpsDj`><;Ps-x z$N;adCpvlI2|s!wEb!WsNJK5bF)_tqgnoEc2=IuBfE4#kOsea3f-NiX<>x z9pt<=SVCvFw)vI%_Gw&V*&Dn}m#n{Y?Y37%X%SAyrmc&2;6Vna(&Qf2=sW!OI}j^Z!3Zyo&%Ql zO*SW&MegZ3M4&g8>OX203d&|+)5^X7TobI z<_&P62+7=BSo8+6vo`!U*4k~qWPEf2XBDmOKyoYj|aLxKV?J!P@=T?O6ZgsHO5Dxp9KJe@^3fwoOYUzZ#aUXBpF&>_<-EQyGw%?)6XP4FsT8Xf}{WT>8V<0az-ZlGE z&jAc219(FruR1;pur^7uJG|_~PG`RRzBxlyTFsKf+6OL(?>Pe*`K$nf>ptEm$uKtU zk~C#kYtw61g6U$64`gJmG5_&{{pxe7?JH;gV#1~8VBBf5GGVZf9KzX>gcB8K!)kdh zfr3`f`S9CQ$Z=={5;RbqXV!r^r4>Hj*<)^5RYBeTj7Am+n*&5-IHvlSQBi`-bl&ba z$rTm42>YhLgp50}K+!a)EiI3!{9^IL*+cg>fUG^_+vg92$q>xhq*WzruV4=Clu(A<1cUl{Qqr=2|m& zy(~|qc{6KvOO^b8M%JRg>fKPKgFyXm9UTg*e=E(Eo~|5wVwLaeSYzpeRHUOT*kCu* z3YXdDPOgE2z_KpgC1u4`($qmpS;Lcu{&J1YZu@0VYUdg0F5jIm9AsYpGf6Pd&+>r2 z;8oFQxdAXHumm+%&`A>Fl0eU5WP!uxeS9TZ8hgM0-Ffw)6KM9d_W$Nx+h`mc`@c=| zF)&S~)d-JTV4C{sRv^Lkj5!t&UbUAr!k&j!9fHuA5{=qY#C4ly`6zl|m@ftl-}_^; zcq*X!^R>1%$23ldiKn7Fk>~(dqYZQVm-AsGjD^5${**vGPk}ieSDH8rLXX-eNB~KG zQe1Dpi=kGeqKlG~^qM5DjInc8P9QOtk?7CY8pmc|Z63^iF5@+l_+sEtbP5vL;$#>P3h?2)k@EZ-+I$V25xj)Dr&pv_-)IOn zP#!c=;+eB~+gkV8tQ&nzB{R=-X0*+9^b}M#YW#YRr*0_$%^LwF*gYaaKI= z-D7lm(EgS1RN`Nd3r-RQrtcme!+nm7dcnn)MuB*D-t3WRoe2Mi&(&s7u0Wg(-U&-^ z8>DW)h!miI6pl__-wBPL#$SG-=UDuX>0klq)^Zeg|E=3f9ZZ$cX7UDk?vEs>60UgE z2e(#&Y|CHJYml>wBL0x_K0X<+0RMZ@bB->uzME?wto?_)>y#e$hduea<;9=<>FD2c zd7)MXj0h{-yh48D7ls3ifkV_Y6K?A9huf-=|65e|m$UFRIE)ePqTHT)|IKx!H8bgvayg9lxinH7nDqPv2unEV(QF z9k6j(887D_B$)kBO;-d1P9kW_E6EJgUs*+PP!bm#zRY{{__O~^I~xXKSmn1I8|~j) z=tg}GdCjO#g=t+WsA`=zxZB`T@phHOWcbo;Wl3CPD!D5dmr`&g)( zQxVGhI?Wb9j2lmWUHEr2m%!1ynd~(AJuZwsMld2hF*%NLZWc73HPR&(djCk$1HXFw zCQDqRgR^(WYQ5~w<4~DBSBR60AX~6&N&QO@$ng-IjK|xN-@43aDN3)wtZ(ha%-Q_! zTtUtLK6l=PiUfmpY{1CHKzyTUK#1)lCvd6LZN@Wi5b_B-&uxx<>V`l3UwMsAb|5uJ zEkyy;V?_4%wAGYYbzmJ5yZooON+;GyfRaL)SA{h75@iPwjwymH39r|ZgfIoeZu(OopF)z_jntdSv0!H;=EAv`-=0$-*fn_sL zIow|?tlG|$Rw`Vi``%A%mFb&5?xfFC@(@y_`&X(1Yu^?CtCm8JNRfvE$#2BL?pr}^ zi?`p6qE*HB{JCO}6z}gDnU;;_4FBBnVj~>nNVMTX$LRi(f5{5)5i-Z5kV*S((>Fyf zX3EtB1oNU+c%OFT3gi>IzkrUaCHNy0;vYbrA!k3*x7MEjHj;^bGJP;4v*{$zS3^o& z?x){zK4l%ps|CC#JguDU&c9y*AjRS354fyPUO>i8HNhYG+*Ms3#0mc;B&NhfPm~Q0 zY+7t(g!!M5Py-_o4C*}hhY)j+DKPh*hNz0;I^VOvg)18{27l03w5#SS@$X-B$;E&V zjm@3EA0(M)36ewXJ+M@r^OcD(gfJu%%M)Wr)#OEqs<%1)8J7&S>43N-@bY=b{hlnv z>4hTz#hT;QyIxXC=lU*{m~)%}v-7cV3`qFr8#Lsq$b`CW@^2gNWq1%XnAD{{A=s{( z6h48>O7D7rF0E`*JYslA^R6V#Agbiw+x<`e6$COqG7JCi>-!CWT_z5Rv5fyl4;Hrk z%YZ%{BtyR=%PR11G%-$E`*%ktw9bRs_-DKfpDDa8Zw65J{Jv*-Wq dMholi;b+%;xa{z=N(%6GUF+u6VhyX1{{!?kDDwaS literal 0 HcmV?d00001 diff --git a/src/renderer/assets/404_images/404_cloud.png b/src/renderer/assets/404_images/404_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c6281d09013e0a2c5f8e699a0a6038d9480291e5 GIT binary patch literal 4766 zcmV;P5@GF$P)z1^@s6R@{TJ00001b5ch_0Itp) z=>Px{SV=@dRCodHoqLcR#eK)SXLk2aLP!ExlChA4#6y+=^RN{OKVlN7GET+i$PP9^ zR9s2L*v|8hkf(_)D$dKqRm8-V1lyIWxJbn=$|g=hDpjdKsES{RV8G%C=q$?uPKVI@ zbbI@l>3n{tyVKlhc5i35XJ>Y|yXtp4kM3Xp`rF^@?)i03k5(>Zihwa@T{TcUOb~82 zTJOM^>y%N4l~$ulnNg#?eZCwAYG0|Oex$WNovFbIGuH{@yXYMt0GXDQ>*{(`>`vI92rNTSOTED2gOaUqjet*R?SA(5hWGK`(H+RF7z@Pt5R z2=#Q)*B8@$Zdg#H7dU@sR^4YNfGhwY_oonNO(js<8Hhuq>4Eq*uAQH?;acfeeP53j z{pr?fc@ulS&Apq2h)v?8a?25H0jvfVtHZ6#j=_%ddbH1m`1z)`# zL%bG^`4;g$2+4vL<6DU~@B}Lxvrz`(N{0->r(37%A=!`>bS)}@7*)EzCriG51HW6^ zRQ&*YKHg^9wvr7T!647_N~nI>nDA{T&^IS{6SReM`-!wZ%$R*I1NSRYvbudmb18R2 zvU}#vQa%_sf=yP!Z$PS@f-69W#;9=y$glJCcZy3jxr_|s>|CimwI&SBO3u3;ux+H^ z=_7Q5+sNE@i+U&eztoLF4HUs9Yvy-V82)tm+1apsi2oY`s*6Svv6JV*-3u?Wso= zt(|z+WqRk73RTrG3daYwgnKJ^Kv={5HRRhEYdr9DgFh$~^kqa^=w?W0QOnWgpXDZO z{7%a$+KAY=&}}HoYZ5AVb-8MurfXc6iH(e-0D7Ffk3qIc?a?(WJo-j0p&P8sbc0#A zJ&s`0yC9kP%2Ek^PcX>kP1VeQ@XLTcKY>cE4;7~871w8M)dBLq0ei;Mu%lHUN*Z~0 zMdwsC+?_XaNx|`BJxxcNHMzu;jmW=)Q8P!a#A_?`bqhwz^e68eMvAtDyo|K zdKRl07OU)nuV11$eZyk$GP?f}^1a(;-hD~1at&XXnO@Lm6RVDOG49$^@KW_}b!;OF zw%SlKtE2A-Hd!&Z^7#MTvjxo0uO7pJYPIt6Q?|yI^cBHaL3)MO<|~bho6Q}@U4}vZ zadJN|8w;|_wQmT!r$ z%Go4VPwVv}DX3!>2wTL}?n8bcpo@~m(mY#3APgTNQLN2CX z_IsW_Sn}0`@2e7|yNH4HZ3hjdj(3%+M~n!AvTmy+Ouv$5%b1|qloqe!J-9<9<%0ZMLke& zs|WO+wP5-dtzAG%_Y&_Aj?uzZi=JA_IB7j`t*mT7_Y)BLr=xZZ@^N1iEUsc{?ff7x zmj{8mJbIr+fJX|R_v3;Wo@6?QLvJ<2+f4kHmqXKH?q`jc>^1oGX~irztr<65vbYMWQt)=pJ} zwP%u^8QZNszmV4@IBk^BUXq^ogV}?kV@>X#H3mXQuozI>C3^@sg4x5;X^KI>5iAB2 zcgY?Cj$rn%beduia0H71#a*(8fFqbaES;tp1RTL)KyjDsA>asR4@;*h1_4K~7*O0L zdk8p!*~8Llib23lZ^VEy;Fo@ZN&Z(_z~Bku+#&1hn#FYlYlhBX-djSkMHUOU5ka;W z{dlv8u8VAjj=Q%Q0(a8d-P0_RBUm$Z+`U#1_%tN@WTS|VV2zM**OMUdw~*{ZaS0s3 z;!ttdk|H2HlFj~ZT$s=iY#}1V5!3Elskes4y1}ePZJD3%MHHoJ;lCUr&C4ADQ_Er zo?CDTsbn$SFCo8yT)+B^E3aOyt7pqKbF@+mR)&gCwq&t4YunY(zX{pIuQvk3x)e)4 zf&40R;UZR-D>XAxu7@Y8b;I|v^_xlWFOsIC+ic$y`kw0P9-$)u;uF_%O)y9y6?O|E zt=0RGw(Mnx))Rc3^aZ|tTV_MKi;U7&pt~(y*bo~W!D3;_C&8$EX`y}v`E_J-tmz$G ztW8ozxL57QuWGjEa^GbfvYDF;*)t9>kU^>BZ2fmm%C} zr55UHAcQs-C)MEy7K>Q+1cOwvi}S6>Zz4Nl&Fu0;_S@gb1H(Z+uvOrA3pOtL31mmG z*hMR3o%-hiKuJhN0TZp86{nn&k+#5RvKg?h_1R z-AvZf4Za^q^~r9!i1z=~_?pPx$+|fV;Z~SXT?ygNa|DY8x;q4eRLjZ!qlge|OROoq zdvUT-SC5qn>gRYYwfbb*yO7LTo-V;4)>ULBq`CuHHkWPx9K1wPKv}^sJ zvzLKsVEbzw6AWU#8|BhkeGn-&$f(yZOE>r|B3)tE{Bu1F+G%XR54pE(f0JR6X4v_~H7n&nb<@P@ypJiL8*CcA&1S?mAuQBEFVHAZZ`2in; z;-jDH3UrEptJi}7^*v-O;=Vz&cx}oaVP8dd!-oUW=xq^fs&3vF2H~SoMRJUCnL&PL z=JR**ZrsL&adLhhV&8X>OOSpYM^ZGa;TveXo4Ox~)0&uIbd5`=s%9_F#Y^H8&R&}# z+p|J8zM*|788wYRn=ZrO@00gxWK)JV^itOUiLrk~J!Bw zmTereZNdQS%W+yMIC1tOGIn@ti}43Nn&2f};loLQXqjM;%43DWcUX%2Q%N#dEG`D` zogv#LT_W2)Y!bJFyxQ)<;t1>~%4d)VsVf~ z5yNDOw9Rl3Wv?LHk(SGC(|{h+bqISui#$NRoc)w}!a}qJG_BVWvpGs&-u*qt0pEBxqQpwq(QUD5uiu!d5 zv(}>8epdCb6z)^tCa#B6Lqme$^LjfzukX@|<$hVS@9URKzE1omP^!r0Q~7^k)*nMG zah7%^#1c$Mh0p6rd|tAOAlCt~CWec;A6LuT#QjN>39)2)r>i0MvAtZUTkHXH2~tJB zeIHF%k@g8Yr)uu;V&>y-VDlpz>9wha$T5vL(?-*yzgH@{uE-pnqD@Y zYo2Zd@OkaP=k-6dVqWJe)71c=Cvi(GPdAs`YByN+FUX&O!)R`;j2KpcR0UQ_JkSf| z61#Cr3`Oi8q{IKFuy;YMrc0Fb28cIRS9d|KtMg`9oISWDjxhH)Xao~q)(0TgjlD)L zsY8z~{%+)Tpd)b=nx|`kYleJ1NR!yIvf&fR)s+2Pd8&&fw&=0rHMT6()l$Lx-;y6r z`r2bPLjIm4Sut^p?(u>oh3nC{;%4|f@;Qi=E0;q%c%C6xBqfCksmy2akRQX(bQxsZ z5V@VnAvRSQ*!O$aC?5BJL}UPOeO*>26-TD$5Nx3#xCBOq3i?pd_tvv648nCk6boJ% zJC<}m=dR`W2s!;e#CpDKId&an~t)uFZJMQeF~>)zphMu z3IOHF@bT1v%qW9I1dH0pRL$6uqQ~-Oa{(lHOImJ@p`vH#s{74p|6{Pc8~JC*CBCh` z4Q&%FiiqcXM`_t!;H8YEkl`xvtwry*d(7JV6Qx35O=uqji$6#1hgg+%ap|RWRtOd? zFi)WqMc<5+iqKB8L2jGh459);#(p%8QSCi@EGrwnh{)8AkZfRrb%I5agC5nAr=Mq8 zO`UPuR>;=!G9aF0Cvi(Gjq2;cW9k0Bj>ujP`+Ly-j!jOLU{UL&MS?IRxEm&E+2mV6 z4cBrJcZzt!(eyodEK@tbM_HciLEEjF+%3Jf*gJwHLsX`A#habKtBzpv>tx`kcILy;`I#fwSqz`x zP}XJ*^wiE-IP4rbf+_U^Q2qhLa#K5YI5khpAU{QpgTyD1s~oxJal-1!Ahuv`YR4*t znky@?8hL{0nL*egaCU0v)3jJ)&0%qOZ6V;TUE!|<@Lk9wNZVg@uw_t6dLBjZHI(mT zh$B}@AjhelH>-T|q*+xC!w(xB?qb6E9V`l*cRx;n?Q6@1J=W`38ydQ)9orR@P+vm= z9V?rSl}dQKQsM15hptMfx9#Yb2qsfIpF;Znt(~@k?oz^r1dHZBK4IRf>h)cr(zm7k zrgw(~b5lFfip#-qO9Y#>Q@YH<6YAZe32x^Lqqnlu+4?4MZ4%5)?aWqE&VCaSENVMs zD~_KEZee}kF39$NS~e?h03{^Y?9`6z0so_@eeO6P2((SGsQIt)O(SzM*vZFlcA@ZQ z$k+A@8wm&|Q#-OY>-$k#+;P4TutKnCkq(_QYg8D1WcuO2s2$OJtsJ*NFgLZ+3XnO8 zW1V2pa*ZE1n{j#Y6pGu!s5eLNH9BrWFqzufjeMC_tKKNRyPhuuQYBclsE1FR>+7}p z?aUn9#>~OG=)LH148i34kDo_mLpJx;P86&jIPMz3X0c#=<{g@-zefieXRi7XWLr6V zPkti=b5lD}VBB$X1R&ec_{sXtvE%iJ#!l4BvYqFtsesGo5#-9`8eIy9Km!Dh7_4{t6|!cF8-ZvX%Q07*qoM6N<$g4q%^5&!@I literal 0 HcmV?d00001 diff --git a/src/renderer/assets/icons/svg/close.svg b/src/renderer/assets/icons/svg/close.svg new file mode 100644 index 0000000..32de3b6 --- /dev/null +++ b/src/renderer/assets/icons/svg/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/icons/svg/electron-logo.svg b/src/renderer/assets/icons/svg/electron-logo.svg new file mode 100644 index 0000000..1d7ca60 --- /dev/null +++ b/src/renderer/assets/icons/svg/electron-logo.svg @@ -0,0 +1,529 @@ + + + + diff --git a/src/renderer/assets/icons/svg/mini.svg b/src/renderer/assets/icons/svg/mini.svg new file mode 100644 index 0000000..0268802 --- /dev/null +++ b/src/renderer/assets/icons/svg/mini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/icons/svg/mix.svg b/src/renderer/assets/icons/svg/mix.svg new file mode 100644 index 0000000..b88133f --- /dev/null +++ b/src/renderer/assets/icons/svg/mix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/icons/svg/reduction.svg b/src/renderer/assets/icons/svg/reduction.svg new file mode 100644 index 0000000..c219e30 --- /dev/null +++ b/src/renderer/assets/icons/svg/reduction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/logo.png b/src/renderer/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f32c5ec90831446ef79a0fa5f72cf654917b537 GIT binary patch literal 111354 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

7vR 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⪙hYga!TGWw4tQHN+(vt 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 literal 0 HcmV?d00001 diff --git a/src/renderer/components/LandingPage/SystemInformation.vue b/src/renderer/components/LandingPage/SystemInformation.vue new file mode 100644 index 0000000..261c130 --- /dev/null +++ b/src/renderer/components/LandingPage/SystemInformation.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/renderer/components/UniverJs/SDK/open-file-csv.ts b/src/renderer/components/UniverJs/SDK/open-file-csv.ts new file mode 100644 index 0000000..1d13685 --- /dev/null +++ b/src/renderer/components/UniverJs/SDK/open-file-csv.ts @@ -0,0 +1,161 @@ +import { + CommandType, + ICellData, + ICommand, + ICommandService, + IUniverInstanceService, + Inject, + Injector, + Plugin, + UniverInstanceType, + Workbook, +} from "@univerjs/core"; + +import { SetRangeValuesCommand } from "@univerjs/sheets"; +import { + ComponentManager, + IMenuService, + MenuGroup, + MenuItemType, + MenuPosition, +} from "@univerjs/ui"; +import { FolderSingle } from "@univerjs/icons"; + +/** + * wait user select csv file + */ +const waitUserSelectCSVFile = ( + onSelect: (data: { + data: string[][]; + colsCount: number; + rowsCount: number; + }) => void +) => { + const input = document.createElement("input"); + input.type = "file"; + input.accept = ".csv"; + input.click(); + + input.onchange = () => { + const file = input.files?.[0]; + if (!file) return; + const reader = new FileReader(); + reader.onload = () => { + const text = reader.result; + console.log(text); + if (typeof text !== "string") return; + + // tip: use npm package to parse csv + const rows = text.split(/\r\n|\n/); + const data = rows.map((line) => line.split(",")); + + const colsCount = data.reduce((max, row) => Math.max(max, row.length), 0); + + onSelect({ + data, + colsCount, + rowsCount: data.length, + }); + }; + reader.readAsText(file); + }; +}; + +/** + * parse csv to univer data + * @param csv + * @returns { v: string }[][] + */ +const parseCSV2UniverData = (csv: string[][]): ICellData[][] => { + return csv.map((row) => { + return row.map((cell) => { + return { + v: cell || "", + }; + }); + }); +}; + +/** + * Import CSV Button Plugin + * A simple Plugin example, show how to write a plugin. + */ +class ImportCSVButtonPlugin extends Plugin { + static override pluginName = "import-csv-plugin"; + constructor( + _config: null, + // inject injector, required + @Inject(Injector) override readonly _injector: Injector, + // inject menu service, to add toolbar button + @Inject(IMenuService) private menuService: IMenuService, + // inject command service, to register command handler + @Inject(ICommandService) private readonly commandService: ICommandService, + // inject component manager, to register icon component + @Inject(ComponentManager) + private readonly componentManager: ComponentManager + ) { + super(); + } + + /** + * The first lifecycle of the plugin mounted on the Univer instance, + * the Univer business instance has not been created at this time. + * The plugin should add its own module to the dependency injection system at this lifecycle. + * It is not recommended to initialize the internal module of the plugin outside this lifecycle. + */ + onStarting() { + // register icon component + this.componentManager.register("FolderSingle", FolderSingle); + + const buttonId = "import-csv-button"; + + const menuItem = { + id: buttonId, + title: "导入CSV", + tooltip: "导入CSV表格数据", + icon: "FolderSingle", // icon name + type: MenuItemType.BUTTON, + group: MenuGroup.CONTEXT_MENU_DATA, + positions: [MenuPosition.TOOLBAR_START], + }; + + this.menuService.addMenuItem(menuItem, {}); + + const command: ICommand = { + type: CommandType.OPERATION, + id: buttonId, + handler: (accessor) => { + // inject univer instance service + const univer = accessor.get(IUniverInstanceService); + const commandService = accessor.get(ICommandService); + + // get current sheet + const sheet = univer + .getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)! + .getActiveSheet(); + // wait user select csv file + waitUserSelectCSVFile(({ data, rowsCount, colsCount }) => { + // set sheet size + sheet.setColumnCount(colsCount); + sheet.setRowCount(rowsCount); + + // set sheet data + commandService.executeCommand(SetRangeValuesCommand.id, { + range: { + startColumn: 0, // start column index + startRow: 0, // start row index + endColumn: colsCount - 1, // end column index + endRow: rowsCount - 1, // end row index + }, + value: parseCSV2UniverData(data), + }); + }); + return true; + }, + }; + + this.commandService.registerCommand(command); + } +} + +export default ImportCSVButtonPlugin; diff --git a/src/renderer/components/UniverJs/SDK/save-data.ts b/src/renderer/components/UniverJs/SDK/save-data.ts new file mode 100644 index 0000000..d7f0f9a --- /dev/null +++ b/src/renderer/components/UniverJs/SDK/save-data.ts @@ -0,0 +1,91 @@ +import { + CommandType, + ICellData, + ICommand, + ICommandService, + IUniverInstanceService, + Inject, + Injector, + Plugin, + UniverInstanceType, + Workbook, +} from "@univerjs/core"; + +import { + ComponentManager, + IMenuService, + MenuGroup, + MenuItemType, + MenuPosition, +} from "@univerjs/ui"; + +import { SaveSingle } from "@univerjs/icons"; + +/** + * 实例化按钮插件 + */ +class SaveDataButtonPlugin extends Plugin { + static override pluginName = "save-data-plugin"; + constructor( + _config: null, + // inject injector, required + @Inject(Injector) override readonly _injector: Injector, + // inject menu service, to add toolbar button + @Inject(IMenuService) private menuService: IMenuService, + // inject command service, to register command handler + @Inject(ICommandService) private readonly commandService: ICommandService, + // inject component manager, to register icon component + @Inject(ComponentManager) + private readonly componentManager: ComponentManager + ) { + super(); + } + + /** + * The first lifecycle of the plugin mounted on the Univer instance, + * the Univer business instance has not been created at this time. + * The plugin should add its own module to the dependency injection system at this lifecycle. + * It is not recommended to initialize the internal module of the plugin outside this lifecycle. + */ + onStarting() { + // register icon component + this.componentManager.register("SaveSingle", SaveSingle); + + const buttonId = "save-data-button"; + + const menuItem = { + id: buttonId, + title: "保存数据", + tooltip: "获取数据并保存", + icon: "SaveSingle", // icon name + type: MenuItemType.BUTTON, + group: MenuGroup.CONTEXT_MENU_DATA, + positions: [MenuPosition.TOOLBAR_START], + }; + + this.menuService.addMenuItem(menuItem, {}); + + const command: ICommand = { + type: CommandType.OPERATION, + id: buttonId, + handler: (accessor) => { + // inject univer instance service + const univer = accessor.get(IUniverInstanceService); + + // get current sheet + const sheet = univer + .getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)! + .getActiveSheet(); + // 保存数据 + const res = sheet.getSnapshot(); + const data = res.cellData; + console.log("表中数据", data); + return true; + }, + }; + + this.commandService.registerCommand(command); + } +} + +export default SaveDataButtonPlugin; diff --git a/src/renderer/components/UniverJs/UniverSheet.vue b/src/renderer/components/UniverJs/UniverSheet.vue new file mode 100644 index 0000000..f4937b4 --- /dev/null +++ b/src/renderer/components/UniverJs/UniverSheet.vue @@ -0,0 +1,307 @@ + + + + + + diff --git a/src/renderer/components/common/TitleBar.vue b/src/renderer/components/common/TitleBar.vue new file mode 100644 index 0000000..59bcd01 --- /dev/null +++ b/src/renderer/components/common/TitleBar.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/renderer/components/updataProgress/index.vue b/src/renderer/components/updataProgress/index.vue new file mode 100644 index 0000000..9bc26e2 --- /dev/null +++ b/src/renderer/components/updataProgress/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/renderer/error.ts b/src/renderer/error.ts new file mode 100644 index 0000000..562bc89 --- /dev/null +++ b/src/renderer/error.ts @@ -0,0 +1,20 @@ +import type { App } from 'vue' +import { nextTick } from "vue" +export const errorHandler = (App: App) => { + App.config.errorHandler = (err, vm, info) => { + nextTick(() => { + if (process.env.NODE_ENV === 'development') { + console.group('%c >>>>>> 错误信息 >>>>>>', 'color:red') + console.log(`%c ${info}`, 'color:blue') + console.groupEnd() + console.group('%c >>>>>> 发生错误的Vue 实例对象 >>>>>>', 'color:green') + console.log(vm) + console.groupEnd() + console.group('%c >>>>>> 发生错误的原因及位置 >>>>>>', 'color:red') + console.error(err) + console.groupEnd() + } + }).then(r =>{}) + } + +} diff --git a/src/renderer/fixTypes/auto-imports.d.ts b/src/renderer/fixTypes/auto-imports.d.ts new file mode 100644 index 0000000..43f20fa --- /dev/null +++ b/src/renderer/fixTypes/auto-imports.d.ts @@ -0,0 +1,586 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const ElForm: typeof import('element-plus/es')['ElForm'] + const ElMessage: typeof import('element-plus/es')['ElMessage'] + const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] + const ElNotification: typeof import('element-plus/es')['ElNotification'] + const ElTree: typeof import('element-plus/es')['ElTree'] + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] + const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] + const computed: typeof import('vue')['computed'] + const computedAsync: typeof import('@vueuse/core')['computedAsync'] + const computedEager: typeof import('@vueuse/core')['computedEager'] + const computedInject: typeof import('@vueuse/core')['computedInject'] + const computedWithControl: typeof import('@vueuse/core')['computedWithControl'] + const controlledComputed: typeof import('@vueuse/core')['controlledComputed'] + const controlledRef: typeof import('@vueuse/core')['controlledRef'] + const createApp: typeof import('vue')['createApp'] + const createEventHook: typeof import('@vueuse/core')['createEventHook'] + const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] + const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] + const createPinia: typeof import('pinia')['createPinia'] + const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] + const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] + const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn'] + const customRef: typeof import('vue')['customRef'] + const debouncedRef: typeof import('@vueuse/core')['debouncedRef'] + const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] + const eagerComputed: typeof import('@vueuse/core')['eagerComputed'] + const effectScope: typeof import('vue')['effectScope'] + const extendRef: typeof import('@vueuse/core')['extendRef'] + const getActivePinia: typeof import('pinia')['getActivePinia'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] + const inject: typeof import('vue')['inject'] + const isDefined: typeof import('@vueuse/core')['isDefined'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onClickOutside: typeof import('@vueuse/core')['onClickOutside'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke'] + const onLongPress: typeof import('@vueuse/core')['onLongPress'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onStartTyping: typeof import('@vueuse/core')['onStartTyping'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const pausableWatch: typeof import('@vueuse/core')['pausableWatch'] + const provide: typeof import('vue')['provide'] + const reactify: typeof import('@vueuse/core')['reactify'] + const reactifyObject: typeof import('@vueuse/core')['reactifyObject'] + const reactive: typeof import('vue')['reactive'] + const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] + const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] + const reactivePick: typeof import('@vueuse/core')['reactivePick'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] + const refDebounced: typeof import('@vueuse/core')['refDebounced'] + const refDefault: typeof import('@vueuse/core')['refDefault'] + const refThrottled: typeof import('@vueuse/core')['refThrottled'] + const refWithControl: typeof import('@vueuse/core')['refWithControl'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveRef: typeof import('@vueuse/core')['resolveRef'] + const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] + const syncRef: typeof import('@vueuse/core')['syncRef'] + const syncRefs: typeof import('@vueuse/core')['syncRefs'] + const templateRef: typeof import('@vueuse/core')['templateRef'] + const throttledRef: typeof import('@vueuse/core')['throttledRef'] + const throttledWatch: typeof import('@vueuse/core')['throttledWatch'] + const toRaw: typeof import('vue')['toRaw'] + const toReactive: typeof import('@vueuse/core')['toReactive'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] + const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] + const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted'] + const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose'] + const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted'] + const unref: typeof import('vue')['unref'] + const unrefElement: typeof import('@vueuse/core')['unrefElement'] + const until: typeof import('@vueuse/core')['until'] + const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] + const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery'] + const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter'] + const useArrayFind: typeof import('@vueuse/core')['useArrayFind'] + const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex'] + const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast'] + const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin'] + const useArrayMap: typeof import('@vueuse/core')['useArrayMap'] + const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce'] + const useArraySome: typeof import('@vueuse/core')['useArraySome'] + const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique'] + const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue'] + const useAsyncState: typeof import('@vueuse/core')['useAsyncState'] + const useAttrs: typeof import('vue')['useAttrs'] + const useBase64: typeof import('@vueuse/core')['useBase64'] + const useBattery: typeof import('@vueuse/core')['useBattery'] + const useBluetooth: typeof import('@vueuse/core')['useBluetooth'] + const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints'] + const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel'] + const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation'] + const useCached: typeof import('@vueuse/core')['useCached'] + const useClipboard: typeof import('@vueuse/core')['useClipboard'] + const useCloned: typeof import('@vueuse/core')['useCloned'] + const useColorMode: typeof import('@vueuse/core')['useColorMode'] + const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] + const useCounter: typeof import('@vueuse/core')['useCounter'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVar: typeof import('@vueuse/core')['useCssVar'] + const useCssVars: typeof import('vue')['useCssVars'] + const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement'] + const useCycleList: typeof import('@vueuse/core')['useCycleList'] + const useDark: typeof import('@vueuse/core')['useDark'] + const useDateFormat: typeof import('@vueuse/core')['useDateFormat'] + const useDebounce: typeof import('@vueuse/core')['useDebounce'] + const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn'] + const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory'] + const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion'] + const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] + const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] + const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] + const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] + const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] + const useDraggable: typeof import('@vueuse/core')['useDraggable'] + const useDropZone: typeof import('@vueuse/core')['useDropZone'] + const useElementBounding: typeof import('@vueuse/core')['useElementBounding'] + const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint'] + const useElementHover: typeof import('@vueuse/core')['useElementHover'] + const useElementSize: typeof import('@vueuse/core')['useElementSize'] + const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility'] + const useEventBus: typeof import('@vueuse/core')['useEventBus'] + const useEventListener: typeof import('@vueuse/core')['useEventListener'] + const useEventSource: typeof import('@vueuse/core')['useEventSource'] + const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper'] + const useFavicon: typeof import('@vueuse/core')['useFavicon'] + const useFetch: typeof import('@vueuse/core')['useFetch'] + const useFileDialog: typeof import('@vueuse/core')['useFileDialog'] + const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess'] + const useFocus: typeof import('@vueuse/core')['useFocus'] + const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin'] + const useFps: typeof import('@vueuse/core')['useFps'] + const useFullscreen: typeof import('@vueuse/core')['useFullscreen'] + const useGamepad: typeof import('@vueuse/core')['useGamepad'] + const useGeolocation: typeof import('@vueuse/core')['useGeolocation'] + const useI18n: typeof import('vue-i18n')['useI18n'] + const useIdle: typeof import('@vueuse/core')['useIdle'] + const useImage: typeof import('@vueuse/core')['useImage'] + const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll'] + const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver'] + const useInterval: typeof import('@vueuse/core')['useInterval'] + const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn'] + const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] + const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] + const useLink: typeof import('vue-router')['useLink'] + const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] + const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] + const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] + const useMediaControls: typeof import('@vueuse/core')['useMediaControls'] + const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] + const useMemoize: typeof import('@vueuse/core')['useMemoize'] + const useMemory: typeof import('@vueuse/core')['useMemory'] + const useMounted: typeof import('@vueuse/core')['useMounted'] + const useMouse: typeof import('@vueuse/core')['useMouse'] + const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] + const useMousePressed: typeof import('@vueuse/core')['useMousePressed'] + const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] + const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] + const useNetwork: typeof import('@vueuse/core')['useNetwork'] + const useNow: typeof import('@vueuse/core')['useNow'] + const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] + const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] + const useOnline: typeof import('@vueuse/core')['useOnline'] + const usePageLeave: typeof import('@vueuse/core')['usePageLeave'] + const useParallax: typeof import('@vueuse/core')['useParallax'] + const usePermission: typeof import('@vueuse/core')['usePermission'] + const usePointer: typeof import('@vueuse/core')['usePointer'] + const usePointerLock: typeof import('@vueuse/core')['usePointerLock'] + const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe'] + const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme'] + const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast'] + const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] + const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] + const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] + const usePrevious: typeof import('@vueuse/core')['usePrevious'] + const useRafFn: typeof import('@vueuse/core')['useRafFn'] + const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] + const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] + const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] + const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] + const useScroll: typeof import('@vueuse/core')['useScroll'] + const useScrollLock: typeof import('@vueuse/core')['useScrollLock'] + const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage'] + const useShare: typeof import('@vueuse/core')['useShare'] + const useSlots: typeof import('vue')['useSlots'] + const useSorted: typeof import('@vueuse/core')['useSorted'] + const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition'] + const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis'] + const useStepper: typeof import('@vueuse/core')['useStepper'] + const useStorage: typeof import('@vueuse/core')['useStorage'] + const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync'] + const useStyleTag: typeof import('@vueuse/core')['useStyleTag'] + const useSupported: typeof import('@vueuse/core')['useSupported'] + const useSwipe: typeof import('@vueuse/core')['useSwipe'] + const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList'] + const useTextDirection: typeof import('@vueuse/core')['useTextDirection'] + const useTextSelection: typeof import('@vueuse/core')['useTextSelection'] + const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize'] + const useThrottle: typeof import('@vueuse/core')['useThrottle'] + const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn'] + const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory'] + const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo'] + const useTimeout: typeof import('@vueuse/core')['useTimeout'] + const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn'] + const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll'] + const useTimestamp: typeof import('@vueuse/core')['useTimestamp'] + const useTitle: typeof import('@vueuse/core')['useTitle'] + const useToNumber: typeof import('@vueuse/core')['useToNumber'] + const useToString: typeof import('@vueuse/core')['useToString'] + const useToggle: typeof import('@vueuse/core')['useToggle'] + const useTransition: typeof import('@vueuse/core')['useTransition'] + const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams'] + const useUserMedia: typeof import('@vueuse/core')['useUserMedia'] + const useVModel: typeof import('@vueuse/core')['useVModel'] + const useVModels: typeof import('@vueuse/core')['useVModels'] + const useVibrate: typeof import('@vueuse/core')['useVibrate'] + const useVirtualList: typeof import('@vueuse/core')['useVirtualList'] + const useWakeLock: typeof import('@vueuse/core')['useWakeLock'] + const useWebNotification: typeof import('@vueuse/core')['useWebNotification'] + const useWebSocket: typeof import('@vueuse/core')['useWebSocket'] + const useWebWorker: typeof import('@vueuse/core')['useWebWorker'] + const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn'] + const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus'] + const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll'] + const useWindowSize: typeof import('@vueuse/core')['useWindowSize'] + const watch: typeof import('vue')['watch'] + const watchArray: typeof import('@vueuse/core')['watchArray'] + const watchAtMost: typeof import('@vueuse/core')['watchAtMost'] + const watchDebounced: typeof import('@vueuse/core')['watchDebounced'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] + const watchOnce: typeof import('@vueuse/core')['watchOnce'] + const watchPausable: typeof import('@vueuse/core')['watchPausable'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] + const watchThrottled: typeof import('@vueuse/core')['watchThrottled'] + const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] + const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] + const whenever: typeof import('@vueuse/core')['whenever'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + import('vue') +} +// for vue template auto import +import { UnwrapRef } from 'vue' +declare module 'vue' { + interface GlobalComponents {} + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef + readonly ElMessage: UnwrapRef + readonly ElMessageBox: UnwrapRef + readonly acceptHMRUpdate: UnwrapRef + readonly asyncComputed: UnwrapRef + readonly autoResetRef: UnwrapRef + readonly computed: UnwrapRef + readonly computedAsync: UnwrapRef + readonly computedEager: UnwrapRef + readonly computedInject: UnwrapRef + readonly computedWithControl: UnwrapRef + readonly controlledComputed: UnwrapRef + readonly controlledRef: UnwrapRef + readonly createApp: UnwrapRef + readonly createEventHook: UnwrapRef + readonly createGlobalState: UnwrapRef + readonly createInjectionState: UnwrapRef + readonly createPinia: UnwrapRef + readonly createReactiveFn: UnwrapRef + readonly createSharedComposable: UnwrapRef + readonly createUnrefFn: UnwrapRef + readonly customRef: UnwrapRef + readonly debouncedRef: UnwrapRef + readonly debouncedWatch: UnwrapRef + readonly defineAsyncComponent: UnwrapRef + readonly defineComponent: UnwrapRef + readonly defineStore: UnwrapRef + readonly eagerComputed: UnwrapRef + readonly effectScope: UnwrapRef + readonly extendRef: UnwrapRef + readonly getActivePinia: UnwrapRef + readonly getCurrentInstance: UnwrapRef + readonly getCurrentScope: UnwrapRef + readonly h: UnwrapRef + readonly ignorableWatch: UnwrapRef + readonly inject: UnwrapRef + readonly isDefined: UnwrapRef + readonly isProxy: UnwrapRef + readonly isReactive: UnwrapRef + readonly isReadonly: UnwrapRef + readonly isRef: UnwrapRef + readonly makeDestructurable: UnwrapRef + readonly mapActions: UnwrapRef + readonly mapGetters: UnwrapRef + readonly mapState: UnwrapRef + readonly mapStores: UnwrapRef + readonly mapWritableState: UnwrapRef + readonly markRaw: UnwrapRef + readonly nextTick: UnwrapRef + readonly onActivated: UnwrapRef + readonly onBeforeMount: UnwrapRef + readonly onBeforeRouteLeave: UnwrapRef + readonly onBeforeRouteUpdate: UnwrapRef + readonly onBeforeUnmount: UnwrapRef + readonly onBeforeUpdate: UnwrapRef + readonly onClickOutside: UnwrapRef + readonly onDeactivated: UnwrapRef + readonly onErrorCaptured: UnwrapRef + readonly onKeyStroke: UnwrapRef + readonly onLongPress: UnwrapRef + readonly onMounted: UnwrapRef + readonly onRenderTracked: UnwrapRef + readonly onRenderTriggered: UnwrapRef + readonly onScopeDispose: UnwrapRef + readonly onServerPrefetch: UnwrapRef + readonly onStartTyping: UnwrapRef + readonly onUnmounted: UnwrapRef + readonly onUpdated: UnwrapRef + readonly pausableWatch: UnwrapRef + readonly provide: UnwrapRef + readonly reactify: UnwrapRef + readonly reactifyObject: UnwrapRef + readonly reactive: UnwrapRef + readonly reactiveComputed: UnwrapRef + readonly reactiveOmit: UnwrapRef + readonly reactivePick: UnwrapRef + readonly readonly: UnwrapRef + readonly ref: UnwrapRef + readonly refAutoReset: UnwrapRef + readonly refDebounced: UnwrapRef + readonly refDefault: UnwrapRef + readonly refThrottled: UnwrapRef + readonly refWithControl: UnwrapRef + readonly resolveComponent: UnwrapRef + readonly resolveRef: UnwrapRef + readonly resolveUnref: UnwrapRef + readonly setActivePinia: UnwrapRef + readonly setMapStoreSuffix: UnwrapRef + readonly shallowReactive: UnwrapRef + readonly shallowReadonly: UnwrapRef + readonly shallowRef: UnwrapRef + readonly storeToRefs: UnwrapRef + readonly syncRef: UnwrapRef + readonly syncRefs: UnwrapRef + readonly templateRef: UnwrapRef + readonly throttledRef: UnwrapRef + readonly throttledWatch: UnwrapRef + readonly toRaw: UnwrapRef + readonly toReactive: UnwrapRef + readonly toRef: UnwrapRef + readonly toRefs: UnwrapRef + readonly toValue: UnwrapRef + readonly triggerRef: UnwrapRef + readonly tryOnBeforeMount: UnwrapRef + readonly tryOnBeforeUnmount: UnwrapRef + readonly tryOnMounted: UnwrapRef + readonly tryOnScopeDispose: UnwrapRef + readonly tryOnUnmounted: UnwrapRef + readonly unref: UnwrapRef + readonly unrefElement: UnwrapRef + readonly until: UnwrapRef + readonly useActiveElement: UnwrapRef + readonly useArrayEvery: UnwrapRef + readonly useArrayFilter: UnwrapRef + readonly useArrayFind: UnwrapRef + readonly useArrayFindIndex: UnwrapRef + readonly useArrayFindLast: UnwrapRef + readonly useArrayJoin: UnwrapRef + readonly useArrayMap: UnwrapRef + readonly useArrayReduce: UnwrapRef + readonly useArraySome: UnwrapRef + readonly useArrayUnique: UnwrapRef + readonly useAsyncQueue: UnwrapRef + readonly useAsyncState: UnwrapRef + readonly useAttrs: UnwrapRef + readonly useBase64: UnwrapRef + readonly useBattery: UnwrapRef + readonly useBluetooth: UnwrapRef + readonly useBreakpoints: UnwrapRef + readonly useBroadcastChannel: UnwrapRef + readonly useBrowserLocation: UnwrapRef + readonly useCached: UnwrapRef + readonly useClipboard: UnwrapRef + readonly useCloned: UnwrapRef + readonly useColorMode: UnwrapRef + readonly useConfirmDialog: UnwrapRef + readonly useCounter: UnwrapRef + readonly useCssModule: UnwrapRef + readonly useCssVar: UnwrapRef + readonly useCssVars: UnwrapRef + readonly useCurrentElement: UnwrapRef + readonly useCycleList: UnwrapRef + readonly useDark: UnwrapRef + readonly useDateFormat: UnwrapRef + readonly useDebounce: UnwrapRef + readonly useDebounceFn: UnwrapRef + readonly useDebouncedRefHistory: UnwrapRef + readonly useDeviceMotion: UnwrapRef + readonly useDeviceOrientation: UnwrapRef + readonly useDevicePixelRatio: UnwrapRef + readonly useDevicesList: UnwrapRef + readonly useDisplayMedia: UnwrapRef + readonly useDocumentVisibility: UnwrapRef + readonly useDraggable: UnwrapRef + readonly useDropZone: UnwrapRef + readonly useElementBounding: UnwrapRef + readonly useElementByPoint: UnwrapRef + readonly useElementHover: UnwrapRef + readonly useElementSize: UnwrapRef + readonly useElementVisibility: UnwrapRef + readonly useEventBus: UnwrapRef + readonly useEventListener: UnwrapRef + readonly useEventSource: UnwrapRef + readonly useEyeDropper: UnwrapRef + readonly useFavicon: UnwrapRef + readonly useFetch: UnwrapRef + readonly useFileDialog: UnwrapRef + readonly useFileSystemAccess: UnwrapRef + readonly useFocus: UnwrapRef + readonly useFocusWithin: UnwrapRef + readonly useFps: UnwrapRef + readonly useFullscreen: UnwrapRef + readonly useGamepad: UnwrapRef + readonly useGeolocation: UnwrapRef + readonly useI18n: UnwrapRef + readonly useIdle: UnwrapRef + readonly useImage: UnwrapRef + readonly useInfiniteScroll: UnwrapRef + readonly useIntersectionObserver: UnwrapRef + readonly useInterval: UnwrapRef + readonly useIntervalFn: UnwrapRef + readonly useKeyModifier: UnwrapRef + readonly useLastChanged: UnwrapRef + readonly useLink: UnwrapRef + readonly useLocalStorage: UnwrapRef + readonly useMagicKeys: UnwrapRef + readonly useManualRefHistory: UnwrapRef + readonly useMediaControls: UnwrapRef + readonly useMediaQuery: UnwrapRef + readonly useMemoize: UnwrapRef + readonly useMemory: UnwrapRef + readonly useMounted: UnwrapRef + readonly useMouse: UnwrapRef + readonly useMouseInElement: UnwrapRef + readonly useMousePressed: UnwrapRef + readonly useMutationObserver: UnwrapRef + readonly useNavigatorLanguage: UnwrapRef + readonly useNetwork: UnwrapRef + readonly useNow: UnwrapRef + readonly useObjectUrl: UnwrapRef + readonly useOffsetPagination: UnwrapRef + readonly useOnline: UnwrapRef + readonly usePageLeave: UnwrapRef + readonly useParallax: UnwrapRef + readonly usePermission: UnwrapRef + readonly usePointer: UnwrapRef + readonly usePointerLock: UnwrapRef + readonly usePointerSwipe: UnwrapRef + readonly usePreferredColorScheme: UnwrapRef + readonly usePreferredContrast: UnwrapRef + readonly usePreferredDark: UnwrapRef + readonly usePreferredLanguages: UnwrapRef + readonly usePreferredReducedMotion: UnwrapRef + readonly usePrevious: UnwrapRef + readonly useRafFn: UnwrapRef + readonly useRefHistory: UnwrapRef + readonly useResizeObserver: UnwrapRef + readonly useRoute: UnwrapRef + readonly useRouter: UnwrapRef + readonly useScreenOrientation: UnwrapRef + readonly useScreenSafeArea: UnwrapRef + readonly useScriptTag: UnwrapRef + readonly useScroll: UnwrapRef + readonly useScrollLock: UnwrapRef + readonly useSessionStorage: UnwrapRef + readonly useShare: UnwrapRef + readonly useSlots: UnwrapRef + readonly useSorted: UnwrapRef + readonly useSpeechRecognition: UnwrapRef + readonly useSpeechSynthesis: UnwrapRef + readonly useStepper: UnwrapRef + readonly useStorage: UnwrapRef + readonly useStorageAsync: UnwrapRef + readonly useStyleTag: UnwrapRef + readonly useSupported: UnwrapRef + readonly useSwipe: UnwrapRef + readonly useTemplateRefsList: UnwrapRef + readonly useTextDirection: UnwrapRef + readonly useTextSelection: UnwrapRef + readonly useTextareaAutosize: UnwrapRef + readonly useThrottle: UnwrapRef + readonly useThrottleFn: UnwrapRef + readonly useThrottledRefHistory: UnwrapRef + readonly useTimeAgo: UnwrapRef + readonly useTimeout: UnwrapRef + readonly useTimeoutFn: UnwrapRef + readonly useTimeoutPoll: UnwrapRef + readonly useTimestamp: UnwrapRef + readonly useTitle: UnwrapRef + readonly useToNumber: UnwrapRef + readonly useToString: UnwrapRef + readonly useToggle: UnwrapRef + readonly useTransition: UnwrapRef + readonly useUrlSearchParams: UnwrapRef + readonly useUserMedia: UnwrapRef + readonly useVModel: UnwrapRef + readonly useVModels: UnwrapRef + readonly useVibrate: UnwrapRef + readonly useVirtualList: UnwrapRef + readonly useWakeLock: UnwrapRef + readonly useWebNotification: UnwrapRef + readonly useWebSocket: UnwrapRef + readonly useWebWorker: UnwrapRef + readonly useWebWorkerFn: UnwrapRef + readonly useWindowFocus: UnwrapRef + readonly useWindowScroll: UnwrapRef + readonly useWindowSize: UnwrapRef + readonly watch: UnwrapRef + readonly watchArray: UnwrapRef + readonly watchAtMost: UnwrapRef + readonly watchDebounced: UnwrapRef + readonly watchEffect: UnwrapRef + readonly watchIgnorable: UnwrapRef + readonly watchOnce: UnwrapRef + readonly watchPausable: UnwrapRef + readonly watchPostEffect: UnwrapRef + readonly watchSyncEffect: UnwrapRef + readonly watchThrottled: UnwrapRef + readonly watchTriggerable: UnwrapRef + readonly watchWithFilter: UnwrapRef + readonly whenever: UnwrapRef + } +} diff --git a/src/renderer/fixTypes/components.d.ts b/src/renderer/fixTypes/components.d.ts new file mode 100644 index 0000000..41e4675 --- /dev/null +++ b/src/renderer/fixTypes/components.d.ts @@ -0,0 +1,120 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + AppLink: typeof import('./../themes/default/components/AppLink/index.vue')['default'] + AppMain: typeof import('./../themes/default/layout/components/AppMain/index.vue')['default'] + Breadcrumb: typeof import('./../themes/default/components/Breadcrumb/index.vue')['default'] + CopyButton: typeof import('./../themes/default/components/CopyButton/index.vue')['default'] + DeptTree: typeof import('./../themes/default/views/system/user/components/dept-tree.vue')['default'] + Dictionary: typeof import('./../themes/default/components/Dictionary/index.vue')['default'] + ElAlert: typeof import('element-plus/es')['ElAlert'] + ElBacktop: typeof import('element-plus/es')['ElBacktop'] + ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] + ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElCard: typeof import('element-plus/es')['ElCard'] + ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] + ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] + ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDivider: typeof import('element-plus/es')['ElDivider'] + ElDrawer: typeof import('element-plus/es')['ElDrawer'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElForm: typeof import('element-plus/es')['ElForm'] + ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] + ElInput: typeof import('element-plus/es')['ElInput'] + ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] + ElLink: typeof import('element-plus/es')['ElLink'] + ElMenu: typeof import('element-plus/es')['ElMenu'] + ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElOption: typeof import('element-plus/es')['ElOption'] + ElPagination: typeof import('element-plus/es')['ElPagination'] + ElPopover: typeof import('element-plus/es')['ElPopover'] + ElProgress: typeof import('element-plus/es')['ElProgress'] + ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] + ElRow: typeof import('element-plus/es')['ElRow'] + ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] + ElSelect: typeof import('element-plus/es')['ElSelect'] + ElStatistic: typeof import('element-plus/es')['ElStatistic'] + ElSubmenu: typeof import('element-plus/es')['ElSubmenu'] + ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] + ElSwitch: typeof import('element-plus/es')['ElSwitch'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] + ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElTree: typeof import('element-plus/es')['ElTree'] + ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] + ElUpload: typeof import('element-plus/es')['ElUpload'] + ElWatermark: typeof import('element-plus/es')['ElWatermark'] + GithubCorner: typeof import('./../themes/default/components/GithubCorner/index.vue')['default'] + Hamburger: typeof import('./../themes/default/components/Hamburger/index.vue')['default'] + IconSelect: typeof import('./../themes/default/components/IconSelect/index.vue')['default'] + IEpArrowDown: typeof import('~icons/ep/arrow-down')['default'] + IEpArrowUp: typeof import('~icons/ep/arrow-up')['default'] + IEpBottom: typeof import('~icons/ep/bottom')['default'] + IEpClose: typeof import('~icons/ep/close')['default'] + IEpDelete: typeof import('~icons/ep/delete')['default'] + IEpDownload: typeof import('~icons/ep/download')['default'] + IEpEdit: typeof import('~icons/ep/edit')['default'] + IEpPlus: typeof import('~icons/ep/plus')['default'] + IEpPosition: typeof import('~icons/ep/position')['default'] + IEpQuestionFilled: typeof import('~icons/ep/question-filled')['default'] + IEpRefresh: typeof import('~icons/ep/refresh')['default'] + IEpRefreshLeft: typeof import('~icons/ep/refresh-left')['default'] + IEpSearch: typeof import('~icons/ep/search')['default'] + IEpSwitch: typeof import('~icons/ep/switch')['default'] + IEpTop: typeof import('~icons/ep/top')['default'] + IEpUpload: typeof import('~icons/ep/upload')['default'] + LangSelect: typeof import('./../themes/default/components/LangSelect/index.vue')['default'] + LayoutSelect: typeof import('./../themes/default/layout/components/Settings/components/LayoutSelect.vue')['default'] + MultiUpload: typeof import('./../themes/default/components/Upload/MultiUpload.vue')['default'] + NavBar: typeof import('./../themes/default/layout/components/NavBar/index.vue')['default'] + NavbarLeft: typeof import('./../themes/default/layout/components/NavBar/components/NavbarLeft.vue')['default'] + NavbarRight: typeof import('./../themes/default/layout/components/NavBar/components/NavbarRight.vue')['default'] + PageContent: typeof import('./../themes/default/components/CURD/PageContent.vue')['default'] + PageForm: typeof import('./../themes/default/components/CURD/PageForm.vue')['default'] + PageModal: typeof import('./../themes/default/components/CURD/PageModal.vue')['default'] + PageSearch: typeof import('./../themes/default/components/CURD/PageSearch.vue')['default'] + Pagination: typeof import('./../themes/default/components/Pagination/index.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Settings: typeof import('./../themes/default/layout/components/Settings/index.vue')['default'] + Sidebar: typeof import('./../themes/default/layout/components/Sidebar/index.vue')['default'] + SidebarLogo: typeof import('./../themes/default/layout/components/Sidebar/components/SidebarLogo.vue')['default'] + SidebarMenu: typeof import('./../themes/default/layout/components/Sidebar/components/SidebarMenu.vue')['default'] + SidebarMenuItem: typeof import('./../themes/default/layout/components/Sidebar/components/SidebarMenuItem.vue')['default'] + SidebarMenuItemTitle: typeof import('./../themes/default/layout/components/Sidebar/components/SidebarMenuItemTitle.vue')['default'] + SidebarMixTopMenu: typeof import('./../themes/default/layout/components/Sidebar/components/SidebarMixTopMenu.vue')['default'] + SingleUpload: typeof import('./../themes/default/components/Upload/SingleUpload.vue')['default'] + SizeSelect: typeof import('./../themes/default/components/SizeSelect/index.vue')['default'] + SvgIcon: typeof import('./../themes/default/components/SvgIcon/index.vue')['default'] + TableSelect: typeof import('./../themes/default/components/TableSelect/index.vue')['default'] + TagsView: typeof import('./../themes/default/layout/components/TagsView/index.vue')['default'] + ThemeColorPicker: typeof import('./../themes/default/layout/components/Settings/components/ThemeColorPicker.vue')['default'] + UserImport: typeof import('./../themes/default/views/system/user/components/user-import.vue')['default'] + VisitTrend: typeof import('./../themes/default/views/dashboard/components/VisitTrend.vue')['default'] + WangEditor: typeof import('./../themes/default/components/WangEditor/index.vue')['default'] + } + export interface ComponentCustomProperties { + vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + } +} diff --git a/src/renderer/i18n/index.ts b/src/renderer/i18n/index.ts new file mode 100644 index 0000000..fa3d302 --- /dev/null +++ b/src/renderer/i18n/index.ts @@ -0,0 +1,32 @@ +import { createI18n } from "vue-i18n" + +export function loadLanguages() { + const context: any = import.meta.glob("./languages/*.ts", { eager: true }); + + const languages: any = {}; + + let langs = Object.keys(context); + for (let key of langs) { + if (key === "./index.ts") return; + let lang = context[key].lang; + let name = key.replace(/(\.\/languages\/|\.ts)/g, ''); + languages[name] = lang + } + + return languages +} + +export function i18nt(key: string) { + return i18n.global.d(key); +} + +export const i18n = createI18n({ + legacy: false, + locale: 'zh-cn', + fallbackLocale: 'zh-cn', + messages: loadLanguages() +}) + +export function setLanguage(locale: string) { + i18n.global.locale.value = locale +} diff --git a/src/renderer/i18n/languages/en.ts b/src/renderer/i18n/languages/en.ts new file mode 100644 index 0000000..4d9d4fa --- /dev/null +++ b/src/renderer/i18n/languages/en.ts @@ -0,0 +1,59 @@ +import enLocale from "element-plus/dist/locale/en.min" + +export const lang = { + welcome: "Welcome use the framework", + buttonTips: "You can click buttons to experience", + waitDataLoading: "Wait data loading", + about: { + system: "About system", + language: "language:", + languageValue: "English", + currentPagePath: "current page path:", + currentPageName: "current page name:", + vueVersion: "Vue version:", + electronVersion: "Electron version:", + nodeVersion: "Node version:", + systemPlatform: "system platform:", + systemVersion: "system version:", + systemArch: "system arch:" + }, + buttons: { + console: "Console", + checkUpdate: "Check update", + checkUpdate2: "Check update(plan 2)", + checkUpdateInc: "Check update(increment)", + startServer: "Start server", + stopServer: "Stop server", + viewMessage: "view message", + openNewWindow: "Open new window", + simulatedCrash: "Simulated crash", + changeLanguage: "切换语言", + ForcedUpdate: "Forced Update Mode", + printDemo: "Print demo", + incrementalUpdateTest: "Incremental Update test", + openPreloadWindow: "preload.js test", + browser: "Browser", + showOnMyComputer: "Show on my computer", + hideOnMyComputer: "hide on my computer", + }, + print: { + print: 'Print', + silentPrinting: 'Silent printing', + backgroundColor: 'Background color', + use: 'Use ', + unuse: 'Unuse ', + notUse: 'Unuse ', + tips: 'It is recommended to use printed PDF test (paper saving), and then use the real situation after success', + blackAndWhite: 'Black and white', + colorful: 'Colorful', + margin: 'Margin', + top: 'Top ', + bottom: 'Bottom ', + right: 'Right ', + left: 'Left ', + }, + browser: { + searchBarPlaceholder: 'Search in Bing or enter a website address', + }, + el: enLocale +} diff --git a/src/renderer/i18n/languages/zh-cn.ts b/src/renderer/i18n/languages/zh-cn.ts new file mode 100644 index 0000000..0f997ed --- /dev/null +++ b/src/renderer/i18n/languages/zh-cn.ts @@ -0,0 +1,66 @@ +import zhLocale from "element-plus/dist/locale/zh-cn.min"; + +export const lang = { + welcome: "欢迎进入本框架", + buttonTips: "您可以点击的按钮测试功能", + waitDataLoading: "等待数据读取", + home: { + openPreloadWindowError: { + title: "提示", + content: "请移步项目的strict分支", + confirm: "确定", + }, + }, + about: { + system: "关于系统", + language: "语言:", + languageValue: "中文简体", + currentPagePath: "当前页面路径:", + currentPageName: "当前页面名称:", + vueVersion: "Vue版本:", + electronVersion: "Electron版本:", + nodeVersion: "Node版本:", + systemPlatform: "系统平台:", + systemVersion: "系统版本:", + systemArch: "系统位数:", + }, + buttons: { + console: "控制台打印", + checkUpdate: "检查更新", + checkUpdate2: "检查更新(第二种方法)", + checkUpdateInc: "检查更新(增量更新)", + startServer: "启动内置服务端", + stopServer: "关闭内置服务端", + viewMessage: "查看消息", + openNewWindow: "打开新窗口", + simulatedCrash: "模拟崩溃", + changeLanguage: "Change language", + ForcedUpdate: "强制更新模式", + printDemo: "打印例子", + incrementalUpdateTest: "增量更新测试", + openPreloadWindow: "preload.js测试", + browser: "浏览器", + showOnMyComputer: "在我的电脑显示", + hideOnMyComputer: "在我的电脑隐藏", + }, + print: { + print: "打印", + silentPrinting: "静默打印", + backgroundColor: "背景色", + use: "使用", + unuse: "不使用", + notUse: "非", + tips: "建议使用打印PDF测试(省纸),成功后再使用真实情况", + blackAndWhite: "黑白", + colorful: "彩色", + margin: "边距", + top: "上", + bottom: "下", + right: "右", + left: "左", + }, + browser: { + searchBarPlaceholder: "在Bing中搜索,或输入一个网址", + }, + el: zhLocale, +}; diff --git a/src/renderer/index.html b/src/renderer/index.html new file mode 100644 index 0000000..3a995dc --- /dev/null +++ b/src/renderer/index.html @@ -0,0 +1,41 @@ + + + + + + + + Hi-Sass-Frame + + + +

+ + + + diff --git a/src/renderer/interceptor.ts b/src/renderer/interceptor.ts new file mode 100644 index 0000000..8069af9 --- /dev/null +++ b/src/renderer/interceptor.ts @@ -0,0 +1,52 @@ +// 页面路由阻断器 +import router from './router' +import Performance from '@/tools/performance' + +import {useStorePermission} from "@store/permission" +import {useStoreUser} from "@store/user" + +/** + * 路由拦截模式,白名单whiteList 或者 登陆页needLogin 两种模式,后者目录未配置 + * 建议采用白名单方式,可以更方便地应对多种角色权限的配置 + */ +// const whiteList = ["/", '/login', '/landing', '/dashboard'] // 不重定向白名单 +const whiteList = ["/", '/login'] // 不重定向白名单 +// const needLogin = ['/LandingPage']; //需要登陆的页面,未写相关功能,暂不应用 + +const useInterceptor = function () { + router.beforeEach(async (to, from, next) => { + // console.log("目标路由信息", to, to.meta);//to.meta取自路由设置中的meta信息 + const {checkRoute} = useStorePermission(); + const {hasLogin, roles, logout} = useStoreUser(); + let end = Performance.startExecute(`${from.path} => ${to.path} 路由耗时`); /// 路由性能监控 + + if (whiteList.includes(to.path)) { + // 在白名单内,直接放行 + next(); + } else { + // console.log('用户登陆状态:', hasLogin); + let _roles = ['guest']; + if (hasLogin && to.path === "/login") { + // 如果已登录,跳转到首页 + next({path: "/"}); + } else { + if (hasLogin) { + _roles = roles; + } + console.log('用户角色:', _roles); + if (checkRoute(_roles, to)) { + next(); + } else { + next({path: '/login'}); + } + } + } + setTimeout(() => { + end(); + }, 0) + }) + router.afterEach(() => { + }) +} + +export default useInterceptor; diff --git a/src/renderer/main-multi-themes.ts b/src/renderer/main-multi-themes.ts new file mode 100644 index 0000000..b6046e4 --- /dev/null +++ b/src/renderer/main-multi-themes.ts @@ -0,0 +1,24 @@ +import {createApp} from 'vue' +import App from '@theme/App-theme.vue'; +import setupPlugins from "@theme/plugins"; + +// 本地SVG图标 +import "virtual:svg-icons-register"; + +// 样式 +import "element-plus/theme-chalk/dark/css-vars.css"; +import "@theme/styles/index.scss"; +import "uno.css"; +import "animate.css"; + +import {errorHandler} from './error' + +const app = createApp(App) +app.use(setupPlugins); +errorHandler(app) +// 执行路由拦截,放在挂载之前的方式(按路由权限标识) +import useInterceptor from './interceptor'; + +useInterceptor(); + +app.mount("#myApp") diff --git a/src/renderer/main-notheme.ts b/src/renderer/main-notheme.ts new file mode 100644 index 0000000..08ae83e --- /dev/null +++ b/src/renderer/main-notheme.ts @@ -0,0 +1,30 @@ +import {createApp} from 'vue' +import {createPinia} from 'pinia' + +import './styles/index.scss' +import "uno.css"; + +import useInterceptor from './interceptor'; + +import App from './App.vue' +import router from './router' +import {errorHandler} from './error' + +import {i18n} from "./i18n" + +import TitleBar from "./components/common/TitleBar.vue" + +const app = createApp(App) +const store = createPinia() + +app.use(store) +app.use(router) +app.use(i18n) +errorHandler(app) + +// 全局引入 TitleBar 组件 +app.component("TitleBar", TitleBar); + +// 执行路由拦截,放在挂载之前的方式(按路由权限标识) +useInterceptor(); +app.mount("#myApp") diff --git a/src/renderer/main-single-theme.ts b/src/renderer/main-single-theme.ts new file mode 100644 index 0000000..eda209b --- /dev/null +++ b/src/renderer/main-single-theme.ts @@ -0,0 +1,35 @@ +/** + * 简化的内建主题模式,适用于主体功能一致、部分界面定制的情况 + */ + +import {createApp} from 'vue' +import {createPinia} from 'pinia' + +import ElementPlus from 'element-plus'; +import "uno.css"; +import './styles/index.scss' + +import useInterceptor from './interceptor'; + +import App from '@/themes/_single/App.vue'; +import router from './router' +import {errorHandler} from './error' + +import {i18n} from "./i18n" + +import TitleBar from "./components/common/TitleBar.vue" + +const app = createApp(App) +const store = createPinia() +app.use(ElementPlus) +app.use(store) +app.use(router) +app.use(i18n) +errorHandler(app) + +// 全局引入 TitleBar 组件 +app.component("TitleBar", TitleBar); + +// 执行路由拦截,放在挂载之前的方式(按路由权限标识) +useInterceptor(); +app.mount("#myApp") diff --git a/src/renderer/mock/index.ts b/src/renderer/mock/index.ts new file mode 100644 index 0000000..91b4edf --- /dev/null +++ b/src/renderer/mock/index.ts @@ -0,0 +1,24 @@ +/** + * 引入 这些文件时,app还没有构建完毕,处于运行时状态;不可使用构建类方法 + * 如 import.meta.glob + */ + +import auth from "./v1/auth"; +import dept from "./v1/dept"; +import dict from "./v1/dict"; +import files from "./v1/files"; +import menu from "./v1/menu"; +import role from "./v1/role"; +import stats from "./v1/stats"; +import user from "./v1/user"; + +export default { + auth, + dept, + dict, + files, + menu, + role, + stats, + user +} diff --git a/src/renderer/mock/v1/auth.ts b/src/renderer/mock/v1/auth.ts new file mode 100644 index 0000000..18e1524 --- /dev/null +++ b/src/renderer/mock/v1/auth.ts @@ -0,0 +1,41 @@ +export default ([ + { + url: "auth/captcha", + method: ["GET"], + body: { + code: "00000", + data: { + captchaKey: "534b8ef2b0a24121bec76391ddd159f9", + captchaBase64: + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAAkCAIAAADNSmkJAAAFKUlEQVR4Xu2ZXUwcVRiGV70wMWo08V5NvPXCrDbFaGpMaZW2hqQxaoiJTRsaMBCNSYtpa2JTKiFSelFa+Q/QZcMWqEhBlh+htbEpZhMrBQrlJ0hBywLLyrJ0WZbje3bqOvPNLHPWrDvdOE9ONmfe78zkzMs335wzWJhJQrBQweS/wTQ6QWgYHdoIOcecOe05O+t2WkutO+p2ZF3Ksg/YV9ZW6FATYajR3nveg60H9327r3O8c35lHgp+r05dPdJzBL73TPSQ8SaCKIxGLsPlop+K0JHrEkPuoT31e5qGmmjARACF0agYyGVNlyVm/pzZXrN9fHGcBkz0UBid+31u93i3XFFT80vN8cvHqWqih8Lo1NpUqS5vwh3vnd223VQ10UNh9NbyrcFQUK6oCawHUipSqGqiB83oBf+CXFGDMp1mS6OqiR4Ko7FexkpOrqhpHGw82nOUqiZ6KIzGrkRuorW0dJMmOy+hOCfYGzb2RBFv6HRO0gEJw/U7y+pgL1bwmTxexN6sZ31TdEwEhdG+gA+7EqyXpUO1uZH20cWL8hMTRt1N9tBXzCJrOIRoCPJpSO2RAp4HmtCdIfZ+2JWgEBN9LbR28seTGU0Zue1tMLp+YIAMSADzfvbkKX4/eb28j4YODiGin3heqmIlLja5hAUCu+nmGY3JWKvpMAlqNGgebsauBOvlqSX+JEx7p7EbTLen53XlzfmWUioqXikrc68Y8N2juJ/fyVsNChGHEE//rBANYWaZz+TRQqpLaBgNsPfDrgSpbS21YtV87IdjrlkX9JZbt5DOma2t9ITo5F+5glN22WwL/n+yDv00mw06orKxOqQ5+J04hhViwzAXETIcJDVm8uxZqktoGx2Nj9t43Wgaul/ERQiGQvtbWnDWgZYW9CXlQFjZ/7ciyHNn+Z2MexTimIeLz59TiIln0M1e+IbPpOAaDUnEYPTi6iqKxpbycs/qKo1tCslfKcffPn9enuMiPPY1vxO/ckeFQ4h46cdGqUWoidE/y54q5tPY5WDrGzQqIXot4BgchEE57e00IMCw2/1qZSVO/7SjA78o9INzcxsbrL+fnTnDDh9mmZn8F30oG1Hm+nABv5mQMopDS/h1HxtqTzWbABMe9sxpPoe9zezeOo1GELqWhPS8t46M0IAYHbdvR1aHbaOjbjfLz2eFhez6dba4yAfgF30o0BFVE8+Mjh/wFxPI+I5mAEHU6Ls+38vhTFwOBGhMDF8gkFpbC5ffsdv/uBs6dIj19dExEtARVXv9YNbop8NFY3aZ6gRRo+tu3IBHnzmdNCBMXldXJKPfL74WzWUJRE+coDUknqsOdZXQbAJYwluVTbOZI3Qt8GFzMwxyjo3RgBiN4fr+elXVpZGRLWXl6PdOTtJBSlBDUK/lnIrjOlrtqWYTQDJaF6FrTXu9sOa1ysrVoM5HVE1GFxZQcyJ/p+xzv6K/rbr6N6+XDpUBl0tKFIrbz78qWB6YnWFMCBld4XLBms+7df75ook/GNzb0GCV7U1Qfz9p64TyQWNjYD3qe9rj4SMJtQP3MyjSDPzWIRHPjH7X4YAvfXoPuyZf9Pbi3PcuXIh4mp3NllYC6XY79C+jl2o8PBipxjnBttn4MgMNnWgfcRJGPI2OL8hTj3LloIlmRicvBhiNykvecpqoa3RSY4DRcLAwyicuOepVR1JjgNFYHWONHL04czTX0UmNAUYD7Pr+xc4wqTHGaBb2OtZvHUmNYUazcA2J6etdUmOk0f8rTKMTxF91RG0D1SwYGwAAAABJRU5ErkJggg==", + }, + msg: "一切ok", + }, + }, + + { + url: "auth/login", + method: ["POST"], + body: { + code: "00000", + data: { + accessToken: + "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImp0aSI6IjE2YWJkNTlkOTAxNzQwZDliYmI3ZjczODBhZDkyNzNhIiwidXNlcklkIjoyLCJ1c2VybmFtZSI6ImFkbWluIiwiZGVwdElkIjoxLCJkYXRhU2NvcGUiOjEsImF1dGhvcml0aWVzIjpbIlJPTEVfQURNSU4iXSwiZXhwIjoxNjkxMTAzMzgyfQ.P4cuIfmPepl3HuguhMS7NXn5a7IUPpsLbmtA_rHOhHk", + tokenType: "Bearer", + refreshToken: null, + expires: null, + }, + msg: "一切ok", + }, + }, + + { + url: "auth/logout", + method: ["DELETE"], + body: { + code: "00000", + data: {}, + msg: "string", + }, + }, +]); diff --git a/src/renderer/mock/v1/dept.ts b/src/renderer/mock/v1/dept.ts new file mode 100644 index 0000000..502ec37 --- /dev/null +++ b/src/renderer/mock/v1/dept.ts @@ -0,0 +1,151 @@ +export default ([ + { + url: "dept/options", + method: ["GET"], + body: { + code: "00000", + data: [ + { + value: 1, + label: "有来技术", + children: [ + { + value: 2, + label: "研发部门", + }, + { + value: 3, + label: "测试部门", + }, + ], + }, + ], + msg: "一切ok", + }, + }, + + { + url: "dept", + method: ["GET"], + body: { + code: "00000", + data: [ + { + id: 1, + parentId: 0, + name: "有来技术", + code: "YOULAI", + sort: 1, + status: 1, + children: [ + { + id: 2, + parentId: 1, + name: "研发部门", + code: "RD001", + sort: 1, + status: 1, + children: [], + createTime: null, + updateTime: "2022-04-19 12:46", + }, + { + id: 3, + parentId: 1, + name: "测试部门", + code: "QA001", + sort: 1, + status: 1, + children: [], + createTime: null, + updateTime: "2022-04-19 12:46", + }, + ], + createTime: null, + updateTime: null, + }, + ], + msg: "一切ok", + }, + }, + + // 新增部门 + { + url: "dept", + method: ["POST"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "新增部门" + body.name + "成功", + }; + }, + }, + + // 获取部门表单数据 + { + url: "dept/:id/form", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: deptMap[params.id], + msg: "一切ok", + }; + }, + }, + + // 修改部门 + { + url: "dept/:id", + method: ["PUT"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "修改部门" + body.name + "成功", + }; + }, + }, + + // 删除部门 + { + url: "dept/:id", + method: ["DELETE"], + body({ params }) { + return { + code: "00000", + data: null, + msg: "删除部门" + params.id + "成功", + }; + }, + }, +]); + +// 部门映射表数据 +const deptMap: Record = { + 1: { + id: 1, + name: "有来技术", + code: "YOULAI", + parentId: 0, + status: 1, + sort: 1, + }, + 2: { + id: 2, + name: "研发部门", + code: "RD001", + parentId: 1, + status: 1, + sort: 1, + }, + 3: { + id: 3, + name: "测试部门", + code: "QA001", + parentId: 1, + status: 1, + sort: 1, + }, +}; diff --git a/src/renderer/mock/v1/dict.ts b/src/renderer/mock/v1/dict.ts new file mode 100644 index 0000000..c9ef257 --- /dev/null +++ b/src/renderer/mock/v1/dict.ts @@ -0,0 +1,166 @@ +export default ([ + { + url: "dict/:code/options", + method: ["GET"], + body: ({ params }) => { + const code = params.code; + + let list = null; + + if (code === "gender") { + list = [ + { + value: "1", + label: "男", + }, + { + value: "2", + label: "女", + }, + { + value: "0", + label: "保密", + }, + ]; + } + + return { + code: "00000", + data: list, + msg: "一切ok", + }; + }, + }, + + { + url: "dict/page", + method: ["GET"], + body: { + code: "00000", + data: { + list: [ + { + id: 1, + name: "性别", + code: "gender", + status: 1, + dictItems: [ + { + id: 1, + name: "男", + value: "1", + sort: 1, + status: 1, + }, + { + id: 2, + name: "女", + value: "2", + sort: 2, + status: 1, + }, + { + id: 3, + name: "保密", + value: "0", + sort: 3, + status: 1, + }, + ], + }, + ], + total: 1, + }, + msg: "一切ok", + }, + }, + + // 新增字典 + { + url: "dict", + method: ["POST"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "新增字典" + body.name + "成功", + }; + }, + }, + + // 获取字典表单数据 + { + url: "dict/:id/form", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: dictMap[params.id], + msg: "一切ok", + }; + }, + }, + + // 修改字典 + { + url: "dict/:id", + method: ["PUT"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "修改字典" + body.name + "成功", + }; + }, + }, + + // 删除字典 + { + url: "dict/:id", + method: ["DELETE"], + body({ params }) { + return { + code: "00000", + data: null, + msg: "删除字典" + params.id + "成功", + }; + }, + }, +]); + +// 字典映射表数据 +const dictMap: Record = { + 1: { + code: "00000", + data: { + id: 1, + name: "性别", + code: "gender", + status: 1, + dictItems: [ + { + id: 1, + name: "男", + value: "1", + sort: 1, + status: 1, + }, + { + id: 2, + name: "女", + value: "2", + sort: 2, + status: 1, + }, + { + id: 3, + name: "未知", + value: "0", + sort: 3, + status: 1, + }, + ], + }, + msg: "一切ok", + }, +}; diff --git a/src/renderer/mock/v1/files.ts b/src/renderer/mock/v1/files.ts new file mode 100644 index 0000000..da8f959 --- /dev/null +++ b/src/renderer/mock/v1/files.ts @@ -0,0 +1,25 @@ +export default ([ + { + url: "files", + method: ["POST"], + body: { + code: "00000", + data: { + name: "测试上传一张图片", + url: + "", + }, + msg: "一切ok", + }, + }, + + { + url: "files", + method: ["DELETE"], + body: { + code: "00000", + data: {}, + msg: "string", + }, + }, +]); diff --git a/src/renderer/mock/v1/menu.ts b/src/renderer/mock/v1/menu.ts new file mode 100644 index 0000000..d3a6e34 --- /dev/null +++ b/src/renderer/mock/v1/menu.ts @@ -0,0 +1,1665 @@ +export default ([ + { + url: "menus/routes", + method: ["GET"], + body: { + code: "00000", + data: [ + { + path: "/system", + component: "Layout", + redirect: "/system/user", + name: "/system", + meta: { + title: "系统管理", + icon: "system", + hidden: false, + alwaysShow: false, + params: null, + }, + children: [ + { + path: "user", + component: "system/user/index", + name: "User", + meta: { + title: "用户管理", + icon: "user", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "role", + component: "system/role/index", + name: "Role", + meta: { + title: "角色管理", + icon: "role", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "menu", + component: "system/menu/index", + name: "Menu", + meta: { + title: "菜单管理", + icon: "menu", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "dept", + component: "system/dept/index", + name: "Dept", + meta: { + title: "部门管理", + icon: "tree", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "dict", + component: "system/dict/index", + name: "Dict", + meta: { + title: "字典管理", + icon: "dict", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + ], + }, + + { + path: "/doc", + component: "Layout", + name: "/doc", + meta: { + title: "参考文档", + icon: "document", + hidden: false, + alwaysShow: false, + params: null, + }, + children: [ + { + path: "apifox", + component: "demo/api/apifox", + name: "Apifox", + meta: { + title: "有来开源API", + icon: "api", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + + { + path: "internal-doc", + component: "demo/internal-doc", + name: "InternalDoc", + meta: { + title: "有来前端", + icon: "document", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + { + path: "https://api.hiluker.com", + name: "DACMS数据接口管理系统", + meta: { + title: "DataApiCMS", + icon: "link", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + { + path: "https://www.electronjs.org/zh/docs/latest/", + name: "Electron中文文档", + meta: { + title: "Electron", + icon: "link", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + { + path: "https://umbrella22.github.io/electron-vue-template-doc/essentials/", + name: "Electron主框架参考项目", + meta: { + title: "主框架参考", + icon: "link", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + { + path: "https://univer.ai/zh-CN/guides/sheet/introduction", + name: "UniverJs文档", + meta: { + title: "UniverJs表格", + icon: "link", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + { + path: "https://cn.element-plus.org/zh-CN/component/overview.html", + name: "Element主题文档", + meta: { + title: "Element UI", + icon: "link", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + + + + ], + }, + { + path: "/multi-level", + component: "Layout", + name: "/multiLevel", + meta: { + title: "多级菜单", + icon: "cascader", + hidden: false, + alwaysShow: true, + params: null, + }, + children: [ + { + path: "multi-level1", + component: "demo/multi-level/level1", + name: "MultiLevel1", + meta: { + title: "菜单一级", + icon: "", + hidden: false, + alwaysShow: true, + params: null, + }, + children: [ + { + path: "multi-level2", + component: "demo/multi-level/children/level2", + name: "MultiLevel2", + meta: { + title: "菜单二级", + icon: "", + hidden: false, + alwaysShow: false, + params: null, + }, + children: [ + { + path: "multi-level3-1", + component: "demo/multi-level/children/children/level3-1", + name: "MultiLevel31", + meta: { + title: "菜单三级-1", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "multi-level3-2", + component: "demo/multi-level/children/children/level3-2", + name: "MultiLevel32", + meta: { + title: "菜单三级-2", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + ], + }, + ], + }, + ], + }, + { + path: "/component", + component: "Layout", + name: "/component", + meta: { + title: "组件封装", + icon: "menu", + hidden: false, + alwaysShow: false, + params: null, + }, + children: [ + { + path: "curd", + component: "demo/curd/index", + name: "Curd", + meta: { + title: "增删改查", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "table-select", + component: "demo/table-select/index", + name: "TableSelect", + meta: { + title: "列表选择器", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "wang-editor", + component: "demo/wang-editor", + name: "WangEditor", + meta: { + title: "富文本编辑器", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "upload", + component: "demo/upload", + name: "Upload", + meta: { + title: "图片上传", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "icon-selector", + component: "demo/icon-selector", + name: "IconSelector", + meta: { + title: "图标选择器", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "dict-demo", + component: "demo/dict", + name: "DictDemo", + meta: { + title: "字典组件", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + ], + }, + { + path: "/route-param", + component: "Layout", + name: "/routeParam", + meta: { + title: "路由参数", + icon: "el-icon-ElementPlus", + hidden: false, + alwaysShow: true, + params: null, + }, + children: [ + { + path: "route-param-type1", + component: "demo/route-param", + name: "RouteParamType1", + meta: { + title: "参数(type=1)", + icon: "el-icon-Star", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: { + type: "1", + }, + }, + }, + { + path: "route-param-type2", + component: "demo/route-param", + name: "RouteParamType2", + meta: { + title: "参数(type=2)", + icon: "el-icon-StarFilled", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: { + type: "2", + }, + }, + }, + ], + }, + { + path: "/function", + component: "Layout", + name: "/function", + meta: { + title: "功能演示", + icon: "menu", + hidden: false, + alwaysShow: false, + params: null, + }, + children: [ + { + path: "icon-demo", + component: "demo/icons", + name: "IconDemo", + meta: { + title: "Icons", + icon: "el-icon-Notification", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "/function/websocket", + component: "demo/websocket", + name: "/function/websocket", + meta: { + title: "Websocket", + icon: "", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "/sheet/univer", + component: "demo/sheet", + name: "/sheet/univer", + meta: { + title: "univer表格", + icon: "el-icon-Histogram", + hidden: false, + keepAlive: true, + alwaysShow: false, + params: null, + }, + }, + { + path: "other/:id", + component: "demo/other", + name: "Other/:id", + meta: { + title: "敬请期待...", + icon: "", + hidden: false, + alwaysShow: false, + params: null, + }, + }, + ], + }, + ], + msg: "一切ok", + }, + }, + + { + url: "menus", + method: ["GET"], + body: { + code: "00000", + data: [ + { + id: 1, + parentId: 0, + name: "系统管理", + type: "CATALOG", + routeName: "", + routePath: "/system", + component: "Layout", + sort: 1, + visible: 1, + icon: "system", + redirect: "/system/user", + perm: null, + children: [ + { + id: 2, + parentId: 1, + name: "用户管理", + type: "MENU", + routeName: "User", + routePath: "user", + component: "system/user/index", + sort: 1, + visible: 1, + icon: "user", + redirect: null, + perm: null, + children: [ + { + id: 105, + parentId: 2, + name: "用户查询", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 0, + visible: 1, + icon: "", + redirect: null, + perm: "sys:user:query", + children: [], + }, + { + id: 31, + parentId: 2, + name: "用户新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 1, + visible: 1, + icon: "", + redirect: "", + perm: "sys:user:add", + children: [], + }, + { + id: 32, + parentId: 2, + name: "用户编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 2, + visible: 1, + icon: "", + redirect: "", + perm: "sys:user:edit", + children: [], + }, + { + id: 33, + parentId: 2, + name: "用户删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: "", + perm: "sys:user:delete", + children: [], + }, + { + id: 88, + parentId: 2, + name: "重置密码", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 4, + visible: 1, + icon: "", + redirect: null, + perm: "sys:user:password:reset", + children: [], + }, + { + id: 106, + parentId: 2, + name: "用户导入", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 5, + visible: 1, + icon: "", + redirect: null, + perm: "sys:user:import", + children: [], + }, + { + id: 107, + parentId: 2, + name: "用户导出", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 6, + visible: 1, + icon: "", + redirect: null, + perm: "sys:user:export", + children: [], + }, + ], + }, + { + id: 3, + parentId: 1, + name: "角色管理", + type: "MENU", + routeName: "Role", + routePath: "role", + component: "system/role/index", + sort: 2, + visible: 1, + icon: "role", + redirect: null, + perm: null, + children: [ + { + id: 70, + parentId: 3, + name: "角色新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 1, + visible: 1, + icon: "", + redirect: null, + perm: "sys:role:add", + children: [], + }, + { + id: 71, + parentId: 3, + name: "角色编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 2, + visible: 1, + icon: "", + redirect: null, + perm: "sys:role:edit", + children: [], + }, + { + id: 72, + parentId: 3, + name: "角色删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: null, + perm: "sys:role:delete", + children: [], + }, + ], + }, + { + id: 4, + parentId: 1, + name: "菜单管理", + type: "MENU", + routeName: "Menu", + routePath: "menu", + component: "system/menu/index", + sort: 3, + visible: 1, + icon: "menu", + redirect: null, + perm: null, + children: [ + { + id: 73, + parentId: 4, + name: "菜单新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 1, + visible: 1, + icon: "", + redirect: null, + perm: "sys:menu:add", + children: [], + }, + { + id: 75, + parentId: 4, + name: "菜单删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: null, + perm: "sys:menu:delete", + children: [], + }, + { + id: 74, + parentId: 4, + name: "菜单编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: null, + perm: "sys:menu:edit", + children: [], + }, + ], + }, + { + id: 5, + parentId: 1, + name: "部门管理", + type: "MENU", + routeName: "Dept", + routePath: "dept", + component: "system/dept/index", + sort: 4, + visible: 1, + icon: "tree", + redirect: null, + perm: null, + children: [ + { + id: 76, + parentId: 5, + name: "部门新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 1, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dept:add", + children: [], + }, + { + id: 77, + parentId: 5, + name: "部门编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 2, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dept:edit", + children: [], + }, + { + id: 78, + parentId: 5, + name: "部门删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dept:delete", + children: [], + }, + ], + }, + { + id: 6, + parentId: 1, + name: "字典管理", + type: "MENU", + routeName: "Dict", + routePath: "dict", + component: "system/dict/index", + sort: 5, + visible: 1, + icon: "dict", + redirect: null, + perm: null, + children: [ + { + id: 79, + parentId: 6, + name: "字典类型新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 1, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict_type:add", + children: [], + }, + { + id: 81, + parentId: 6, + name: "字典类型编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 2, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict_type:edit", + children: [], + }, + { + id: 84, + parentId: 6, + name: "字典类型删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 3, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict_type:delete", + children: [], + }, + { + id: 85, + parentId: 6, + name: "字典数据新增", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 4, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict:add", + children: [], + }, + { + id: 86, + parentId: 6, + name: "字典数据编辑", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 5, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict:edit", + children: [], + }, + { + id: 87, + parentId: 6, + name: "字典数据删除", + type: "BUTTON", + routeName: null, + routePath: "", + component: null, + sort: 6, + visible: 1, + icon: "", + redirect: null, + perm: "sys:dict:delete", + children: [], + }, + ], + }, + ], + }, + { + id: 40, + parentId: 0, + name: "接口文档", + type: "CATALOG", + routeName: null, + routePath: "/api", + component: "Layout", + sort: 7, + visible: 1, + icon: "api", + redirect: "", + perm: null, + children: [ + { + id: 41, + parentId: 40, + name: "Apifox", + type: "MENU", + routeName: null, + routePath: "apifox", + component: "demo/api/apifox", + sort: 1, + visible: 1, + icon: "api", + redirect: "", + perm: null, + children: [], + }, + ], + }, + { + id: 26, + parentId: 0, + name: "平台文档", + type: "CATALOG", + routeName: null, + routePath: "/doc", + component: "Layout", + sort: 8, + visible: 1, + icon: "document", + redirect: "https://juejin.cn/post/7228990409909108793", + perm: null, + children: [ + { + id: 102, + parentId: 26, + name: "平台文档(内嵌)", + type: "EXTLINK", + routeName: null, + routePath: "internal-doc", + component: "demo/internal-doc", + sort: 1, + visible: 1, + icon: "document", + redirect: "", + perm: null, + children: [], + }, + { + id: 30, + parentId: 26, + name: "平台文档(外链)", + type: "EXTLINK", + routeName: null, + routePath: "https://juejin.cn/post/7228990409909108793", + component: "", + sort: 2, + visible: 1, + icon: "link", + redirect: "", + perm: null, + children: [], + }, + ], + }, + { + id: 20, + parentId: 0, + name: "多级菜单", + type: "CATALOG", + routeName: null, + routePath: "/multi-level", + component: "Layout", + sort: 9, + visible: 1, + icon: "cascader", + redirect: "", + perm: null, + children: [ + { + id: 21, + parentId: 20, + name: "菜单一级", + type: "MENU", + routeName: null, + routePath: "multi-level1", + component: "demo/multi-level/level1", + sort: 1, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [ + { + id: 22, + parentId: 21, + name: "菜单二级", + type: "MENU", + routeName: null, + routePath: "multi-level2", + component: "demo/multi-level/children/level2", + sort: 1, + visible: 1, + icon: "", + redirect: null, + perm: null, + children: [ + { + id: 23, + parentId: 22, + name: "菜单三级-1", + type: "MENU", + routeName: null, + routePath: "multi-level3-1", + component: "demo/multi-level/children/children/level3-1", + sort: 1, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 24, + parentId: 22, + name: "菜单三级-2", + type: "MENU", + routeName: null, + routePath: "multi-level3-2", + component: "demo/multi-level/children/children/level3-2", + sort: 2, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + ], + }, + ], + }, + ], + }, + { + id: 36, + parentId: 0, + name: "组件封装", + type: "CATALOG", + routeName: null, + routePath: "/component", + component: "Layout", + sort: 10, + visible: 1, + icon: "menu", + redirect: "", + perm: null, + children: [ + { + id: 108, + parentId: 36, + name: "增删改查", + type: "MENU", + routeName: null, + routePath: "curd", + component: "demo/curd/index", + sort: 0, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 109, + parentId: 36, + name: "列表选择器", + type: "MENU", + routeName: null, + routePath: "table-select", + component: "demo/table-select/index", + sort: 1, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 37, + parentId: 36, + name: "富文本编辑器", + type: "MENU", + routeName: null, + routePath: "wang-editor", + component: "demo/wang-editor", + sort: 2, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 38, + parentId: 36, + name: "图片上传", + type: "MENU", + routeName: null, + routePath: "upload", + component: "demo/upload", + sort: 3, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 95, + parentId: 36, + name: "字典组件", + type: "MENU", + routeName: null, + routePath: "dict-demo", + component: "demo/dict", + sort: 4, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 39, + parentId: 36, + name: "图标选择器", + type: "MENU", + routeName: null, + routePath: "icon-selector", + component: "demo/icon-selector", + sort: 4, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + ], + }, + { + id: 110, + parentId: 0, + name: "路由参数", + type: "CATALOG", + routeName: null, + routePath: "/route-param", + component: "Layout", + sort: 11, + visible: 1, + icon: "el-icon-ElementPlus", + redirect: null, + perm: null, + children: [ + { + id: 111, + parentId: 110, + name: "参数(type=1)", + type: "MENU", + routeName: null, + routePath: "route-param-type1", + component: "demo/route-param", + sort: 1, + visible: 1, + icon: "el-icon-Star", + redirect: null, + perm: null, + children: [], + }, + { + id: 112, + parentId: 110, + name: "参数(type=2)", + type: "MENU", + routeName: null, + routePath: "route-param-type2", + component: "demo/route-param", + sort: 2, + visible: 1, + icon: "el-icon-StarFilled", + redirect: null, + perm: null, + children: [], + }, + ], + }, + { + id: 89, + parentId: 0, + name: "功能演示", + type: "CATALOG", + routeName: null, + routePath: "/function", + component: "Layout", + sort: 12, + visible: 1, + icon: "menu", + redirect: "", + perm: null, + children: [ + { + id: 97, + parentId: 89, + name: "Icons", + type: "MENU", + routeName: null, + routePath: "icon-demo", + component: "demo/icons", + sort: 2, + visible: 1, + icon: "el-icon-Notification", + redirect: "", + perm: null, + children: [], + }, + { + id: 90, + parentId: 89, + name: "Websocket", + type: "MENU", + routeName: null, + routePath: "/function/websocket", + component: "demo/websocket", + sort: 3, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + { + id: 91, + parentId: 89, + name: "敬请期待...", + type: "CATALOG", + routeName: null, + routePath: "other/:id", + component: "demo/other", + sort: 4, + visible: 1, + icon: "", + redirect: "", + perm: null, + children: [], + }, + ], + }, + ], + msg: "一切ok", + }, + }, + + { + url: "menus/options", + method: ["GET"], + body: { + code: "00000", + data: [ + { + value: 1, + label: "系统管理", + children: [ + { + value: 2, + label: "用户管理", + children: [ + { + value: 105, + label: "用户查询", + }, + { + value: 31, + label: "用户新增", + }, + { + value: 32, + label: "用户编辑", + }, + { + value: 33, + label: "用户删除", + }, + { + value: 88, + label: "重置密码", + }, + { + value: 106, + label: "用户导入", + }, + { + value: 107, + label: "用户导出", + }, + ], + }, + { + value: 3, + label: "角色管理", + children: [ + { + value: 70, + label: "角色新增", + }, + { + value: 71, + label: "角色编辑", + }, + { + value: 72, + label: "角色删除", + }, + ], + }, + { + value: 4, + label: "菜单管理", + children: [ + { + value: 73, + label: "菜单新增", + }, + { + value: 75, + label: "菜单删除", + }, + { + value: 74, + label: "菜单编辑", + }, + ], + }, + { + value: 5, + label: "部门管理", + children: [ + { + value: 76, + label: "部门新增", + }, + { + value: 77, + label: "部门编辑", + }, + { + value: 78, + label: "部门删除", + }, + ], + }, + { + value: 6, + label: "字典管理", + children: [ + { + value: 79, + label: "字典类型新增", + }, + { + value: 81, + label: "字典类型编辑", + }, + { + value: 84, + label: "字典类型删除", + }, + { + value: 85, + label: "字典数据新增", + }, + { + value: 86, + label: "字典数据编辑", + }, + { + value: 87, + label: "字典数据删除", + }, + ], + }, + ], + }, + { + value: 40, + label: "接口文档", + children: [ + { + value: 41, + label: "Apifox", + }, + ], + }, + { + value: 26, + label: "平台文档", + children: [ + { + value: 102, + label: "平台文档(内嵌)", + }, + { + value: 30, + label: "平台文档(外链)", + }, + ], + }, + { + value: 20, + label: "多级菜单", + children: [ + { + value: 21, + label: "菜单一级", + children: [ + { + value: 22, + label: "菜单二级", + children: [ + { + value: 23, + label: "菜单三级-1", + }, + { + value: 24, + label: "菜单三级-2", + }, + ], + }, + ], + }, + ], + }, + { + value: 36, + label: "组件封装", + children: [ + { + value: 108, + label: "增删改查", + }, + { + value: 109, + label: "列表选择器", + }, + { + value: 37, + label: "富文本编辑器", + }, + { + value: 38, + label: "图片上传", + }, + { + value: 95, + label: "字典组件", + }, + { + value: 39, + label: "图标选择器", + }, + ], + }, + { + value: 110, + label: "路由参数", + children: [ + { + value: 111, + label: "参数(type=1)", + }, + { + value: 112, + label: "参数(type=2)", + }, + ], + }, + { + value: 89, + label: "功能演示", + children: [ + { + value: 97, + label: "Icons", + }, + { + value: 90, + label: "Websocket", + }, + { + value: 91, + label: "敬请期待...", + }, + ], + }, + ], + msg: "一切ok", + }, + }, + + // 新增菜单 + { + url: "menus", + method: ["POST"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "新增菜单" + body.name + "成功", + }; + }, + }, + + // 获取菜单表单数据 + { + url: "menus/:id/form", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: menuMap[params.id], + msg: "一切ok", + }; + }, + }, + + // 修改菜单 + { + url: "menus/:id", + method: ["PUT"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "修改菜单" + body.name + "成功", + }; + }, + }, + + // 删除菜单 + { + url: "menus/:id", + method: ["DELETE"], + body({ params }) { + return { + code: "00000", + data: null, + msg: "删除菜单" + params.id + "成功", + }; + }, + }, +]); + +// 菜单映射表数据 +const menuMap: Record = { + 1: { + id: 1, + parentId: 0, + name: "系统管理", + type: "CATALOG", + routeName: "", + routePath: "/system", + component: "Layout", + perm: null, + visible: 1, + sort: 1, + icon: "system", + redirect: "/system/user", + keepAlive: null, + alwaysShow: null, + params: null, + }, + 2: { + id: 2, + parentId: 1, + name: "用户管理", + type: "MENU", + routeName: "User", + routePath: "user", + component: "system/user/index", + perm: null, + visible: 1, + sort: 1, + icon: "user", + redirect: null, + keepAlive: 1, + alwaysShow: null, + }, + 3: { + id: 3, + parentId: 1, + name: "角色管理", + type: "MENU", + routeName: "Role", + routePath: "role", + component: "system/role/index", + perm: null, + visible: 1, + sort: 2, + icon: "role", + redirect: null, + keepAlive: 1, + alwaysShow: null, + }, + 4: { + id: 4, + parentId: 1, + name: "菜单管理", + type: "MENU", + routeName: "Menu", + routePath: "menu", + component: "system/menu/index", + perm: null, + visible: 1, + sort: 3, + icon: "menu", + redirect: null, + keepAlive: 1, + alwaysShow: null, + }, + 5: { + id: 5, + parentId: 1, + name: "部门管理", + type: "MENU", + routeName: "Dept", + routePath: "dept", + component: "system/dept/index", + perm: null, + visible: 1, + sort: 4, + icon: "tree", + redirect: null, + keepAlive: 1, + alwaysShow: null, + }, + 6: { + id: 6, + parentId: 1, + name: "字典管理", + type: "MENU", + routeName: "Dict", + routePath: "dict", + component: "system/dict/index", + perm: null, + visible: 1, + sort: 5, + icon: "dict", + redirect: null, + keepAlive: 1, + alwaysShow: null, + }, +}; diff --git a/src/renderer/mock/v1/role.ts b/src/renderer/mock/v1/role.ts new file mode 100644 index 0000000..a7ae539 --- /dev/null +++ b/src/renderer/mock/v1/role.ts @@ -0,0 +1,333 @@ +export default ([ + { + url: "roles/options", + method: ["GET"], + body: { + code: "00000", + data: [ + { + value: 2, + label: "系统管理员", + }, + { + value: 4, + label: "系统管理员1", + }, + { + value: 5, + label: "系统管理员2", + }, + { + value: 6, + label: "系统管理员3", + }, + { + value: 7, + label: "系统管理员4", + }, + { + value: 8, + label: "系统管理员5", + }, + { + value: 9, + label: "系统管理员6", + }, + { + value: 10, + label: "系统管理员7", + }, + { + value: 11, + label: "系统管理员8", + }, + { + value: 12, + label: "系统管理员9", + }, + { + value: 3, + label: "访问游客", + }, + ], + msg: "一切ok", + }, + }, + + { + url: "roles/page", + method: ["GET"], + body: { + code: "00000", + data: { + list: [ + { + id: 2, + name: "系统管理员", + code: "ADMIN", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 3, + name: "访问游客", + code: "GUEST", + status: 1, + sort: 3, + createTime: "2021-05-26 15:49:05", + updateTime: "2019-05-05 16:00:00", + }, + { + id: 4, + name: "系统管理员1", + code: "ADMIN1", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 5, + name: "系统管理员2", + code: "ADMIN2", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 6, + name: "系统管理员3", + code: "ADMIN3", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 7, + name: "系统管理员4", + code: "ADMIN4", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 8, + name: "系统管理员5", + code: "ADMIN5", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 9, + name: "系统管理员6", + code: "ADMIN6", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: "2023-12-04 11:43:15", + }, + { + id: 10, + name: "系统管理员7", + code: "ADMIN7", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + { + id: 11, + name: "系统管理员8", + code: "ADMIN8", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + ], + total: 10, + }, + msg: "一切ok", + }, + }, + + // 新增角色 + { + url: "roles", + method: ["POST"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "新增角色" + body.name + "成功", + }; + }, + }, + + // 获取角色表单数据 + { + url: "roles/:id/form", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: roleMap[params.id], + msg: "一切ok", + }; + }, + }, + // 修改角色 + { + url: "roles/:id", + method: ["PUT"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "修改角色" + body.name + "成功", + }; + }, + }, + + // 删除角色 + { + url: "roles/:id", + method: ["DELETE"], + body({ params }) { + return { + code: "00000", + data: null, + msg: "删除角色" + params.id + "成功", + }; + }, + }, + // 获取角色拥有的菜单ID + { + url: "roles/:id/menuIds", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: [ + 1, 2, 31, 32, 33, 88, 3, 70, 71, 72, 4, 73, 75, 74, 5, 76, 77, 78, 6, + 79, 81, 84, 85, 86, 87, 40, 41, 26, 30, 20, 21, 22, 23, 24, 89, 90, + 91, 36, 37, 38, 39, 93, 94, 95, 97, 102, 89, 90, 91, 93, 94, 95, 97, + 102, 103, 104, + ], + msg: "一切ok", + }; + }, + }, + // 保存角色菜单 + { + url: "roles/:id/menus", + method: ["PUT"], + body: { + code: "00000", + data: null, + msg: "一切ok", + }, + }, +]); + +// 角色映射表数据 +const roleMap: Record = { + 2: { + id: 2, + name: "系统管理员", + code: "ADMIN", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 3: { + id: 3, + name: "访问游客", + code: "GUEST", + status: 1, + sort: 3, + createTime: "2021-05-26 15:49:05", + updateTime: "2019-05-05 16:00:00", + }, + 4: { + id: 4, + name: "系统管理员1", + code: "ADMIN1", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 5: { + id: 5, + name: "系统管理员2", + code: "ADMIN2", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + + 6: { + id: 6, + name: "系统管理员3", + code: "ADMIN3", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 7: { + id: 7, + name: "系统管理员4", + code: "ADMIN4", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 8: { + id: 8, + name: "系统管理员5", + code: "ADMIN5", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 9: { + id: 9, + name: "系统管理员6", + code: "ADMIN6", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: "2023-12-04 11:43:15", + }, + 10: { + id: 10, + name: "系统管理员7", + code: "ADMIN7", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, + 11: { + id: 11, + name: "系统管理员8", + code: "ADMIN8", + status: 1, + sort: 2, + createTime: "2021-03-25 12:39:54", + updateTime: null, + }, +}; diff --git a/src/renderer/mock/v1/stats.ts b/src/renderer/mock/v1/stats.ts new file mode 100644 index 0000000..f609158 --- /dev/null +++ b/src/renderer/mock/v1/stats.ts @@ -0,0 +1,25 @@ +export default ([ + { + url: "stats/visit-trend", + method: ["GET"], + body: { + code: "00000", + data: { + dates: [ + "2024-06-24", + "2024-06-25", + "2024-06-26", + "2024-06-27", + "2024-06-28", + "2024-06-29", + "2024-06-30", + "2024-07-01", + ], + pvList: [1100, 2000, 2400, 3000, 4794, 1779, 1751, 4698], + uvList: null, + ipList: [110, 200, 220, 300, 567, 246, 207, 501], + }, + msg: "一切ok", + }, + }, +]); diff --git a/src/renderer/mock/v1/user.ts b/src/renderer/mock/v1/user.ts new file mode 100644 index 0000000..1826d29 --- /dev/null +++ b/src/renderer/mock/v1/user.ts @@ -0,0 +1,187 @@ +export default ([ + { + url: "users/me", + method: ["GET"], + body: { + code: "00000", + data: { + userId: 2, + nickname: "系统管理员", + username: "admin", + avatar: + "https://public.hiluker.com/hi.png", + roles: ["admin","ROOT"], + perms: [ + "sys:menu:delete", + "sys:dept:edit", + "sys:dict_type:add", + "sys:dict:edit", + "sys:dict:delete", + "sys:dict_type:edit", + "sys:menu:add", + "sys:user:add", + "sys:role:edit", + "sys:dept:delete", + "sys:user:edit", + "sys:user:delete", + "sys:user:password:reset", + "sys:dept:add", + "sys:role:delete", + "sys:dict_type:delete", + "sys:menu:edit", + "sys:dict:add", + "sys:role:add", + "sys:user:query", + "sys:user:export", + ], + }, + msg: "一切ok", + }, + }, + + { + url: "users/page", + method: ["GET"], + body: { + code: "00000", + data: { + list: [ + { + id: 2, + username: "admin", + nickname: "系统管理员", + mobile: "18608981880", + gender: 1, + avatar: + "https://public.hiluker.com/luker_fm2.jpg", + email: "", + status: 1, + deptId: 1, + roleIds: [2], + }, + { + id: 3, + username: "test", + nickname: "测试小用户", + mobile: "18608981880", + gender: 1, + avatar: + "https://public.hiluker.com/hi.png", + email: "youlaitech@163.com", + status: 1, + deptId: 3, + roleIds: [3], + }, + ], + total: 2, + }, + msg: "一切ok", + }, + }, + + // 新增用户 + { + url: "users", + method: ["POST"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "新增用户" + body.nickname + "成功", + }; + }, + }, + + // 获取用户表单数据 + { + url: "users/:userId/form", + method: ["GET"], + body: ({ params }) => { + return { + code: "00000", + data: userMap[params.userId], + msg: "一切ok", + }; + }, + }, + // 修改用户 + { + url: "users/:userId", + method: ["PUT"], + body({ body }) { + return { + code: "00000", + data: null, + msg: "修改用户" + body.nickname + "成功", + }; + }, + }, + + // 删除用户 + { + url: "users/:userId", + method: ["DELETE"], + body({ params }) { + return { + code: "00000", + data: null, + msg: "删除用户" + params.id + "成功", + }; + }, + }, + + // 重置密码 + { + url: "users/:userId/password", + method: ["PATCH"], + body({ query }) { + return { + code: "00000", + data: null, + msg: "重置密码成功,新密码为:" + query.password, + }; + }, + }, + + // 导出Excel + { + url: "users/_export", + method: ["GET"], + headers: { + "Content-Disposition": + "attachment; filename=%E7%94%A8%E6%88%B7%E5%88%97%E8%A1%A8.xlsx", + "Content-Type": + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }, + }, +]); + +// 用户映射表数据 +const userMap: Record = { + 2: { + id: 2, + username: "admin", + nickname: "系统管理员", + mobile: "18608981880", + gender: 1, + avatar: + "https://public.hiluker.com/hi.png", + email: "", + status: 1, + deptId: 1, + roleIds: [2], + }, + 3: { + id: 3, + username: "test", + nickname: "测试小用户", + mobile: "17621210366", + gender: 1, + avatar: + "https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif", + email: "youlaitech@163.com", + status: 1, + deptId: 3, + roleIds: [3], + }, +}; diff --git a/src/renderer/public/loader.html b/src/renderer/public/loader.html new file mode 100644 index 0000000..6ac759f --- /dev/null +++ b/src/renderer/public/loader.html @@ -0,0 +1,131 @@ + + + + + + loading... + + + + + +
+
+ + + + +
+
资源加载中...
+
+ + + + diff --git a/src/renderer/public/pay.html b/src/renderer/public/pay.html new file mode 100644 index 0000000..999e32f --- /dev/null +++ b/src/renderer/public/pay.html @@ -0,0 +1,24 @@ + + + + + + + + 支付宝 + + + +
+ + + + \ No newline at end of file diff --git a/src/renderer/public/tray.html b/src/renderer/public/tray.html new file mode 100644 index 0000000..f39c1d1 --- /dev/null +++ b/src/renderer/public/tray.html @@ -0,0 +1,31 @@ + + + + + + Document + + + +
+

我是自定义的系统托盘

+

+ +

+
+ + + diff --git a/src/renderer/public/trayIcon/transparent@1x.png b/src/renderer/public/trayIcon/transparent@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..83e13a3eeb439e1d42482485fcfbd73d7921fd40 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`S3F%DLn;{GK46@n;yFphQ>c5@ z%-!xTE@^3LVWB`!4g%lL&;pczj1CV6*^-v#=H}9}d-hDO^FC?e<)!82{^vnf`Xp^V zyPtV#y}Z_cyO4jiEB^cr`1yU|r}xfJ@3)`Y&yQWAo@LE0X1ffTmyJOGF?hQAxvX
aP0T~@04zeXJ&CSiFW%ulvT<3k#!plp`%l*%Ttn^9R udbVC!>;K*rf4(pJbieyly*{lt^(?7E%yo6D4;KIfhr!d;&t;ucLK6V~TewjG literal 0 HcmV?d00001 diff --git a/src/renderer/public/trayIcon/transparent@3x.png b/src/renderer/public/trayIcon/transparent@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f35b294bf2087f6290b28e8789ee5de8feb73d1a GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(FuHiUIEGX(zJ0(rLB(^DilaP0T~@04zeXJ&CSiFW%ulvT<3k#!plp`%l*%Ttn^9R zdiH-($iMQ%pY}^n{eO4GpZ9K0>&>m;0XwS?QCs z_3Z!Tkbm`yKmC`U`v3llKmXmH{x{e9zd!Kj|K3yo^M|ffJm;0XwS?QCs z^=#<>w2*bbzAq@cx}SaO>VLK?V!pn2e7dThUn~4?b->P7_nS|J{+An7LRPrcvuyNc VvHKq#D*{Xs44$rjF6*2UngF^rLQwz! literal 0 HcmV?d00001 diff --git a/src/renderer/public/trayIcon/trayIcon@1x.png b/src/renderer/public/trayIcon/trayIcon@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dd677fa255974c7e6fc2e4a1f4443c2f53e5abc1 GIT binary patch literal 1969 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|zNAKYruq6Z zXaU(A4D5_T49p-UK*+!-#lQ+?GcY7EO2gS%j2ciiOh7e;3_y}W1&E6njlgUXAbVPS zCIbsp?O>_%)p?h48n{ROYO@T7?{szhD4M^`1)8S=jZArf}E;Xky`*ViNU7A z3dqb&ElE_U$j!+swyLmI0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~%TnY*b zHbp6ERzWUqQ0+jTtx`rwNr9EVetCJhUb(Seeo?xG?WUP)qw zZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2#5rxdm{G@`|Cp0{TzCBC$Z< zP|rXgo2Jx?Ooa1Lbb(}WYAeZ1!=Vi%1JMQ!42TNYgfH8jvQFbRPr z9wf^lYLIk;0>&yJvm!Mo!X+~|HLn;LH+F^w1_n0zSf$XlI_Kx)7X=q2Ca2mNLbV_X zp{oX46p7m+Bq=1Vpjfa9N-fUMDFr2+(7enNJ0lx?Y{KZeA`sf_j6t3PYeE)9*AalIdpz3Y(K}jAd3qbN0SQMDS?6`o@1k0>;T!Hh}EM#C{ zs`hko46zVgJJ~uT#8IT}|ID4`o24hM$Ud;bvqx-Fi%8QEufT4Rtc7J}O)OJQu8Apq zn|9I3AcB*P+x253XGfDSmta%p5sq0J&r)OFzpFhz*Yez&g2mv!ef~!-Ij2&2a(#ManUd$E{Fy$Q zU$UQ6%7yw)pXhJoyK~y=gq~&7AvT0i%04fd*BJ!}9XMUt ztKH0${*6n6c}4G ze9#Ih<@~qPokeZtP1hvhuht1pKJo9EPpLXpcRuWP-(eVW|BiiBdPn`a2cZuw^3EG= zld#k!GRmeMy?mGuGuJ*5i7zI_p5*F;#F%EBLDZjyVv|HAkt`^@nZ@5jXU=U zg-YH3E7;lX|6Dn0degoCLT{YrcOTwuaq5@(p`F){l*v6MlE#*Os_L?)b!& zyKXRvxC-91oV|ILo0`4T<0XP`4IeFj7XN^etm7xFt literal 0 HcmV?d00001 diff --git a/src/renderer/public/trayIcon/trayIcon@2x.png b/src/renderer/public/trayIcon/trayIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4b44cbf68db75979b24e93de8abb1978944002 GIT binary patch literal 3291 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 b@evCbYrmwCOxVonA0S#6^)*V>tV8|}#WcpI literal 0 HcmV?d00001 diff --git a/src/renderer/public/trayIcon/trayIcon@5x.png b/src/renderer/public/trayIcon/trayIcon@5x.png new file mode 100644 index 0000000000000000000000000000000000000000..eacc04919c406fd752d5a8718371507b14af2d07 GIT binary patch literal 8792 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 mEPt|KA0h- = [ + { + path: '/:pathMatch(.*)*', + component: () => import("@renderer/views/404.vue"), + meta: { + title: '错误页', + icon: '', + roles: ['guest'] + }, + }, + { + path: '/', + name: '总览', + component: () => import('@renderer/views/LandingPage.vue'), + meta: { + title: '总览', + icon: '', + roles: ['guest'] + }, + }, + { + path: '/landing', + name: '着陆页', + component: () => import('@renderer/views/LandingPage.vue'), + meta: { + title: '着陆页', + icon: '', + roles: ['guest'] + }, + }, + { + path: '/Print', + name: '打印', + component: () => import('@renderer/views/Print.vue'), + meta: { + title: '打印演示', + icon: '', + roles: ['admin'] + }, + }, + { + path: '/Browser', + name: '浏览器', + component: () => import('@renderer/views/Browser.vue'), + meta: { + title: '浏览器', + icon: '', + roles: ['admin', 'edit'] + }, + }, + { + path: '/login', + name: '登陆', + component: () => import('@renderer/views/Login.vue'), + meta: { + title: '登陆', + icon: '', + roles: ['admin', 'guest'] + }, + }, + { + path: '/403', + component: () => import("@renderer/views/403.vue"), + meta: { + title: '403页', + icon: '', + roles: ['guest'] + }, + }, +] + +export default routes diff --git a/src/renderer/router/dynamicRouter.ts b/src/renderer/router/dynamicRouter.ts new file mode 100644 index 0000000..6105cb0 --- /dev/null +++ b/src/renderer/router/dynamicRouter.ts @@ -0,0 +1,35 @@ +/** + * 动态调整路由表 TBD + */ + +import {RouteRecordRaw, createRouter, createWebHashHistory} from 'vue-router'; +import routerMap from "./constantRouterMap"; + +import {useStorePermission} from "@store/permission"; +import {useStoreUser} from "@store/user"; + +const {GenerateRoutes, routers, checkRoute} = useStorePermission(); +const {hasLogin, roles, logout} = useStoreUser(); + +const whiteList = ["/", '/login', '/regin', '/landing'] // 不重定向白名单(根路径、登陆路径、注册路径、着陆页),根路径必须在白名单内 +let accessRoutes: any = []; +//已经登陆,直接根据权限判断路径 +if (hasLogin) { + const hasRoles = roles && roles.length > 0;//是否有角色设定 + //已登陆但无角色的,仍视为游客 + accessRoutes = await GenerateRoutes(roles); +} else { + // 未登陆,仅显示游客权限相关 + accessRoutes = await GenerateRoutes([]); +} +//在白名单内,直接放行 +routerMap.forEach(route => { + if (whiteList.includes(route.path)) { + accessRoutes.push(route) + } +}); + +export default createRouter({ + history: createWebHashHistory(), + routes: accessRoutes +}) diff --git a/src/renderer/router/index.ts b/src/renderer/router/index.ts new file mode 100644 index 0000000..635da3e --- /dev/null +++ b/src/renderer/router/index.ts @@ -0,0 +1,40 @@ +import {createRouter, createWebHashHistory, RouteRecordRaw} from "vue-router"; +import mainRouterMap from "./constantRouterMap" +import themeRouterMap from "./path2map"; +import theme from "../theme"; + +function path2maps(paths) { + console.log(paths); + let arr = []; + for (let k in paths) { + arr.push(paths[k]); + } + return arr; +} + +// 常规路由表 +export const constantRouterMap = themeRouterMap; + +//主题路由表 +const _theme = theme(); +let themeRoutes: RouteRecordRaw[]; +switch (_theme) { + case "_single": + const paths = await import("@/themes/_single/router/index"); + themeRoutes = path2maps(paths.default); + break; + case "notheme": + themeRoutes = mainRouterMap; + break; + case "element": + default: + themeRoutes = themeRouterMap; +} +console.log(_theme, themeRoutes); +// 过滤路由表 +export const asyncRoutes = themeRoutes; + +export default createRouter({ + history: createWebHashHistory(), + routes: asyncRoutes +}) diff --git a/src/renderer/router/path2map.ts b/src/renderer/router/path2map.ts new file mode 100644 index 0000000..3ad1c30 --- /dev/null +++ b/src/renderer/router/path2map.ts @@ -0,0 +1,25 @@ +//将路径转换为路由表 +import { RouteRecordRaw } from "vue-router"; +// import mainPaths from "./constantRouterMap"; +let mainPaths = { + // "/login2":{ + // path: "/login2", + // component: () => import("@theme/views/error-page/401.vue"), + // meta: { + // hidden: true, + // title: "胡修乱改", + // icon:"", + // roles:["guest"] + // } + // }, +}; +import themePaths from "./themeRouter"; + +let paths = {...mainPaths,...themePaths}; +let arr = []; +for(let k in paths){ + arr.push(paths[k]); +} + +const routes: Array = arr; +export default routes; diff --git a/src/renderer/router/themeRouter.ts b/src/renderer/router/themeRouter.ts new file mode 100644 index 0000000..ac15189 --- /dev/null +++ b/src/renderer/router/themeRouter.ts @@ -0,0 +1,12 @@ +// 根据主题设定,加载对应主题的路径表(注意,本处主题指的是引用的UI组件库形成的一套主题) +import Paths from "@theme/router/index-theme"; + +/** + * meta : { + title: '菜单名' + icon: '菜单图标;根据自己的UI模板来定,用图标样式或者svg;留空则无' + roles: '所需权限角色;根据自己的角色权限系统来配置角色名数组;为安全起见,留空则全部不可访问,设置了guest的才是允许游客访问的,设置了admin的是只允许admin访问的(优先级最高)' + } + */ + +export default Paths; diff --git a/src/renderer/store/index.ts b/src/renderer/store/index.ts new file mode 100644 index 0000000..a07f5c1 --- /dev/null +++ b/src/renderer/store/index.ts @@ -0,0 +1,28 @@ +import theme from "echarts/types/src/theme/dark"; + +/** + * 自定义加载store模块 + */ +// 本方法不建议使用,因为会加载modules下所有文件,要求所有文件无错,否则不能继续 +function loadModules() { + const context: any = import.meta.glob("./modules/*.ts", {eager: true}); + const modules: any = {}; + let keys = Object.keys(context); + for (let key of keys) { + if (key === "./index.ts") return; + let module = context[key]; + let name = key.replace(/(\.\/modules\/|\.ts)/g, ''); + modules[name] = module + } + return modules +} + +// let store = {}; +//指定导出 +// import {useAppStore} from "@store/app"; +// import {useStoreTheme} from "@store/theme"; +// +// store['app'] = useAppStore; +// store['theme'] = useStoreTheme; +const store = loadModules(); +export default store; diff --git a/src/renderer/store/modules/app.ts b/src/renderer/store/modules/app.ts new file mode 100644 index 0000000..a16e821 --- /dev/null +++ b/src/renderer/store/modules/app.ts @@ -0,0 +1,31 @@ +import {defineStore} from "pinia" + +const state = () => ({ + sidebarStatus: { + opened: !+localStorage.getItem('sidebarStatus'), + withoutAnimation: false + }, + device: 'desktop' +}) + +export const useStoreApp = defineStore({ + id: 'app', + state, + actions: { + ToggleSideBar() { + if (this.sidebarStatus.opened) { + localStorage.setItem('sidebarStatus', String(1)) + } else { + localStorage.setItem('sidebarStatus', String(0)) + } + this.sidebarStatus.opened = !this.sidebarStatus.opened + }, + CloseSideBar({withoutAnimation}) { + localStorage.setItem('sidebarStatus', String(1)) + this.sidebarStatus.opened = false + this.sidebarStatus.withoutAnimation = withoutAnimation + } + } +}) + +export default useStoreApp; diff --git a/src/renderer/store/modules/permission.ts b/src/renderer/store/modules/permission.ts new file mode 100644 index 0000000..0b656a6 --- /dev/null +++ b/src/renderer/store/modules/permission.ts @@ -0,0 +1,100 @@ +import {defineStore} from "pinia" + +// 需要在头部传入路由表并且在用户登录的时候进行此操作 +// 引入路由表 +import {constantRouterMap, asyncRoutes} from '@/router' +import {usePermissionStore} from "@theme/store"; + +/** + * 通过meta.role判断是否与当前用户权限匹配,此处也可以根据自己的需求进行修改。 + * 只要权限数组有相同项,即视为通过 + * 为安全起见,未配置meta相关参数的则视为无权限 + * @param roles 权限数组 如 ['admin','edit'] + * @param route 要判断的路由 ['edit','guest'] + */ +function hasPermission(roles: any[], route) { + // console.log(roles, route) + if (route.meta && route.meta.roles) { + // console.log(route.meta, roles.some(role => route.meta.roles.includes(role))) + return roles.some(role => route.meta.roles.includes(role)); + } + return false; +} + +/** + * 递归过滤异步路由表,返回符合用户角色权限的路由表 + * @param routes 需要筛选的路由表 + * @param roles 权限 + */ +function filterAsyncRouter(routes: any[], roles: any[]) { + let res = [] + if (!roles) return res; + routes.forEach(route => { + let tmp = {...route} + + if (hasPermission(roles, tmp)) { + if (tmp.children) { + tmp.children = filterAsyncRouter(tmp.children, roles) + } + res.push(tmp) + } + }) + return res +} + +// function canPath(roles:any[], path:string) { +// +// return false; +// } +// +// function filterAsyncPage(roles:any,path:string){ +// let res = [] +// if(!roles) return res; +// asyncRoutes.forEach(route => { +// let tmp = { ...route } +// +// if (hasPermission(roles, tmp)) { +// if (tmp.children) { +// tmp.children = filterAsyncRouter(tmp.children, roles) +// } +// res.push(tmp) +// } +// }) +// return res +// } + +export const useStorePermission = defineStore('permission', { + state: () => ({ + routers: [], + }), + actions: { + GenerateRoutes(roles: any) { + //按角色分配可用路径(注意用户角色值是数组,路径适用角色也是数组) + return new Promise(resolve => { + let accessedRouters = []; + // 在这里当是管理员权限时,就给予所有的路由表 + // roles是传入的文本时 + if (roles === 'admin') { + accessedRouters = asyncRoutes + } else { + // roles是传入的数组时 + accessedRouters = filterAsyncRouter(asyncRoutes, roles); + } + this.routers = constantRouterMap.concat(accessedRouters); + resolve(this.routers) + }) + }, + ResetRoutes() { + return new Promise(resolve => { + this.routers = [] + resolve(true) + }) + }, + checkRoute(roles: any, path: object) { + //检查路由权限 + return hasPermission(roles, path); + } + }, +}) + +export default useStorePermission; diff --git a/src/renderer/store/modules/template.ts b/src/renderer/store/modules/template.ts new file mode 100644 index 0000000..14eed82 --- /dev/null +++ b/src/renderer/store/modules/template.ts @@ -0,0 +1,26 @@ +import {defineStore} from "pinia"; + +interface StateType { + testData: string; +} + +export const useStoreTemplate = defineStore({ + id: "template", + state: (): StateType => ({ + testData: localStorage.getItem("testData") || "", + }), + getters: { + getTest: (state): string => state.testData, + getTest1(): string { + return this.testData; + }, + }, + actions: { + TEST_ACTION(data: string) { + this.testData = data; + localStorage.setItem("testData", data); + }, + }, +}); + +export default useStoreTemplate; diff --git a/src/renderer/store/modules/test.ts b/src/renderer/store/modules/test.ts new file mode 100644 index 0000000..98b59ec --- /dev/null +++ b/src/renderer/store/modules/test.ts @@ -0,0 +1,25 @@ +import { defineStore } from 'pinia' + +interface StateType { + testData: string +} + +export const useStoreTest = defineStore('StoreTest',{ + state: (): StateType => ({ + testData: localStorage.getItem('testData') || '' + }), + getters: { + getTest: (state): string => state.testData, + getTest1(): string { + return this.testData + } + }, + actions: { + TEST_ACTION(data: string) { + this.testData = data + localStorage.setItem('testData', data) + } + } +}) + +export default useStoreTest; diff --git a/src/renderer/store/modules/theme.ts b/src/renderer/store/modules/theme.ts new file mode 100644 index 0000000..f45e592 --- /dev/null +++ b/src/renderer/store/modules/theme.ts @@ -0,0 +1,25 @@ +import {defineStore} from 'pinia' + +interface StateType { + theme: string +} + +export const useStoreTheme = defineStore('theme', { + state: (): StateType => ({ + theme: localStorage.getItem('_LOCAL_THEME_') || 'default' + }), + getters: { + getTheme: (state): string => state.theme, + getThemeTest(): string { + return this.theme + } + }, + actions: { + Set(data: string) { + this.theme = data + localStorage.setItem('theme', data) + } + } +}) + +export default useStoreTheme; diff --git a/src/renderer/store/modules/user.ts b/src/renderer/store/modules/user.ts new file mode 100644 index 0000000..b19486b --- /dev/null +++ b/src/renderer/store/modules/user.ts @@ -0,0 +1,131 @@ +import {defineStore} from 'pinia' +import hi from "@/utils/hi"; + +interface StateType { + info: object, + roles: any[], + hasLogin: boolean, + // token: string, + // tokenExpired: string +} + +const uuid = hi.uuid; +const userInfoHistory = hi.storage.get('userinfo') || {}; +// 用户accessToken +const token = hi.storage.get('userToken') || ""; +// 用户accessToken的过期时间(毫秒级) +const tokenExpired = hi.storage.get('userTokenExpired') || 0; + +//判断是否登陆 +function hasLogin() { + //Object.keys().length 判断对象长度,用以检测对象是否为空 + if (!Boolean(Object.keys(userInfoHistory).length)) return false; + let timestamp = Date.now(); + return tokenExpired >= timestamp; +} + +const username = userInfoHistory?.username || ""; +const uid = userInfoHistory?.id || 0; + +/** + * 设置用户权限角色 + * guest: 访客 + * admin: 管理员 + * edit: 编辑 + */ +function setRoles(data = null) { + let user = data || username; + if (!hasLogin()) return ["guest"]; + let roles = []; + if (user.includes('admin')) { + roles.push("admin"); + } + roles.push("edit"); + return roles; +} + +const store = { + //是否已经登录 + hasLogin: hasLogin(), + //用户信息 + info: userInfoHistory, + //用户权限 + roles: setRoles(), + token: token, + tokenExpired: tokenExpired +} + +/* +* userinfo结构 +* uuid : 用户UUID(未登陆时为0,新用户会随机分配一个) +* uid: 数据库内id字段,该字段用于与服务器的交互,标明用户ID +* info: 数据库传回的完整用户数据 +* token: 用户access_token +* tokenExpired: 用户access_token过期时间(毫秒) +* username: 用户名 +* roles: 用户权限角色 +* */ +function userinfo() { + return { + uuid: uuid, + uid: uid, + username: username, + roles: setRoles(), + token: token, + tokenExpired: tokenExpired, + } +} + +export const useStoreUser = defineStore("userinfo", { + // state: (): StateType => store,//store中子键与interface中声明的不一致时,用该方法一并重新申明 + state: (): StateType => (store), + getters: { + info: (state): object => state.info, + roles(state): any[] { + return userinfo().roles; + }, + hasLogin(state): boolean { + return state.hasLogin; + } + }, + actions: { + /*传入用户数据并设置*/ + Set(data: string) { + this.info = data + hi.storage.set("userinfo", data) + }, + /*更新登陆状态*/ + login(state, data) { + return new Promise((resolve, reject) => { + //将原有信息与新传来的参数进行合并 + let _info = state.info; + state.info = {..._info, ...data}; + //设置为已经登录 + state.hasLogin = true; + //存储最新的用户数据到本地持久化存储 + hi.storage.set("userinfo", state.info); + // 将传入的token、tokenExpired写入更新 + let token = data.token ? data.token : false + if (data.token) { + hi.storage.set("userToken", data.token); + hi.storage.set("userTokenExpired", state.info.tokenExpired); + } + //更新权限 + setRoles(data.username); + resolve(state) + }) + }, + + logout() { + return new Promise((resolve, reject) => { + //清除相应缓存 + hi.storage.set("userinfo", {}); + hi.storage.set("userToken", ""); + hi.storage.set("userTokenExpired", 0); + resolve(true) + }) + } + } +}) + +export default useStoreUser; diff --git a/src/renderer/styles/custom-title.scss b/src/renderer/styles/custom-title.scss new file mode 100644 index 0000000..fa99f72 --- /dev/null +++ b/src/renderer/styles/custom-title.scss @@ -0,0 +1,9 @@ + // 降低消息高度 + // 当启用自定义标题时使用 + .el-message { + top: 50px !important; + } + + .el-notification { + top: 38px !important; + } \ No newline at end of file diff --git a/src/renderer/styles/index.scss b/src/renderer/styles/index.scss new file mode 100644 index 0000000..95b253a --- /dev/null +++ b/src/renderer/styles/index.scss @@ -0,0 +1,79 @@ +@import './transition.scss'; + +html, +body, +#app { + width: 100%; + height: 100%; +} + +body { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; + margin: 0; + padding: 0; +} + +html { + box-sizing: border-box; + + ::-webkit-scrollbar { + width: 6px; + height: 6px; + background-color: transparent; + } + + ::-webkit-scrollbar-track { + background-color: transparent; + } + + ::-webkit-scrollbar-thumb { + border-radius: 10px; + background-color: #555; + } +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +div:focus { + outline: none; +} + +a:focus, +a:active { + outline: none; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + text-decoration: none; +} + +.clearfix { + &:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } +} + +//main-container全局样式 +.app-main { + min-height: 100% +} + +.app-container { + padding: 20px; +} diff --git a/src/renderer/styles/mixin.scss b/src/renderer/styles/mixin.scss new file mode 100644 index 0000000..601d7a0 --- /dev/null +++ b/src/renderer/styles/mixin.scss @@ -0,0 +1,27 @@ +@mixin clearfix { + &:after { + content: ""; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + &::-webkit-scrollbar { + width: 6px; + } + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + diff --git a/src/renderer/styles/transition.scss b/src/renderer/styles/transition.scss new file mode 100644 index 0000000..c4d47ad --- /dev/null +++ b/src/renderer/styles/transition.scss @@ -0,0 +1,32 @@ +//globl transition css + +/*fade*/ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/*fade*/ +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all .5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all .5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/src/renderer/theme.ts b/src/renderer/theme.ts new file mode 100644 index 0000000..3477147 --- /dev/null +++ b/src/renderer/theme.ts @@ -0,0 +1,4 @@ +const _LOCAL_THEME_ = localStorage.getItem("_LOCAL_THEME_"); //notheme,default,…… +export default () => { + return _LOCAL_THEME_; +} diff --git a/src/renderer/themes/_single/App.vue b/src/renderer/themes/_single/App.vue new file mode 100644 index 0000000..1d71d5a --- /dev/null +++ b/src/renderer/themes/_single/App.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/renderer/themes/_single/router/index.ts b/src/renderer/themes/_single/router/index.ts new file mode 100644 index 0000000..b51ed78 --- /dev/null +++ b/src/renderer/themes/_single/router/index.ts @@ -0,0 +1,81 @@ +/** + * 全路由表(主题目录内的路由,仅需要返回数组即可,交给主框架进行路由重组) + * 必须依照以下格式配置 + * :path表示的是路径,如”/“或"/login"或”/redirect/:path(.*)“ + * { + * ":path":{ + * component:"视图组件", + * meta:{ + * hidden: bool 是否隐藏 + * title: '页标题', + * icon: '图标配置,根据自己的主题来自行定义', + * roles: ['guest'] 权限角色组 + * }, + * children:{} 子路径,配置方式与父路径的要求是一样的 + * } + * } + */ +const paths = { + "/login": { + path: "/login", + component: () => import("@/themes/_single/views/Login.vue"), + meta: { + hidden: true, + title: "登陆", + icon: "", + roles: ["guest"] + } + }, + + "/dashboard": { + path: "/dashboard", + component: () => import("@/themes/_single/views/LandingPage.vue"), + // 用于 keep-alive 功能,需要与 SFC 中自动推导或显式声明的组件名称一致 + // 参考文档: https://cn.vuejs.org/guide/built-ins/keep-alive.html#include-exclude + meta: { + hidden: false, + title: "dashboard", + icon: "homepage", + affix: true, + keepAlive: true, + roles: ["admin", "guest"] + } + }, + + "/ctms": { + path: "/ctms", + component: () => import("@/themes/_single/views/Browser.vue"), + meta: { + hidden: true, + title: "", + icon: "", + roles: ["guest"] + } + }, + + "403": { + path: "/403", + component: () => import("@/views/403.vue"), + meta: { + hidden: true, + title: "", + icon: "", + roles: ["guest"] + } + }, + + "404": { + path: "/404", + component: () => import("@/views/404.vue"), + meta: { + hidden: true, + title: "", + icon: "", + roles: ["guest"] + } + }, + + +}; + +export default paths; diff --git a/src/renderer/themes/_single/views/Browser.vue b/src/renderer/themes/_single/views/Browser.vue new file mode 100644 index 0000000..d2c9e47 --- /dev/null +++ b/src/renderer/themes/_single/views/Browser.vue @@ -0,0 +1,403 @@ + + + diff --git a/src/renderer/themes/_single/views/LandingPage.vue b/src/renderer/themes/_single/views/LandingPage.vue new file mode 100644 index 0000000..1d2d358 --- /dev/null +++ b/src/renderer/themes/_single/views/LandingPage.vue @@ -0,0 +1,462 @@ + + + + + diff --git a/src/renderer/themes/_single/views/Login.vue b/src/renderer/themes/_single/views/Login.vue new file mode 100644 index 0000000..9940219 --- /dev/null +++ b/src/renderer/themes/_single/views/Login.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/src/renderer/themes/default/App-theme.vue b/src/renderer/themes/default/App-theme.vue new file mode 100644 index 0000000..81f4969 --- /dev/null +++ b/src/renderer/themes/default/App-theme.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/renderer/themes/default/App.vue b/src/renderer/themes/default/App.vue new file mode 100644 index 0000000..c1a06b9 --- /dev/null +++ b/src/renderer/themes/default/App.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/renderer/themes/default/assets/icons/api.svg b/src/renderer/themes/default/assets/icons/api.svg new file mode 100644 index 0000000..0181bdd --- /dev/null +++ b/src/renderer/themes/default/assets/icons/api.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/backtop.svg b/src/renderer/themes/default/assets/icons/backtop.svg new file mode 100644 index 0000000..f8e6aa0 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/backtop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/captcha.svg b/src/renderer/themes/default/assets/icons/captcha.svg new file mode 100644 index 0000000..8b1da30 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/captcha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/cascader.svg b/src/renderer/themes/default/assets/icons/cascader.svg new file mode 100644 index 0000000..57209bf --- /dev/null +++ b/src/renderer/themes/default/assets/icons/cascader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/client.svg b/src/renderer/themes/default/assets/icons/client.svg new file mode 100644 index 0000000..7373b3d --- /dev/null +++ b/src/renderer/themes/default/assets/icons/client.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/close.svg b/src/renderer/themes/default/assets/icons/close.svg new file mode 100644 index 0000000..e99c978 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/close_all.svg b/src/renderer/themes/default/assets/icons/close_all.svg new file mode 100644 index 0000000..2005198 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/close_all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/close_left.svg b/src/renderer/themes/default/assets/icons/close_left.svg new file mode 100644 index 0000000..fc5cf71 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/close_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/close_other.svg b/src/renderer/themes/default/assets/icons/close_other.svg new file mode 100644 index 0000000..27ffc32 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/close_other.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/close_right.svg b/src/renderer/themes/default/assets/icons/close_right.svg new file mode 100644 index 0000000..b96dc1c --- /dev/null +++ b/src/renderer/themes/default/assets/icons/close_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/dict.svg b/src/renderer/themes/default/assets/icons/dict.svg new file mode 100644 index 0000000..db60220 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/dict.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/document.svg b/src/renderer/themes/default/assets/icons/document.svg new file mode 100644 index 0000000..aaa0574 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/download.svg b/src/renderer/themes/default/assets/icons/download.svg new file mode 100644 index 0000000..a8077dc --- /dev/null +++ b/src/renderer/themes/default/assets/icons/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/edit.svg b/src/renderer/themes/default/assets/icons/edit.svg new file mode 100644 index 0000000..82152b5 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/eye-open.svg b/src/renderer/themes/default/assets/icons/eye-open.svg new file mode 100644 index 0000000..b80fd2b --- /dev/null +++ b/src/renderer/themes/default/assets/icons/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/eye.svg b/src/renderer/themes/default/assets/icons/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/fullscreen-exit.svg b/src/renderer/themes/default/assets/icons/fullscreen-exit.svg new file mode 100644 index 0000000..2452f2b --- /dev/null +++ b/src/renderer/themes/default/assets/icons/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/fullscreen.svg b/src/renderer/themes/default/assets/icons/fullscreen.svg new file mode 100644 index 0000000..4b6ee11 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/github.svg b/src/renderer/themes/default/assets/icons/github.svg new file mode 100644 index 0000000..1adfa4e --- /dev/null +++ b/src/renderer/themes/default/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/homepage.svg b/src/renderer/themes/default/assets/icons/homepage.svg new file mode 100644 index 0000000..1e1feab --- /dev/null +++ b/src/renderer/themes/default/assets/icons/homepage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/indent-decrease.svg b/src/renderer/themes/default/assets/icons/indent-decrease.svg new file mode 100644 index 0000000..1507568 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/indent-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/ip.svg b/src/renderer/themes/default/assets/icons/ip.svg new file mode 100644 index 0000000..087f3bb --- /dev/null +++ b/src/renderer/themes/default/assets/icons/ip.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/language.svg b/src/renderer/themes/default/assets/icons/language.svg new file mode 100644 index 0000000..e754062 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/link.svg b/src/renderer/themes/default/assets/icons/link.svg new file mode 100644 index 0000000..15a5c62 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/lock.svg b/src/renderer/themes/default/assets/icons/lock.svg new file mode 100644 index 0000000..470d48c --- /dev/null +++ b/src/renderer/themes/default/assets/icons/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/menu.svg b/src/renderer/themes/default/assets/icons/menu.svg new file mode 100644 index 0000000..f5875d3 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/message.svg b/src/renderer/themes/default/assets/icons/message.svg new file mode 100644 index 0000000..deacdc3 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/message.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/monitor.svg b/src/renderer/themes/default/assets/icons/monitor.svg new file mode 100644 index 0000000..f153b9c --- /dev/null +++ b/src/renderer/themes/default/assets/icons/monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/moon.svg b/src/renderer/themes/default/assets/icons/moon.svg new file mode 100644 index 0000000..1b66489 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/peoples.svg b/src/renderer/themes/default/assets/icons/peoples.svg new file mode 100644 index 0000000..5b21639 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/peoples.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/project.svg b/src/renderer/themes/default/assets/icons/project.svg new file mode 100644 index 0000000..eaf6a12 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/project.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/publish.svg b/src/renderer/themes/default/assets/icons/publish.svg new file mode 100644 index 0000000..d41061f --- /dev/null +++ b/src/renderer/themes/default/assets/icons/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/pv.svg b/src/renderer/themes/default/assets/icons/pv.svg new file mode 100644 index 0000000..cd7da06 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/pv.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/refresh.svg b/src/renderer/themes/default/assets/icons/refresh.svg new file mode 100644 index 0000000..e598ed1 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/role.svg b/src/renderer/themes/default/assets/icons/role.svg new file mode 100644 index 0000000..5d25278 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/role.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/security.svg b/src/renderer/themes/default/assets/icons/security.svg new file mode 100644 index 0000000..0e64336 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/setting.svg b/src/renderer/themes/default/assets/icons/setting.svg new file mode 100644 index 0000000..fbc4945 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/setting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/size.svg b/src/renderer/themes/default/assets/icons/size.svg new file mode 100644 index 0000000..f92f852 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/sunny.svg b/src/renderer/themes/default/assets/icons/sunny.svg new file mode 100644 index 0000000..655a72e --- /dev/null +++ b/src/renderer/themes/default/assets/icons/sunny.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/system.svg b/src/renderer/themes/default/assets/icons/system.svg new file mode 100644 index 0000000..2e6045b --- /dev/null +++ b/src/renderer/themes/default/assets/icons/system.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/table.svg b/src/renderer/themes/default/assets/icons/table.svg new file mode 100644 index 0000000..1a16abb --- /dev/null +++ b/src/renderer/themes/default/assets/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/todolist.svg b/src/renderer/themes/default/assets/icons/todolist.svg new file mode 100644 index 0000000..f48e667 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/todolist.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/tree.svg b/src/renderer/themes/default/assets/icons/tree.svg new file mode 100644 index 0000000..51aea8f --- /dev/null +++ b/src/renderer/themes/default/assets/icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/user.svg b/src/renderer/themes/default/assets/icons/user.svg new file mode 100644 index 0000000..0015cc4 --- /dev/null +++ b/src/renderer/themes/default/assets/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/themes/default/assets/icons/uv.svg b/src/renderer/themes/default/assets/icons/uv.svg new file mode 100644 index 0000000..c5be7eb --- /dev/null +++ b/src/renderer/themes/default/assets/icons/uv.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/icons/visit.svg b/src/renderer/themes/default/assets/icons/visit.svg new file mode 100644 index 0000000..8e693ec --- /dev/null +++ b/src/renderer/themes/default/assets/icons/visit.svg @@ -0,0 +1 @@ + diff --git a/src/renderer/themes/default/assets/images/401.gif b/src/renderer/themes/default/assets/images/401.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c930e72a698889a0f5666d8599652c5808cfc70 GIT binary patch literal 162867 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 z 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�Q#E@9P%v zYRdljhAS1&SBL}f5ZmoArvEwzu>i!t9wCkPpPy#N74dqF`oGuA0=}(5{%pm{#0{$s z?Elq*@=&)%UjFk(Jyl3l1KNxJ>-FMM#20nLXcdSxs*1q=wRrfn&DD+E(?29MOpnsp zOxl(5fmb-;^@0yVX%bC%pvNYp$#PM~Ejr`ZQyQ5dB*#`1h$j-VX!`J6vcZGVsB-1Cr zo4dDck;;lCk>9y|`?~eCY6^$%nh*m`j$(#OOxR;vlr0lZE9cN7HVmaxz)^+VZlhe0 zk1#tGCH76wL`9mdwB*iS7wY|+M-+bFeJ>VWBcj@B*l~Tm)@$W}cp%GHT4efiZ7el( ze*d+!<(*G*+}1-TGaXj-XIGDc<7RjUB*L#)Bf{TwM(PfQ#?@Ao=PMF(ZeNJbU?Trw9uQiRrZ3w_35fiRnZ3dnB9Gvv3JqQc}8-F zyUV}Xm!71V{qD_8?@I`slQ*WJp^@l1c0;;1;;1RavsFB)kn$#8;&%o|;qxX7{@#+$ zCR0S2gOs`m>2cX0P-nMhmE`Ybp7N)jLa_y&JM3Wro%k#~0>2KD5R96$0)(Jn927p2agsyEER#ymlC_XZOd5hGHQ>Nz1IGvq0C-)p;K?K; z@8MB{lLEXf7Dg~2LmV<;f)kI-Z9aq176zhIir?~Obj zxW6~*G+(gyk3hXpg8WD{==Nxk;@a(jFx@MXJyFzHG}IMZYz2Wc@0K6Wz}NvGl^EWG z0dnv82||PC86_cvh79;s?vWRKE4qsIHcNc2jCjC|an%1QqyxbKO zJzPw!(>x*p$y6xvfLd47N|%hS3g3nl|n}?R>2>>Fj?XHvp6lskHQU%?QZ z%GBE_M^KP@V)zV-P7ZD?FlDcov?gxEwdc#(qqk-hDOk`!NSVb z`<0LNc?uJG3awk9l~IHg?1ieHyS5id+J`-VX+T2eiObG$g58b1{Wt;qW7dyOvyKl1 z|Cps?9Bkb!-!?RIp#t#tC_EFJy36tl?^C|+87M_PbS6Q47@SBZZN)lMBy>$Kd80l# zk5w;kI>TmOQH*aL-Y5OyP13oG(4NL8CczJgcpFS9DC?X^*pMs}>nJn`pm(jaRzf^H z8D!_Id%mJ%P5^YAk9u#Wss5X9W!|G(lpG^&G!?00 zF1izaRZjVJt5Rz5M)nYdRm9W%Amc`c(APH~g$m3#mopSS4B2&15D2dbdAKZD@`*oK zDO&vOu(EA?-ZbZpEv(4O;NgYNG0hqg`_M2kidaEN+k;q)CjpBp2%tx?F9jd09c4S5 z{p2WDbOj^jw@6*Nw?lrVcK`Ei_s=xAKhY^ayY#vEy&nLPMC(iFuLOlk6xgLt5)_tW zh*K1(RIMkyzzfw$Z^ow!ldqV)xu<;C4AE1*+?gPN<}Y6`^&qX|HnR~bR6;|689e~9 zx~QZFCZk~8068RB;7;1vYM}~D>R1DS(Rc;{g%5d$Q6U7ex*E9_*Uo4OM`9z7Y+CyO zldkNx7~5VbI_`d|`y9hvqg{4Yb0i$C=1f${l|=l*St}Vp@_veX*d}b1nlplk^|eJY zgr^5+mRM)dYhs&?872X%7jQW*_Lo5l@;sTop1I@Mw$G8{LC-1GZJ)t0E)lubm2sMo zN|~qAu5Y7u`Eqf^$}6v1IP+FYI>eX%aA?2xdm=7+;gWmBh^7rU5}v?t0Rat&heGC( z{IAt;)Gpd1H^M@I%K3gN8OXjjAG(;A`H}#VnBE`yjvy~&K0D1QZsP+=k^k$@1cgR= zt6vEUUz>k+Y4&J4uuEs#@t9`3m=r)Nc1jcME z`cd>%&7+TmGZOeu>I8VcOVTM_{3 z0?9-|G&2hbh7CA-9+il+Go%k+!952?$~V6YLo|>mJnBA$adVj;dIFktMn{ zyOp*4+wfE8K(k!35Ge*EH|B_J?20y?0F83d zgf#pHz0-G(VCAooyl8+xMTf9#;yu8KcWWIsBs#TlP2}b>u)^m~-0ld#6i6TtpA?kk zpoE7s2_V^LLSacSO+Bn`u(D}P?n8f-%OuZGC4iNJcwW{fkjFgIHY@pM+krH_e1fyQ~Jj zGGSwMV`gAX2Ma@On#kWkLpUW{Va!XS1@iKuR>1p@W`G~X;7ftgTs@OLtG4FG)c%4a5=e8QvEZq?%+A2 zR>2*e%%GEVMi^z9WoGu<#wITEXzRGw&0S5TZ8nsqiQNOaFp5H}s!p)GwvJeJ^iM8$ z4bO}g&o6E~o=$h9`22PM>6Z$}4vecbffzWJdO^KDROdcQd zT_ctj(A<2Lt_6GCnhauwMhooSP1vkoo?)w{xM>~F^%w_t8LPyk5#RX)8>rrF5@FJ5 zV|zqn)!kU7?=8vUsw~FbFMOa3zNukIC7$PmC3Ul4(;R)Go{fbk z1nlazH*++LbM1j6Z{7Szg-zSS+TEq)B0Le_N^t`iHU6jWy4i`mk01tJL5^{sGBNlZ zHskpF2=giC)l%q@4MEnpA2S*vfs4ODC^kH?P{Wzuo?5ewLC2`{{OtY+F(pK>p8RX9p3X+)C#}7(0t@jE%P@w;g$3oxnEWIA7pCrbr&L_z<1P$Uf;k9kLfn$avnd zEttaBk>c4o^@HvwxtFJpA@Ky1z%1@vjsw&%nh7?homs~^cU(;_4-mkpDqCg7?hwY- zgjowiHHeHG7yA#}q!ukEm}-3z(318jD0?>_7eer*Li$^Wsq?3iKrI&+0sTvFC-K*O|cXdIQ!^(L+Xn?xc z)ex4$6)zd;P4p|0{QhDjMwWgI@F5``C@$1)pvVM#2}!Y0K8+mQ1{&U31ZemkEQ8aC z60FhBuS@0|9}Ad%RT52SUF`5__;eO`y_FTc+Sa0Q(N9AkzCSQJNG~rHM-uGPaQm#< ztEQ_LZUlu;v!l48D=TjDDIJ%58RNXJRLrC5(HTZLywW88=E-?GX=Dtijdn#*C>1~m z=Xh`0Cz^fjrmeP?-bWPr#yP@H;E!L!-x~2A@cqw?I1Dx;C&*9b{acm_cvp^+H~!_= z8Nts@PIOOvhwn%QUyF!XjN5?zvU8Xk2kswG??S z$T}2&JTVuF;>JCS*viJP>g3iZloj3mRc})qQDU6~<4G;UPbof6%!iQoI*rsXtUJM` z%A6=hH}j%`_2K2T3G;XMrIC`;zaQ)F3S&&Uk$D=G3UD56c0{*6>cAqE7) zk_q`UNTG4I>UdP6S)tUoUo^`myEU zS@lB$eus|oA2FA1*nKKJyLMWdT@^-LWx+s6YVQ7ZLc$+&!TuR^GmUg)-+Jw+s=t{# z`}W0-+n&3t{}B}S4?OYzpb-lz08n;TG}?(RObPG%lI4W7^$`RgO^o%~0AVP2W^G5Q zjt<~nP#OaWi(4XsiCc7Mve{8()!5}7v+7ELxnj)W}YLqX)JxR^z@T~ zTT`zr)hv4}I92a=?akdZ3)4qNK7Cqmkrdz1n#Jby1Az#0S4hoxrY9qLH&IJyI4LcV zGma_U;OqXZGqKXJnF}$1iOZPgIL&R1qeCK~NpXJ>t$xyo3m*Mo@C1OB>+aF@Q|J{k zm|+}0vMV=askCP<1btlG7lgWxBs7jcPY9)VbbtC3Cx|ko?4#M1SlFb$tSCEW2XXU@y#(1@Tv%T^&a;rnAS$V6o zW=y5D@Y3|Nd)=3gNw>R%yAw=(ImWykKJo?YfyZKU=b!Yc#aC|U^Vh(407D84e&DX- z*_|LRv**GPgx#vxAhc{$d@!~v2HSh~*jX5Q`{imm0NGyM8#AHyMYoE31c(Q?Y_0B1 z1rSd>&Addlw$$>3^kCeOcNJrs~v}1@`!s-vyf+Illzc&ACz6m0Ks5ax*)aWYKVsT zJ9(gIugmHpA^hcAx*`9oS0HOi$KR{+90Y0^p!+$z8)L~SXkaGJ768^nJfJkd)nhVd ztO5PR4@)mRKer$-rTG~`gC!y)$7ttM;ej2iYu{p(J!nSU35i<@bqLXJ2*wnsa?CXn z(`#M?D|b`SKJ~o#5YN|fIOHn~Xz+l!MNr9ta*@CTPQ~hk%&ZhX+4#doB!tU+3K?U4 zZNmg}3x;E%tx%HNkXOG&Jd;Xq67#k~{|TR;nF`x}kTow1E)Zx-g9i!+d4UbGAj6gT zuhz2}Qd6(}hteYQ;OcMdzJK*@TG^SW60x+F5t!(z}{^v3N2_(R{C#5Lg5 zMWZY2Hi8CcMobYG3qM-hkIS6t3$tmj^j(dOJ^Jj^E8dy&F&mI-<9rhog>}gFvFH0+ zP)z`kL((B9#PV;T+7I^OL}LM>$#V?0_P&Z~=9OK3wP9&iR$KlL9?b8!rFZT+2 z@@WeX9yvcXJZmt4N|hHOZJBj;e9ac`=CYEwr6lZAFGr?$9A(%l%bFU&Z}tP@4A1O{ zzhupjnoX6ZMtzCo>(O;>d39-7f8O&CMT0vt)Ya z$IN0=eepLRsP7MlZPoUt9qPf&f_>5_u z>Z^N&)o{lIjt`AS!uDqFTQja-_<>DE7h@X=Cy8WZX%P>`FIA4OnCg!9w-){#z5Il- z_zhHB8$%I#x**?+Qv}%x@E0zS=HwTyhzt!0y2Oc=bvO}R0NkYbX$+JR079?SbD<-O zC;=esD+0iWq|jo}&u>^N0Fk^@;rM6^I%>}6(0rT0$X%P$!{Ih`vX+T8J-%E5E^F8Q z<6jgySmMf^_cAbu;A(& zJ~%!DiF0su2fEz(E|3?78Lw9HhSbPZuEYs)y!mpHi}hdc<$pn0^gN#{!9d^fZ?*sE zvJ>e%7|R#w`nt9v(lPaeU-ZFy^82C{3g_P1^LTXmQeJ~y^^JPVBgBVlif*O@^@Jl0AU z#K)XmfU*IjZ;Kc0$q(k=c^hG8GrwFo+Q^(I2bODtzaOrbL|?hQ%69o2da;R3Z9D%0 zHU20R3V-0S(YNda^t`QBNn0u3!nlSjuMt&8ia)*kjiMsW@A5)N`#CIX=fR>uzDIFy z=-i&?7c%S)>K4n5#Bx}*$I$0Bu=>It6t>jJn@WENVMp?X=Dz=wq_tw)xD2(MW;Y)qM~F2|BclcnB)k2?cGgGs4;OF0)ekGWzjp4)yqJKN_j;vsA%70drrYWD|hZl`nK%u&{D>y4`3 z&JYaDQL$3~6gRw`DbabNGyIfvxSfS2%T<5%4?08jz+CMt<Nwt>3Cog(ZleI*{zLHyqxdIjd2bKMwfQ%x<78qFE5 zZyL(=`rYa3=SFfe#WMap#WYE0ByMh%{AnY>#IQ=R275WQG78x?{5)4Kx~e3{vpC1B zp6>)ISMoy4b?a|m#+R3#oGYKcEztA549w1P<5D1Tkp&%-AG!ww2HkSJ2|clv*NUA4?36T!+jvCSJZLgQA05_e9g|xk*-+rZD@c+-oDz7RbGsY#Cs{ z5!)BkSRnY|EWZ{lze>JYS=^3NS9jGLv5!V9{S@|!ugRMe^6s5V(~>;e-)-d9MUK7~ z--^&jrFa`R&}S{(+NR%>cW_Qyc~iSZr@?E_{b=qq&lW|K8gFpjGCpFGm_kR912-!Y zf}l3{xSujeyf#wZ*&Bp5u|tf!C#LRkyIi$3-;;JDS@mu8&hlXCz45NMe-mB&-=AVB zv_BQ)gzSP0pjAEqPArL6;0nShSP%L+8K3rJ#Yvzc)wH-&B(NZk_DP@x$JWrK4?R@G z^3;qmu#uezh>?3^eMf|bP6dn|z;#2Z4~5MmOAUQzqu$%JW^fz5$hjUia{6G#v7Kx# z{i%ujXU-?;ev&~6dDco<+(35u=Qu~(O-qcXy~HR4fDLD{5vCs`B))&1on`SbD2n@O zC{r9FEy^-?F*D)m(qb0Qn|CQYJ<4_|Cp+`EjfC4W2(_GthN~~aZ}b}QWpZug+#`Rf ziN)u?8$)Lz8|ZGZk+<^tyBBeeEUlEtqooRtk-bc=tK}n4mscw$y!qBDXQJ+{RV`%Z zt^Jnn*u=M9yWRgknPP51UMuv~tkL|Nm7H16N-98VX!Fg5X2#7j;en&<9P#<1dtH}4 zwTW~W{WvPklc9KP`%xj!?{RO|g-+2f)x7}QKJ>+#Z~8Kf0>yF+zFdAXAa zsKbyrHLiSECT+B27~YVGA9>W=S>9nEZ#X$Z2yP_fPqdzj_wlZeR)A14$Z4DzY40#5 zMjx~ffXWrgS^tYk!ZWl?s;RTw-fOAHvrLu?`z@ZYRM5~@Jhx4f?I>uD9q=k;0Gnk`gsY53G&Y)G%vxOKgW~U*#FnX8u zq38!MfVyBK?j?Q2Bq_g{WPx|P@3Qt&t#yL;U5++`1+N}LF`;SpmOKO~w8928{s3cK zcSr^Re)X|Ga&_yNL__42WtrD`_X$=)C)_C6X(44#qCV@ry*#Z|M zQt2wV8<)@G{Zi^vsjEP%jtfbkO8*i--rk~cKDAptMbqre{C>mod!azH^fV^WwL|KK za**qY**Uc*STvC^AQF(qLKxd3dO{00_V1e7+1h6@FJ;m>PM`6SAx+T$ zE&JyWI$BgAhZ@?%H0KD9o4dyl7|pzrkhR=s)fY|0FJ}1h(u!{`&2XR+j=v-USGT(~ zy&m8w?j$J?WMA>?UEzI3es)}ea#+Lb2Qod>>KG@{#DYsL%SEY3XI1u|-pQWO0m||r4|Lk1(w<%_@`$u-ppR78r5afe`mKXN6!~NB}Z;AtdnI;eKmREKb*gLj= z*)1-IzgsQ1JuO~T6T4c;^Y?2U#or9TII0lpw}OrIwtxJM7>D5fE}wW+3A>}bPNbU! z1{pAKp;%W5de6L*0odM1*gJ2LFuqZFxeLP>d+mW!*ZQ|(F@6eLO%h5GtgoNH_0xOW z6g~mr5s^}`AX5sIXjD=%j@;8MJ`tCd{SuXC9-5g`{MsDk?>_5iE`$=;5>O|(sgs~2y->{~kGOeK<$0-(`9XbXno;&xL5A1U}S0Tv;gd6QN|tgg1TR8HZlm@6`4qqO@&inQ)Q{3Dvhn?z*CEsuCb zbEOH`a>DozA7tsoPe#>CM(pG%<{ei?in(g!XcXC*r9LkuyJwhWKRZ+7`bpQI=2>#r z{YD{7N3G>9L){Qy9$D@0MYVCm@=SfpB7LQKza5i5RzjNVyY>G7# z1yiwQdt|fckfYi=orh-}jR~I8+0_Z9RIE3OnrCs_A65Rl2cQXvq(Lf(usDi^@XV!X z(9saiJmo`dEY9jnH${Z@;fAYE*k*n)hD?kVb#gMSWLHx%qOK`;1C9h3Um7xfgNt)kMlTR;as7~< zIV+4R*Ze~misugGQI`TfvYEv=)5Mvn+3E?b&vyv$(~P#Z!5Zy(#z*MbE@s61#Q=0A z*lwN7)!2`LLT&1+WeYf4Z0}KM2cZ@VCAN9%i}1tD*gW{fhqs?-FaE;Y z?LyV7Z*BWDvy|U_$~C(4Cda_+x$VI1aOBfL<>1c8IhM)ipAO4C>fG(Ie@7-d?9l!8 z>FDK8fqPvp>(3vJzaTzuJ0U@!>eT6R?t;^h-zjO^Y2h<3DrY>kxGj)7&*oKe4m+V;>x$y zQz35;e9ao)?)B9a9sf9b*HX4lx6S>U;ps{!2C#xfK0w20R|1a8yZ zNY`@vbMcYH_S>2tD3Fh{O#BQW?`Bg5)f<@UjSx2O6Q%Sk(yuF`!n zeC3U4tH*k$YCc+!Jg$6n=g5V)x+fR;1dNi|bXmUrAZ5+DcP)v9!Z z&+>WNP!TH|} zMt<&~PyhwV{PPY6x=x(!6qn*r>Z0rDA$0f=oqme&rtIF zV16qO6{1Cw1m?G5(-SmK@>@%dNi&Q|P_N5s-(H4Un^XAIH8zRDC<~1#BAdH=*vTu* zia!o?lfK7<*9?y5J#p~vnwU!&ZZ{j9U&Vb|GW8x?+j)Wiy4z_NQ1h|7922cxfcL#7uGH^(KRcp);Kdt!;PMfLXp`7Pp7pc9h`s{_b#g5C@rAiNT zNAbWd(eo+~9eS$YRQ2EdQYFwC7W-;1ujHcXx7<t$;CJ#$krNmj|A+?W+AZ?4Vm!>OsfG7Z{tNP(o5cP!GtA#kq&sUR5qrOHE$ver7LBGP@y*FMdyla|;8Xez7mT zV>{vyti1OneeBM~Y?t-#HsdcGk(EQK7t0#f7A3`|73iv^vSp|aE;?`fd ztk)6Wt^Jz!<-);wJKwR>ShLiF{gID1#xIUkX;EC>?QC}WHl)M1P(RbCd=u*h=C{5u z*YzmaK3Hlly7KLV?mce8B`)0Yk8fE;&4Y>V=g5%iSm~5?gN;&kD7*!{*bZ?+=#7_B zRpN=MPyl@yGlb2W<*FC*1+5)3k)o0e)uj-Rb0xI!vwHP(J;@y*bfhO{#x^orN7Wd~8UrE_mpwn85ZYbKAV zb1SyCNh^E|PLTn)Z(qN`Wg4QN5SBrGn+I!D-Wydp5^+KIpv4G`Kd)DnJ|A@%%)4vo;&$)Wd7{xqS`Ye?PMo*?(D~i9y_9m6jY!!(B#|<;ojCFJxeLd z(WVh(d0d)$YDZfkdFW%9OGE@~D8B$Z ze}iQM|N336v{C;1H}8GvQ?@O$94)Y-=wTUG$PH7WExaB$l%jQsSMI!Wp@T{Fr!OwN za%(rp)*dIHHc&B%PX9!^BJ@oXUCGO=zazv!t`{*H&wDD)aeEb*8Rk3axCktZEhya1 z>)am$WPI~AgR>8HKJD%W^`+V{%^rLvpwK3SL}^1uT+|=-YiUzwV!S5f6>Xe(KQN48 zgasILVG|+^v`^Dt*|?a}u$6_-Npo>(@pr-;kqL_tS=_{^NmZMtP3O*LcqS}!f9Tz8 zIbx3#yB%Q8LV<5eV!anGvM9%@*w!GCAT}t6XI91P$ z3+ueuUGDE8QwDb*aZp}^Jw64U%bl~M#MeS_$s6>ie$OiU4FXU?vi<}C;;2-Xg>Chf-4iArD#Ia(wMVvAKO{yXZ`E@D2LZM7^W)q8mJ8g_Qt9I%IbUK z*Hcu!dyEDndTHZKfsC@b8w(WaE#VwW$5RKdN@iQ^@9R}3#8O$F2^W<$?T{6+>Uv21 z@UW~BqgIU}RyX`(~q$oD4hqUnZ|!<5CH;{sHprpzJ|XOw0m{cqYZ zM(Am#&fX=&3}vw2g*sv*)6eoG#3Y^ufOxb1EKUpo-ewSDF(#g#XeD3Cn5;XiZc87Oska>8v|{apYas{fgly;{_Lo^VU`! zhcbSgm&kIbsI!^$HuH0ujJ=TLlo2FiZ!;5oL%C`u+{j2WJ?{9X&3uv-dG+ylYH*?B zV&<1XmnDayuIev^?}933ODa@dSBuBN=^wh5rq>Xto$1q-JS2Ty<6SC(xnSJ!2 zhLjI|@MqGM04E2{A-l?kGeJbaLK+tO>`jv38)YKUo0|5a-qiu>1Ply`x%=!e3oDR| z2c#LNNy5e4!3!n;OhfSP7vVMehzFP>%#fc4rFfCTUc5ciDWn)B`n6DKa5@#+nOGTZ zG25^RniP)HUacy&m~j84bS@$K>vE^@A!(k>8PHf|0xDt6hjz0-RSP$NTQAl^MVtRY z4px)XFS2%_9 zFM;zxSBi*)>dlIOXkn#@j1#}e0FY+=n>L?Aur~Qw(#td~34-E#DjV(oW`pvCf==O~6PdNX+0SVv1FC#+3qZ63% z$r+pJ*#+bI#TDJ<)xPzOEkCpV?TL^3-xLpZNDB86j7l3_Z{7QjSPYfeTBC`p={alC zEutE%ASstIP9IM<^U+CNlJ%TTQ?lxeJ64x$)g)|;qEC|(M0|>sVJ5!Ec{xnWsy*q7 zS{-RMSSw!|A1g`+i2TT7$u6-DFkummJbDwV~PAAG3!j5;b`PdA6KH8W$Guerg_lF;C= zXf7x~z|DxdX#xPADe{bhcd(ovpg9@1{DZURdI;cVh=j$WE5d222Ow%$Wf%G8e&Pc?F(XaNV<+jnuQu znT;}hx;Ptsl1mq39%VBZYn_=h7iR~?md9h7c;*ux_uGJel5;upNzZl{=aaESybCzb zf7$E*>dP^&_+JWV{`%JEKk4o9$!2J!maKO-t-HO`$_OlJU{|pvM1jQabvJf zvdICWL< zO5(Is2iaM0WAF5YhAAol*2D?-F*HQP#c?lv`Z=(>i&5v?s^7nmojX{<6}_lx^J9ij5D?QRwGJ`Y+$H9&3Bl@tdMg9csXpe-cJ z0gR9U3@hQc1PzLtfkg1L`54p6mG@R+xwGcjm^;YaCdoRt&~EuZy3@1u-=n`;(j6xC zepz|^l4!S|AkpHJ|DY3zb|)D9wNVKQB0yPR?Tc=Zi~{}JLAP5_)(4VNpdca`yp;j} zgFrGWHV#Ch;D1m`YFc_mW>$7iZeD&tVNvnxlG3s_)zo{x>I9Qb4zPm zdq-zichAS(Pko>J2L^|Rzl@BIjZaKYP0!5E%`Yr2Ew8Mut#5qY+}hsR-P=Eih7J#^WJGI%lVY0p7!tRPB)TNs!C?t zV?^$abyStkcjILJnQm5>Eq=<@$}{S$ezQDK{PKE!h;ex-j2LRIj+y}Q<^)jgeH_}Y z(S*=5T=2>Y`YSa=;s@0RqnEo!Z9;{0_B}l26w`f{{U7c%1sfNFx_Qw|-tMo;9)Ai+ zzWH42u$XiP|04x>Hw78gMI1j9pBR9+(#H%CL#hxPXAldWIPCqi8@ks#UG&VE;Y4;y z9$t(vT{kEtVyYX`8;DCLN9v&Q3iPNDv|lXBN!AlVnuYghcdA6&6RX4hf<;g^NMLo; zn4M>u!^R^#i`NPk13~DNAk> zbI2JiH^amVd1;RV-)dPO$VR>CQ}|seM09dQh62ZS>`96Av|P`7J22V#?Y_}JEfEUp zIvhp`OveLDW&2TG8wTclh+{vLOpiQ z5THAW=aCV;Q<$|E^ePYgVC?_(5;1E}x>-}c`la&G@>pk0#rpqxSxaFpwn1B8hk;Jhe6i-8OU9_xxLnaINhV`pIh=%w`#nS_s?;<}ILO$<6RqHZ#X|PAWg^VW7cz-4-rRv2oW`fQd~QF*nEPm7 zkVRvOVbzdu*YcQ5!W%44XaGV_{jONw5+_K8Q+1kE#%bkhOAt&WDN+-XB(ko)jIuQa z!p5|+a+ynpyTK`*n=W;>Kh7+3l_n&&@G29APXZ3wqXEQNq+JvQj=|pt08-b^z;-Af zI&ZMY;C@c6>DF?2?ru(J%tWpW@5MTMg9~9ezqs+5jiz|D(974p$(G=VnDgcDcpKDb z_Oi~HRGcwhxNxyi;fsemaYDO=C+xNs`&(6dlJn&QaNktrbQ$^$#kwop`1iNv{#1c{ zpywbIl6FFp;8;#ZQ4$tL_Mpj6dtH7sYJYQvA>B?ms5e@jn|)r&rMkBfjTJ+&JO)$P`Y(VtTCRA~KWP zw+m(f1#aYB{@()U|H5ecx7XcIE0e3%P#r=%i2WF`k%|Behdw4l!kKR=Al6WLHyRe4 zF$I|>EhRt#rNnAblJ%INkk|#(D|v35x-5cQa0&$#f1E;zWPZ{E5y-SQy#}jnkqaQ2 z9Q1@zP|cW8qr1>(C__1$Y0!1<9(EFO@k&-HkxM3QkrOfSNK$E;9Jw%liCgY5A7gwu zk!mt57NlAX=t(j1US@op=!@&_w;r*Ag9})x>mwKdq1!wiPG7iAwpd|YEkwK zxoYv6m6aA(2vKo1fk*rc};{3=URSfO<`NY=CH=5AEK4n2MggFQ^=uPXavU;P_I_-ov0 zx5oVPrdV}(6^Z&=HFZvP4qatPr5j0iEQMZY1!M;=vw zAVN;Q#uG&Np}E8NwQN`Se+?1-UD<)-?w^$1AO{2-cOHyz=LWVDK=|jfL-de?h){#B zivPoD>xeJr5TI?#QqdpCW@W0y=64I6jpe+0jUCD7A~j-Vp`Gged8;eND(U zBqcVCU&y&3T!5p8ol?4v1|O+MmD39`q)Pz;xL8n`F-{rjX4FWGJQc)>A(Vp*PBSql zV|*nAh~OIhXbw0sm1QJ}q=s-JT!%};$#i5=@S%d}!zdZ&OAOfvxKcGmtT5@4bqX1y zAdpPJpBoaZdD%cFE>1z)h6Y*r8LP+df}l)z$orK$nYO^jE0^KzVIEK`!@fcr9LGxu zBsqL!%gQ3}$v=hM=FUq(!%i?N0V6ZM%tHGN7D$ES@~;@r9X6$v4-=r@V6|NrFB9Ou zD83o!m&HddRkPT?-b7)5cTPU{rhVaDjJF`;{SpFNnttl%@z?dMrVFKKBa0?4zklu;0K2(vJyKsY8F4hgBH(Irm!rdGqck+0px!}qzc`=-Th07At6 zCvNgh-ybE50{9s~!vmV%6b0-*mpEGm+rL`k{t}^D8?%8W`_i-GpDuCE6utotBwAE~ ze_GyrWBUM_>@uE>mM)jhs;o6;M7p;)3Ilq=T)ft}cCO42`;=Qx9!u>Cn zIDG*^C1w<#ae*(yN*;yU5W8jwe>z?NHon4BtHgdC`41G+|5GLVyPb@mHvaAf#vWa5 z0FJ|wLDL)i0LTgouPhJgNuz*tEQAMM<1W@!gOT!hLIq3u(ka!KX3Qy->mTC-mAH+~ zl>kg^LnLdcvs@G#8FMDpJ$G}<=o@wF;N31tOg%=e)){(-VkcE_;xzaT>Z7fvK276z0Rx)^Sc9Yt=w*WevWR(jy`Z|RNXm@7L!Kq| z!V>*^a!Q&h=(JP!of`|oI7Oo~B8eufpEG49Ji^dQ2OIPV~#hPY?1{6 z#44BL@t%>zFoWEt^Bz?&M4O*CdN&il4nIx&gb#6=jT8kPBJZ)IM83ldUS;*qZ}f-u zcr9J!kyRJbIqi5PaPA%igz9MG^V>bY{1~|sAH#oRT}V&Lln^Y_U&kkGzi}-YAN~>0 z{)^}6k&hjTFgjJChJwozgr|7QY(IOEp9OU2Zj2E z;*jS5F4yv3C{uSR?%_H2Agus5_KR43_fQSF<4jFo2Sj_+b))(OUq#O1Fwsb$I98;k zHA(3TR7@B<-@|nE4nn%kp664R84^v)`UGTx-NQ`(k_o0p_(+-B`w~3f^26KI=M3k% zoW_vm*RS8LccuJ;3I2bwOv@Lh`~{o1rvpU0q^+RIRifuwuACfD0=p6S+dc|?C_=F^Bv^cwKN&T>) zNOP6p(SW*Nx|WG>64o}S^;GrbrnOgqp>tw0hf$e&+`ya+07LWT5z{ZJL5cTyy`j*R z1~n)U@fZt8{#f!V{6E}%g+r9300Rs#ARr(r-5?+$qQa0;0@9@pA>D!?A`ac% z-Q8V^Lx%{cfQW@OSYTrEy)%Tmx9)w;KKq`#@Ap5fXRY=8YC)$D0ggatpt5yoW$d4_7>lh<%~CpG&P-r1nv_V}gn_Ncthbu8b->t}eUitdkK z&KBMoPhPQ&cZywUjUG&s=>W=8}ons4Nh3i zMu;!y!_K}(GE?M;W=9g!AGre|MNk21@>HwrRHWrJ@rjDA zBs9rN+^c5l0X#WCoDjJN$1bB`Ic%Cb{9bH^3O94X3HT@pVJ06iIxCM^uPfg zqIt4PEu7CO63&$dK(jRCF+jD8w7CMfrK4)j0+*I$NPz0wCPS$?s51ccO~7vHK~9&7 zypL~M`WqnE1{E9L^OwP^3EYen6QIncvscAfL0Y+~bABEU>3=#=$HpC9MNaTO9-Cjh zFzt9svHhX|_7HzK4MgI(flPIzw5p>uecwD+s}-1pvH9e7;gD1)IQH;jm+8&zv^2MS zW#`F_Jb$rCF_a>HiQ@z+ZH~S3Y%iLPAEbdPFpO+?ib2|K=R+Cd7mlMCP-JmC6hlx# z7LHg2t6is39(IZtcxmbL6`Zf91*j@Sy}Lh7Oom71Q>I@{Ba|8Oj8(7{+a;wfKPQ|+%v_)lN~2}xvst<1X^J8 zgMUOZ{LkPxf8|5Dy`6p=dz(+LcorW?8-*e=P|&i!8Gr?#t3Z;u7!xqA7xf$o#HpR; zlmpa>0#LE?+{kkp+SDB!$)uuGK#F?!z%J-HnH+j`ONAU%vhd{(a_NVtMi*!KSJq;glutL&MCXft56PIjzKx}+M# zmD_maXeWzkDB`XDtiH@Lfro!&DkXK3Q>bNGvybBou! zsG?EO+sY{~urxML6}E>M6~KQKAOJ6Z<=~J}H2y_#`TUx++y3u)Z4I%HbdP>X+BGqF z{{d+iicZhU_R7r3XGQ9f7nD*Jl~q<*QdHNe)YhkAz(q2o;_A8f>zkzA@x~Ln{UB-A zL^OyR8r>%Cl6W8elC=Bt7j*-3LlFk)W8EVKCE=95~WWl8PBxeEZj=oq;W(s(3`IZpjdh{$0t-)^1Dp{#a7*4<2Gy z7y_Qq0z!vqA;h0idJ4qc%yLGwv`7>ci>4?hL;;4rD=WY$%qHu|LxnMhMKpJZB3J;k zU57a5a=`p`tLP{-AS60Yof~5+4IoH*VhBx00-%S9xD}fS`6iEN~?hd?c!ovM585 zz09b5D{dqvhyWNZI0S=FFYF7q(K2OmHO(vDA82vMg2l_!4NLM59MHhRiWPQ74aFu9LI=slQwG~VEYt6PSoPhTqvjFa z)~I3IjdM4;-!8kb$!6;_Fl@2edMq!#XR~b)SAN{?++fjh{;}~%Qi;hpHd~8aG3$Hm za)-_4J=YAf*=nin9emhM9Gjh$JAh-e+ld@ULwv@*vDx+pPkzp3|M|n%q3X7`yFluV zY~zwrK;?ko*}-m6phMNGyK?^Ohi=Z1tWb(#7^yt>tz6kC-Y;6OCx$J7M2Qfd2Aj-c z-MXoqQa8A+2|?=R=MpagP-|luc=8XmHmirT0(ZqBvy*FP{(sr-;PLEA%S*w~BX1NF zPoln7C+e!N2~B9KP_Uq452p0M^rVjT`a`vc&Cl&3g@1^R*Fq_2#;Mu0P(vWb(iTc+ zLzaaTaGHzqX`HtVAJx!AT5*ylS>Cd@-UJzVR+>THChz_f@6b}(36R&ClWu>RF|@l z9=jJ+8I*i6Dkti*O;mXRH`-bfpf?Hzu70$7P9F|TD({BemU&lxCf>Vkca2XA3|pkM z^H{*Wj1Sz)h#>eWvbC2DDQ}3x<9x{g4biIsAC@u?SPIv|yiOKw%mv{WzHX{x3Y1 zAAx?QItx``oO<$sbsaF072yR1r5|@88S*&k2RR5wXymb;=RFjJDa8xZ5L|kDWUk-N z=A~1Zto@}ht)lfib4p*Njvd>|l)2{K(o@9QZC zUTK3>7s>lqvS9NmsQ?TR*6OS+t0uj2BGwVg%!wj)l~4lASNxXPNj+|>7o>2HmL5Op z8(Sn91^uW9)DLspdBYJ-nBp#8U%Ofl?rMIj9SEIzbESH>xl(20S1L2V?^Y^7dC%{3 zP_g-jI2{yC(+=zPO$Sw1g4aQ%cL%>(Sbwp1rT-HMN%SlcZuuh`E&{ay$4H#~;Io4N!JD-S*t10(w+uPnfM$8ZpO!JMkH zEC3XWM#^M(vO_?XW)XA$iYcESjpp@Secr}$M3u#_RGL?dynmw7{O3G|(La3*$^H;( zk8xF9-5Pm13b~GkTqDw<@!XIj*$v%cY|BfqC>BB?`Ecd{j-K%SR15)tGfxRsv?iP+ zDQ-8UkT7nqNlQS~ZYmA7-3q3#bB3B1Oy=beH|iAbHc=B@pmP+XS=2L3l%AJ{F|Bei zLLQVPX1zg9-${2K3+BjKKx$ZW1v}ia;Igc&E9Qzy)xu_G!mtGrXH0kpAc`~GE5)zj zNM7BzSkm4Shk2OQw;~5+e|#WMLxLxQ-vl3-UxURX0b^4sL;89vxE;4^!j+4F(bOJ7T|h zBJd}U6Z`##MgCQmS&IdeDt`VmP9@WLzhX*=ml~JA%C>Y>Nqq-b0;Q{VruhA36Ib$%NzW4W1L+j@+ycCGHO*aL zp`!L=O{JEGABh2RCz_aIj)Ze>69!YG_9r^PFQbG zGRmmiH(C3kUw2O^-HE%6qVdWo;7^71|D0+L|Fde|ih0NHFWYp=Hm=0@Y_w-M(&sY` zib4$n3hRZLFmtiH$PIQKQstDvKn;p%3s@anwC56nGzJ1 zfWOh$EhUZDcCb)&F*ZD)|zs zZRp+`=k*bS@S0JW^3++RLsBO4kD}{})K3B4j3m7A@LRcxJ<}(W?8bY%BiJ)>`^E2Vk`xS9q!#CiQ z$J|=IW2XUv^|c37YP|)bzOS#!!tciUH>H;1S+;E$5I@cvns^%Sg+#!sr%!kD}Ev5*G0!BIte6gx6@qt!00t{fgyndj-~@8=fT_Tk3C8Eh6-?tLF8}{fOavE(h`0~b}F7^r1S&@`s6ED z+t{)*0UG2gjcnRhB#BBV14Zrcv7jFhzRh)WKsH_YBX8P2r$gEOD;;Y44%Kf*=r%RO zGe>DlUZQO5I6f~Mqfoe}^_@4(?id({X?)=b2W02l4d0~W=^*$K$-Frtd4ICQ{mxra z5`hD38Dk?We``OIl3iK%I#~AdQ;7R^3k%UA12HJP{pb*7{P*@Ff$+RdI^M}=vxP-@ z)yEZVNn-H!BUeOXPj?GABCq!2zun^#!IjedcQ@@vf}?*^0V+8VcyG{(57cr{LIlg0 zMhUYShmzm7PlxB$84em8FZuG|gSl0Cwj5QZ>eL)34ue`?7OE&5D|53jJ(P>v;Zo3s zgnz{x`Ohi9)Bk1xexw4RP$o2ukqU{JS@`mio>`C^+cZapJka+QYEh3=RtV9D z?o=FpDI*12Uc`4pbNMHzC)|G%^~Bk6i{B`ENEUwQ=5b(T)pWhMV|e4M`mL)#Q~@_M zqtwZxzZu?y`S4mvm#}=$@Rnxt9UFbbTJmN1fq^K%I=olO_g8D$j(gtGe_l5W@@n$(8WO_LsCuaOyz5_d;dNI zA8s~<2nAA%Xs2_&lE^;wjdzMAF2pwy#hE(iAlY-OOstM89wp}khcXZILXUIA(~smF zAf1$BG~>BLM;tGiaLTnbEKm0&yHo18|Jbh;Mt|b>{^t~!+%F1j-2einOUFPV@fxP5 zrBb?e42TgBOwgvvZ=zpKO$@*Fn{=ReZ0i+;$7rxWELVHWTgQ&NbHH}94&1KD8 zdI#?~Ev(%CvvnU_)@B8MEUYUOA>oI^45A`pg~{U*?PBy&k~Se~A$2@N{hbd{6j8rr z)zzlj)Y0_T5tK(*ucms zox_|+)Yk0`hfdF_atb;sU&O1tpLu|MO%dlQc9AGjs#2QZfkGJ<8S+@y(s5y+(uS4| z<$tpRZ4~&If&~6Kg>~u|h4pRS$DOsyrN@w{`sgGeAg*t9LdV_4^&p}P#bzX8FP6a0 z^=Q;=YgWEO{n)+;06Iw0PL+X%@XV1v{t^hV{uU#43#;2{UtGc~>rI<#tzT$M9ISWR zm&_&nM#ft3-F)1tvUFs7BRTk~{EZ=8s0$=Q9JIfI7C$qD|D=8W#C5ke;X^|x5o%83 zlCLDop}rBiCtKvP4@@BGYIun`=Sg-kM;o&cI{=!2n$1TjzX=Bb`M6Am(t6_Cg&Nn7 zMGX4!jF)Man`W#z{|9ju|C}n*{SIW|MZY%|#vrozne8+45Qj9BCjwgI{=_5hT?M<4{($e6da zK+h((eT)v0n~W~K@pp^dTyYX9}h{ z9Wjbf7E|hr7^g*Umm5BXgaDx31ZcPHDmF6Ff4q(T^(H3#gJtYD&dwc(|F`ixiLfna z=YQ~-Jf;A2z=O#0n1VeBS>?H)MEY0z<$ykJLdnpvI%oFSXwJ9|I1sHlUmVhMtWl2j zd|^z2*!fDHWs(JfED6791n(T6o~zh|P#hH9JE(go?VUJpgUyMu`> zDvtTecksnu4TOpyq$i02NC{}y-#M*=X*V~pz6W8<<<4jmnII7wnRNI(vpgN$fztls znmi-~*f^dW4Tt;m$H~g%zTv<;9!xsI*vaIKdaOz%MmvACML9<$bFaDX6v-O`khH{6 z0{?%JO2;rTI;&|PGKOeCiadthNA7E~e=G!m_ayqmQ%z8TOc$0+;CsArcOGW~O~79! zH7b-}SplWPMh(yIiqH0^s%~ zwWGxTTno{8x?x3z@$;9Y4#0EY=e;8SELZHT6K+m6HXRgfZW9K%Z(eUKm@CE^h2thK z4P8foz<#msoo$Q4u~txOq}xA>|3=<|{ik}m7gHM#mC+~Xc@w$uxnc{{Nn+<$U}C`H zaGF%cIwI5@zkOL8EERp=Q>Y;;8KDg01od>g$@`Tl0X>#8o2H-t!`%0|KWbdx&V`Ea zg%a6u_yTNLaT$o}I4uyaTe75}FI!za>mc&A9~~jHlX^(2)-$(PXld@_$u%W5RftOb0J(zOh%Jb-G%Ah%s%%5(-w{Cw9;S5b1jd zJXE{3Huh=5*aqWwh3bL^k^lCFrg9c^S({Pd8(7l0%p94ZO_=O*Nx5)}p zuIo3P=3h*-(>p;h!J)_kJf5sF9nK~6LkrLY$cGlzeC{eftwz%hWMPMSAGYg!g=Vtq zGd>O@n4xgUb+3tUi!7kYydZ8m(|>Br)FRj8b<99!1kDnYXaCY|MT+!DcT|?en5>~+ zAo<)Odu9UN$NOYF|Ax4(pR?i*|Fz1)@BKS2>m7jq*te0nQ+a=5-sTJyU|>rcuagL^ zfS}WyqY0h5fVzhlk_sf>T-cjeee&bk!n@K786}wGp-ZLZABkBFJ2A^)`yv#Iv)}hEff?JuS`jukdi>AOJ$du9UPvMe>6|W zqoC9?vaC`h9sKEv#nm^loz-t_Zo1NTt;6VQXKk`xP0yfa_l<(qD>X40 zKcJg+fBJaElbpWdxuv61pr^Tc;l-NZ!&jiJQyBSXeSP)w2C(*=Y{`MC!{c#yx&)lZ zBsu`W#_;)xkZCiVh#yC3v8DLztCA+$ig5fsvFER4IL4#pdTLG~v(LGpdhRu-P|$dg z9Ukzh9R$jmvKt*}u69mU!ccdssM-T_-kcmtj-BpxW;txY|Dhi^7o|mAnVt_Uvd2pi zr|@~gXKu>?d1o>d4m`bU1`Fm!v^B=vsJH){0_uKV@e}{NijM^s2_T7t(+IFX9f(r6 zp5SJ6p2R${>m23`l_4@-CUNICg@L|daT=GN;aGn*rRc0cbULcDJ{C?lOz~K`PYCheC zi{D=Lei^oV{|V5(Z{TsoKR85IPmMA(D*A|3Onic^qegP#PF$&!Nq&)STya^siw|C= zuYShdyS^ohthu%QSgL8^_3jv|uAYIA@WGpWf#yTQceto6Zjap~rJOi7Idv!U?(`gZ zt9O2G(d_YZ&*-xkuZ*9+ekarS{-b*Tr|UCjo*(vrnQ$aT9ksPJ8tLvVVLsIJS)EztZeHA{ySmH+HkZ*GCYe{ z1FLd}Md$&77(nrQei7Bf05avFjOA%BXiyGBqlRUPL(f;9R$+h0#?Fp@%YZ#n! zFch|Z#@{r&TYw*+-@yp*e>W(YleoERZ@r1o(Qobl&hVzco=K7>A{XEO3wo$ znb;nX7j$}YYZoZuN)_8tG~B-v-sb)I%+c3gKE7-)9dEy2cLAMqA(1XHEp5uMs6=}T zV_m9%q|B^C3E6pise0-8C8ZpgvP!vJeF~zg25G9oGxd#EBQvgHMJv!X9ld-JeS!<304^Qo|kn@#nA9p1po2ar6CEGSi-q z8{*y&ueZa>*L>ionN+QmG7?M>_~C^6LGintY`bLGc@?VKGB|1$uxtDv{093zVi1(_*T(D_c2ufPdG@35QI+RD?Ys!7=jLZX*-J# zDD0PgCv&kbVK}n{L-EC2bU75h7%!y^0MPd!#i2srDGc;o zrt=42LcV30)R zUIK;JPHvh?e)!KP8uRV*sjdxDORPbeIhp~RUjVT*9EX{aUtQ-+Ra@VDzNPKzC7kdY z?~e~_$4M|m8qZkXETw2NP`N#cin{lp>|xO@qbH9G#&wZ%%fjU=>0^cz&z>h|>)(H! zaaZr-`WM#sUqy0oiM`jIPa+xT#=0JK1|h?!H0b?J<U?0=7115Rr<)@A#ES&4Q zS@s@$@#;eD?ykfJrv3+nB8&V9Qeg`;p7qO0&|~g#hY!46z8lBhbwShf!Y)|j-<8<= z^M&aCKlepgWe`mlVk`-UbTGL$sH*h=5xDLiCs=XdW1u{xQID!NgRYdy*C*&+&d!x@ zeB}PAq(RTpDA$a`9k`pfX+v&fSX3gV623M|KX~)GOXnQQp-_>YaS>usu?1>QUB=R?uuVqHpP$ z7IN|VqjJ#KHCg>G-=OdVE}?oWDOZcQ>ZIaNID33T^}qS$6?@``l7@H!l?hr-=x*(T z(=Z%LY+C?hu_ATi%i9B$r%@}H&9I)`ss6?e>CbnmPb8aM9}-1Og)p;(x$1mnFkRTZx{ zE*;Pz!UP1WA%D%Yxu4z=25;RZkmSRMKX2b9ur0t@6$PyO6MaEtdWVwQ;OO{7-Pya_ zD!N0r|0ZED!iE&NK`*;ZhVg}PkS6ozxp2}$2yCXte9v3br%3vR-sY(f1+wKMI6)YC zSq37Qp>Tv(hxC+@P|Mz8Qo@x=*u%=1DVvkP-8w60AM(a`$@dzqqk;*0MI4UR-dz}+ zBGub-+u-u^e{!T{<^M!Ur$ONTbGHGYSsQ@*Yb2s{A>E_%5MW6@8FK0^GWoRI2Mr5j z1ID%8dX9{@IIT^I0(QH)rN)oboR>JFobJ7IHRXDSl163#dvswA#=DV=6aL$-{Non# zBUN0#<+i=OuO$HAl@$uqpx?F-5jgl)-Jr+)Rl%<8#Bd`d{Qk>fBJYvMdum~q@l1-B zq&}5T5MJOCc|JD5j>ye09JG`l&%`k))+zZ#nVLr0#T6Nz+g-W2rM9&7n%&j*j&qw~ zB>3E`VTW$L^6emH+bc%5?oU5yPtzl_nyGk*S$f93_`IS}EoAlWyPCO^FW=9+`dsAG zzP9?lDjR<{z_=f&(jJIp`xg zST-Hc-A44I&bO>djQ3kSUN0z?9iD&Kjv>ff=WDLcC(tLC5-w}zFmZN!E<7RjZtWT* zZqLz>@_WG(!#_E#@n7o71OF2x{I4DUxuAf8>O!!(5JL9VQCq`vbX^$*v`#4CsFwv} zwzU7ag|H`4uYo57UaFU?hV)#@XBSXjE>JQEv<{7SSXnO04&>#P2niT0;v%3&{|K|= zcI+RK7(~rCn7ye@fo;Dd-nn6Z3uVO3N)hOS_mXFruW7*Rzy=*|&z;^Ph||&ckWF7w zt1=^@$e#kwS~6D;o;3at!hsuO`ASnbu$H3U5KTbq@?4NxdBT9 zd-4Wdpijdw_F(%mWT)}oqsvh9=)=9t*DwT65Algt=n}e<-QmEv`u?3!JF;rb*Ca@Q z2|ku))#Ggi&mZwXni<%^_+<3<%*g;6ql#bTHV+P4v z`Co_Ge|f_2?>lQ1+AwKR_Pp^=&RR{_zPz@+Q1-I@^Sh^x&O}HI3bLCn8i2y+3)mr( zB-to{55e>KRDKVjG=@rq~v2AxQi z0OLgy`(2&{!VcVLU)O!JxzKNhF4Ap&ftfisoqdVlfkKO_Ve*AR{ZH;Q;LY)>BBrs0 zc;N_FAi-U3Q!vk@S$XmW(+KXuXcawnw(Du-{g;{qb2TW1y)X}O_#E;)NrnjkpC>($ zMX)pYJZ(KMYf;A}f=O7(x@lSY1&Rn6Ju=tAib_FPTrQmfI$!>gh$>yHz{pAkb${l>=pA>JdD%6we zZOpq;I2Nd0HFR|)W+ncL@o@#kVjfHVD1(B0iBGpsQyi!6HOhx7zEEkheL~R?7K1v& z?);%NT%PVkU7YXn#3ymh&IoaO(xaKjWYqny#~+LuHPv}-PLTQgyH4A~$A)+MYl)Fk zJV{&BTeaK79;@iC7=0{qUc7ql1h@EMqKCl%;zrTq(#pIegtJqpokwCaF0Sj%Ix9*! zu5`YdU$$3l9{w8VzkYNu%<4=Q)fJvMZ!Jl@KcuW?fTy6{eK%m>)wyiM(*$M)-w5OE zE`OT#T{$H57UKO^4sq*u`t0*|?g-&7Y*(Y90P_uwc&%$~jk=J#3KJxfi@rAg< z`sjs}qsQuC$sEBKRiJFm7x$%qDq*+@&@&4aW;O!VGSCa1%|N0y9AimMjMiAvfx!*? za_smAImsm_ocG4I9VZQhVP42C8sxn*hvd3*50+39dVJJ^m|&DUQo}XS9i>Ui)!35y z3oZ|#%`?-M`mvqpr%-Gmmbv!E&8aeh8-#pa)kP%e=Nk=^x7jeRbov-Ozk?c=bZTrB z-E#|6VVI5(li(ZsTD6MH0^3e@OhpGIaYCwSUL{r^Ag>@@cWmWC@XMCGeXHWz=|Im! zaE(Tyyt_^bhA=B8*9z|jknb(+OBuO*oZ9=Em23ItGQ(B!c!|&N%@OGPQ_t~hgr830}wbsLk3s&=K&vfPUrSHfQy-R<&r z)FjFN-8~_vh{nCBs^{(!!>qPyq|bc3-c;X-n>}(>BZIeFFw7*5+C@y+P&KmygJ8K_4(D%;g_FZkDfU2<;|F$uvv z=x*GR@l_vWcs7hnv4hlb6}&K-O?0@wgTiywj~S5zKcU!3ox1AJt(rrs*WXFkx*8x9 zo`bMd>|&f+4HO^Bp>Xf-+V^oa2!+T+1}S#4GOh(Hs^(HB^>=ehtc7TV=h74@_V606 zh3XIG(lzz>2zsuCp%HoXeTu!#BB?PaiG%#6|u=fbBEx>*Cb2T+dIN*Ht*;WQ!wdK=m2T(-Zb#pOw^TNPNc@ttbxS3cQLZaI`hKaa z{bP?!%MNoWhf6*yYp*K)_Gj^!HAb8@O5T1gSp3W#eBjO=opLd*ClZN^U>+gY9(tRz zpQy@k*Yyq&Q5eYBQ#tv9UDy<+pl*zg1QXwndDyB`dnJQjFt${!jLW&jB^a2ZS!QW< z&AD=ms@kSzRsS@zjQAF8$6@!Y=42t@oo6nh3TLvI8@D@kdd`7&o?Bp)ZlhDv)opIz zo#$+#hu&mGi!UO&uTb~DeCvC2!g>DPXSZb^GViy0^aJH3k5K1Q8FO1OWnVb- zHQ(IfDZXWMB!l6h(liGH$@9dC^cJ;j?PS?SS4~&9bH{QWTS;|7qcik#km<@PeQ(Q^ zOGk2B-=^yFU2D-AkZcGzys$UhEW6>k5w&%SnJ!6{e?DEmWRDm_*hR#VTEE_-+wX)a#H7J8SB`XZLA}WZAs5>?DW8 z3%-lIO>Y$XOS_3`RK$KU)nhqo|*KSUy4)EU~f+ z&W;T(GJ%r@l=gKUd3an<|m!8GxEZdLEAeJaTPT9WF8k3ClJ z06&fBN7<(S0(YZa7*{J6YNI*oAP(&=%53CyDx<&Zap+lfD)B7yS~}ev!-+muJ49jM z{wxWFgil}uF9~0gvtxn4ohMcFG5q8{?Xd1lpeCgzgN%OF4_G4&XjgTp41hDEnp35qBhj;X{ z%*5gBYvm8@UZa~xJnmFCxN4WBcRfD*Mu6z9P88B(_Vecm@wpO3wHBeovz0BOQH~Th z<}z;3mxyX`;oazAVLV(vej z{rR<T*l)U|Lc)jY<#{k>wXYY|T2c}$CneG*e^ zksd>N``-8WNq$_5!XWaQiIw_g7+*yPtLC%r9>90u=aG9o_Cn1lM`EH{HoViyQSm-&opP#_c?6yC%|odf)Xd~VW;wBFx+u7ut^f{Wp8`Vc z+`@wW%E5(t{nP4FTzA+-oGw+tpJrFKcS5)@wbzM}iVM$RhfNM|cn+ZndKmqcDn# zovwEuwaE@%@a}%RP#NUgx%h19j)(Wd=dWYz{Hdqje0+=b3Ht=>W$LfpOCL`-3ROD*?Cu(WG{?0N96a%^{Z|?TJr;w3Zlr!ThosaEF4b} zJ)c^A1fD;fbyPSJrX26@!%rQ?8{u&vOEa6_sgnP_DA$OuPT0O{T%u(v0V|B21sC1Y z2Wz-fI?spda{1Ji3N-|*plr%5&Of{mp>pV@9^5H!o$9H(g;<+!$^hTzx4TVMsOSzl zsPZH}7?3m2E~GvoVv!mt>-N?7tp=LOdouP6@AEbCyJc>vff=1D&szAAmj_HfU3g-5 z0{Z@4#Jz)Sv;A>=XNSL69+XmZ8fT?nJ~~U-b?s>zsz=6S?KOXVQN-7jk32L}1YQRM zpqD>9e_=$8+<)aGPlDCr{-Ym{tnIr*@In*4f&3znoP8+=&Mb3<(sMSO@_mM$i2${} zh7WxIL=%fBwZDDCs*iPyboXvy(n28TyTg^yoDf!CiufV&%%dlRDz{MUS`VG zntPlF&Zq)K6x1F^76nxovKKR%B-XgH1w`Q88UB&4Wivze-C0D0i`fk2@s#tF`p$(0-6~$7? zZ8`g=Ic-BPKU3BNYPbZ^X00QN@JyO@vA(lj;wxc!o-|{;j@MxuWO8-(nn)BoM77)x zAm9r3i4aGH7Z4gtQlt7kJj(NXqQm+7A$NI|YMZ(Ejh|B-2xC6aaL5evis6Mq%IljK zp4kO9`CmvS8kJ7I%5~cYep+F~(q+h%0rEh+fs%j33wg_MgbfQ6UwD3K%rr~(f}Q1w zC-o$@X}8`n81E;>Li8T5zT9Y@unTzNn8|2wZkiwp$b-}Nri?X*50t-bO{!fTU zpMU)aFVr{x=UVxz_+r)HF4Trow;3OQVul1aHij@z5D@lrz{s)f_fn>TOGnX=DK6g- zhQ%ubuAPv~7AcDvjpU|d@L5!Ui=F4|v}r_35ws5|7B*fg<0qpQzY4jgHE>I#pai_4wh$x(-&r?|hfs%D=fy-K$194!7mqmnW zQ~TgLJgXd~Wv*{gWmQ0lb$N9|qpg>1ebd!zrvy&e<)*av^okpKw~~=Z^^J_O36x$q zUvX=)*RaE#nyUNWlg2w2CuSBKLi`>LFTF@78k;AZe)%qDz@PfT`!9h+N^b^UpU_ah zD&s=R+bt`1uho`}EmvtyBkFJn{RnW3oj0$KcMrMSXGP6^=@?pYSs!zzHUXD)+xoHh zB84}19lSe!bzs*xD&x3cDm-MhXf%^Xp7FTn!TmDcsuvq4?}ILG}j4ZRQ)Ra?A0lBnmge6>;wO-3K>&EZ>pkg)RA*~Vdu~!!Re#5W{th} ztf~%e*u>R$U(%e&1nE&Z%xApb`Y(*;sbr~L!!PT$-*hxmPeTJ1=RO%=eI>sbk`6s| zr^On1E0I8-rG2SABQ^1sW<5v;L*LCceR4fSn>Yr;Z8GwLzRDHe*HBbWWE zI7rAx(<0-m@F+HqMp^7ge;}>4bwPs4*J@N4&oLejF2%1kvq^o%(`FQ>VwDCxpI)?< zO|@}xv7j{SUA~cibj;fFfX70%CFSK8EehFUpLv!9{43E*IgRY8zJ$giQ%kmHq|#aW z_Tq+}xyhy`MAlMPyuL7}cN!&(FlGz{LL_%r21*DpLjgke>{6sfF2gcI!MkW1C@TU3 zseofh8LGJv8rTY3ekU77)<+mjIX8f{+pq=?ABNQVX&~*9B=v@=je$<7K}{!FnV(5S zUuY#}8GgYSa@9&BjkSbkv@Ha<<`QIQMy4O_c;Lfjqb|r~2Tu?ol#+>@kdA+vlX8w) zca0nhM|JedL{>YuGrZ4R^P^UOCP;)dLIUg%p{pX443?kQ2H5=>l&;U7PA3i>sr7kH zBN6xEJdN0*Gxqx7cDvAa9VVxWRM}Zi=pF6ywxZid(~u1m?|NI@XrI@v)thP;t-0KD zM^`9}iiUw*zjrFY>Aq`|v+H@nA%WB0iid;5kfbod^=aQl>Gdb1#=_W1K~9IR$ES)b z0zsY`>Hd%l7VR+;TQ=>nN7s?~$OdhmZKcBEk-5XD$5Z4&o^waCEB&6a!B$&I%FG^h zEowb=K)mF9@Zu9YHi`N3Y9&+DXO`MK?Z-Ms%x1mb6soFU6JR;}Tgb%wLRpPB>UnOA?g+f6}L#B+cllxT*MUu9b_3%Q`B5+xc9RLXFu@Dpu zP~a8^YYEGNxM9VqYX#w7>o^qzx%>fk4L`!_GcO6*~MU2CnWxDgOBpwN7zx^@U$@;w@SZed=}QK(n(dO|yzKE+(Xg{*Y%46;6zHQN^mo`rXoT|m_=t{hf+Ij#F^CNu0iT_z z(clPhqqlMz9d1t+cQh_bd2TYCb;#nC*92MdEgFHh*NzR=lXJwpP2HEU7@e+NvQbKU zHT9sL{N>#(A`h3Tb0@R37Y&XdO~{pZw{zx{w-T!~COTUuUw2fjbCmD!2k6aG_cC;H zOD1*2C2N;B5By{VsJCDJaISx(?5tEV^is!* z5=7Q&=Go6Yiurf1xStIrM0|X1sdnYmXRhqyFd1pc1`*Ld@oXpBvBDy1(+O^-vpVbRKBfyb)D;v&OX{8)yS{a5MJ^RyiY?(TE_5~YCA5e&3@Z_eEVZF&>9)aKk;q<&D6ccT3x%??Bg<^X z`KL<-T9BYTpOprK61>5H0cyF|TNScPc+H+|06fU(G8-axR2R^3Qo7>EWF?lb>5+se z|DJLg=gK6swrw!rRqG7cU7(E)s(vLSBb`u{Icju0A9&E!2o1G@5W<>dq_5cvIxWJ{ z{Hy!B$TwKAUDR1T*ghJ6{#ShrS#`pGbc#%K6r*B=jw}%U?0FWE_a6ub#Ou8#Z}`<; zQUDG<&N&|?ZH5F`NM<7~HzoQk)8M(ZOJ?;DF&LKN#|=iPTbS@F>_y9lD@YP>6r zIMm!fdH54&#fIQ-Q1fH%#G+rl*a?MffoFGiy%Hp8w>;bPj2-jx^1cgZm@n&g@mC~2 z`Uj7+vk2Zk@SzRp+;w=@PXfx6m| zn-HuPiuAU0=H1fD%&A`_d3g?l+=l3Pwtl>NejC?`BDA$>U((;Y%%y@I$sv#=-Ss2^R;GI!Bvp17xlXlOl8 zXp)MFL`LY7x!VcaMMRyR4$|%AXp?g^B#r#ZHEV;cgtK=Tv>Mb{XxYhoN^6JiL`J zy_=c@>1GTq(5ksm(P%h(to}*otEXKU<((aAzjjG}x8}9|72e*aGw)&yvxQi$n2^%HSmVP6E^2RFOg^!5!hrgTA|Sxrcm?Vv~JC z1xaPuNOsMEfeu`W9jqiG6N<`&e6W_Th{L2jq%r4IUzw38@P?4Y@w}Oo4bil*>Hs59 zTYL$1UyRZP8l0h?C#S2#oJ(oKFm$Kd*_@Y7mSDdKO>zF}>H~9Ksm8`#jE%R*<|kJ! z&c^IByp<(8SyIdwE;$uL7^2J@4RbOKMHZy$`db${(qp6{0H6Utg`Fj+nBmc+D0fdL zR41f1ccnKlp^^oYCqs_`z$+-Fd!Yoy%w-2lc{`s{VgpauNe_r)cl_N~Fw&o-3$6{7n&d5foXf|jB zbMn36SbdE4dMfr=-vGCY&H4S}Wzu!=e0;U9;j(qkl`Y}%pK~~m?>hCYF$`1obi{dZ zD6q>5;pA%iFqNyy7Dj{01nv@9R*a{|Tsver(N2X0iPA6c_PgAT5CLqX=q~IbeWs0i zR7@3(z0;3=GC=B^wTu*y=eZv)ot_%R& z?%(WMl*t!7Jj2GsEa6#DSK9(_`s9OM(kP3*^m1kH>(SL&g!*T(>it*3)&@^>dA;ty zW*qxHQF^@-LV$>FSr^_J5{)t{wKjMU>9|@3s6t-uex0R38^OMJ7V~*;J8#3<3e}tFpXwL5b1KP?AC4 zpv6Nbr4G{xd7Yc>k|?JbiOP$n`SV`=l$vP zC<{so9q%B}BO)$9p(5*dF$~Osb%v3v>0Ll3W@cr}V2mwJqFJ>zs1G8GXP_8fvyV&XUOiGt5%+nM>MB$;V$p8Q`dLYv z@TUCnFy52SV;n;T8cGun%ocdG3pDw@whg+$`U1ZSUU)vJ!Pi}L%0TUM9F6@{Z17;V z>z=m{a$M<`zuJ*HbZA_YGZNBo>&?}{io3r%9@bopu5JW1ZlB+sIX0+wlkm%1-UAj{ z^31k1OCJteS=!Gfid}9sds0z8;LSmJw9yWpdnGx=ZjV4;qRca)7sn?8*gD0YAszX- z-iM0Z_ zScr%Sh=8D^B4V&NPn~$qzVB!EJ^SuCyZ^-Z`d#1rC5wbpEi!z))k)Vk{$b~r?Zv(r z_Fr*-{b`lilxbJ^$B!;%3Fm?pf8YNyTUkgMi1 zLiMNf!)~rfStwFl_L$>Ni6k#E&{`7BBR>Y(M}XCJ8XR&weCeV!wSl50DiAB`@J>`c4Oc>a%{3|+ zW}JyGO;1y;F!!(**ypCUOWLu`YV?XC$?!5XC?>tLfPoPFJRZD;dF}!B`MsYWsAS_O z3++*{lE!Q3#7g~&;ztN~{?ZD0t-*q9_*;JR;Cq#v={A|8+|(s=g_V*qrK6;gUbF-( zX!#^uEZ`HuR9$FW6)=U6n7a`h$jn6nz+VUuxaow(RyPa_+{7LG09*mejpL0=)f{~B z9V88NnQqvI+0>ZOjvL@tr*5V`0NN4KK~cv+KkZ2R&~onE)0PJBZ(|`}KnAS)!>-&M z6n08}ER+df71sAy6Jbtglm0k7gzO471fV}plHb3?jj3aY_$KY4FabgwL-6isWq{gs zj&vf5uj}1tT625kr1&E-o8jxg59=7!zMlQlP^)`b4vnhnNC2>M+>hhs5)PkH@_0S? z#5G%Ituuwy9y04H@q-zvmdtx+dS9Q)N0p>n@{2TyJR94q+xZGnZ@7T&x`o-Z`3H=l zyoJQG&=oe*=O#jTRhIenO=UPDebjMFw=`VC-f`m;!;fF^Q|jYhKh_;P(o@o=50(r+0vS%IKC8ev*zW<8KkxoutvP?({h9C{ zY|&fnKi~Z{kF9>g|1hQMU-3Wdf+(wYnbwoo-gc1cnQ*o0N{lp8Hbg7S(?;}E zptYv43p&An0bvi-Fbb4pOiF5+BivN`did4*pf%?r3>9J+Mx9$&Rb3rinoV0#)7+9$ z=TKhR+V#*GUg8u+liWQxbRCY)>ZSD^o_?(8=4XBH$?QuZV*P{0fw`sG(Q#Mnspa>> z89f1wog2F?nL%rNU-mz4y*d0*AgqbHv9CT&E2A1tE^xKD`eqB+BBPe`zWQTg6jLw_ z0xx=HFu`G+o8u`^tSQVPckCfQ;(&loD)m(v3fu0iej;421NVwVrZEjyQo+%{?DSxkI2)%TnZ`jdBf0E6x#k`L^oAkwd zB}IqLx!1nWt4s@gtn_}2(Jj6dvR%D9UdbQU$!#~{ovF2dPft?nAeex6cWW3U7 z>LsH@`G02nf5m_AvLap=r5{HTjFnan$EJm(lzTP$!)9;Z1bsKs2TX#Wd?zz!phaNw zkCj2HC!CH-#P?G8_aAQTq+6PNm%>p{r4R&zBOfY~?I<4uCyAb=h~nN7C5sVIHeicA zyF6`vPmCkkjPx1OqY%Nr>Whr+*+rjCRBrU>p}tVKW05qwlO9TX)zE=ENE(KG$E$0) zYmH=bbr?$$z+{x9KOxAxLz`uyc`~cLqCzqRr;%kGr>=rhZr}kzHPpwIPcv!YaFQg(6F2MoJ7xtM?J?l6G-9#k1LIRmCERh-w4)sW zssy4q1PLX8h5T}Px=Ir1`%M_W1SR0Se-(rID6t|e)wx-^9Rff;E9B=v1GdEQ`kTt{sG<2n`_l{w7;%$r4iCrE+Me#s#+qMxEC4(`n}^-y{esd4 zymQd-Q(32_7KDV87%*#LB_;{CDWjr_)TK*oDR!^wsXuMMcGy6A^_=pBH!gPWt*=NY zblc^D6{=G}h`JAPwCy760)$2I#UYy9y7ucTx%qV4X^5MM|M8l=etb^93E^(vJJrC+ z$oDTH1h;cn?H0l|{1KwS%FB^g6kE**H!N|1=27IPG%!WFDaa~{Tbe&>{+&VT`t6|4 z&zb^%99%=(uJe0RSJ=h(hW%&X;p(~mz@q}p)X#4r9n`^+ds7Lqp-Qj*LiM->_XRLM zLbXSeFcD#!R_3S8&nqBBdP8_ISeUR;2fZ^P>?ScEnNQZMaurR|B)G(jCMYwADEpF0 z6UlDFWmw%>R^b9TH`vTbC-^&j=zb)CPXddlS2e!u&l*>-(rP-%U4 z?%uK%k)+NZc69nI6S?N1YfCzE4FMD*6p& zttUyDpNjc(-&0{a>ZCAEMWgZsTF0T?*oJ592vIQm@;`h$a>2)=nB*Tm4|bxWtcg!8 zL;O^&TMB-4*Bd#G?fQydqaE2>!rPwc1P?_#9zECzb+!ei;_nX;yU+n@(O;!vSz#JC zB}*Fb6RFsRlKPrO$ca>}BphU9X>+0zaNSJ1QJ4Tq#bJ4scGdN*ZFk`LjCLshzCg{ezm3niqNNXPon(NYhEq2sZG3ixx8L~v47#=`|Y}m@9tPG z?tCExMp&Q@eR!s8rY%`o)bAxC!b2X8zi@pYSS;?V)DzPInM{VS>1(@~_m%WryY z>P;#J*X7@!qxz`K!Q$sFa;A+}+oPtcM?Z9Wmd@a?@6{J2X-!1)kLjVYxHlog8s?xt ztgmtLJcaUlG>kEKH~-!UQ@d6em;Mer9&DLaLUF`n*rOwx?R%qR2?$P6apS}y#JL6O z;dp~jYn-AIKNMVdnl*fFuBxzP#{HcGl?6Jow1X zs84X<&6;x;F`kt*c+*iQ0b2c4DBXl?wi$WVf;I|0w;6Vgc>z)cr;u_lf&yD7O=f^z zeR#OAC~WhM5o!x0t`9X(qar`lqvlb}*u=zqd5uBQN>)xTp|HcfFzR1_4nrG4vRs(Nw6nF@B7rrq;3_&nK>d*aEZ#l?9MX8J-hQE~6IdeN* z-j~W_#>((M6%R>g07hD^548*E!xS!v&RfeG&MCgBjyZ-%u(BmO^Qy-VahB2P%2iv;t z_u9P{F*bf>ei&^R=6q!u_+&NxQsl5($oCu$1}vgRnU!2yckViPWr?r7$NJ=k4uB)1)9;)BY9w*_0t=sn7W1{#i1h`7QeR$Je3o1pVJ)|BgD^u{D?GNRM<# z3{- zU$_U3RykABM60;#CxPfMV~o}^#KnWr$Lzd<>+V#=Wp(xb74}69t!)m0jxFsEyH$)e zoM@><9}NxX!qI8X)ZQbHpKu9R_EDf}pT6qG`}YsdFSkE`L;LdW`-Yog{nHyezooP#37kT|9V9@u|KrLzwofaPzPjxtdDocnxDe8Q^aDHB{ClCX_V-T z1qywVaJ(FZ2{Zm&VN+&+JZSZJKKe9&wj?TCQdYa!L@wHSs8x`$O*pL7?ufhQmDsFQ zM_};Aa$Ej2^PUe9nF>Npq&Lpvn9OVzQ?;x|t}8vxY&x|+e98Be`$0ARWt(4$G*xcR z*lDo_SJsHg`9(3!&sN1X|D;)yaP2{}9O{AgiZ_>5))HU!s0@b5Z-Ls)C=c#wBf-&JvLrAmT zh(K-TlD)j}C&yk$&Bg{Zl%#svnIS{V5f3oVza%*ZhV_Poeql6XL6SC=F1k2ZZ#}7L zF2!ZR8%Osdu&qWyZmtsah`C!2q^^Fu$jWvF3+Wg^=x;-3j?9J3rdBb;Ub3UHonD3u zu_2@$CO3AnA&m%4fT>=(mKo8mjeqDvpfno}b#sOi9qn~ON2v;{hZ5PdE_()xuUYJ| zsBeAXCs*&yj+_poB%Hswv%1uXP^{|NV>ld?wk#v)yA1VsThv4X5cwdo7p7+JSZFMF z&^fD|Yf`P&>Q1}>;BeDM@{U?nIgv+o^RkpfS7D-*cEE9$GT;-FPkfWz^;#0_Sw!EV z#%G~r$Rmn&+fiinXdm-ORy~LySGyME|X9PX?aU&(NAH)AM(0}be1^taBuy4WttL@pU3}D)%Q;SL5 zn&A?xkc229lMX=kh~5uX^1l_4X z9{!s{r~)2|e~@Gi#sJ=G{koXR_ib^ti=x3_ukO|Jeo6gCx9P2uu1!H0$`woj1c!sA z4z{Z527z}8pj@ni*1VP)n^{m;0ME7#q{%O;st)n94Wz0BX(Joqocf@q)`#6na4N@W z(MN+rS$Ml>tKrEhzILy?>F3XHjN13l%nv=eL!0*cZOg3BtCjav@CS>=8#@^#FFnV1 zza+qEKJ`%y90Ipmo}qQD&X7 z8QROaS|C03wNsWMbjXI<%L6pnXSX-VhcN`{qiZJ077IIc1*=gV4;+w`CX99*3n?X~ z5kF!sREboD?{Brx3N{$PWB5ONe|Ywc;p$!fuau-e_X((`Fri*E1ex!~xaoPVGzUv|a807y~$m3Iu5*N$#sdD7OH|`T0)2NT{NG z+pe;ZktjR*A)5R{=gk7Fh3|LYtzZo_;p}mc{m;+Di+;zyaNgy+J zcu^YF-IIr4(36gaQJ7)}LRpka3K>pCV=VC9u|^jqnF|l`k+#`jq;RE^*_MoVG+|@W%>kW{)(K99sWu(7h~!wnjEc2AfQ7N#Fv$5 zEDNh?rCN>hNlKlWzJAjkN$Eyx97h4fhS(5evYOOVg3xi(gktAu2*8T#Z3Mh*Lz=p>MKKEjaF1)Wz!ys&)!YS7mh6$5Pbsxb;Spupi0xy@5XGh^(W6y{V|bqg{Tg z0Qknj36L_Pg(4mX+ZdAc(+u^o2O5c--7EJpUR)wwDYfu`p8~$I4|*RR8H zgM3Tu_jCy^y~7MysrjJlD?@FVx>cF2+f?c+da7ME00Dx@H zWrDs=N{1{4l>H>xzJJ{v*E;q(Gk~vQJ9lIUG28759eS12#RjD``{vc=nDqUVH{kYT z?u#_FB6(@TZN<|0yyKXK?yA4$Y8_cciN^(R&3M418114Cu80W>p)sPUO~l|RS^J^7 z;DQ3&l7pdnk&Qzg3TwU;W{<_fmF&+0>23f!*S|kk``=F+@sd#Cn&^H`g%4)t(^FxE zN@e2i=&Isg6rp!ZYU*gU0(*S39?`zj};(1DmNTf!dJYCbYiXo3z5yr*h z>j`Z{yIPd3TCRCrt1PNxuTV%Ar8881nf@aE8Q@RF`S&pJ@7=Y(hk+|A|M}@yoFuxb zUWpmx6sP+wK^DitnxN*v{aA$g`EOz17ekUSZmAMa!ocTFV;u9Xm&#AVz@WRx34Azy z3j_PyxEz3zh)=tpE(`O$nw*-EUyz@bnB$sPSWy{Fu*$8fZ?IJ@v8-!sf1nRjx5bNg z^z^Er?pf2`1{G&M;TD^=@h79#z3|abU$zSm+R>)WEj2v%ezCk(0iW`qC9ZF$`Mh=? zF5mfrgFn0*aBz6+iKxzciaL2ZRvR`w>kD!$L(nqWhvoYHA@t|rk9qAA1`{ql^S+8` z81Oz>Gc38a(OaOwQpn=K%lm^wT*XL=;9IduPGj2vG>%-U`Ad@}l<>Lzy_3H{ z;xqY<=3EyQ$&XWXuK!%q+{L}3mU}~Hf1D!i7b)M6Xwp|tk8jk+D|~zS(SXla3Skj@*# zdYp&I7G{cuG0a}+4Ph(|U1DOr!=#O8OaZ53q+xu8;)l8o?4;ziz6FBN(P0c;67`e= zd3L5A8z*zGi4#Q!uP}?1`DDKmr}({nMSSyY1_$8+3x(=b*KFjT(m0PSK1p9Fvs(+iLQ`dI7CXikBO^4!V|7g9<$aAc#J zC88iyL|G|9N>qQdhKJSM(W#>nTaBh@K8lBrl@gpS;aq5!V_ru6=_ zbzHyxR@u-s?P5}j=1td5zAM;Te~NsH_ecnATBBPI0a9@s*+!PArPX(-%#2ruGyw89 zHzU%Ij%XVCEF`)RS=Kt6?^~-83&cqPinK;fxHF$@z0+nWDPu<1YFbU3Y z?wq%iHJ`jnuXBC82MORNzO?IPO!e*RG>fYls1c`ao>fObyNZ4INd_=?WPy_K1tFhT zQRaI)A&h>I%`UMLKDz=Ya*;2n`0`@_vSRt0Pz|flJ0xy((^4psuJ1Q1n%)_+E~(cA zWxw<)kv(`W_2GxqO8p1juL91SUg-jU|J?u@a~!?9YQ&SLxp>`kFIBO}4HA|VKD2_^H3 zF*kJ6ula)akz+Qpo`Dn177}^LaO2#*Ob=sj`FPC<_TieWIXWy<`F~9O*TUUp2_TRC zM@CErS{&k+&p4n#`CFj_y_OqOq9D?C*KN4;*IGh4{A|{pC1G&1u$|Qk#}t%AW(~Gp z9iN9&(&*9BP~xJZW2}{ZBK*x_LD!I^Fv{T)t#eXZUVdtNrhc|d0a)m8t@v_jF6bJv z@J_Js3ux--ycF7M>4)#?>z9Sm)U?sm4@^vQdXKbGJeZo9f<3bFd+~bUu_tZs!b;;% z;QYId3fL1Hit)|8C^+ga?ZN(041CV*{Ws`=!_p*`dL*j6H{k((mT72A>hwUKKgE5zLOX_V*c#Vm!eG<-S@ zc>YryOUREt!}j>>rXQ{N#Z*2cs6Kwz$#QktK#XG0{bL4I&hv)TJtK+wRKhQt2=g2f zJ1z7V9;i<}6r*Q2r)4I_j{h9f#K>$Co@EPdm2h7eFff%#8`X+l8M(6AQGhq+ST^7gpSe>E(K(2@9o|*D#73TP4s&Z43tLrz($D1 z_;Jt`(eg!6lv)S|xusAZ9m1z7tsKFxs*x8FWgtURITs`+BYsVof zRj+ymMHZoUgoEavwJN6iSLac6{ z*Aj%1E|TXvOF@h6dg_QAF9g^jI#n8-FOo1K?Vp}Fv6deEaK~B2+@slMI@VJXNQcNJ zS{Gb_xheNp#Afw%BeIBY{TDt_4EAvFbq)6`P*!sfUEbLkgiKwj*kvcb>E^-ua=Ass z^H6qG)cuS>*CZhP?V5+jg-eqAbmTDMPt)YX1)`5NlFt$W#sr4*Oc&2LinD9Kg*S*m z5IHK(f`;2Xok+e{OQ1}`#9HXIgKuTcT4YlpUdb)8nn1{iHDT?(YjIL9b=E(&y_P-+ z0P6-DO7Yob0f(nU$6Q#eBd;g zzH+;lXR~IX!)&ABueCamat?IIPBJBif3K32I6gLheoq2fs=ht+i4%kE{A_M=OL=OZ z1gZ#Mh|EKLLZsZj%Mr?s{(AHuUaRx$--zM=ROs-pQ^4Y(@ZpkO(0Y!d1%SvfHaLB2 zGgN3h1fHKI>ZJb=QhGZ>26qNR(G~`1(BWpYl+SOg<34^|%;XujMGp9louq*ORE?j) zpFJBmT=)vJpHvC@)K4Mf0-Fr~v%K?np68Ea{dbnRCVZ9Col~WM7PHW@g zr9`*+iQ3EIYWVB3p1Do!1|uz=vwaH*lijen|VX zjzGC&6S)kIb44>E?~mRWH0pgo)?`cRb3X3nJb&-f8N9p``G+;Wb-kSRGt=TnS4tI9 zbQF%pnV;L%rfF5pP)a>bGAz*Var@T60M!$d7zwRu6Ra{$@BLuo|E-by6`#m^<2Z)W zMAO`{Epd-;K2DN7zaSV}{h4k*9*{>$V5|EkO@`$xa$cWZGL;%vn$Wkk80xt)tz;&u z5_Ys5K2v|YORtB!_2aAdlM3;G@zn)l7{zbRJ@$#Gs%x@cBUb(MB13;(>PY5ns;FyP z=vRiX&W*X-EeCn|n!gRxA71>?b*K*&ulBhl@+0Bk&HLb{ZL7PCKSng%dPq5ThQeUG zQ8@NvT$@HchMrn{Jq89BU&;%Abd@PwVMsZfJ zTMEKv#NM9cPr_JHi6)sZ#1U4&x(Cir2rgc^q?zT!DXs?tNjh`OIiy!j39nIVYB$Ie zW!$2AQ;qkQ-Vx+tnOB)?8wsl!N!1ylSvz;C_yE2VUcqB43sI$?ekSH3?^^#E+Tg zbAt7uGcJ6@&u1@9`}LC&iIfJ-npw*A3bQS4i_f%~|z@(IzemXW7$e$JWN3SW-b+7n&rmP^mo z$f~8(bw>@VcHY(9Z2Sw*2O-FCyRn zN7HFC5Z!l1_L%wtOAQ_Qbq%gGf%YIC1HuTI?G-}S9Az1-hksI;FPZ+e0oxvdM)zK- zXUb%X738lc{I3lDAL?x_CrRq$*xycgZj!zbzhcI8d>C*tAyn=)dLHdWds$WOBRH3` z^Xv$_%oT%B`4!no`e#+t(|<*FW(1AxFSOKX-yqQVdCSA=5`}h5QgVt6%+tWZDHYru zkGqwbTU3nCH!Uowtg?i~mnT*?HeG_#I1`#XI%PdV&BL?66P~Zu)gf|Vtk3XvxXJjF zrrT#s2a3f!oT5wJ+bDmG@lh`8U-G zi6prFGn7KZXe}v4uo=^f39$^dpgVtrf3a3Ln4sW%cJEgjhD{8lVIG8XvL^{ymAZ|f zO2@Of&TK{Dn|R?lALx%heWkW+El{8`3TUOS(8-))eC9doaq9t@Kt<#DkXM0WGL}y7 z2YFi06H(~MvKJ#ddoJra;lj>QtMz3u`AtQaje#1|Y!j8;AE%#wxNjXEWmy<1-LTw* zWs$oZ>qeGol$JLAC!+0!LxAQk-S8M%;6TaPw zGq{u3yVu6ZCtvr?zr*nTXbp8Lct;toF%bjGjDzGSw>TQJUU>I}27La-u+GlAK>5^r zPQH}9M_S+Mx44Ig-f-<)T*^a`q1H8zL%B5;7sJq&A-SQ=voA=)mM&{VNAT0zli*kk z+e0HSnB&dyXr*$FD9#U&eNehWB1d$#$u!Ab!FG+ep|W%4%kj-d(^gc_BvDSnJG@&@ zBIn>RG+slG6OwXST*4-m?pBnIim~erG~SffIwV<9l-ZV@_PejGG==^HTUm#suRMab z9DHT;&~lkI3)j%gE4lj36=bBr&<&DUJetK8^knK|p;!C)HFLdJabQ)CIl%97LdBQm zp8+mr28k4w(;=)`Hp)oor&)l)LQt-?QS;&DjVJ{m)%^V(rk?ck#$bBus#YkxgL!cS zW8bc>RR0u#{Qw=*<0T%qyk3eFR(itG4zvgwYR@*_mbSA3g7Te;3iMfxDw+HntNJ?k z^p*tK*L!JhGi9i0)}8t`6F?Hy>z{ZVNk&1bO0=Y}7NuB@tHAf)CR7yw5b1fhL4RlC z`;Y-P?0v&CB)mWk^=+#LQ^7Bi#Nns>7|q_m6rI@;afc5ok1|@SqsKV_U6Khu&|5ct zn`W`;v}zs3>y+%Kxx^E1FuC>cvV?Bv48QzCk{29qIs=cJ&*Jt(%y~VqkgL4+un?n5 zNq2b30Ni=kioqJhtmmc}7V46xhFxg<^keW%$e3ii(B&8iu*m<#T>A7mb&&_}((ORw zXSUDQ*R}jVX&8?DTsDw= zb0$#K$NB%AX3T>BRb=PagqByzLGo|#h+%Ly81lV0!SW5!84>{J5eUz}MHe`vKtgHm zA!9W6`Ko3_Kg|>{5vB}Szx>5mZ7Pj>g`1o0X}bkj^PsrP4c0v9oQ5`KI7<*qHITaU zigYpmv$$4mp%Ni(UG$vO-{M-TI8~zrxYh5(%P?NvBPOy)@&vW(n>Ui}A1s4*{hzd~ zG5O4)C*?fy(e5@P9NH(I8&|hWp57;Y#-M{s-}dH7lO_|4#{Eiibb5Y)BaABBz!N0T z&EbirwjouGO)BUhb6XI#0fzqd*@bVaZ!&^&yB7bo&K8oOw~#6LMXQNfX6>xI8y^ZdeWNB6Vn*eatGv&0~I zIa&dcLT58Y!P9NFa|W85aPQ~uAtn#cU8u1MC9j{93VU~W%fZ*GstWsEQp9*$X_+lJ zO?Sot2X-vTOgiTp_gABkv}#qR6CM39hKieiL+yo$&bHy%?$1za(^D7R@AhR0wFk=I z^x$Dkm&!W`#7Df}ucRn&W0RBnsKlqg^Yc~`u=g&{>wf&*Q-=oz7)aKZ5wu%2Bcf4(Ra!xA{E^D zIE1tUaXgiuwv3WwsUT03 zG^#I3Zo)q3g&JJpk4fb>ui!psl8bqF-yHgwE2AP@CKQH+KIX}6PdVhtzO*M=N^kch z3Xh@~e;J0=@H8^Ll| z5&}rZ0O10vd9mV!rCOxfjsgHO))r)BSlxOd<U%HyUcZk#Z=3QHNrv0Ql3G6Je+lx8D{iVsg(8BZCn0S>50${lAX3yT%P=dsNX zS>_GUKlbOie5>20%w{JtpWUB!K`zvs?T%i$L#dB_ak~?{5m8p)VxsxmhUgK4eWMmi&7;4;TB}La>|%wCg(qrSh_;iX8;> zJrMtsYMojx6-kc%zn$GY|KjWx(@2AzPP}|VsOYq?c*jJ>oSfa(!w=fC**g_lDsS|giIj(iavF31iENkeBD;57tiF= z{)*&W(a@RGZw9_;B&iL{pHv}BXlk#3gbI&G7oy2lC4ky~CeZJE&SZ|@R~Z#%xxtm7Pc-1AHhO;)7M^dot{F>9?llz1+o`! zndCbRR6l$r$fCPq)ILNpArG*YMi28N7S-FVm#9IDVAxOMPuVq4xa_^!>*UBa2b<0Y^| z4Pl91JVwzI7H@^*Y3TQy`YepF2&XeO%8KC1E-MiIe9@;jfW45`63OZ)wt%Eg^Bs=5 z1o~ZKXles9@OZ`M36V40Ob5IDgWRL|YKOqz)_vncBFkaSr zUqp4|N{0GLb15by{q`#D8q#wnV?2kOuVO7%)~J3Z zkGK=1lp78;4uggA$m$n8lOBDXZ=KKkp6#xpA3t;KmFOW~jVn=LaEhQDQnrZ}b%Zi8 z-7x~iP_RU^3965y%kj5-Plp81RS1&VXe@gTx2O|&+ZK@zUT)jyME$T-w5rO4J7)73 z%9t%cN$MI+=%EDk$F5dL2;stE>y{R^q%)WEYowqO_P5HV(VZ2wOzl;e&hL#*Bvp}# zn`*$cg}&Pv*cWwf;5H10?~A}YJ#7FPYByCV5P1I~`i8u6(--o$4G2smrD_|`3nz^c zs?#I8Yy?Kyrqh)BpZDCLMggY=Mv;N{C;Qk4jq(@R2lr2*^OBmG6shClfQxc*(0*<0 zAFm-SVUoa@rJHUjw8z|~_=V(E1=5$G2z$o`K;*mvbf;{ETpZPFvR)^#xq038Ww(?> z+BX#(05`~9Nbv-3x&uJO&71>Hcez@X#iT4{zkhLdqpIs7v*L##iB)Gb-!c_%$(|vb zpWk@b6t;ALY+uv6__6QP);D@=4CdR;ZGZ~5GkmF_t-4d{U*v87`wHnF{JQ|$dKjUP zgCMA`ITl@mIDhGev0{O!n@Rvo6o?9%N~suE5`6B{bw>4eV0|)_zpbt9Tr(;FZoYtu zE*tScG=)RlY{c%rl(7-t&zJ`DR*z=Kcw{|;+ftsLo1oF=y+y||^c^MkoJsGqR}(An z*8mg~IbGSe?PInzaZlA zAxUJ#CvC{S44^$8JjeaObNr?V>b9=CXas13ly^3~6hi>LEF4M3Cur^qbG_*fqPbaN zRCZ8#ZJjROj5ZkzKuJ^9m{QyT15kWLwk17-J?Ks|3aX*Wwia9Jkg4Z+Bi`dPuQK3| z?Wn!x-$r!!JY0Dn-stmYW7`(q?X$FVU|;Cx@#VYes_*&{GCP!Nu`2|TB|7>PY|S}~ zHhf<2xt@a|%8}1_zMa$Z45)+7?cmA4He^1=<7M|qTALnEvYVq<3w3mf8Rz$xUPjW{ z>0J2iKY8^=WXW{gaU+d_z?Cy<4$JAefl;fa&(hS|bUJ05ZBJF1T=EYX6>ywQHf<3y z@;Brfsr%)Xq>Z{j%{;+sbAh4KQH#|vz~&(03BTJVKmDJ8q`X1y>oXEe+ON5|dRa$I z%*-(XD$v!be3j!Jp^oPFPs5;YX1Ln=`%EEiOh%!{p|X_t{5yicA?6fil4TA#N-tgS9?P<&Qn2jR z*(E{7?6$CQPJeL-Ufv|#Qu*CO1ZSjpFDE4KLibzC`0qmXoCybb1ecT)Y9xX57Z%M) zsILt;UcWff&AO~VgC1#TprjN6v1`95+8R;!IPI`=S z5CGZbP)e$6Yz07(<1$3RiwDC3^(q92=?WScwY)T;dK(mi-kg`5G;olQF5WUKx>(+% zQn@s?$1n6Q#rplzq|*g{vB2~@Nq*{Lc$z&6Jq)V>bZlX8-qp&Py`>2MqlgBxEu8Zy z_(A3ev2BHK;Z0BOSP+jfV}>z(Ee@*M&=x=Is*i0HjG-&-N{eK*Y=;G#Tb+{a)5_*kzya-U!U7Xkx_UM?I6KPqSVw?JKJ5bgz_l&!y4x0OfJvOLG>>T9Wi^t-~3ojn;I7r;|*hk2eS*$xLY}HpjjzK2V2J<3nQQa_7v}RoMK-C z_WE^IR_Hj$7TYIAc_e1eQ4-ZKAB69ygcY6ND*yXpd)mNVZx5jrHP;A&MBz~4#-H{; zP;q1hmH6Ka=KpY(*E(=2!vv@PP#m++GaPgwKjMdr!5Qx@rZ_TP4#)m%aN2&%o0da% z1Ui3GFfY=xd$a!OPJ7^_B^Ng}XVBF4?GkO&^}8qa!%iwXu3=#JWPFrSEFm>5@b-I_4%j^@ZDvbL6L+%M1TVIw=xl$~R&D1?9H{Gv?i(B{ZE36= zf1E%$Vo%Zg6Kixmt*3Q7l%RKwd+S4PeiIl zE;PdYZjBH*Y2`JC9Ce=CR2dUgv&I8XpRY~Q^}2D-gF|v#uSs&}(`P3-Wmu);U_1A? z2bDQP=u>gHmUZL1({xZX+ibt4H4su`&glLPQa`Iw)LM;+T(fAMo6{HDU2!r-fPTFU)^^O+&0Y9Z>tDD14i_eV-r_>gRKv(f>NSj%3#_ z`q`UT;!|85fj3{enB*%RcUS!6{xB34!~?A7DZ*_DAj9z)J-o<|jIPh8+Eq9l_Ghvk z&PC+BLoXrNjAuu}4G6rJVq8!3m!i<|J4=-3lIl5P0{e&A&cvtA@`Xpqx6bxK zvGA{E)QT+cHIjHmD~iwRSxUW4E>V48lBn@P;~kBjmgu{*IU`(&iTT!9+l+N|)T)eQ zZABc+?qHWY4)%=yMYe6}Y#4-jc4W;C#w7{`m@$hwC`)V6(zEnJ`D;`#jJ`7Dp6MMv zJyLohV3`h47^hMiql}59bt^4 z16m?Tnp*>WQ zn>)T2uz}J2=8n!{j8L?{`#^0tCCiX0ch?O_UO`|3CzN%^V=z*KcW?ZBd-cU}={JQQ zQ&@E?=V{ebE}tH2@YZ~Kq9gV3(^Gvp3Gn*I?07!&n2&8?Co}52z;2vO+5#R19xB`RBW#9rSV)R>WgzIwLg1H=U*6!z!203vQ?7?g|G$D%v=BbvjKNHtT{UF}GYq>|9jkP5*e?&N&oF zf8HwYvE=y6KWv5Q_8TFkWycc=tWJy25{I56uc#t08H&Y59ak#i6Ui(&rF-rFq2clG zfb~zok4r_(S?CX7&10dA)L9o~Ihn$%IFELSL4<39JFG^P`vn2*jUe-o9pM&`c)Qdm#@S|(&QpH zEUMOfVU9&BWtX7S6UAgO?B@wi;n99x|Naf1XqHaKsd+3ZvBq;tE0yw50Ua6LTeXM_ zn#!V47jI1_j1gtN$vj48kx4{JQVNv5)Gh(yk~GOv3m_Rr_Y6}J;bpXrH_vMc)1|FE zF>G=o7=Rb~gLA!$Ydw4^8_T?8j*VEYB~k z)S10MqC$38xUmOEd{AFB++o909^=kamYbhuoaG4#mejz$3EMNlpOu5VO6x_Q@gT9p zPaB<-eC0|{LLrs*abfb!>&tA&Nnf(q4F~%oQE7pKxAE6BL^%j`2u*8oitifwc(}w% zYg*+|d}NBIv;)psmqY)gO&3c{RxrvhW>;A-2Ovm#QDvx^h%GLYj~Eq}epU8L85JB; z-XX@sO_1c8UIWDS7x_FAXpQa9L5zuHg#vt|W*L^0r*J4}c(hV^ z;iMa*&fQTute+OETSoR?{oF<@Tl|fIva9Xj3WeHwrDcuNV#lU*GAcl&!4lzAjmi`F z1}_*>6a3h`kI@FF@SOQD_gZJ?7MRW=7{7th)6qz#mG@y}-sJc1>oaXm<>4?BHmb)nsU`s>cS159?+?z}*t-zxER za)I6OZI}tPm&>4G8-Xbc92n(j{vgiGHx)}dE@^O?0t$#`d&Vjr3w`ys%w`?8vYIp?;2p2GXT0jzuf;Jg0cc&pyG12g9!^>3b1MT@{eF_>%DwQ(cX zI~62=xwZaz;QpRX7>T{3L-yh#%34hVAp)^GFNi}VxB+yfRAJ|HluJt-s8=ylES*?*&&J`A(+reE5VeqHi@T-;~(Ji_cofB{Ai&)_%M#}bY=BCKTUf11Y2~iGnZCV=5z@KNO?TSk>H5b8iVs_R@-J_H-anLiaq#tr?6;<^ucz_QMP?)v zDZpy60}l3*v!^8@8aP;d8P8V+q=~(4H(QmZ{cy0FrGck^a9k|Uzx_7-f{-Fu(i_LEIZpeO0-YbsK);Rcvk-$84bY#&OmA$$@Y9{8 z)j67=%xH9>ihzH@hU#j}ky92v-NE*5`Sn;^T{QA83B?(m_IkxWJe{EFczeU!A*oj7 zTpgK=l~J(~%Ub)8UfV3(FL_-;EFABjF!UHFO7YL? z*(am7{^u5K3`YE1cGFeKwR) z?d%HMnW4AjNA~;i7C8@9#tp??z zT-;_hW2L#LBP(Ep2rz2JRGCbUC@opRpkLGV`Z^iuu> z26qQpeLn0CVIqb0hPm!L?~U;NZLoJpXn*`fL7R|XtKOfK{{kv#STfMM{LlC0{}V9y zgM|PFcB~b#s{q*YUi)s;7tpJa~h{``HJUlvxpWJL{*qUq{;3mBP{O3j*9UvqLeqp}@ zzjo>^a-Bd7pH|AmijI@OAD7nlm&BLL>Ov=%RuWT}rfOZuueC_cWt{gwk={HvgogRv zNioJ34K=3C_P}mV)l_N(_=UYRe9ixESh%@vNJLb$Hq0g_fe>wb-6b*Yz87s|diH(F zR8tC{oZ^`HlJW{obpE}{x_~STxB3=`YRAUb&g<|ZyPB@vtIdvueZvN!P8}nYirpSP zQ_s97?8ctYNe?&;y;_uP_jt6l%JXu3ZIk!CL*|EF&Mk)*d#^s(AAEWK)ne!S%vXx0 zbNNk|JV%+UXC~5nBc@m;K*v``n5IMNwPLjf?Vh+^mfRjhW9GRebBW_LFG<%DZ7%jI zd|*a3_e7QgOMY=bsa?M)h3rwYjc55~7V7&N`hF5G_2hN?ayS?nOfGS2M;N|l&>bDG znW9|xn|mubTTjUg~Ld??NAcnxHovZVp z@!eSZd8a=wt-t@m{v9j$n`ySw=N6><5kRfi<%wJV%SIYFclleF_VvC;f8VLv{qWnD zowxr-dtc%Y_1^aXoqe%1#-t(DSjsjbBuSkiWoNRaP@$|TM3ThJ*k#|>jI5!kR7f?J zBob}Xaza!};j}t+&hdP{Gf`)`f4}>A{hsIUInVF@53bkedSCBrzdqeXR+lgRDv6&M zAMCw+d1eN}Dh{#G5}reB{IbfSneX@G{ka#<^8GrLo)-l6dp$1{P|SxH&x=@CEhrUV=rexFPmrtJIO*R$&g1$S)1}N3q=)%+ z^#yX7j)w3x`hJ@3xuLr0X-(CuWAzT9+b;~dRNuZC{czH}F+l$+*b$X?V@F2GV|O^1 zL?=X%<~gP$re|1@GjsOFx(Xf1E#j`sE-tmt-x*R?WpvcFq`GdyasLyi&S|4<&tJ$8 zPV*#RZf;YHXuld<;eDpFr?IE+z<%$hn^)1Ty!-vlx4j-dI{(;nX!z8~&Zp0+$6Q~I zmksQ#oqFPT_kCUO&%ao9d0qdMsj;k%M%v*$CYcapWqvHG3U5%LSRz3sh$y)mP)KG* zi8*xl7W}@uZE1>*GrJ;>sh62y7g@FCjQ5XSXRGhkI=96yGCNmu|BUDDs%_opPQVt_Rrm)B5;*Dq zHw*f!{i44-EcTBq=rgFR|CI#|e|HP22*=(rfsp(AmB5z2B8`PaG?2!MP!wmL7xtZ` zA_*r?%PTQL>t^i282a-{6UC;U`yTnA&7e0Wh%n&n+3RsuFdtL6uFDIZ8l8hWXI zMl^=ucl=XOwJ$Dq4)wrqn1f}~=Meu7hA)1DeR2-<sY^+ZHG&r<{ABil0zj~V2al&50d@+)ezkDsVZKzr{LNoLTt6=2y7B~9a@5rJDd*^Y}L$UJp*?U!REiL#KAc+lpy zWyZ1lHY=@4Xv$F1Cdz*cX$uGqJ^Ko26D_wY%bPD}iCpmWH=oGiq7$5LoyYkj;G)xf zx$f7S7d_@L`}gX`1~x(^gHyM(Eo;>XADWNiPks2vvJ1A4U`NMjhQ}T;#3m%Ch(~QE zr)KHx-Lf2HTj0EW@v+sJCFQwW%F2)BJM9L`{-@8>XV-4EJ$r6@W7DO}yq4DL^KBj4 zU~N3R2W&0kIVzA%|L z`M%@n=l#Prqd!NC;GI*pqr{a*Z%rC4WedF+`+QUV*p(wxP47pYr%J9S)7HmJo18Aa zmJa3>tDLT#F6+)#-`Q1Qa;Cf||Nk>cr~c<4ts=z)yEu4t14!qIA_u}rt22;;tPMN} ziRPgoeb<$vBqW73ABh{vlqXvnWb(X_=3W%2`hF}0sUEHLEXT&q2AWx8DtF z0^p7*SZB`4HYMleFO4pMQCb4-m{u^4R#w-XI9Z!sRd=TT?78y|jl|PU7x^e{YroQw z$-Y{H?K*SK%CE=mdb7n5a0L6oL)n{;28V{9th+n%?D?k0W8<%0PfXV2O}%~h{=>)V zpFe&6<=5Y4AQVyBxQ^QrffonFTUXo`Ly|KsFh2Efl)~XgxDFZ|Y+ym?EXELm2*xd~ z+J5dFrT*v^;C^p`W<{BcFhz!YyBW)|ikk-N}VzK)Oyz7SaPYNRmTK%5j zQ{&BVWFuF<I7v>9gm;{LVYf0~qtEzntFKdPS_I<64)({*Ce7eK&9M znQ-8~iTHybAHx_M8GZWf`Phq>e2h)~^yc3f``rgizf~a67_77oNuPD-Hw}dn!vWo|8#FJ=i^dT)agMr3R8AkjjuRbLH>L(k5LfJEYF9WWfJdbw1w8V29{zW~?<5JBKI0SqC8k)C8r1oyHmG(gctqc~*VJ z)7*z$AVr$>tbd6o{^5T31Vbpezy=0M!N)D|86EigCa7bA6Ab?dPnP6T@No;k6W}bq zXXSHN(}m`*oOQMHT37e=o*TVi@$}%~qyKt5-Tr=_)h!E4qEOX`SkHTLSfF(tZv_$( z#p7vmEEWo5{@K8f8^c1J_D7ItqY%;&lO#=3uhve3T6X+;w15`xZ;Rft#wVoWHIwR#)P>fpC0v|*WNIPMcvY&fHLnZD zstZ23JAyWu$t#BFQp@8;l+Jx$=xUWm)y4-e&2G!m`G62U1L~7^-u5k+S?d3S?fJjnH2C$dd55 zuHn|A{PXyy2YcKdA5H~NFaHX|eSs_hLw`mzfFaR2!96K?jithhG&Aq)ynN-Xg6+6( z1nLH_?Rqme#b7{0jnnGyb!^4T zu8Ml3pT&xrYOU%XsA;IKT~XES8vIJY*%`++a7jSmSLJ*Tl4RGUS!voSMT- z4pzX<2CJoidbNc>Ftz~d3)5J*HhXyi71V4JZY9^fT_Nvta#Eqy1A*YZQ;|}MZdnoK zs2dP*|E;{IB@j$v!z0Vg$8`hys1-ukQ zi~>@(v$D)qMX-k1EYc^_Joh7K-CU z1+rm+f^`|ZEk$7`Ju=-on?eBP#6nM0CU@7yf>IZs!+7a0e)9CJkaPHlg^c0rRL83A z&^^EsrJgjNj3Qg29+1{Xufb_M>4Wp}C_`W48k*>dCvHp|U8A_WHn$5L6e3j=p*{y8 z6E!<0>6G4Gnz|X=1kOCUdVD%GsY2k)$#xOInFmd%=NLi}4C)3YGJUMsY zk)s~C1I4?!WtDO{VY9OFjUoJtZAS4Qupv()iKI_8fAVG#`Q2hW_wT zO&?)QwBNd^NhlrPypn#K(=8=56&6@_o6RU7^3 zExR$Ttbx!;Gb}WgO^^<1FHKXgRN5L<@or_#B{ER$@z){ttXi`avUr=j{py|%q7MPp zPsHEihd}qlKh05CTzsIDRpJqlwuK;))7_V5@3G6%`2LJ3dQ&A?aS z6@i%~a~s6i{xvJ48>*4P@zgU|;IZFqyU_CbW0jIo@%T59te0B|F_LeghXRvQ>1ZfT zZ`1meEF;L3d?4Q!6I;A5ugrZjx6*4?IAEDw&@B3+1(s>Ho~g{(B9C|R1j5z0Q`(Br zyGeK)t6e;pK>v*FoCRLF4(SJXF2f2+1C_^1W<>*r35(_peZ#j_Z6f-H z9-bfrs5GHO(9j4;p{vXUualD!H#?fUh9&4yN?6uVEJ2!lU9n3YGS!T#?nl<`UC~{u zO<#uS8q;#)K9*_TBMf_~YafKQ{wP{P;-;-hscBMpA&>N&+>E?EM0A1oilShy!>m*U zfmFNsuAHOJ4+wV%0-iK|=&FpozT;VaS?TrqDZwZ0H~PQIU^%lOsbtCy;e$#VMKX}B zoS$WFIpY3-injozHM z8)tUZ-s@oDp;@u`kHtdl=08@nfGgk#gF{IuK`%xzs9Qm}^NJin>b#Gr1GRNBnzU>{ zB-z+RCL?qazDH5GC8IUCzotKXz@hr_0$M_3n%f9ptUq{7);3l|guC^YNF9!mbDRn0 zNK&9z+Fk=<=3b^juE(ly{G1-Y#eWwBizWr|A1<)XJaoru1D&YWRZwi|2@r{$*u+Bk z2x!a(DDXT{ng~NohwjK`zckq+R#mGQN- z2uP&u^x^T3-OCT8eruDF^NskvoT8V&VkW1h??=U~AO@l`w&Rlu4&`$XrIrK}2<7{; zSuWxy!GS+e5u+cQBR0N$!jA_F%Hj*EvoH;!4k1Dq2K;DfTKP zXb?BDv$UOLTLmch&dN%QB4D4^1Ls6R>8{{f8tAnHxP7kqHYoz}wIq%mY3&{r8>*@2 z4#g#>&?8d4QArtI+j72?Rn}z(e)D<)jl!0hAP`DrCsP?i;}BZBU`8{AVz_AfVd1Eo z6QRD65TfV6YD#S9t}>d9I}#Te(1m2$->S|^gF`d~b&ciXt}4cY9&9b_nD~C+7x`+~ zoiASx$B#QgW8j#BVw7Z}Esj}AL0hEe<P?G1|~;-$aj<~4s35Qf|rRs+=W zsjxT^P)8XKq-^LBu(HSC2A|w{?bHs06qr!hOv2@?&?GG{DmM_))qPaCh3J}h7meLU zr}>bbu8qChRe9s*2c^(L%Zj7pImk=xKLP>ykXuTa4T^U8rle;mE{+Y!v|5=Lcerp5 zE{(g#S+mp|GZ)?hL){4_LN_5%1caXPyQX;~RcE~C0-P`b(Z+PBIh#uPt=}W#CqSL7 zH?|10ejjh?03Cx2+N$jGK-1+29lZYj?$<&1O|`)_(v%x4b$CqmkA^yD4ga{V0oP)` zYh9!JYs=ujzOJFpxObF|_Ck9SNY1FiOGrAzn2MBUYaRBIR%GTZWFvk+HxEQJdXk~l zHEb7+gAVL=3#nBRbbIoPTkuL%p-uN?T8QCQ)0AY$$4Cu-pega%zNLLN3%70M^3ry@ zp>;^y?&e1RpHjYy5nl@iu0X%HA#qs0%ve-B#^}YIet~T~)u;OD2`~y*)%!ozt-iZ{Z~b@bcdoTx zwv*NZ=^&6oi=~}gA!zNB_iJf1R$?oPRH+HkL{lN0e7c+;@27OFA>qKrG@hfEntuIO z!g|`nv5Vd!ys+H|!QG+jo7ea(?}j*N37ud|TgMi!M}_f+tS6LK8vNK8-!5o5K9l@#G9snx;**a)%^HhqGrJil&lB^eENYr zDio|J4Ami*ARu*QJDxVgKq$T5ZY-+7Fw;f3X5o!pMS1QDNK%4Lj~mMnk+UeIU!uv} zhsQr0IG;F4#XBvOXVC~Q>KUZ#mKz@2c{7;%CWpM(6tSwm@62uwLvEDdU+F>F+4>}K z#V$bQcc6K*mVI`p@>|RHIY`<_zq+2k4BJfTWmx#a73oTpAAtcZTXAXO5gB)HL{}3NyZ*}+kQXFXsKWPn)ANy7s7>> z96fPf6@}LgP)?y~{A6>^Zo_k-Xs1z4F!r{CJWJugww<9P&|QcmuR=t=@< z*2fG_Rzmv(R1^S{>CUYxcjQkeZ%fbN60&;ra&xI zBr=Dz+!;y^-z*v{x(_m5hpuXD$c$DDwBkM-iV2_?|pJ9qqzY8)o*VHO1~#iIE@D!cFU&P+9bYs-|dKZwh? zkq=nZw#n%Ugv|>_t%HAuxa|4&Q~IfqO&TP5MJ9xLipKAvm!gJPU>MVuB~cf{VxUp$ zKI3W5EcRjaIb$(sXfa}qt#@yFPil|k<8h*1^wUGrjeQ;IyVsv=ZZtror(E9X&a20b z6$V<(i)(J6k1uWs*W*3P3=Xn*R=Hz`+$^&LgLeYDe=uwC2vdW0PYb3p&(HYVUSoa8 zuILLQ`}w`=%GMTbIoO%&ZjG=oM+JjV!s+z9d@16Cy5LuOp1W)TvmceYp=Nm+td7l_ zR5jZ>`T0H$C5yu$qoX6`IN|@O*ZAEHe)@ar{_5`snpfY$qVVdW6P`3S9wCH8I~Rwr zSt#hSp%&zvl!9`m+}ikBp2tRGMTEDUSbCoE#1&1OHe!A3LU$rwqaI&9cX6zc-@9HT zIWmloJ-t^%E7*?EzNT&OzMs`FFC%1_5dG3G+b_Lt3Xk%|wXWnzEQQl|zMHsIcW8dB zOP#j0u+b}i+%GMH*XAawE5c(g^?`Lia{8YIf+n>^+^G6Tu)e=RWm6(>6O|9_I>F@j z9>%X8%ZFxI+g)7A1k4g@TpWZUpv5=i*RnG*Em4akkVxfxiG(#-v-Q&NIF|4?KnHvg zC~p~h;G!d^Ldazc8S0aRzy~*?lpOK2YZOGtI*Fk>OL=S~DRJfxZK225CVPKj zw(m7Ed%bCNCPz*A=wU2X~o8+|kN=!XM15en-e35>DG(Oj;48Tiwn z&e8|~iX8yT@RxW31_~%F;#Vxr-W9O{?#q1{c3!^Zfqle?3m+)-qoSCI;!5-B1bBXB zt#VnH2S^Y@HpT6>jhoKv^*l!1-B%9!&!&yLEX;DJnZ)IMTM8fojK^lOQ%1z#iMbFZu=do-g2&-0jD6k^3zT+WGUOH(yle7$kCRP4wM`%t?n{NsZPjm+UL9Jq0D*BOH{88qZU#LAx0t!7*KGbN`Nw3Z%w~9vs%s}pL2mPXg}YQVw$p+$ zJa$hsVn}C9G<>iWM?Soy-MKAVI%sS-X7QXG0zry3z|QDwkYY04C^znJ^{b$Y46}>M zVic1Wt>15q@Y^fE4tqZS-1ZYZIoJ)^?t}Wcc$No@9r73K1dgjelfnY*tW&DLhG`0$ zw0Km8#fL^j8oDZgKt&hQzz{ggum__uv*R)!=i^dnvetuB#WzdrOdSdMI?f?Fgy!@= zu#{)9*01gkHF16`@=^1Zn{~YSZ*IqR5YNI_mRP5cPT#=jaFoK360w`*T@c1%>??|u zOwqe{6#5Q5WXAR$e)>vwUi7G^;=FKT!dp}H*ARCTK+n^!=-IlH&RgAY|4k4x6)X(K zZL0MtJW_{X{cMHyBfsZsVDtoPC@L03N4mr4Nka{r4RCtL0?k6Tf4MUi9P0O83VPGL zSh(_l2<8wc!YWV+P0(8_DJhL1>{L7unUTrxk;7xwA(2Xjni#zN-mLNpWmo(B4R+$X z?vfT^VkMY6zV_B)^!g6EiOyyR4GyQ8ukH#ECDgNKk;L zvp2Iz9da_8iN<|Kv%mpC4HE$8*=+P{GQMd&yY&!)5o9+P{rb_1Fs{wmH$D8^C}kfc zzZZNdr4Cod6vY@RWJnIa2dGT!JW)IZqF;@=+yoH)rq$g`iF!EM7tw46_7?R+RM2KJ zvbY5(6pdh~e3+G*rtU2dvNIe~4T(cxlH>{LrDaMuZE^gT{B?y8UVQcb^0ViT5bG^u zz_-Zox(mEW@Ne4r{dsP1V`cWcoY~FaDC{w#^D>9$-8ReB#^6(2FK{eTNt6xh4Co^R zsu?llc3*?uYlzoB0fCQVF8*2mHCp;i{uZ^f2R1H;eDrV$EC8G#5d8+XBA!d4xa&Wz z6fZ_j{TeX5a^bU*9joz8Z-?!F%LUD_x%}z(2zs#z#Y!W8+Exrj?6dnC7Voh)il&}r zJ6Ghx?Xl!eGU7OmVtO5f#V1U$nC*9`>f!d-=#;oP2OM}`w1$2ct98iI1NH1D+g{=3arLYAvH?-~n*L@VMM7m@EF;<4wQ$ok9^3lXKYOb?6~n2E#N*i>1Lzz#G8CkXeC)TVNN;<^Z}9H;0v0Y+pSE^pIHC*vacjV1_A9-d z`AXjg$iK(RI8-Gc8T;I%7+UZ4%?f}6X{Ag*pKX}?I;qh{8~oudX{L#+av7+^jML&) zW`K)MI_DOJUmXjSV!KxlPN}TYOMW=XkQS1WlFphRz7(@pB_udDPLrxg2t#TDim_2l zh|kGY$rP7OVWg}PFUTt^7xyT#sPd@zPAdR^OE-0h+Bf{1#j--ADP;ROG1=G$DI2iv|S6)WJDp3k|Z7r9Gi3=*CjTbtW|1C)A#{8?9d#sr*e zQ`^PnHC!mP4Pxl)4#N#);bSLE*q zlmjAKNcABe`v)Y2wn`PBW(iz8Zd%5ffn2L9HsvA<-7!T)T;c`fFRK=73XdzigLZ zJ-@AE20gHnkp})|RE%4yp5IqVamcZ(>aPjf-RgbuQJu~qp={903klwOVX&{=Mz->f z5&;?7J2U@G$YD;z61GJ+7``Op0yaS&@HbFk_3Lsq1oll5Bs`(oV3y0y~31$b^{`sY{ z@80P7*9_-?sSPy~6c#V92yv%aZBYn{F~iwn9g2XJCXr|xAOsFudN7+Ml-P}G&sp!s zeUpSpy1JCakUzT$c{C198#%%9l0Ug9{zEsvm*`Tw=MgWp}v8UHz> zx72iIfhj1=v5gx*eh)!*)UMZpYuDoS^i+o#x;5K>ktl9)@mvk+o7Nv_2zA;fZt5Ocr8w&a%U z+|9=3e%;0Oy)oPV^Zh;k9_;;opL1U4oagg(&UwGz9*eqfYACVy*j^D45eZ`>{f8nV zI{*=p?H70N5K7>O{-y{IJDqgz>57OHqs2GvM1|Med>$I!5-IGIpA%Y(+`s$C!0_eW zmZACjzS+(ZdVT+F)8O1c(){24*@ms(IpPSTjk3@&Om7^VYZ#boB`@@kv)U>2-ce>3 zl}Vmj8kkrdo>}gqGDhcC`o>t4>1FEdN;i$!Gs+}QF3l}*+$#lx6N}>utFXMa=_Llh z6-?0AgmUr(gEGsY%`OWi!_&;c$@wLYU~Fz_fI{x0E|6w9Y_6bnn6%t87i0ekgv*6LeSLjGhrou=tiNkwOSHT$5Nd%< z!I!oz?Up55z*yr8PZl`>q45G^3EjG7Bh(6m3QvS2pj!mJ-CaUSPfvGmPfyJM{0mh= zx5CTyO+jpnV6oajc)8`XMbI(E7V^Wa)FV!Cm{qrhSw;L^pIcfNN?4Wp!cRu^-M=Gi zLYtbwl}h3~ZfMoJl*y{nCy>`zg|}xJ%#u!Ka~+Oy%gUm&&7XwwL_~MA+$e?Mf6P}IV1E9{lsY@ij9p8K99#@^EWp)xjaD?X?>iy`2k~)x&)L!r*4tFaFBxGXDPB27i;* z%x<(1tS_&Zqgp3<{nP6=6GbJ(3b_$FeM7lq~k((w2Vzs>?-CdZ>CZwZei+g z!e%dOCGqZPE4H85Y?jTgl+=k5Hb%s&ho)vC@joJeq$Xu$Wrclw|2^ZgPi(*&rqxgw_UPvRi&%n==ev*j9bsAqKeMc33FI%9N=$r%rfd;>*jD3mLid_F*;9*qW&>QcU-}~+r_Q_R~A5PdetOT<+>;Ha-4t^(o7%gGV zxUci3h)-5AfA&5}5D_^cVyv(G=rx(1N_17Skcn7182nU;(o3~zTLgHyJ>qwz?%>JrwIiR_Ll|o z_(D8u8~t_xk>Eqj{XJ7k6cI`Iro|#m>WMr#h37C+C;r1yQH_S%isWlKj*Ul)mNz8Q zC2e(J1iz+}tJ~VAc^90vzXQL?4O;hWOlmT@rT9k&zcKwoO-^`rk(zc~dnI6fUR!u^ z2n@|}%Q-B%k{S=E2Gz}o+J*ziYo*J(1PNVYR}8q9qtgYk!n51lvP8i2!aMMvYc4dy zf?<`_ZTouga$MIburP2ekkKVb7MkfJ))W-~CzuD}J!b`}#DjlC7zR@)l~vfH*Y>aJ zxIi>oXlICcFiY6-(QSiko~b>xy6tW^-hz1{obM(~>HtG@3ctd?`^Ej?25~dBk4%Cl+ELnJxCF~GDU#%NDssI6KU_V z>6ut~2bO)gLm2vdv*GNHBbm6Y=H>wj5wkKVBDKpx9rM^q#L-!mz9h9FlI^TIw{>jV zI{Mzi)cm*YLzm5=jp4>Uw$Z>y7sN~gS>Y*iBtz&!=5@es$l@{{#W3kV zM;Hc5$p7I#{k}rpDNIO|9^wHS{e!%F#)~62KmYejf81FEyF%mxdE|VsbDsew_x2Gz?i5!J;37B6{LqCO?dTp>LNM-5gHI5BaA%ohq=Uo~FX7fKE0v-sNcrOLTm43^3v6Va zTB*==jyeW=Ns*YT@Pl3K7N+p3Z_)s&}y4?=?{h(-mVfAbR{A_&aV=*}CY= zm4aa!rGiVwdMJBz%cM&>V_Rc1!c1o&=h#*rh@ZT9-y7$5ZdI={1fw>X981~5ix}XZ z=Gt(b$H9N$!_>V_}FDUxL{?njdNjonD0Lf&fcs^Ny!3{VAB zznbjRPbZ2FzX9T0XT(jU1o%IMK`{ARusSK<=$1efw(lnQdVS5@A-W0~Yn?Npd!H%2 z@dh|wukFj2Nm#cje`y7Ys%dUU-Mh(^vKUw?!8@2S$hrTWKJRH(zewd*Y9DEh0w$3-=xP;!hwV;S6I? zvkwub+seCjY73CeeXbcS1%TMRzrAx@<+WL^d3U!DB*Jhuw1q5t$%BlY@_Yv|1NT4~ zZWq{%=|t;qMJLD>7h{Bl))MSqMHm(HloB(EtPVknFZTd6N0aBw0z44k+qV6x?;j`XBhBbU1fy!rgUC| zcW}N3qz{}Jd%#jyH+rjN3!w_`IMKszF$%sviY}uW8AcZgr@vkqS*yMW-}kR64;h?A zJ5L)TkSUU62_!@5233r;B&0i|ms)(Qhkq?4#v0M)Ey-lkd+O@U7)shybUe4GOL*td z|BhswQf5$w^qt{TEGDyJMY;z}p5Q$}L+yn`+#~>xFUT|GhMqeUEN5MU!N%N}SI_>n z@>*wtUg+ikDyXyML}mdR#2A?)H$R+iLj)NH^JB0VXZ!eP_Vw;f9CEiWs|+Mps<IOLP*Vo+mQ=yVd!K>zLf}UWd8WrpO?4G5D2)ZaTX3^O$caua1gRP}wY`qI z1YK~J3@rEmwOEc`e*7(pW6fZkBa2;FSy&%;QJ%)|s{gm>O1M9|4F1J_5bsk(qo(EI zhPiQ+f=B1eYld_NY?z8`1%`;OpUD2bR@~cVs#Mcy+ic+PHQG5=EOi3+(-j%ZVz2p@ ziFJ@MhyD)WJydQYw1O*thx_u#A61!70TR#r}I{u$)b-Lay;gGbCvdb0-|yx?Fa5Nn;KuE zJwZ-m1pZ_2;vj?F3af6x`59f+*5-ZqtF_iMG%q*!h)1HMD}>Mvaih1_WW#fU9*di8 z3Nz%9FG#TVR^$PUv9`)3H^Oz`ROe2{3@+4a&A;Dsl>OexSyDU;=btVEM3Z5$o`X>k zMw@V)Kc2?eRP3zL^0Sf$f{& zHEZ22xC%y13zVJVsl{lR2@*1>D;a~x-XR*`6q)ZX-t$3Haqvn+jP~XG1#RG9@wgyB^-xakGp;Q*3 z?}k;cT_6xMe)4z*a=PWLwOz}6$4BHD$9G7P6(j{LyiL80e&kn$r$ z`PfL2T;aw`&!1$rf>Q08hMV9?kG2; zxC;Jp?>K74b|$6dNcNJ?rmTd~Sad;U#_iVoz4qZ<+Pc*QkuO;$>9>{7 zR;*4BmHS-JUdDjG-T>;!^kD1JlX!?w-p7nE^S1_vAHCag>wHlqsC?mK@?bKR^LtrbRigBmpBs68wM!t0$K2JuNphM8xJD zw}TE+LqR=KfMu)NfBnCViKtgKdi03qI)yz+prOT1OS+0|mQ(O|zi3cLbD%By)f=JI z)JKMU&%h5*?M-!n>;jB_(p$p)uQzK4KtHANO32rNLkti}X>%w}f>mZ1>%SbnN{7v- zK8NzZN&>rsf#<^KoMyQI6QOY$`2o<-wr-1l=>*lR^`XjrvP?|l-N`7WM^O+(hE=61 za@5nuSrgU7Uq`g#VcKc5PpXpdc`TlB@2s(ced_?E#JdhGir_Zc}6sfqf>J-LO&`AT{ZmY_Ug#2Cg zX<0Zi#5*@IXHW0ZZxVAu=;^oi(5@~28o_o?+eRK{ISKAdeBd1+DTPcQ`4l*F^jm9o z>@XeqYpUWo%*NL#m<1*&>F#HtZa0AYUCj(V0mOMIU=sF34ydoEg@8_x7dr!XsnjTe zxP!-_Kw~B(zzVSWA74F&6}b~Sp{037MAYr6e|Y)#hZD@nC5k%``oG3fSN6qL=PF(0 zt{;w95aQ^NYW_Epmck;ga<%=#ThKu; zqN5_$%oJ+4-^6O+VJREAE2jzne56O|Ics1mjT4B4qu;9avp&z5&C$tk%joP!rt|`< zzy`WCSy&!#9cX8P7swm-9d_PcKDxI7RAH0_#7ecc8ay`e7{ z2oQDrbn-dibcXb6=GK<$mTFBdxOhDE1HN^Rmf6B$AC~wlv~EKv?*s}BU}u0fS0|FR zO++0S@2VY&7ykGG+ktuz0ZM9cZkd6QB9- zx;J3pqlQVqdANzuKfN5XP+<2)S=s|pg|^T@4OGT*1K6;Ys^bHT>@MA^O=Tb+co@hI|Rz^855lII`P&H6ac6V@q=g=tnBt0bn?pxGinK zULZy+=r#}|q*Lk>N%BDnH0K(cKvp~)vz2vujhYcDF|#7G^5Rw(&!GSc@dJ9B^m=C#_yRlFgeo=L$TW8A&as1`+Av#z)>I`o?F3`^+SbYig_JFIwL4V+##e_=2Pm-*?4#{H6 z5oc0Nw*(s84V1*Xr0#QFOE}M@vz;}4e-8NmSA?w+4jn^N8>Fl}SMvw8UG3D*A5RR0 zI~apCsJDZcv4ykj-{_xzgCWIG;s)+Byi;@AOb6IRt5*Em)+mx+u50}C>C>M)T((Lr zlXkB?K+hxSW>XSx??|@kB0WM_-AgI>3$n3&Vit@G%WIm03}SYMG4y9bTh8@T)rb38 zZ=E1Pigc;q>)KZyw$!BCX4V|$)hpdkqni|)76+SD=SuJ5j#=2EIscMOlpOI2dvy#A z1WD4oM=y>r8>u(;U3gwy0#!T2{WC-q&dP7SgNE|~T8Hku;)Vr9^h>ttkl>WUwCTV@ zD#qF1!xD)+LY;!$adImBr(`C1@I8tlL(L^;`XGShFl5Ne9-R{L)nhcyaT%`Q4e0NG zWu?=JdM9t^AL8Y#B^~i9SM>(J);2V!$N8;wUleYmTAADP(c$9skC`*aPJbyQ%U;J+ z!tQiQvSL45?nLNsuEOxP2EqK+mb9)RtMyNh5i7rs#m+E%R#R@=9;o=EAO*rX5h-_g zYrP=QNCWj3Aj+I!w4FCA#yk^2=yTFXax_;HJ0A%aXl2Yiz<@u)NDBAwo)s6ROBMUf z|HkD)tOO7hK3@!n$m1OptN-8K_fIaeI!Z~0#q5abNCGq z4XL5Th573pj5zm{8~J-lO7__<(v=K!MTv#Y$a@0#UzULbEDt{Cl}u4}xm&NjV!VSc z)opKsaTsYh?S!p8_P%){ljZdJR57-E?RF?}CT{Z(WzkcbE_Kq!?|XoB;#*wCFxsMI z`AVMnUp)SY#pIeXcOg&BVi^HD?-HV2>I$-0EQRta5h z=^Ry7(16bi`5Er&td62k>iinDjTL7H)@gy$PB9lGLoWz8=k5@;TblN;<8n0+)K_|0YX6k>R`Om5p!tDu|#Gizb#v z9U6_t+ztPWe*}ROLy&1g7hysdH@)1)Z59>CQbqpioV8|Ne1u707hSx31$ahUKxz64 z_d!WLrRoqp<=Ezbv^s_Q0K{eb5PB#Sbn31dv^>hB5pNI*PuS$l^7SpnSL1>_={yf1 z3kOljnqJ(%|Aet8JeD_3NY4f!!1R_r75Vy_*&8IK4E43nd&6e?RC{7^CZVthS{NPa zxwXz)-hceF`*=@@KYX#~3&^r~FvBzD#>rxVBFW$1lveBanJ8W?)R+2uEY`$i; z{seX-3P%E$CtG4DI6Um9uqrTX@wKE%m&F=1XyN}Xd{j{@#u}9yLHL6UXD*8)*t=ln zfX5cV^ujf$YxUHEuQ2ldeH#H+;Xr?l)^l5oExFHS<8Ylq`qzq)s|~?cUV>_LHZ?${ zkU-qKn^dF08EFEK1)HfT0|F6lVTVUOH$_ZxA4jXOSaZ#SXl8?{4@J7MN1AM2ko$%n z-e*WnuhOo#@+WuaFJ;aEO?jHJ}p$ft-Ue3WFRHoNiM$8W$k>e0to3yj8lt-CO_WQgVkejSI? zHZniRXn))-Cl!G#CqeRbhASg2SL+l`w%#)=&N)IAGPpr$D4!t_kHg(!CcT2cEuEx2 zhd=i{qoJNyZDpW(fcs@hy!~|cDP~enwExz^<4(mY$Eld#oxak8$XJy`fnCh-aZ8Q zRM+n|P749u`hzzpRyj(=OyHxe1l&n2Oj)p#N{PR}j$F_X$t}=chAw5gJ`Ao^lBa5; z2h%3lgI#dQsn_61tnNjZdr5^N9?0{VMW1zvU$m|o-y=&3MgGfRc$oYV^A zvhvK!7qrjTU!Ev4ceAQ!i@wIJH`Vp?3JVFiuYXDJ!uhkvqJ)5@7bg;TT1J<}k@xTE z=y`I`;ad9fqsHOn2y59snS4s39H9s|4dL_W8Zs+Ly3xfM+z)U?DGSXhxGo>6CFj zSh*I5KJs>XTmo_U9Y`4>zx#X>Rkt|DQ8fga9Y9M?>68A}Fv6xlu4GLK7UG)Y!$AAk z^=F53NMTcj<@dWwW#RE1#fAU``2((ZV52=CS#g%0pf^JERi zi@iULPTR9y){M*-E7lknW945k>V_JKxvzB^A4vWi`@0#x{oZ)RH~S;epa=B$b7C7W zKPG*{Y3mhZ)k~qAB#Fi5rsI(&+Z`|>a8GYLJ~8ZT!wYnK1}X6nH$cq)mLa_cdk)AR z#Fq`}InZuqsSKFyD~+YeHj^f<2qd(kOn$krQQOW3oNfjKn@#o0f5A6Ck1R`$@N7VU zAf1%>>6)CUv~k16nZQ_w8mO|?V!24fI+m1uyx4eHa{tv2b49SV?StQ7Uv6;Qo{)&9 z(~50}xpIxv2FKvj4#2{0j_-5Uxz*avEY0im2VVurv&x<;HsMzl0ld-ll{d}o4`^Pk z)pIqdGaYekGQ}(j^k2*5;_)+$c7#}GsIukC3?1dNcu^QE!3=hFx*n{VQe!wOR_7qt z_YV2rDPNhK6+$1QBWJ+9RMFJ2i1wxoTkm^}dsxE1`E%YRFUqbx0(tSol^Y*}kG-)g z!mwLSwM}C#-KXDk2kQ5n>0H;jww@J?M2--Z$9uF{8jqL3&yPsk6V4k+MY`Uq&c*8% zVJa`A_|>n&X+IG(WfpEPkKfL167gOt}W zg24oVl9`?AmjUr>uLN^?p|-4-RXC;Ph{cUR8ZleJJ*q~AN$-BCjD1PN7@s+ECcX)r zK28eyLDH)haF(c&_de znLnoUX9Mcg6DmoM=nLM^{{Pk~aN%NST5qs&JjyXiYZZ z^{?#+BfP`4hXbTcuKSp_Gx}o9j_#Mh?H$p`(JL zQog?fb~{9E{+ zehOoBzA0^6CAL z@KSTDi;+CK@5oeVria+sx2Mldv0WVat^MGR(rU3Pt3jx6w!0m*KfYWZm*Dh=3?K8)lt{^eaqL}x~*6)VF)|1k_k4FH#%0ClzUV{d~NA9QTVSMYi3zESN|SOC1F4b?sjw3H-quqU`}in5#4(M3;7Z^}^ta*Y@qqU+K7NPYZcOOea09(rW{}tC zdLvnlq+nBKVTgOC@@(L(NHnx zR4*BVx!~#v$=}6Ix6%{WveA!;0JRUe-6wfAf&y>3sZZ#QSx|CW*ON?mNwsp8(d7({ zFA_^93d6tFyo$j+M{Q0ipzeopSOIPJgC zdDUr)5!wM)N{*OUxv@hGnxu(LTd9ej2K*#Ql80?SKyxVdJV3MW6Sgisu*WUsumtA; zXX@3GJl19K!j)s)`@lE9dqBqr5~P&Ag2jW?D5gQn!`)^^ZzWs$Y}@kP4Bv0@dSrW_(;1)#*i zLj9j?10+Vf@0*BizEg4h9bn9}{IuU%mA`luBz#*;{MnySSZr~S4tiSbwAOGSK4^>w zC=VV8JZl8HfBf|yO~~=Zw!7`CX$R68IxMvK@Ae3y+}1-} z#mCIb!I}#9(vrSGd-}qtYF6Iwye1IKTyt|1q!pU@R2eJ>J89~=8F21cLqGVgMXO6% zhMnTI9Y8dj;s%>IL9nwT(=DeL^8VA%^rUrLCaHlLBcTCtRS*9T-Lwc1^IH3gZ)!@T zx}-%m#b#s&q%JqxjGzz_ZgStj9&C4SVhFkgzH?Yh({to^IX|^CHadB!#bh2T{|Q*y z;a-Pb46S-WBE5HRSL-|Hx{KZ~Ot+|_L<4uR5<7KkGw%i+xX7kdhSID|E$*aX2s6{q zD~C0(F&#Ui)grA>y*i&-{-)rM77gNQHcK}okf<-PX3_Ppfp0+fc|hRz)STenZhKeG z%IA$u<7b~Lc(%~)U0!WntD&N2XfEL=U@R13eXZh^pztJRp|?-Vu_~g=VSZtO7EWGa zK8UMWUl()P=V$$Bu`+g)2zuD3JG`7Sea^W`QB8LTx*dgR(Xi-kTV?g2i0_w*DNc3- zQJpt_o6F9n)uTk{JmN4i7<7ybC<{Zvlby0`$MDU{o={f;?jJdM|B72LlKb=-F+aaG zYPk|_(C$P5Wue*%FV(!E&gqbcJ@<30I?p9HbjZq`D*Ix8pmOsV;wfcs$;yqUdek!+ zE+uRPj;XBpeg~x&OIi6FbhXl{+K|K=E|+#@W3}4|9kifZL&~0blJ}eC_liTh!{gAE z|6V2I2lj@p*2az%37FFz*r_4{&uolMal#f144=deAHX!C+#G&qMbP<-jj|!Qt|LL* zfq-DAfe?P18Ks#8?qhJ)!~ddEu$O&3xVQF=&tE|r8sEjds!}{J1C-*6to8uK#YrhQ zOGq?61mUzIZRj2D_0j*qbA*GR&fV~%s{eLNC~n^tbsBT6=T6Gm2&0rXg~*F;K2Hpv zy70uFBO||vUsK7KR3kato!Nb*f%Mw_z%|>VB^$cFzOMPr@jopphSArj5(=5~%sl>A zW?^3L{Ct|lz?}rY=f6g1I&d6u#e9ieIf#O<`(uJW5Lb&H;M0K_qIMtumocsmbQ2Qa zdbsI!_*AGOrCd&M=ACu7Tx$jV$pMQu#fC}KmUjP5SWSiTAdj=yiXQ8B1mIS8n=IF$ zkP8Gpoykda4X%@)-!@OIE5)5*Cy-(4{Wi^D(JJVV8`=~#(duhpntitQSBJnh+uam= zvF@|=4+JHK&&J6~wu|638*#nxdn zI&{HbxaJq);olg{S(8xg?T<_3lqx+CA8)P9hW0XvT z2zPNzDUwG{AOGnKqst29qL7Fja%P{^Fs!VP`j?swgb%xs+~Rkw;GOFv3)o8!mWlff zu0~$4PL8M=ffYHxE?Wr7+x8&J_ut8zB|yOUzZ@7&A?;uqFe#M4P4U-H#Z2bLT+w%z zN4~SJ6hr0WRc|*>M{EOST)_HL_-!`?;aw*RU%72Or~L;_CFPf!Z*Z-_q|m_P{HjC< zaGw2^&9Jgc#q)AHGeM{-|LbH#F7l}gB(XE36)>oq791Wsc>F9ctplqh-*DKD-W`SF zz`rFH3O#|2e;;uQ#rdy05IB%-F5uBw&&&A=58h?QHA(zXWx97tAt0TN6s|L?wR6ndq?%xw4*uNe>$lEX!9N?WOJm3J2Hme~_ z#o(w+NU)d131ERw3RVa~a?R05gz^{G(ZRV_8~%ZD!9zb zpo?2`((piH?arf!5NlCIx^9htC0mnGWD!)14Z7Tj2OVswOb#*;lI~%RADT?D#_s_i z+SK{w4o>OtL&tpB-|~hhp-KVg=|0=mq+p$_@}veb_a5}qskz3!$YQfN(Vj+?87%hm z8os?gU<7T%iGzk_?iUbG42M2MZw8I#{81nSyoaJ*21gL;8IUQ6EouKdWI%<^`tbFM zi8r|M_c(PfAlv;lP2(Rl-3ftfX}-NaZA2WHmg}+_-m!|UC!hyi!3=@;_IZKZIy$s97gV7w|4m)T4_(Iq$Rv<5rBe10|XaNwU$ z!LLsQl7bob6qADu@tvgn#L!;or zasYw1gGTXPBO@bPntunTRhm(xG*+ByIA&p3sQJhXCScPZdAy3d9_fF{J9vX4DSsUAc8*bgj`D&g$mN`K;{({Ll0;_wgDGbJnh zYF_0k_591pnQ%~$oP)Z#a9xiMS+ zO?CL6r?7%+YYI0NQU9Q^I8;m1Yx>)&Qy*}L^ZW$7=hYXt0nyUjy$#?2E@0iHugZAR z=#?~g)E;(|8&puIdTdfwg4q&*@Q;**uifJTb_9hH3czIaWgzh}TJA;-1Ieg#ho!R4C5IS18Wt1FE*bw$`m?PnlVE^s@JRSjo-Ch4jLir&=e z4SRO0TybMfju$F-?~j}>uW)mE{0De`U@KW2J zNZtc!rqO#mX4R+3Mz;w2m8628*_d&E-D7N98HuTJira~}6v-9V+rv2eN6V)uwCB!G zC@SfKCrQPg2A(O0V~vptY=#_?VDp-8cYtlk3%&PK&V%0nRdDg=s#r5BUIK^?LH>CA zjUinG$Lz0y(>f+ZQ;SHFe10(>LKI{8C?@M0>U2yf@#=~R9lN={Du6MmlDN*IxM|HT zRYSDp0iy$2-4#fWw0#B-(4KuE7;WGfTazwLfJ>&e9dRA=e}Ote@0RmQJm^jtoOZc? zC}G-5;KFghI+H98(Bq2WtoG@@y9g)7b?FC44qD?1rw1wq({pY;a85SV+1jlvCdFSI zA+B}>sF3s0l6IwJcJ)3BQ&byWoSyh|$_QAu4YK8QR|@4o>) z?FL+>$CbcoY6FlPT?fPVzQHYQ8NxhoL6OU6goef|KQD<%0NKMYy3<{1y;PBxOm2~?R2laOP)w~P$~HG>t=Sc`e@n4VGm5Zb2cGx5 zis@2^db|KD1O1;1{+4q&MyhGTHn5bU%I~0q;0?%+$`rhejL}0A%rME}<8;!p8~efR zV77_p;o6brluZ(Yl7raL5Af+DrRY9$!kNZ;z?2@^_4r}>NDgt+xfG^V7u*7qSbN^K z2JW`(PzINbUDCTGr3$A<%#TE-9HHQE8=Z{lKJ)4xEhR{tJNIy8Zx2(u54@iXB-uYo z+4xS9>?26|E1j(1!CKODTnS;>0Xk%4X3Ey7 zxokJKhZAB5V3-{($W5$}C!tY?M?LbVcG{Ha=GE@I=(pDa+cYjm`~&{hH|W9kqQ4+l z!U+$*U~}1ZRE@}mx5!(nLr?6wnNX?u!v7qgaJC8tq$-t&8^Qjo+M;U5C9kvc2= z(lllE=b*rD6;HNXLz4nBIj3UT)7Lk+;EpbMfN3#Ft|YuJ=z@?a2UBhpv-ghQa8nsd zoK!o2{ObpEPj<2&Uz+fTR_6CkX28q1%XCU`f*E@0($x#%2;zytN)N*IPbB*j8(GKX zLkzVP+#l>F3@|fEu$Xx~a^~=!?f#EQgL}q*AF6#mv8MmoE!t+)SmOyN8E?)~__S9* zJ=x0ZpJh-mb5*DEwPbg3F~L&vkpJ#3=zKK_?4OMR^}LiQF4iKh@;z>iVYGFN(LH$H zklR)Fc~FsLz#TX~rf#&V!?sB_$x!Q-(A~Lkq&~nPj#6^c z+=`XKLZjnVO1V;}=niX|yFwAHq$sdgjVhTWesQxI@n+rZ8N+~1*|93fQkaOaI%tsz zL+ZXmexNql`m#U=om0|1*cKerocd_Dgc*kht`DQVLG4$Z^P*M4YmTP;u_pDrtFUzsIDP`@h;b3g$^yK1po|E2tXk({A-rx@>s|9x&0LZ;?kL zbc@2U$B#aTHQ?CkoD_J&{d>=nofbgA*Vw7iZFH#VrTPBf1~stYZ9AFCA1Q59w}-VG zWF0T6GTc2$ZffInai6{&%UZM|i9|Q{-{4QzNE!Dpygj0l#_DFp$wdG{?YBE`x z(W{jbh&jRB=|k7Ogri>lKKRF?TI{g(knC#~5~r9x)@61KVJB#9;!v%bk~1ImaM^1& z8G6j#%D>t8J-9(-;({>Ui=K^EHaE!Xb(Q~U!$Cad47zwNo4O(8$k8L-TP;`u*|=?t zDOd#lWLMsz6GQ)4m*xr}h(YON&At(4FHa^uBgDzj()4R`bg$=nOHVzPnFhk}L;KdoMVKyM#L#MH^N;l&-qhuis-JqHz+ z6w+a)L#oVS1Pgt|s|WpiPtzqg&6O{#P;Y|l=fD(>e=k6suvUNVrt@_}C#I_11s;vU zQoNFAzOT`_uscJli^JSct1`fJ(yJBs(;xX`^;iOu&n_ZVZm;F=mf@kfiZxPNA%K|r zy7L3t1z`Wi)EC}(Cl32EN$E`6hqE+95!cnnXQh971#UwL)0u%zZsQ-s!T33)H5zHA zN}dN9T%7swsH+-x_7%7tMmG^4wgh8Bre4 z&Z2Fy83;K!bge7Fe~;tfsX2YhJO@c13UEoPsxrc+T#Mre61k7_W&`Q^KHsKe!#W z*MwI{oaEZ%hnaIo3pt*kFwM89hGDKX|)$ocs-kfbbo`E=gu;nz&01}#X35iEac9yVrx zdv6F$tHq0Fr#(EaS}3KZ#*R3L&z;rj zN*nPN-0QR;?SdfI8e4`5`7K;e&f_-?Ti)u|ANGGo=#N&$>+y?!vZN5i&>!I6FOlsz z(Gjaezao8tCgQiNnMvC0F0m05=FV6zw8N|_^;myZAlGX?2*KCX!_n!XVS$_Te zB+ffu_K98}s22Y9NXo{cnPJjz3x*NwWB*A+H#&pItW5EA_J{o0fTV3N?Agcsg|@Rp zF}H_VWru{(OoAXY$1|SdA(GHb^M=tlU){4!1a zBfpaslKaT3iFfuN17FY?^SgfCJdz!mp%B$skK&eOM%%Oz17@NFuI<$H@r*3Fv?1m& z9pb+4P}t1lX*mA46<$(xUWh;Xa;527>%s<{Z7O)l=y2S6S08&7Z-wKOx&KkNXD6Z{D0GA)&>p zx(vCKO^zSu9T!8!k%3QSrLOg{lZe$l&kTzH=QG1 za{v4I1?+hndG;R@+w(gqdHO9)2}mF}FXPXtEBf4;zmakH>5z8Cwh6CfD%7#Fcb1dx$xn>1cjFJ@vHwznRSoKIv1nov|sL5BP~Roflthp`sN?@dq_Xn zJq0%BIO2UUBs%RJu>EvT@B6-JZ8o@GEc3%APBea5{2et&yAP>&n4G#3b?xu7Wu#Fr z6J167rwn{u?|3z(iIrXCJTit7nXg7EvxY#I=)eC!C!mW@`M2%-^efc^3F0W>sTzL zDMyctM*qlTt8m({-H+pZirPO%IXH7D-o);k(jm~%u4QS3@X@+s`#>c0XMBabWJ4NG z<8|gEN{|mVTVz`60gE>OT6GEmF*E4B9X_({J`!$Q=_^-s%vW3M+TI z(BIzpb+ZWIoGW=030{AD@DW*D*v0<7d`juJ-38GzXrAU_{H~9j=BM1-I|-;?FFJpI z>1w{pAyRde_(=-kB}R@m%{Y_UbhLkwJ#*eTW>oxqe5UA^Ki;Lf&N1cX3e1)2N`Jw) z>N}M6eq~6N0=d%BP8ejAjy>M8SJ2Sh2$e0Cn1aees`@9|zv7Hb+ga`_gvZt$`o5m% z{WTYyFn)(Tw_(6i!r-X1+v9QFo;M}MmE|T;(y}NIW-7lm`q2VXjkWFh^0mdV)?;eWidS;@ucm@;XaKIL&q3UPXzdi{p&(+d@Z? zFM(s5TcOj&Q{L(l^@&6sR4k)~Z@?6n2_6V!SxV7MThw@}!6G8s?;G zMc~Nl@?W7~sMo6~H^zKkr~cyM5Mm_8fK- zdd@eGZ0q^(+nDINGX{AEw}x+;pcDXCZKmIAO8)AjH4bm#CnawYQ&kyK{IR3V zEn%50WVZmusXBbw-3LL90ge|vR9);}Km#L*26S{Ko95F?+hooUCW)i09WH0=F*itM z_GB#jbFoU+4zK~5hyxRn=E=QdqZ*TX=kslmzi&6{4|+h`Z~!zwEd5Hh%pDA~60`eY z7tP>^CfNk?dny!McthjcSCegA+cy@WdS{17>9;CW7m9YS;Jfk?-*!+Z)mXAkr@><( zVfn#td!O8<22>sCp9y8wx@P+24bEUYQig-nGeP!qCye3^o;3Tvr)}SjaE!eg5xm7D z+EM0py-|ZO{OSe$Y0rR;iXUH#f;3_l|2OO}95JO7pv-PU7B14&_}RPe3@5%0{S&!0 zZ%{Qj!YQe&jQCX{4VO%1uUeeK62s}JVvPu&igR_~n8>J*w4a%mcZ6dd3kXzV0XD zGyU!uEX3n0W}@|5+Z{V5Uks^O67~ z*s^?iOmqVwFoUTs@RAn8dvEVEprg)cM7-}2mcSw(6=9<87Yp6b7?tKlZG)M@8}Uv9 zl%h>Y+l%rT^Rrlj&eW1RcU{;rTX{*VFG>~E=_my_15i9SviQy;0Qt9(wbd6I71jr4 z`t)7kND`dA+kP8p5T_Nle@<;7D+He27GzXP*j%BT440XEPl1NTwBjh_msi#f*(BRH z`lSTA65MB(6Wk2dx@SoJ&YYW84RdCx+IVUnn`5Vk1i_jr4+iHBSS{U)1Z!=kjbrbZ z@hUpb44q0p{55LKCjp~q&zJeclOoRY9N%y!9~R#rX{D<1u@2n@1eleRYzQg~KqH!< zhebC?P-943C?!<7yMcaOCQvYQKAwNjGE*dLU zaiLCzjcAL1x^&OMrd+rKT8>M0tJBeWn~?D%W#FJ=YKInjrw+XC;_$*BenRs>LII=& zOX5U(8|6Uw)gB&z4%T1&?p52S+fCw(C|i$k!W6fMXj5J`4^8avVn0r7fcNm&J2~S} zD+xLE_3m(@3pOEX75J{8uYc2{s@DYY_X3vbIA^jhcDR#6SE$e}KT0Q-J_XE|(zI`7 z+q5Ee5XKOp_@|hkuS5g30dC4d;XD&?30lB#Two6fDczd zvM+5%R|TR)%O+wwQatMXh#vjfFtLW93)42?OV=jtiyt1Wv`7|v$iwflcJ&|Sx210G zx;1#a>kRs}){jkXg)V+#g^-c#!thJT6#a-0HPNOjZ>@a~aLBDnvekvhDoH24Xf0V5 z66Q)0HE-#GpByZ~yET!;kGP#phjgmI>ZF8edTVh|5@)4&5nGQ(iCeGnD#|d5+#iW& z!6R(Iubl%-1*ZMVCZ31vrOk`M_10oH`=fM$mJz^V76{1aBmxfKJqu6efcB`G#h>lI zhO89Lwn(cOMnNfUZ9ohiqykB6A7q1z-R!;P&w|(OE!*^VR*i|FzuzOr7tv>FZUF-XZBgPIZTX9yB%_8$LT$>?*`hpQnv{7k?ANkl=jw#@H~sbU_=@ z2P^q7euTQnfa>A%6SNt)_`#WFol4zuNGZL2$+V%njID=i8mD%4)+S}>Qe0c)tg&dv zoCXW(vz2J+*o_HBme}6>&y`&fJddgD-O?1NvjE3rJ5NCF1MWOsBY+m7`qrdWjAGFO zel{17+~+Teq%Gow$;*1ml0ODiVumGiw*>b2)iePyQuqZ)U22EA9Hqu)11eU7iPI4t zJrUoe&!1mjtLK89oV()bYsA?$H~W4xNNsusF!YwDk*&du|SVEzE?@s!V zI@7RFt$QV%Tq!ue%1xTUO8UCkhAiio{sDPrla1IRiBGk<4tavzzm%VeOBR5aA|qNW z2mVte_Jl@@GjX|RtLWCc9MqW)lJkood$XrGvQ>SfiRaIbR=V;Z_UFa3Q$<$^pwRi2HZ zU=;Paoe9*(kNy@!zTY{YiIeGwA-Zb;=D+i0HUuoZ>%qwb$iW8a;V;-%7e2L71b_rv zsr%Zy&AhaeUv&nIg>QLhz^UKC6VwQrbm6WiZRYIy_}o7M1WWdw>_U^Sp+g(m2)+*P z(mM+FZk?*9d9=uFH%;YAt;{EPv1E-Jpu@`tm|tVkrO6mYiyfLFvw$S@nY9T|Ky$i-zk)=|5~kS<=Yy88{h}(Zp%d^~>7<&N}G) zx&S^Qxa*jo|NRDVGz3Gic;=m4(Z=wz=Mj|Oib@uA-)F*{s|vbOV%8daaN?Cg6(?JO z*?TByB4@@QhXy#iS+aZVRvXfXBuel|m)rE*=$4hb$%D0UphDchEH`@@hq%@Q1@K=e zd>JczKRN*l8cl>l{yv7Y9}dU4c`3cKEfP*~83!z}qCuby)2ZWj9&3^74+MLYYGGG8 z`Tfzx;DoipF~U5DZa*J^%S<^6j14P-vC3R&csXPYPkz2Vj)Y*n>Hnqpj`5jc5abyM RAD1R`%-z%NxyyxH{|8NN4M_k1 literal 0 HcmV?d00001 diff --git a/src/renderer/themes/default/assets/images/404_cloud.png b/src/renderer/themes/default/assets/images/404_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..a81d8daa2c5a025f0137a27d81ed61ce7064039f GIT binary patch literal 2644 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 Vjs4wpK(~MM=0|#bu<7w%{x1-0sn`Gj literal 0 HcmV?d00001 diff --git a/src/renderer/themes/default/assets/images/login-background-light.jpg b/src/renderer/themes/default/assets/images/login-background-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..993b958e243926e4dd5b1a415c879965117a3419 GIT binary patch literal 32872 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ð^j-r@`P8j452yx>Y6XIGhmq$X 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 Vk3V|iuRnJ0#=E5TTkrnQ|1Z@Pvk(9P literal 0 HcmV?d00001 diff --git a/src/renderer/themes/default/assets/logo.png b/src/renderer/themes/default/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a42ce95fd8d93436f995f82ce7e8a435aa6d5a04 GIT binary patch literal 4151 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 literal 0 HcmV?d00001 diff --git a/src/renderer/themes/default/components/AppLink/index.vue b/src/renderer/themes/default/components/AppLink/index.vue new file mode 100644 index 0000000..29e63a1 --- /dev/null +++ b/src/renderer/themes/default/components/AppLink/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/renderer/themes/default/components/Breadcrumb/index.vue b/src/renderer/themes/default/components/Breadcrumb/index.vue new file mode 100644 index 0000000..2ca5351 --- /dev/null +++ b/src/renderer/themes/default/components/Breadcrumb/index.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/renderer/themes/default/components/CURD/PageContent.vue b/src/renderer/themes/default/components/CURD/PageContent.vue new file mode 100644 index 0000000..c489073 --- /dev/null +++ b/src/renderer/themes/default/components/CURD/PageContent.vue @@ -0,0 +1,1022 @@ + + + + + diff --git a/src/renderer/themes/default/components/CURD/PageForm.vue b/src/renderer/themes/default/components/CURD/PageForm.vue new file mode 100644 index 0000000..87224f1 --- /dev/null +++ b/src/renderer/themes/default/components/CURD/PageForm.vue @@ -0,0 +1,158 @@ + + + diff --git a/src/renderer/themes/default/components/CURD/PageModal.vue b/src/renderer/themes/default/components/CURD/PageModal.vue new file mode 100644 index 0000000..5dc4a70 --- /dev/null +++ b/src/renderer/themes/default/components/CURD/PageModal.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/src/renderer/themes/default/components/CURD/PageSearch.vue b/src/renderer/themes/default/components/CURD/PageSearch.vue new file mode 100644 index 0000000..0575149 --- /dev/null +++ b/src/renderer/themes/default/components/CURD/PageSearch.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/src/renderer/themes/default/components/CURD/types.ts b/src/renderer/themes/default/components/CURD/types.ts new file mode 100644 index 0000000..af0cd7f --- /dev/null +++ b/src/renderer/themes/default/components/CURD/types.ts @@ -0,0 +1,268 @@ +import type { + DialogProps, + DrawerProps, + FormItemRule, + FormProps, + PaginationProps, + TableProps, +} from "element-plus"; +import PageContent from "./PageContent.vue"; +import PageForm from "./PageForm.vue"; +import PageModal from "./PageModal.vue"; +import PageSearch from "./PageSearch.vue"; + +export type PageSearchInstance = InstanceType; +export type PageContentInstance = InstanceType; +export type PageModalInstance = InstanceType; +export type PageFormInstance = InstanceType; + +export type IObject = Record; + +export interface IOperatData { + name: string; + row: IObject; + column: IObject; + $index: number; +} + +export interface ISearchConfig { + // 页面名称(参与组成权限标识,如sys:user:xxx) + pageName: string; + // 表单项 + formItems: Array<{ + // 组件类型(如input,select等) + type?: "input" | "select" | "tree-select" | "date-picker" | "input-tag"; + // 标签文本 + label: string; + // 标签提示 + tips?: string; + // 键名 + prop: string; + // 组件属性(input-tag组件支持join,btnText,size属性) + attrs?: IObject; + // 初始值 + initialValue?: any; + // 可选项(适用于select组件) + options?: { label: string; value: any }[]; + // 初始化数据函数扩展 + initFn?: (formItem: IObject) => void; + }>; + // 是否开启展开和收缩 + isExpandable?: boolean; + // 默认展示的表单项数量 + showNumber?: number; +} + +export interface IContentConfig { + // 页面名称(参与组成权限标识,如sys:user:xxx) + pageName: string; + // table组件属性 + table?: Omit, "data">; + // pagination组件属性 + pagination?: + | boolean + | Partial< + Omit< + PaginationProps, + "v-model:page-size" | "v-model:current-page" | "total" | "currentPage" + > + >; + // 列表的网络请求函数(需返回promise) + indexAction: (queryParams: T) => Promise; + // 默认的分页相关的请求参数 + request?: { + pageName: string; + limitName: string; + }; + // 数据格式解析的回调函数 + parseData?: (res: any) => { + total: number; + list: IObject[]; + [key: string]: any; + }; + // 修改属性的网络请求函数(需返回promise) + modifyAction?: (data: { + [key: string]: any; + field: string; + value: boolean | string | number; + }) => Promise; + // 删除的网络请求函数(需返回promise) + deleteAction?: (ids: string) => Promise; + // 后端导出的网络请求函数(需返回promise) + exportAction?: (queryParams: T) => Promise; + // 前端全量导出的网络请求函数(需返回promise) + exportsAction?: (queryParams: T) => Promise; + // 导入模板 + importTemplate?: string | (() => Promise); + // 后端导入的网络请求函数(需返回promise) + importAction?: (file: File) => Promise; + // 前端导入的网络请求函数(需返回promise) + importsAction?: (data: IObject[]) => Promise; + // 主键名(默认为id) + pk?: string; + // 表格工具栏(默认支持add,delete,export,也可自定义) + toolbar?: Array< + | "add" + | "delete" + | "import" + | "export" + | { + auth: string; + icon?: string; + name: string; + text: string; + type?: "primary" | "success" | "warning" | "danger" | "info"; + } + >; + // 表格工具栏右侧图标 + defaultToolbar?: Array< + | "refresh" + | "filter" + | "imports" + | "exports" + | "search" + | { + name: string; + icon: string; + title?: string; + auth?: string; + } + >; + // table组件列属性(额外的属性templet,operat,slotName) + cols: Array<{ + type?: "default" | "selection" | "index" | "expand"; + label?: string; + prop?: string; + width?: string | number; + align?: "left" | "center" | "right"; + columnKey?: string; + reserveSelection?: boolean; + // 列是否显示 + show?: boolean; + // 模板 + templet?: + | "image" + | "list" + | "url" + | "switch" + | "input" + | "price" + | "percent" + | "icon" + | "date" + | "tool" + | "custom"; + // image模板相关参数 + imageWidth?: number; + imageHeight?: number; + // list模板相关参数 + selectList?: IObject; + // switch模板相关参数 + activeValue?: boolean | string | number; + inactiveValue?: boolean | string | number; + activeText?: string; + inactiveText?: string; + // input模板相关参数 + inputType?: string; + // price模板相关参数 + priceFormat?: string; + // date模板相关参数 + dateFormat?: string; + // tool模板相关参数 + operat?: Array< + | "edit" + | "delete" + | { + auth: string; + icon?: string; + name: string; + text: string; + type?: "primary" | "success" | "warning" | "danger" | "info"; + render?: (row: IObject) => boolean; + } + >; + // filter值拼接符 + filterJoin?: string; + [key: string]: any; + // 初始化数据函数 + initFn?: (item: IObject) => void; + }>; +} + +export interface IModalConfig { + // 页面名称 + pageName?: string; + // 主键名(主要用于编辑数据,默认为id) + pk?: string; + // 组件类型 + component?: "dialog" | "drawer"; + // dialog组件属性 + dialog?: Partial>; + // drawer组件属性 + drawer?: Partial>; + // form组件属性 + form?: IForm; + // 表单项 + formItems: IFormItems; + // 提交之前处理 + beforeSubmit?: (data: T) => void; + // 提交的网络请求函数(需返回promise) + formAction: (data: T) => Promise; +} + +export type IForm = Partial>; + +// 表单项 +export type IFormItems = Array<{ + // 组件类型(如input,select,radio,custom等,默认input) + type?: + | "input" + | "select" + | "radio" + | "checkbox" + | "tree-select" + | "date-picker" + | "input-number" + | "text" + | "custom"; + // 组件属性 + attrs?: IObject; + // 组件可选项(适用于select,radio,checkbox组件) + options?: Array<{ + label: string; + value: any; + disabled?: boolean; + [key: string]: any; + }>; + // 插槽名(适用于组件类型为custom) + slotName?: string; + // 标签文本 + label: string; + // 标签提示 + tips?: string; + // 键名 + prop: string; + // 验证规则 + rules?: FormItemRule[]; + // 初始值 + initialValue?: any; + // 是否隐藏 + hidden?: boolean; + // 监听函数 + watch?: (newValue: any, oldValue: any, data: T, items: IObject[]) => void; + // 计算属性函数 + computed?: (data: T) => any; + // 监听收集函数 + watchEffect?: (data: T) => void; + // 初始化数据函数扩展 + initFn?: (item: IObject) => void; +}>; + +export interface IPageForm { + // 主键名(主要用于编辑数据,默认为id) + pk?: string; + // form组件属性 + form?: IForm; + // 表单项 + formItems: IFormItems; +} diff --git a/src/renderer/themes/default/components/CURD/usePage.ts b/src/renderer/themes/default/components/CURD/usePage.ts new file mode 100644 index 0000000..4d410ce --- /dev/null +++ b/src/renderer/themes/default/components/CURD/usePage.ts @@ -0,0 +1,73 @@ +import { ref } from "vue"; +import type { + IObject, + PageContentInstance, + PageModalInstance, + PageSearchInstance, +} from "./types"; + +function usePage() { + const searchRef = ref(); + const contentRef = ref(); + const addModalRef = ref(); + const editModalRef = ref(); + + // 搜索 + function handleQueryClick(queryParams: IObject) { + const filterParams = contentRef.value?.getFilterParams(); + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } + // 重置 + function handleResetClick(queryParams: IObject) { + const filterParams = contentRef.value?.getFilterParams(); + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } + // 新增 + function handleAddClick() { + //显示添加表单 + addModalRef.value?.setModalVisible(); + } + // 编辑 + function handleEditClick(row: IObject) { + //显示编辑表单 根据数据进行填充 + editModalRef.value?.setModalVisible(row); + } + // 表单提交 + function handleSubmitClick() { + //根据检索条件刷新列表数据 + const queryParams = searchRef.value?.getQueryParams(); + contentRef.value?.fetchPageData(queryParams, true); + } + // 导出 + function handleExportClick() { + // 根据检索条件导出数据 + const queryParams = searchRef.value?.getQueryParams(); + contentRef.value?.exportPageData(queryParams); + } + // 搜索显隐 + function handleSearchClick() { + searchRef.value?.toggleVisible(); + } + // 涮选数据 + function handleFilterChange(filterParams: IObject) { + const queryParams = searchRef.value?.getQueryParams(); + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } + + return { + searchRef, + contentRef, + addModalRef, + editModalRef, + handleQueryClick, + handleResetClick, + handleAddClick, + handleEditClick, + handleSubmitClick, + handleExportClick, + handleSearchClick, + handleFilterChange, + }; +} + +export default usePage; diff --git a/src/renderer/themes/default/components/CopyButton/index.vue b/src/renderer/themes/default/components/CopyButton/index.vue new file mode 100644 index 0000000..8e88435 --- /dev/null +++ b/src/renderer/themes/default/components/CopyButton/index.vue @@ -0,0 +1,62 @@ + + + + diff --git a/src/renderer/themes/default/components/Dictionary/index.vue b/src/renderer/themes/default/components/Dictionary/index.vue new file mode 100644 index 0000000..7086f35 --- /dev/null +++ b/src/renderer/themes/default/components/Dictionary/index.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/renderer/themes/default/components/GithubCorner/index.vue b/src/renderer/themes/default/components/GithubCorner/index.vue new file mode 100644 index 0000000..4b0bba9 --- /dev/null +++ b/src/renderer/themes/default/components/GithubCorner/index.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/renderer/themes/default/components/Hamburger/index.vue b/src/renderer/themes/default/components/Hamburger/index.vue new file mode 100644 index 0000000..88745ac --- /dev/null +++ b/src/renderer/themes/default/components/Hamburger/index.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/renderer/themes/default/components/IconSelect/index.vue b/src/renderer/themes/default/components/IconSelect/index.vue new file mode 100644 index 0000000..7e38308 --- /dev/null +++ b/src/renderer/themes/default/components/IconSelect/index.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/src/renderer/themes/default/components/LangSelect/index.vue b/src/renderer/themes/default/components/LangSelect/index.vue new file mode 100644 index 0000000..68ca77b --- /dev/null +++ b/src/renderer/themes/default/components/LangSelect/index.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/renderer/themes/default/components/Pagination/index.vue b/src/renderer/themes/default/components/Pagination/index.vue new file mode 100644 index 0000000..c080e60 --- /dev/null +++ b/src/renderer/themes/default/components/Pagination/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/renderer/themes/default/components/SizeSelect/index.vue b/src/renderer/themes/default/components/SizeSelect/index.vue new file mode 100644 index 0000000..0660d7b --- /dev/null +++ b/src/renderer/themes/default/components/SizeSelect/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/renderer/themes/default/components/SvgIcon/index.vue b/src/renderer/themes/default/components/SvgIcon/index.vue new file mode 100644 index 0000000..07b65e8 --- /dev/null +++ b/src/renderer/themes/default/components/SvgIcon/index.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/renderer/themes/default/components/TableSelect/index.vue b/src/renderer/themes/default/components/TableSelect/index.vue new file mode 100644 index 0000000..28ad4b6 --- /dev/null +++ b/src/renderer/themes/default/components/TableSelect/index.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/src/renderer/themes/default/components/Upload/MultiUpload.vue b/src/renderer/themes/default/components/Upload/MultiUpload.vue new file mode 100644 index 0000000..97033de --- /dev/null +++ b/src/renderer/themes/default/components/Upload/MultiUpload.vue @@ -0,0 +1,139 @@ + + + + diff --git a/src/renderer/themes/default/components/Upload/SingleUpload.vue b/src/renderer/themes/default/components/Upload/SingleUpload.vue new file mode 100644 index 0000000..0c3a74b --- /dev/null +++ b/src/renderer/themes/default/components/Upload/SingleUpload.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/renderer/themes/default/components/WangEditor/index.vue b/src/renderer/themes/default/components/WangEditor/index.vue new file mode 100644 index 0000000..0aeb4da --- /dev/null +++ b/src/renderer/themes/default/components/WangEditor/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/renderer/themes/default/directive/index.ts b/src/renderer/themes/default/directive/index.ts new file mode 100644 index 0000000..9c22eb6 --- /dev/null +++ b/src/renderer/themes/default/directive/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue"; + +import { hasPerm } from "./permission"; + +// 全局注册 directive +export function setupDirective(app: App) { + // 使 v-hasPerm 在所有组件中都可用 + app.directive("hasPerm", hasPerm); +} diff --git a/src/renderer/themes/default/directive/permission/index.ts b/src/renderer/themes/default/directive/permission/index.ts new file mode 100644 index 0000000..a8edaf0 --- /dev/null +++ b/src/renderer/themes/default/directive/permission/index.ts @@ -0,0 +1,38 @@ +import { hasAuth } from "@theme/plugins/permission"; +import { Directive, DirectiveBinding } from "vue"; + +/** + * 按钮权限 + */ +export const hasPerm: Directive = { + mounted(el: HTMLElement, binding: DirectiveBinding) { + // DOM绑定需要的按钮权限标识 + const { value: requiredPerms } = binding; + if (requiredPerms) { + if (!hasAuth(requiredPerms)) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error( + "need perms! Like v-has-perm=\"['sys:user:add','sys:user:edit']\"" + ); + } + }, +}; + +/** + * 角色权限 + */ +export const hasRole: Directive = { + mounted(el: HTMLElement, binding: DirectiveBinding) { + // DOM绑定需要的角色编码 + const { value: requiredRoles } = binding; + if (requiredRoles) { + if (!hasAuth(requiredRoles, "role")) { + el.parentNode && el.parentNode.removeChild(el); + } + } else { + throw new Error("need roles! Like v-has-role=\"['admin','test']\""); + } + }, +}; diff --git a/src/renderer/themes/default/enums/CacheEnum.ts b/src/renderer/themes/default/enums/CacheEnum.ts new file mode 100644 index 0000000..f3c434b --- /dev/null +++ b/src/renderer/themes/default/enums/CacheEnum.ts @@ -0,0 +1,4 @@ +/** + * 令牌缓存Key + */ +export const TOKEN_KEY = "accessToken"; diff --git a/src/renderer/themes/default/enums/DeviceEnum.ts b/src/renderer/themes/default/enums/DeviceEnum.ts new file mode 100644 index 0000000..709bcb3 --- /dev/null +++ b/src/renderer/themes/default/enums/DeviceEnum.ts @@ -0,0 +1,14 @@ +/** + * 设备枚举 + */ +export const enum DeviceEnum { + /** + * 宽屏设备 + */ + DESKTOP = "desktop", + + /** + * 窄屏设备 + */ + MOBILE = "mobile", +} diff --git a/src/renderer/themes/default/enums/LanguageEnum.ts b/src/renderer/themes/default/enums/LanguageEnum.ts new file mode 100644 index 0000000..a50b655 --- /dev/null +++ b/src/renderer/themes/default/enums/LanguageEnum.ts @@ -0,0 +1,14 @@ +/** + * 语言枚举 + */ +export const enum LanguageEnum { + /** + * 中文 + */ + ZH_CN = "zh-cn", + + /** + * 英文 + */ + EN = "en", +} diff --git a/src/renderer/themes/default/enums/LayoutEnum.ts b/src/renderer/themes/default/enums/LayoutEnum.ts new file mode 100644 index 0000000..68be72e --- /dev/null +++ b/src/renderer/themes/default/enums/LayoutEnum.ts @@ -0,0 +1,18 @@ +/** + * 菜单布局枚举 + */ +export const enum LayoutEnum { + /** + * 左侧菜单布局 + */ + LEFT = "left", + /** + * 顶部菜单布局 + */ + TOP = "top", + + /** + * 混合菜单布局 + */ + MIX = "mix", +} diff --git a/src/renderer/themes/default/enums/MenuTypeEnum.ts b/src/renderer/themes/default/enums/MenuTypeEnum.ts new file mode 100644 index 0000000..b69942f --- /dev/null +++ b/src/renderer/themes/default/enums/MenuTypeEnum.ts @@ -0,0 +1,22 @@ +/** + * 菜单类型枚举 + */ +export const enum MenuTypeEnum { + /** + * 目录 + */ + CATALOG = "CATALOG", + /** + * 菜单 + */ + MENU = "MENU", + + /** + * 按钮 + */ + BUTTON = "BUTTON", + /** + * 外链 + */ + EXTLINK = "EXTLINK", +} diff --git a/src/renderer/themes/default/enums/ResultEnum.ts b/src/renderer/themes/default/enums/ResultEnum.ts new file mode 100644 index 0000000..2dff7c9 --- /dev/null +++ b/src/renderer/themes/default/enums/ResultEnum.ts @@ -0,0 +1,18 @@ +/** + * 响应码枚举 + */ +export const enum ResultEnum { + /** + * 成功 + */ + SUCCESS = "00000", + /** + * 错误 + */ + ERROR = "B0001", + + /** + * 令牌无效或过期 + */ + TOKEN_INVALID = "A0230", +} diff --git a/src/renderer/themes/default/enums/SidebarStatusEnum.ts b/src/renderer/themes/default/enums/SidebarStatusEnum.ts new file mode 100644 index 0000000..a0d877a --- /dev/null +++ b/src/renderer/themes/default/enums/SidebarStatusEnum.ts @@ -0,0 +1,14 @@ +/** + * 侧边栏状态枚举 + */ +export const enum SidebarStatusEnum { + /** + * 展开 + */ + OPENED = "opened", + + /** + * 关闭 + */ + CLOSED = "closed", +} diff --git a/src/renderer/themes/default/enums/SizeEnum.ts b/src/renderer/themes/default/enums/SizeEnum.ts new file mode 100644 index 0000000..e91e913 --- /dev/null +++ b/src/renderer/themes/default/enums/SizeEnum.ts @@ -0,0 +1,19 @@ +/** + * 布局大小枚举 + */ +export const enum SizeEnum { + /** + * 默认 + */ + DEFAULT = "default", + + /** + * 大型 + */ + LARGE = "large", + + /** + * 小型 + */ + SMALL = "small", +} diff --git a/src/renderer/themes/default/enums/ThemeEnum.ts b/src/renderer/themes/default/enums/ThemeEnum.ts new file mode 100644 index 0000000..91458e1 --- /dev/null +++ b/src/renderer/themes/default/enums/ThemeEnum.ts @@ -0,0 +1,18 @@ +/** + * 主题枚举 + */ +export const enum ThemeEnum { + /** + * 明亮主题 + */ + LIGHT = "light", + /** + * 暗黑主题 + */ + DARK = "dark", + + /** + * 系统自动 + */ + AUTO = "auto", +} diff --git a/src/renderer/themes/default/lang/index.ts b/src/renderer/themes/default/lang/index.ts new file mode 100644 index 0000000..ca1ec60 --- /dev/null +++ b/src/renderer/themes/default/lang/index.ts @@ -0,0 +1,31 @@ +import type { App } from "vue"; +import { createI18n } from "vue-i18n"; +import { useAppStoreHook } from "@theme/store/modules/app"; +// 本地语言包 +import enLocale from "./package/en"; +import zhCnLocale from "./package/zh-cn"; + +const appStore = useAppStoreHook(); + +const messages = { + "zh-cn": { + ...zhCnLocale, + }, + en: { + ...enLocale, + }, +}; + +const i18n = createI18n({ + legacy: false, + locale: appStore.language, + messages: messages, + globalInjection: true, +}); + +// 全局注册 i18n +export function setupI18n(app: App) { + app.use(i18n); +} + +export default i18n; diff --git a/src/renderer/themes/default/lang/package/en.ts b/src/renderer/themes/default/lang/package/en.ts new file mode 100644 index 0000000..09b4e85 --- /dev/null +++ b/src/renderer/themes/default/lang/package/en.ts @@ -0,0 +1,59 @@ +export default { + // 路由国际化 + route: { + dashboard: "Dashboard", + document: "Document", + }, + // 登录页面国际化 + login: { + username: "Username", + password: "Password", + login: "Login", + captchaCode: "Verify Code", + capsLock: "Caps Lock is On", + message: { + username: { + required: "Please enter Username", + }, + password: { + required: "Please enter Password", + min: "The password can not be less than 6 digits", + }, + captchaCode: { + required: "Please enter Verify Code", + }, + }, + }, + // 导航栏国际化 + navbar: { + dashboard: "Dashboard", + logout: "Logout", + document: "Document", + gitee: "Gitee", + }, + sizeSelect: { + tooltip: "Layout Size", + default: "Default", + large: "Large", + small: "Small", + message: { + success: "Switch Layout Size Successful!", + }, + }, + langSelect: { + message: { + success: "Switch Language Successful!", + }, + }, + settings: { + project: "Project Settings", + theme: "Theme", + interface: "Interface", + navigation: "Navigation", + themeColor: "Theme Color", + tagsView: "Tags View", + fixedHeader: "Fixed Header", + sidebarLogo: "Sidebar Logo", + watermark: "Watermark", + }, +}; diff --git a/src/renderer/themes/default/lang/package/zh-cn.ts b/src/renderer/themes/default/lang/package/zh-cn.ts new file mode 100644 index 0000000..16c4c9a --- /dev/null +++ b/src/renderer/themes/default/lang/package/zh-cn.ts @@ -0,0 +1,59 @@ +export default { + // 路由国际化 + route: { + dashboard: "首页", + document: "项目文档", + }, + // 登录页面国际化 + login: { + username: "用户名", + password: "密码", + login: "登 录", + captchaCode: "验证码", + capsLock: "大写锁定已打开", + message: { + username: { + required: "请输入用户名", + }, + password: { + required: "请输入密码", + min: "密码不能少于6位", + }, + captchaCode: { + required: "请输入验证码", + }, + }, + }, + // 导航栏国际化 + navbar: { + dashboard: "首页", + logout: "注销登出", + document: "项目文档", + gitee: "项目地址", + }, + sizeSelect: { + tooltip: "布局大小", + default: "默认", + large: "大型", + small: "小型", + message: { + success: "切换布局大小成功!", + }, + }, + langSelect: { + message: { + success: "切换语言成功!", + }, + }, + settings: { + project: "项目配置", + theme: "主题设置", + interface: "界面设置", + navigation: "导航设置", + themeColor: "主题颜色", + tagsView: "开启 Tags-View", + fixedHeader: "固定 Header", + sidebarLogo: "侧边栏 Logo", + watermark: "开启水印", + }, +}; diff --git a/src/renderer/themes/default/layout/components/AppMain/index.vue b/src/renderer/themes/default/layout/components/AppMain/index.vue new file mode 100644 index 0000000..5cad3cf --- /dev/null +++ b/src/renderer/themes/default/layout/components/AppMain/index.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/NavBar/components/NavbarLeft.vue b/src/renderer/themes/default/layout/components/NavBar/components/NavbarLeft.vue new file mode 100644 index 0000000..0231143 --- /dev/null +++ b/src/renderer/themes/default/layout/components/NavBar/components/NavbarLeft.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/renderer/themes/default/layout/components/NavBar/components/NavbarRight.vue b/src/renderer/themes/default/layout/components/NavBar/components/NavbarRight.vue new file mode 100644 index 0000000..5beea95 --- /dev/null +++ b/src/renderer/themes/default/layout/components/NavBar/components/NavbarRight.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/renderer/themes/default/layout/components/NavBar/index.vue b/src/renderer/themes/default/layout/components/NavBar/index.vue new file mode 100644 index 0000000..0f4028e --- /dev/null +++ b/src/renderer/themes/default/layout/components/NavBar/index.vue @@ -0,0 +1,22 @@ + + + + diff --git a/src/renderer/themes/default/layout/components/Settings/components/LayoutSelect.vue b/src/renderer/themes/default/layout/components/Settings/components/LayoutSelect.vue new file mode 100644 index 0000000..0783e6a --- /dev/null +++ b/src/renderer/themes/default/layout/components/Settings/components/LayoutSelect.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/Settings/components/ThemeColorPicker.vue b/src/renderer/themes/default/layout/components/Settings/components/ThemeColorPicker.vue new file mode 100644 index 0000000..5a0d59c --- /dev/null +++ b/src/renderer/themes/default/layout/components/Settings/components/ThemeColorPicker.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/Settings/index.vue b/src/renderer/themes/default/layout/components/Settings/index.vue new file mode 100644 index 0000000..ef7e211 --- /dev/null +++ b/src/renderer/themes/default/layout/components/Settings/index.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/components/SidebarLogo.vue b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarLogo.vue new file mode 100644 index 0000000..e024100 --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarLogo.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenu.vue b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenu.vue new file mode 100644 index 0000000..4465ef3 --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenu.vue @@ -0,0 +1,67 @@ + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItem.vue b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItem.vue new file mode 100644 index 0000000..9037302 --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItem.vue @@ -0,0 +1,204 @@ + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItemTitle.vue b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItemTitle.vue new file mode 100644 index 0000000..e17d0aa --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMenuItemTitle.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMixTopMenu.vue b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMixTopMenu.vue new file mode 100644 index 0000000..7256bde --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/components/SidebarMixTopMenu.vue @@ -0,0 +1,88 @@ + + + + diff --git a/src/renderer/themes/default/layout/components/Sidebar/index.vue b/src/renderer/themes/default/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..e2b3260 --- /dev/null +++ b/src/renderer/themes/default/layout/components/Sidebar/index.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/renderer/themes/default/layout/components/TagsView/index.vue b/src/renderer/themes/default/layout/components/TagsView/index.vue new file mode 100644 index 0000000..424156f --- /dev/null +++ b/src/renderer/themes/default/layout/components/TagsView/index.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/src/renderer/themes/default/layout/index.vue b/src/renderer/themes/default/layout/index.vue new file mode 100644 index 0000000..00e62f0 --- /dev/null +++ b/src/renderer/themes/default/layout/index.vue @@ -0,0 +1,327 @@ + + + + + diff --git a/src/renderer/themes/default/main.ts b/src/renderer/themes/default/main.ts new file mode 100644 index 0000000..3b90ba4 --- /dev/null +++ b/src/renderer/themes/default/main.ts @@ -0,0 +1,16 @@ +import { createApp } from "vue"; +import App from "./App.vue"; +import setupPlugins from "@theme/plugins"; + +// 本地SVG图标 +import "virtual:svg-icons-register"; + +// 样式 +import "element-plus/theme-chalk/dark/css-vars.css"; +import "@theme/styles/index.scss"; +import "uno.css"; +import "animate.css"; + +const app = createApp(App); +app.use(setupPlugins); +app.mount("#app"); diff --git a/src/renderer/themes/default/mycomponents/UniverJs/SDK/open-file-csv.ts b/src/renderer/themes/default/mycomponents/UniverJs/SDK/open-file-csv.ts new file mode 100644 index 0000000..1d13685 --- /dev/null +++ b/src/renderer/themes/default/mycomponents/UniverJs/SDK/open-file-csv.ts @@ -0,0 +1,161 @@ +import { + CommandType, + ICellData, + ICommand, + ICommandService, + IUniverInstanceService, + Inject, + Injector, + Plugin, + UniverInstanceType, + Workbook, +} from "@univerjs/core"; + +import { SetRangeValuesCommand } from "@univerjs/sheets"; +import { + ComponentManager, + IMenuService, + MenuGroup, + MenuItemType, + MenuPosition, +} from "@univerjs/ui"; +import { FolderSingle } from "@univerjs/icons"; + +/** + * wait user select csv file + */ +const waitUserSelectCSVFile = ( + onSelect: (data: { + data: string[][]; + colsCount: number; + rowsCount: number; + }) => void +) => { + const input = document.createElement("input"); + input.type = "file"; + input.accept = ".csv"; + input.click(); + + input.onchange = () => { + const file = input.files?.[0]; + if (!file) return; + const reader = new FileReader(); + reader.onload = () => { + const text = reader.result; + console.log(text); + if (typeof text !== "string") return; + + // tip: use npm package to parse csv + const rows = text.split(/\r\n|\n/); + const data = rows.map((line) => line.split(",")); + + const colsCount = data.reduce((max, row) => Math.max(max, row.length), 0); + + onSelect({ + data, + colsCount, + rowsCount: data.length, + }); + }; + reader.readAsText(file); + }; +}; + +/** + * parse csv to univer data + * @param csv + * @returns { v: string }[][] + */ +const parseCSV2UniverData = (csv: string[][]): ICellData[][] => { + return csv.map((row) => { + return row.map((cell) => { + return { + v: cell || "", + }; + }); + }); +}; + +/** + * Import CSV Button Plugin + * A simple Plugin example, show how to write a plugin. + */ +class ImportCSVButtonPlugin extends Plugin { + static override pluginName = "import-csv-plugin"; + constructor( + _config: null, + // inject injector, required + @Inject(Injector) override readonly _injector: Injector, + // inject menu service, to add toolbar button + @Inject(IMenuService) private menuService: IMenuService, + // inject command service, to register command handler + @Inject(ICommandService) private readonly commandService: ICommandService, + // inject component manager, to register icon component + @Inject(ComponentManager) + private readonly componentManager: ComponentManager + ) { + super(); + } + + /** + * The first lifecycle of the plugin mounted on the Univer instance, + * the Univer business instance has not been created at this time. + * The plugin should add its own module to the dependency injection system at this lifecycle. + * It is not recommended to initialize the internal module of the plugin outside this lifecycle. + */ + onStarting() { + // register icon component + this.componentManager.register("FolderSingle", FolderSingle); + + const buttonId = "import-csv-button"; + + const menuItem = { + id: buttonId, + title: "导入CSV", + tooltip: "导入CSV表格数据", + icon: "FolderSingle", // icon name + type: MenuItemType.BUTTON, + group: MenuGroup.CONTEXT_MENU_DATA, + positions: [MenuPosition.TOOLBAR_START], + }; + + this.menuService.addMenuItem(menuItem, {}); + + const command: ICommand = { + type: CommandType.OPERATION, + id: buttonId, + handler: (accessor) => { + // inject univer instance service + const univer = accessor.get(IUniverInstanceService); + const commandService = accessor.get(ICommandService); + + // get current sheet + const sheet = univer + .getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)! + .getActiveSheet(); + // wait user select csv file + waitUserSelectCSVFile(({ data, rowsCount, colsCount }) => { + // set sheet size + sheet.setColumnCount(colsCount); + sheet.setRowCount(rowsCount); + + // set sheet data + commandService.executeCommand(SetRangeValuesCommand.id, { + range: { + startColumn: 0, // start column index + startRow: 0, // start row index + endColumn: colsCount - 1, // end column index + endRow: rowsCount - 1, // end row index + }, + value: parseCSV2UniverData(data), + }); + }); + return true; + }, + }; + + this.commandService.registerCommand(command); + } +} + +export default ImportCSVButtonPlugin; diff --git a/src/renderer/themes/default/mycomponents/UniverJs/SDK/save-data.ts b/src/renderer/themes/default/mycomponents/UniverJs/SDK/save-data.ts new file mode 100644 index 0000000..d7f0f9a --- /dev/null +++ b/src/renderer/themes/default/mycomponents/UniverJs/SDK/save-data.ts @@ -0,0 +1,91 @@ +import { + CommandType, + ICellData, + ICommand, + ICommandService, + IUniverInstanceService, + Inject, + Injector, + Plugin, + UniverInstanceType, + Workbook, +} from "@univerjs/core"; + +import { + ComponentManager, + IMenuService, + MenuGroup, + MenuItemType, + MenuPosition, +} from "@univerjs/ui"; + +import { SaveSingle } from "@univerjs/icons"; + +/** + * 实例化按钮插件 + */ +class SaveDataButtonPlugin extends Plugin { + static override pluginName = "save-data-plugin"; + constructor( + _config: null, + // inject injector, required + @Inject(Injector) override readonly _injector: Injector, + // inject menu service, to add toolbar button + @Inject(IMenuService) private menuService: IMenuService, + // inject command service, to register command handler + @Inject(ICommandService) private readonly commandService: ICommandService, + // inject component manager, to register icon component + @Inject(ComponentManager) + private readonly componentManager: ComponentManager + ) { + super(); + } + + /** + * The first lifecycle of the plugin mounted on the Univer instance, + * the Univer business instance has not been created at this time. + * The plugin should add its own module to the dependency injection system at this lifecycle. + * It is not recommended to initialize the internal module of the plugin outside this lifecycle. + */ + onStarting() { + // register icon component + this.componentManager.register("SaveSingle", SaveSingle); + + const buttonId = "save-data-button"; + + const menuItem = { + id: buttonId, + title: "保存数据", + tooltip: "获取数据并保存", + icon: "SaveSingle", // icon name + type: MenuItemType.BUTTON, + group: MenuGroup.CONTEXT_MENU_DATA, + positions: [MenuPosition.TOOLBAR_START], + }; + + this.menuService.addMenuItem(menuItem, {}); + + const command: ICommand = { + type: CommandType.OPERATION, + id: buttonId, + handler: (accessor) => { + // inject univer instance service + const univer = accessor.get(IUniverInstanceService); + + // get current sheet + const sheet = univer + .getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)! + .getActiveSheet(); + // 保存数据 + const res = sheet.getSnapshot(); + const data = res.cellData; + console.log("表中数据", data); + return true; + }, + }; + + this.commandService.registerCommand(command); + } +} + +export default SaveDataButtonPlugin; diff --git a/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet.vue b/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet.vue new file mode 100644 index 0000000..dd503d0 --- /dev/null +++ b/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet.vue @@ -0,0 +1,308 @@ + + + + + + diff --git a/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet2.vue b/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet2.vue new file mode 100644 index 0000000..2c3aaf6 --- /dev/null +++ b/src/renderer/themes/default/mycomponents/UniverJs/UniverSheet2.vue @@ -0,0 +1,291 @@ + + + + + + diff --git a/src/renderer/themes/default/plugins/icons.ts b/src/renderer/themes/default/plugins/icons.ts new file mode 100644 index 0000000..fa85ba1 --- /dev/null +++ b/src/renderer/themes/default/plugins/icons.ts @@ -0,0 +1,9 @@ +import type { App } from "vue"; +import * as ElementPlusIconsVue from "@element-plus/icons-vue"; + +// 注册所有图标 +export function setupElIcons(app: App) { + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); + } +} diff --git a/src/renderer/themes/default/plugins/index.ts b/src/renderer/themes/default/plugins/index.ts new file mode 100644 index 0000000..d468fcb --- /dev/null +++ b/src/renderer/themes/default/plugins/index.ts @@ -0,0 +1,24 @@ +import { setupDirective } from "@theme/directive"; +import { setupI18n } from "@theme/lang"; +import { setupRouter } from "@theme/router"; +import { setupStore } from "@theme/store"; +import type { App } from "vue"; +import { setupElIcons } from "./icons"; +import { setupPermission } from "./permission"; + +export default { + install(app: App) { + // 自定义指令(directive) + setupDirective(app); + // 路由(router) + setupRouter(app); + // 状态管理(store) + setupStore(app); + // 国际化 + setupI18n(app); + // Element-plus图标 + setupElIcons(app); + // 路由守卫 + setupPermission(); + }, +}; diff --git a/src/renderer/themes/default/plugins/permission.ts b/src/renderer/themes/default/plugins/permission.ts new file mode 100644 index 0000000..9df1738 --- /dev/null +++ b/src/renderer/themes/default/plugins/permission.ts @@ -0,0 +1,104 @@ +import { + NavigationGuardNext, + RouteLocationNormalized, + RouteRecordRaw, +} from "vue-router"; + +import NProgress from "@theme/utils/nprogress"; +import { TOKEN_KEY } from "@theme/enums/CacheEnum"; +import router from "@theme/router"; +import { usePermissionStore, useUserStore } from "@theme/store"; + +export function setupPermission() { + // 白名单路由 + const whiteList = ["/login"]; + + router.beforeEach(async (to, from, next) => { + NProgress.start(); + const hasToken = localStorage.getItem(TOKEN_KEY); + + if (hasToken) { + if (to.path === "/login") { + // 如果已登录,跳转到首页 + next({ path: "/" }); + NProgress.done(); + } else { + const userStore = useUserStore(); + const hasRoles = + userStore.user.roles && userStore.user.roles.length > 0; + + if (hasRoles) { + // 如果未匹配到任何路由,跳转到404页面 + if (to.matched.length === 0) { + next(from.name ? { name: from.name } : "/404"); + } else { + // 如果路由参数中有 title,覆盖路由元信息中的 title + const title = + (to.params.title as string) || (to.query.title as string); + if (title) { + to.meta.title = title; + } + next(); + } + } else { + const permissionStore = usePermissionStore(); + try { + await userStore.getUserInfo(); + const dynamicRoutes = await permissionStore.generateRoutes(); + dynamicRoutes.forEach((route: RouteRecordRaw) => + router.addRoute(route) + ); + next({ ...to, replace: true }); + } catch (error) { + // 移除 token 并重定向到登录页,携带当前页面路由作为跳转参数 + await userStore.resetToken(); + redirectToLogin(to, next); + NProgress.done(); + } + } + } + } else { + // 未登录 + if (whiteList.includes(to.path)) { + next(); // 在白名单,直接进入 + } else { + // 不在白名单,重定向到登录页 + redirectToLogin(to, next); + NProgress.done(); + } + } + }); + + router.afterEach(() => { + NProgress.done(); + }); +} + +/** 重定向到登录页 */ +function redirectToLogin( + to: RouteLocationNormalized, + next: NavigationGuardNext +) { + const params = new URLSearchParams(to.query as Record); + const queryString = params.toString(); + const redirect = queryString ? `${to.path}?${queryString}` : to.path; + next(`/login?redirect=${encodeURIComponent(redirect)}`); +} + +/** 判断是否有权限 */ +export function hasAuth( + value: string | string[], + type: "button" | "role" = "button" +) { + const { roles, perms } = useUserStore().user; + + // 超级管理员 拥有所有权限 + if (type === "button" && roles.includes("ROOT")) { + return true; + } + + const auths = type === "button" ? perms : roles; + return typeof value === "string" + ? auths.includes(value) + : value.some((perm) => auths.includes(perm)); +} diff --git a/src/renderer/themes/default/router/index-theme.ts b/src/renderer/themes/default/router/index-theme.ts new file mode 100644 index 0000000..628023d --- /dev/null +++ b/src/renderer/themes/default/router/index-theme.ts @@ -0,0 +1,140 @@ +const Layout = () => import("@theme/layout/index.vue"); +/** + * 全路由表(主题目录内的路由,仅需要返回数组即可,交给主框架进行路由重组) + * 必须依照以下格式配置 + * :path表示的是路径,如”/“或"/login"或”/redirect/:path(.*)“ + * { + * ":path":{ + * component:"视图组件", + * meta:{ + * hidden: bool 是否隐藏 + * title: '页标题', + * icon: '图标配置,根据自己的主题来自行定义', + * roles: ['guest'] 权限角色组 + * }, + * children:{} 子路径,配置方式与父路径的要求是一样的 + * } + * } + */ +const paths = { + "/redirect":{ + path: "/redirect", + component: Layout, + meta: { + hidden: true, + title: "", + icon:"", + roles:["admin"] + }, + children:{ + "/redirect/:path(.*)":{ + path: "/redirect", + component: () => import("@theme/views/redirect/index.vue"), + meta: { + hidden: true, + title: "", + icon:"", + roles:["admin"] + } + }, + } + }, + + "/login":{ + path: "/login", + component: () => import("@theme/views/login/index.vue"), + meta: { + hidden: true, + title: "登陆", + icon:"", + roles:["guest"] + } + }, + + "/":{ + path: "/", + component: Layout, + redirect: "/dashboard", + meta: { + hidden: true, + title: "", + icon:"", + roles:["admin"] + }, + children:{ + "dashboard":{ + path: "/redirect", + component: () => import("@theme/views/dashboard/index.vue"), + // 用于 keep-alive 功能,需要与 SFC 中自动推导或显式声明的组件名称一致 + // 参考文档: https://cn.vuejs.org/guide/built-ins/keep-alive.html#include-exclude + meta: { + hidden: true, + title: "dashboard", + icon: "homepage", + affix: true, + keepAlive: true, + roles:["admin"] + } + }, + + "401":{ + path: "401", + component: () => import("@theme/views/error-page/401.vue"), + meta: { + hidden: true, + title: "", + icon:"", + roles:["guest"] + } + }, + + "404":{ + path: "404", + component: () => import("@theme/views/error-page/404.vue"), + meta: { + hidden: true, + title: "", + icon:"", + roles:["guest"] + } + }, + + // "/redirect":{ + // path: "/redirect", + // component: Layout, + // meta: { + // hidden: true, + // title: "", + // icon:"", + // roles:["guest"] + // }, + // }, + // + // "/redirect/:path(.*)":{ + // path: "/redirect", + // component: () => import("@theme/views/redirect/index.vue"), + // meta: { + // hidden: true, + // title: "", + // icon:"", + // roles:["guest"] + // } + // }, + // + // "/login":{ + // path: "/login", + // component: () => import("@theme/views/login/index.vue"), + // meta: { + // hidden: true, + // title: "登陆", + // icon:"", + // roles:["guest"] + // } + // }, + + } + }, + +}; + +export default paths; diff --git a/src/renderer/themes/default/router/index.ts b/src/renderer/themes/default/router/index.ts new file mode 100644 index 0000000..4762f8d --- /dev/null +++ b/src/renderer/themes/default/router/index.ts @@ -0,0 +1,134 @@ +// 用于主题内部使用 +import type { App } from "vue"; +import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router"; + +export const Layout = () => import("@theme/layout/index.vue"); + +// 静态路由 +export const constantRoutes: RouteRecordRaw[] = [ + { + path: "/redirect", + component: Layout, + meta: { hidden: true }, + children: [ + { + path: "/redirect/:path(.*)", + component: () => import("@theme/views/redirect/index.vue"), + }, + ], + }, + + { + path: "/login", + component: () => import("@theme/views/login/index.vue"), + meta: { hidden: true }, + }, + + { + path: "/", + name: "/", + component: Layout, + redirect: "/dashboard", + children: [ + { + path: "dashboard", + component: () => import("@theme/views/dashboard/index.vue"), + // 用于 keep-alive 功能,需要与 SFC 中自动推导或显式声明的组件名称一致 + // 参考文档: https://cn.vuejs.org/guide/built-ins/keep-alive.html#include-exclude + name: "Dashboard", + meta: { + title: "dashboard", + icon: "homepage", + affix: true, + keepAlive: true, + }, + }, + { + path: "401", + component: () => import("@theme/views/error-page/401.vue"), + meta: { hidden: true }, + }, + { + path: "404", + component: () => import("@theme/views/error-page/404.vue"), + meta: { hidden: true }, + }, + ], + }, + + // 外部链接 + // { + // path: "/external-link", + // component: Layout, + // children: [ { + // component: () => import("@/views/external-link/index.vue"), + // path: "https://www.cnblogs.com/haoxianrui/", + // meta: { title: "外部链接", icon: "link" }, + // }, + // ], + // }, + // 多级嵌套路由 + /* { + path: '/nested', + component: Layout, + redirect: '/nested/level1/level2', + name: 'Nested', + meta: {title: '多级菜单', icon: 'nested'}, + children: [ + { + path: 'level1', + component: () => import('@/views/nested/level1/index.vue'), + name: 'Level1', + meta: {title: '菜单一级'}, + redirect: '/nested/level1/level2', + children: [ + { + path: 'level2', + component: () => import('@/views/nested/level1/level2/index.vue'), + name: 'Level2', + meta: {title: '菜单二级'}, + redirect: '/nested/level1/level2/level3', + children: [ + { + path: 'level3-1', + component: () => import('@/views/nested/level1/level2/level3/index1.vue'), + name: 'Level3-1', + meta: {title: '菜单三级-1'} + }, + { + path: 'level3-2', + component: () => import('@/views/nested/level1/level2/level3/index2.vue'), + name: 'Level3-2', + meta: {title: '菜单三级-2'} + } + ] + } + ] + }, + ] + }*/ +]; + +/** + * 创建路由 + */ +const router = createRouter({ + history: createWebHashHistory(), + routes: constantRoutes, + // 刷新时,滚动条位置还原 + scrollBehavior: () => ({ left: 0, top: 0 }), +}); + +// 全局注册 router +export function setupRouter(app: App) { + app.use(router); +} + +/** + * 重置路由 + */ +export function resetRouter() { + router.replace({ path: "/login" }); +} + +export default router; diff --git a/src/renderer/themes/default/settings.ts b/src/renderer/themes/default/settings.ts new file mode 100644 index 0000000..b56e3fa --- /dev/null +++ b/src/renderer/themes/default/settings.ts @@ -0,0 +1,27 @@ +import {SizeEnum} from "./enums/SizeEnum"; +import {LayoutEnum} from "./enums/LayoutEnum"; +import {ThemeEnum} from "./enums/ThemeEnum"; +import {LanguageEnum} from "./enums/LanguageEnum"; +import * as process from "node:process"; + +const {pkg} = __APP_INFO__; + +const mediaQueryList = window.matchMedia("(prefers-color-scheme: dark)"); + +const defaultSettings: AppSettings = { + title: "Hi-sass", + version: "0.2408.11", + showSettings: true, + tagsView: true, + fixedHeader: true, + sidebarLogo: true, + layout: LayoutEnum.LEFT, + theme: mediaQueryList.matches ? ThemeEnum.DARK : ThemeEnum.LIGHT, + size: SizeEnum.DEFAULT, + language: LanguageEnum.ZH_CN, + themeColor: "#409EFF", + watermarkEnabled: true, + watermarkContent: "我是水印,在子主题的根目录里配置; @theme/settings.ts", +}; + +export default defaultSettings; diff --git a/src/renderer/themes/default/store/index.ts b/src/renderer/themes/default/store/index.ts new file mode 100644 index 0000000..8dd6ea9 --- /dev/null +++ b/src/renderer/themes/default/store/index.ts @@ -0,0 +1,16 @@ +import type { App } from "vue"; +import { createPinia } from "pinia"; + +const store = createPinia(); + +// 全局注册 store +export function setupStore(app: App) { + app.use(store); +} + +export * from "./modules/app"; +export * from "./modules/permission"; +export * from "./modules/settings"; +export * from "./modules/tagsView"; +export * from "./modules/user"; +export { store }; diff --git a/src/renderer/themes/default/store/modules/app.ts b/src/renderer/themes/default/store/modules/app.ts new file mode 100644 index 0000000..cc27198 --- /dev/null +++ b/src/renderer/themes/default/store/modules/app.ts @@ -0,0 +1,109 @@ +import defaultSettings from "@theme/settings"; + +// 导入 Element Plus 中英文语言包 +import zhCn from "element-plus/es/locale/lang/zh-cn"; +import en from "element-plus/es/locale/lang/en"; +import { store } from "@theme/store"; +import { DeviceEnum } from "@theme/enums/DeviceEnum"; +import { SidebarStatusEnum } from "@theme/enums/SidebarStatusEnum"; + +export const useAppStore = defineStore("app", () => { + // 设备类型 + const device = useStorage("device", DeviceEnum.DESKTOP); + // 布局大小 + const size = useStorage("size", defaultSettings.size); + // 语言 + const language = useStorage("language", defaultSettings.language); + // 侧边栏状态 + const sidebarStatus = useStorage("sidebarStatus", SidebarStatusEnum.CLOSED); + const sidebar = reactive({ + opened: sidebarStatus.value === SidebarStatusEnum.OPENED, + withoutAnimation: false, + }); + + // 顶部菜单激活路径 + const activeTopMenuPath = useStorage("activeTopMenuPath", ""); + + /** + * 根据语言标识读取对应的语言包 + */ + const locale = computed(() => { + if (language?.value === "en") { + return en; + } else { + return zhCn; + } + }); + + // 切换侧边栏 + function toggleSidebar() { + sidebar.opened = !sidebar.opened; + sidebarStatus.value = sidebar.opened + ? SidebarStatusEnum.OPENED + : SidebarStatusEnum.CLOSED; + } + + // 关闭侧边栏 + function closeSideBar() { + sidebar.opened = false; + sidebarStatus.value = SidebarStatusEnum.CLOSED; + } + + // 打开侧边栏 + function openSideBar() { + sidebar.opened = true; + sidebarStatus.value = SidebarStatusEnum.OPENED; + } + + // 切换设备 + function toggleDevice(val: string) { + device.value = val; + } + + /** + * 改变布局大小 + * + * @param val 布局大小 default | small | large + */ + function changeSize(val: string) { + size.value = val; + } + /** + * 切换语言 + * + * @param val + */ + function changeLanguage(val: string) { + language.value = val; + } + /** + * 混合模式顶部切换 + */ + function activeTopMenu(val: string) { + activeTopMenuPath.value = val; + } + return { + device, + sidebar, + language, + locale, + size, + activeTopMenu, + toggleDevice, + changeSize, + changeLanguage, + toggleSidebar, + closeSideBar, + openSideBar, + activeTopMenuPath, + }; +}); + +/** + * 用于在组件外部(如在Pinia Store 中)使用 Pinia 提供的 store 实例。 + * 官方文档解释了如何在组件外部使用 Pinia Store: + * https://pinia.vuejs.org/core-concepts/outside-component-usage.html#using-a-store-outside-of-a-component + */ +export function useAppStoreHook() { + return useAppStore(store); +} diff --git a/src/renderer/themes/default/store/modules/permission.ts b/src/renderer/themes/default/store/modules/permission.ts new file mode 100644 index 0000000..12be36c --- /dev/null +++ b/src/renderer/themes/default/store/modules/permission.ts @@ -0,0 +1,94 @@ +import {RouteRecordRaw} from "vue-router"; +import {constantRoutes} from "@theme/router"; +import {store} from "@theme/store"; +import MenuAPI, {RouteVO} from "@api/menu"; + +const modules = import.meta.glob("../../views/**/**.vue"); +const Layout = () => import("@theme/layout/index.vue"); + +export const usePermissionStore = defineStore("permission", () => { + /** + * 应用中所有的路由列表,包括静态路由和动态路由 + */ + const routes = ref([]); + /** + * 混合模式左侧菜单列表 + */ + const mixLeftMenus = ref([]); + + /** + * 生成动态路由 + */ + function generateRoutes() { + return new Promise((resolve, reject) => { + MenuAPI.getRoutes() + .then((data) => { + // console.log(data); + const dynamicRoutes = transformRoutes(data); + routes.value = constantRoutes.concat(dynamicRoutes); + resolve(dynamicRoutes); + }) + .catch((error) => { + reject(error); + }); + }); + } + + /** + * 混合模式菜单下根据顶部菜单路径设置左侧菜单 + * + * @param topMenuPath - 顶部菜单路径 + */ + const setMixLeftMenus = (topMenuPath: string) => { + const matchedItem = routes.value.find((item) => item.path === topMenuPath); + if (matchedItem && matchedItem.children) { + mixLeftMenus.value = matchedItem.children; + } + }; + + return { + routes, + generateRoutes, + mixLeftMenus, + setMixLeftMenus, + }; +}); + +/** + * 转换路由数据为组件 + */ +const transformRoutes = (routes: RouteVO[]) => { + const asyncRoutes: RouteRecordRaw[] = []; + routes.forEach((route) => { + const tmpRoute = {...route} as RouteRecordRaw; + // 顶级目录,替换为 Layout 组件 + if (tmpRoute.component?.toString() === "Layout") { + tmpRoute.component = Layout; + } else { + // 其他菜单,根据组件路径动态加载组件 + const component = modules[`../../views/${tmpRoute.component}.vue`]; + if (component) { + tmpRoute.component = component; + } else { + tmpRoute.component = modules[`../../views/error-page/404.vue`]; + } + } + + if (tmpRoute.children) { + tmpRoute.children = transformRoutes(route.children); + } + + asyncRoutes.push(tmpRoute); + }); + + return asyncRoutes; +}; + +/** + * 用于在组件外部(如在Pinia Store 中)使用 Pinia 提供的 store 实例。 + * 官方文档解释了如何在组件外部使用 Pinia Store: + * https://pinia.vuejs.org/core-concepts/outside-component-usage.html#using-a-store-outside-of-a-component + */ +export function usePermissionStoreHook() { + return usePermissionStore(store); +} diff --git a/src/renderer/themes/default/store/modules/settings.ts b/src/renderer/themes/default/store/modules/settings.ts new file mode 100644 index 0000000..bf6ce69 --- /dev/null +++ b/src/renderer/themes/default/store/modules/settings.ts @@ -0,0 +1,125 @@ +import defaultSettings from "@theme/settings"; +import { ThemeEnum } from "@theme/enums/ThemeEnum"; +import Color from "color"; + +type SettingsValue = boolean | string; + +export const useSettingsStore = defineStore("setting", () => { + // 是否显示设置 + const settingsVisible = ref(false); + // 是否显示标签视图 + const tagsView = useStorage("tagsView", defaultSettings.tagsView); + // 是否显示侧边栏logo + const sidebarLogo = useStorage( + "sidebarLogo", + defaultSettings.sidebarLogo + ); + // 是否固定头部 + const fixedHeader = useStorage( + "fixedHeader", + defaultSettings.fixedHeader + ); + // 布局模式:left-左侧模式(默认) top-顶部模式 mix-混合模式 + const layout = useStorage("layout", defaultSettings.layout); + // 主题颜色 + const themeColor = useStorage( + "themeColor", + defaultSettings.themeColor + ); + // 主题:light-亮色(默认) dark-暗色 + const theme = useStorage("theme", defaultSettings.theme); + // 是否开启水印 + const watermarkEnabled = useStorage( + "watermarkEnabled", + defaultSettings.watermarkEnabled + ); + + watch( + [theme, themeColor], + ([newTheme, newThemeColor], [oldTheme, oldThemeColor]) => { + if (newTheme !== oldTheme) { + if (newTheme === ThemeEnum.DARK) { + document.documentElement.classList.add("dark"); + } else { + document.documentElement.classList.remove("dark"); + } + } + + if (newThemeColor !== oldThemeColor) { + const rootStyle = document.documentElement.style; + rootStyle.setProperty(`--el-color-primary`, newThemeColor); + rootStyle.setProperty(`--el-color-primary-dark-2`, newThemeColor); + + for (let i = 1; i < 10; i++) { + rootStyle.setProperty( + `--el-color-primary-light-${i}`, + `${Color(newThemeColor).alpha(1 - i * 0.1)}` + ); + } + } + }, + { + immediate: true, // 立即执行,确保在侦听器创建时执行一次 + } + ); + + const settingsMap: Record> = { + fixedHeader, + tagsView, + sidebarLogo, + layout, + watermarkEnabled, + }; + + function changeSetting({ + key, + value, + }: { + key: string; + value: SettingsValue; + }) { + const setting = settingsMap[key]; + if (setting) { + setting.value = value; + } + } + + /** + * 切换主题 + */ + function changeTheme(val: string) { + theme.value = val; + } + + /** + * 切换主题颜色 + * + * @param color 主题颜色 + * + */ + function changeThemeColor(color: string) { + themeColor.value = color; + } + + /** + * 切换布局 + */ + function changeLayout(val: string) { + layout.value = val; + } + + return { + settingsVisible, + tagsView, + fixedHeader, + sidebarLogo, + layout, + themeColor, + theme, + watermarkEnabled, + changeSetting, + changeTheme, + changeThemeColor, + changeLayout, + }; +}); diff --git a/src/renderer/themes/default/store/modules/tagsView.ts b/src/renderer/themes/default/store/modules/tagsView.ts new file mode 100644 index 0000000..a92e4fe --- /dev/null +++ b/src/renderer/themes/default/store/modules/tagsView.ts @@ -0,0 +1,253 @@ +export const useTagsViewStore = defineStore("tagsView", () => { + const visitedViews = ref([]); + const cachedViews = ref([]); + const router = useRouter(); + const route = useRoute(); + /** + * 添加已访问视图到已访问视图列表中 + */ + function addVisitedView(view: TagView) { + // 如果已经存在于已访问的视图列表中,则不再添加 + if (visitedViews.value.some((v) => v.path === view.path)) { + return; + } + // 如果视图是固定的(affix),则在已访问的视图列表的开头添加 + if (view.affix) { + visitedViews.value.unshift(view); + } else { + // 如果视图不是固定的,则在已访问的视图列表的末尾添加 + visitedViews.value.push(view); + } + } + + /** + * 添加缓存视图到缓存视图列表中 + */ + function addCachedView(view: TagView) { + const viewName = view.name; + // 如果缓存视图名称已经存在于缓存视图列表中,则不再添加 + if (cachedViews.value.includes(viewName)) { + return; + } + + // 如果视图需要缓存(keepAlive),则将其路由名称添加到缓存视图列表中 + if (view.keepAlive) { + cachedViews.value.push(viewName); + } + } + + /** + * 从已访问视图列表中删除指定的视图 + */ + function delVisitedView(view: TagView) { + return new Promise((resolve) => { + for (const [i, v] of visitedViews.value.entries()) { + // 找到与指定视图路径匹配的视图,在已访问视图列表中删除该视图 + if (v.path === view.path) { + visitedViews.value.splice(i, 1); + break; + } + } + resolve([...visitedViews.value]); + }); + } + + function delCachedView(view: TagView) { + const viewName = view.name; + return new Promise((resolve) => { + const index = cachedViews.value.indexOf(viewName); + index > -1 && cachedViews.value.splice(index, 1); + resolve([...cachedViews.value]); + }); + } + + function delOtherVisitedViews(view: TagView) { + return new Promise((resolve) => { + visitedViews.value = visitedViews.value.filter((v) => { + return v?.affix || v.path === view.path; + }); + resolve([...visitedViews.value]); + }); + } + + function delOtherCachedViews(view: TagView) { + const viewName = view.name as string; + return new Promise((resolve) => { + const index = cachedViews.value.indexOf(viewName); + if (index > -1) { + cachedViews.value = cachedViews.value.slice(index, index + 1); + } else { + // if index = -1, there is no cached tags + cachedViews.value = []; + } + resolve([...cachedViews.value]); + }); + } + + function updateVisitedView(view: TagView) { + for (let v of visitedViews.value) { + if (v.path === view.path) { + v = Object.assign(v, view); + break; + } + } + } + + function addView(view: TagView) { + addVisitedView(view); + addCachedView(view); + } + + function delView(view: TagView) { + return new Promise((resolve) => { + delVisitedView(view); + delCachedView(view); + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value], + }); + }); + } + + function delOtherViews(view: TagView) { + return new Promise((resolve) => { + delOtherVisitedViews(view); + delOtherCachedViews(view); + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value], + }); + }); + } + + function delLeftViews(view: TagView) { + return new Promise((resolve) => { + const currIndex = visitedViews.value.findIndex( + (v) => v.path === view.path + ); + if (currIndex === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item, index) => { + if (index >= currIndex || item?.affix) { + return true; + } + + const cacheIndex = cachedViews.value.indexOf(item.name); + if (cacheIndex > -1) { + cachedViews.value.splice(cacheIndex, 1); + } + return false; + }); + resolve({ + visitedViews: [...visitedViews.value], + }); + }); + } + function delRightViews(view: TagView) { + return new Promise((resolve) => { + const currIndex = visitedViews.value.findIndex( + (v) => v.path === view.path + ); + if (currIndex === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item, index) => { + if (index <= currIndex || item?.affix) { + return true; + } + }); + resolve({ + visitedViews: [...visitedViews.value], + }); + }); + } + + function delAllViews() { + return new Promise((resolve) => { + const affixTags = visitedViews.value.filter((tag) => tag?.affix); + visitedViews.value = affixTags; + cachedViews.value = []; + resolve({ + visitedViews: [...visitedViews.value], + cachedViews: [...cachedViews.value], + }); + }); + } + + function delAllVisitedViews() { + return new Promise((resolve) => { + const affixTags = visitedViews.value.filter((tag) => tag?.affix); + visitedViews.value = affixTags; + resolve([...visitedViews.value]); + }); + } + + function delAllCachedViews() { + return new Promise((resolve) => { + cachedViews.value = []; + resolve([...cachedViews.value]); + }); + } + + /** + * 关闭当前tagView + */ + function closeCurrentView() { + const tags: TagView = { + name: route.name as string, + title: route.meta.title as string, + path: route.path, + fullPath: route.fullPath, + affix: route.meta?.affix, + keepAlive: route.meta?.keepAlive, + query: route.query, + }; + delView(tags).then((res: any) => { + if (isActive(tags)) { + toLastView(res.visitedViews, tags); + } + }); + } + function isActive(tag: TagView) { + return tag.path === route.path; + } + + function toLastView(visitedViews: TagView[], view?: TagView) { + const latestView = visitedViews.slice(-1)[0]; + if (latestView && latestView.fullPath) { + router.push(latestView.fullPath); + } else { + // now the default is to redirect to the home page if there is no tags-view, + // you can adjust it according to your needs. + if (view?.name === "Dashboard") { + // to reload home page + router.replace("/redirect" + view.fullPath); + } else { + router.push("/"); + } + } + } + return { + visitedViews, + cachedViews, + addVisitedView, + addCachedView, + delVisitedView, + delCachedView, + delOtherVisitedViews, + delOtherCachedViews, + updateVisitedView, + addView, + delView, + delOtherViews, + delLeftViews, + delRightViews, + delAllViews, + delAllVisitedViews, + delAllCachedViews, + closeCurrentView, + isActive, + toLastView, + }; +}); diff --git a/src/renderer/themes/default/store/modules/user.ts b/src/renderer/themes/default/store/modules/user.ts new file mode 100644 index 0000000..38c214c --- /dev/null +++ b/src/renderer/themes/default/store/modules/user.ts @@ -0,0 +1,97 @@ +import AuthAPI from "@api/auth"; +import UserAPI from "@api/user"; +import {resetRouter} from "@theme/router"; +import {store} from "@theme/store"; + +import {LoginData} from "@api/auth"; +import {UserInfo} from "@api/user"; +import {TOKEN_KEY} from "@theme/enums/CacheEnum"; + +export const useUserStore = defineStore("user", () => { + const user = ref({ + roles: [], + perms: [], + }); + + /** + * 登录 + * + * @returns + * @param loginData + */ + function login(loginData: LoginData) { + return new Promise((resolve, reject) => { + AuthAPI.login(loginData) + .then((data) => { + const {tokenType, accessToken} = data; + localStorage.setItem(TOKEN_KEY, tokenType + " " + accessToken); // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + } + + // 获取信息(用户昵称、头像、角色集合、权限集合) + function getUserInfo() { + return new Promise((resolve, reject) => { + UserAPI.getInfo() + .then((res) => { + let data = res; + // console.log(data); + if (!data) { + reject("Verification failed, please Login again."); + return; + } + if (!data.roles || data.roles.length <= 0) { + reject("getUserInfo: roles must be a non-null array!"); + return; + } + Object.assign(user.value, {...data}); + resolve(data); + }) + .catch((error) => { + reject(error); + }); + }); + } + + // user logout + function logout() { + return new Promise((resolve, reject) => { + AuthAPI.logout() + .then(() => { + localStorage.setItem(TOKEN_KEY, ""); + location.reload(); // 清空路由 + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + } + + // remove token + function resetToken() { + // console.log("resetToken"); + return new Promise((resolve) => { + localStorage.setItem(TOKEN_KEY, ""); + resetRouter(); + resolve(); + }); + } + + return { + user, + login, + getUserInfo, + logout, + resetToken, + }; +}); + +// 非setup +export function useUserStoreHook() { + return useUserStore(store); +} diff --git a/src/renderer/themes/default/styles/index.scss b/src/renderer/themes/default/styles/index.scss new file mode 100644 index 0000000..b431308 --- /dev/null +++ b/src/renderer/themes/default/styles/index.scss @@ -0,0 +1,28 @@ +@use "./reset"; + +.app-container { + padding: 15px; +} + +.search-container { + padding: 18px 0 0 10px; + margin-bottom: 10px; + background-color: var(--el-bg-color-overlay); + border: 1px solid var(--el-border-color-light); + border-radius: 4px; + box-shadow: var(--el-box-shadow-light); +} + +.table-container > .el-card__header { + padding: calc(var(--el-card-padding) - 8px) var(--el-card-padding); +} + +.link-type, +.link-type:focus { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32 160 255); + } +} diff --git a/src/renderer/themes/default/styles/login.scss b/src/renderer/themes/default/styles/login.scss new file mode 100644 index 0000000..4f2ef08 --- /dev/null +++ b/src/renderer/themes/default/styles/login.scss @@ -0,0 +1,81 @@ +.login-container { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + overflow-y: auto; + background: url("../assets/images/login-background-light.jpg") no-repeat center + right; + + .top-bar { + position: absolute; + top: 0; + left: 0; + display: flex; + align-items: center; + justify-content: flex-end; + width: 100%; + padding: 10px; + } + + .login-card { + width: 400px; + background: transparent; + border: none; + border-radius: 4%; + + @media (width <= 640px) { + width: 340px; + } + + .input-wrapper { + display: flex; + align-items: center; + width: 100%; + } + + .captcha-image { + height: 48px; + cursor: pointer; + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + } + } + + .icp-info { + position: absolute; + bottom: 4px; + font-size: 12px; + text-align: center; + } + + .el-form-item { + background: var(--el-input-bg-color); + border: 1px solid var(--el-border-color); + border-radius: 5px; + } + + .el-input { + .el-input__wrapper { + padding: 0; + background-color: transparent; + box-shadow: none; + + &.is-focus, + &:hover { + box-shadow: none !important; + } + + input:-webkit-autofill { + /* 通过延时渲染背景色变相去除背景颜色 */ + transition: background-color 1000s ease-in-out 0s; + } + } + } +} + +html.dark .login-container { + background: url("../assets/images/login-background-dark.jpg") no-repeat center + right; +} diff --git a/src/renderer/themes/default/styles/reset.scss b/src/renderer/themes/default/styles/reset.scss new file mode 100644 index 0000000..a20f04a --- /dev/null +++ b/src/renderer/themes/default/styles/reset.scss @@ -0,0 +1,76 @@ +*, +::before, +::after { + box-sizing: border-box; + border-color: currentcolor; + border-style: solid; + border-width: 0; +} + +#app { + width: 100%; + height: 100%; +} + +html { + box-sizing: border-box; + width: 100%; + height: 100%; + line-height: 1.5; + tab-size: 4; + text-size-adjust: 100%; +} + +body { + width: 100%; + height: 100%; + margin: 0; + font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", + "Microsoft YaHei", "微软雅黑", Arial, sans-serif; + line-height: inherit; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizelegibility; +} + +a { + color: inherit; + text-decoration: inherit; +} + +img, +svg { + display: inline-block; +} + +svg { + // 因icon大小被设置为和字体大小一致,而span等标签的下边缘会和字体的基线对齐,故需设置一个往下的偏移比例,来纠正视觉上的未对齐效果 + vertical-align: -0.15em; +} + +ul, +li { + padding: 0; + margin: 0; + list-style: none; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +a, +a:focus, +a:hover { + color: inherit; + text-decoration: none; + cursor: pointer; +} + +a:focus, +a:active, +div:focus { + outline: none; +} diff --git a/src/renderer/themes/default/styles/variables.module.scss b/src/renderer/themes/default/styles/variables.module.scss new file mode 100644 index 0000000..20a624d --- /dev/null +++ b/src/renderer/themes/default/styles/variables.module.scss @@ -0,0 +1,11 @@ +/* stylelint-disable property-no-unknown */ +:export { + sidebar-width: $sidebar-width; + navbar-height: $navbar-height; + tags-view-height: $tags-view-height; + menu-background: $menu-background; + menu-text: $menu-text; + menu-active-text: $menu-active-text; + menu-hover: $menu-hover; +} +/* stylelint-enable property-no-unknown */ diff --git a/src/renderer/themes/default/styles/variables.scss b/src/renderer/themes/default/styles/variables.scss new file mode 100644 index 0000000..42f9718 --- /dev/null +++ b/src/renderer/themes/default/styles/variables.scss @@ -0,0 +1,34 @@ +/** 全局SCSS变量 */ + +:root { + --menu-background: #304156; + --menu-text: #bfcbd9; + --menu-active-text: var(--el-menu-active-color); + --menu-hover: #263445; + --sidebar-logo-background: #2d3748; + + // 修复表格 fixed 列被选中后由于透明色导致叠字的 bug + .el-table { + --el-table-current-row-bg-color: rgb(235 243 250); + } +} + +/** 暗黑主题 */ +html.dark { + --menu-background: var(--el-bg-color-overlay); + --menu-text: #fff; + --menu-active-text: var(--el-menu-active-color); + --menu-hover: rgb(0 0 0 / 20%); + --sidebar-logo-background: rgb(0 0 0 / 20%); +} + +$menu-background: var(--menu-background); // 菜单背景色 +$menu-text: var(--menu-text); // 菜单文字颜色 +$menu-active-text: var(--menu-active-text); // 菜单激活文字颜色 +$menu-hover: var(--menu-hover); // 菜单悬停背景色 +$sidebar-logo-background: var(--sidebar-logo-background); // 侧边栏 Logo 背景色 + +$sidebar-width: 210px; // 侧边栏宽度 +$sidebar-width-collapsed: 54px; // 侧边栏收缩宽度 +$navbar-height: 50px; // 导航栏高度 +$tags-view-height: 34px; // TagsView 高度 diff --git a/src/renderer/themes/default/types/components.d.ts b/src/renderer/themes/default/types/components.d.ts new file mode 100644 index 0000000..7e2b2a1 --- /dev/null +++ b/src/renderer/themes/default/types/components.d.ts @@ -0,0 +1,107 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module "vue" { + export interface GlobalComponents { + AppLink: (typeof import("./../components/AppLink/index.vue"))["default"]; + AppMain: (typeof import("./../layout/components/AppMain/index.vue"))["default"]; + VisitTrend: (typeof import("./../views/dashboard/components/VisitTrend.vue"))["default"]; + Breadcrumb: (typeof import("./../components/Breadcrumb/index.vue"))["default"]; + CopyButton: (typeof import("./../components/CopyButton/index.vue"))["default"]; + CURD: (typeof import("./../components/CURD/index.vue"))["default"]; + DeptTree: (typeof import("./../views/system/user/components/dept-tree.vue"))["default"]; + UserImport: (typeof import("./../views/system/user/components/user-import.vue"))["default"]; + Dictionary: (typeof import("./../components/Dictionary/index.vue"))["default"]; + DictItem: (typeof import("./../views/system/dict/components/dict-item.vue"))["default"]; + ElBacktop: (typeof import("element-plus/es"))["ElBacktop"]; + ElBreadcrumb: (typeof import("element-plus/es"))["ElBreadcrumb"]; + ElBreadcrumbItem: (typeof import("element-plus/es"))["ElBreadcrumbItem"]; + ElButton: (typeof import("element-plus/es"))["ElButton"]; + ElCard: (typeof import("element-plus/es"))["ElCard"]; + ElCheckbox: (typeof import("element-plus/es"))["ElCheckbox"]; + ElCheckboxGroup: (typeof import("element-plus/es"))["ElCheckboxGroup"]; + ElCol: (typeof import("element-plus/es"))["ElCol"]; + ElColorPicker: (typeof import("element-plus/es"))["ElColorPicker"]; + ElConfigProvider: (typeof import("element-plus/es"))["ElConfigProvider"]; + ElDatePicker: (typeof import("element-plus/es"))["ElDatePicker"]; + ElDialog: (typeof import("element-plus/es"))["ElDialog"]; + ElDivider: (typeof import("element-plus/es"))["ElDivider"]; + ElDrawer: (typeof import("element-plus/es"))["ElDrawer"]; + ElDropdown: (typeof import("element-plus/es"))["ElDropdown"]; + ElDropdownItem: (typeof import("element-plus/es"))["ElDropdownItem"]; + ElDropdownMenu: (typeof import("element-plus/es"))["ElDropdownMenu"]; + ElForm: (typeof import("element-plus/es"))["ElForm"]; + ElFormItem: (typeof import("element-plus/es"))["ElFormItem"]; + ElIcon: (typeof import("element-plus/es"))["ElIcon"]; + ElImage: (typeof import("element-plus/es"))["ElImage"]; + ElInput: (typeof import("element-plus/es"))["ElInput"]; + ElInputNumber: (typeof import("element-plus/es"))["ElInputNumber"]; + ElLink: (typeof import("element-plus/es"))["ElLink"]; + ElMenu: (typeof import("element-plus/es"))["ElMenu"]; + ElMenuItem: (typeof import("element-plus/es"))["ElMenuItem"]; + ElOption: (typeof import("element-plus/es"))["ElOption"]; + ElPagination: (typeof import("element-plus/es"))["ElPagination"]; + ElPopover: (typeof import("element-plus/es"))["ElPopover"]; + ElRadio: (typeof import("element-plus/es"))["ElRadio"]; + ElRadioGroup: (typeof import("element-plus/es"))["ElRadioGroup"]; + ElRow: (typeof import("element-plus/es"))["ElRow"]; + ElScrollbar: (typeof import("element-plus/es"))["ElScrollbar"]; + ElSelect: (typeof import("element-plus/es"))["ElSelect"]; + ElStatistic: (typeof import("element-plus/es"))["ElStatistic"]; + ElSubMenu: (typeof import("element-plus/es"))["ElSubMenu"]; + ElSwitch: (typeof import("element-plus/es"))["ElSwitch"]; + ElTable: (typeof import("element-plus/es"))["ElTable"]; + ElTableColumn: (typeof import("element-plus/es"))["ElTableColumn"]; + ElTag: (typeof import("element-plus/es"))["ElTag"]; + ElText: (typeof import("element-plus/es"))["ElText"]; + ElTooltip: (typeof import("element-plus/es"))["ElTooltip"]; + ElTreeSelect: (typeof import("element-plus/es"))["ElTreeSelect"]; + ElUpload: (typeof import("element-plus/es"))["ElUpload"]; + ElWatermark: (typeof import("element-plus/es"))["ElWatermark"]; + Form: (typeof import("./../components/CURD/Form.vue"))["default"]; + FunnelChart: (typeof import("./../views/dashboard/components/FunnelChart.vue"))["default"]; + GithubCorner: (typeof import("./../components/GithubCorner/index.vue"))["default"]; + Hamburger: (typeof import("./../components/Hamburger/index.vue"))["default"]; + IconSelect: (typeof import("./../components/IconSelect/index.vue"))["default"]; + IEpArrowDown: (typeof import("~icons/ep/arrow-down"))["default"]; + IEpArrowUp: (typeof import("~icons/ep/arrow-up"))["default"]; + IEpClose: (typeof import("~icons/ep/close"))["default"]; + IEpDownload: (typeof import("~icons/ep/download"))["default"]; + LangSelect: (typeof import("./../components/LangSelect/index.vue"))["default"]; + LayoutSelect: (typeof import("./../layout/components/Settings/components/LayoutSelect.vue"))["default"]; + MultiUpload: (typeof import("./../components/Upload/MultiUpload.vue"))["default"]; + NavBar: (typeof import("./../layout/components/NavBar/index.vue"))["default"]; + NavbarLeft: (typeof import("./../layout/components/NavBar/components/NavbarLeft.vue"))["default"]; + NavbarRight: (typeof import("./../layout/components/NavBar/components/NavbarRight.vue"))["default"]; + PageContent: (typeof import("./../components/CURD/PageContent.vue"))["default"]; + PageForm: (typeof import("./../components/CURD/PageForm.vue"))["default"]; + PageModal: (typeof import("./../components/CURD/PageModal.vue"))["default"]; + PageSearch: (typeof import("./../components/CURD/PageSearch.vue"))["default"]; + Pagination: (typeof import("./../components/Pagination/index.vue"))["default"]; + PieChart: (typeof import("./../views/dashboard/components/PieChart.vue"))["default"]; + RadarChart: (typeof import("./../views/dashboard/components/RadarChart.vue"))["default"]; + RouterLink: (typeof import("vue-router"))["RouterLink"]; + RouterView: (typeof import("vue-router"))["RouterView"]; + Settings: (typeof import("./../layout/components/Settings/index.vue"))["default"]; + Sidebar: (typeof import("./../layout/components/Sidebar/index.vue"))["default"]; + SidebarLogo: (typeof import("./../layout/components/Sidebar/components/SidebarLogo.vue"))["default"]; + SidebarMenu: (typeof import("./../layout/components/Sidebar/components/SidebarMenu.vue"))["default"]; + SidebarMenuItem: (typeof import("./../layout/components/Sidebar/components/SidebarMenuItem.vue"))["default"]; + SidebarMenuItemTitle: (typeof import("./../layout/components/Sidebar/components/SidebarMenuItemTitle.vue"))["default"]; + SidebarMixTopMenu: (typeof import("./../layout/components/Sidebar/components/SidebarMixTopMenu.vue"))["default"]; + SingleUpload: (typeof import("./../components/Upload/SingleUpload.vue"))["default"]; + SizeSelect: (typeof import("./../components/SizeSelect/index.vue"))["default"]; + SvgIcon: (typeof import("./../components/SvgIcon/index.vue"))["default"]; + TableSelect: (typeof import("./../components/TableSelect/index.vue"))["default"]; + TagsView: (typeof import("./../layout/components/TagsView/index.vue"))["default"]; + ThemeColorPicker: (typeof import("./../layout/components/Settings/components/ThemeColorPicker.vue"))["default"]; + WangEditor: (typeof import("./../components/WangEditor/index.vue"))["default"]; + } + export interface ComponentCustomProperties { + vLoading: (typeof import("element-plus/es"))["ElLoadingDirective"]; + } +} diff --git a/src/renderer/themes/default/types/env.d.ts b/src/renderer/themes/default/types/env.d.ts new file mode 100644 index 0000000..90052ec --- /dev/null +++ b/src/renderer/themes/default/types/env.d.ts @@ -0,0 +1,40 @@ +// https://cn.vitejs.dev/guide/env-and-mode + +// declare module "*.vue" { +// import { DefineComponent } from "vue"; +// // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types +// const component: DefineComponent<{}, {}, any>; +// export default component; +// } + +// TypeScript 类型提示都为 string: https://github.com/vitejs/vite/issues/6930 +interface ImportMetaEnv { + /** 应用端口 */ + VITE_APP_PORT: number; + /** API 基础路径(代理前缀) */ + VITE_APP_BASE_API: string; + /** API 地址 */ + VITE_APP_API_URL: string; + /** 是否开启 Mock 服务 */ + VITE_MOCK_DEV_SERVER: boolean; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} + +/** + * 平台的名称、版本、运行所需的`node`版本、依赖、构建时间的类型提示 + */ +declare const __APP_INFO__: { + pkg: { + name: string; + version: string; + engines: { + node: string; + }; + dependencies: Record; + devDependencies: Record; + }; + buildTimestamp: number; +}; diff --git a/src/renderer/themes/default/types/global.d.ts b/src/renderer/themes/default/types/global.d.ts new file mode 100644 index 0000000..146d5bf --- /dev/null +++ b/src/renderer/themes/default/types/global.d.ts @@ -0,0 +1,95 @@ +declare global { + /** + * 响应数据 + */ + interface ResponseData { + code: string; + data: T; + msg: string; + } + + /** + * 分页查询参数 + */ + interface PageQuery { + pageNum: number; + pageSize: number; + } + + /** + * 分页响应对象 + */ + interface PageResult { + /** 数据列表 */ + list: T; + /** 总数 */ + total: number; + } + + /** + * 页签对象 + */ + interface TagView { + /** 页签名称 */ + name: string; + /** 页签标题 */ + title: string; + /** 页签路由路径 */ + path: string; + /** 页签路由完整路径 */ + fullPath: string; + /** 页签图标 */ + icon?: string; + /** 是否固定页签 */ + affix?: boolean; + /** 是否开启缓存 */ + keepAlive?: boolean; + /** 路由查询参数 */ + query?: any; + } + + /** + * 系统设置 + */ + interface AppSettings { + /** 系统标题 */ + title: string; + /** 系统版本 */ + version: string; + /** 是否显示设置 */ + showSettings: boolean; + /** 是否固定头部 */ + fixedHeader: boolean; + /** 是否显示多标签导航 */ + tagsView: boolean; + /** 是否显示侧边栏Logo */ + sidebarLogo: boolean; + /** 导航栏布局(left|top|mix) */ + layout: string; + /** 主题颜色 */ + themeColor: string; + /** 主题模式(dark|light) */ + theme: string; + /** 布局大小(default |large |small) */ + size: string; + /** 语言( zh-cn| en) */ + language: string; + /** 是否开启水印 */ + watermarkEnabled: boolean; + /** 水印内容 */ + watermarkContent: string; + } + + /** + * 组件数据源 + */ + interface OptionType { + /** 值 */ + value: string | number; + /** 文本 */ + label: string; + /** 子列表 */ + children?: OptionType[]; + } +} +export {}; diff --git a/src/renderer/themes/default/types/router.d.ts b/src/renderer/themes/default/types/router.d.ts new file mode 100644 index 0000000..a175ea1 --- /dev/null +++ b/src/renderer/themes/default/types/router.d.ts @@ -0,0 +1,54 @@ +import "vue-router"; + +declare module "vue-router" { + // https://router.vuejs.org/zh/guide/advanced/meta.html#typescript + // 可以通过扩展 RouteMeta 接口来输入 meta 字段 + interface RouteMeta { + /** + * 菜单名称 + * @example 'Dashboard' + */ + title?: string; + + /** + * 菜单图标 + * @example 'el-icon-edit' + */ + icon?: string; + + /** + * 是否隐藏菜单项 + * true 隐藏, false 显示 + * @default false + */ + hidden?: boolean; + + /** + * 始终显示父级菜单,即使只有一个子菜单 + * true 显示父级菜单, false 隐藏父级菜单,显示唯一子节点 + * @default false + */ + alwaysShow?: boolean; + + /** + * 是否固定在页签上 + * true 固定, false 不固定 + * @default false + */ + affix?: boolean; + + /** + * 是否缓存页面 + * true 缓存, false 不缓存 + * @default false + */ + keepAlive?: boolean; + + /** + * 是否在面包屑导航中隐藏 + * true 隐藏, false 显示 + * @default false + */ + breadcrumb?: boolean; + } +} diff --git a/src/renderer/themes/default/types/socket.d.ts b/src/renderer/themes/default/types/socket.d.ts new file mode 100644 index 0000000..15a8ed7 --- /dev/null +++ b/src/renderer/themes/default/types/socket.d.ts @@ -0,0 +1,6 @@ +// https://github.com/sockjs/sockjs-client/issues/565 + +declare module "sockjs-client/dist/sockjs.min.js" { + import Client from "sockjs-client"; + export default Client; +} diff --git a/src/renderer/themes/default/utils/i18n.ts b/src/renderer/themes/default/utils/i18n.ts new file mode 100644 index 0000000..2d99a3d --- /dev/null +++ b/src/renderer/themes/default/utils/i18n.ts @@ -0,0 +1,12 @@ +// translate router.meta.title, be used in breadcrumb sidebar tagsview +import i18n from "@theme/lang/index"; + +export function translateRouteTitle(title: any) { + // 判断是否存在国际化配置,如果没有原生返回 + const hasKey = i18n.global.te("route." + title); + if (hasKey) { + const translatedTitle = i18n.global.t("route." + title); + return translatedTitle; + } + return title; +} diff --git a/src/renderer/themes/default/utils/index.ts b/src/renderer/themes/default/utils/index.ts new file mode 100644 index 0000000..44bb588 --- /dev/null +++ b/src/renderer/themes/default/utils/index.ts @@ -0,0 +1,41 @@ +/** + * Check if an element has a class + * @param {HTMLElement} ele + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele: HTMLElement, cls: string) { + return !!ele.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)")); +} + +/** + * Add class to element + * @param {HTMLElement} ele + * @param {string} cls + */ +export function addClass(ele: HTMLElement, cls: string) { + if (!hasClass(ele, cls)) ele.className += " " + cls; +} + +/** + * Remove class from element + * @param {HTMLElement} ele + * @param {string} cls + */ +export function removeClass(ele: HTMLElement, cls: string) { + if (hasClass(ele, cls)) { + const reg = new RegExp("(\\s|^)" + cls + "(\\s|$)"); + ele.className = ele.className.replace(reg, " "); + } +} + +/** + * 判断是否是外部链接 + * + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path: string) { + const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path); + return isExternal; +} diff --git a/src/renderer/themes/default/utils/nprogress.ts b/src/renderer/themes/default/utils/nprogress.ts new file mode 100644 index 0000000..c1d5f23 --- /dev/null +++ b/src/renderer/themes/default/utils/nprogress.ts @@ -0,0 +1,18 @@ +import NProgress from "nprogress"; +import "nprogress/nprogress.css"; + +// 进度条 +NProgress.configure({ + // 动画方式 + easing: "ease", + // 递增进度条的速度 + speed: 500, + // 是否显示加载ico + showSpinner: false, + // 自动递增间隔 + trickleSpeed: 200, + // 初始化时的最小百分比 + minimum: 0.3, +}); + +export default NProgress; diff --git a/src/renderer/themes/default/utils/request.ts b/src/renderer/themes/default/utils/request.ts new file mode 100644 index 0000000..d1bd9af --- /dev/null +++ b/src/renderer/themes/default/utils/request.ts @@ -0,0 +1,71 @@ +import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios"; +import { useUserStoreHook } from "@theme/store/modules/user"; +import { ResultEnum } from "@theme/enums/ResultEnum"; +import { TOKEN_KEY } from "@theme/enums/CacheEnum"; + +// 创建 axios 实例 +const service = axios.create({ + baseURL: process.env.BASE_API, + timeout: 500, + headers: { "Content-Type": "application/json;charset=utf-8" }, +}); + +// 请求拦截器 +service.interceptors.request.use( + (config: InternalAxiosRequestConfig) => { + const accessToken = localStorage.getItem(TOKEN_KEY); + if (accessToken) { + config.headers.Authorization = accessToken; + } + return config; + }, + (error: any) => { + return Promise.reject(error); + } +); + +// 响应拦截器 +service.interceptors.response.use( + (response: AxiosResponse) => { + // 检查配置的响应类型是否为二进制类型('blob' 或 'arraybuffer'), 如果是,直接返回响应对象 + if ( + response.config.responseType === "blob" || + response.config.responseType === "arraybuffer" + ) { + return response; + } + + const { code, data, msg } = response.data; + if (code === ResultEnum.SUCCESS) { + return data; + } + + ElMessage.error(msg || "系统出错"); + return Promise.reject(new Error(msg || "Error")); + }, + (error: any) => { + console.log(error); + // 异常处理 + if (error.response.data) { + const { code, msg } = error.response.data; + if (code === ResultEnum.TOKEN_INVALID) { + ElNotification({ + title: "提示", + message: "您的会话已过期,请重新登录", + type: "info", + }); + useUserStoreHook() + .resetToken() + .then(() => { + location.reload(); + }); + } else { + ElMessage.error(msg || "系统出错"); + } + } + return Promise.reject(error.message); + } +); + +// 导出 axios 实例 +export default service; diff --git a/src/renderer/themes/default/views/dashboard/components/VisitTrend.vue b/src/renderer/themes/default/views/dashboard/components/VisitTrend.vue new file mode 100644 index 0000000..bfbd97e --- /dev/null +++ b/src/renderer/themes/default/views/dashboard/components/VisitTrend.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/renderer/themes/default/views/dashboard/index.vue b/src/renderer/themes/default/views/dashboard/index.vue new file mode 100644 index 0000000..1548c4d --- /dev/null +++ b/src/renderer/themes/default/views/dashboard/index.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/renderer/themes/default/views/demo/api/apifox.vue b/src/renderer/themes/default/views/demo/api/apifox.vue new file mode 100644 index 0000000..e625213 --- /dev/null +++ b/src/renderer/themes/default/views/demo/api/apifox.vue @@ -0,0 +1,27 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/api/knife4j.vue b/src/renderer/themes/default/views/demo/api/knife4j.vue new file mode 100644 index 0000000..4929cc6 --- /dev/null +++ b/src/renderer/themes/default/views/demo/api/knife4j.vue @@ -0,0 +1,27 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/api/swagger.vue b/src/renderer/themes/default/views/demo/api/swagger.vue new file mode 100644 index 0000000..dd6dc9d --- /dev/null +++ b/src/renderer/themes/default/views/demo/api/swagger.vue @@ -0,0 +1,27 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/curd/config/add.ts b/src/renderer/themes/default/views/demo/curd/config/add.ts new file mode 100644 index 0000000..7f44eee --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/config/add.ts @@ -0,0 +1,119 @@ +import DeptAPI from "@api/dept"; +import RoleAPI from "@api/role"; +import UserAPI, {UserForm} from "@api/user"; +import type {IModalConfig} from "@theme/components/CURD/types"; + +const modalConfig: IModalConfig = { + pageName: "sys:user", + dialog: { + title: "新增用户", + width: 800, + draggable: true, + }, + form: { + labelWidth: 100, + }, + formAction: UserAPI.add, + beforeSubmit(data) { + console.log("提交之前处理", data); + }, + formItems: [ + { + label: "用户名", + prop: "username", + rules: [{required: true, message: "用户名不能为空", trigger: "blur"}], + type: "input", + attrs: { + placeholder: "请输入用户名", + }, + }, + { + label: "用户昵称", + prop: "nickname", + rules: [{required: true, message: "用户昵称不能为空", trigger: "blur"}], + type: "input", + attrs: { + placeholder: "请输入用户昵称", + }, + }, + { + label: "所属部门", + prop: "deptId", + rules: [{required: true, message: "所属部门不能为空", trigger: "blur"}], + type: "tree-select", + attrs: { + placeholder: "请选择所属部门", + data: [], + filterable: true, + "check-strictly": true, + "render-after-expand": false, + }, + async initFn(formItem) { + formItem.attrs.data = await DeptAPI.getOptions(); + }, + }, + { + type: "custom", + label: "性别", + prop: "gender", + }, + { + label: "角色", + prop: "roleIds", + rules: [{required: true, message: "用户角色不能为空", trigger: "blur"}], + type: "select", + attrs: { + placeholder: "请选择", + multiple: true, + }, + options: [], + async initFn(formItem) { + this.options = await RoleAPI.getOptions(); + }, + }, + { + type: "input", + label: "手机号码", + prop: "mobile", + rules: [ + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "请输入正确的手机号码", + trigger: "blur", + }, + ], + attrs: { + placeholder: "请输入手机号码", + maxlength: 11, + }, + }, + { + label: "邮箱", + prop: "email", + rules: [ + { + pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, + message: "请输入正确的邮箱地址", + trigger: "blur", + }, + ], + type: "input", + attrs: { + placeholder: "请输入邮箱", + maxlength: 50, + }, + }, + { + label: "状态", + prop: "status", + type: "radio", + options: [ + {label: "正常", value: 1}, + {label: "禁用", value: 0}, + ], + initialValue: 1, + }, + ], +}; + +export default modalConfig; diff --git a/src/renderer/themes/default/views/demo/curd/config/content.ts b/src/renderer/themes/default/views/demo/curd/config/content.ts new file mode 100644 index 0000000..95271d6 --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/config/content.ts @@ -0,0 +1,121 @@ +import UserAPI from "@api/user"; +import RoleAPI from "@api/role"; +import type {UserPageQuery} from "@api/user"; +import type {IContentConfig} from "@theme/components/CURD/types"; + +const contentConfig: IContentConfig = { + pageName: "sys:user", + table: { + border: true, + highlightCurrentRow: true, + }, + pagination: { + background: true, + layout: "prev,pager,next,jumper,total,sizes", + pageSize: 20, + pageSizes: [10, 20, 30, 50], + }, + indexAction: function (params) { + if ("createAt" in params) { + const createAt = params.createAt as string[]; + if (createAt?.length > 1) { + params.startTime = createAt[0]; + params.endTime = createAt[1]; + } + delete params.createAt; + } + return UserAPI.getPage(params); + }, + deleteAction: UserAPI.deleteByIds, + importAction(file) { + return UserAPI.import(1, file); + }, + exportAction: UserAPI.export, + importTemplate: UserAPI.downloadTemplate, + importsAction(data) { + // 模拟导入数据 + console.log("importsAction", data); + return Promise.resolve(); + }, + exportsAction: async function (params) { + // 模拟获取到的是全量数据 + const res = await UserAPI.getPage(params); + console.log("exportsAction", res.list); + return res.list; + }, + pk: "id", + toolbar: [ + "add", + "delete", + "import", + "export", + { + name: "custom1", + icon: "plus", + text: "自定义1", + auth: "import", + type: "info", + }, + ], + defaultToolbar: ["refresh", "filter", "imports", "exports", "search"], + cols: [ + {type: "selection", width: 50, align: "center"}, + {label: "编号", align: "center", prop: "id", width: 100, show: false}, + {label: "用户名", align: "center", prop: "username"}, + {label: "头像", align: "center", prop: "avatar", templet: "image"}, + {label: "用户昵称", align: "center", prop: "nickname", width: 120}, + {label: "性别", align: "center", prop: "genderLabel", width: 100}, + {label: "部门", align: "center", prop: "deptName", width: 120}, + { + label: "角色", + align: "center", + prop: "roleNames", + width: 120, + columnKey: "roleIds", + filters: [], + filterMultiple: true, + filterJoin: ",", + async initFn(colItem) { + const roleOptions = await RoleAPI.getOptions(); + colItem.filters = roleOptions.map((item) => { + return {text: item.label, value: item.value}; + }); + }, + }, + { + label: "手机号码", + align: "center", + prop: "mobile", + templet: "custom", + slotName: "mobile", + width: 150, + }, + { + label: "状态", + align: "center", + prop: "status", + templet: "custom", + slotName: "status", + }, + {label: "创建时间", align: "center", prop: "createTime", width: 180}, + { + label: "操作", + align: "center", + fixed: "right", + width: 220, + templet: "tool", + operat: [ + { + name: "reset_pwd", + auth: "password:reset", + icon: "refresh-left", + text: "重置密码", + }, + "edit", + "delete", + ], + }, + ], +}; + +export default contentConfig; diff --git a/src/renderer/themes/default/views/demo/curd/config/content2.ts b/src/renderer/themes/default/views/demo/curd/config/content2.ts new file mode 100644 index 0000000..0793c8c --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/config/content2.ts @@ -0,0 +1,135 @@ +import type { IContentConfig } from "@theme/components/CURD/types"; + +const contentConfig: IContentConfig = { + pageName: "sys:user", + table: { + showOverflowTooltip: true, + }, + toolbar: [], + indexAction: function (params) { + // 模拟发起网络请求获取列表数据 + // console.log("indexAction:", params); + return Promise.resolve({ + total: 2, + list: [ + { + id: 1, + username: "tom", + avatar: + "https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif", + percent: 99, + price: 10, + url: "https://www.baidu.com", + icon: "el-icon-setting", + gender: 1, + status: 1, + status2: 1, + sort: 99, + createTime: 1715647982437, + }, + { + id: 2, + username: "jerry", + avatar: + "https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif", + percent: 88, + price: 999, + url: "https://www.google.com", + icon: "el-icon-user", + gender: 0, + status: 0, + status2: 0, + sort: 0, + createTime: 1715648977426, + }, + ], + }); + }, + modifyAction(data) { + // 模拟发起网络请求修改字段 + // console.log("modifyAction:", data); + ElMessage.success(JSON.stringify(data)); + return Promise.resolve(null); + }, + cols: [ + { type: "index", width: 50, align: "center" }, + { label: "ID", align: "center", prop: "id", show: false }, + { label: "文本", align: "center", prop: "username" }, + { label: "图片", align: "center", prop: "avatar", templet: "image" }, + { + label: "百分比", + align: "center", + prop: "percent", + templet: "percent", + }, + { + label: "货币符", + align: "center", + prop: "price", + templet: "price", + priceFormat: "$", + }, + { label: "链接", align: "center", prop: "url", width: 180, templet: "url" }, + { label: "图标", align: "center", prop: "icon", templet: "icon" }, + { + label: "列表值", + align: "center", + prop: "gender", + templet: "list", + selectList: { 0: "女", 1: "男" }, + }, + { + label: "自定义", + align: "center", + prop: "status", + templet: "custom", + slotName: "status", + }, + { + label: "Switch", + align: "center", + prop: "status2", + templet: "switch", + activeValue: 1, + inactiveValue: 0, + activeText: "启用", + inactiveText: "禁用", + }, + { + label: "输入框", + align: "center", + prop: "sort", + templet: "input", + inputType: "number", + }, + { + label: "日期格式化", + align: "center", + prop: "createTime", + minWidth: 120, + templet: "date", + dateFormat: "YYYY/MM/DD HH:mm:ss", + }, + { + label: "操作栏", + align: "center", + fixed: "right", + width: 220, + templet: "tool", + operat: [ + { + name: "reset_pwd", + auth: "password:reset", + icon: "refresh-left", + text: "重置密码", + type: "primary", + render(row) { + return row.id === 1; + }, + }, + ], + }, + ], +}; + +export default contentConfig; diff --git a/src/renderer/themes/default/views/demo/curd/config/edit.ts b/src/renderer/themes/default/views/demo/curd/config/edit.ts new file mode 100644 index 0000000..fc7dde0 --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/config/edit.ts @@ -0,0 +1,122 @@ +import DeptAPI from "@api/dept"; +import RoleAPI from "@api/role"; +import UserAPI from "@api/user"; +import type {UserForm} from "@api/user"; +import type {IModalConfig} from "@theme/components/CURD/types"; +import {DeviceEnum} from "@theme/enums/DeviceEnum"; +import {useAppStore} from "@theme/store"; + +const modalConfig: IModalConfig = { + pageName: "sys:user", + component: "drawer", + drawer: { + title: "修改用户", + size: useAppStore().device === DeviceEnum.MOBILE ? "90%" : 600, + }, + pk: "id", + formAction: function (data) { + return UserAPI.update(data.id as number, data); + }, + beforeSubmit(data) { + console.log("提交之前处理", data); + }, + formItems: [ + { + label: "用户名", + prop: "username", + rules: [{required: true, message: "用户名不能为空", trigger: "blur"}], + type: "input", + attrs: { + placeholder: "请输入用户名", + readonly: true, + }, + }, + { + label: "用户昵称", + prop: "nickname", + rules: [{required: true, message: "用户昵称不能为空", trigger: "blur"}], + type: "input", + attrs: { + placeholder: "请输入用户昵称", + }, + }, + { + label: "所属部门", + prop: "deptId", + rules: [{required: true, message: "所属部门不能为空", trigger: "blur"}], + type: "tree-select", + attrs: { + placeholder: "请选择所属部门", + data: [], + filterable: true, + "check-strictly": true, + "render-after-expand": false, + }, + async initFn(formItem) { + formItem.attrs.data = await DeptAPI.getOptions(); + }, + }, + { + type: "custom", + label: "性别", + prop: "gender", + }, + { + label: "角色", + prop: "roleIds", + rules: [{required: true, message: "用户角色不能为空", trigger: "blur"}], + type: "select", + attrs: { + placeholder: "请选择", + multiple: true, + }, + options: [], + async initFn(formItem) { + this.options = await RoleAPI.getOptions(); + }, + }, + { + type: "input", + label: "手机号码", + prop: "mobile", + rules: [ + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "请输入正确的手机号码", + trigger: "blur", + }, + ], + attrs: { + placeholder: "请输入手机号码", + maxlength: 11, + }, + }, + { + label: "邮箱", + prop: "email", + rules: [ + { + pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, + message: "请输入正确的邮箱地址", + trigger: "blur", + }, + ], + type: "input", + attrs: { + placeholder: "请输入邮箱", + maxlength: 50, + }, + }, + { + label: "状态", + prop: "status", + type: "radio", + options: [ + {label: "正常", value: 1}, + {label: "禁用", value: 0}, + ], + }, + ], +}; + +export default modalConfig; diff --git a/src/renderer/themes/default/views/demo/curd/config/search.ts b/src/renderer/themes/default/views/demo/curd/config/search.ts new file mode 100644 index 0000000..ffca0bd --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/config/search.ts @@ -0,0 +1,74 @@ +import DeptAPI from "@api/dept"; +import type {ISearchConfig} from "@theme/components/CURD/types"; + +const searchConfig: ISearchConfig = { + pageName: "sys:user", + formItems: [ + { + type: "input", + label: "关键字", + prop: "keywords", + attrs: { + placeholder: "用户名/昵称/手机号", + clearable: true, + style: { + width: "200px", + }, + }, + }, + { + type: "tree-select", + label: "部门", + prop: "deptId", + attrs: { + placeholder: "请选择", + data: [], + filterable: true, + "check-strictly": true, + "render-after-expand": false, + clearable: true, + style: { + width: "150px", + }, + }, + async initFn(formItem) { + formItem.attrs.data = await DeptAPI.getOptions(); + // 注意:如果initFn函数不是箭头函数,this会指向此配置项对象,那么也就可以用this来替代形参formItem + // this.attrs!.data = await DeptAPI.getOptions(); + }, + }, + { + type: "select", + label: "状态", + prop: "status", + attrs: { + placeholder: "全部", + clearable: true, + style: { + width: "100px", + }, + }, + options: [ + {label: "启用", value: 1}, + {label: "禁用", value: 0}, + ], + }, + { + type: "date-picker", + label: "创建时间", + prop: "createAt", + attrs: { + type: "daterange", + "range-separator": "~", + "start-placeholder": "开始时间", + "end-placeholder": "截止时间", + "value-format": "YYYY-MM-DD", + style: { + width: "240px", + }, + }, + }, + ], +}; + +export default searchConfig; diff --git a/src/renderer/themes/default/views/demo/curd/index.vue b/src/renderer/themes/default/views/demo/curd/index.vue new file mode 100644 index 0000000..1cff6aa --- /dev/null +++ b/src/renderer/themes/default/views/demo/curd/index.vue @@ -0,0 +1,157 @@ + + + diff --git a/src/renderer/themes/default/views/demo/dict.vue b/src/renderer/themes/default/views/demo/dict.vue new file mode 100644 index 0000000..eed0100 --- /dev/null +++ b/src/renderer/themes/default/views/demo/dict.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/icon-selector.vue b/src/renderer/themes/default/views/demo/icon-selector.vue new file mode 100644 index 0000000..6a419e2 --- /dev/null +++ b/src/renderer/themes/default/views/demo/icon-selector.vue @@ -0,0 +1,17 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/icons.vue b/src/renderer/themes/default/views/demo/icons.vue new file mode 100644 index 0000000..65e5925 --- /dev/null +++ b/src/renderer/themes/default/views/demo/icons.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/renderer/themes/default/views/demo/internal-doc.vue b/src/renderer/themes/default/views/demo/internal-doc.vue new file mode 100644 index 0000000..c1ceee4 --- /dev/null +++ b/src/renderer/themes/default/views/demo/internal-doc.vue @@ -0,0 +1,28 @@ + + diff --git a/src/renderer/themes/default/views/demo/multi-level/children/children/level3-1.vue b/src/renderer/themes/default/views/demo/multi-level/children/children/level3-1.vue new file mode 100644 index 0000000..888f58e --- /dev/null +++ b/src/renderer/themes/default/views/demo/multi-level/children/children/level3-1.vue @@ -0,0 +1,5 @@ + diff --git a/src/renderer/themes/default/views/demo/multi-level/children/children/level3-2.vue b/src/renderer/themes/default/views/demo/multi-level/children/children/level3-2.vue new file mode 100644 index 0000000..a99c98e --- /dev/null +++ b/src/renderer/themes/default/views/demo/multi-level/children/children/level3-2.vue @@ -0,0 +1,5 @@ + diff --git a/src/renderer/themes/default/views/demo/multi-level/children/level2.vue b/src/renderer/themes/default/views/demo/multi-level/children/level2.vue new file mode 100644 index 0000000..abcc3a7 --- /dev/null +++ b/src/renderer/themes/default/views/demo/multi-level/children/level2.vue @@ -0,0 +1,7 @@ + diff --git a/src/renderer/themes/default/views/demo/multi-level/level1.vue b/src/renderer/themes/default/views/demo/multi-level/level1.vue new file mode 100644 index 0000000..b26146d --- /dev/null +++ b/src/renderer/themes/default/views/demo/multi-level/level1.vue @@ -0,0 +1,15 @@ + diff --git a/src/renderer/themes/default/views/demo/other.vue b/src/renderer/themes/default/views/demo/other.vue new file mode 100644 index 0000000..45792d6 --- /dev/null +++ b/src/renderer/themes/default/views/demo/other.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/renderer/themes/default/views/demo/route-param.vue b/src/renderer/themes/default/views/demo/route-param.vue new file mode 100644 index 0000000..a904ee2 --- /dev/null +++ b/src/renderer/themes/default/views/demo/route-param.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/renderer/themes/default/views/demo/sheet.vue b/src/renderer/themes/default/views/demo/sheet.vue new file mode 100644 index 0000000..da81c43 --- /dev/null +++ b/src/renderer/themes/default/views/demo/sheet.vue @@ -0,0 +1,63 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/signature.vue b/src/renderer/themes/default/views/demo/signature.vue new file mode 100644 index 0000000..aa52cc7 --- /dev/null +++ b/src/renderer/themes/default/views/demo/signature.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/renderer/themes/default/views/demo/table-select/config/select.ts b/src/renderer/themes/default/views/demo/table-select/config/select.ts new file mode 100644 index 0000000..881abf5 --- /dev/null +++ b/src/renderer/themes/default/views/demo/table-select/config/select.ts @@ -0,0 +1,114 @@ +import UserAPI from "@api/user"; +import type {ISelectConfig} from "@theme/components/TableSelect/index.vue"; + +const selectConfig: ISelectConfig = { + pk: "id", + width: "70%", + placeholder: "请选择用户", + formItems: [ + { + type: "input", + label: "关键字", + prop: "keywords", + attrs: { + placeholder: "用户名/昵称/手机号", + clearable: true, + style: { + width: "200px", + }, + }, + }, + { + type: "tree-select", + label: "部门", + prop: "deptId", + attrs: { + placeholder: "请选择", + data: [ + { + value: 1, + label: "有来技术", + children: [ + { + value: 2, + label: "研发部门", + }, + { + value: 3, + label: "测试部门", + }, + ], + }, + ], + filterable: true, + "check-strictly": true, + "render-after-expand": false, + clearable: true, + style: { + width: "150px", + }, + }, + }, + { + type: "select", + label: "状态", + prop: "status", + attrs: { + placeholder: "全部", + clearable: true, + style: { + width: "100px", + }, + }, + options: [ + {label: "启用", value: 1}, + {label: "禁用", value: 0}, + ], + }, + { + type: "date-picker", + label: "创建时间", + prop: "createAt", + attrs: { + type: "daterange", + "range-separator": "~", + "start-placeholder": "开始时间", + "end-placeholder": "截止时间", + "value-format": "YYYY-MM-DD", + style: { + width: "240px", + }, + }, + }, + ], + indexAction: function (params) { + if ("createAt" in params) { + const createAt = params.createAt as string[]; + if (createAt?.length > 1) { + params.startTime = createAt[0]; + params.endTime = createAt[1]; + } + delete params.createAt; + } + return UserAPI.getPage(params); + }, + tableColumns: [ + {type: "selection", width: 50, align: "center"}, + {label: "编号", align: "center", prop: "id", width: 100}, + {label: "用户名", align: "center", prop: "username"}, + {label: "用户昵称", align: "center", prop: "nickname", width: 120}, + {label: "性别", align: "center", prop: "genderLabel", width: 100}, + {label: "部门", align: "center", prop: "deptName", width: 120}, + {label: "手机号码", align: "center", prop: "mobile", width: 120}, + { + label: "状态", + align: "center", + prop: "status", + templet: "custom", + slotName: "status", + }, + {label: "创建时间", align: "center", prop: "createTime", width: 180}, + ], +}; + +export default selectConfig; diff --git a/src/renderer/themes/default/views/demo/table-select/index.vue b/src/renderer/themes/default/views/demo/table-select/index.vue new file mode 100644 index 0000000..f3d6275 --- /dev/null +++ b/src/renderer/themes/default/views/demo/table-select/index.vue @@ -0,0 +1,51 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/upload.vue b/src/renderer/themes/default/views/demo/upload.vue new file mode 100644 index 0000000..153b092 --- /dev/null +++ b/src/renderer/themes/default/views/demo/upload.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/renderer/themes/default/views/demo/wang-editor.vue b/src/renderer/themes/default/views/demo/wang-editor.vue new file mode 100644 index 0000000..015ab19 --- /dev/null +++ b/src/renderer/themes/default/views/demo/wang-editor.vue @@ -0,0 +1,19 @@ + + + + diff --git a/src/renderer/themes/default/views/demo/websocket.vue b/src/renderer/themes/default/views/demo/websocket.vue new file mode 100644 index 0000000..205b44a --- /dev/null +++ b/src/renderer/themes/default/views/demo/websocket.vue @@ -0,0 +1,298 @@ + + + + + + diff --git a/src/renderer/themes/default/views/error-page/401.vue b/src/renderer/themes/default/views/error-page/401.vue new file mode 100644 index 0000000..79b11aa --- /dev/null +++ b/src/renderer/themes/default/views/error-page/401.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/renderer/themes/default/views/error-page/404.vue b/src/renderer/themes/default/views/error-page/404.vue new file mode 100644 index 0000000..4e68995 --- /dev/null +++ b/src/renderer/themes/default/views/error-page/404.vue @@ -0,0 +1,276 @@ + + + + + + + + diff --git a/src/renderer/themes/default/views/login/index.vue b/src/renderer/themes/default/views/login/index.vue new file mode 100644 index 0000000..8f5c29d --- /dev/null +++ b/src/renderer/themes/default/views/login/index.vue @@ -0,0 +1,302 @@ + + + + + diff --git a/src/renderer/themes/default/views/redirect/index.vue b/src/renderer/themes/default/views/redirect/index.vue new file mode 100644 index 0000000..4215bf6 --- /dev/null +++ b/src/renderer/themes/default/views/redirect/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/renderer/themes/default/views/system/dept/index.vue b/src/renderer/themes/default/views/system/dept/index.vue new file mode 100644 index 0000000..ec6722c --- /dev/null +++ b/src/renderer/themes/default/views/system/dept/index.vue @@ -0,0 +1,318 @@ + + + diff --git a/src/renderer/themes/default/views/system/dict/index.vue b/src/renderer/themes/default/views/system/dict/index.vue new file mode 100644 index 0000000..c22c969 --- /dev/null +++ b/src/renderer/themes/default/views/system/dict/index.vue @@ -0,0 +1,406 @@ + + + + + + diff --git a/src/renderer/themes/default/views/system/log/index.vue b/src/renderer/themes/default/views/system/log/index.vue new file mode 100644 index 0000000..41896de --- /dev/null +++ b/src/renderer/themes/default/views/system/log/index.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/renderer/themes/default/views/system/menu/index.vue b/src/renderer/themes/default/views/system/menu/index.vue new file mode 100644 index 0000000..c530f46 --- /dev/null +++ b/src/renderer/themes/default/views/system/menu/index.vue @@ -0,0 +1,645 @@ + + + diff --git a/src/renderer/themes/default/views/system/role/index.vue b/src/renderer/themes/default/views/system/role/index.vue new file mode 100644 index 0000000..5b65229 --- /dev/null +++ b/src/renderer/themes/default/views/system/role/index.vue @@ -0,0 +1,488 @@ + + + diff --git a/src/renderer/themes/default/views/system/user/components/dept-tree.vue b/src/renderer/themes/default/views/system/user/components/dept-tree.vue new file mode 100644 index 0000000..b84a2d0 --- /dev/null +++ b/src/renderer/themes/default/views/system/user/components/dept-tree.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/renderer/themes/default/views/system/user/components/user-import.vue b/src/renderer/themes/default/views/system/user/components/user-import.vue new file mode 100644 index 0000000..e469952 --- /dev/null +++ b/src/renderer/themes/default/views/system/user/components/user-import.vue @@ -0,0 +1,147 @@ + + + diff --git a/src/renderer/themes/default/views/system/user/index.vue b/src/renderer/themes/default/views/system/user/index.vue new file mode 100644 index 0000000..bc1f496 --- /dev/null +++ b/src/renderer/themes/default/views/system/user/index.vue @@ -0,0 +1,562 @@ + + + + diff --git a/src/renderer/tools/notification.ts b/src/renderer/tools/notification.ts new file mode 100644 index 0000000..4a4a3c5 --- /dev/null +++ b/src/renderer/tools/notification.ts @@ -0,0 +1,29 @@ +interface DesktopMsgProps { + /** 标题 */ + title: string, + /** 正文 */ + body: string, + /** ICON */ + icon?: string +} + +/** + * @export + * @Author: Sky + * @Date: 2019-09-29 20:23:16 + * @Last Modified by: Sky + * @Last Modified time: 2019-09-29 21:01:24 + * @param {DesktopMsgProps} option + * @returns + * @feature 对于普通的通知只需要加入传入title,body;而对于需要图标的还需要传入icon,当然它也接受一个图片链接,当用户点击通知之后,会返回一个true + * 由于是一个promise,请使用then接受 + **/ + +export function DesktopMsg (option: DesktopMsgProps): Promise { + const msgfunc = new window.Notification(option.title, option) + return new Promise((resolve) => { + msgfunc.onclick = () => { + resolve(true) + } + }) +} diff --git a/src/renderer/tools/performance.ts b/src/renderer/tools/performance.ts new file mode 100644 index 0000000..e01d02b --- /dev/null +++ b/src/renderer/tools/performance.ts @@ -0,0 +1,58 @@ +/** + * 性能工具 + * 1. 计算方法执行时间 + * @returns {void} + * @date 2019-11-29 + */ + +import Timer from './timer' + +class Performance { + /** + * 计算情况 + * @returns {Function} 执行返回值获取时间信息 + * @date 2019-11-29 + */ + startExecute(name = '') { + const timer = Timer.start() + const usedJSHeapSize = this.getMemoryInfo().usedJSHeapSize + return (name2 = '') => { + const executeTime = timer.stop() + const endMemoryInfo = this.getMemoryInfo() + console.log('%cPerformance%c \n1. 执行方法:%c%s%c\n2. 执行耗时: %c%sms%c \n3. 内存波动:%sB \n4. 已分配内存: %sMB \n5. 已使用内存:%sMB \n6. 剩余内存: %sMB', + 'padding: 2px 4px 2px 4px; background-color: #4caf50; color: #fff; border-radius: 4px;', '', + 'color: #ff6f00', `${name} ${name2}`, '', + 'color: #ff6f00', executeTime, '', + endMemoryInfo.usedJSHeapSize - usedJSHeapSize, + this.toMBSize(endMemoryInfo.jsHeapSizeLimit), + this.toMBSize(endMemoryInfo.usedJSHeapSize), + this.toMBSize(endMemoryInfo.totalJSHeapSize) + ) + } + } + + /** + * 获取内存信息 + * @returns {void} + * @date 2019-11-29 + */ + + getMemoryInfo() { + let memoryInfo = {} + if (window.performance && window.performance.memory) { + memoryInfo = window.performance.memory + } + return memoryInfo + } + + /** + * 转化为MB + * @returns {void} + * @date 2019-11-29 + */ + toMBSize(byteSize: number) { + return (byteSize / (1024 * 1024)).toFixed(1) + } +} + +export default new Performance() diff --git a/src/renderer/tools/timer.ts b/src/renderer/tools/timer.ts new file mode 100644 index 0000000..4fd8a99 --- /dev/null +++ b/src/renderer/tools/timer.ts @@ -0,0 +1,70 @@ +/** + * 计时器 + * 支持链式调用 + * timeout() + * .then(()=>{ + * return inTheEnd(); + * }) + * .then(()=>{ + * return inTheEnd(); + * }); + * + * @date 2019-11-25 + */ +class Timer { + /** + * 延时操作 + * @returns {void} + * @date 2019-11-25 + */ + timeout(interval: number, args?: any) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(args) + }, interval) + }) + } + + /** + * 等待代码片段执行完毕后再执行 + * @returns {void} + * @date 2019-11-25 + */ + inTheEnd() { + return this.timeout(0) + } + + /** + * 循环定时, 执行回调后再继续下一轮循环 + * @param {Number} interval 执行间隔 + * @param {Function} [callback] 回调 + * @returns {Object} + * @date 2019-11-25 + */ + interval(interval:number, callback:Function) { + this.timeout(interval) + .then(() => { + typeof callback === 'function' && + callback() !== false && + this.interval(interval, callback) + }) + return { then: c => callback = c } + } + + /** + * 计时,单位毫秒 + * @returns {void} + * @date 2019-11-29 + */ + start() { + const startDate = new Date() + return { + stop() { + const stopDate = new Date() + return stopDate.getTime() - startDate.getTime() + } + } + } +} + +export default new Timer() diff --git a/src/renderer/types/Item.d.ts b/src/renderer/types/Item.d.ts new file mode 100644 index 0000000..ac18238 --- /dev/null +++ b/src/renderer/types/Item.d.ts @@ -0,0 +1,4 @@ +interface ColorInfo { + color?: string, + percentage?: number +} \ No newline at end of file diff --git a/src/renderer/types/express.d.ts b/src/renderer/types/express.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/renderer/types/express.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/renderer/types/glob.d.ts b/src/renderer/types/glob.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/renderer/types/glob.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/renderer/types/global.d.ts b/src/renderer/types/global.d.ts new file mode 100644 index 0000000..2684177 --- /dev/null +++ b/src/renderer/types/global.d.ts @@ -0,0 +1,33 @@ +import { ipcRenderer, shell } from "electron"; + +interface AnyObject { + [key: string]: any; +} + +interface memoryInfo { + jsHeapSizeLimit: number; + totalJSHeapSize: number; + usedJSHeapSize: number; +} + +declare global { + interface Window { + performance: { + memory: memoryInfo; + }; + ipcRenderer: typeof ipcRenderer; + systemInfo: { + platform: string; + release: string; + arch: string; + nodeVersion: string; + electronVersion: string; + }; + shell: typeof shell; + crash: { + start: () => void; + }; + __lib: string; + __static: string; + } +} diff --git a/src/renderer/types/image.d.ts b/src/renderer/types/image.d.ts new file mode 100644 index 0000000..4bc2b76 --- /dev/null +++ b/src/renderer/types/image.d.ts @@ -0,0 +1,7 @@ +declare module '*.svg' +declare module '*.png' +declare module '*.jpg' +declare module '*.jpeg' +declare module '*.gif' +declare module '*.bmp' +declare module '*.tiff' \ No newline at end of file diff --git a/src/renderer/types/shims-vue.d.ts b/src/renderer/types/shims-vue.d.ts new file mode 100644 index 0000000..caea921 --- /dev/null +++ b/src/renderer/types/shims-vue.d.ts @@ -0,0 +1,9 @@ +declare module "*.vue" { + import { DefineComponent } from "vue"; + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare const __CONFIG__: { + [key: string]: string; +}; diff --git a/src/renderer/utils/hi.ts b/src/renderer/utils/hi.ts new file mode 100644 index 0000000..26f7c8f --- /dev/null +++ b/src/renderer/utils/hi.ts @@ -0,0 +1,8 @@ +import storage from './hi/storage' +//当前用户唯一ID,没有登陆时为0 +const uuid = localStorage.getItem("uuid") || 0; +const hi = { + uuid:uuid, + storage +} +export default hi; diff --git a/src/renderer/utils/hi/storage.ts b/src/renderer/utils/hi/storage.ts new file mode 100644 index 0000000..ddb33e6 --- /dev/null +++ b/src/renderer/utils/hi/storage.ts @@ -0,0 +1,65 @@ +import {StorageKey} from "@main/config/const"; +//当前用户唯一ID,没有登陆时为0 +const uuid = localStorage.getItem("uuid") || "0"; + +class storage { + key: string; + value: any; + valueFormat: string; + info: object; + + constructor(key: string, value: any= null) { + this.key = key; + this.value = value; + let values = JSON.parse(localStorage.getItem(StorageKey)) || {}; + this.info = values[uuid] || {}; + }; + + private format(){ + let value = this.value; + switch(typeof(value)){ + case "bigint": + case "number": + case "boolean": + case "string": + this.valueFormat = value.toString(); + break; + default: + break; + case "object": + this.valueFormat = JSON.stringify(value); + break; + case "function": + case "symbol": + case "undefined": + this.valueFormat = ""; + break; + } + return this.valueFormat; + } + + public get(){ + if(!this.info) return false; + return this.info[this.key] || ""; + } + + public set(){ + if(!this.info){ + localStorage.setItem(StorageKey[uuid][this.key], this.valueFormat) + } + //TBD 具体实现方法,待完善 + localStorage.setItem(StorageKey[uuid][this.key], this.valueFormat) + } +} + +export default { + get:function(key:string){ + let s = new storage(key); + return s.get(); + }, + + set:function(key:string,value:any){ + let s = new storage(key,value); + return s.set(); + } +} diff --git a/src/renderer/utils/ipcRenderer.ts b/src/renderer/utils/ipcRenderer.ts new file mode 100644 index 0000000..cbb1314 --- /dev/null +++ b/src/renderer/utils/ipcRenderer.ts @@ -0,0 +1,60 @@ +import {IpcChannel, IpcRendererInvoke, IpcRendererOn} from "@main/ipc"; +import {onUnmounted} from "vue"; + +const ipcRenderer = window.ipcRenderer; //此处已经是子进程(渲染进程)中了,不再直接使用nodejs的api来require调用,而是用electron的进程通信方式,由主进程去调用,子进程用windows.*来通信 +type VoidParametersIpcRendererInvokeKey = { + [K in keyof IpcRendererInvoke]: Parameters[0] extends void ? K : never +}[keyof IpcRendererInvoke] +type NotVoidParametersIpcRendererInvokeKey = Exclude + +/** + * 将channel暴露给需要的页面 + */ +export {IpcChannel}; + +/** + * 从渲染进程向主进程发送指令 + * 用法: invoke("start-wsserver") 或者 invoke(IpcChannel.StartWsServer) + * 进程名称要在 + */ +export function invoke(channel: T): ReturnType; +export function invoke(channel: T, args: Parameters[0]): ReturnType; + +export function invoke(channel: T, args?: Parameters[0]) { + return ipcRenderer.invoke(channel, args) as ReturnType +} + +/** + * 监听从主进程发送出来的指令 + */ +/** + * ipcRendererOn Vue setup中使用 + * + * @export + * @template T + * @param {T} channel + * @param {IpcRendererOn[T]} callback + */ +export function vueListen(channel: T, callback: IpcRendererOn[T]) { + + ipcRenderer.on(channel, callback) + onUnmounted(() => { + ipcRenderer.removeListener(channel, callback); + }) +} + +/** + * ipcRendererOn + * + * @export + * @template T + * @param {T} channel + * @param {IpcRendererOn[T]} callback + * @return {() => void} 副作用清理函数 + */ +export function listen(channel: T, callback: IpcRendererOn[T]): () => void { + ipcRenderer.on(channel, callback) + return () => { + ipcRenderer.removeListener(channel, callback); + } +} diff --git a/src/renderer/utils/request.ts b/src/renderer/utils/request.ts new file mode 100644 index 0000000..245367c --- /dev/null +++ b/src/renderer/utils/request.ts @@ -0,0 +1,71 @@ +import axios, {InternalAxiosRequestConfig, AxiosResponse} from "axios"; +import {ElMessage} from "element-plus"; +import process from "process"; + +const serves = axios.create({ + baseURL: __CONFIG__.BASE_API, + timeout: 5000, + headers: {"Content-Type": "application/json;charset=utf-8"}, +}); + +// 设置请求发送之前的拦截器 +serves.interceptors.request.use( + (config: InternalAxiosRequestConfig) => { + /** + * 设置发送之前数据需要做什么处理 + * 这里是示范添加了头部授权信息 + */ + const accessToken = localStorage.getItem("accessToken"); + if (accessToken) { + config.headers.Authorization = accessToken; + } + return config; + }, + (err) => Promise.reject(err) +); + +// 设置请求回应拦截器 +serves.interceptors.response.use( + (res: AxiosResponse) => { + // 设置接受数据之后,做什么处理 + if (process.env.NODE_ENV === "development") console.log("接收数据", res); + // 检查配置的响应类型是否为二进制类型('blob' 或 'arraybuffer'), 如果是,直接返回响应对象 + if ( + res.config.responseType === "blob" || + res.config.responseType === "arraybuffer" + ) { + return res.data; + } + if (res.data.code === 50000) { + ElMessage.error(res.data.data); + } + return res.data.data; + }, + (err) => { + // 判断请求异常信息中是否含有超时timeout字符串 + if (err.message.includes("timeout")) { + console.log("错误回调", err); + ElMessage.error("网络超时"); + } + if (err.message.includes("Network Error")) { + console.log("错误回调", err); + ElMessage.error("服务端未启动,或网络连接错误"); + } + return Promise.reject(err); + } +) + +export default serves; + +// export interface BaseDataStruct { +// data: T; +// } +// +// const requestPlus = async ( +// params: AxiosRequestConfig +// ): Promise> => { +// return await serves(params); +// }; +// +// // 将serves抛出去 +// export default requestPlus; diff --git a/src/renderer/views/403.vue b/src/renderer/views/403.vue new file mode 100644 index 0000000..a8496ca --- /dev/null +++ b/src/renderer/views/403.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/src/renderer/views/404.vue b/src/renderer/views/404.vue new file mode 100644 index 0000000..c46ab0a --- /dev/null +++ b/src/renderer/views/404.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/src/renderer/views/Browser.vue b/src/renderer/views/Browser.vue new file mode 100644 index 0000000..d2c9e47 --- /dev/null +++ b/src/renderer/views/Browser.vue @@ -0,0 +1,403 @@ + + + diff --git a/src/renderer/views/LandingPage.vue b/src/renderer/views/LandingPage.vue new file mode 100644 index 0000000..1d2d358 --- /dev/null +++ b/src/renderer/views/LandingPage.vue @@ -0,0 +1,462 @@ + + + + + diff --git a/src/renderer/views/Login.vue b/src/renderer/views/Login.vue new file mode 100644 index 0000000..86cf884 --- /dev/null +++ b/src/renderer/views/Login.vue @@ -0,0 +1,378 @@ + + + + + diff --git a/src/renderer/views/Print.vue b/src/renderer/views/Print.vue new file mode 100644 index 0000000..b8c02d1 --- /dev/null +++ b/src/renderer/views/Print.vue @@ -0,0 +1,209 @@ + + + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a8794cf --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,82 @@ +{ + "compileOnSave": false, + "compilerOptions": { + //允许使用js + "allowJs": true, + //允许导入json模块 + "resolveJsonModule": true, + //移除注释 + "removeComments": true, + "outDir": "dist/electron/main", + "sourceMap": true, + "declaration": true, + "declarationDir": "./fixTypes", + "module": "esnext", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "emitDecoratorMetadata": true, + //允许univerjs插件的Inject装修器函数,需要打开 + "experimentalDecorators": true, + "importHelpers": true, + "isolatedModules": true, + "target": "esnext", + //指定ts运行环境所支持的js版本 es2017 + "baseUrl": "./", + //相对于此目录的路径 + "paths": { + "@/*": [ + "src/renderer/*" + ], + "@api/*": [ + "src/renderer/api/*" + ], + "@config/*": [ + "config/*" + ], + "@main/*": [ + "src/main/*" + ], + "@mock/*": [ + "src/renderer/mock/*" + ], + "@renderer/*": [ + "src/renderer/*" + ], + "@src/*": [ + "src/*" + ], + "@store/*": [ + "src/renderer/store/modules/*" + ], + "@theme/*": [ + "src/renderer/themes/default/*" + ] + }, + "typeRoots": [ + "node_modules/@types", + "node_modules" + ], + "types": [ + "vite/client", + "unplugin-icons/types/vue", + "element-plus/global", + "node" + ], + "lib": [ + "esnext", + "dom" + ] + //代码运行时包含的库 es2018 + }, + "include": [ + "src/**/*.ts", + "src/**/*.vue", + ".electron-vite/vite.config.mts" + // "node_modules/@types/node/globals.d.ts" //这个是IDE自动添加的 + ], + //include设置不正确的直接表现就是在IDE中不能有效识别别名路径、不能正确识别vue组件等 + "exclude": [ + "node_modules", + "dist" + ] +} diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..b952fe4 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,43 @@ +// uno.config.ts +import { + defineConfig, + presetAttributify, + presetIcons, + presetTypography, + presetUno, + presetWebFonts, + transformerDirectives, + transformerVariantGroup, +} from "unocss"; + +export default defineConfig({ + shortcuts: { + "flex-center": "flex justify-center items-center", + "flex-x-center": "flex justify-center", + "flex-y-center": "flex items-center", + "wh-full": "w-full h-full", + "flex-x-between": "flex items-center justify-between", + "flex-x-end": "flex items-center justify-end", + "absolute-lt": "absolute left-0 top-0", + "absolute-rt": "absolute right-0 top-0 ", + "fixed-lt": "fixed left-0 top-0", + }, + theme: { + colors: { + primary: "var(--el-color-primary)", + primary_dark: "var(--el-color-primary-light-5)", + }, + }, + presets: [ + presetUno(), + presetAttributify(), + presetIcons(), + presetTypography(), + presetWebFonts({ + fonts: { + // ... + }, + }), + ], + transformers: [transformerDirectives(), transformerVariantGroup()], +}); diff --git a/updateConfig.json b/updateConfig.json new file mode 100644 index 0000000..7bc4916 --- /dev/null +++ b/updateConfig.json @@ -0,0 +1,11 @@ +{ + "output": "./build", + "target": "gzip", + "input": "./build/win-unpacked", + "updateJsonName": "update-config", + "version": "1.0.0", + "tempDirectory": "update_temp", + "oldDirectory": "old_temp", + "url": "http://localhost:5000", + "updaterName": "updater" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..dee2dd6 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9253 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~5.2.0": + version "5.2.0" + resolved "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.2.0.tgz" + integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== + +"@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@ant-design/fast-color@^2.0.6": + version "2.0.6" + resolved "https://registry.npmmirror.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + +"@antfu/install-pkg@^0.3.1": + version "0.3.5" + resolved "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.3.5.tgz" + integrity sha512-HwIACY0IzrM7FGafMbWZOqEDBSfCwPcylu+GacaRcxJm4Yvvuh3Dy2vZwqdJAzXponc6aLO9FaH4l75pq8/ZSA== + dependencies: + "@jsdevtools/ez-spawn" "^3.0.4" + +"@antfu/install-pkg@^0.4.0": + version "0.4.1" + resolved "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz" + integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== + dependencies: + package-manager-detector "^0.2.0" + tinyexec "^0.3.0" + +"@antfu/utils@^0.7.10", "@antfu/utils@^0.7.6", "@antfu/utils@^0.7.7": + version "0.7.10" + resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz" + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== + +"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.25.2": + version "7.25.4" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.25.4.tgz" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== + +"@babel/core@^7.23.0", "@babel/core@^7.24.7", "@babel/core@^7.25.2": + version "7.25.2" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.25.2.tgz" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.25.0", "@babel/generator@^7.25.6": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.25.6.tgz" + integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== + dependencies: + "@babel/types" "^7.25.6" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.4" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.4" + semver "^6.3.1" + +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@~7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8": + version "7.24.8" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helpers@^7.25.0": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.25.6.tgz" + integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.6" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.7.tgz" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.25.6": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz" + integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== + dependencies: + "@babel/types" "^7.25.6" + +"@babel/plugin-proposal-decorators@^7.23.0": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz" + integrity sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-decorators" "^7.24.7" + +"@babel/plugin-syntax-decorators@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz" + integrity sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz" + integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.25.4" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-modules-commonjs@^7.24.7": + version "7.24.8" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-typescript@^7.22.15", "@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + +"@babel/preset-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + +"@babel/runtime@7.4.5": + version "7.4.5" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.4.5.tgz" + integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.10.1", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.24.7", "@babel/runtime@^7.3.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz" + integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.23.9", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.25.0.tgz" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.23.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.4": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.6.tgz" + integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.6" + "@babel/parser" "^7.25.6" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.22.15", "@babel/types@^7.23.9", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6": + version "7.25.6" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz" + integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@ctrl/tinycolor@^3.4.1": + version "3.6.1" + resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.npmmirror.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron/asar@^3.2.1": + version "3.2.10" + resolved "https://registry.npmmirror.com/@electron/asar/-/asar-3.2.10.tgz" + integrity sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/get@^2.0.0": + version "2.0.3" + resolved "https://registry.npmmirror.com/@electron/get/-/get-2.0.3.tgz" + integrity sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ== + 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" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/notarize@2.2.1": + version "2.2.1" + resolved "https://registry.npmmirror.com/@electron/notarize/-/notarize-2.2.1.tgz" + integrity sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + promise-retry "^2.0.1" + +"@electron/osx-sign@1.0.5": + version "1.0.5" + resolved "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz" + integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== + 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" + +"@electron/universal@1.5.1": + version "1.5.1" + resolved "https://registry.npmmirror.com/@electron/universal/-/universal-1.5.1.tgz" + integrity sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw== + 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" + +"@element-plus/icons-vue@^2.3.1": + version "2.3.1" + resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz" + integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg== + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/aix-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" + integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" + integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-arm@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" + integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/android-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" + integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz" + integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/darwin-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" + integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" + integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/freebsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" + integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" + integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-arm@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" + integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" + integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-loong64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" + integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-mips64el@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" + integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" + integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-riscv64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" + integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-s390x@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" + integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/linux-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" + integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/netbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" + integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== + +"@esbuild/openbsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" + integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/openbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" + integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/sunos-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" + integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" + integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" + integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@esbuild/win32-x64@0.23.1": + version "0.23.1" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" + integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== + +"@fast-csv/format@4.3.5": + version "4.3.5" + resolved "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz" + integrity sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A== + dependencies: + "@types/node" "^14.0.1" + lodash.escaperegexp "^4.1.2" + lodash.isboolean "^3.0.3" + lodash.isequal "^4.5.0" + lodash.isfunction "^3.0.9" + lodash.isnil "^4.0.0" + +"@fast-csv/parse@4.3.6": + version "4.3.6" + resolved "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz" + integrity sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA== + dependencies: + "@types/node" "^14.0.1" + lodash.escaperegexp "^4.1.2" + lodash.groupby "^4.6.0" + lodash.isfunction "^3.0.9" + lodash.isnil "^4.0.0" + lodash.isundefined "^3.0.1" + lodash.uniq "^4.5.0" + +"@floating-ui/core@^1.6.0": + version "1.6.7" + resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.7.tgz" + integrity sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g== + dependencies: + "@floating-ui/utils" "^0.2.7" + +"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.6.10": + version "1.6.10" + resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.10.tgz" + integrity sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.7" + +"@floating-ui/utils@^0.2.7": + version "0.2.7" + resolved "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.7.tgz" + integrity sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA== + +"@grpc/grpc-js@^1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@grpc/grpc-js/-/grpc-js-1.11.1.tgz" + integrity sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw== + dependencies: + "@grpc/proto-loader" "^0.7.13" + "@js-sdsl/ordered-map" "^4.4.2" + +"@grpc/proto-loader@^0.7.13": + version "0.7.13" + resolved "https://registry.npmmirror.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + +"@iconify-json/ep@^1.1.16": + version "1.2.0" + resolved "https://registry.npmmirror.com/@iconify-json/ep/-/ep-1.2.0.tgz" + integrity sha512-0PQ0YxrYj373w7zPg/b50sbJUvlOGqb8a9l4DJA32hBM+SmEAPpRZrlz0c8rlA5RbjJF4nYZsrpB9ZzIX55o2A== + dependencies: + "@iconify/types" "*" + +"@iconify/types@*", "@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^2.1.22", "@iconify/utils@^2.1.32": + version "2.1.32" + resolved "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.32.tgz" + integrity sha512-LeifFZPPKu28O3AEDpYJNdEbvS4/ojAPyIW+pF/vUpJTYnbTiXUHkCh0bwgFRzKvdpb8H4Fbfd/742++MF4fPQ== + dependencies: + "@antfu/install-pkg" "^0.4.0" + "@antfu/utils" "^0.7.10" + "@iconify/types" "^2.0.0" + debug "^4.3.6" + kolorist "^1.8.0" + local-pkg "^0.5.0" + mlly "^1.7.1" + +"@inquirer/checkbox@^2.5.0": + version "2.5.0" + resolved "https://registry.npmmirror.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz" + integrity sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/figures" "^1.0.5" + "@inquirer/type" "^1.5.3" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + +"@inquirer/confirm@^3.2.0": + version "3.2.0" + resolved "https://registry.npmmirror.com/@inquirer/confirm/-/confirm-3.2.0.tgz" + integrity sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + +"@inquirer/core@^9.1.0": + version "9.1.0" + resolved "https://registry.npmmirror.com/@inquirer/core/-/core-9.1.0.tgz" + integrity sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w== + dependencies: + "@inquirer/figures" "^1.0.5" + "@inquirer/type" "^1.5.3" + "@types/mute-stream" "^0.0.4" + "@types/node" "^22.5.2" + "@types/wrap-ansi" "^3.0.0" + ansi-escapes "^4.3.2" + cli-spinners "^2.9.2" + cli-width "^4.1.0" + mute-stream "^1.0.0" + signal-exit "^4.1.0" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/editor@^2.2.0": + version "2.2.0" + resolved "https://registry.npmmirror.com/@inquirer/editor/-/editor-2.2.0.tgz" + integrity sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + external-editor "^3.1.0" + +"@inquirer/expand@^2.2.0": + version "2.2.0" + resolved "https://registry.npmmirror.com/@inquirer/expand/-/expand-2.2.0.tgz" + integrity sha512-PD0z1dTRTIlpcnXRMRvdVPfBe10jBf4i7YLBU8tNWDkf3HxqmdymVvqnT8XG+hxQSvqfpJCe13Jv2Iv1eB3bIg== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.5": + version "1.0.5" + resolved "https://registry.npmmirror.com/@inquirer/figures/-/figures-1.0.5.tgz" + integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA== + +"@inquirer/input@^2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@inquirer/input/-/input-2.3.0.tgz" + integrity sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + +"@inquirer/number@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@inquirer/number/-/number-1.1.0.tgz" + integrity sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + +"@inquirer/password@^2.2.0": + version "2.2.0" + resolved "https://registry.npmmirror.com/@inquirer/password/-/password-2.2.0.tgz" + integrity sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + ansi-escapes "^4.3.2" + +"@inquirer/prompts@^5.4.0": + version "5.4.0" + resolved "https://registry.npmmirror.com/@inquirer/prompts/-/prompts-5.4.0.tgz" + integrity sha512-HIQGd7JOX6WXf7zg7WGs+1m+e3eRFyL4mDtWRlV01AXqZido9W3BSoku2BR4E1lK/NCXok6jg6tTcLw4I0thfg== + dependencies: + "@inquirer/checkbox" "^2.5.0" + "@inquirer/confirm" "^3.2.0" + "@inquirer/editor" "^2.2.0" + "@inquirer/expand" "^2.2.0" + "@inquirer/input" "^2.3.0" + "@inquirer/number" "^1.1.0" + "@inquirer/password" "^2.2.0" + "@inquirer/rawlist" "^2.3.0" + "@inquirer/search" "^1.1.0" + "@inquirer/select" "^2.5.0" + +"@inquirer/rawlist@^2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@inquirer/rawlist/-/rawlist-2.3.0.tgz" + integrity sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/type" "^1.5.3" + yoctocolors-cjs "^2.1.2" + +"@inquirer/search@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@inquirer/search/-/search-1.1.0.tgz" + integrity sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/figures" "^1.0.5" + "@inquirer/type" "^1.5.3" + yoctocolors-cjs "^2.1.2" + +"@inquirer/select@^2.5.0": + version "2.5.0" + resolved "https://registry.npmmirror.com/@inquirer/select/-/select-2.5.0.tgz" + integrity sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA== + dependencies: + "@inquirer/core" "^9.1.0" + "@inquirer/figures" "^1.0.5" + "@inquirer/type" "^1.5.3" + ansi-escapes "^4.3.2" + yoctocolors-cjs "^2.1.2" + +"@inquirer/type@^1.5.3": + version "1.5.3" + resolved "https://registry.npmmirror.com/@inquirer/type/-/type-1.5.3.tgz" + integrity sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg== + dependencies: + mute-stream "^1.0.0" + +"@intlify/core-base@9.14.0": + version "9.14.0" + resolved "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.0.tgz" + integrity sha512-zJn0imh9HIsZZUtt9v8T16PeVstPv6bP2YzlrYJwoF8F30gs4brZBwW2KK6EI5WYKFi3NeqX6+UU4gniz5TkGg== + dependencies: + "@intlify/message-compiler" "9.14.0" + "@intlify/shared" "9.14.0" + +"@intlify/message-compiler@9.14.0": + version "9.14.0" + resolved "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.0.tgz" + integrity sha512-sXNsoMI0YsipSXW8SR75drmVK56tnJHoYbPXUv2Cf9lz6FzvwsosFm6JtC1oQZI/kU+n7qx0qRrEWkeYFTgETA== + dependencies: + "@intlify/shared" "9.14.0" + source-map-js "^1.0.2" + +"@intlify/shared@9.14.0": + version "9.14.0" + resolved "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.0.tgz" + integrity sha512-r+N8KRQL7LgN1TMTs1A2svfuAU0J94Wu9wWdJVJqYsoMMLIeJxrPjazihfHpmJqfgZq0ah3Y9Q4pgWV2O90Fyg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@javascript-obfuscator/escodegen@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz" + integrity sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw== + dependencies: + "@javascript-obfuscator/estraverse" "^5.3.0" + esprima "^4.0.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +"@javascript-obfuscator/estraverse@5.4.0", "@javascript-obfuscator/estraverse@^5.3.0": + version "5.4.0" + resolved "https://registry.npmmirror.com/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz" + integrity sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w== + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@js-sdsl/ordered-map@^4.4.2": + version "4.4.2" + resolved "https://registry.npmmirror.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz" + integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== + +"@jsdevtools/ez-spawn@^3.0.4": + version "3.0.4" + resolved "https://registry.npmmirror.com/@jsdevtools/ez-spawn/-/ez-spawn-3.0.4.tgz" + integrity sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA== + dependencies: + call-me-maybe "^1.0.1" + cross-spawn "^7.0.3" + string-argv "^0.3.1" + type-detect "^4.0.8" + +"@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.npmmirror.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.npmmirror.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.25.tgz" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": + version "2.11.7" + resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" + integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@rc-component/color-picker@^2.0.1": + version "2.0.1" + resolved "https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz" + integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== + dependencies: + "@ant-design/fast-color" "^2.0.6" + "@babel/runtime" "^7.23.6" + classnames "^2.2.6" + rc-util "^5.38.1" + +"@rc-component/mini-decimal@^1.0.1": + version "1.1.0" + resolved "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz" + integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ== + dependencies: + "@babel/runtime" "^7.18.0" + +"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.1.0": + version "1.1.2" + resolved "https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz" + integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1", "@rc-component/trigger@^2.2.1": + version "2.2.2" + resolved "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.2.2.tgz" + integrity sha512-xDyi0fJ3IV6XJEReMOewS9PEnnuLHKz4rjbgIniDsJFHjL5nROuUlu64mfo90jglLDkQUxRwK7aTtumA65/zYQ== + dependencies: + "@babel/runtime" "^7.23.2" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.38.0" + +"@rollup/plugin-alias@^5.1.0": + version "5.1.0" + resolved "https://registry.npmmirror.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz" + integrity sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ== + dependencies: + slash "^4.0.0" + +"@rollup/plugin-commonjs@^26.0.1": + version "26.0.1" + resolved "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz" + integrity sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^10.4.1" + is-reference "1.2.1" + magic-string "^0.30.3" + +"@rollup/plugin-json@^6.1.0": + version "6.1.0" + resolved "https://registry.npmmirror.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz" + integrity sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== + dependencies: + "@rollup/pluginutils" "^5.1.0" + +"@rollup/plugin-node-resolve@^15.2.3": + version "15.2.3" + resolved "https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz" + integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/plugin-replace@^5.0.5": + version "5.0.7" + resolved "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz" + integrity sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + magic-string "^0.30.3" + +"@rollup/plugin-typescript@^11.1.6": + version "11.1.6" + resolved "https://registry.npmmirror.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz" + integrity sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA== + dependencies: + "@rollup/pluginutils" "^5.1.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.0.5", "@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11" + integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg== + +"@rollup/rollup-android-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb" + integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA== + +"@rollup/rollup-darwin-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz" + integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q== + +"@rollup/rollup-darwin-x64@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42" + integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w== + +"@rollup/rollup-linux-arm-gnueabihf@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1" + integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w== + +"@rollup/rollup-linux-arm-musleabihf@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266" + integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w== + +"@rollup/rollup-linux-arm64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7" + integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw== + +"@rollup/rollup-linux-arm64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80" + integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w== + +"@rollup/rollup-linux-powerpc64le-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54" + integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ== + +"@rollup/rollup-linux-riscv64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09" + integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg== + +"@rollup/rollup-linux-s390x-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18" + integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ== + +"@rollup/rollup-linux-x64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad" + integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw== + +"@rollup/rollup-linux-x64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8" + integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg== + +"@rollup/rollup-win32-arm64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504" + integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ== + +"@rollup/rollup-win32-ia32-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e" + integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw== + +"@rollup/rollup-win32-x64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b" + integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.npmmirror.com/@sindresorhus/is/-/is-4.6.0.tgz" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@transloadit/prettier-bytes@0.0.7": + version "0.0.7" + resolved "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz" + integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/adm-zip@^0.5.5": + version "0.5.5" + resolved "https://registry.npmmirror.com/@types/adm-zip/-/adm-zip-0.5.5.tgz" + integrity sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw== + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.npmmirror.com/@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" + +"@types/color-convert@*": + version "2.0.3" + resolved "https://registry.npmmirror.com/@types/color-convert/-/color-convert-2.0.3.tgz" + integrity sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg== + dependencies: + "@types/color-name" "*" + +"@types/color-name@*": + version "1.1.4" + resolved "https://registry.npmmirror.com/@types/color-name/-/color-name-1.1.4.tgz" + integrity sha512-hulKeREDdLFesGQjl96+4aoJSHY5b2GRjagzzcqCfIrWhe5vkCqIvrLbqzBaI1q94Vg8DNJZZqTR5ocdWmWclg== + +"@types/color@^3.0.6": + version "3.0.6" + resolved "https://registry.npmmirror.com/@types/color/-/color-3.0.6.tgz" + integrity sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A== + dependencies: + "@types/color-convert" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/debug@^4.1.6": + version "4.1.12" + resolved "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/event-emitter@^0.3.3": + version "0.3.5" + resolved "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.5" + resolved "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-ws@^3.0.5": + version "3.0.5" + resolved "https://registry.npmmirror.com/@types/express-ws/-/express-ws-3.0.5.tgz" + integrity sha512-lbWMjoHrm/v85j81UCmb/GNZFO3genxRYBW1Ob7rjRI+zxUBR+4tcFuOpKKsYQ1LYTYiy3356epLeYi/5zxUwA== + dependencies: + "@types/express" "*" + "@types/express-serve-static-core" "*" + "@types/ws" "*" + +"@types/express@*", "@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.npmmirror.com/@types/express/-/express-4.17.21.tgz" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/fs-extra@^11.0.4": + version "11.0.4" + resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== + dependencies: + "@types/jsonfile" "*" + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.npmmirror.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.4.tgz" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/jsonfile@*": + version "6.1.4" + resolved "https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== + dependencies: + "@types/node" "*" + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/lodash-es@^4.17.6": + version "4.17.12" + resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz" + integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash.mergewith@^4.6.9": + version "4.6.9" + resolved "https://registry.npmmirror.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.9.tgz" + integrity sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*", "@types/lodash@^4.14.182", "@types/lodash@^4.17.7": + version "4.17.7" + resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.7.tgz" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.5": + version "1.2.5" + resolved "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/mute-stream@^0.0.4": + version "0.0.4" + resolved "https://registry.npmmirror.com/@types/mute-stream/-/mute-stream-0.0.4.tgz" + integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.5.2", "@types/node@^22.5.4": + version "22.5.4" + resolved "https://registry.npmmirror.com/@types/node/-/node-22.5.4.tgz" + integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg== + dependencies: + undici-types "~6.19.2" + +"@types/node@^14.0.1": + version "14.18.63" + resolved "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== + +"@types/node@^20.9.0": + version "20.16.3" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.16.3.tgz" + integrity sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ== + dependencies: + undici-types "~6.19.2" + +"@types/nprogress@^0.2.3": + version "0.2.3" + resolved "https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.3.tgz" + integrity sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA== + +"@types/path-browserify@^1.0.3": + version "1.0.3" + resolved "https://registry.npmmirror.com/@types/path-browserify/-/path-browserify-1.0.3.tgz" + integrity sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw== + +"@types/plist@^3.0.1": + version "3.0.5" + resolved "https://registry.npmmirror.com/@types/plist/-/plist-3.0.5.tgz" + integrity sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.npmmirror.com/@types/qs/-/qs-6.9.15.tgz" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-mentions@^4.4.0": + version "4.4.0" + resolved "https://registry.npmmirror.com/@types/react-mentions/-/react-mentions-4.4.0.tgz" + integrity sha512-dKnY1h42GPUO/QAyei6HxEsFUbEcqK/t1k60ZbLJstB9RAs8OCT69mj9AnUbeNdbzYVISE88OC2IYkkthAAn2g== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.3.5" + resolved "https://registry.npmmirror.com/@types/react/-/react-18.3.5.tgz" + integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + +"@types/semver@^7.5.8": + version "7.5.8" + resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.8.tgz" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.npmmirror.com/@types/send/-/send-0.17.4.tgz" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.7" + resolved "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.7.tgz" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs-client@^1.5.4": + version "1.5.4" + resolved "https://registry.npmmirror.com/@types/sockjs-client/-/sockjs-client-1.5.4.tgz" + integrity sha512-zk+uFZeWyvJ5ZFkLIwoGA/DfJ+pYzcZ8eH4H/EILCm2OBZyHH6Hkdna1/UWL/CFruh5wj6ES7g75SvUB0VsH5w== + +"@types/sortablejs@^1.15.8": + version "1.15.8" + resolved "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz" + integrity sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg== + +"@types/stompjs@^2.3.9": + version "2.3.9" + resolved "https://registry.npmmirror.com/@types/stompjs/-/stompjs-2.3.9.tgz" + integrity sha512-fu/GgkRdxwyEJ+JeUsGhDxGwmZQi+xeNElradGQ4ehWiG2z/o89gsi5Y7Gv0KC6VK1v78Cjh8zj3VF+RvqCGSA== + dependencies: + "@types/node" "*" + +"@types/svgo@^2.6.1": + version "2.6.4" + resolved "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz" + integrity sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng== + dependencies: + "@types/node" "*" + +"@types/uuid@^10.0.0": + version "10.0.0" + resolved "https://registry.npmmirror.com/@types/uuid/-/uuid-10.0.0.tgz" + integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== + +"@types/validator@^13.11.8": + version "13.12.1" + resolved "https://registry.npmmirror.com/@types/validator/-/validator-13.12.1.tgz" + integrity sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA== + +"@types/verror@^1.10.3": + version "1.10.10" + resolved "https://registry.npmmirror.com/@types/verror/-/verror-1.10.10.tgz" + integrity sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg== + +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== + +"@types/wrap-ansi@^3.0.0": + version "3.0.0" + resolved "https://registry.npmmirror.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz" + integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== + +"@types/ws@*": + version "8.5.12" + resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.12.tgz" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.3.tgz" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + +"@univerjs/core@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/core/-/core-0.2.11.tgz" + integrity sha512-0W3ajDmx2OhWrnuuiOpoKoXWffB6BNeYDqVH7/cqI3RGkcTBUE/feIPyBX+AjW/7qxXSJTVxiyDvN7xyZEK36Q== + dependencies: + "@types/lodash.mergewith" "^4.6.9" + "@univerjs/protocol" "0.1.39-alpha.15" + "@wendellhu/redi" "0.16.1" + lodash.mergewith "^4.6.2" + nanoid "5.0.7" + numeral "^2.0.6" + numfmt "^2.5.2" + ot-json1 "^1.0.2" + +"@univerjs/data-validation@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/data-validation/-/data-validation-0.2.11.tgz" + integrity sha512-4Y9FkyjDbZNqQuCUsCQh2dxCuo2ljOanY4PDtT6KEEcGqYUZn5PBbFGuvGGwc51T+lW5B6KX+pLwOERhB7OQlw== + dependencies: + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/design@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/design/-/design-0.2.11.tgz" + integrity sha512-S9MLDxqJUbkQWIqdxRJMzsrAt6EgcpjI+ezMYsQ0SW81CdiSPpPFTNH4tEAOvfp1bsdjDLcJxBGps8mHt/c+QQ== + dependencies: + "@rc-component/color-picker" "^2.0.1" + "@rc-component/trigger" "^2.2.1" + "@types/react-mentions" "^4.4.0" + "@univerjs/icons" "^0.1.77" + rc-dialog "^9.6.0" + rc-dropdown "^4.2.0" + rc-input "^1.6.3" + rc-input-number "^9.2.0" + rc-menu "^9.15.1" + rc-picker "^4.6.13" + rc-segmented "^2.4.1" + rc-select "^14.15.1" + rc-textarea "^1.8.1" + rc-tooltip "^6.2.0" + rc-util "^5.43.0" + react-draggable "^4.4.6" + react-grid-layout "^1.4.4" + react-mentions "^4.4.10" + react-transition-group "^4.4.5" + +"@univerjs/docs-hyper-link@^0.2.9": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/docs-hyper-link/-/docs-hyper-link-0.2.11.tgz" + integrity sha512-IlkwX5MPgxpGq0Zo7RmF+VS9NLC1EmxmuzhzduQpsz4YL9nZsPFJKzzXAYUpPmxsbAyJLht5TF3hKQfwlPqWjA== + +"@univerjs/docs-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/docs-ui/-/docs-ui-0.2.11.tgz" + integrity sha512-IRW9jk4tvXcQqTGmDPNygJ8Ywyk3SubuRaGL+PTz52WpLTHa/8UMJPja3LCN9VSg6X2mmsqce6X0oinMNFN5Aw== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/docs@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/docs/-/docs-0.2.11.tgz" + integrity sha512-UAIBzH1/cOsLl2a5nAeR5TJAuiD52QgdxiREwzmWCOg5R+KAsCrYSQB++Hf9WoI4JqMcPvVURJ5v9m99BbhR9A== + +"@univerjs/drawing-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/drawing-ui/-/drawing-ui-0.2.11.tgz" + integrity sha512-jCBqF+t+UrX9raTwu/9BhmsHRwVc8wLWmz60Ww+IPXBF0jcxvznSjwv/Gss0V40xaiTCLmF9qMd+TY3LmGMMkw== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/drawing@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/drawing/-/drawing-0.2.11.tgz" + integrity sha512-dvsSkJHJm8ZSg3O6LXldb29T+zChBC2yJWWQ9FsCe4Z2VFSFiHJwrSgJ1loD+agatHoAj61SMeOOO1KH8cPFhg== + dependencies: + "@univerjs/icons" "^0.1.77" + ot-json1 "^1.0.2" + +"@univerjs/engine-formula@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/engine-formula/-/engine-formula-0.2.11.tgz" + integrity sha512-9lmOPjQoZ7/xzPSXC/DL4eDwk+ABPBw6gtK3FOVxpzg6QZyFhmlfDZX7Es3EgrKdQfPvUBgZ/PbbxWtMpCzSgA== + dependencies: + decimal.js "^10.4.3" + numfmt "^2.5.2" + +"@univerjs/engine-numfmt@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/engine-numfmt/-/engine-numfmt-0.2.11.tgz" + integrity sha512-1Yy0bizFMFqDuM0KDxRPWLsPR3+/12vtrBhTGnQOaS8doSNm+5mAoR9DjNkAgo2gatwhFN1qAESugIcOI3NAxQ== + +"@univerjs/engine-render@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/engine-render/-/engine-render-0.2.11.tgz" + integrity sha512-76MmuTAf8eX6uMOpm1FM5GHNZb9E2rUJADvOMU9sl6vUzu68upG9b3YmCrPk9ZHPdXH1u7ZN5lbGFC/Wp7rbMA== + dependencies: + "@floating-ui/dom" "^1.6.10" + "@floating-ui/utils" "^0.2.7" + cjk-regex "^3.1.0" + franc-min "^6.2.0" + opentype.js "^1.3.4" + +"@univerjs/facade@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/facade/-/facade-0.2.11.tgz" + integrity sha512-eL3lk5gkBV6dNtrFl/92nlhP5bvLcP6Wsn3WlNlsW9i45myieDVfwE/1vEGYu8gOUXgoM54Q6PBnUHQe8YR2IA== + +"@univerjs/find-replace@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/find-replace/-/find-replace-0.2.11.tgz" + integrity sha512-I/PW+eY0Gp7aHhKalyP4Yk8SSQllt+CkSN9ozUJk6XGiFkHYYMZVoPaliL1uh3w7go5PUtQK7aPbwmpeZucqxA== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/icons@^0.1.77": + version "0.1.77" + resolved "https://registry.npmmirror.com/@univerjs/icons/-/icons-0.1.77.tgz" + integrity sha512-ADkX1PkXG+rptU+OJzrPX+asVawRVKF6v+Ce3DYq/pVKOnKm8qPbKsbVmCMyxPOCq9N5Cd0TAkjJavyft+XsEw== + +"@univerjs/network@^0.2.9": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/network/-/network-0.2.11.tgz" + integrity sha512-m9RQWaYnmq5flJncE0quQfad1aSjJZ/5EMeK9MW9FX6LmgzZlihS3mwifepsEoqdc8WysWCcgsOuYMc/cf0T0g== + +"@univerjs/protocol@0.1.39-alpha.15": + version "0.1.39-alpha.15" + resolved "https://registry.npmmirror.com/@univerjs/protocol/-/protocol-0.1.39-alpha.15.tgz" + integrity sha512-vNV9y+5qGbzOAkGn1Na/DhWWqDLPyUHVZkC5xKUZxp9Df8Em190A9qQcNw+szaudSwotLHtqDSJLDlPUy4g3Jg== + +"@univerjs/rpc@^0.2.9": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/rpc/-/rpc-0.2.11.tgz" + integrity sha512-Nm7SC6d2H+TNGwYbd31EXVqIwupRJynF5UfA0rRNyL6rwBBrD0spzIJYznSA7MTA5K7BK+p8i+Fu+jCSfBY3fw== + +"@univerjs/sheets-conditional-formatting-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-conditional-formatting-ui/-/sheets-conditional-formatting-ui-0.2.11.tgz" + integrity sha512-HwrQ+3GcErH6OZPGyvOTEnXBFZEIzGmQo5FhthEbjxAjD05etW/GpIYD2fmRwFWvvYseopm2FyTRbb/03dGdFQ== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/protocol" "0.1.39-alpha.15" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + react-grid-layout "^1.4.4" + react-resizable "^3.0.5" + +"@univerjs/sheets-conditional-formatting@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-conditional-formatting/-/sheets-conditional-formatting-0.2.11.tgz" + integrity sha512-89TXW14eBrhyxz35A70ZzRtw+56fOqR1zyzikUQJJgaw4wZBu5oFR6jXbfMcLzx+B0uHmkZPqdoOXQnSYprfDQ== + dependencies: + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/sheets-crosshair-highlight@^0.2.9": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-crosshair-highlight/-/sheets-crosshair-highlight-0.2.11.tgz" + integrity sha512-OVPAYVaarXLCx9ex9Ez/kPN+WLxBa4wng+etPRbFZUTXINu8LDFRUomQtAlBhIak78BeuUBziWTpsLg9kHD5nw== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/sheets-data-validation@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-data-validation/-/sheets-data-validation-0.2.11.tgz" + integrity sha512-DVcXAmig9fKwUm/h51lgzxTI8OP+96xZaFW8Ysx6QQPj+o0q6Z1IGGKQ7gFTZgNm3hJRKjY38hpHpddaG2ypbw== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/sheets-drawing-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-drawing-ui/-/sheets-drawing-ui-0.2.11.tgz" + integrity sha512-vcC7EBYsUAcQpEZ0zueag0f1PM5ow6vxCz1oaDbvT60t9qpOKR1dbpROhja4RpTWIo3xKG79X0rKwesn8HzLVA== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/sheets-drawing@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-drawing/-/sheets-drawing-0.2.11.tgz" + integrity sha512-BUwPT2TdFSAR1KMLJNKcyszuAK+M25Ue82SkQoNK7krkbzhMjwIYqjdr75XTlUC6lf+itz5MghYZvGVzof1RVg== + +"@univerjs/sheets-filter-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-filter-ui/-/sheets-filter-ui-0.2.11.tgz" + integrity sha512-iYTHYRdZ1P0VdLliHFb+Mh3Zw8a9zCakfn0mT6/bsRBT4RjqV1wj3HJxt0rth/Z7MoiKVtrMnL0nsMF2swosZw== + dependencies: + "@univerjs/icons" "^0.1.77" + rc-virtual-list "^3.14.5" + +"@univerjs/sheets-filter@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-filter/-/sheets-filter-0.2.11.tgz" + integrity sha512-Yk0FSHgh7njZEmxY5Q30DqiXdk4ECxmXdTrocKElK0puS9NIlqWbKtMa41BWqD61ipvn9uNcilVq7+lJ0I+TAA== + +"@univerjs/sheets-find-replace@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-find-replace/-/sheets-find-replace-0.2.11.tgz" + integrity sha512-J+rfnYoCQ1PS9nXysM1qbdcvESXGY+8ZAP+aMkbStZTGBlgSs3ke8+dCNggjg2Hy/IdQgKjTXDOwi5imuBn5xQ== + dependencies: + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/sheets-formula@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-formula/-/sheets-formula-0.2.11.tgz" + integrity sha512-V6Xam3jLJUYY6LL2prJDFuO35WcvDyHr7Qjzp0AebD73KNXFKbEEWO4Dy0S/SupnAUN3ELs5Pkf2yleuwX69kA== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/sheets-hyper-link-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-hyper-link-ui/-/sheets-hyper-link-ui-0.2.11.tgz" + integrity sha512-E00C3nEeC9KXXpbu3Pe4xRRmXbkSrq4CkelyjEoMsFaK4HVxJm4xt8MO52rMLHCLcLujjwflOBwlZna1CAAnSw== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/sheets-hyper-link" "0.2.11" + +"@univerjs/sheets-hyper-link@0.2.11", "@univerjs/sheets-hyper-link@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-hyper-link/-/sheets-hyper-link-0.2.11.tgz" + integrity sha512-z9N9CZAxRy8SPhpxIb3NVWERRZYhUpepa7cd90msJM15no56/8AVqzJ27U7+y+oKBMOh6pS30EW2kGJ3xndsQQ== + +"@univerjs/sheets-numfmt@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-numfmt/-/sheets-numfmt-0.2.11.tgz" + integrity sha512-bw9A2LEorKhsWP7gZhaoDcFc4wFaLvyFc6XWyfN6BTtrzgVjCtVW0gTjC1Xf5d51yHdzwexQwVgkKkHoWEViGw== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/sheets-sort-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-sort-ui/-/sheets-sort-ui-0.2.11.tgz" + integrity sha512-/vfoLnv6ZE6Hk5E7x1g7uuFgH8uJPl8h8vbd6BDtbxjrkM2pdrsoUNp8/CuT8phThr12UvwU1CkfpbuKf0GoQQ== + dependencies: + "@univerjs/icons" "^0.1.77" + rc-virtual-list "^3.14.5" + +"@univerjs/sheets-sort@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-sort/-/sheets-sort-0.2.11.tgz" + integrity sha512-RvOZ5Xs/s9BNNEI+jPayTDvHaQTajQf+X9rTftYx+QYyQZrXixx9hJp8C2P0yLLc2Z+aErbkkVeIxlYQJ/yGlg== + +"@univerjs/sheets-thread-comment-base@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-thread-comment-base/-/sheets-thread-comment-base-0.2.11.tgz" + integrity sha512-zyKU7cIvDKJgrNVyGEDjYxJ4RrH0p/LZQlSMpgi0Szjj+tBwnpZOGu7out2XmLZ2QZObpQxINnX6TjKGDywbMg== + +"@univerjs/sheets-thread-comment@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-thread-comment/-/sheets-thread-comment-0.2.11.tgz" + integrity sha512-asYLwsFddMTxDA/feYHxpa4P8BOW7j4KDPh3GUzCDhiOvQ8EyjqJxyyh5A47JwxsCtlFYdn+dkZQNdwQ62zV/g== + dependencies: + "@univerjs/icons" "^0.1.77" + +"@univerjs/sheets-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-ui/-/sheets-ui-0.2.11.tgz" + integrity sha512-xGC/YQXkfap4K+5+PT/kq9XRDIt8DXK3zbSqKR4O0ckiDmjKdq1IquncTLYmY5HyEf/M9E9Q9pLOCoOdm/qQ9A== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/sheets-zen-editor@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets-zen-editor/-/sheets-zen-editor-0.2.11.tgz" + integrity sha512-DeSdkT/l9Jsc95gOLloRaat/sPRiRsZSTlketE/jwF27Wt94PDcdsWw649kApNL5mmJFdKJfOqIXHueW/FMQRA== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/sheets" "0.2.11" + +"@univerjs/sheets@0.2.11", "@univerjs/sheets@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/sheets/-/sheets-0.2.11.tgz" + integrity sha512-qoKN3eSyXi9ugyq83L7ausQm802exjmJ0e6ZCWuSfS9mLC1eyJmKfSy6OQ47LBUMQKSEUf0U+ty800cKTKWtEA== + dependencies: + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/thread-comment-ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/thread-comment-ui/-/thread-comment-ui-0.2.11.tgz" + integrity sha512-dooGf/0E0N5Dz6cDnIA8+5whOz9D9VBh+alida2w6UyETAaxlrMOGm9TjeCGc9LWpQgFBTT5qmKwMvdLeM75uw== + dependencies: + "@univerjs/icons" "^0.1.77" + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/thread-comment@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/thread-comment/-/thread-comment-0.2.11.tgz" + integrity sha512-gAVAIlAgyxyMghYPz72bxBUDT8KXXfhl0DF1FCBLn9fmMYumeJT8ym0jy9V4BOo+xgIzufso7uGcuHG7topRSQ== + dependencies: + "@univerjs/protocol" "0.1.39-alpha.15" + +"@univerjs/ui@^0.2.8": + version "0.2.11" + resolved "https://registry.npmmirror.com/@univerjs/ui/-/ui-0.2.11.tgz" + integrity sha512-/dEgVJd4Kt0X4NNE6LpKccGCM0wx8laUpZx8SgCUULRiVLKNNfC8rRAz9rNwGgHquAFPoHv/cGFc2+eqmwAaAg== + dependencies: + "@univerjs/icons" "^0.1.77" + localforage "^1.10.0" + rc-notification "^5.6.0" + rc-util "^5.43.0" + optionalDependencies: + vue ">=3.0.0" + +"@univerjs/vite-plugin@^0.5.0": + version "0.5.0" + resolved "https://registry.npmmirror.com/@univerjs/vite-plugin/-/vite-plugin-0.5.0.tgz" + integrity sha512-VTVcvStR4ugrJwnWUPCwm9Wxrg97e5Fk2hBHyHNkuTUd5Ezupx/4zk9jjzM/lC+Fw7J9FDGJ0Uw3vg+oN3bgsQ== + +"@unocss/astro@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/astro/-/astro-0.62.3.tgz" + integrity sha512-C6ZdyLbLDS0LebwmgwVItLNAOSkL/tvVWNRd1i3Jy5uj1vPxlrw+3lIYiHjEofn0GFpBiwlv5+OCvO1Xpq5MqA== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/reset" "0.62.3" + "@unocss/vite" "0.62.3" + +"@unocss/cli@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/cli/-/cli-0.62.3.tgz" + integrity sha512-yEl1iNKkBVpo8+i8gzveM5/0/vOVe6m8+FmuSDuKeSPJnYMhI1mAn+OCKFb/I+qEeLbRPXebbJUUB1xZNzya+w== + dependencies: + "@ampproject/remapping" "^2.3.0" + "@rollup/pluginutils" "^5.1.0" + "@unocss/config" "0.62.3" + "@unocss/core" "0.62.3" + "@unocss/preset-uno" "0.62.3" + cac "^6.7.14" + chokidar "^3.6.0" + colorette "^2.0.20" + consola "^3.2.3" + magic-string "^0.30.11" + pathe "^1.1.2" + perfect-debounce "^1.0.0" + tinyglobby "^0.2.5" + +"@unocss/config@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/config/-/config-0.62.3.tgz" + integrity sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw== + dependencies: + "@unocss/core" "0.62.3" + unconfig "^0.5.5" + +"@unocss/core@0.62.3", "@unocss/core@^0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/core/-/core-0.62.3.tgz" + integrity sha512-Pfyrj8S7jq9K1QXD6Z5BCeiQavaHpbMN5q958/kmdbNGp57hOg1e346fMJAvgPjLBR+lE/hgZEsDrijtRiZXnw== + +"@unocss/extractor-arbitrary-variants@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.62.3.tgz" + integrity sha512-9ZscWyXEwDZif+b56xZyJFHwJOjdMXmj+6x96jOsnRNBzwT9eW7YcGCErP1ih/q1S6KmuRrHM/JOXMBQ6H4qlw== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/inspector@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/inspector/-/inspector-0.62.3.tgz" + integrity sha512-nTSXOf7YimFPxEYJo5VfP5wlMgYOCjlv3c5Ub/0fynCJXZNb89SFeU05ABXkEgg/FfiobVBTscikLc6guW8eHQ== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/rule-utils" "0.62.3" + gzip-size "^6.0.0" + sirv "^2.0.4" + +"@unocss/postcss@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/postcss/-/postcss-0.62.3.tgz" + integrity sha512-CwL378ef0QazduXqlaGcWgKJAzemBUxdhapWWiRqI8sXC/eXht5xK6nS1JxqADDuxosgqsGdvcCGmP8ZFrEyiA== + dependencies: + "@unocss/config" "0.62.3" + "@unocss/core" "0.62.3" + "@unocss/rule-utils" "0.62.3" + css-tree "^2.3.1" + magic-string "^0.30.11" + postcss "^8.4.41" + tinyglobby "^0.2.5" + +"@unocss/preset-attributify@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-attributify/-/preset-attributify-0.62.3.tgz" + integrity sha512-ORNwyLobGTwnn/tK5yHnMabdJU6Mr/C4LyFH7G8VSLit/aVS0fFa795kJXwxfbqQoQ7Gw0Zxs9oE5RXI0/0y7g== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/preset-icons@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-icons/-/preset-icons-0.62.3.tgz" + integrity sha512-Ie+5RTyac1Q5CNB/s/4aB4VTHAQgQqsI5hshMNLkJ0Jj1lWxodUdEbCRKjXDalRjAXOS9vsLjfJ35ozJ1RSTIQ== + dependencies: + "@iconify/utils" "^2.1.32" + "@unocss/core" "0.62.3" + ofetch "^1.3.4" + +"@unocss/preset-mini@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-mini/-/preset-mini-0.62.3.tgz" + integrity sha512-dn/8ubeW2ry/ZF3iKxdQHnS0l3EBibt0rIOE/XVwx24ub6pRzclU4r7xHnXeqvAFOO9PoiKDGgFR92m6R2MxyQ== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/extractor-arbitrary-variants" "0.62.3" + "@unocss/rule-utils" "0.62.3" + +"@unocss/preset-tagify@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-tagify/-/preset-tagify-0.62.3.tgz" + integrity sha512-8BpUCZ5sjOZOzBKtu7ecfhRggwwPF78IqeqeNjI+XYRs8r7TBBcUVeF6zUkwhlX/TbtREkw2OZj0Iusa9CBO+A== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/preset-typography@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-typography/-/preset-typography-0.62.3.tgz" + integrity sha512-GjtDgQ1Jec/5RNmnyGMWMgyPdStWcFG/S+NUfOuroRsGSI8PDxihVOwFu5CwvOB2J2r6mRNLeUYMluE05jW3sw== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/preset-mini" "0.62.3" + +"@unocss/preset-uno@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-uno/-/preset-uno-0.62.3.tgz" + integrity sha512-RlsrMlpEzoZqB0lr5VvlkHGpEgr0Vp6z4Q/7DjW5t7mi20Z2i8olaLGWM0TO1wKoRi8bxc6HP0RHUS7pHtZxBA== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/preset-mini" "0.62.3" + "@unocss/preset-wind" "0.62.3" + "@unocss/rule-utils" "0.62.3" + +"@unocss/preset-web-fonts@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.62.3.tgz" + integrity sha512-rGEouncGFwcUY1cjkQ/ZoSmEzOeSi3Yk4YAfHGyS0ff5zKuTDWZgivB8hh/mTtvRzZunIL+FW1+1z5G9rUwjgQ== + dependencies: + "@unocss/core" "0.62.3" + ofetch "^1.3.4" + +"@unocss/preset-wind@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/preset-wind/-/preset-wind-0.62.3.tgz" + integrity sha512-6+VNce1he1U5EXKlXRwTIPn8KeK6bZ2jAEgcCxk8mFy8SzOlLeYzXCI9lcdiWRTjIeIiK5iSaUqmsQFtKdTyQg== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/preset-mini" "0.62.3" + "@unocss/rule-utils" "0.62.3" + +"@unocss/reset@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/reset/-/reset-0.62.3.tgz" + integrity sha512-XVKPkbm8y9SGzRaG3x+HygGZURm50MvKLVHXsbxi67RbIir9Ouyt9hQTV6Xs3RicRZFWOpJx3wMRb8iKUOe5Zw== + +"@unocss/rule-utils@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/rule-utils/-/rule-utils-0.62.3.tgz" + integrity sha512-qI37jHH//XzyR5Y2aN3Kpo4lQrQO+CaiXpqPSwMLYh2bIypc2RQVpqGVtU736x0eA6IIx41XEkKzUW+VtvJvmg== + dependencies: + "@unocss/core" "^0.62.3" + magic-string "^0.30.11" + +"@unocss/scope@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/scope/-/scope-0.62.3.tgz" + integrity sha512-TJGmFfsMrTo8DBJ7CJupIqObpgij+w4jCHMBf1uu0/9jbm63dH6WGcrl3zf5mm6UBTeLmB0RwJ8K4hs7LtrBDQ== + +"@unocss/transformer-attributify-jsx-babel@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.62.3.tgz" + integrity sha512-3yFZPSoN8VLiAGUAFIyfDRv9HQYTKFGKawDdMM9ATZmSEYOecJnYjS2HayT1P9kzGwBwuKoFjcX50JH1PuNokg== + dependencies: + "@babel/core" "^7.25.2" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/preset-typescript" "^7.24.7" + "@unocss/core" "0.62.3" + +"@unocss/transformer-attributify-jsx@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.62.3.tgz" + integrity sha512-AutidZj26QW1vLQzuW/aQigC/5ZnIeqGYIBeb/O+FKKt0bU411tHrHnA1iV4CoxIdWJTkw2sGAl6z6YvwAYG6w== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/transformer-compile-class@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.62.3.tgz" + integrity sha512-1hf+99wJXzQXQPz9xR0AiTB3vBXT5RiEyugIX95HFx7EvSE/P17RP90yKEKZtDZRUwGiz2vIyySlxcKTFak9Vg== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/transformer-directives@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/transformer-directives/-/transformer-directives-0.62.3.tgz" + integrity sha512-HqHwFOA7DfxD/A1ROZIp8Dr8iZcE0z4w3VQtViWPQ89Fqmb7p2wCPGekk+8yW5PAltpynvHE4ahJEto5xjdg6w== + dependencies: + "@unocss/core" "0.62.3" + "@unocss/rule-utils" "0.62.3" + css-tree "^2.3.1" + +"@unocss/transformer-variant-group@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.62.3.tgz" + integrity sha512-oNX1SdfWemz0GWGSXACu8NevM0t2l44j2ancnooNkNz3l1+z1nbn4vFwfsJCOqOaoVm4ZqxaiQ8HIx81ZSiU1A== + dependencies: + "@unocss/core" "0.62.3" + +"@unocss/vite@0.62.3": + version "0.62.3" + resolved "https://registry.npmmirror.com/@unocss/vite/-/vite-0.62.3.tgz" + integrity sha512-RrqF6Go8s0BGpwRfkOiLuO+n3CUE/CXxGqb0ipbUARhmNWJlekE3YPfayqImSEnCcImpaPgtVGv6Y0u3kLGG/w== + dependencies: + "@ampproject/remapping" "^2.3.0" + "@rollup/pluginutils" "^5.1.0" + "@unocss/config" "0.62.3" + "@unocss/core" "0.62.3" + "@unocss/inspector" "0.62.3" + "@unocss/scope" "0.62.3" + "@unocss/transformer-directives" "0.62.3" + chokidar "^3.6.0" + magic-string "^0.30.11" + tinyglobby "^0.2.5" + +"@uppy/companion-client@^2.2.2": + version "2.2.2" + resolved "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz" + integrity sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og== + dependencies: + "@uppy/utils" "^4.1.2" + namespace-emitter "^2.0.1" + +"@uppy/core@^2.1.1": + version "2.3.4" + resolved "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz" + integrity sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ== + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/store-default" "^2.1.1" + "@uppy/utils" "^4.1.3" + lodash.throttle "^4.1.1" + mime-match "^1.0.2" + namespace-emitter "^2.0.1" + nanoid "^3.1.25" + preact "^10.5.13" + +"@uppy/store-default@^2.1.1": + version "2.1.1" + resolved "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz" + integrity sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ== + +"@uppy/utils@^4.1.2", "@uppy/utils@^4.1.3": + version "4.1.3" + resolved "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz" + integrity sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw== + dependencies: + lodash.throttle "^4.1.1" + +"@uppy/xhr-upload@^2.0.3": + version "2.1.3" + resolved "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz" + integrity sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ== + dependencies: + "@uppy/companion-client" "^2.2.2" + "@uppy/utils" "^4.1.2" + nanoid "^3.1.25" + +"@vitejs/plugin-vue-jsx@^4.0.1": + version "4.0.1" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.0.1.tgz" + integrity sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg== + dependencies: + "@babel/core" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + "@vue/babel-plugin-jsx" "^1.2.2" + +"@vitejs/plugin-vue@^5.1.2": + version "5.1.3" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz" + integrity sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw== + +"@vue/babel-helper-vue-transform-on@1.2.2": + version "1.2.2" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz" + integrity sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw== + +"@vue/babel-plugin-jsx@^1.1.5", "@vue/babel-plugin-jsx@^1.2.2": + version "1.2.2" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz" + integrity sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA== + dependencies: + "@babel/helper-module-imports" "~7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + "@vue/babel-helper-vue-transform-on" "1.2.2" + "@vue/babel-plugin-resolve-type" "1.2.2" + camelcase "^6.3.0" + html-tags "^3.3.1" + svg-tags "^1.0.0" + +"@vue/babel-plugin-resolve-type@1.2.2": + version "1.2.2" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz" + integrity sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/helper-module-imports" "~7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/parser" "^7.23.9" + "@vue/compiler-sfc" "^3.4.15" + +"@vue/compiler-core@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.0.tgz" + integrity sha512-ja7cpqAOfw4tyFAxgBz70Z42miNDeaqTxExTsnXDLomRpqfyCgyvZvFp482fmsElpfvsoMJUsvzULhvxUTW6Iw== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.0" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.0", "@vue/compiler-dom@^3.3.4": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.0.tgz" + integrity sha512-xYjUybWZXl+1R/toDy815i4PbeehL2hThiSGkcpmIOCy2HoYyeeC/gAWK/Y/xsoK+GSw198/T5O31bYuQx5uvQ== + dependencies: + "@vue/compiler-core" "3.5.0" + "@vue/shared" "3.5.0" + +"@vue/compiler-sfc@3.5.0", "@vue/compiler-sfc@^3.4.15", "@vue/compiler-sfc@^3.4.38": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.0.tgz" + integrity sha512-B9DgLtrqok2GLuaFjLlSL15ZG3ZDBiitUH1ecex9guh/ZcA5MCdwuVE6nsfQxktuZY/QY0awJ35/ripIviCQTQ== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.0" + "@vue/compiler-dom" "3.5.0" + "@vue/compiler-ssr" "3.5.0" + "@vue/shared" "3.5.0" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.44" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.0.tgz" + integrity sha512-E263QZmA1dqRd7c3u/sWTLRMpQOT0aZ8av/L9SoD/v/BVMZaWFHPUUBswS+bzrfvG2suJF8vSLKx6k6ba5SUdA== + dependencies: + "@vue/compiler-dom" "3.5.0" + "@vue/shared" "3.5.0" + +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3": + version "6.6.3" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz" + integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== + +"@vue/devtools-core@^7.4.0": + version "7.4.0" + resolved "https://registry.npmmirror.com/@vue/devtools-core/-/devtools-core-7.4.0.tgz" + integrity sha512-FqVAUrxpXsj3q8TreNLkT5ZtKg7uFWmi6nBtbuCKEb19s3W9qHdFHdFI0op2djdUEVUnanZHYIKWRmllumNW/w== + dependencies: + "@vue/devtools-kit" "^7.4.0" + "@vue/devtools-shared" "^7.4.0" + mitt "^3.0.1" + nanoid "^3.3.4" + pathe "^1.1.2" + vite-hot-client "^0.2.3" + +"@vue/devtools-kit@^7.4.0": + version "7.4.0" + resolved "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.4.0.tgz" + integrity sha512-s89qhhMtlKUIgivToI9g8BK43wD0+5M5IyCkp7OF1yk2ImcZimNeBEezfPST6JGYpwwI9OUFFa8QuMh2Q2DM1Q== + dependencies: + "@vue/devtools-shared" "^7.4.0" + birpc "^0.2.17" + hookable "^5.5.3" + mitt "^3.0.1" + perfect-debounce "^1.0.0" + speakingurl "^14.0.1" + superjson "^2.2.1" + +"@vue/devtools-shared@^7.4.0": + version "7.4.0" + resolved "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.4.0.tgz" + integrity sha512-LpHkjzUlbPHSH6qaCVSyfQDaF8fZwFbEDbHrtAGA9K1/yEZn99zYvXXqE4e5IQCk8GBXiVJo9/bn7vBXJQIIGA== + dependencies: + rfdc "^1.4.1" + +"@vue/reactivity@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.0.tgz" + integrity sha512-Ew3F5riP3B3ZDGjD3ZKb9uZylTTPSqt8hAf4sGbvbjrjDjrFb3Jm15Tk1/w7WwTE5GbQ2Qhwxx1moc9hr8A/OQ== + dependencies: + "@vue/shared" "3.5.0" + +"@vue/runtime-core@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.0.tgz" + integrity sha512-mQyW0F9FaNRdt8ghkAs+BMG3iQ7LGgWKOpkzUzR5AI5swPNydHGL5hvVTqFaeMzwecF1g0c86H4yFQsSxJhH1w== + dependencies: + "@vue/reactivity" "3.5.0" + "@vue/shared" "3.5.0" + +"@vue/runtime-dom@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.0.tgz" + integrity sha512-NQQXjpdXgyYVJ2M56FJ+lSJgZiecgQ2HhxhnQBN95FymXegRNY/N2htI7vOTwpP75pfxhIeYOJ8mE8sW8KAW6A== + dependencies: + "@vue/reactivity" "3.5.0" + "@vue/runtime-core" "3.5.0" + "@vue/shared" "3.5.0" + csstype "^3.1.3" + +"@vue/server-renderer@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.0.tgz" + integrity sha512-HyDIFUg+l7L4PKrEnJlCYWHUOlm6NxZhmSxIefZ5MTYjkIPfDfkwhX7hqxAQHfgIAE1uLMLQZwuNR/ozI0NhZg== + dependencies: + "@vue/compiler-ssr" "3.5.0" + "@vue/shared" "3.5.0" + +"@vue/shared@3.5.0": + version "3.5.0" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.0.tgz" + integrity sha512-m9IgiteBpCkFaMNwCOBkFksA7z8QiKc30ooRuoXWUFRDu0mGyNPlFHmbncF0/Kra1RlX8QrmBbRaIxVvikaR0Q== + +"@vueuse/core@^9.1.0": + version "9.13.0" + resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz" + integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== + dependencies: + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.13.0" + "@vueuse/shared" "9.13.0" + vue-demi "*" + +"@vueuse/metadata@9.13.0": + version "9.13.0" + resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz" + integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== + +"@vueuse/shared@9.13.0": + version "9.13.0" + resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz" + integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== + dependencies: + vue-demi "*" + +"@wangeditor/basic-modules@^1.1.7": + version "1.1.7" + resolved "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz" + integrity sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg== + dependencies: + is-url "^1.2.4" + +"@wangeditor/code-highlight@^1.0.3": + version "1.0.3" + resolved "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz" + integrity sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw== + dependencies: + prismjs "^1.23.0" + +"@wangeditor/core@^1.1.19": + version "1.1.19" + resolved "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz" + integrity sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q== + dependencies: + "@types/event-emitter" "^0.3.3" + event-emitter "^0.3.5" + html-void-elements "^2.0.0" + i18next "^20.4.0" + scroll-into-view-if-needed "^2.2.28" + slate-history "^0.66.0" + +"@wangeditor/editor-for-vue@^5.1.12": + version "5.1.12" + resolved "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz" + integrity sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ== + +"@wangeditor/editor@^5.1.23": + version "5.1.23" + resolved "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz" + integrity sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ== + dependencies: + "@uppy/core" "^2.1.1" + "@uppy/xhr-upload" "^2.0.3" + "@wangeditor/basic-modules" "^1.1.7" + "@wangeditor/code-highlight" "^1.0.3" + "@wangeditor/core" "^1.1.19" + "@wangeditor/list-module" "^1.0.5" + "@wangeditor/table-module" "^1.1.4" + "@wangeditor/upload-image-module" "^1.0.2" + "@wangeditor/video-module" "^1.1.4" + dom7 "^3.0.0" + is-hotkey "^0.2.0" + lodash.camelcase "^4.3.0" + lodash.clonedeep "^4.5.0" + lodash.debounce "^4.0.8" + lodash.foreach "^4.5.0" + lodash.isequal "^4.5.0" + lodash.throttle "^4.1.1" + lodash.toarray "^4.4.0" + nanoid "^3.2.0" + slate "^0.72.0" + snabbdom "^3.1.0" + +"@wangeditor/list-module@^1.0.5": + version "1.0.5" + resolved "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz" + integrity sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ== + +"@wangeditor/table-module@^1.1.4": + version "1.1.4" + resolved "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz" + integrity sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w== + +"@wangeditor/upload-image-module@^1.0.2": + version "1.0.2" + resolved "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz" + integrity sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA== + +"@wangeditor/video-module@^1.1.4": + version "1.1.4" + resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz" + integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg== + +"@wendellhu/redi@0.16.1": + version "0.16.1" + resolved "https://registry.npmmirror.com/@wendellhu/redi/-/redi-0.16.1.tgz" + integrity sha512-nwyKHCIbAgA7ZjhH6a49lVhe8oPFHjg4AtUHUSqdQgYNvHIFTbIWEbieS1pU0TMMHrff+mxGCGp3BZW14AvNsw== + +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn@8.8.2: + version "8.8.2" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +acorn@^8.11.3, acorn@^8.12.1: + version "8.12.1" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +adm-zip@^0.5.15: + version "0.5.16" + resolved "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.16.tgz" + integrity sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ== + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-4.0.1.tgz" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.0: + version "6.12.6" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +animate.css@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz" + integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ== + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-builder-bin@4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz" + integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== + +app-builder-lib@24.13.3: + version "24.13.3" + resolved "https://registry.npmmirror.com/app-builder-lib/-/app-builder-lib-24.13.3.tgz" + integrity sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig== + dependencies: + "@develar/schema-utils" "~2.6.5" + "@electron/notarize" "2.2.1" + "@electron/osx-sign" "1.0.5" + "@electron/universal" "1.5.1" + "@malept/flatpak-bundler" "^0.4.0" + "@types/fs-extra" "9.0.13" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "24.13.1" + builder-util-runtime "9.2.4" + chromium-pickle-js "^0.2.0" + debug "^4.3.4" + ejs "^3.1.8" + electron-publish "24.13.1" + 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" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-3.0.4.tgz" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@^5.0.0, archiver@^5.3.1: + version "5.3.2" + resolved "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/array-differ/-/array-differ-3.0.0.tgz" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/assert/-/assert-2.0.0.tgz" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async-validator@^4.2.5: + version "4.2.5" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== + +async@^2.6.4: + version "2.6.4" + resolved "https://registry.npmmirror.com/async/-/async-2.6.4.tgz" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +async@^3.2.3, async@^3.2.4: + version "3.2.6" + resolved "https://registry.npmmirror.com/async/-/async-3.2.6.tgz" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axios@^1.7.4: + version "1.7.7" + resolved "https://registry.npmmirror.com/axios/-/axios-1.7.7.tgz" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmmirror.com/base/-/base-0.11.2.tgz" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +big-integer@^1.6.17: + version "1.6.52" + resolved "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +binary@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz" + integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +birpc@^0.2.17: + version "0.2.17" + resolved "https://registry.npmmirror.com/birpc/-/birpc-0.2.17.tgz" + integrity sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.npmmirror.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.0, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz" + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.2.2: + version "2.3.2" + resolved "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.23.1: + version "4.23.3" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.3.tgz" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-1.0.1.tgz" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof-polyfill@~1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz" + integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== + +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.npmmirror.com/bufferutil/-/bufferutil-4.0.8.tgz" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +builder-util-runtime@9.2.4: + version "9.2.4" + resolved "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz" + integrity sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA== + dependencies: + debug "^4.3.4" + sax "^1.2.4" + +builder-util-runtime@9.2.5: + version "9.2.5" + resolved "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz" + integrity sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg== + dependencies: + debug "^4.3.4" + sax "^1.2.4" + +builder-util@24.13.1: + version "24.13.1" + resolved "https://registry.npmmirror.com/builder-util/-/builder-util-24.13.1.tgz" + integrity sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA== + dependencies: + "7zip-bin" "~5.2.0" + "@types/debug" "^4.1.6" + app-builder-bin "4.0.0" + bluebird-lst "^1.0.9" + builder-util-runtime "9.2.4" + 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" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/bundle-name/-/bundle-name-4.1.0.tgz" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bundle-require@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/bundle-require/-/bundle-require-5.0.0.tgz" + integrity sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w== + dependencies: + load-tsconfig "^0.2.3" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.npmmirror.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.npmmirror.com/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" + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001646: + version "1.0.30001655" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz" + integrity sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg== + +cfonts@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/cfonts/-/cfonts-3.3.0.tgz" + integrity sha512-RlVxeEw2FXWI5Bs9LD0/Ef3bsQIc9m6lK/DINN20HIW0Y0YHUO2jjy88cot9YKZITiRTCdWzTfLmTyx47HeSLA== + dependencies: + supports-color "^8" + window-size "^1" + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz" + integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== + dependencies: + traverse ">=0.3.0 <0.4" + +chalk@4.1.2, chalk@^4.0.2, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@5.3.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/chalk/-/chalk-5.3.0.tgz" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmmirror.com/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" + +chance@1.1.9: + version "1.1.9" + resolved "https://registry.npmmirror.com/chance/-/chance-1.1.9.tgz" + integrity sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjk-regex@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/cjk-regex/-/cjk-regex-3.1.0.tgz" + integrity sha512-hM1tngsO2Sco+LesFtGHkkemNBJONUKCeY6RU2VqHBE5kDB8SdnCEJ5M3VoG7M7gL5Kx+GFlzaeSCKXEL9pGTA== + dependencies: + regexp-util "^2.0.0" + unicode-regex "^4.0.0" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +class-validator@0.14.1: + version "0.14.1" + resolved "https://registry.npmmirror.com/class-validator/-/class-validator-0.14.1.tgz" + integrity sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ== + dependencies: + "@types/validator" "^13.11.8" + libphonenumber-js "^1.10.53" + validator "^13.9.0" + +classnames@2.x, classnames@^2.2.1, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2: + version "2.5.1" + resolved "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-4.2.0.tgz" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-5.0.0.tgz" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-spinners@^2.9.2: + version "2.9.2" + resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-4.0.0.tgz" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-4.1.0.tgz" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.0.0, clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/color/-/color-4.2.3.tgz" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@10.0.0: + version "10.0.0" + resolved "https://registry.npmmirror.com/commander/-/commander-10.0.0.tgz" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/commander/-/commander-5.1.0.tgz" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/compare-version/-/compare-version-0.1.2.tgz" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confbox@^0.1.7: + version "0.1.7" + resolved "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz" + integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== + +config-file-ts@^0.2.4: + version "0.2.6" + resolved "https://registry.npmmirror.com/config-file-ts/-/config-file-ts-0.2.6.tgz" + integrity sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w== + dependencies: + glob "^10.3.10" + typescript "^5.3.3" + +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.3" + resolved "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.npmmirror.com/crc/-/crc-3.8.0.tgz" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/d/-/d-1.0.2.tgz" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-fns@^3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" + integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== + +dayjs@^1.11.13, dayjs@^1.11.3, dayjs@^1.8.34: + version "1.11.13" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@^4.3.6: + version "4.3.6" + resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decimal.js@^10.4.3: + version "10.4.3" + resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-5.0.0.tgz" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/default-browser/-/default-browser-5.2.1.tgz" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +del@^7.1.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/del/-/del-7.1.0.tgz" + integrity sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg== + dependencies: + globby "^13.1.2" + graceful-fs "^4.2.10" + is-glob "^4.0.3" + is-path-cwd "^3.0.0" + is-path-inside "^4.0.0" + p-map "^5.5.0" + rimraf "^3.0.2" + slash "^4.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destr@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/destr/-/destr-2.0.3.tgz" + integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dir-compare@^3.0.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/dir-compare/-/dir-compare-3.3.0.tgz" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== + dependencies: + buffer-equal "^1.0.0" + minimatch "^3.0.4" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dmg-builder@24.13.3: + version "24.13.3" + resolved "https://registry.npmmirror.com/dmg-builder/-/dmg-builder-24.13.3.tgz" + integrity sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ== + dependencies: + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" + fs-extra "^10.1.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.11" + +dmg-license@^1.0.11: + version "1.0.11" + resolved "https://registry.npmmirror.com/dmg-license/-/dmg-license-1.0.11.tgz" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + 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" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +dom7@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz" + integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g== + dependencies: + ssr-window "^3.0.0-alpha.1" + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.npmmirror.com/dotenv/-/dotenv-16.4.5.tgz" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.npmmirror.com/dotenv/-/dotenv-9.0.2.tgz" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +echarts@^5.5.1: + version "5.5.1" + resolved "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz" + integrity sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA== + dependencies: + tslib "2.3.0" + zrender "5.6.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.8: + version "3.1.10" + resolved "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-builder-squirrel-windows@^24.13.3: + version "24.13.3" + resolved "https://registry.npmmirror.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz" + integrity sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg== + dependencies: + app-builder-lib "24.13.3" + archiver "^5.3.1" + builder-util "24.13.1" + fs-extra "^10.1.0" + +electron-builder@^24.13.3: + version "24.13.3" + resolved "https://registry.npmmirror.com/electron-builder/-/electron-builder-24.13.3.tgz" + integrity sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg== + dependencies: + app-builder-lib "24.13.3" + builder-util "24.13.1" + builder-util-runtime "9.2.4" + chalk "^4.1.2" + dmg-builder "24.13.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" + +electron-devtools-vendor@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/electron-devtools-vendor/-/electron-devtools-vendor-3.0.0.tgz" + integrity sha512-eZrQajB1ioHE81EQN12xr6RYh7fVHkKAunq752pDvKlETMZWu/vqXWl49Qnzi3n/Bbk0gIDTRxvRfPExA5RMow== + +electron-log@^5.1.7: + version "5.1.7" + resolved "https://registry.npmmirror.com/electron-log/-/electron-log-5.1.7.tgz" + integrity sha512-/PjrS9zGkrZCDTHt6IgNE3FeciBbi4wd7U76NG9jAoNXF99E9IJdvBkqvaUJ1NjLojYDKs0kTvn9YhKy1/Zi+Q== + +electron-publish@24.13.1: + version "24.13.1" + resolved "https://registry.npmmirror.com/electron-publish/-/electron-publish-24.13.1.tgz" + integrity sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "24.13.1" + builder-util-runtime "9.2.4" + chalk "^4.1.2" + fs-extra "^10.1.0" + lazy-val "^1.0.5" + mime "^2.5.2" + +electron-to-chromium@^1.5.4: + version "1.5.13" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== + +electron-updater@^6.2.1: + version "6.3.4" + resolved "https://registry.npmmirror.com/electron-updater/-/electron-updater-6.3.4.tgz" + integrity sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg== + dependencies: + builder-util-runtime "9.2.5" + fs-extra "^10.1.0" + js-yaml "^4.1.0" + lazy-val "^1.0.5" + lodash.escaperegexp "^4.1.2" + lodash.isequal "^4.5.0" + semver "^7.6.3" + tiny-typed-emitter "^2.1.0" + +electron@^32.0.2: + version "32.0.2" + resolved "https://registry.npmmirror.com/electron/-/electron-32.0.2.tgz" + integrity sha512-nmZblq8wW3HZ17MAyaUuiMI9Mb0Cgc7UR3To85h/rVopbfyF5s34NxtK4gvyRfYPxpDGP4k+HoQIPniPPrdE3w== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^20.9.0" + extract-zip "^2.0.1" + +electron_updater_node_cli@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/electron_updater_node_cli/-/electron_updater_node_cli-0.3.3.tgz" + integrity sha512-fOK5f8osp6acFfDxIY3OE1P3xQro7aS4+GJ0Rqx5w9wn+w0sKoINbxlCuI33oNUcwig3xxQptBZ/j1fRgKN2xw== + dependencies: + chalk "4.1.2" + +electron_updater_node_core@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/electron_updater_node_core/-/electron_updater_node_core-0.3.3.tgz" + integrity sha512-4cmDE0bWYhLPEskUAgMDwAP0ATe9BhzCRZ4xKKZ1Haw4OvXNSkYHCt2mOnwzbne83CSWTXdB+LSJR/uzrNwZDQ== + +element-plus@^2.8.0: + version "2.8.1" + resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.1.tgz" + integrity sha512-p11/6w/O0+hGvPhiN3jrcgh+XG+eg5jZlLdQVYvcPHZYhhCh3J3YeZWW1JO/REPES1vevkboT6VAi+9wHA8Dsg== + dependencies: + "@ctrl/tinycolor" "^3.4.1" + "@element-plus/icons-vue" "^2.3.1" + "@floating-ui/dom" "^1.0.1" + "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" + "@types/lodash" "^4.14.182" + "@types/lodash-es" "^4.17.6" + "@vueuse/core" "^9.1.0" + async-validator "^4.2.5" + dayjs "^1.11.3" + escape-html "^1.0.3" + lodash "^4.17.21" + lodash-es "^4.17.21" + lodash-unified "^1.0.2" + memoize-one "^6.0.0" + normalize-wheel-es "^1.2.0" + +emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.4.0.tgz" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/environment/-/environment-1.1.0.tgz" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/err-code/-/err-code-2.0.3.tgz" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-stack-parser-es@^0.1.5: + version "0.1.5" + resolved "https://registry.npmmirror.com/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz" + integrity sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg== + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0: + version "1.23.3" + resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.3.1: + version "1.5.4" + resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.64.tgz" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz" + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.4.tgz" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +"esbuild@^0.20.2 || ^0.21.0 || ^0.22.0 || ^0.23.0", esbuild@^0.23.1, esbuild@~0.23.0: + version "0.23.1" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.23.1.tgz" + integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.23.1" + "@esbuild/android-arm" "0.23.1" + "@esbuild/android-arm64" "0.23.1" + "@esbuild/android-x64" "0.23.1" + "@esbuild/darwin-arm64" "0.23.1" + "@esbuild/darwin-x64" "0.23.1" + "@esbuild/freebsd-arm64" "0.23.1" + "@esbuild/freebsd-x64" "0.23.1" + "@esbuild/linux-arm" "0.23.1" + "@esbuild/linux-arm64" "0.23.1" + "@esbuild/linux-ia32" "0.23.1" + "@esbuild/linux-loong64" "0.23.1" + "@esbuild/linux-mips64el" "0.23.1" + "@esbuild/linux-ppc64" "0.23.1" + "@esbuild/linux-riscv64" "0.23.1" + "@esbuild/linux-s390x" "0.23.1" + "@esbuild/linux-x64" "0.23.1" + "@esbuild/netbsd-x64" "0.23.1" + "@esbuild/openbsd-arm64" "0.23.1" + "@esbuild/openbsd-x64" "0.23.1" + "@esbuild/sunos-x64" "0.23.1" + "@esbuild/win32-arm64" "0.23.1" + "@esbuild/win32-ia32" "0.23.1" + "@esbuild/win32-x64" "0.23.1" + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/esniff/-/esniff-2.0.1.tgz" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/eventsource/-/eventsource-2.0.2.tgz" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== + +exceljs@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz" + integrity sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg== + dependencies: + archiver "^5.0.0" + dayjs "^1.8.34" + fast-csv "^4.3.1" + jszip "^3.10.1" + readable-stream "^3.6.0" + saxes "^5.0.1" + tmp "^0.2.0" + unzipper "^0.10.11" + uuid "^8.3.0" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/execa/-/execa-8.0.1.tgz" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +express-ws@^5.0.2: + version "5.0.2" + resolved "https://registry.npmmirror.com/express-ws/-/express-ws-5.0.2.tgz" + integrity sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ== + dependencies: + ws "^7.4.6" + +express@^4.19.2: + version "4.19.2" + resolved "https://registry.npmmirror.com/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.2: + version "2.0.4" + resolved "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/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" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-csv@^4.3.1: + version "4.3.6" + resolved "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz" + integrity sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw== + dependencies: + "@fast-csv/format" "4.3.5" + "@fast-csv/parse" "4.3.6" + +fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-equals@^4.0.3: + version "4.0.3" + resolved "https://registry.npmmirror.com/fast-equals/-/fast-equals-4.0.3.tgz" + integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== + +fast-glob@^3.3.0, fast-glob@^3.3.1, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + 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" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.4: + version "0.11.4" + resolved "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fdir@^6.2.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/fdir/-/fdir-6.3.0.tgz" + integrity sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ== + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +follow-redirects@^1.15.6: + version "1.15.7" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.7.tgz" + integrity sha512-aAW9al/NMw4COcZnwgUaG8kAjBUXq/El+1R11e9RDHAIlxa1fb1b5SP0K6BbMoNgWdmJ/kXAwoTlVDlUN3OTDw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.0.tgz" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +franc-min@^6.2.0: + version "6.2.0" + resolved "https://registry.npmmirror.com/franc-min/-/franc-min-6.2.0.tgz" + integrity sha512-1uDIEUSlUZgvJa2AKYR/dmJC66v/PvGQ9mWfI9nOr/kPpMFyvswK0gPXOwpYJYiYD008PpHLkGfG58SPjQJFxw== + dependencies: + trigram-utils "^2.0.0" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmmirror.com/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" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-tsconfig@^4.7.2, get-tsconfig@^4.7.5: + version "4.8.0" + resolved "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.8.0.tgz" + integrity sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw== + dependencies: + resolve-pkg-maps "^1.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^10.3.10, glob@^10.4.1: + version "10.4.5" + resolved "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^11.0.0: + version "11.0.0" + resolved "https://registry.npmmirror.com/glob/-/glob-11.0.0.tgz" + integrity sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^4.0.1" + minimatch "^10.0.0" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + 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" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalthis@^1.0.1, globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^13.1.2: + version "13.2.2" + resolved "https://registry.npmmirror.com/globby/-/globby-13.2.2.tgz" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^11.8.5: + version "11.8.6" + resolved "https://registry.npmmirror.com/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" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2: + version "4.2.11" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.1.1: + version "1.2.0" + resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hookable@^5.5.3: + version "5.5.3" + resolved "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz" + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== + +hosted-git-info@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz" + integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== + +htmlparser2@^3.8.3: + version "3.10.1" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^8.0.0: + version "8.0.2" + resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/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" + +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +i18next@^20.4.0: + version "20.6.1" + resolved "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz" + integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A== + dependencies: + "@babel/runtime" "^7.12.0" + +iconv-corefoundation@^1.1.7: + version "1.1.7" + resolved "https://registry.npmmirror.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz" + integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== + dependencies: + cli-truncate "^2.1.0" + node-addon-api "^1.6.3" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +if-async@^3.7.4: + version "3.7.4" + resolved "https://registry.npmmirror.com/if-async/-/if-async-3.7.4.tgz" + integrity sha512-BFEH2mZyeF6KZKaKLVPZ0wMjIiWOdjvZ7zbx8ENec0qfZhJwKFbX/4jKM5LTKyJEc/GOqUKiiJ2IFKT9yWrZqA== + +ignore@^5.2.4: + version "5.3.2" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@^0.5.1: + version "0.5.5" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.7" + resolved "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== + +importx@^0.4.3: + version "0.4.4" + resolved "https://registry.npmmirror.com/importx/-/importx-0.4.4.tgz" + integrity sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w== + dependencies: + bundle-require "^5.0.0" + debug "^4.3.6" + esbuild "^0.20.2 || ^0.21.0 || ^0.22.0 || ^0.23.0" + jiti "2.0.0-beta.3" + jiti-v1 "npm:jiti@^1.21.6" + pathe "^1.1.2" + tsx "^4.19.0" + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-5.0.0.tgz" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer@^10.1.8: + version "10.2.0" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-10.2.0.tgz" + integrity sha512-OE/HDYrQAgeUPs3mKetfarr/EFiotdULUc7R2XvwqPHMEjFtCqNsfYDfCZ5baAKKtb9kCaKclNTTE9hSi7JFjg== + dependencies: + "@inquirer/prompts" "^5.4.0" + "@inquirer/type" "^1.5.3" + "@types/mute-stream" "^0.0.4" + ansi-escapes "^4.3.2" + mute-stream "^1.0.0" + run-async "^3.0.0" + rxjs "^7.8.1" + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +inversify@6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/inversify/-/inversify-6.0.1.tgz" + integrity sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-3.0.1.tgz" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0: + version "2.15.1" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.15.1.tgz" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/is-nan/-/is-nan-1.3.2.tgz" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz" + integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== + +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-4.0.0.tgz" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-plain-obj@^1.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13, is-typed-array@^1.1.3: + version "1.1.13" + resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-3.1.0.tgz" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isbinaryfile@^5.0.0: + version "5.0.2" + resolved "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz" + integrity sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^2.0.0, isobject@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/jackspeak/-/jackspeak-4.0.1.tgz" + integrity sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.npmmirror.com/jake/-/jake-10.9.2.tgz" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +javascript-obfuscator@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/javascript-obfuscator/-/javascript-obfuscator-4.1.1.tgz" + integrity sha512-gt+KZpIIrrxXHEQGD8xZrL8mTRwRY0U76/xz/YX0gZdPrSqQhT/c7dYLASlLlecT3r+FxE7je/+C0oLnTDCx4A== + dependencies: + "@javascript-obfuscator/escodegen" "2.3.0" + "@javascript-obfuscator/estraverse" "5.4.0" + acorn "8.8.2" + assert "2.0.0" + chalk "4.1.2" + chance "1.1.9" + class-validator "0.14.1" + commander "10.0.0" + eslint-scope "7.1.1" + eslint-visitor-keys "3.3.0" + fast-deep-equal "3.1.3" + inversify "6.0.1" + js-string-escape "1.0.1" + md5 "2.3.0" + mkdirp "2.1.3" + multimatch "5.0.0" + opencollective-postinstall "2.0.3" + process "0.11.10" + reflect-metadata "0.1.13" + source-map-support "0.5.21" + string-template "1.0.0" + stringz "2.1.0" + tslib "2.5.0" + +"jiti-v1@npm:jiti@^1.21.6": + version "1.21.6" + resolved "https://registry.npmmirror.com/jiti/-/jiti-1.21.6.tgz" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +jiti@2.0.0-beta.3: + version "2.0.0-beta.3" + resolved "https://registry.npmmirror.com/jiti/-/jiti-2.0.0-beta.3.tgz" + integrity sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ== + +js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +js-string-escape@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/js-string-escape/-/js-string-escape-1.0.1.tgz" + integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^9.0.0: + version "9.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz" + integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.0, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jszip@^3.10.1: + version "3.10.1" + resolved "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz" + integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + setimmediate "^1.0.5" + +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +lazy-val@^1.0.4, lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/lazy-val/-/lazy-val-1.0.5.tgz" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libphonenumber-js@^1.10.53: + version "1.11.7" + resolved "https://registry.npmmirror.com/libphonenumber-js/-/libphonenumber-js-1.11.7.tgz" + integrity sha512-x2xON4/Qg2bRIS11KIN9yCNYUjhtiEjNyptjX0mX+pyKHecxuJVLIpfX1lq9ZD6CrC/rB+y4GBi18c6CEcUR+A== + +lie@3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/lie/-/lie-3.1.1.tgz" + integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== + dependencies: + immediate "~3.0.5" + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz" + integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== + +listr2@^8.2.4: + version "8.2.4" + resolved "https://registry.npmmirror.com/listr2/-/listr2-8.2.4.tgz" + integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" + +load-tsconfig@^0.2.3: + version "0.2.5" + resolved "https://registry.npmmirror.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz" + integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== + +loader-utils@^1.1.0: + version "1.4.2" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" + +localforage@^1.10.0: + version "1.10.0" + resolved "https://registry.npmmirror.com/localforage/-/localforage-1.10.0.tgz" + integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== + dependencies: + lie "3.1.1" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash-unified@^1.0.2: + version "1.0.3" + resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz" + integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz" + integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isnil@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz" + integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isundefined@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz" + integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.npmmirror.com/lodash.set/-/lodash.set-4.3.2.tgz" + integrity sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz" + integrity sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw== + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/log-update/-/log-update-6.1.0.tgz" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +long@^5.0.0: + version "5.2.3" + resolved "https://registry.npmmirror.com/long/-/long-5.2.3.tgz" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^11.0.0: + version "11.0.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.0.0.tgz" + integrity sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.30.10, magic-string@^0.30.11, magic-string@^0.30.3, magic-string@^0.30.4: + version "0.30.11" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.11.tgz" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +md5@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-options@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz" + integrity sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg== + dependencies: + is-plain-obj "^1.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz" + integrity sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.2.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + extglob "^2.0.2" + fragment-cache "^0.2.1" + kind-of "^5.0.2" + nanomatch "^1.2.1" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +micromatch@^4.0.4: + version "4.0.8" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-match@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz" + integrity sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg== + dependencies: + wildcard "^1.1.0" + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.npmmirror.com/mimic-function/-/mimic-function-5.0.1.tgz" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@^10.0.0: + version "10.0.1" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-10.0.1.tgz" + integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.1: + version "5.1.6" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mitt@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@2.1.3: + version "2.1.3" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-2.1.3.tgz" + integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.4.2, mlly@^1.7.1: + version "1.7.1" + resolved "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz" + integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.1.1" + ufo "^1.5.3" + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.0.tgz" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/multimatch/-/multimatch-5.0.0.tgz" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-1.0.0.tgz" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +n-gram@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/n-gram/-/n-gram-2.0.2.tgz" + integrity sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ== + +namespace-emitter@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz" + integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g== + +nanoid@5.0.7: + version "5.0.7" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-5.0.7.tgz" + integrity sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ== + +nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.4, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanomatch@^1.2.1: + version "1.2.13" + resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-1.7.2.tgz" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-fetch-native@^1.6.3: + version "1.6.4" + resolved "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz" + integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== + +node-gyp-build@^4.3.0: + version "4.8.2" + resolved "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz" + integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +normalize-wheel-es@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" + integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== + +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +numeral@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz" + integrity sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA== + +numfmt@^2.5.2: + version "2.5.2" + resolved "https://registry.npmmirror.com/numfmt/-/numfmt-2.5.2.tgz" + integrity sha512-VXrB2bpU9Xa0oCHq8IsqE2CcUx5OLupLC3oryFT4DB9e/xe+OnUzBndhXfNHUzxFE4DYI3Sx4OtzS1Sdaf7tEw== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-is@^1.0.1: + version "1.1.6" + resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +ofetch@^1.3.4: + version "1.3.4" + resolved "https://registry.npmmirror.com/ofetch/-/ofetch-1.3.4.tgz" + integrity sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== + dependencies: + destr "^2.0.3" + node-fetch-native "^1.6.3" + ufo "^1.5.3" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/onetime/-/onetime-7.0.0.tgz" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + +open@^10.1.0: + version "10.1.0" + resolved "https://registry.npmmirror.com/open/-/open-10.1.0.tgz" + integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" + +opencollective-postinstall@2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +opentype.js@^1.3.4: + version "1.3.4" + resolved "https://registry.npmmirror.com/opentype.js/-/opentype.js-1.3.4.tgz" + integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== + dependencies: + string.prototype.codepointat "^0.2.1" + tiny-inflate "^1.0.3" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +ot-json1@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/ot-json1/-/ot-json1-1.0.2.tgz" + integrity sha512-IhxkqVWQqlkWULoi/Q2AdzKk0N5vQRbUMUwubFXFCPcY4TsOZjmp2YKrk0/z1TeiECPadWEK060sdFdQ3Grokg== + dependencies: + ot-text-unicode "4" + +ot-text-unicode@4: + version "4.0.0" + resolved "https://registry.npmmirror.com/ot-text-unicode/-/ot-text-unicode-4.0.0.tgz" + integrity sha512-W7ZLU8QXesY2wagYFv47zErXud3E93FGImmSGJsQnBzE+idcPPyo2u2KMilIrTwBh4pbCizy71qRjmmV6aDhcQ== + dependencies: + unicount "1.1" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-2.1.1.tgz" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-map@^5.5.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-5.5.0.tgz" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +package-manager-detector@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/package-manager-detector/-/package-manager-detector-0.2.0.tgz" + integrity sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog== + +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.0.tgz" + integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^7.1.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-7.1.0.tgz" + integrity sha512-ZToe+MbUF4lBqk6dV8GKot4DKfzrxXsplOddH8zN3YK+qw9/McvP7+4ICjZvOne0jQhN4eJwHsX6tT0Ns19fvw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathe@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz" + integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== + +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +perfect-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pinia@^2.2.2: + version "2.2.2" + resolved "https://registry.npmmirror.com/pinia/-/pinia-2.2.2.tgz" + integrity sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA== + dependencies: + "@vue/devtools-api" "^6.6.3" + vue-demi "^0.14.10" + +pkg-types@^1.0.3, pkg-types@^1.1.1, pkg-types@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.2.0.tgz" + integrity sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA== + dependencies: + confbox "^0.1.7" + mlly "^1.7.1" + pathe "^1.1.2" + +plist@^3.0.4, plist@^3.0.5: + version "3.1.0" + resolved "https://registry.npmmirror.com/plist/-/plist-3.1.0.tgz" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +portfinder@^1.0.32: + version "1.0.32" + resolved "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-html@^1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/postcss-html/-/postcss-html-1.7.0.tgz" + integrity sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw== + dependencies: + htmlparser2 "^8.0.0" + js-tokens "^9.0.0" + postcss "^8.4.0" + postcss-safe-parser "^6.0.0" + +postcss-prefix-selector@^1.6.0: + version "1.16.1" + resolved "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz" + integrity sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ== + +postcss-safe-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz" + integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== + +postcss-scss@^4.0.9: + version "4.0.9" + resolved "https://registry.npmmirror.com/postcss-scss/-/postcss-scss-4.0.9.tgz" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== + +postcss@^5.2.17: + version "5.2.18" + resolved "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^8.4.0, postcss@^8.4.41, postcss@^8.4.43, postcss@^8.4.44: + version "8.4.44" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.44.tgz" + integrity sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +posthtml-parser@^0.2.0, posthtml-parser@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz" + integrity sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw== + dependencies: + htmlparser2 "^3.8.3" + isobject "^2.1.0" + +posthtml-rename-id@^1.0: + version "1.0.12" + resolved "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz" + integrity sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw== + dependencies: + escape-string-regexp "1.0.5" + +posthtml-render@^1.0.5, posthtml-render@^1.0.6: + version "1.4.0" + resolved "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz" + integrity sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw== + +posthtml-svg-mode@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz" + integrity sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ== + dependencies: + merge-options "1.0.1" + posthtml "^0.9.2" + posthtml-parser "^0.2.1" + posthtml-render "^1.0.6" + +posthtml@^0.9.2: + version "0.9.2" + resolved "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz" + integrity sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q== + dependencies: + posthtml-parser "^0.2.0" + posthtml-render "^1.0.5" + +preact@^10.5.13: + version "10.23.2" + resolved "https://registry.npmmirror.com/preact/-/preact-10.23.2.tgz" + integrity sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prismjs@^1.23.0: + version "1.29.0" + resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@0.11.10: + version "0.11.10" + resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/promise-retry/-/promise-retry-2.0.1.tgz" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prop-types@15.x, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.npmmirror.com/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" + +protobufjs@^7.2.5: + version "7.4.0" + resolved "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.4.0.tgz" + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +query-string@^4.3.2: + version "4.3.4" + resolved "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc-dialog@^9.6.0: + version "9.6.0" + resolved "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.6.0.tgz" + integrity sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-8" + classnames "^2.2.6" + rc-motion "^2.3.0" + rc-util "^5.21.0" + +rc-dropdown@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.0.tgz" + integrity sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-util "^5.17.0" + +rc-input-number@^9.2.0: + version "9.2.0" + resolved "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.2.0.tgz" + integrity sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/mini-decimal" "^1.0.1" + classnames "^2.2.5" + rc-input "~1.6.0" + rc-util "^5.40.1" + +rc-input@^1.6.3, rc-input@~1.6.0: + version "1.6.3" + resolved "https://registry.npmmirror.com/rc-input/-/rc-input-1.6.3.tgz" + integrity sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.18.1" + +rc-menu@^9.15.1: + version "9.15.1" + resolved "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.15.1.tgz" + integrity sha512-UKporqU6LPfHnpPmtP6hdEK4iO5Q+b7BRv/uRpxdIyDGplZy9jwUjsnpev5bs3PQKB0H0n34WAPDfjAfn3kAPA== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.0.0" + classnames "2.x" + rc-motion "^2.4.3" + rc-overflow "^1.3.1" + rc-util "^5.27.0" + +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.9.0: + version "2.9.2" + resolved "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.2.tgz" + integrity sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.43.0" + +rc-notification@^5.6.0: + version "5.6.0" + resolved "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.0.tgz" + integrity sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.9.0" + rc-util "^5.20.1" + +rc-overflow@^1.3.1, rc-overflow@^1.3.2: + version "1.3.2" + resolved "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz" + integrity sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-resize-observer "^1.0.0" + rc-util "^5.37.0" + +rc-picker@^4.6.13: + version "4.6.14" + resolved "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.14.tgz" + integrity sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg== + dependencies: + "@babel/runtime" "^7.24.7" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.1" + rc-overflow "^1.3.2" + rc-resize-observer "^1.4.0" + rc-util "^5.43.0" + +rc-resize-observer@^1.0.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz" + integrity sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.38.0" + resize-observer-polyfill "^1.5.1" + +rc-segmented@^2.4.1: + version "2.4.1" + resolved "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.4.1.tgz" + integrity sha512-KUi+JJFdKnumV9iXlm+BJ00O4NdVBp2TEexLCk6bK1x/RH83TvYKQMzIz/7m3UTRPD08RM/8VG/JNjWgWbd4cw== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-motion "^2.4.4" + rc-util "^5.17.0" + +rc-select@^14.15.1: + version "14.15.2" + resolved "https://registry.npmmirror.com/rc-select/-/rc-select-14.15.2.tgz" + integrity sha512-oNoXlaFmpqXYcQDzcPVLrEqS2J9c+/+oJuGrlXeVVX/gVgrbHa5YcyiRUXRydFjyuA7GP3elRuLF7Y3Tfwltlw== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.1.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.3.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.2" + +rc-textarea@^1.8.1: + version "1.8.1" + resolved "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.8.1.tgz" + integrity sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-input "~1.6.0" + rc-resize-observer "^1.0.0" + rc-util "^5.27.0" + +rc-tooltip@^6.2.0: + version "6.2.0" + resolved "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.2.0.tgz" + integrity sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.1" + +rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.27.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0: + version "5.43.0" + resolved "https://registry.npmmirror.com/rc-util/-/rc-util-5.43.0.tgz" + integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +rc-virtual-list@^3.14.5, rc-virtual-list@^3.5.2: + version "3.14.5" + resolved "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz" + integrity sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg== + dependencies: + "@babel/runtime" "^7.20.0" + classnames "^2.2.6" + rc-resize-observer "^1.0.0" + rc-util "^5.36.0" + +react-dom@^18.3.1: + version "18.3.1" + resolved "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-draggable@^4.0.3, react-draggable@^4.4.5, react-draggable@^4.4.6: + version "4.4.6" + resolved "https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.6.tgz" + integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw== + dependencies: + clsx "^1.1.1" + prop-types "^15.8.1" + +react-grid-layout@^1.4.4: + version "1.4.4" + resolved "https://registry.npmmirror.com/react-grid-layout/-/react-grid-layout-1.4.4.tgz" + integrity sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ== + dependencies: + clsx "^2.0.0" + fast-equals "^4.0.3" + prop-types "^15.8.1" + react-draggable "^4.4.5" + react-resizable "^3.0.5" + resize-observer-polyfill "^1.5.1" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-mentions@^4.4.10: + version "4.4.10" + resolved "https://registry.npmmirror.com/react-mentions/-/react-mentions-4.4.10.tgz" + integrity sha512-JHiQlgF1oSZR7VYPjq32wy97z1w1oE4x10EuhKjPr4WUKhVzG1uFQhQjKqjQkbVqJrmahf+ldgBTv36NrkpKpA== + dependencies: + "@babel/runtime" "7.4.5" + invariant "^2.2.4" + prop-types "^15.5.8" + substyle "^9.1.0" + +react-resizable@^3.0.5: + version "3.0.5" + resolved "https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz" + integrity sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w== + dependencies: + prop-types "15.x" + react-draggable "^4.0.3" + +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.5.tgz" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^18.3.1: + version "18.3.1" + resolved "https://registry.npmmirror.com/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +read-config-file@6.3.2: + version "6.3.2" + resolved "https://registry.npmmirror.com/read-config-file/-/read-config-file-6.3.2.tgz" + integrity sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q== + 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" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reflect-metadata@0.1.13: + version "0.1.13" + resolved "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regedit@^5.1.3: + version "5.1.3" + resolved "https://registry.npmmirror.com/regedit/-/regedit-5.1.3.tgz" + integrity sha512-sHsmh8FuioHve3lMmN6gNHdKmgGRxMGzgJ/qfzRQgsPx+Zv8kdlQ0y04JAg/6MqQC/7NRBZ1G5Qiccs1Q9tNtg== + dependencies: + debug "^4.1.0" + if-async "^3.7.4" + stream-slicer "0.0.6" + through2 "^0.6.3" + +regenerator-runtime@^0.13.2: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-util@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/regexp-util/-/regexp-util-2.0.0.tgz" + integrity sha512-HbLDPF+RkBiPjlzmU0hnUQd4abs56JiA2riHxNVfxjagcGwIy3Xhc2Yyx2+0/p5QeM0kj270nEOlTj57HvWXFA== + dependencies: + tslib "^2.6.0" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@^1.22.1, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/responselike/-/responselike-2.0.1.tgz" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-5.1.0.tgz" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@2: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + 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" + +rollup-plugin-esbuild@^6.1.1: + version "6.1.1" + resolved "https://registry.npmmirror.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz" + integrity sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw== + dependencies: + "@rollup/pluginutils" "^5.0.5" + debug "^4.3.4" + es-module-lexer "^1.3.1" + get-tsconfig "^4.7.2" + +rollup-plugin-obfuscator@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/rollup-plugin-obfuscator/-/rollup-plugin-obfuscator-1.1.0.tgz" + integrity sha512-cMfQIKyGePlfHGGO+rSDhSATMBx7WWxXW/X66c53HylUE/owanTbG6nhttUQOkbdCiQH8tClskNEH/IPRoqZwA== + dependencies: + "@rollup/pluginutils" "^5.1.0" + +rollup@^4.20.0, rollup@^4.21.0: + version "4.21.2" + resolved "https://registry.npmmirror.com/rollup/-/rollup-4.21.2.tgz" + integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.21.2" + "@rollup/rollup-android-arm64" "4.21.2" + "@rollup/rollup-darwin-arm64" "4.21.2" + "@rollup/rollup-darwin-x64" "4.21.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.2" + "@rollup/rollup-linux-arm-musleabihf" "4.21.2" + "@rollup/rollup-linux-arm64-gnu" "4.21.2" + "@rollup/rollup-linux-arm64-musl" "4.21.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.2" + "@rollup/rollup-linux-riscv64-gnu" "4.21.2" + "@rollup/rollup-linux-s390x-gnu" "4.21.2" + "@rollup/rollup-linux-x64-gnu" "4.21.2" + "@rollup/rollup-linux-x64-musl" "4.21.2" + "@rollup/rollup-win32-arm64-msvc" "4.21.2" + "@rollup/rollup-win32-ia32-msvc" "4.21.2" + "@rollup/rollup-win32-x64-msvc" "4.21.2" + fsevents "~2.3.2" + +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/run-applescript/-/run-applescript-7.0.0.tgz" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/run-async/-/run-async-3.0.0.tgz" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.npmmirror.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sass@^1.77.8: + version "1.77.8" + resolved "https://registry.npmmirror.com/sass/-/sass-1.77.8.tgz" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +scroll-into-view-if-needed@^2.2.28: + version "2.2.31" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +scule@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz" + integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver@^6.2.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.8, semver@^7.5.3, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmmirror.com/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.5, setimmediate@~1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz" + integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== + dependencies: + semver "^7.5.3" + +sirv@^2.0.4: + version "2.0.4" + resolved "https://registry.npmmirror.com/sirv/-/sirv-2.0.4.tgz" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slate-history@^0.66.0: + version "0.66.0" + resolved "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz" + integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng== + dependencies: + is-plain-object "^5.0.0" + +slate@^0.72.0: + version "0.72.8" + resolved "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz" + integrity sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.0.tgz" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +smart-buffer@^4.0.2: + version "4.2.0" + resolved "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snabbdom@^3.1.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.2.tgz" + integrity sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.6.1: + version "1.6.1" + resolved "https://registry.npmmirror.com/sockjs-client/-/sockjs-client-1.6.1.tgz" + integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== + dependencies: + debug "^3.2.7" + eventsource "^2.0.2" + faye-websocket "^0.11.4" + inherits "^2.0.4" + url-parse "^1.5.10" + +sortablejs@^1.15.3: + version "1.15.3" + resolved "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.3.tgz#033668db5ebfb11167d1249ab88e748f27959e29" + integrity sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@0.5.21, source-map-support@^0.5.19: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +speakingurl@^14.0.1: + version "14.0.1" + resolved "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz" + integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.2: + version "1.1.3" + resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +ssr-window@^3.0.0-alpha.1: + version "3.0.0" + resolved "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz" + integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/stat-mode/-/stat-mode-1.0.0.tgz" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stompjs@^2.3.3: + version "2.3.3" + resolved "https://registry.npmmirror.com/stompjs/-/stompjs-2.3.3.tgz" + integrity sha512-5l/Ogz0DTFW7TrpHF0LAETGqM/so8UxNJvYZjJKqcX31EVprSQgnGkO80tZctPC/lFBDUrSFiTG3xd0R27XAIA== + optionalDependencies: + websocket latest + +stream-slicer@0.0.6: + version "0.0.6" + resolved "https://registry.npmmirror.com/stream-slicer/-/stream-slicer-0.0.6.tgz" + integrity sha512-QsY0LbweYE5L+e+iBQgtkM5WUIf7+kCMA/m2VULv8rEEDDnlDPsPvOHH4nli6uaZOKQEt64u65h0l/eeZo7lCw== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-argv@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +string-template@1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/string-template/-/string-template-1.0.0.tgz" + integrity sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringz@2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/stringz/-/stringz-2.1.0.tgz" + integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== + dependencies: + char-regex "^1.0.2" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-literal@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz" + integrity sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw== + dependencies: + js-tokens "^9.0.0" + +substyle@^9.1.0: + version "9.4.1" + resolved "https://registry.npmmirror.com/substyle/-/substyle-9.4.1.tgz" + integrity sha512-VOngeq/W1/UkxiGzeqVvDbGDPM8XgUyJVWjrqeh+GgKqspEPiLYndK+XRcsKUHM5Muz/++1ctJ1QCF/OqRiKWA== + dependencies: + "@babel/runtime" "^7.3.4" + invariant "^2.2.4" + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +superjson@^2.2.1: + version "2.2.1" + resolved "https://registry.npmmirror.com/superjson/-/superjson-2.2.1.tgz" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== + dependencies: + copy-anything "^3.0.2" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8: + version "8.1.1" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-baker@1.7.0: + version "1.7.0" + resolved "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz" + integrity sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg== + dependencies: + bluebird "^3.5.0" + clone "^2.1.1" + he "^1.1.1" + image-size "^0.5.1" + loader-utils "^1.1.0" + merge-options "1.0.1" + micromatch "3.1.0" + postcss "^5.2.17" + postcss-prefix-selector "^1.6.0" + posthtml-rename-id "^1.0" + posthtml-svg-mode "^1.0.3" + query-string "^4.3.2" + traverse "^0.6.6" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +svgo@^2.8.0: + version "2.8.0" + resolved "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.1.12: + version "6.2.1" + resolved "https://registry.npmmirror.com/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + 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" + +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.npmmirror.com/temp-file/-/temp-file-3.4.0.tgz" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +through2@^0.6.3: + version "0.6.5" + resolved "https://registry.npmmirror.com/through2/-/through2-0.6.5.tgz" + integrity sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg== + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +tiny-inflate@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tiny-typed-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz" + integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== + +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinyexec@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.0.tgz" + integrity sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg== + +tinyglobby@^0.2.5: + version "0.2.5" + resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.5.tgz" + integrity sha512-Dlqgt6h0QkoHttG53/WGADNh9QhcjCAIZMTERAVhdpmIBEejSuLI9ZmGKWzB7tweBjlk30+s/ofi4SLmBeTYhw== + dependencies: + fdir "^6.2.0" + picomatch "^4.0.2" + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.npmmirror.com/tmp-promise/-/tmp-promise-3.0.3.tgz" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.2.0: + version "0.2.3" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1: + version "3.0.2" + resolved "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz" + integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== + +traverse@^0.6.6: + version "0.6.9" + resolved "https://registry.npmmirror.com/traverse/-/traverse-0.6.9.tgz" + integrity sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg== + dependencies: + gopd "^1.0.1" + typedarray.prototype.slice "^1.0.3" + which-typed-array "^1.1.15" + +trigram-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/trigram-utils/-/trigram-utils-2.0.1.tgz" + integrity sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ== + dependencies: + collapse-white-space "^2.0.0" + n-gram "^2.0.0" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tslib@2.5.0: + version "2.5.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tslib@^2.1.0, tslib@^2.6.0, tslib@^2.6.3: + version "2.7.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +tsx@^4.17.0, tsx@^4.19.0: + version "4.19.0" + resolved "https://registry.npmmirror.com/tsx/-/tsx-4.19.0.tgz" + integrity sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg== + dependencies: + esbuild "~0.23.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.8: + version "4.1.0" + resolved "https://registry.npmmirror.com/type-detect/-/type-detect-4.1.0.tgz" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^2.7.2: + version "2.7.3" + resolved "https://registry.npmmirror.com/type/-/type-2.7.3.tgz" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz" + integrity sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-errors "^1.3.0" + typed-array-buffer "^1.0.2" + typed-array-byte-offset "^1.0.2" + +typescript@^5.3.3, typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.npmmirror.com/typescript/-/typescript-5.5.4.tgz" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +ufo@^1.5.3: + version "1.5.4" + resolved "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + 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" + +unconfig@^0.5.5: + version "0.5.5" + resolved "https://registry.npmmirror.com/unconfig/-/unconfig-0.5.5.tgz" + integrity sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ== + dependencies: + "@antfu/utils" "^0.7.10" + defu "^6.1.4" + importx "^0.4.3" + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +unicode-regex@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/unicode-regex/-/unicode-regex-4.0.0.tgz" + integrity sha512-Zdlz4CqHeCy1pw2J15RmCMw/9QLRBz+BykmI8YNbtbf4pIV8t+1fHKD7y13NhauPEvisi2e5SoaonBNX77opGA== + dependencies: + regexp-util "^2.0.0" + +unicount@1.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/unicount/-/unicount-1.1.0.tgz" + integrity sha512-RlwWt1ywVW4WErPGAVHw/rIuJ2+MxvTME0siJ6lk9zBhpDfExDbspe6SRlWT3qU6AucNjotPl9qAJRVjP7guCQ== + +unimport@^3.7.2: + version "3.11.1" + resolved "https://registry.npmmirror.com/unimport/-/unimport-3.11.1.tgz" + integrity sha512-DuB1Uoq01LrrXTScxnwOoMSlTXxyKcULguFxbLrMDFcE/CO0ZWHpEiyhovN0mycPt7K6luAHe8laqvwvuoeUPg== + dependencies: + "@rollup/pluginutils" "^5.1.0" + acorn "^8.12.1" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + fast-glob "^3.3.2" + local-pkg "^0.5.0" + magic-string "^0.30.11" + mlly "^1.7.1" + pathe "^1.1.2" + pkg-types "^1.2.0" + scule "^1.3.0" + strip-literal "^2.1.0" + unplugin "^1.12.2" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unocss@^0.62.3: + version "0.62.3" + resolved "https://registry.npmmirror.com/unocss/-/unocss-0.62.3.tgz" + integrity sha512-CLS6+JIlBobe/iPTz07pehyGDP8VqGJsiE+ZZ3Xkgib3hw76nCqAQF/4mJ8jVoV4C8KvGyVxmHaSSCFOkWmmZg== + dependencies: + "@unocss/astro" "0.62.3" + "@unocss/cli" "0.62.3" + "@unocss/core" "0.62.3" + "@unocss/extractor-arbitrary-variants" "0.62.3" + "@unocss/postcss" "0.62.3" + "@unocss/preset-attributify" "0.62.3" + "@unocss/preset-icons" "0.62.3" + "@unocss/preset-mini" "0.62.3" + "@unocss/preset-tagify" "0.62.3" + "@unocss/preset-typography" "0.62.3" + "@unocss/preset-uno" "0.62.3" + "@unocss/preset-web-fonts" "0.62.3" + "@unocss/preset-wind" "0.62.3" + "@unocss/reset" "0.62.3" + "@unocss/transformer-attributify-jsx" "0.62.3" + "@unocss/transformer-attributify-jsx-babel" "0.62.3" + "@unocss/transformer-compile-class" "0.62.3" + "@unocss/transformer-directives" "0.62.3" + "@unocss/transformer-variant-group" "0.62.3" + "@unocss/vite" "0.62.3" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unplugin-auto-import@^0.17.6: + version "0.17.8" + resolved "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz" + integrity sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw== + dependencies: + "@antfu/utils" "^0.7.10" + "@rollup/pluginutils" "^5.1.0" + fast-glob "^3.3.2" + local-pkg "^0.5.0" + magic-string "^0.30.10" + minimatch "^9.0.4" + unimport "^3.7.2" + unplugin "^1.11.0" + +unplugin-icons@^0.18.5: + version "0.18.5" + resolved "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.18.5.tgz" + integrity sha512-KVNAohXbZ7tVcG1C3p6QaC7wU9Qrj7etv4XvsMMJAxr5LccQZ+Iuv5LOIv/7GtqXaGN1BuFCqRO1ErsHEgEXdQ== + dependencies: + "@antfu/install-pkg" "^0.3.1" + "@antfu/utils" "^0.7.7" + "@iconify/utils" "^2.1.22" + debug "^4.3.4" + kolorist "^1.8.0" + local-pkg "^0.5.0" + unplugin "^1.6.0" + +unplugin-vue-components@^0.26.0: + version "0.26.0" + resolved "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz" + integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ== + dependencies: + "@antfu/utils" "^0.7.6" + "@rollup/pluginutils" "^5.0.4" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.3.1" + local-pkg "^0.4.3" + magic-string "^0.30.3" + minimatch "^9.0.3" + resolve "^1.22.4" + unplugin "^1.4.0" + +unplugin@^1.11.0, unplugin@^1.12.2, unplugin@^1.4.0, unplugin@^1.6.0: + version "1.12.3" + resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.12.3.tgz" + integrity sha512-my8DH0/T/Kx33KO+6QXAqdeMYgyy0GktlOpdQjpagfHKw5DrD0ctPr7SHUyOT3g4ZVpzCQGt/qcpuoKJ/pniHA== + dependencies: + acorn "^8.12.1" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.6.2" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzipper@^0.10.11: + version "0.10.14" + resolved "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz" + integrity sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-parse@^1.5.10: + version "1.5.10" + resolved "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmmirror.com/use/-/use-3.1.1.tgz" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.npmmirror.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +utf8-byte-length@^1.0.1: + version "1.0.5" + resolved "https://registry.npmmirror.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz" + integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.0: + version "0.12.5" + resolved "https://registry.npmmirror.com/util/-/util-0.12.5.tgz" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^10.0.0: + version "10.0.0" + resolved "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +validator@^13.9.0: + version "13.12.0" + resolved "https://registry.npmmirror.com/validator/-/validator-13.12.0.tgz" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@^1.10.0: + version "1.10.1" + resolved "https://registry.npmmirror.com/verror/-/verror-1.10.1.tgz" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vite-hot-client@^0.2.3: + version "0.2.3" + resolved "https://registry.npmmirror.com/vite-hot-client/-/vite-hot-client-0.2.3.tgz" + integrity sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg== + +vite-plugin-inspect@^0.8.7: + version "0.8.7" + resolved "https://registry.npmmirror.com/vite-plugin-inspect/-/vite-plugin-inspect-0.8.7.tgz" + integrity sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA== + dependencies: + "@antfu/utils" "^0.7.10" + "@rollup/pluginutils" "^5.1.0" + debug "^4.3.6" + error-stack-parser-es "^0.1.5" + fs-extra "^11.2.0" + open "^10.1.0" + perfect-debounce "^1.0.0" + picocolors "^1.0.1" + sirv "^2.0.4" + +vite-plugin-svg-icons@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz" + integrity sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA== + dependencies: + "@types/svgo" "^2.6.1" + cors "^2.8.5" + debug "^4.3.3" + etag "^1.8.1" + fs-extra "^10.0.0" + pathe "^0.2.0" + svg-baker "1.7.0" + svgo "^2.8.0" + +vite-plugin-vue-devtools@^7.3.0: + version "7.4.0" + resolved "https://registry.npmmirror.com/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.4.0.tgz" + integrity sha512-0cIX+mi8QaRsf8hQckRPOWNHj5XyJVHDKo5ddLKVOh3vzurfFCGFVTXPALUy9A4sMGfWKTt0VyIh8OYk7V7m+Q== + dependencies: + "@vue/devtools-core" "^7.4.0" + "@vue/devtools-kit" "^7.4.0" + "@vue/devtools-shared" "^7.4.0" + execa "^8.0.1" + sirv "^2.0.4" + vite-plugin-inspect "^0.8.7" + vite-plugin-vue-inspector "^5.2.0" + +vite-plugin-vue-inspector@^5.2.0: + version "5.2.0" + resolved "https://registry.npmmirror.com/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.2.0.tgz" + integrity sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA== + dependencies: + "@babel/core" "^7.23.0" + "@babel/plugin-proposal-decorators" "^7.23.0" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.22.15" + "@vue/babel-plugin-jsx" "^1.1.5" + "@vue/compiler-dom" "^3.3.4" + kolorist "^1.8.0" + magic-string "^0.30.4" + +vite@^5.4.1: + version "5.4.3" + resolved "https://registry.npmmirror.com/vite/-/vite-5.4.3.tgz" + integrity sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vue-demi@*, vue-demi@^0.14.10: + version "0.14.10" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue-i18n@9.14.0: + version "9.14.0" + resolved "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.0.tgz" + integrity sha512-LxmpRuCt2rI8gqU+kxeflRZMQn4D5+4M3oP3PWZdowW/ePJraHqhF7p4CuaME52mUxdw3Mmy2yAUKgfZYgCRjA== + dependencies: + "@intlify/core-base" "9.14.0" + "@intlify/shared" "9.14.0" + "@vue/devtools-api" "^6.5.0" + +vue-router@^4.4.3: + version "4.4.3" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.3.tgz" + integrity sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A== + dependencies: + "@vue/devtools-api" "^6.6.3" + +vue@>=3.0.0, vue@^3.4.21: + version "3.5.0" + resolved "https://registry.npmmirror.com/vue/-/vue-3.5.0.tgz" + integrity sha512-1t70favYoFijwfWJ7g81aTd32obGaAnKYE9FNyMgnEzn3F4YncRi/kqAHHKloG0VXTD8vBYMhbgLKCA+Sk6QDw== + dependencies: + "@vue/compiler-dom" "3.5.0" + "@vue/compiler-sfc" "3.5.0" + "@vue/runtime-dom" "3.5.0" + "@vue/server-renderer" "3.5.0" + "@vue/shared" "3.5.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.6.2: + version "0.6.2" + resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +websocket@latest: + version "1.0.35" + resolved "https://registry.npmmirror.com/websocket/-/websocket-1.0.35.tgz" + integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.63" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +webstomp-client@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/webstomp-client/-/webstomp-client-1.2.6.tgz" + integrity sha512-9HajO6Ki2ViEGIusLZtjM2lcO2VaQUvtXhLQQ4Cm543RLjfTCEgI3sFaiXts3TvfZgrtY/vI/+qUkm2qWD/NVg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + 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" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: + version "1.1.15" + resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz" + integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng== + +window-size@^1: + version "1.1.1" + resolved "https://registry.npmmirror.com/window-size/-/window-size-1.1.1.tgz" + integrity sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA== + dependencies: + define-property "^1.0.0" + is-number "^3.0.0" + +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +"xtend@>=4.0.0 <4.1.0-0": + version "4.0.2" + resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.npmmirror.com/yaeti/-/yaeti-0.0.6.tgz" + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.6.2, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + 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" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.npmmirror.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== + +zip-stream@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== + dependencies: + archiver-utils "^3.0.4" + compress-commons "^4.1.2" + readable-stream "^3.6.0" + +zrender@5.6.0: + version "5.6.0" + resolved "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz" + integrity sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg== + dependencies: + tslib "2.3.0" diff --git a/启动逻辑图.jpg b/启动逻辑图.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e45736ae2e2dbd31e3c5d111e66c70317456398 GIT binary patch literal 167445 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ේSuJau5j?q2@{!9~*WOC*ISixf---nDq2Vk&Wu-^Dkv z843`mJ)Cf`*`gj??@$dt@XP?S$ z9oZWCjf3Gs38Yk>SUe{gJY`%@t7|e1s?JdBsnx|0OA-he6V-jFQo3yKfLPw2Cie#9 z@c0P$>A+^^8ba1YnOmf6r--L2T}Uqc(@SclcPEUXKiI$$0ZxJd-dR||AnnS+JM-~- zt4lb~)ct%}zh|?j!Q;aQr%I;Jt+HUEDgl`*x_qG9j>BpIe{*b(FB!B5yYDgLv?p34t!@h197^FqMrWujt;j zHlDkwoNibTh*jUMRJxu2rJdlssEF4$D{b>e@SKvRqH-GGpzulyl=Ez#To^h*Nb#`5 zIkOqzTpjq%?7m#6p=MY3yq8@~8)!cJs$J~I0POE=tNW3;L60UCy)^%JKx zyZ7Uc)q_yfgt*#c5~l&GI|l#m+SCMh7y@d7{kcLdvBcl%zZ@v6bAa!kfEkF)+@xz& z$$&`3>l=Sc6ESpDpx&4(-voWg1zh$IYKKK7w19QI8+2!=B7wCHb^0>pFkc zDHtlt<^pmuxcb;F(by@pB%MYc!PLvYzFVs<{5HmZ{d7>hp?j_^GR6F z2ha=QH!{5OO)l>4Z>SyhX9HeYi|Fyv7~~pwKgn*ys_Ju(uavn@#o+c(%12E{_d((7lqd} zg~{Ao2gs2-T%~S*u)348Dj+;ZvxCet&;zwD-y0lAr0I>6R=yf)1ZOMo_vBNe#-OuS zlhJawtmV+vRO(fZ=W&CJ-rvED${2IKECBxAxSb$4N60)0gPy*ey8cG#(!Fc-H>@8z zna{K^odFS4Ho7ag6`D997q(q=1yfaY)5!srlG4@8Ml#VVDhjncv(tTE@A!jvvFNwG zF@Kza$!A=t9?AeIfm3_rUE{n#eyulRwaJ#Bof@JyhV;Xwn2wi3VV6MEJlaI*zsk)$ z2GZa;Y0k8-%rpnnOf~}6we4eBT0)RZstL{CGZN;#L$I<+_gg^3p7mR{kVTKCu6Wh2 ztN#o1ef^PF1l_P_Bdw{JuGjL75tParhpp#%f>?PbR`liOzdj7SMjTAv>ESXb(Li&0 zL|hzp!k=Wb^S`{!9en5m4vf;Q-QN?rCj*-%$`z8*HU5evG|C9 zkGbw50!*7pAetJikIW*9T?C~Z&(+LIXq8zsNGo}~*XRZW$-0kaWUi?XdH1EB~+U=L_D>%Ndo=gPF4Wxy`1T>aqey0xh%`+1vdL2 zDtm(x&+=I$%O%GCE4UL@3Q1cCdu)82TeE`c@^hJ8v7uy1mWTx+qGJ)+htz#vEzpV& z93s9hr&HJygv`seH9Ow&gaS9t{`6f!r;Bb1rGR9YSseKlEzEBM0$!`EeU+}FNd104Nq~o-l@KAp(kpPe z)o}~$^#=o;iX!dsDdTzn+O}r8p@c=~Mu@i}2`RWxV2d~v5%~2O#A(67qQ6daBd`?p z#pB35`+w-PxKg@wXW=`Dwsadjd@9hYMI!Q$&8Atr8cVsyQbWI2cJ$U8*n{h@df^Tr zZUm^J`$oR_;?*L;M838BVM%3;B!Z%J)RRRSVx8z%0#^BexT{}OULMRXEtI7{z6t@x zg;g?)h?S^FCw;D(-#U3E5ZX!p7=C{z zY5*Gk(pMC2cr(uF&P@F2>tp`ijH;hCgk2a9eh?JexhRKZ$pyg5P0$pCCZBXFF22J$ z`sg11XNoprdT{}PGhjfQt}ALiAiyNINSt3=^O?C%Tuz>{s4c-meP=;WZRr&Vi>8?0 zB?K=B4c6qF;!j8Z?+O__HcR8laG{U7e2m?*%DOt*r)pRHPJ!0FRDHb|)ino7W)~~; zQL}Nxa(EpY0dV@ektfga03ZPo5B2IY&eTOdVY7Tt$&Xyy- z1eAg&6cqUja9!eI@Zyw7Is6$e14r*{x4v=N9FV;mxX>x@4dqn+=6zAh2zaoY?fU18 z|4Nx$_z`CK9X8+JHsFBD%ZJU^zJ)hGpo6SSIIGO*Zlh)8kS+ zjzHRSA^Cle5M}YtF1G8p==>{#3Q19L5#Qou$RG4sS=%YF4^kw|qtW;^qf++)U$7wl2GjCg)gZYE$sZifCcjh(UuN{~-ZHOsx=b{2Yd*#p;^eLFw2 zI~FESU4eu+K3C2{S=!oOWL=P50DM@%7T?ZHetOWI4HNc9{m#s}yuno+UYFIo5xuD= zKP+SPu~bA30>r{5s!(3#r3QV`u#T6MN%X@1RCLNc{xl1N8L5@$;QUwnRGnv>9`me< zn*Gnr5cuetF#I>YPMhqmW&Kp-mdkRos)}ntYA?>d5vM07*gq%~u$OysXEmmk2#w_B zObhxzUz;uRCN8m(Etkgqe4yY#>5oUo8#T$3#RD!AtX!u8pamr!k!%+!fdy5cO>+Qe33H+iy?lRl&rGCUFhEDumU?_5*NaYe}c zJWF4Kl+(1#5sS3S!maa*oQ(?)FR^Jd$L)=uk2r9au>F6()ae3r^y8X{EMq z$~(>1MDMB{Xudo4n;*V=1wqYB1Y|@IzK@wh?#y`6%! z(FELFuSmLv0|sZ9wUrnlH9Y|zHS-uTkcB|YX;WMSgpi-0EK7ix4+QCwR=LG}w-GbW zNoBEQo>pB%uJQO7F-2higN6Rd62Lw;O(+c<-MYS9fVzYRsk9Yyl2k*Gq%sK4SGmHH z^9ai{8XT|^)!69R4RSqq9uu`;q&v!Zee#$&rBB_1a7L}ALjAZ>k;G!!21;ImgwT2e zbrU28uWy8ueDccHC&%8fq*wzr>B3}`buyGt;@r^EQ=fD*>tqezMs;W^1eU7^!*(NA zECK-5Rx+ey4tcb4h#kDuX{0QF>^sCWeR1Ss9M8?0&n?t zcuS#arUkEEZNM%dsKtV%W=x-jV*X+QV8o+!5sTs~GOw+U84KGU92j(i*oHgLYsV{Y zkZ~-f(nSrT>r1W#qvx~9hJf*IsI^*MfOfgO!Y^H?Q^Xkstv2Gr2l~aWs7^(rbDnKv zPt{Uj*&v&HRF&#FN67CyXdzh!;s7N%m*a+eX+ud2)*KM)R+r_0iAtqQH7_w!3tHE; z)g73ETU2WNSRfe?swXm}uck#T>s$9#{=c(&m1%R?N__eh@b zp=Ub}b7%~R#qIfU6>Im4T-w;Bj7sEpsHA3JbQ^xoOOtx`XU3+S)#oc-{E%FjFrF*) ztvsB|%1*qyDI6@yd;@ohfEkx*E~}42@wgg6&Ri7^!?hVS?Y(cGY-20=HGHlHce_tC zJ>)x7Q0)3~dV0yKT|C# z*J;WGi8N7EpU#un`>F$CP13%9;6@4Dqmm1X?tJta^(!8D-#3wn6>d_L3vs6*>R%17 zYV45kJoqS4ruV;&-F>=UaO%&%(yR){6(LN>rQC0dlh~_7C_oM(IDCt$gZwT}l=9jx<_KJy|HcHLlyZF!c%UW)`j}Hg#QCb2v``B2vI=-#Ao)q%}u)5`KD=e zf;nWCkG`b)oN?shWkXc6!U3IZIq|^1W96&#{=5OgL5yVP1PC9xf@Lqn?&-9~L4z!b z*#!*R@6|EN8^YVZr=ZR;r$U7dJ^vrMjNW~A`j6y^N=^wy9nM*#K{WHcoJ+sbD2#t+ z9S5Of*S%Cgw}yKfKYR_k+`9f%I+MkK9)8S?m28>-{=%CVZy@Za4#sY8uS}7q2(@`z zvlhF0Cx6@b1p`7R9bt+<0vf*Hi=Ov{>cE+wm0Yg_3SX_DQJCoDKa^v4r(93B=i}kS zLZ1)eY9AF=C&HdxbkUscV13IM8$uL?xPV3%eI~fW}Y0%722BspLO17h*?4 zK$#B}yXS|0(elyC5$59ds(C&DhRw*`<-SH58XE5R0_uP>{YG=Q4pZv6T zdq`)%@d~RAcwvzOg&i$i^W8EUY$fadsOR%wvY1LGhR|-rrL-bqYi!}*Tlk~u%t~jr zQk$<}@s5R4Lok<~MJx|T3^gZ+CeX?TL^@H^O8=4N&|=oF>Lfu;7fWR1h~_4YWzcY6 zKbgz&O5#uPkclk4%mb>ydc!o6u59f%G9UYmp9-WIJ!<3LvEj06+&%BMec1J)>cNsI z+3-cb7&7T_SO-5EJG_Aa)US~jsMZ<%e%2#?)QN|hEo;wbqR#C0_`UscMG;Tge%g*3 zm^OD-nKR!53ZXx1=GPBvo}|~}()}Y<+6w3rBAm~6?z&N4Ry{sMXy_swma~0svf}Rn z#eU-<1Ox>y5vdm_JkxmsZe_Hra<>DMo>^!&K`Bc&INMdL3W<;I=!S%1wm|cwZQt0j zk5=+|=M)FfOtf9*EVfI!xFeuCvVawM3^A*C7W*U3+r7whNV zG)>y2=8cMus7GICd5-(LgP!6UYAZ1E>(K`EpgMsAq5dH&i*Y0mbuNn$tUtwYe5cmS2g!&+ zPQ9{xch9~%%9U_3M`&>KgvJ(b+zSV}eJv~hzNeo?KSoAn|9}6ze zMF=@^#OrsHti)v<@aRlZznloRQk7V^XuN4|T%>xd&f|L$KDomBQy)|BP*y#PixVjK zUH9t;T&;$-qIB&b!lpkoL=d`8i)T0<^q6_vpW_yv`iG^}EP1HVpMk%*Gs4#++<(;= z^u36?qUfI1O`+=((N>YCCKVL_=^P_)g_7=lmV*ET{{CSHGGc>S&u!yVnX^jkI(hHP zfsa#ijeWa|FZm8)%VlW_PXs}~y~f>#Rdp2cA?sS4WHtd2Vk8X8WtUkp8lO~WF1^1l zlWXXBz@SnV$HU_Pm>V)Fl$mf*1D}+m%LOWEhkBuPlFId2rEsSR381u_guIN$eOag1 zJr8iOlZ$YYvoEgsaGe8}YP){NUED>!d?AO~IF*W-wcQ&{&+kR+0pB$@IsDY9dhZVK zmcW;fl79GrLpxWe1qhi%iz>imO8RthH_c9D=spmh;t4_Dh9rIAXRJ=!RjGEIGE6m! zQK78&G!cfp95GLI?Oobj;W3GhlCyS!xg-_c@IOH3dmvc{bimP9}N7c>Qs_Y4d zqvtZ^=^gIXH!plI{2zTw_=&zH28_#h7)~DokpTTXMqlEr3Rcq5<6hjep2|{j3YYif zy2oIiiBhiCoPYit`nT&qDkc$vApxWp%M=v62}d$~>EJJ3->uW)g&Zd^E8Q18;evWD z6M<4K#iRlCpTfN^e`{34fJ!R(60Bm#~7% zZKV4+oZ}Ezer6BfezAwFA2OK9Jn}v-F0YCjH{`q@pkEyy>&IT5W%pUK$e(Yt9&VaL zNkpyr7_BL6LvF&YhCRPtJa=R!Q&H0}kxLCp@BwqpbJ?>t`^lxqCms#604{LQV0QWw z*Yu0@+tRC#uQ9gQLy=!`<%>oSzNx{H;c8hLrv4P7|3I(##6%_*fK+e+N|9gmj`>+2 zZ7|y7xT}lEquBX1Vp*z?vSIwSWNosmr2O_kDiR%!H~wG~jb3u)Kzv+vLNuYpk;9^8 z&Y0pF)iXANi^PhFNi+~mT5foG7=mL!KdVx|`P zqq9DuqLUxZC*;C(6!(mbwZQ}8v_G0&-Gj?@OxS-iwA&;9(^0YdzH zwC4!z5j2h1lo5_EZJ*e)&tvnthRsUQJ+vrUd9X7+3UpPyXhXY{RUYytsIf)8_jG)w zI>vr4|KTG#o>nL7&CU9BqcEJSDf;#y+>FnMoe_XGQ7Z(ShtFB>oOZ6JBE$I|+>IyhH{VJVDYnE@dzoy&nPKgT!7wntz zwkGjfo7088GIwe7+uQtM-~3AxZ$88N3Gnyn!$yjrWe@S~O!T5V$V7l#CPy4O#kpS2 z3>dbsvK?gRSSw-d@%`LS`jRs}@4jGe!jyY{H1~dEA}90=wFI@-ev>DD)rS|FuK6Bnew%eFkyy55D z`&4a)zwIt;!$dl&@!aRpTGb;lX~dM^sBXTzQ(~`##I#>pNfWyZ4EOsPcVwpG3gYxm z^|r@*eXir!Ve)S_+E(kx5RTm!p43DS^LD{3(|}^L`ok; zX3&uHV785cK9Z99X(qChPm9$nzRMw3+3Y?9@!ru6_!Rf)^M^SKwV!E?=(RRL*U`8( z&8wzeX>Ov3KLQd60qkD-%M34&b_tbK!o~NVp^Qza%hqB#Hq-N%E8j!WoZ+*Mzb+SV z2=X(Tkp0ZQeqc#mQn;bXX}{@Ztr>l%Zx3Gj*@e@yYj@pp%vq~Y1|aj>kgc0kp5?oJ zUDK4rNwk7k)fKdkftkbU&cF*JOwdTK2$=m{$ZR-SM6eDq8%#X^)#Rm$@UwE|M z@z>FpHEm}PdNrdfGwQU7v##;g#Kv%93bp2Fw|IN|O2qwAXZ0MnRp?wn{KRch7|IyAbcTi&qx+qm6> zoWBc;arSGqmMhL=)+F_0YML`Xl?b=03;p9yUoxnzeG%uzTbfwFygE@lX#O(w{zLrD z2cK|xo~c2-s2mK*XBPu5E9S_Af6sLnB#-?_>8fzEqWj-R{qJ1;?`FVJ`rm^?*pvU4 zZiXvu;nGFX281E>v7qUr|T&4T=EH^j_BtDu1Vd+-0qAt9F<-_h-b(V_{B5*DRQR z!jkd0;l}^`^!vP5S;NFL75IABHjRJoK?og_r{6I?uBC*LAb+L7m9Mr>`LDr%3x14v zXg;sQ+(QFy!<(Cb?Z4hRjfr=^SSzdgpSfWU5}!VQW{t|c_c1pF4*v zP@!x-Y9xQBr7Pi^Wv2SK4@!ecNVdI6H0D>kR?&H3!~6>KY{JAGxwH56zsX_}^+7rj zScRuTy<3@~z)((jGgQ#=9rk zmw~w|{Xoy$ROqtdAb(5Uc4F~kK4f|U{b|((!{~%t@8|aUcU}B!@Tcv5i!bj@enwI? z@X{R#LsNpet$fK8pZT?|a_pb?r^K59oaPWvh+i@VeiKg=Nr>1z=RkfZ&dHvP!nu*o zFRYIpBijMuLpkvmxaY2r2pom7?UC1LiPxF?5KlenRD<~e4?owpT%{8vwRz9940xMC`VY&3`NaG5Ot3qo~zbuuUNie*C!A*cKxuru&^c> z_%%O!HLg|vzS&BP;`6DLB9JCJIIoV5*ABi$xu4?37IGgzk<;cFx*fX_(rQcko>R>) zON9znn^pe7+$P`AcKEFyNh;s$1)!k68RvkRx4hO)+()YZo;aM9a{))h;7~)Q;IjV|M3wiOcOUC;#aLT z0S%+5f*`@w7TW?dp7v)H1~qo7)RmBnU|5%+|TD$t^?zy>& zCg$pRLg#q=P$DU!?3hHT+tr$i$N@GH6!?Ful)BfTeZRYS~j@QIg}K1_mDkL zRGU|{5}EdsDNv`*Vc5hyT`^9!Uf8iRggsojaK?x^{H|^RZ%oRLKx~^BccLiwcr+RJ zaFA=OdoNzvE{c#$qx@_v9^K&tuDc%X?Od)H-nkhw!TJ7iIO5NLJS)9cNMUF4)}czc zzTGe^EV-z#$<`KJNr*9Q{drZQ*l~D&!%2o8KshkI$+xVY8%Y}ruAWAB$u*1bM;%Nn zb*kxPxXk+~#g=Sgx#POe^{}Pne#I6fZR@?-`^jk*Fo518z8`QG;nuvPpmp<$}xry6XSw%dSkuT4E zOKCG4&+e|{j{oLqoC!_XF0KeBE*;6VQ1HY2e}w%7>S9 z%+F3WX2;Jnkn7*=M;50=S^ikK>@$OXJ5DuyI_QSmPc+=LqPu`G#ViGS_3QVe^!k`k9W_`_nkTgxmWXF z#;avara5CjMq0nuO@m`9oxC1$C38$l|gd_ zma)^4RCBBBNW6!eC)fIacgSj5^nbDqmk|eAedIBCv`-q$P-}a8H05it4Yt#{O8nu} zTVY^mdfb2IdK)C?TkZE)ub*2Y9}pl0)>+7<>cE!`k5wlxK(?X#VfP9FtLO}Td1+`5Bid$uJ|%Cdv2cLL-Ww#3sl zhvwFzpD;KM+FZ>4)?z7%xFQYq32WbTEL1fxV<@@mAKXe#$P+7Z;ll{awveHP8w zAn#f_@1l5HVOS4p>b5LC#XE{XaUNGr_f0NBA5y!E65@|aVYlqqKM_{v0t9$Z0?V~h zAM$q#E=)xMuJNyLteF(BIk$vhHXUa)!ZONTux0! z@fz%~E>ErYbIwn3MGBr{mT$fM-*fhppm~yYqzb5G(*i;k?GDoF<4Ny|``*Ed&r$f% zdE2A0_#Aqi65X2Bj&Lsc`{M|_-d>ip|F^rwv@LM;NR5HWlD^KP;MbFPcG-qFGaikA zj-CVn{Ns5bL4(9?S=|kMa4(CAyoiaKJ8#shaV_|deRApSP z_v8QW7Ecx(Kf_eYyT|4*vY7^ZQ2rU#&sA>bu)mbf1M#c-L8ot{2=P1nBibwJtlc6r zw-w<*I6WZP3{k2Fkod;qV5=$_Mga z-Z#JxSuej4VA97VOWEY|n<_(iBQhN>8Ko^(me2cm#NKKxnJeoxm|=4{huji1cze(- zGxJ%A!e+F$-AbT%2#mRHxigbbaw!@vwxtKvt(|+rQo=Jhk=!Y=xP0W@Bvi<eQ;{dIT$;HCH(MIx#iz{ z1+o$4e^WW4I#ynE{Ov7xKPbM74$3#R7L@|iaU`V_jz~A<4qS-4;7NR`M@?YzeeII} zui+JzLTk$|z8dl&CP!dvEmDfm$cfRUlm-PvD|COi&q0Ia&I>?g_dc)(3TpYM#JT*v zx3?j-h1r`rBALJ7V^K)BN;97~0=cxVuUf5(5a)uFkk;h%uFj&lJUoU6WFzGcT!jc| zRh1(h^X~8PsLhEez}2;LE+QdT*qdDFO=8}B8Zgm9F)dWZ?6VEw?0GX@A=-4?vwy-E z*Yk^_7v^J90f0P8l8620F3=E0Yz>pdL2cr-=WR(UBLNmZ==RvO;N!q=To_+$(s9up zD>60fEb_jc7sR=>j6nIM-6wjE5uEiZ*^Ybd9#&n{#7MmRuua^h1)b>@Zyz2r_@WF& z=y2Q0P=|&(#=QohCATVxXE?Sg8Pnzfht?RH%%G*1H$R8~4&*3?=BJ8yyH;Z#kTySw zI{~tAKQZ}Gc)IW#pXS<9>X^SVi#kRSRIc@{#686ryM)fCJNAoYQQjm8baycY1 z_#U5%1h z0M;D>$9NAbDf^2$eLh=++djO-DqvE+z4?niocF4^-JxOm@nA@-+gcY+>;#&E4k1?tEpeM>F8;RWOl>q13 zq!hvbWqBD>)3J-8Q>DUprP|5bxGNW0eU@nvU12`)-<``l^k2lFxKH>fEZ+9a>;$Z9 zMG*s~&?NG+twTD{r+W?r9C;*40Gx=MCvU@z=<^UIZfSDud7M;ydveYSkv3u0Ti?Xa z&l|BtLuh|~h;q1?jzXNQzb>$jPG9VE?|{rndm&)BS=k4{XY(~~#jn}R@Ya&66vm=u z`wEA4{o>s>=M8_?gdbsEoAoatVnGXmX*=a~f-h+h2f>YV4icNse^=sRCEAYH|EA3W zI=ZpZ#H}}5>e!FD_oK^&*~se%uUVY*VwMO*&dv3n@UMbAt@+((nTdjC`h=F1uSE3m z5I}UD))T@em59WT;mEI@@{uIXEx#e*`E&l=Ra7Kd4x%~lilVub`w^Yg?Nf?G4b$!o z6<3qD&zZSDB;#zGFflTKot4OeZrHbOE}3|V$U}Z-t?d7M2&vO)2}pE76&?u3{YMJ^eT?KXwH}eYrD}>Lbj0dh6sucO_bNLi9 zy3dSvNDbeWJDY6#rP0Lc`g~CGbyDqO&1#*IaH*H(Xsa&vaxN+X@?Ufp0-g${g zqUM+++ut2uDnSAeJo`C;yjW){*KyAY)*q~~=~~kXW?dfyu3vuSog$!4cI*+JKj)`C z2h*O>5&U&At|?}bacuQoQA9+}jRdRp-CS4;#CdVI^!+Por8q}b=x<$#blSmItI_v6 z`>u&I@$bQTR^q|V^4)uk?(fWda}!-L>{Ctx+4#HjJp>zVQ;N_zul;gb?J}BmM5pVm z5EVKTR2te@)S50{ENfn@tA))*1^RzjZE zx*<6%>Y0`~lZYMx;8%O3M9^JM_rd3~N+~5Ajqh%Gb0)Tw8+KzRVwvlrt4pI{(f73o zi@4R&-?oH^Z2ydkqG?z3YgH@e0D3}o?4ZwP5P8_+L9zY0wqZ3ykU$*?98zFjhc2}dB8$1bk*9SyizvE%TfWXRul3~*(dpTd5;8eYA}NSQ-qkz?kh}%0cPhaZDVrPKF;k0gFRz@F$N-C2 z=Bvkh*^UTwJgwgjIDb#?pwip`D`9&ihuWNkgt$u|eCJe+jII)#t_mszv=a6bOi>f_PsqVILE6CT(bliNgdqxH zhqX-IGRX4x`LU%K!m&S5Z-;BUPI*m!Y0)D1v>pc04;ly6HapdyDSxRc+>G`N^(JTD z2>PsHy|2n+Oafdkhq%jSJ*V>8!*zYNJ8N5qwYjy^4INy!fjH{~D6zVqIpUhEm~g3_^94(x>WeJ_kNR!GE^l%K4bdCK z?7|QBrvNcF9y#0hwVB|299bhd=L?cH;v`jA$JQ+|_ zJF~rVsOl4PNG{mS&m*_F&c)C;Aba8C3eq3Hrb~NODIL_I0tIKlJ3ki{!3iieB~P|b zBVR8G+~=917-XM*;-c`I12~i}!L_@p+WIeAW01e}0m>7$){msJThOw%ox1l>oJXB_ zVSm|ov)86{DkcPH>?fjD>Ew0$3L%VRlTr#4@tV_u{zM_>yCLq%lCN3*#0q0z7uW*) z%qi}NBR@WJB_zd8AhH>aE8lX;rNm?MoN@0C(4P(OqBq}HWG`h5q<-(=86+K+n)={1 zQzw4sTtV8iZc!(oGgZIR6VX18IbMAHM#B1qJ%b?c-3CS>FVNfV`p>qOQkU-ofeG&E zfk)q``86-{vR3zPGw@k2?^?h034ke)!Vg@0Tda5^o%~_>W{^A|>?o`j`};Is*lSk8 zN}RjWj*G_B&!8(lP(qxBsUpbxHmj{f2EeWb#TiIS{+yZY`=D)EIG5ZmHSq4gx@xX) zhS$Dy(EE6>)&9q$e0tf9Q2qTKF$9<8vrRhStCvTIN=upg^~l0Wgy)AI>7Qy=Y<_%@ zozt!7f~;~DieX2HsBY+&q}2SN_{2;7|IAKP0ZskN-;79GOsf!=`w3hn%(Gcr+-c6h zu)ZcVdB@R+)^u$Fm;zPc_Jm9ZRg2keu1F<+zL(I9Pd+m6o98_(ToM;Ej8 z`st!K!L`1FSYEBm^0^UnzX?GP&0(nQ{c{{Stt$Qf@~Z3+9Zyx3Vg9u+|3~ibdp&o8 zvA$OHL@`x-t0*9tN#F{;l>^343bcO7i9_#h5NVCUorSJM3NMGENge&=EP8iGqB`W- zAWu=nQcpZpb@O3&rr3aHTX}Jn0_O!`BI}GoEsm^m==lZD$yBKNcw8KytD&fU2u;sWw38)T zvaD~ygOfA(4VPgDFjf0UvYW8?Wmglv-DA=u*a0TS-A(yVFF@GzOcSFSaWF0s2cyvG zUB&!$A8^lG^gdzuoCd$YiF@riHFkOkt%#dX(RcyT%e8r%#!uLyYx&^w^q$cuF}W$c zKj(RP@fGbta2-y~r8?5hSgZuM-hAQkPyZuX|YEN7;s2Xp!ooZXOADKje3BN-FKg*i!|X=$nL&;^v?PD}dd-p(TulQP{%Qr?F#sP6v|mB}MGM}`MX7zm z9Mm*7*a$B5^w2M;#5;NTie?D#=C7cp;Ug^48*8iiEH>RGbL>oojCVfBw;hMYU$=G* zA^%4h19>M6OP#WGbSp=Yv)M5|1VbdlC}kW(b4T$KsZEjn7KR`UsgN&(d-Z= zV>==1m1JI0Y%15;QMUn1Fk9txq=yRL*MP>p4_trNk&N8$wlKY1lna;%pp3p!`;Dqr_jtf&?v_xO%)^rX3(2Hl3327X7@s! znAFi)#14_;Z}xj0J(btyzpaXJhp)lX%*+y4=@Mw3tat1E5gYv3&Jw=)&*#gyvwWhG z_l!)wmx%ca7%UR1P&qZdoXW~OVns_NEtv?=MWPppQ*qv+^Rnn}Leh#2ZY zf8z1rOwD)e3^o(2t4Lry6XXXW^%vna)y}QPtCo`vuMFh?LCxDTW{(~6vSW&p8`*w0 zdrtNyAj6gba^A-C$_6{(8f-(V>$LpyGdTG~+QF%J&)e(l{p8)eItnk+?Q+@I+8h;$ zn^pXHFapK(gybjn9r}&?y(aXxIkuMCc^rE(`T)S@yWG>Ad-l%CMn~^|o}2vHnPQ7H z($!y@NAptT3m~%?H9|hryACOF1nUji`zN0EL&rkwNl6oNpIk!vORVzgJ9t?{3MU}M zTU6WgPeIEaMcgq`W3|%FwD(;T9h3}S#dwq+XvhR)zu=PCXU&!=&)LZqY2ffRMnmI% zuiberbwzR0#6wX&T64U9R$ri>xu3xf_Kzp+O1AZK59gLlS9vOPds!a}8k-<*Fd#xtnoC~v5-_ksGI?Ovw08I+TzG*lmVx-q6q)$V5X zny8Dabnu!qHXaxO{N> zy(*e#j0pVPAw$aoIp4}QwKXi-yEEtq*q*(}ii}X8E zSNBFV^H-MKc%|Pd11$1TuY=bY@rzD74Yqwg|LXTUtFbVf7Rh`?hA{KN8Y`s|j_f9* zD04-#%zjPH{RX^u^M<8vD%fs(cze(4)t+5{hS1;g-rjBJ^3#%~E!)Bi&k~Y7Xy^Q9 zq#1>tZAetPsPzsKbpR$6Y(t*+YdjY4Kt9!Ug(Dx0;Z?A2yAockYtU~1H@Q6hRav?g zF9T&r?9QL$4~SErOz!Lwcnd9`Pl65<%ah3FoqJ;~7x}DQ>EW?IN5m4-wwX8cD*aO&-CL-7_?#*$&KeNA5b8iE+&vh$0ig18}NRI@QKQ!~n~ckiQp)9kyF zY$S_aw~o3!&FB}aOI8~ZJoq_+)3d7)N$684r9=kv?HJ$_ktkjKxDhdDfQyj;7;JE^ z{tN2}2=ta}ZIn)*5ZW=IXAxJOl5umLWs8L^R~#wzfP}}zbiqKmt{VH#mb!g)GkX*# zKYzGZwzKzQT-`Qy&d#+1aNIt#?%1(%I#p-WX=}?PeIG^@OuEEZY<|nrU@knRVX*1^ zA0h$-rR()Alp#Co5A?P_`j91>z}DIQG*z=LT=WGSS&XWV;2?f^vF+&Op!J1plH~e` znAwj>PbgnB8;)h3?=c;Cx4~(>=d168@Xt2T4-G4jub{;GM4kJK1$eQWumCCY60L`cqB8C0`v-o$|D3{Yw zvOL%t?@{S238SH4LqsN%ZiXuRXK3EpE~b)HdPinI}c3-L? zGOGTTNe^teN=*JB+m_vS<8`t^IrngM&VjHvDvd|?o|($E=`1tpJhZvsddcviIx8nA zbDg_#bc#jgzWO*Aj9=bL7+81dwXWWI;2{E6^msO9pgNwGe>&yH0gFc$`PsHqfz2JH z+=l=wa$5fJADiW7e&(5{PgW+YI~COLF?f2KaD$EzK%bsU$vF=US8#urx01xPV?kQp zH-^c5XG9}UbvS*Fy?wC=fsT}pZbdYe8t?67%cE|t>{+uRq$M6N9>-g{1}j~MmRNO= zbk6Sc5BH|MkTBSgv_>e5RiSQr%Nvcgkz!LKHlJff!_8dUXx&aKZwjf|dxar?E|VR3 z)MLZ;lOgh^+Z5tzwq;(Z_OjiZnjF1G%I+jvp-s}`2Zm8cA3b~>tob}#^bT9lt1^M? zbcV-9lh0<6zs=$eF3Z=#>It!tlLkdU2K`iPzjobx!y4Of@fuq_ma=Db*LG;QIc#*+ z6M6LEuC_rY_Wi!rOhl_lH7Jyx>Sf;v<)!aof*I0A7>+~nyFaJ|T-xd_#Y@2`>j8;T!c zs;Bd)$BJPf@ zERsGwG!B_1%8%RVvZAT8rc^{!-5jYd#+ zuQuJ>Jeo!%;tp0=JEWAA5$^7n__GY|S@ruTx8&cymDHUvJ03Ng`P}bzqz%`D(egmk zWLLe`Z=d*#1-8=P!-#{d$;ztCpkvyao+r_!nF2;O3R8c$;Zd87+kg1>be({ z)WN_|@=bXot&(byqQaDJ!wrS~Z_H592)h5_<+*PuZ3p(ozs>X=rRXKbRqr(vY718? z?t|Z!*4sIB9&rps$`j5KrBv6jFwA(2qc7S~t6fL%kZxP}7a6uP>)9Q>XU|vdXuQWR z`RqdZW#ip+B}Xl*C5;UjUz;CROAg7(Xc>Cr`7@8mnf;Hd4mET2lg$Qpj=bLF2~yX= z19AF~Z)rupP%2A5NY?rWVbNchCW(Jn^uMr ztNCsUq|M{ujLF@5*52<4^gBA?&}$gKuZ8hhpj>Ze21D-Hk7uWR^i!*RDFLgp2ngDX zT;I{4x`IH8)#iiaVV^jvl1RLtQ7)-E7xm1yjGWCnSvl3ZOfkc)iFV^uZHICct;fta ziQcOTEf?qZ3n#H(wp_hNq~I%VqHOUX+FEFsL}@ZM*o;KoUf0xd%A>cBl};dZqJ6*; zK1}uP)Pd62eV>}e?-xH345cjFoYQ#VSFuq@DCZ_NHj7SKgFcaKIu-h#Hr~vPKL_p5 zC+}vnHtm=Z6`9hrNbq$%^qXm&&|-9tn8vu*{pxw zxOVkg!@}56Z#~DGT0aiul%*42!AsBFNb1y-o(eQj5RK6KsppcgMf_x2_{z1_OUDjt zul4HsATpCFcIQsV1_0&)@j5yu0zHY$kph$Y@)9C5lV!dNK@;1iXa*s_i0l3BX?yk-jsZ0X|wjdSDC$>HKf!?jOu?>uhnzGf>%mZbv3BgpP)ZDw#q3f`D)D(iAax$LLW zJVFYcdxfg6tSZTp9gmtB7XFfuTi==cn zNSC01Akv@+hyoi>>5vqIl8_P!0TC&Y5>z@>8UzFh>GI6Ad7kfme&2Y{d%nNU7{4*j ze;eI<-RoX4*PL@**EPeF?+v`XBuFF5rDMS0(HLw|Tr(xO>y{rC_MDO&ljV@$unEad zLs_Z)%?XjDJ|A*}t(=j#p+rq@Tl|`2z0}RFki;nGcOD0;}OgE~JtL{Df{I zcqs`!_~){kr;<_lyvsBS-u*LaIKnwD%O+@=%4c=2lNBB%q#ocpA9yO)eCXTdtHCw1 zMwS$QB^DwV`lA9Z5NmN{v*|+D&@m3_2yTwm5DSO14^i9>0P`OwHS)$#GSx-; z3p-1bIZr-{^E{*6TgM@D=G#nl!fZXq<|)AmgEAu%2|PT0)0AAB2nUwlCGMIP?$fKB z13F&WQq&aJ8vM?U-~Y6EN5?CJk-c>+aXqCwR>$xrRC4&TyZC3nP}eX;`o6d#<9=6- z$Mz??w>kC7c!LDA_en7Jv-yw2=5D2Wt<82fN3kXQ;_C1H4o6qC0X_(2qW=uB@&f!J zLxtyqGh6cmXXu&w;czZxGCt>-g6crMw^lnsZ+U&&lr|GSVGQurYI8o0c=%D0FJgJ2-=toV^&#&Svj(lk1M0FfD&l zQEI^S9i(<$rS~_j-?_ia@qIa-xZfxe*kVDD7Vk6H>+}-RrcG*Jv6Va({OqBdy6m){(o@BHtKPxNGTVXA@cvozJc1ruk@91g zx%`N3@}Y%+ivqV#WWH!&_yB5pDlRmQCg5~O)5P`*LkiK*#5{L*Hw!t9-{XtMYzZ~X zeeX&m79i6o_0wZ{#E$)lkx8TWOH&SpvBYia{7gM11E1)4_02N4gP}2+aWj)YBiJd2 z^H6#_hcLz9BVb8%RP3_6!wG6jZ680uws+4!&3aj3GDQ`+koGb=+uYRhSR4@#m59@0F_3Ba?qhNFvXxi1?J5!PYlE!E zuY7_nmQx)KFLI6Y*y(%Hd8W1d%jc!n^F=Du2CrTMb>F=wSy9_QDBnzvlXm{1p(Vjb z^7C^WBarlSyPmR3i@BI8{oTmB@zIASzY6l)#I6(?^8KoxKAGT*Tt{33=*de1Vi8n&S9;!VE5$k(}|ug_i`Tv0 z#KNye{_JmfvTR+0B*`h$UsPsCbFxBQ*w-4587VFF8yak~d4JA&L=Bn7-lH4@Y#v?L z=DD2yhjjh9}|hT zXM-&Aq`l!x{{#-8*P}aD$6$;)dt%KXb}7r<>lLc4Brv_6_tuc2A97l@-WCF5i8yHu z+@4&y_ddey=E5hwH_l)Cerad>&RV7N%0P2u24(%g$ELOJez8t{3&MmWd$yd(=$bkf zXc_9tq2Ac6%*#V#lnl7ICERJPX9Fc&+M?YBp6AsWT#fabrP+a7woW5Aa`HphZiO1w zaMudGFp19Wo*~DbeYOe%l3bNT*tT}D8Yc(fkQG{&opRGLx)h2~A&Kk8y}0AGt2eIh z_)(n3G#C0S*;$dMFLI|smuY@C8+*+5*KAZTJ^`1v^VgLZ z7NE2FwjjM*PbpH#c)Ub`m)KwwI30nJl@@1*1T~+{I-WCF$ox|<6>QGqZBR=w14oul zcCo|p7mwtP@(eykY4nky*dDLH z(4R`vV(+Cr`|d|#-pQS{pNX9e9H-7|7O@MQHki%E%(aK0YuzE;gl8CSiqa>3%5)P~ zQAiLBA%S!fc_kvRY{I2gTcMyr?Y(nLQ08sOwWLh<&UltX0! zyr=tqh646tMNN4{>dLTSUbm^jB$A6dY~`*igHDqMKsK zyE=QMW3)teTc=Ym0Y8w7!Ehlm|E zoee#A)JS%u$WhS8@HMOX_6yS;eoox55n>Iw&~@6dWFaaGUU$GE2#$oj!z0g?ZRDyg zeG@N&qn&N4xCeggy})`AalV%pxeqJ?tJyL7zE5()&KU_Cbllqht=*`m0%%+gWqbu}H%X;%W#>3PZK)JIQ5f6Uz{Dyl#i(?d($ODw4tG0XyPx}vD+taq4-@Fa3Enr5rXC@yn^fH!jns0UBtC3am=M8_d znwy#md#^jaOElb73mN*O(W^nw3j`)z+9$8S&S$7!DHuc`HYLuD3p z4{xGUU+x_W<5}%#`&BxJS`heI5q2eao?tunB25SuUzh9zDQ*{uj#6Yzac_!2vBrp~ zV>|o8>&zP(33AKNa)0)h^{6pLe_i=_?VT>*alPj(cQ3TUn3YGoDpG$8p&(;M_eRf~ z21~}?&s%YH;a`214F!h2s%x-JeBfNu&ZgtK=Kc;*P2NrNl~)PH)hs!=;Ei8c?sscP zQK6%r| z|LyRSxi38cFAD@(*Rlw>@GS8H56^|Khv`vV+|A0e0%4inOL8IuukwkzoheLh=79$Bxgfb_1O zO{RRI24A&MhKLsx+S~sm{oFwy?IQvg8KW7~4rz>}{mhi&)#$nKcF0eyAK{@k;#$|- z&hl34iy9i-Fc_F@^qVML%7t8P4R{8F_MFf1stib*r-%=K4&_=UJCeFNJS(_^62Wk7 zHB`N_zu7D^G!-4%4_A@S2^J#tIX;-C5#V|t+@*J{?Rb{u<@d((?Z^E-QCFi|h$@8c z=}YZHex@u!Mmbc@IJF=ZQ5S{t3sdo4_AGY|1MH78P~u#r)M1-M9w9eNO0r}9AZlz25-@TbQE@VcKvg2WXYUG4%UX}hnU*}RFizr1 zv!bas&Nt#+QWobJ2fjqH_ZFME_*;Wsb8+1JSnZQEO9U%CxGPozx18-_VJ(4wAo}8gOI;}KMui%(r>yNv>(bZdSWx8c z4TVs;I_;Cyb4SA+3P(S&O93cj5k|Nw^~hb=NBFqPu>H^LE2*%YO&irX{Pueh|k~d%^1D*+p)A9!Z zJ#Zw*(v<9p*V;_y2cv*St;TRF!VgMy8#w5=>@^3Q?zvh9Jao^{jJ%qIYg|3p&+6YJ z*wF%Lfxt$|bMB0nKW^#q8j%nEFE&Gs;aYdW+!C&6PIQFKaN&$m>ev-9gc^f%n)6In zH!Zv}EZZ*B%19JDTDC2)Y?WME&)o3GLu#8e_n?CL2mUaKV}bcmJEKwhK_g!82?>S z?$zS~>3D!=uvRF7iX{>*HFJ6SpP-_#CJ=|hFr& zrVQkZ?VFrFkEDwCrm6xkb@euIX)Y7kRq%42c~pCmE~@TtS*2J13n1zOgSG()ye?qH{@wb{__C z#Z@aDe^Sr#*SEJKxL+$h@-xl=?(4)$5aM||kF%)ESc-!xk>3Fb*k`EqKx)B2Fp_80Ee*DJD?h3ov3UOK6A~ldj)c+Lc^a} z@D+{WdI>6gOdjF@v!{MU zWz3G$Vu>!Td#(`dbVvjcd(DEtxO;7Ai3+lB`+f_NjmJf3K`fGfM1r9DRrUH1$IbIb zs4>K1sCh~xj_}u;W?)W6ek&}Jv^>H>AQjHPnM(jgHDGJO_}S!(4d0hd!#mAq?u3k} zsqo;7i!|>(6~loOK+l2=kM4om0>$c?%s*&@(4+YXxu}ot#e+1H!DO4Ug|GAKQJB1O z`7Zg3?K8`0avcy{K0~g7uU}nlAu+onA2gVUJ)$3B@1?%LCEoH?w1r7jf!fJ!&*h@X zD1-x5ao!kOy0G_^!L2`nr@sJ9*7GxbN8}jK1i(ez6A0=)JAEzxd~;_i(Zc0E%J;DT z=EBCckS&HGqmQ;njOl+Jw$V@PASiG?w7&k;Re~N61*K;o@ScT#bKskD!NuXYG1tQh zC_&JVRawkkCm4Ou1qLo80@}Lv;%NYy+b6J`v4URsC8#dQyj}|+9YljV%bm^4@Qi?& z!$=%c!=jVsFZ~B`Xa;M1-%X@I#|PtRfvWkC5nWXJ6T^`Ch;q84&9Vf9uS5&mAPiHq zOaK%^t2YXOROQD`J48k?w}eQ{V_#fR1Ao$F6ezakLyiEBj(P+zQ9Fe~pnv_Spsb>Y zW@H&pf$yui>V-)1P>yEIxZ!Nl7_&}D9dJXP6pFynl=#(^qVndOTR0@r&IRG)n#!`L z<_$SwiA;9w5(^86u`K&A<_m(S=pwR2J&&L=YFY!9&!u~l!uSsqM}gwwd1ev_inM=o zQl_6eB2Ee^+hN~w3$y~Qn@%1}9mc(7XloI_E7<`UMS0+%xm#a4|@6jTWUnAAqQ4ejiw@V6rJ3h-yG<`WC^#~dvYhVer%@dYIAn=t{{96*%XMPoEQ&%lgn*ipXcPC>S1|-E z5g_!qQ2?YnTKQWv&b@8;h1Um_u9k4l3s~R-lBpXN$$={H?VYKB0|Fo=0G#_NeX|ZU zPzK?EYfWKuMKlC?kW!)8=DhBYKWQ-9lN*?@So}8@Kwsn#Dm#Ap>luJdph5v!J9TXt zoN%-qe)pyy;8L`QV0_*@HwKtjM(BqeG{^V|IA9rjh8Z26ys&ee)K=(m(|Hju<{h~k z$Q~1g0PpH+b=^}TdopKMv`0y-4`w>?*Q4Elq5{?VY%&?vh9Y#tETdrC& zh>ALD2DW=di;zwMTq9JKtpJBc@Op&f2!%f&*0HN+pR_}H9Rx|v1H8(^Jr7(tkyYTQ zJo6LR)W&)vq~JZ)eg0KxG2J`>J1O z7mjI;0vr!Ktf6nx%fMvHzcOtC{)2yH*e|sE@H2r)mGFudtG_{tWIRSQ1+U?*Fy7c+ zwSRX~kLmH(zp15D&)J1Y-2(t{2NMFGnpjYJkw&k%@f8olj$pMvSevZ}EvS=5faoKD zFkty8-B~{)f%BFU$S64H_b$bGQ@hN*ZV`;tJD;%aC=!1A2eh$wOR17Kr4M)V@6=`#}G20+3Awy2?j z6s*6^SPAQ{Guaz^1ZP4rGeO`CG3=11IO50Qm9&C1tKgE_0ci+i#4){1=S9W+cEnK8 zs3Y>v2Dv$Ur`Hc$zD}@CVe7kscae2sg9Q;^Q2{CnC5#a9QMf?Slh$PsxO<)B1bqH! z({TzpvH>vd1?#4O*vR+_$^7!vaDe^b+N-W&#dsJ|@=L5?suyk80q`N~MKU6e1z6&P zkJ9>U3TdyZ1k+q_amueVEwv+!c;C?$fu+MAfz#-r_;4>IKxuryB1=tpdSS_VvRv`ZaQud6U6}dMR!01;}ZmabSy7{ zPk&_`ggt*mN2Odv9uWRDNRKCk(zm1aL5k8S0}li*Z5P6H4bB=08$9C3!$swSu7|(LSeuShXc!0u!8d zhlAn1mLP)W!j~W>EG^rr&i}B;Nlq|wm4!dVQt_Rj^g8l0YZDC4<00|dp_zrPh* ztE8?za>0UO|0{Wjwgv-42wOMwX2@_zPs8Gm{JvukfdEk;_PVDCz)wmh90LleP*#Xg zw03tzqgfV3M~PzaKf(j|GdEyDfGB`;cTNaKqR(T9VACuqK!96+_B>|SizXIT?BFj2 zy@KLyc@lD0`}`O5oa8kFGa*@MU20nI=(7?Zw!9ihc9)T*nMAu7O{%xv;#tb1+IFcAI{W5nY{-M;q4B zj1!#PPL?2`%=U-)0X^1$Y#M>z_(or$`M;Sva-Q?Rd8E1L3sCr|X9zu{kN|K@*_oI+ z=o1#<2aYbS6xpA$9KVP1i%@ z3)N{wR=Y-+LXCmQx}X+CD@)Qdm^Fe-$$2mW_xQC}5rbwa5L`#T7Xe!E@27Dgt8nee z6QGPp3?oR&LEQJcL$B0=$r|uX=zjfv6I9nw`imS0c?lT*9}Pm#G5iNe=t1(~KUuzbQj6X^_jr9M~KNKqRA zOKk}xzg_EFjPP zkO;<9UV#2fyJ2!uXyG zlmvR@k?FkrS0z`Y9w{pCnF0Zr@C4NHSx7_7T@Qdz8}>XofH?a%!~4-|ANq_Ih#bNS zbvbn!gM~LhMMXsho&c0(!Vozy-T@v^Wuf~z&ekrtB9VF3upWO5{Xya4|K1}B>7mG>x{wMBb)(qny@wq4DzS`aXzd^38=H!jpetBT;51U>8%6H{ zY3(2xU|ue(xxVg?gn(~w2~`1%N(5DjPe$HX?#^ZnI!6CRWr$XS8RoHC;X-S19!B(P z>eVK&p&#+*zrF1~YKf|(O(1&Xz$qs0)tQ)2`96N_APVpaWyKMde5fCrE5txC!=*iw z1C1_Ocl4$b8xgcHj;aW$Z6iPrGfr|Mhd{Ge2f5Y}B?x**o(GYOB_0?oJB1n)4>sNC zRH7VQ24OAcqKUuA>z#1qgnhXzsE4{}4c(16eg_Wr2bw55D8hIbYTVGV70qcO~bTX90 zs_8cYSB0(_77d+mHQcc*hysG-*Urrjxr0qN4llbYi9K&w(ZMZ5aRG!Qaq&DChn*AU zxbQWqP|%6wQ0}hHO=&yRLCKc#S~wQnR@Ds6=L-K$3zFa?+o@w4h2=}ogYCTIuN4PZ z{HlkY?-k1013fEhKM@o-i~^wK;n(hB$i=m+-vnUtnsUG>ld3eA>Vpwvuh!719ZPrB^l z2lOUJlB4kJ^PiZlk)c{)g@IzXdnyM()NvHY7@45^cK%mz;tg>XL0QFVn@=dAX=rA#CQc2ltHMAUZV8zNMi){lT4?}|DO2QOie~!&)!KgTu86pC7 zUoW_BFyOGi#D^*%9q3G93a-CfpETbAM!k+3qK?8zdm!kL;HSaJ9b%6>$Kvl__|J@> z;S0?(G_sHk;LG=w#*(;^l7^QnY)|JI5xb7Gm*o(pqE{nX0svKF>h=3IXh}$e`>?Ww z+bIQYN7O+~<%C}jTVEv=IPo?|a*>XcWJ>*z{a{HJ;a70EpWc+H!X6BV4$HvMZ{6{n z0sF`}DhPc{y@>xE22Az@xnWFJbsZ}H-bYo|{y4At8`q};;J^DwvQeCz8IVXPi!55d4&8+I3?n` zc2IZ*EA{`QR~U_ljseCM0@Rp7fW_`O<#iAZwH;m=uzvUiu2O9`jp+aKSgN4+W65U9 z2(Ww&=~4d7tU~Hds+UFq;8hKm!(RY-=eK*a8 zY+&QlBzI7XC;B;j4)T{oiDgC-F?gqzi(*I6Hvi`(hZDM`(1_hY5C4DN`v2`{Wm01h zq<(isMMeOQicdzAw2N?i6S>v*rUtxD&bZeiUP$C0W_cEQVcgBP;14*M;a*B~_9W~A zANFX6%`zz0fCLYo0grgfi3f|1`!X~Nv{ST7{(TaNWGPt|@Q!dV^9gYr zA<1VrX`+=X?Tj>E5TVg~5uw>`K?0Ow>vAX=8@i;@gw$$SRpMVNmMut|rKZsyWdrex z;Ilvb!&eZ?+2QID*2dCR)E9%ZHN+MR1l%$i3%|WJT+@#@Zdm13e^+=D9|>W1Bzd-! z3Wv_0=?C|5fGUY00Iml&d3OsVG7Y=1J*S$V7@^PgxFvKLXQ+xTx$*7RG`Rdikku8kX?r9LR-7OH z?cprqPy@gW>2ZHXkRV9R$gxo|Xk*Px9qcwdmsVgS!!ZWMMG|kXm!jlc18xZgh7J-2 zh|XLEe$_f_3(}=Z1!^-2AP~7S|2u2#?Zx5seo7t_%V&#&ud}zl+^(^P@VNOewl4`4 zZ1Ory3OYoauR@0{hG+(zUeWfOSr-?;%fX!O;ks0kiE^BGRy$QLLLBxPWD9Q5U~*R= zJ4f&l-Fjm{#^Nd5C(?ZPL(F$XNihn;vJjxtpnb?!+fK5FQZqi_xJ+eyOydUoawz~n z{3uSVMiGVW#=1BF-9HigZ7SS?YRV~t-Q4`UVRC*D-cMWn*-rG`hgx@~@B81>tnqf& z`uQPo&XzC7j$qB|QZ1UlA0gP3!9Q*kLyBa@$NC{S_>8E`$g8EfOJP(EXmSdcha)VS ze=H!_S+P-V8k$PI<IqxztzboU*o#Hk4y0bh7-x*yRvyBj72*g=us2vr8q&lbf0J`cnEuz~hG zN)sFkutclFu?Cx~9|d{4#Oz%mWW7xS4C?v5`#~}7*ZWW%>SCSev$^Iy501=hT&+}E z(@zvPg&9@i-D6`pV+F_sG?F+JKE|J=$UPYo63;Znt;BRjz<``gOGqzsx6pg9_9xJ} zYuk%9e$U%}+o*hXi>`Wc*s;)~a7}XPP5Y16ziMS(R*Z*Tg&e7q#xjJT1i-;CHnGo2 zsK5Tqxo>?NxV|!nkC!))X*>W6Q&v5Ef|c>`aaCEIy|Zb%a~E!=vcq4N4~}!xDtj%{ zR^qar7r||9Eu3$F>Rr<}pv0MRy%p5zB>L*~`l89T7$vURcCEi!sAh&1C@$?J_`|P) zaN{kkD{{2daLA~{aK5(`y88Y!8!P%iln+IM$+xojd^vgGA}V3kmYpmbe!v)DPO5`h z3wybzE(}*oJi|Uc ztsS1{d-T@?`YS@<@KirXVTyI4KW?rx7cRXdsz=B4J7N4WG=_*C? zefY^7{3N61UX%q6dY$cyvRl2bvjR~ zf+R;CWBA^xxbd_;#_({L^ubvEfOnBnnLmOZOJW$y&6in%G5)y9i7=Kw+4%0L$(nm~ zr9h5q>Fdb82oFfLv=(X|y8H0pY02=k#TMT*^t4Vkc-r@}Ta)m#P4u({AOns0A0e8- zCzy@$o-bBGq0UM^%e`Tk>i@h9D`PB>Xj%oZo<68^7m$m<8jN}@xiuL#2D|d)pY49g zuzz(rb^6k^n5gaLv)HkVmaT;$-&Pv>fku+*2wGPrirHwDNCvn}_P1ycAAHXrR~#l_ z?$FaW=!-erFyvQ^hwo^};(Snq5!cKgGr^9IB{{UGd^LeK1HB&;6TDw+;0-FWXxReT zG!E6fTISd#@c&x-zc+5ur@Y2P+3P{fDqC{xcJ0m;(Vs70pT*RC5@>q>>dSA(W{ga( z21-91YF0yYdkp4Qs&DWTvNX}M9fNC#E%x!@+JdyvZ(m`e8uZ>!Y9u)jBevZX(EHBt!uz^z4ZXv@Oauek&;_}IsCznR0!lh9lzk0@ zhNI9gg3qWeQMPitL>Ks@BH->*V1Q*kER}-PhVKTJE|5KB-xO%JoaF0z1z@yU<+jD$=sb}F) zhj3c?HUdz$;jy$ZDPrd4yy){fE_N1rF%tMNZvUy}KhQGtVb6B)6dN=HgFht=eMU{j zv!v~EHMiwE%8%w->^XoJ!0jMlmdyzd0QT!CujOzH+VbJMKZ_bqn;CpB+f#$z(*ONi zR`~7lPi@Vqb^Oh=r!Z^z7Lk7xlb>T7UQMcNmR>JD54GJ>WSWolg!{)>teLvna${Tm z4o8(odk1|}L>)kCWUdRkiDReuJO>Vh&nI__)zZ{qxVh|y60xoI1i!bz&Fix%Crxr$rk>)X@2ELA8A0bEKpKJc>xX0kutQEN8?PtE& z%^RVgNoH*4`x^_;9FbtLmo_hm9cIfUSaePH!pRzJu;3CbOHZMu%iwkMrb;$^yIKot zST+I>T2nY|l&Zd4Cbk*7 z)O`szFCTQ_C3N9Kr9hOUC44xduy`L$a)cx--WI+wRn$IN+ax3UM^(!Zc(Wioe%jU> z&_%*#aZv*FybM+NQdqvoU27vuv z?Z%j1>*VAt>>@Exk=-(+)9|J~1ugMkQq5*UZ+r+1iof{>6|P!`iW#j-Sd&wUJTijR z3lCYKA<7Y*cU1gu9} zy9H4N*bkn6?}xwl5^ONT`%0c+Xk_k!AJEHE+;GRHCpqQG0EvL7XkFhEysWPT?@M4rtm-Mq~X6>yaFwG9Bwyjj)MW&tdxes zV+`b^i23ezhSx(`LH*q(dh;zHk6qY>+Efp-`^O{e3q<_96&GwJubF zA_096lc97FQWLoP>g{xxU!}8;^2}l&pU>6))Q2dlDK3P7CJ-b0rXKk26EMTV(vGv5T<|JfM`II*A$a~h7H+X?B?=7G4IJIU|NBapM4?JJ1emo=Z=F^ zpw$4p?+0K<4VPKUldqhSJNbL-3P9y0%!@`K`WXWmBv%vLWRLnz6$ZKugYVB)@_$LB z$^16PtOdW;1|J<}Y#I5asb%hGDPZa-jzNRBgHX_Pbv7%J2rB=$d41F{?^?N@c|!M6 zRmY!MZNIQiaTGdy;C=Ir%;qx$il>Prm+D?kDrK+yL`*u-@er1JsBc6)3`!{vSHpeC z$dIbkW&^u4Dcm%P6`yOD{H-ZE6|bL8_04M{GNWQ%8ACq8Tm5cDMP^%f05n(YLAa7m zOJ;Ai=>1We)n8YAe?4hGDKG^Bf)Dl9BLu(TL*WUzf(3Iys2JrzM7rv zNdRKDm*Z;|hE$|iVv3rm9W^V#0wp|M$^WjkvSA1d%uufLufRnM41|ZN^AA(B|M*|{ zfj$y{HRso86N}Ay%6dTdpMo1+3ZqLl32L?M3(?*o0$WpjeuIzxK%h)5z45j^5QaxU zJ?DC)>RDWhuKRWcPCNaz`xJ{=4-4K5i}O^B-qWufyzzn1I#a#8R|&JXzfnuP=smJi zkC^{URX?Qok{~M5Hz~c6BYk-Zmb8oy2*jORWo7;reO@tu$&%8{saSr)8DeRE2TtMj zPl1%?RQnLPoUW{$QBovj_LOkOw`LxC1)|s-Jlf*3nUAdo>{+bhq)9SDgs2$Rzm^sH zE;wGTUh8}2{$$0GOL)roUGn5&J~9^f(tWYpQ#Kj)@m%T9mogIYF|0Ke!{;j|q5`R2 zgnM1WOmSO?G1Wf0;yGv%9Nv=yx+_xqzr(m+QJpri3@Dn6)o6Nparf2t*Lv4Z>q;xu z$2)J?ar`O_-?d6%*coW9hiXCOeUQ9cf>m>ugQb=PKbX$bWH5`@LyGeOMA&r=Qk)J& zAvwIi({^uFB!;Ny-3k|BW*Phmcs1?OTLziSgQj-R1J7Pjf6xz+AWf?F>Il@i%1C=b zL=}^y*x?MJ=-3B_{TuNagH1oywqS>5rgGN4c=cccBsLMy)4lP%pFQ^6~krW|7$BBe(kiea6i7)zoqYa|k%N#mf)<$L5h z`#NEdhZ|lYWF`O8xwRoJcm*iW>U;1C#^@DZRsD8Rhga~q#ds0a|0{1Sl=U}-Jedy{ zysfJpR{ssMZ9W5TZM+l5qa)29x4Fo4afhyqx0{V@_uYVOrPdwKIsGjPD*{V(8%Ngd z))j_^H8qTI*i+`R1mDesLLWArV6Idb4Jom((L!i`3}lb@;!WMvB+FtgA{%rs5q(aH zOR#YD`am;2MqntcC#$A#wuD>e*j#YTimI=)w8G$`IOdq3-o!Av+fp71sL-WApFYENU~N! zQV7~CuHQ}|GiV*)*|kDql8Mu$$BNVwNwZA2#-ngq?#&Aq-nsZP!K2sExY6|Hmg(ie z(q_!ZLIF1cZ%bUOw@~S3aP|8xZH`UTkM$rLm&eRadg7BT4<*U8{XeCW5LiqZ7i&LU z$){p3oQnbzB7qr3{<$p98u$ZwBTpr)r;Lrg{l%3)yU0&d0~LQ`XI4b)s;1RaD7<`lC3Alvg zLHdG}kg+)5Ona;J3d=PTrB(*7(Eu-A`REXdeHV(Y1PTtxQ)h&r07d8z-PL4#>885H zO`2J?p`X?drA`-4^t`8l=vI9%TlxOJ#lY=Zwwo z*u*E#^Ha};NX!>0MBrrBN$CYkeWVxL9KCP--kX&JXCdj;C_lJ+NjeZFAord5R`2@Hwi8^)N*zkSa$uzjz)CrkebXw(Kg?1)q(9D8h#*3R0BeD3;U8vZHs>dk`A6HC* zTxz&mKu%gg`4HE>B*pSMuG)%UC<4+X))?oKINER$uQ8Ov(I9Rfvl?LTm8F;#wjw%Yql-!1To=x}#4OC+ypj`eq zFL<)81SM^0ri{xU&YKK!;|q0dkqK^FpZx0b&N)7+6w_Kr?)ylKK9G3lUZv-*ptV)1 zOKGR_DS^_EUHR7fQ^%9jsh`lu|IW#XA_zHSYK|!rw>a4%{&SRteOHdKF{xtYW;%x$XPR14)+wQG>Kiih!FKG-S&+N~%i|~t zRkbqgG=D4F>FS3EnJD%NiTg&Y7P{v#_6sy;Ju>AQ4(?HOh{1%#2iO{2&f<_y4-4s$ z*DHAaMf}tb@4IO=Pv){{m91@yLC3LU6QFG*vw!u^^~KrjU58b}hE0&Ejp8^N=fr9g zC-nyCR88%Jq$;$eQ$|nR)lxhFA>KsZ$$IMb3U?@f*CS%^agLv9Y0u3MDl)`SY$i7U zF;Cy+`qIiR!44jCQu6JC1d$Ys?A+U5Un=pye>Mt5hAsZy~N-5 zQc&+$sLoq}cUm3(1=w&gpV1=>A*80cOnR`QoLXPdt#~UEb}H^(+$)|B^;JF1TrMuQ zz|TDqa#`Nxrh|F;FS6J}Y9U_ZPkqQQ$67?Bw(#iD>a*M>>O90veQUJC-|5}&FA@{J znG9q%n_q`?sOx&>c1YBpFVmW$w0X-iDdsFmhm&qvnG(MU#C z`5S;AIA!mnO3{~CoE1{^a#tRQsbv}p%ZaL7(@r3~o}J{TPW}?Viq-HKZ*3Rt*oUOS zBYxnvoL$#7!Z5{>-dCdD^M#2g21nBTC4vrauGH-SBT z${15-J4x|(M&KYqGzXsyWedzufOIJHPxXVuxv#FZQu~FyMrO|Hk?Hd%+&i}~bABg! z>(+F}R)|)Uj4f$@VE(Dm>lsB%meqa>wcd%CfJld1Sx@co71BLIBGhBU+@qZ@j)#zELTV@E{Qd@lU|0~t$uc90-7wIX_l$5#ZP_4FQm$0R<$Z` zkgS{_0)DcmCf!-9hfmFN-=B%uesQ6i^VMO=0dJ_&wH065Xe6kmYY}oSY@emKWF_3) zCY>iHDdba+stlWH#12X4yxf%W&Xt^9hxQikO0>pOo=Y7V!)oNRl?{I>heVa}Vbwq0 zYB6`sXQ?wu`MxXu?$C25`IEGFhpSX8nL}%`O{8l~bm5`=4@JXHcD~6$qs(dJOIryE z=L_%l=BLj;@3{N=QG$#OvwO7lr=OsjGabKeILN%Nm=u%J$3sYdHI`NB!b<+&0I5g| z2`*c11b&Nw8E+dG-=CE#df(MfQLVnW3A^bxr0j1i5?%iafNXkgj3P-1d)Kf-`MFT0 z#&w#kQ6hN^+xv#$v*Tf9zWwipDORka#5@FQO6f;-hBxY=^gNYl$Dx2nlg4CE&~*)q zHIaZS??MLHO5R@=(mUcU7HSz1EEdk(QQCm@@m;X=7&e;Dp@i43?)y4;8jcFCL%Bz` z8hI~`=_n>msnmab2&JktB9z4dSV>J(YWTU(NYK#`KShXNYg8d+X+`^irgSXl*V{&R zlNt6a*0Nqq6dZHfL#(s@J%3E0hKRLP9;-V@`h|JTu|?J|&^Q&zbQN;9%gbUn`iT>@-WtQ6(6WJ4PoIv#p{?j#nE)r$`Xv z_C$ui7zRtoWlm?RTgWW*F%r1Yeac7|Mo!(XJTs|8$8InT&gB@?n^0yH7NB_8uHT+L zo%QxjoZhN_;4ZU6cuyWtm6Y?UYzDkO8 zocR#sRPdMKM#?;{(?Rw|_-LZ}(>BW~yk|4< zB`e%Y`8P@!W7xybRocA_ZODxQ^m`oWzJ>nLBA14I&+tpyYvsvXYTAFuFO6X>g7iEqQdL=={W`R-`3GsH1z4go2g+X4F{BQ#rvB=LzJ zN-)0^(yj-NG&Q_y?~Tr6H%FNMafwXTIp*B!iZV?4QPSHpp+c`bH)2;3yIzU*M%kV3 z+TWyMQl6vMHE+4+sL-G3x}6?l zv0yaw=TG&2@T(_8zzP%`z5?5npUe@&6CN^i(ewuTR{-+MD$F47cf8(FvEpAH3dG4F z*X-GA;RZT|D(g3-UBuO2gEu45CpV5;KhGJm)w!NNZA|6`XS*z|Lf-S92m_Hd;+P^h zJcFHhd6=C=WB4tKq|KJ3`D$ZJWs{iX`Yzcfzc|sW-d7f0?r?Twh1l`*R>H-%PR5H7 zdmm=+Wd@XUd-?4yH#hf4&OLv>>g?)mrb(9-MWL(Sb8o^xjd>m^s%_p1ThcEKiypq3QNKfT6P;0G;CxI45{WG6>_S^f44>yi>;fTIRiU zVD)bAR+(WFfO9CLSSx(HskJa_LpH2N-Y)sh^pmTAy-1C=XgQj$8bbB4k4rsp=r?m_ z@-B1r0`d!cs1@!ag6wjK*1(_s`y-?C-)P$$% z`|+UF1TAk?!;@O7Ax0h*U0x}0gSHev?8Ep)nD3lwu;No)TW6?(5!sca%XG&7& zFJ%pIcX$L9uYZt;<`RbQrk7K88lhS%1iq)Au#YGF%*6|eXjSGF`FSmr?NLbTbDlp{ zyR9P{2GprGxQ_bLr_rvzZ_oGqM-1s6iYfA}0WCM!cR+4oq9F;CoxT?Z`=H9BS| zuUuu*Yb>=cKo~V)^@f5Zk+B5D@p_bMhOEB)Wu7bHKci(c3ElJ%K-W6;kRcAxEc1HJpi1>t}>|7S1JjP~0RB9u zDd|@4%%s{iLaS)sqqnHZBK8L)dUn*?=}&L<{*vJMR}5oSk}DLV&+8cbe0zFQ~{?=%kQDN&t|nxRb})?1~KVaIVyFflm)USJO5ztjawx`UA8;~hY!|`(DX~ z=vo?(fsHq{UD$SEtKCcjOwj%^dDrTtHg%1r4?m(rMtpuZ`cA_U9Qtg1z=iTZ9l^pB zr|QR{vdvx5>BrVq;%9KKLo(XIYn$fY;pIlon=MDoU%VNx3Ri3Vbw{3btI-2ki@rQA zUqU^Sl2ogCwN#z@?&|*LmO3FOTX0TmLL;)6u`>D)R6BFu<(E-lc828Wss1UJcbj+u z(WO=KT}LlG=mq=KtAk-04Y?tolc`Mo4Kl@N=s|~xBOv6Of@HC>YAGgLO5oh|T`-#} zq=|YvB)Ul*p}2~Z=Us3aaZW57D`JX|<@^Z}QaIEVeFepw10bi#PNc8O9IH>@S~>fo z!j(i7CDu>070O$j#^ak)#JtD9O zZtmNI3W_dnIg0OI>^@aj1@EPQ^FMemFm!H54=WiMiagDYsgw6%3=KIc28reLfl;NW z@@s=e;O(oDcMV3fw-7gw@$I_aX)_ydyCa?aDsd%z`IJ~-w5$%3ehF{ZS5nfT=++C& zgQ({04M^^3g-u@7QXF!Etf;OF>D!){)2DTS~aN;bv^g%$6jPUpl)$s;hF%@&e)h zOI_WqM%y3HgXzO!;xZ?h^}9c&k*Be{MM>dm_ob4Xn7$TjSGIO#t(}Rhyt^x>zH(dr zn9Bt}tUE)${GZ*KW(~>4MpB~OVUm^LZ3S{>c42-RU-{>E9}sm~kXy8?IF`j(403Qg zD92PP6Q+|N|G*KNGz1xTYXVF0PQFNb{zoYv2WAU(6(X*6^M||8G!W=&DpoS_MqiN> z^m8-M*jN2}pDz8rx9WW!H;eK@CkFfz4uZu*ANop?sA%fLeeadBwnnPfFo34&7#&1V z@%obbVbj`}mAHyT(ca=`M{hN-{7fDxTz$6ATF+xf{Hojb1$mdz$_eS7P!^knoO9CF zxi>BA4j-c>A->e2G3-CjwfSS7vPZ zyayF4&7~dKdwt}8G190Gw!Sf13EzokR`k(*9cpla`LO>6?sLtU$j@md{^{ldKB}@ zr_a8JapF#-7Gr_ig7R}dK%u?tnt7@8jEp@xjN~6!$>r+@3;%8nf$5<$)qZ=gt>O|j|hi7>- zX8uM6S~9qn4_-g@#+DdYRfbhBeCV3%-R@_mFWf|E6v#d(-e7uf7uj&j2va?0SQy40 zLADUsm5Wc(~!s`A)2T&(pne34ed`Y%nvaJ}o(*Y(5zLKZ{9 z7Gzn9Gp>8YMH`Zz%Z4nSLmVzS-%4i6vcPxe?^zDlt@&*584GgS`_zqe--OLb&spi# z{)Fmd#Bky+W;RC;seKmJGZNz!NPcfeIqBdej%3dC=itG zUlt03Zp5|9%l3a`0gMIWS>KD^u!K9Lh_a26h3RLmQNgOLZ-W(;=?ftgyvS11wKp4Y z_)CrOeX!J{r^LSJJ_&l)+@z_K5Ib0c1=S|%>{{bb`PUeqNDL*-6 ze=|u`ZHS(;P*GU7B00!^8xXyMx*gR{0c*O`;{!k8%GdCr2mLBfg2jFF!>I^u0vGhk z(0~K?w3jzrulL?+khc7EJoD6{&^d?RN9K2DZ_F1r2YG-~`YBYjS{xni_GQN|7*F+& z4(wdR#>i9`VMBCYzM%3Qfh6hc%YK@YF!DyNifi#@=6KhnNn}&HRkExV1T8;kHRXwo zn?D2IWqZfa%^(D^K+u7IcWu3+e&~!cp(xR59nUq2YGRrLz)b&AOlu+axk~+mu;dkl zrj_+SK2IQ!K~(-+5?a!$FyHwyNk8|=r;NYf_Wyn0m6X6Tw+X$oH-M0gdt?%F=&@4Z zvdx__mG}a;c5mtauiQF2O7{0&!lIxM>Pv=W=Ojz*weHRSjBk!N;zV|3fDM%k+1P2)1)> z^v+K&2wNk6REl$>-|s;RXYQCy>eb0a?*nK9s}8zUq2()lbr|M?@bn<(|6=dW!>Rn* z|L+ndO2!Bk+dPFLA(HlHQ^*ie8Ioj5WFB@YGRsUdWge3umCQpSC393n<{@)zq~E!= zPoMkqy}$SKJD$Iu<9Lqa{-?uk@9VnOwbr?&bG^>@i5#rsbnxL}b>9p(;89ZE|1S!8 zY2@!aegvPa9`jte<4JJRzPWuRAqp*t31DB#_lsJ^7T(GIFN0SwBtX8);+@4?R0sEY z5No(-xglGB=b;X+n?S!E?tYpylKrE+03hYmM3RUIu=p*!!>T`jA$OFmdIE7Qp$Z5p zYi}$!`GQK~>62i@L=Mc}D=|2@5iBd(w>wA@X0(fzr8>}pDhlNR|zy;@ik}1?< z&)k(cj0)17HHyqhmCxc#2EfyYml|!vy)aW)ZTsk%Myi@11kB(?lkU$ld4X1(_{pV@ zXDTN92|Qv&D2?jD&9OV1=2tgFJtxlA{a(NG+xFVn_iCPxXUWh4=OTotxf3bZp9(;= zsWJCkY!&@2H2T5RMJ4p)Wv)3mJP~9EXn}zNw0xrK(82qf*R40mo_3<1udpg_K&l`m z*pOLq$GksHB6;>e!Hi$7>!7>nBh(GJ=zkg<33cm+M?E(r@WEiXXE$6BD(qcH;#s`H z5Vr6r-9DN09E9ksO5P$zA0q!{3nXOlZQPb*Lbh8%;Y(gZ~x1MS` zctbGte+OqQ(VIU9hBIe*LDm(3B|P-w2iG{+A8fT8s-Q;Us2wCg-UUirQ{csgULMGr zf5(5&ds_lUeqn0Fc>&<*P%!DeO^PS>Y+1(vxH?Q#J+4ri7R9E>uaH6& zr~yh+?D%$U6%wT>rTqLCU`aHPL4*ci80U*N&%0{D ztuJXIIOno9ky(e_Vd2{Bna`V#D732HOVh#fD zdtj!r+gL}TBcI)s=I?2EPHGP#>MIEtvf7qM$JS+h5Un)`YWb#&zmUVS&iwbZ`6+7I zA1_T^79S6=BhPmTdBQ?&!Mn*iG~7s_Vbhc}S|DmND{8~7LCBC!9@u(ch*c~$f!tVu zqJ!8Q!!UB#cI#!v%u9A(G!2NqMnDwDOAv>tgWc-E{*}s=;L8qQPUK&3 z;<=Q6DQZ16qB7BKGFuGf;%5u_Wx`2R#GI;)!+gy zl+IWA%MYf{LV!Ws!qKzd3<9yl@n^6C;qzFnI~*b!{MfokC5Uhl_JVxNa_WldQP@`? ziHV`^gVYBH8@_>h^{JzeW4uB-41xnTuEt{-FzWu?mORyX=W>u4s|Av;jo(3CZn+a7 zd=g(w8{TA ziJ|b#T10u=1pkwOCw;nqtg^A0HXrc^ruio%N3=RYlQOZ&j=WPQKws`@b?;xyxNJVG z_nBvjGz)OS!uEf_&`TExbcMGdyV?VUGTPA1g}?qFGgUu@IPr!X502WP7%(_r(5vgj zYeBfic=GBHP!_>C!pFhWCu{!hA^t_&{fg<~V9~cZ~$D{FN_Xg3=y7h>;m)o17{odN2C?V9zL)3g+QHy0ga1N!OR0-`l8*j zoWHW$s98kgv1%L8J~SvMYn4PrDjokC%4}}9S`_S%QQ$EmByQ%%JPX;NMj{9rRBdop z#FkozGFdd7!h&ORxETQ=CkWbl_ z{Co_>tSiComCX_+Xxn#O2&gcmbrg)-vMO+E>~seOJbjZG z#1%_)kB9SC;JFf56F$az+RgZGSeANU*d1l^2~&sBbZbb-d9Fo}G<>o#CU+(3mj{E1 zii3Hv5|(*@nUY;y<9)#OAHCprHWkVB;9|8vM@!2@yve9WYGdKFXGORX_KqC~HdAEX z^8waMYTx9n<~v%$_f$(SB8(v1_C`=ix*h#&O5hP09D#0PIrZ=_{vrgYrQEP`riV)F zxblqzROX;Vp^$XBt%w6T%E)LVSK$eYAc-@E&-P!wRpX+P8uL+oST8K@2x7Q*WXTo$$yYnMipU-Rw z$D42aUNMLcJC}Xk=+RP*_32+8Gr1*)wF=j)J*$s?Z??b5Oq9Gm+7jFS^{J*+P$$mv zO&C=ot3?zpC8vGa|3K3BrNdMUyY8e#-k#il$Zh-ygS$X_7{*}$(bXcQpRQs=iZtIB z2p_||boylC8$EETxxndl^#EGqkIR8s%pO=L-!cnPvZyA}Va4NenS#WIzyTmG+r*a{ z9mDS&u<0~`N))U@2ND-u9&3+<3KL5qK=Wv074J0Ovqs6>DBw{ON4xOTe!JIJG$M6dk^usmrij zv=CnMVS(CT_ODt0?UI5z4tsg@QtHqGSm}F9OQr+bd`5;IF&LBVuH^<%f_NhS($cqm z?Ret3!c!A`>#ml%bMjr~TrxqeG-MU}+62dnSi088zS#~l;&vyt7+i(xj{H*?{MHh!X1mdAX#Q^Wnv2^3$hnkoIPw7XFy zKH+KCpzq;BBYhOim&NE@BND@gF&4&@VwjS$C?m8wV>H6{aWpNoDk^Z4o}ddWIn~W_ zAlh4ak=LF^C5$=EG0F(LO{-I$snlFUlHTZ<6<^ir^zgn~D~jB%?_E+?91&YX+t?@$}%e(>R0IjRiX1k4w1Hc1eCL!Y!)U0lPRg z)Jms`7unRH63x!8x!0K71CyWTH!}?nu7weA26akApPZz4NY*Q`_u)DnIkv7kirG-> zaaL~x`GM9dh!P!Au~Yfr$UwwNP___P)Dplu;v(;SimTg3QLnl;@cU~ZbH8+kiRx(~~C0zf+=BGC-ke>k5 zq`vL`rk*1+;{KjLdmvW!fSH-W;`D83+vy(QYWRPc{8UP9Wo)(LZEU}Y|IV`(Di;&n zXv4GAZXP8upd@)fd!V@h^Lzh1D;g>)0M?llF>>GX0nc-NyiLTFD7uBgiQ;^bD}>f+ zVE1x5;TO5OXz9*eQ!7?d;|aLV@T4w~;~u99^Dw(;NjW}(CPq#zKWd{{3D2R0r!#=L zkCkToywVcIa^b?g`(xVLLb&8%*~SnPU>*Ynyok(~CN<2s9xZsLDR!4*ow=&UU-aHC z`tI>owx7N2&)_2xvX0~T(h zy8`3vd*8UxQbbWLWy-Ur<05p=iBvIqHjD-H%coHHniFrRCw2tG={{#ZQTW*@+NQ>< zlXW9(;Zd`UZz2oQl}-tai2wfDrb?K19g&@fvo8Hlkg%L@Qff3Qe}lE^H`liySc|m5 z498j_dAlBYh`7ZrlF3CFm6y}ioUTZ{IjnbF?wN273K0?C`>^C3rnSi8k-$+hJDkB) z-IFEZM!f^i&+cn(KCBhi?r((~4OaWGCL33vqow%xu zW7QIxLk{~p!|dRLLJ$J#n~E$MzedjN(u`5hn9?EG6gBY{?qqATCn}X3VpqwvW~8_X z$f)KA2vU}Ck%v>nuRRV7u0EP1NhJuWppoQ|y|zPEkA6>P}=`W*c;+%gU8hon9-ya>b#vteWZB)pBiHnnylMYGIx;n5yPRQ5x<~ zmbv-7BAPPWCD`);Nq%9)9dM#2;wDAgqse|t1Z*(Oci}ze*CQA3Izj^n{M=bc zr-+BUcZ$DVVNW?J^z%}BcIIrYwSj$VYeJY&>TgkkISigb^5C`{FL-in%iFL?KW;$a zc@^<6BU_cg!;U>^XUVw`D08;_?k4OS9{KGbN_PQGzj#Ga+^PBS55GDGFbBg}^*h^! zd_>pn@w@V|EqYaJUHtI|P}Lj;Dolpz0tUYzs(@?%QzdIj%ib7U@^9eBsJsP-b|s8L zIBwOpjzgbSO0TEz&IDufazc%;Kf~O5vo45K6=lwiB=!8zpI9@AG3u3^Sni>BkLSl( zKH+qx0no|cp?&E<2JeOAWQD543nin>;S=aEmrop%y)bYXHsS*o@!M1sJQZdMbMXePOg_mKF+@YMUd4mc)j$Y_$PyauYf=OM7@b&k@qI z=mOqqa}YqtOx$uBVo`1w9L|aIQxScE^QQR@$ewk+K>MuUag|I-dyzI#tZg0)So5|t z)Gt8`pRa34fOSGAeWSUDvH6a797MRFddY9+`Mf*3D9k87Ww1}qN@rLvw^3BR6lo`! zz89Fxl%#L9NW^hfohS@tH26tI#+xA6Jh;8_=H!B=)R6>!8A@V9JR<92Rn^=$j}ky! zk>Rj^%0ghD54H<(SqUk1iva63zs(ykHs|oX<~!Z(r!k$U)2_4AT}^Y)9tfIcPI>Fc zIPxq|>3J<{Q^EB1LmqsZJH&-r7EI3*h<7l^ZSz0e@p$7BN(Y{*qUFQ|0i_GgqEso` zFCY2&!d%YR9i1|N8_TlyNmPDSgot$lCe)=c(KJMQh?*Z%ok6`u8jC4EB9=XRUloU>hpU}$&jcA)5LC>c*hGQ0{evj{0QD$c* zc1`9Ar#sQ7cTHYXSi{rZocT%DV;@VQ$d7Zzm}uqLZ7TSjZW8sDX-|^4PV>c>ok+Hp zkG0;!DqmyLw2j}>_cYzWhf<20>Gx@lu48Emrv`S#JH*LFNq#mrB#7^Kc@c5FR~|5D z-KPJ%puW;1I@uq3Px(rIq*m;ljzE=+fLl_OHe=hU8EqRbhf_dtBk95QY`OfjkC4Za zp6kesnaPWGYV@|fDf8tg>7^B^OpEb>);0xs5{*TT-DFlJBKpkSY^LKGqk6IyZRaR? zCN$If^$oZtnH&w~`Wp*2J*Cs-TFeF5g1c^zgY9cMgI_M_>#cA>zI_=CXBL-8VeX3n$6=K>_#7-5-*{9%U$nJiK|^a7;~!Serqe7PW4LI2hNgn zALyC$Z6$>=cGO(*u^@5-_ zH7ss)#Vss?m2JN1kjqC^T}S()S7nJ1_@&W+Zv~~`A~UzEsdkxVm(zR?0VX;>+^)pe zyT6wq=su;cR!!IqY*CoKe%b-z1@G`4G&cOZ7>8HLh~DvK-$-n|QYnw?ne8Jw4|BDN zU3=Vt-TZRao1)F&6tEwB>9iRHY5$Ozo9bM{Jg;GKL?wdlhG3n(CB`$8u6Fdij$v6f z#o*9+t9*TgxlN?8&icLxU(>vA^uzKs2tJbK{6)KCdWnS@^OK(dX{26ysW?zSW2 zRt)S@btOg(Z_^S;pnU;8?sH4OGf({zNW?pX>-O!qR9ZW-El$PYj_HeB?dSZH6PFtc6bCks0noj%I`(u1c*RX{vOxiu!p?mNN>&G%*Wty*7E&FB&m{ z*ue)bcq>`!1tGTGjfWH<3%9OeLyum70t%eHT2TNr(-SQs&OE*`;Kb-+oeZO^I^XTH zQz{Z&Ac`cBOm4lUrQEe)7h~Ngfty6ZDW!EvMaN1J&{T+*ACO8@iG~%v=`dS% zw}_#De!nz3|ba!Eix;~WulF;#T<_(hz1Ja+Hc)6kzWXO zlYV#P^|beS{7P6iKIf2Vxys!%hB3e6uVCkx!rpAyV{L&S;fx9?I~ku+T1`e>KPI=( z$Q7Y}<1B7nfLl$6;$DW|`N5I+p?1HF&RB+Ed{k#BY(g>LwB9K@%`ev9H(zwuN=55& zg-E^B7~7Pq{NV{H=~{;;hyoQ6g&Z_6UKLGTu-GhbxgE!2dZs@Q($tEJFsZ!pSb)#~ z8oN7$L%8mM^}eP8Yi_Qdx`$a@gw0p2o=1@GnB8g}Zx!v6#%ctQt7>2TS!C8A>bT^$ z?Va+$(Ig`P+SiF+?u?%~Oa(tadpQu^=}7k*K`qA0mW@E{!wUjcMeeW0PjoEO8B%U? zUwzjoTAAs0R1WZ?R6j$|HvGPV8E7>F6BZUPK%1fS$f2@)ZUzx1p#Je#L3tt2kJ1q9 zy1SYAiTX<|%R`wgm}B@R0qvLayJ@w?@Y%yWCnOCYgyA;cQzO^>VJDDYWI0$9xQh5s zE-wDzbL5OefiaiYh8U$&L|o|7E;@(rT1v2tU}6#k%G;RHI=<1bzUlbd^>gJVQmV=r znIQbJH(?ddpaKvgS%Ei`0rv9hzfY_qaxEsGhV@iaFI|6R zmXgM$nxhw-rJ53g|IB0QH^wvgdGe9j2y?AOfg3|diC z5W%o$26{)Z=A$}H)xrQ5ZkRdj)rK#XdfbTnby$>y41D#F;_=sYssfD)`b9Ui+w6j4 zunVo7htL5x-ne`>IQy`*X$D#-4(ckMbGrpU`NLa^`@g_)MZC}7;kmV-F8CQ8&s$5U zukqAVavB~-44D7;;Y8)KeFC~mrw|CtC~Z(2XB2;3={G4BtgED{Qb*f7uuSU30KxrS zK_9HMQ&zu?JhSFv-NA{UWS7hi)u4PO@j>?&o$DJ7@+Cv>uUdy;;y|k68=6k+YZ8M@HrgFd9;5Iz1|W*j2hH-YSB-O*J_Gm%um<( zsej>eQhht{&n)=VDJHg`{9&$XeWkgMF-dv{h(7!{O0I4f8i99t+aU~r||$4llR)T|r8X*tJ(~76A(9_kzVrvd?TmeUoRBOE!jZ(T&`FD7fo-ODx^U z-fX?{ATu`l2aQ=5boF^QUmm8I4O76%h3)^8m9e)?EA12KXpzXJ&`SAtr%oPI3%l1y z-oDb@&B>bhXvvn_&*Yl8rkq(oX3PQ36yGvyzpE(=0rAmsvsGCe&8k-Q%&pw^k(348 zF((p28&6_yWQtrm1Hr~auf6?nShhB!2@bDFK{d4srTiGl=Azbj??g9ukhiQp+?QQw zh;615mj<~a)s&G)ql6zPXVJFsJc_b#6rKS^Lg<2%r_l>}i>2&x5#XWsz9BqmNB5}a z>`^+I@>^l0%I^b@S_!6Ho4e3R6>OXq5-V_dy^fWPsC6W>WL>%%1J9Ds*nE^RS7e{)(#R5;Sh zpT7>45Z9VwG@8M~>S0ebU?tBsJVD9wKMIgJs*t6bAh&2C4IQ7AJ;uy3?YiAiKaK1( ztyLY9Tw%d5Z8->tWraeq6=R)9k4D@jO^xf8AGZ@8kXw58RILAPtwWCChD#~TKFF~x zc7HA#AfQd+|&^THG>segkc(3MODw-n^>^F`i^ABZ9RKK7L~_ntom z->l`oI)<=@kK$m$Z^z3?oT3?AAN8b!i{zrug6hyy+uvt_Fr_RI)5@g^_=#YsWLdcW z$ExcK^!~d$AHp{Ts~2t``od$|9j54zD=a1aw_{l8}Ku{4=_-4B?<5NzQ2h z9IEgOUVHMz=!c8w!+)#oztu+nUu*lfP8wH@#_|U%NMmUb{Q9x0U#$!mr=X+S|# zFOFkI3H9dfWEyhII-dX}GF{T^Ed_kU8y(k7+Zb*!@$@Wb;nKp(x_qSZ^`D!MIJ$9( zwJ8t+qk*HXcw^F14~js^2_)yvtr0R7#xyZOQPNX)ZwX)KkXIy-JaN@5Fy;ogU6o-X z9Zvw8IVowfj#lJiQ3}1|qN$Z%aHP9%cs0Rz`eTcH=7*8-0!tJ#X)p~^c!Yi@Sa(yI z^h+@%_@QY@tU6j5DHK2@xv72HLj5fNxG#NCChKumq z54ohKPELf%UcT&XPJ)LKq#p9jRoj_EjYI-*KJNl$ zx#y4s9k^8r>Rwl?wT=kAarlHe9laDiBuY^9-g-b>x>AZ_!27S7!xQZN&#KuB`z zdq`TO!9^Umpl?ws{y+aZ)wA2eh-4Fpz^<-RE>eRaV7YHWJfU!mX|F*tW(5;?|Jtnb zXVhdrih;M!g^J$3+Z$*W!z~$5-hYKGB#UiN$C~IEexlgEq7Q)l1ybR+NNQs$SUWw2 z(m=_m7|yFQDvkJDp}m!al=`+h*cL?mH+MZAe^)Ezwo|`;{N44uKZ`f7Z1QvN4#?r{ zN(Lf=e5fq=|NPj$ot!^)-~fkpc1jTg11|ZhjuB)P>q3lrLLR`~~SD##@mGv9OvM$v{oV z0Vx0?>3uX^O_<@15GuXvFY;S6VPOKx`tcIt=hX|e~v$e(l0=m^S=y1)&GAP0?Ssb zWk4@~CGdY~jlY`p4=C>S0qRc1d@P}1_siCR;ssUGo5iYDmnb_!=|lNYHU3|WrFtv0 zM9c@?NA3U88h~dbOu+e3TxkPO5dtGUUpHpruZtYGn9N#&Yn> z8i)z{KvLtA<>NR}s>POL8oT6{Mx&8=|StcNU4I^+9mn zaJ{)XV2(drnqe(qTLFG`!-EQ#NqDH8q~P6rX9qx22ybcZ@wCd ze(Chsrd0pLT=kCE`}q@^3rO0E;k?h)x!(HyFiG4{e75(Y`d+1-e!tOaEwM(~HcoP#A$zD?3$Vxw{`h;xZg$c*S+vOahPW_HTQQYyxI zXw~B8nm`h}w*=G98L_Yp2Ge$XactqLA0KBSw6>@>QZQ?QGp)R$X2FP^3NqYB{qZq~ z(zMxygrgp`dj7br$%q0c2SF^)s?MEO1WB54RLp~BNP_))6e2qZ7KJGXG=)+qzob2K zK(w%)e(=35;kL`>V$!JzXFvag&R^_?%<%#0*S^TDd|}|SKLjoKiJ9&ULjFDznJc~l zb3%Q1bI$ks2-3p~s(uXQVqky&&oY3=*9Sp!(Ejt(%Wu8rNqg}uDb=A#fg+_BpRA*h z^+tZl?xL8S;k2&svqBYLuy3BN#??SRy5c=ZX`yag{#%1EKU&jeF~&YsR6tn^?iH%*5d&WG{M z*CN!}UXdUIB0PoiERHXAA*=B!N`HD4vCXx}E2+J@`W4|8(Y1SO7Ep$VZnk&LIT+I+ z)_T2EiNXzbqxk^6`Ws20^ObX>r*P-~d-w4#J9DCq0L?X8{U6Y+_}bIYYnr{g>1P~( zK440`&Br|YsN~Y3dSZ=S@FxbF6OiJg_R2y%Q!R-U44C;% zU~Ye=eRK^sN*kGhaloc0w}k@9PS!!2%i&bPZ7Se}4o}`W$d2?e{_64b>^po#F8TfY zV9awr0(Tt1*HS@_3q{L)St3p!Pw&D_;5`dH&UzFjr8=#@idkeEtBf-GUS9S=jVu9{ z2aa#vzeaOIXE;ph(eDi1+Tq?tDZ&#auUchz^rq!8I)5urN>q9jI;Jr-)Sv@|XK-%v zrei-_MG3Qe-*7GgK=?QOd?^<4i;r6C{fe&VUn1iAM!-9|A2Gn8TH;95P_Ygv>0hPd z53}i%&4<4uq(&+$&xLlL3aD8*QrS45*sf1J>#^YpFi!O zSIVmcf)+$ht}Glb^1#u8E2&BcRyg0|&t7B4t_Q_!l>H@Sd8%gTgzId@$^%4Jd4L8= z2t}XC+j2ZbT6)Pllu1~%P^bRjZYAq#;Hn z`o^w-!sQ_l`aSUJ@P+iJW(_*J1kD%Jy(l-(1F6dSVD0u!*02xFRS!LcfE6P>jS7r=k}y%hJg9HuUOJ;$_P?PEC0Pq{T@`-9U_l4)>ksg|T- zc`$oP_$gn02vOTFaXCFK zZa)r6M8Olje&GW4_Y@dsPxN-h*BxK~D#9;Q9{v>0C z5C3CvQ>AlVTY0au=_(G>O zZLZEbl5~K<-8?n;c)(C7h;nH924{(qi=B+tzy8QYbbS@%h60u+Z@2&?U)N5Uds$>KRX+MIZ8hpA+b%XX#Vd16e6#B>UMi)Z&^A700YS+Sk8 zQ3e(yj}voN(M&vD`uV1vhu_grbqS4Qpob^tcSN0T*tG<7E_u4CQw4np zWPexy&Nky}f!OS*Em6voz4W`Ix*v$AZ@Tif^Ceu3#jLvQ3^TwBl4}}FO_QZ%iKc-# zgwbyycabT7Mj1Hd`+j)sU4MrLAiE6W^4$mgA9HgGJVr<1dFyWuX$ShJJ#AeYGf#*g*d9UhX{&&EN(rv20NUA2))BpxJu|1t zz9Z#?n?jQwX#QFXRp1ghjlHi1p~k)ADZ1CEhN9i`Qw!*D1I?@XDSYkNX*WYrdnjFMsqRZ)<28H5#M| zX^99`g_IxuGdeT^x6zj5 zqQ`uL>EMcomEK~YLn)}V^=2JuAHdVKPzjM!)l$2bAdLU&@0LQKgkNAL$Q9JDv@o}b za#h9Q1jKKqQMDPJ6?v{R{HXm%@j_tjGPa!Vd5n#pvN|D+R(APQd)e{FdaTE?bA#KB zc5zmP8)H--`Uzq74lF-)Zn(d5AwOcC$7>bj>_wH>wK8c)Qjww4%N{zMLwkF1OPGmJ z>=S{iK2OUWA_&K^hWx~M*&z*%%r1u`q#YPKyfCenoR!Djn}Hx1@dP2zLbsJtIzVi| z7qzE0RuJ2`E}sZ~sPjs9xh}42!%{g_bC`K0&CRfp8hfx!C)>{LY7Vv1>CGjOE89?v zuJ(!4XqOg+h27oc(?`MxZ=3FvqyR_IIMQ%|)m^Zpf4q$QCTo+Z)_xU=bakfX0>2xU z-Jy@tF40RXbAJ(Q5`DAB>e_^JF|bn5tL)&|yn?i<1UEg6HyAIq*&*fp#$ zJg?{9NQyG@{|ymdA6&Eqd$is6io3R}@HNP(uT6Ddvi&;OsiWa;z2g64dZoGG!%No~ z@;8vb%PL;4=M~8r7`shWi;-q@N#ZfN8}2TDf%Rk>oB_7`h3IezE(ZvIqloX$N@Sio zt)nS_)o1EblW0mlEd`}N+FYF%@{h(iY7OsSj$rl7gf&c5dLg8Vd4n11?LG%lE>mYE zE3{Zm=vlC8oVZxge7}v90kj+-NkhH_27;F=WlT>bDMMd}K$opl!H?l$d#*mrY;_y< zvu{t~4Ct*c%LXk3+HpSitHjX%fXzsVrg7c~h;d1aH`K?w-6rzC(q+e6r6u<4WV5CP z%wQpq|AIHOJ4A!!O#d^=nb&oHCB5%=-cSfljf~_sG++sh_il(ym z1InzX&_I5|FmX)*yZ00KN55@!_Yx!mG;BdZzVJc#LN3F-nOPOlA2S6TRYLe#jABOK zMv89%q_z>y;eT8jqgCTql45uvU{3H@hJ#J%53M!*W5kA8q>p~lIdD8z=Wb%>ds6%# zz?pt+M%Y6cWItwxnPK!jJ*;Pmm)DYpESbxzQWN%4{Vt~CIt0nwf~Z72;Gd`b!ZFJc zZq|(Lw%xQ+*d{wS&Yp-OnY;y|_k+meaQPubo}PlxPMQeypBtd0&x(BaE(`n?PiNXs zYA3Zk?mYh!H>8#zZkbP)UIvkCJ`k|T|3g$gf}3dpC|lRaGWG{|L%)CAF`~zpwD94F z=GMAi>;tMD(psP7I1$@MHlyy|vTyeU?(`(%fonDEn@0@7I&tk^v-ExZn!0-}okb}Y zvTN#VSde=8$(bWv-KvT~65`(HDkZ@>DnfKlreRA#C0@S`7spCx;V0nDLU)ZArv~e( zuxDxFhM*@Q-aHO7S|Wd5;+qJO6Q}kp1dbO1%6$AXyp;IW-O}FNn0q0t*1d1~I2~?u zDtz~D0VPS?FstJb?G-cD+5pc61F;ty{Y@)TmOb;%mc5OllL1I>_~AMSjvBMae*;4m z8m*Rkfe@vi|KsTeg5%rP*F0h&=uKbdeAqh8=N3~SgVS|Gw{%XSDz_>Za8KJHt&6&a zccO;_yUkO}LOIYT^IS*D2fAQM&Y@i@{`IP1n$VtfDflNaHE;#+Sc=n`;jnwMJycwd z$JupBR<$2%Z}Lbxff>Tlwt zk(NoE=Ct802{O7^0XjO09VtU6LhmNk`MF(4+h~KJN3)*vn51YWO=o@Lb4bQSih9=O z?nBt66M!|(0F*kX3NO2C|D1Ove`E5nRT8(CCX&X8in5OS@%mIy!dToEg~o7t-wX4 zDWRE~t-rShBUv?`G&I#)I|6&Imx(&Kl*HKI5OvH>>(yzk=#AKti2YBZHY``-^Mu`2 z2Yr1pGhzRddrZmVvZvC7ZJ-BlXh^^+hADK%HoqX#3ObVBxzO{s2v3zLpbceOuHABM4ERSF?#MWHL%4rE#MF~R)P#BZ&o#2JslgDNuNg?u0 ztW(LJBKalJl3XIfXeJHBVoy;=UDFA0z|4rT5pk>>K4k)UjS9Z@?H$>Uy?s}LN_}M4)WBKH5t|}SM{$9ENG=jrcbf*Hx?{-ZcH`sGjU1S`}Xxsqz&@sB+ zs5_jQVp4x;Hu{^(g_#6vF$Fe?UdL^>AKsB-gBImld)qqm`k7Z4L66lDI72;Q-b4dg z_`4-ZLLCb-YS!Sc)83y9kmzOz*<@!sMlDn+Uo>SBFT_1LhVsS)G!}4I;k&q)qONYl ztH)weoM0osFXz9;MIWS17v{!JhH`zy(p&;%MT!M~v8jx7xlrbK+&cHr)RwN|r}gZx z4}Nnz^x{TSc~=HtG)SVuin@ok?)m;9qxR?_nx$j}H;J#cG!{73%dW!|e(YvHkCz=B zz_E^XIo|xskhjy~MGu;#>#^oYR=E}5z@GH{HD&aW&m!aMtY4}U8FiD_>QI^t`A*TL z`1(g8PObcb&7x`B$b8(i)A*0>B*#`N={k*8MD zqgD8Q*nMTY6wYz>&c?QY0M)`LN_4N2`JJrw8up(RHtu9|pT=7!pKj=9OL=n-AB6W~ zny!g9R^U=<2noPM-=NLoxQFTQS^46gDBF6n__evSxpSt+=<<-+k=E&!M=Q36HVb}j z-WiKm^i>p_S<8|vD$%|s-EoMC+;Y-L(zjbx+i!%8Fj3L9W;1Ef$-6Vhzh9E#mBC%Z znzVjp3b&kI2)MHK)w>aA-uWrDw&0uWQ^|&s!nQCalb1}>%TVqOeYx+O^tlCa?-e_CJ`L$&chl36 zl`~zv(&qSeJ-PbaV1(^9og3$#t`}TfO~0$&p~nY_oL`qM5ni9MdSxMZqT#+A9+1eLh8tb?pfll*fZ zOA6;Sg*UYHB5RL`tmTJrsXggnls#y$g6F(f8vu?~yE-OK#h*TLE4QH1t>gVyRwb%^ z5Aj)i#)YJu5H!T-U^M&NC!UCS)-Wx2O{XEs>guD*Kn8xqsc^Fmhoi+AS&oynl>`+P`g})^EMtA;Yj^{(*1*Hw*15r!T?&sJTN`QpgkVBq% zmVB#iDY;ee&IxIb7>mIr3X|lNRa$yScLpiEhs5!g>MeV>I=cdB+tn7>mz-cmkLM6p zSZ$C6>o9?==l#343Pg*KglDBR*BGOm-JOuLJN@akJuF^vkPf^nK9+5(ithr5;B7Q= z!|n)r{NJxsi~115Uxg<1A#BwB8gxlE1ILEyl_nN3GD*nXo+B+TMH+qJ5%y5l=C+~B z=<$EQk~b9Fh3~IIb7;bC{RMa3KMfV8#RnBu7A|f~Zh1su^}_9|H{tH2CyszQM5Q*o zB7OMtN|aFSdG$YqPJw69U!d7}A1+B#hYEA#F|DTTybS$hwEhbk4pFI^={Pn7l>=|n zp$~sv=})bbe&dCOdf~}o-?I}w;vv($-lXcAyL4Hv;IH@ouTWBYRH{fWC}GI{F%0_f z=av4hb<%JA>7ib9q*?aBC809VIGs^J+qur)hQHz%ZtwW3P570egzO?8aHxoXUg_^z zCl&ht$A&aGmmA+|PqHMiMX$D0<@=DsUK;GAnMhsz9VNPl%8`I7NxR@Zk7{-Tx`3+l zFGw?LhsJ;>jgo&%<+zvhZE$YG_NsKsj+10l8&oJXa1;*Unnbs0K*o7p=zz@INeu}d zkZ%rDq+-QQ-^4yTX3l%ldJiS~hT|aF*VoQcu*?%*6Wv8dIeZDMWng)1f@Bn=r)lxd zLA-MfO8BdmDi0A)??F8^u_)8{q&5tR}R>94)5@meMm!}Xx6WB zC7C|yM_vwKuIaA{L5I-CqWvQ`{t^1KoN(cJv1@VK2vB(k{v%%ifsas9AstDCn znl_X(!O^snbWJck!7^UXSqc4mtHUK*Lp>HXt)e=;tMCEJW4}o@xB9O~OdyNYt6&i! z{op(NfYoS+5~&Tg{<-^N+hB|o6CcT{IgC+HrTgpV=rQ;(C{#c|!+BCo(Q`s~^*bs? z`RDoYlMU#F8}TQox5@?jpO9XVTM;Uh&diwhUo}Lz3YQS2?e=dqBa9<~&VS4aJ(3X(npqe3fNmxj5*-@6 z_;=jjs{XALVI8ju>2Y5QAr7K2|+#H zht!C7p^=BK{Nwft#rf z6hJ1RS;!(tG64)4G&Ohb{IiUJpWICX6G&n(=One;H~4`I^FMC?UlaJR3H)~y*sa4r z_yv(^*MCm;j%Fqij>2(3q&_&^7?y{Dz(^p1Yz)10DfYBD3%Naa@}1)S!WWHY948}F zGeUYwFR?PzxyGwSb7w$J`U7YW-mylS)OPgjX`2<@8<^V z0{f*rLTbxk&0U`dN>*@^eH`~z#`(wPVo1CYb+Vv)-$}kKwfWq= z7R_X2#5o=*pxpu%LVLaF}GL^%Ta0=f%LO5t^XR=L)pAe`WOMH<>M9&}Te@)@BJbiL;p*4MOsk%!d)*ITzWbt0iS3a|-2WcQVY0rm?y;VYF}85po~kGcSI2^ z-l7r=7P$X4GE39q-By=jL)#}hGx$B@@y(-L${`Zq$0_aw;QaBgi&w57#lKe|WfSL! zg7nR=&wZ=8K2-029Uv45NHCec_vO8}aDnL>>{1O~1}WBiWMBjJ)8f-(h1D*xHIT&< z*l2fm9e?8M_Jn*#$g(tE~F_R_Uw#z>a(~Go?0pJ+vs2W#JtBo@avJi zPaL8ydz9aWalByX{}{)!%vYB|EVIwTE}h0vdpz)UH?7dvyUN#3*W2%W50)y8WzFW8 z0ajgXpWISt!ln!C+8@0?{yEPAKN+g2+_>ChWGh?A_%y%p4Qu*?%f(4!(i>VaA4)7b ztY7vvE)R#Z5Nx0}M*%sr8J7423LrfXWL#;g7~`yDN;9N=_vKR{_0IRmm4BRj-{H8Y z;7R)2C-7CYay8`@ux^(e?jW-rg)$z8v-<1dYnm`!AMgU{*}V3 z!I(=}!-sOV{U_IX)(!24Syl2~OYNC}~veJVir;8;VV(TSmG_^nI z6vH7$uKr!^$%^c*)(92?(_`I9vhT35HBsv{(EH(hOen#qGU1ZuY>W6?cGKT#=U113 zdV2)9L*C~>>%S+n_ZfwL^jdnhe6huru=v=Z!tJtD4Rng#M`+HRAuR$(|8NMOzqvZX zX8dY>JaD+$YsX_BBhZ$MoXMj+92aupYCUB^b)9+5I&4P=;z9I2Y)V34+hZ}4d%YkH z$xz|vaY(jmh^lR9&4zCy;A|10XZH_m?rXuUo(#HtgXfmwlrx)I&NqFSbf2BlHXeW; zeQ&TwcDCHK=Pq=xgc;#3UP^W%T7??DcfI=e63UB_x+Htoi$5$tBpV@{S~0;;ro`nZ znBX<%m5$D8gs7<~9=sH1&&Whznml4>64iQjqU(W?g}{M9z3AE*`9r8XSwzr zAU_k7GyL;=A(R?Ec-`niMR+299JAIrG?`Pm`Lhg{R7e=T(! zD@?U;6Z-NpjDaBeAyM{UYg~@=rCxC&iWZEvWco6lt-!yo@p3GF8jE^A;swZeez-k$E?F}`^Bf8zJ9twb8AwuLq=__ zfW|TWhTPGwFXHEfJPtY*-8lXGTcrAxQ>%MwEV50;zR`HyWbn%RaA4&Xym;CFVeh@8 zn%cT|VMXz15X2)zK@g9PUZhD!P*8eD0wGxFRUjbJ1P!QE3(~uUPNYL<0)mP(>AfgL zLRCPJ=A9dSkN)m=$Nm1kW4!;IL2}~WYwxwzT(dmSGvi67bWh3b!Z{<(eL&D{QnT&k zeIV}pIVb~9VKCc}rlF@e*&LgF@s;12yRA)v0ME5ouh%Tl{m@B{@khoPfsM8f(_9@ZRQ2acRj)^BTFX=Xw&y7lVIPey)}yVT=pwyT`+^LpHI* zk+~4`DUHc5>~vn1?FT7ut;KA~P%ODOKT$`vO;>E{Z-4(vy6kaC(}Z-biK4?BSZ+VS zLMQUT*nI|5qjJ0OOsHp%Sx^Q-VOJG%Uvre~s-lp|7A4eug|1?D%r8siwX+J6V_YVv z{MF}<2dQr*D~5=mCpqsdkvl)+C=+l*p~8%wC~RF$KCpg!b6(gM^%5)_x*-K@$2jc; z)PL2LxxpZpW~5ICdZDCMR;IN%67(_o0+#Tw>PY7Ute{yV zKM+M@1{0EW&JldyJW~^YF9|RU)k!N4w4ic8Gvj*sJYBcr@YjS8xsr?b_w}y)Gk_y+ z#gf}oLpG&8ihGNr@Ypp>r{6K?)*Vq{mN;x1zviGug4m`FBcl+q?PqU?BZ6=S^Woer z`a&w%{2B4Vr#2k1m+qg@Onn!>wRBDp4%WrtpPR!3$Tm@OP1HOwG5MrzJiK82F7%|? zOi!-MEWhY%JEa{dgn}L~0H|gAfc^|^6>MB#b7Zi|xe)R24ud2$QZS1|6g0a}GFeTT zX1~>*Pu6&y9J`BNqyiuZB0Ac%sk^L@Lj(2N8B58KF?w(Jo|&Z%6aDaM2RG>9+6XNU zZ#6^zr>EA*`1=QWa&o8-J9`)NK8-$`nQI4`>>Bcs*Ms~?OHpUR z7=2TXs$$v;wLDhPc>Y6AVM525ao<Dj%1KG zwBEij?7&ptUR{y!kfHRy8@?ow3p#Hictu!hVX$%q0P6d*AfRX3RetxiRJGVZ_qR|` zvUY-TMuCt}+0-e`(Qvt&rQ`}Nwn0d8#(S$>IF}5T@)!?y$WDN>{o+*-=Z9Fi*5Km* z<%4D7f-;stU2L2#K;KGHEMB;3sZM)PY%K{hLsdGLdQT-WxN?DWLv#OUr&T{J%Anv` zN~KB}Uvrep3Z(k`r=p@JQfYW`ez-5KiBnxD2BA%>v3E~I*xLIpuHBfck;cdmI`>^w zI~ft2*35?!NT<4dJ($$LROJrqS%_XOzO$!*i%_3R!^bE``IeSObV)GV`sHnZ8U04S zqh6Mz#2hD3IqsiyYGFA3EQh|(FwS07gP&WQMaWcj&TcJ9j=B@mLc9qH&SIaDW9Bi} zy`ZWiig!abF1fa+s*6JFO`pNi4ob&0BY5R^XTGyzJJqU95;4^D3RsX=GwXSEy=lh7 z`Wm@hY4~=w=odm|h9AnO6Q3sAwJDJ>EP%8BKHJ~D&xLoRbN*$G&1Uev?hVw|`pcX; z2mgeYDxR2UEMO^SI-Z_GQffPq+dCiG>{{Z8P_kn!U-taVob$zc&l?i!z6;Z9XfM!Q z7`gXuu-`dOj@5ItQ%3=3VR4-Io+f+pJ^6rd)=#EE@iNyS#j}X7;~k&YSfQ; zMvAWCLF$7H!MC^ucF7L9H)&JapWlWQCq~rxr!81RZK23oS<#^)X{2`V{b+}KqrR8$ z52`JV>??l|#6XTLJEX-~(Y4AXG_i_HNSOP=SzI0d{(CK-hh)NPPTT@P_xQ`2OwB>Wrb<)6t4)Gl6Oi}Q+! z&3u?z+<}aImBj2W6j#xKOJXbI1I|biBhxsL;Xms`mTi&(Z0#CFS~CYuCw-67sN4nF zjI$dk7q6*+SET3y`FKJaW%uMG&O{0xJO=$tB~}&XLUNh4sy&D2k@u&u?MnZ<+|PcM z-dIxNPLQ0>BT`St$wh#GMM2l_WCKNXhZ7xBKz_F;-DwuD)ltgfu^TO?^gSP)5Ht(K zoU%gH&MNy(3S3Zao9sS)RFBRu0o%iixS3Ze^M?bjVU@f@O4~-Ka1Zr=A%OgG`1Tgbe|^LX$>Q0&6A6*H~B{F@VAtJN_;fKX`P z@7ia1u55p$m#g#MT8`pYSPL3cb|JSbKUY?r8vUw>$D&#b4b!?dIlFKMb5de57%-_* z8H~xlJ?eL*vcjX`(S3}|<08!q%4J_IM?F~3iptaTmuBl3bd^MHm9=|aK-8~nJ*n$p zKwoEz=aA@zmZ)Z8PKexfrG@#-163X_3I}2QRZFJEEZpeHEB-Ejcib2rU5-`S%vg0< z{~~_dA6sYjq;7$W?5cL1X!QfUcIMfEU0DF`C8f@O%Tqh zX;&B=R8fiz%rgp77rI=#m`BD%CgFni~8M3;D{A&nJFbfRu_<*_Sd>i|<>& zdzu4w_t<9&@$8lqULIBbKAZfeKyh8)cA@+6*`}*0ER^HpT`bJdC+njqvGrQP_fVHl z?IaV_H-xS8)ZSsbE4vB&|G@(0m+SYa7==YxZaaI?Pk%qT!D*1;d#*&5eI}D%p*qKf ztz+qpgTs_uw^9x9n4not;bOs$2hlf}XZ8o6?RkP1xPo2F2k`TlhiJ|Xl-iGuoHSIR z*f*p^M7+CL@H-IYU`!L*fC64&65TyKFnN zVTY>c2K0HjnL22t`0ns2g$Tfhmh@(h8rF{Z?H!ecX&k^~Qz&j!EcT7Ji*9f(*&Cgy zy6cW{z8PPeH`Z92KWy7WlB~8 z>m#|)kD+(U80G2(#H?s=n`*W$a30+sUil&xTRq4qJdrkdcJPjoYlPfAhgEu`3sw3= zW06*>xri@|;ve*=2CYS}%ub}LQjK*Hu`-KA*S)Fb@B52@NiCD z3NJrCbB>+Ci?S>t$=3#R^V`__2>?9hg=_Es4ypgX)`He3{puADAcEyGs}$G|SJv(M zYxwJe#F4iWb2Y>p(b^UobFQ$5+UA2PE>e1@ zY>+4pk(F33vK6|Zma4Z;FX%3cy zOKAoGdplH!)iJNBO1tdSoAYwlW9mJ@fkqN3y@?9h-6`f;yAmxQlWV5I|F!JQ&^;YV zP_$Aqdd19M((36zEmT~3k5|WH)E)mAp;P5g|8QB~TkDrLiSiRbt88@B}xMMS; zGS;tZpQ`m2FBdXh{V^F|Toy*Yi`M5ZZ}nVo>f0+{UBK|JJIZm?PPx;-nT!b`pyRJCuSvQ#Y*(mx-) zs=L-Oh3Kt0fFLlkGT)I47ztWGYq(^<_>z{e>EY#;oa{umZIjZB&XY~;3-=r70x=#Y)Y5N zM+>CoAfmJRl=JlGEnQm{a*@=^A{CC7#AXHQrh@sjX6+08rB0LY6rBfepp2J~;f``P z>acW{rng>+4YBPnD(ntGRb{xn6;8WQ!#B$-;WBe=z0x{sO%&;Dom;J+f(gG}dBiAF z0PJkg?a7?q257&|X^pF^%YcFFS@v2=(bG<#YutNib8{*+-Y(8-ZHgf5?3?)1B{2X+ z*&&>~>x1V3y>lOsv`m583&QABl{nqLsSl31@+|zkBOl$!-`i^DP!9`6$}8{vmCAcr zwIvW0N+xx1?MKFjuBjS zlPZ?`3xA#5@bURo$`jS{?R|7soF4ntybtCW5Ek!iSAIHJH6TG)FI$_6EV!B4fBJPX z!!oMMcV4^Wp9T6&Uq5NOgH=MYD*)&9r%sUGSde!o)Evd9qekiCtjNg>uk}-(dYN~2 zrmSGwnT4}kS;$)26_C*z_pLqHeQD*R#PON42fZ!~^p2C$hCM5~#g`5e%fCIQMpLPV zWskAAetvjrqpdmh+g(VzMfH9ermHZl>pB#eJYjSy5?=57EUM(4delx{NGo9gLL7@_ zQw%dL z*yF+}nv-1Dw2M1dzkZ&LGGV$;*qZ}=C5!qm?|w{r3`rQzvWQ9-qPD+M#|3M!6K-_7 z(lW2!q-JHx6ek*;3$E8=-)NhpOGwwA0WRKovI7+>dH=Ii-yrA$(Yf`G=W)&gg3`}t zF&W(@pW~>-&oHp5iQz-5lOYqFckvM+3pYPBXe_?wl`6=lKL=)wGght@cAe-{r26<1WElmag~1DIm;2M+ zQ!Bc{j-%nEi1h z0i;SBt`5hOs)-PkQevuO2y$d2N-X5OLo^v94Y60WUv=cZ+DL zlp9?Xvf)LJYb>PHP128rxxc#<>$LVXNA^;CLBYgxhOLlA4SoX2f@GN8RN&@IdQni8 zAg7L_*1d6La*>hrV){FmFw3j9+_cKO@xo#H{#NDC?4zF}|E_(_bOoaA>~j4sr5`FJ zgSv{7rC6HLLv(q)s7;AWcggt0dT`mo2iKWOs-bn`ki|SMa5o0~zTNu0+mF$)pWA3- zv{1#h(MgEXt6@u)@f)DZVVQWu=n_UIYuR@Nt*m@gbAfAq1tbuVm4yhLIWM5Ih4QjJ8h>DCPWv$-AS?Hh|1#H)m6 z?=%T_s|fD7N%VnPq1Grp{jV>+i=yyvWH3vDs@ZL5Gqm+& zipOt1h-Eky^S8nDg7P4S{21w_V`Hul_#gBu%01^d`OCSCvtvr_zEckTvx&a1JgUP( zgB!GzM;aIrvmAKlNA(?SNok}K@8~ZZ8FhxyP1b*Vndaw6(*HXQSp~|5167w2rri22 zYG^YtyIF|GbRB4;1I6|J7B%{g#JQuJ93sMMCnMwJug8gt7i`h~MbWw6q9MaYsiS5Q zU7OKU^R;szwXMasDQxSfZJ1$|2O=L>e7j*dRLpOs_P zf#ys9qiVYywf}t*^2cEhFADyuuQRbj89~;=F6fU#u@ub9_~YBs$lzs%Af@$fYv01g z@7Ya9s=d0UN4d9uK!F^q8hibIS8ndzBSN*8NH@7ti(06H>y;n){qOhxw_g2U$ikI` zxY2It(|*gWDasUzjWPe6+yQXhlLagj-_W1<53SR*uB*!cw2nj~1xPKv$tvtZ6Ld56 z^ge?{7C|zffbZ39M9NR%&R;_RIrHmUuYV$NE|K3hnl1Dnp9{5oI2R10o6R7Hhd94Q zKi#2{Si}Sx06}821?`P*9vx{4Jt^M^CM)vaYayVA-@615YIF|;H?&^ifNB&eV%rxn zTI(MjC*>|8cudqT<`}=pyqH4yAXy~>YGptHv8on=4rDnpYu>_SUtJ}qN9PW>3GeV_1N!> zO9cgFQJp56g`ruykK2gPUn)f7ikX6X08xtk4dh~DC_gy`el)i$|EiD=OyHM{Ay2mJ zBx70tAqh8~O#BU3YU9+fT}{D3e~YOQg1``zAETe= z^3rf7Lfh-bTIg2SHh^m1w%zm6@ zcMitDDBk1SBczJ7?WZ#s+6Xu`aHMW8wgT{cv!)%+?-=uC1QeSpvhs)Xm7wI~SW855 zErG|y+KiBdYqc*W{a;wSp1w1Vzbd-li6Z?rf@P=1fTtzPcrC1O{PXru3jsWs5yYkc zJI^AUaF$~H0Tx+}rGONj%?TC<0T6E|C=Z7Zex>&ch4Ok2zimgF=6A&a?!1T8opg_R zKq*7m&5m~)19eX}1x#*O!&k9?AAk2=CN>SV)n&*(^$S;mXoi4Oho)jAEP+NS&JxI) zP+*ionG6|5NB&*DyL^}q zK=F{$|2EJkB0-L(y!Tz@#y90;{0x-r?Mcp4H_*j)EMks4Q9luDU|+S_h3KxBLC~4@ z@ra|r&f|W9MfAA)S>~Tm2yLVqkmfV!{d037E5G?XvJH+wex^Ft8Z{0oZ8urHR<8qu zQZFK4dq2G4kzJ)PX7B!^^qSyD0m&)IO9~?ed@%&S2gxb*Ro&XY+m^_ked+-^CR`s| zwgYtA!C*X*jT!CU_^~+ayV^&sMb!lXuH9uYKo2dydJv@abi}2%3OF$;BCq3i?cfQK|1!V~dPIg39o6CE@^rP(wm1O~gLVnnk{hvJp6O*RL zma{MoB{zN~p!n#!f?y)3tD#nWc~#feXH|0B2lzjS){sp5`uT125p~IrF7D~itRbVo z)3Eg)EQa%!*6M@IB8|>-1Ci%h&>y%GA`%Ap*34 zQ;tmm?#0&c&I3H==c0-Q#Ka3N-Fi&zt7J8vr+~9SXBCp zYz-ZPnMIq8K!Dn;ufVd&i%_?)zBF|c+D^(M$Q+G*I}1q*NhoGG3S9elUHOz#>Ew-U zzP$P@uxkyGG-{GtcJubR;|0H9Q!tKN_zxDqA4Vd^Eglm1ugM5CMshAo(mbaWw=HwR zU6^z-b?KjYLL4}*8O*|>+cx&yL-6SpQ15U4KE=o6VRBF4COEcFt55Lj$1P8}{@m|> z;-P&4p)_Hdl^{v;?<tVVLv#G4ILFz@z6rbG(SWG@n55LrlwGOS1lZ3)v!Y zobz_ujaLyai_57{~Sy$jA_6 ztmpnrZ*{^&b&oi1uUVfMcnjlMBa**x({Ll%|52~j@P@ar7VV^n40!vW?B2@>sIrWR z;6vLt9n*pPrQ#=Z|L_qwU}ZFu1gy3nvL5d6|3O~BuzPQL>?A2Bk=5Y6`;N!IxA6HN zWut_z@Pi=Y?o8L&^f(-U8s@a|jl%@IojKR?jvU)FIGZE6xeomS!gAS-*AJ2W zcBL-l;vX!e2=EE&Q4ODeJ9M|?N2ZBYNFwLP&Ha4fAhc5GLczHGnO61B0&)qBd^VE0a9hg$~bC!SiMLV#m?64 z{BJia@Bkedo{sA#e&Y7_cyAyi4blHAU5@1nSRbW8ir+6%qldiY8KJZ{p5+L4`A{SJs*`de1bN06t#4UFWv^!J6d@BH9f5%N3joy`+^ z3~tf*{OMl^IFRWds3_37*gcj_g17NEhIQXgx=3~lS?2mqamXroh(u3nsyTRB5%@Mw zQ!#FbZs*eoakeSpx#WI$kXBl_tlujq?Y)0PHYV)LH~tGdGyDxgov^B?#W%>vW8nSV zwsPdz`@gN$TMBRs!IZI!$g=T6GBXciqyGuDfNNd~_pknyaR6o?aicTl91`Yz0weQS z`50Y>aE=zrVlCb|Y8ix9D{JO)= zni>PPAD6fAy|;e=8{)VM524w>8>FvpJ!yqwCIXj**%c80&}FL&AIPa9$gx-S(=kdaayBq|C1$l zf^1t9Pf<_O(+@gJk&MQ7s*m6Ok_a5~V1Ye<(FB$&bcg|k3{O1;q&Vz%Pk^9X33{wL zY?IY0J=YbykQAt>c`Q!v<8At~T;DgKgj6>G1&ppD^?2zsd$L=k*Bh6nyITsZyPJpH zk($d7n;aLuilwJWC%{G!44Sh2qUPK})&{Bau;X{W>~-T{TcX}f){_?@yG?qLjq{}gY#@(C$!V_=10V~ z-%oy{PJWCJEIe3c^fr?9R#%pR8N#1ITssiyjq`L}9tQFFcU@Ye7|3HQOADS80y1>w z?e7D}d|txga;ETn;10{%Ck8&6rY@ik+mWWuI>DSrgCgdj5wIaCQ|Et3;-qT$RCjlD zC~b<~QHhi6-DiLhF=p?gSjiM^I+8eH%CcHIy7Xi+;OvSpT1fJ`7pOi_zA4bk@3l)V zy*SkN#FE#)&jCn%x{K#q0f#oBXTb`S~HshP{W6doF#P0JWB7Cim6TxH1H{Oz-*PP$#0-Al*Db=_7>rO6lmpUvBtuB=21H z4iy5bNXCM|@9MvtERVr1(^S<|E1m2`Qo-q5vrrB=kMLRC0I*p>l?!FLemgeR+XvNy zbRH7;C(9R`^SeRVsJ-#9;_>U<<&GG&A<>LaZ*FLx!x^YfmI2zm>DBexs33tmAJVl` zqqa8JqY-wb5%gUgst(W5WDj&4wAGc2>a|D?nkkXMkvp7^0Y?RZhJqRK5(PzlNW0~3 zjrMo|M6_(_&p+(Cz*V$`7H)ZM{u%Kzkz!0JB^;{UI#0}h9jfxMKBu?|Bwrz6mBenq z0ycr8*FSTSle%gkX`U3p;L^QR4K<(v7wvQjc8|S`(JRz?zBjdtyI?ulO|--h&$L0N zJ_ptn087dOec%2QzL`g*egMpDr<0ST^H zJ~;=aq&O46cIQ{ul-&Mob5Gk6q4J3pn(X>4ZOAU^SpB4>$Ah8VwS7vcf`4F~uxke7 zYYM3<{z{#p&n#+*!hX|TMX*o3BTbVIg=^E;pH^MhZc_I*(c#!_I!LBbdFcyTt^drU zzDfh&kRf2MZ15P)meHsZV8;`HJT9EZPwk%%G?v_1(o4l8f|y=#C-=%q<3qlPjVKGc$C4E1qN1aJ zZ6QL?Jb0FrF`@CcAL=?oHzw=v;<0_ZUQ317aHwu}&oa!h&x8oe{rvnGH zq4|SmCV=aik(KJQ$?f{)FlcCfRP!HQZt&pBGpVLXw&P%l8cHjCjbcH2E4MEdXpbU< z$pSXd#8c($WzFq{?qI>Q)@K>3Rxh_dSK9Q*F6_!Xshz2p9fcto0}qmbkZPC@lr-%g z`%Ke)onTiu@@cVd0FxR|RaG;Yp*{cZREQ8))+^t^KsK^htb{8sN#3kuGhjAqYCX=u zcotkzEBi(k+AGm8{yxt7J3GPOyAt^5f;#RB@zFi%%v)`uHIZ|8C*W68g(mG7U_4a z%5rDa-M`y>k;O255yf+dm>xy0e0nt(RAAJ&_2+?QyHbWQv|AJ91BTRNy~bHnT$;F7 z?#5u5!Q}LnIO^_g0~M6839^98P5^NpP)}j8N%bsVr4E*GLQ&QdkEmU!j&W?@U_iJU zfSV;f0TJN8onW}Vb6Id~GjNB-tss?S`|_`T$D}>(v?t9;({~nV&YGo#s!A|fabg!* z(fXTf%Yvv~_RwROVfy;i09eyL{6MODyxqQoM@?KGIcsa&@6PD(GQnT|##eBi~p=88dRwfD6-NU;VT zx2{N)QUiQC(#=HyV;dEmE`v(WsoJ`mKS!Dt!DGXmZ(PP>HCNgxeq?+$i?;1@mg%-6 z^jRF=#8`ESVj4rC$qM%8Iy|Sc<{WMZwE@9nntScHz5Z? z_gir=ozXZuOZnY+{%7aZi&lETHJdeUI8f>AB?X0hRnR{)-N8F2l3vqDEonFbFR!14 zxv<9@T+CVD73da{8{0PJq!M%CW8hJNq{w{f$*iAHB<)@I{94B-a!{xH1tE}=wo}}M z1Us&SBb6f>nt&*e?c2R3dUbMTrnh~c1!z#eY@roP^+AHfH| zQ;1TNsw1=iYQO-a_>jkC+9GrR7}d=7H}aX^QPgSTdvF# zX{WNl@wxmK-LmjO)p7tBTuJp*$X2VJX|Uie0AE|S zK|z@*En(v1!jTHYJH~?;)VG47E|6!q)oncuU?+@>HE0nC&h`}sq%109%s_CwG`k(C z&a3*aXq#k=IDn^KJg>=b)4u*PJ~LW{#bQoFbO^f6xR)76)@NHr9e)oBRZ3n#M^92L zBX!l{3oF0iB|b?o%e`(FKhabT^r_fAzV6VJ2`IIo^%^QZAw+2b6N8aBM_vF@8J!qj zoa85-SFl>na8;i_Io&mk6%P_^M1A6d^6n(Lv)S`0=K8CXHEE!Mt>N^`C< zuDIJ<*zMeswq8n$1K3C&#!1|0knSNhlTex^DSf(6+af(ZvzkB8$hDb>Bz-osN{>)j zBH#q&l%u~+C@~~`p_cfWrV1KJvx2C|WY4`?JcAln^TIS_mJ6({(?3kUIihYue&sl= zVu|`(l+FF@`hTzh{dWCX8t52fssZaD4%H?d#-|iVDNUks(wkEkXoArySeb5Lvh>?> zw?zb#WRv<_{9}RMi}}RDHzIu&r`+#K5v0gJIz3YgE5;HmlQTegkgL2u*~PYlt`7X* zIz+P94EC4(-GK$W5C|uW62rvj>GEu03sBCds_rhByS5xjxAN=qtGe%# zR(P*O%6L~|J}8X_64v_72*~94xVk|sRTtL=r;wVb@x|V&=VEWgE3#nwH1k?F z3+$qrsfnX0&2pVrF?aiPwNFNF%|kp?(JR#MI4f55ukP1r3|NIJ`WqgB^^+^Ege$i3ePxq@a$=DI8AKr;cuvP_`{Q z;oL3#6>)yLj%n62K!g@W@Bay{cM9D=MN*y?^^D!EuEX-AFWUjIo5u^Y;46f5xo3T?2?Dggc-lCk>>KOZ|qBI&oa6CA? z`f@cSw5*s2bBr+zN0$#aC$sW}kY7PJn*O=-2n!|o6WOEvpYNzkaY&Oerj(^Q8nOY=10yqmAMVQzq%f(lB&= zsh)u*SPB8@)*HN%2j&;PP{ac+wGVUZe!%y#q>O$GKn{wG8G;JNjNCLxYWP!|1w%_W zpdJ@1QsPnOte#7n`MqY*y_O#6%#2pedGG}44N7CNXbDvp@>W}-a2Jith6D2z{Gsk2 z^aE3Q8mlRGLdPCt}h`*8sYyN4!!#VPk%tI6bQ0fU0*moOU0K z3rlF}uZ-yaRoHJo49{#fI)VnRxFOkrNyH{%sw4fG=OxB#Y1Wh9`|a(~C4*8`(-WF+ zb#;JIsDd?%G(|fgY%&*twUN0e=oznu=NuDoN)=N_J6qh1TOYQO$guK^j@5UW(FeSeLVy{nW?HgCJ}gFMmJXB5?yfvcrMZvp{@ zt9O)OeQB^ITb|I$#d%4$f{qOdzs!P!yZ8}m*zV*lHEp$kY%x7y5ypqeA+D#!>nD2_ zrvJRA0_(3d_zaRZPJIC=&?rB`uB#F!kVH&jnHZ;yMt68k!jn^qQQ)!l@v>*T(o0IO zeL1ymKuKTgf5;vk|Gv1LL*8;;scpmkz>UwC#RT|U+Y&8M=`x$X*$$$A}T5Qbm7^0F&aK#fub z)&I|-`NQ*Khh=iYb%?61$$6T0Ue29hLCaW!=(qqR-ZH2kc6>|;m5){bTpuJDrIbc< zvU_|SfS{CQoK*2WPyP+9*D2}tD6s-RJqPp+VEa@TmeNUbtZG@L;68MWkJsn0uod^) zN%UWS$$>*H3JpPLp!bO9W45vS^?M|!Y4D;?8(W)FhG<=XzTu1kx0y}DpP-uIq%xX7 zYHbix8YIS8(@$?aO{|gU5h6BA1!1l~Bb;!V>G?Qxwr7-}q0@|7L1jlXRL0jRHR8`TKBqT_6@>sD zIe&jeo0{%?hP#SSdW}|ZX1iKqa_|jn0%fW^*(iIKFqKB$_hGnz1=S8n;j&L(R0&W^7;-MXpPPr)d6d_0r^zonH%LG8mPIkAsZCPHZ+dKicul(r6 z-Lo&#cv(~r+bku{B|>o31$1%|m$#Q)*+)1#byGMVp`LZ57l7f5K(Z;nqhc(_o6kABIaWec zLdrvCc5iy0<)lKVk~YsEfub^cPuil&#jO7FgpSo!x6fdSn9N&Z4`0cEH?PH2Tk@+C z_@{QL0Ia#Xz3)wF--W`D{2sqg{#6P5Gs(vUWxCD_?sI{%T97e#iau7qgA4$91RyS; z@30~nrH5C+1fIRZdtcTMF@ZWNtdu*B7dK)86CX?Nfr)Pg%}!!{uao)Sr=0LEI~t%5 z+xDm&k&o>)i#`72hsV;qb;NKzQzcF zT4{HG8kWB|k5}GzYRNQ5L#fI`hGE+6KT?ia*2(p>(|gX0-2jz0j=ihnu8OlNQY69Bh3IF0OBy_(9O-C;$=tK~<9GOP7J|IDkLHHNkq%TPX;Qkta z#+~C>C3h3!e}K>4#8W(Q1CZ6beTaEQ4kgke~E!u zw*x^{G#iF{@=)qKw#EZ{w{WIqde5BOXOB2UO%T!?2z{GaYtDLndFnH ze)ClT&j=xk2p+A69O5c>sq@1X0oZerz+&k{eOV5*vT6-3TeGVdr2kg8aPk0)#1M zeAAaeP`Tv7F&`r^apOsilE2uhQxIK0ChC#9+@K@OHvbH0GiakbNW}oVQ9S5k*ba(( zdC=`>;REGAYxWBfAge{42c%g3{wMU3OWcTFsOGyPGb+#C04(x8=Qy$IRZqTGm!9pN@KDQA=4o#p**5K z`xxiaO4PS>yW&K7|0t+|w8a2te<-mZ>aZ4jPWE1A0gcbc+4l)rUWjB!hdcaNS^8NV z7N-&F4z#7{%M1o@5D`)+hc0Wf@7e_U#zs)Yw??$Sdgh3T_=hEXh|E?APGaQV9-Hu& z(c;Rhy3tmLy*lf|GXDuR12ZF}ACmhEgL4r+-g%s1c|F|7@lh${Z)PdO4eiA8k;2!{ zS(5ou6+IJs%okvbyr*TC%mY~fLv@agW8Jn#=+RRH4*IHMpa~Tow+LJu!KkxG<6flG z+QN>VKni84@c@dOfCeG#M<+lkL-hM`yn5$xI~C|}Y}Okd34INwAR3$PllYQw-=_Ns ziAZvtw?m4Q`M{12!!-dD4A>+C`+~@?pW-P}Z}|I4<2uusKi~o_NfsTspikOsSELpz zE{w;X@L2GPJ)d@O8Zz~GPwADa02~H<&t2p0Dv{^wHfHU;1uNWFiZBk9{uC0FCZiBL zyFFKjDv1sMRF{JGojbFI-F=ffC9dT3RFTabsM}$+Chi|E6IYcX;PG zr9)0^ZEi-U^!}@{XUVjV+Q*koH{iv;O6-Q(ty$RL(hVkv8d#NKime4r{u~ zG(kHE&+G+sR1=Z%;w*UOGhX0|J(*OHN~L%$v-LG(0^n8!MdSZcy(3C}6=L>%VwP>E`!B-2=@;G%T*!Rd5Vm!2RNwMcvn-oESX#Ht z3oSd2m~0IKvf&7=AtHfQaYIxhG54J;X~}d?>lqasZ=>Wxnu!MBNOWY2K`z{l%Q&^E zNiwarEI}zy?6m3&R36Rl+B?1f-pv>UC1z8_66m$Myl*9QV04p4UX;3+vo zj{IGVmfXcbwWVeyp4Ro5OK6{`!tSiD$eFrW3HXTx9UGf6nhNE?cMK>HrqiRm6_8Q#` z5)M3AV0n+Q%<+l?CnUb1McY|yKm6|cnu@#gB#7SV@Y#|Qyvu5;6w!ieyT{=O#y;l! zHrbg)um6!+@Y~56Vj$hqx4@TRU^Y6!L_&k&2!AV`_@gs6XJ3j42D)qGlu8V0(8@*E2M5353~5qY|2>mdPQUU=twao4;d-KPHfU$}?bC@O z6ZloG$5M!7&pUs5bWS9CO)nz@)i0EyrF~jBNPyD_DJIQ|TaU_K+8xn#t^GOJs`jG@ z_pLvOj>b?ZSZlN!Nr*TTp$1u2$7H@Z(UiYC-mpcrT}JqfmV|@?3#cohdVK>vhv&7o z6y{(YRxYpDt$B1oOD0f~${`}^QG2meLtJ~Q{(74AV>}tVB?i(8(O(bj&4XSfI}g3> zAH9S`ZKgD(_Pftrui9>qYyA%uQ#pn^flyj~5Hn+GPel&K3bg6GaW!e~93Jc%8t2*| z!ZhvH;}l9!jn@`^;WE_T{Nk>(RBB5io6^b4>C0^e3!4CV>2kiR>Z5a~5Qx6dJ1?%l z6Zf}BL1Fqk8Z}h#%oJ&HL*4Dh7==o;6ObahEOaD}WP1PH5_yfvxv0yzAr7#nnNPE* zqlZAxkzvppyrqKa$aF5%i$Z z*{j75_z&pSs#d!Ucy7JEd5@hw3T*0#{ml?*`318=!C7U6J&l_m0LuJ#s!|%!?Ccnh zkTs*kg%5bHPRU19%tB2X5;P?FL2yZ-Xz3!vqfX_k$g<`>+njojjGQE(!GTKZ$|oVP zVZ^lnZMBwsu9?<59fwn7P+m3uq#Wl8Q1b0T#Aq!hYvugO3A9%+YUG}_M7FE#oXO%v zN}%alP9cNWyDI|1ETMRU+#Gla-+z8TP_>Wd__YF$ygN|$XhcMo-d1+%8TRh7ucOzu z`Cba*v^mOl;1BZk_)O+cgiGqCI+#bYIs&P30=oUanoi(2{k)W_YRRcs?1A`h-S)Kf zfCt#l4KB^qe4zc^9?#hS(f}Ofrp}u)zhYLTm|JwYlh>Eb2^uOaYu|FFZsQ5r^vpq2 zHw%m-2$ktKClOuZzgV0@2QBlWYVp)z`z(1MXwbeK;p!4o`l34yW2s*S99>bonz*L*BgntIxTMPB?a_f=h#&&S6pd90 zNc4uZhsX>QC>q2z7+83o1I)|H^9s@+odUaW0h)&=vi8_%O0FhOwDDS zGsnx$xo|Xg4jcm8+>r`jRm$sl3e_5-mc6N|%(;z>#vt&6OyPjw)(F5K^t|%)NqWO>PRYM1CCE24UA6Bt#OIX4PU)Y*O1XdMUZoA&#|^E@ zXoOkN4w&g@KU56cuhFNme`!zp992)4vhW7IS&-N|KXT*dO~Qzfm(r*ByZ zg>i6Rij+J5{F2hR_u%w;*ZT1M)~r+W(4^F)l>59BaoTZn$$h2QJ$v0?a z=ldw9(>K<kx{ITr%VIw0i?)-Xcd*Xqm#(oeD_!O5qfBb2|6|d!}kZ+lciCbPd8|0Aa_@}bb z2iU9nj$^vd?%wW=X~DL8yxZiyf*wtzdifW@P$}4L8r)Tx;!pP{bWr;ULM&T9b5`y0 zrM=G&TW-GNdqCgRS+!CzU#B9tc0-`y9o6?EDW1<+9S^Bpepwz$Sb9$Rk4>BGrH@oW z-xQRXhL;GU_>^#C@tk}W^;dS1hs|!isHVDI0^I;!JhkX`r_u7FUK4ubVWt!1YB;n)L;B-S-bZ42KYCm@#5zAdn$?-_pJ?IQ8M)6EG(KPZJdt`DntET6rTF{k z-|!G4ug%n*V@zKd)IhgR+I*di7h;5Cnl(6Z(%&}bK>SfRx;9M=>E(@~iLea~b~qKB zK6=;X@=~cdNMhU!VZX~x9|X7OMWqVyLU0{XczO8rno`O$s`iR6g#}$`YgJMw1r;}~ zyN%S^m*m`nBe|Cs-S-|%dCswz!94r?jNid%^3h90ZTw@52DUM*k^7nkIo2%RW)Y+ngI~Vyk1!pE<2TiY*CO z>v13F!uIAKkTB3fdYA9rf0`~*@rO^VI5{o32Fj?%-5pK;>b2!?`T_{1$5PElmwM%% zh92v(z6C9Q-z~4%thrTbz5KFO`);Gbd=~fANIMK0+we2bKnDWstCE{fRVtC@6n>lH zS6(deXp8hKMGHxToNUs`o@RAqeqW_2KN4=l3_mwJVjV9h~CR;Ekv3=t+zmM<4E zp1F1Ff3f$TQB7=L{I@6;1gRoL5D2{)2_QwO(yM?p6%a_kg3=VJL8NyAgx;$tieRIM zP6#MXL{vn25d{MV0s)>gsP}sRYd!Cu@>}-}&YjGhIdkTmefIwB?|vuoT)D4q@DB^n zr;c?sAhC1ECO6$llJW@}_@=hCN?Ev#LlE!xnm*Kh=8t5bj=ND_+0iD6IljtVc#yqR z(rGhA6n7w%tVzB`$Rcz|qfCkyHAo8pNn!`Ftroh{S+uSgcd?@1FsG!~V*^Nw zf9H^Hj3Ovv?HWYlXJ!c%{cdYz%nzigrY*AzCqMoEN*r}SYk%gIn&QBY11iOg3sqLHUpIZo6%dp1$sQ1o6g0 z!B^R&TNNcMs2PjfuF|-Y?ae21^n{9Wx1Ud#uOdKOlL}`)3I6(`B?a;*8NTN?Z*Ip@ z^7)kcKRQ1ejNZA8hi8nMiTUhot#xWG(joi?aCZwdPk#WEGHdtj+&;|%Trd~lm&twW zw*Zw9FEu}g{UC}fISH{GIaXf!PL_?v7Ez;Mb~(OwyfmQ^$nG=bZY?^~8uLr?r`2-5 zOc)a%r8m$SRt6hamd*B_in5(s8BflL;7X#O_hM8%!Mu~fBJM2qd)lGhOQwy1dv*x}5KCy-G$0a#aA`WB%0EITdMSS@tPw(gTh_not9QgvSRPOAPUDYeiXOdxbiFIb*pt#r!mV_O0sPR#TZ(aFl( z>g9CwYzbu{)qAa16c^SyRHv8M1uEnk#^rdX-lK-Tf#(TeN^MjN0A!oP=^FZA+?3z2onXyB{eJ7=wPQ{*(iy;UxnjMoJwI z-RACsNnR|u+wKu4OivIO1R)+!kevD2u;}l#_z?IC8un?H&?%)40Wt;KS#$$826MIeY5+Uo)zE0y+-7(t5(g~e(@y0m21Su)jTG6f zH=yb;!?(}5Cg`6|Q>@JFa$tzNM^}Hv{_4ZGS)dO;Q>h=q$hPJQ#3^4Y&L6?$K zj?YY^d$HeZM7P9v_L9G|z1e!Bt8xKDRVscU6L=$i-&_%s5dAo{a_y-~#F^6bUM%HG z!aoDqR?oZ=5Lof6Ui55ul6H^Soy|u@GX?CLPb|My6DpdwQJ|d`<8FxEd0JbQJXD>a zU{6DreUEr!E+XL9!vNF49DETE`-m5JKM*`vV{3#3c!SPTO{e;)@6PeyUl*Cqqld(} zjI_W3)k*LJPBw(FL{L7oB6C+VfQ4XphRr(+-X7~kTk+kO>9dyrUkjlYND$7Wco;)Q z3UuCianPL?LtDF`16R4g4<^-TLIh9U28Z+cNmPHDe*t{B57oPG>`sTg#;WA$9Po1@ z7%tywetpaLsIP0PlFc8v$#XylV)^qZ*DvFGSyfocABoAU2F@&<{4UzuO^dA!@o zKfR=y1G-HKblYyrR3C$&oN3aGAzr#od_TTWVzgZjQC z5_}RFs+;UIG7;cqsWp3mEOh8OgWP#R?;o26uAwt$Da)-8fbv!3F~FZcxdGX|Fynv) zGkcIuFX6vu&1Y=$Gn?%;F*Q6sVA0Y3<%pAb{db^*Ob4{4-QR=tq7{TjtZ!B+J=q45 z=q%d+w9ulGdjKqnyBf;RdJy_n0C{ZzkrIm9=!eZ1DXKN|hTsay!@K@j+0*SxZcXs0@9thcPMMP9d0NL=>|%b zg#o!}AKtMB^o{P~~}ZH0Hcc*`t+%};@9Lv&M(pON)6)fEfefnds?oLm$*br_6E zlk;oof98OgYzkP0AGJtzac&`~K!W8*p#7N@5~HcN6bCqp)08=Fl_-y|VCNl4 zybc-Xh-G}w)Wo5xT!}CM?!lI`3`$Y?-`g3`juQgMxSQV+`7|;C)=LufMo=QWcCpdK0hM z-`~XnrmHtbCfOR7Lq$StcQ%HN7tUx}Pl%RgF&lvxF1uh6E9{Y(^Ww@jgFX5gD@?I+pqkmXP}C-|K8S5 zmU5%F%_LN2{K(+uvh_2v6&&05FOsOIExY$FcnF-@1D=XXb@kYvQAQW13O3&9T-hP- zKqBf1FEGU1z*628Bcd?^VuO|(*L^!6EKmf;C;>$LN9fkZ+q26bCzG*lN7EfO3zPE3 zeUdFtzWU^$gvus<-AOVGcn{S~n6{j@v5jY-GeZ|I!NtwdKiOQTEdxJMlBqu!fYo?r zuJ-irwPzpAbMU_pYx<_YN#Q4L7?kFgraBXN0DMm7I9a&E-q4gtQ4cYBnI>sY*&N$B zp-&X4Dd6EynQd!BhZFV5Lrb5_CTElF?!*vwa+82{^26PWnSDQ4ZbTkz8vI#q6q(uY zl0(Z2B;4{tk1f>b%jaW~SV1nxPhG+AksgeZoNnUHeoeO6($m`j_|18{^c9So*w}B+ zMjVH2{ch$VT|tV`;a;CNp1yD3e$9DP!)C@xtPDrK7#}FL1RK&sZt32KI#CbT-t6OL ziDQv~uwf%g1fmzjb6})ZUto0ZHN_;F(5qBWCF)O%?>)%nrkVzVWRuQS0ln2c!=7n- zRB}NFI|RN2la74OXI&MMcRBIi$}+O@y3)Y=F8s7;F_1CS`4fDS&RL!$pPukw z<~eJ*2m5HEa;%?M*4lJ(<$}3C0l_oR)7eZt#(H}d2@hbyn<%WE24Ef(eqo@Gugpfe>MO3wuGXV?0d zmRTF4mr&J1ykxj%2bd)1L7%4AFz!XCTfT0I^X zx5+jhO#P)jTWGUB>na%B=(?~&v$D`n<8yfw zu!O`pgfV}h+#_d>QD(f=o%{0-lReI8Fx}Vyf))yV{nf%8_mF$5QXV$U6FtQ)O$>jl zEm&fhSOTi=w2<7OkP*&=s?+(j_xj{(D`W12Xh532lRHi) zR-baV;q|!@*$I;6(Lr2(-)`6)hgMr}*oj_kJntUHJ0md}w!|A^YfdNI=s1XA?|bIW zk@0(rFf-cuAY@+PalsOh3Vn5q7|qTn(skH?zdLfv4NR`uG-*@3Su@#pKc^{#NeI$L zstIwzexTrfBSmhg{Va%;y0NWW>m$AB(bS`G69I52Jl94C8zn~RRRS1wNt10aXP&Is~~YBsm!^|*meSw*s8D=i6F z6UU{i7)=h*gfLnwH29+3314W0vlyX}VtcAolYh|+WFqZr{2uz6ir0l zmy*v;q&rqsn|N9DLp4%^8zhtkCCX?V3-scwZ>xAdpeH4LFsQkk489$<(BnIAYE8>{ zU{t!=V+bU@2fZ~$OO7l%)zmJ} z4QYk(_=OB8y^EW>Hwg4LxhGZWEWn5o(U3pO7pYn`n2@By_(bgsZ*`TrfOrA^O{Qa< z0_>weSHe{=LHm3v{S+)Af@m!<-K%hwtXXpkb`^N7<4Q}aoCiJ&iqot4g1+c{!SqVN zuO`g9Wfr&wVg{lb49{ZB=-wGibcyKi6^CE1p(krv%pCu`9JZXZR_{Du>)eYmB*(h? z^S=o)vo*7J{O}Bwj&zI*>3Jf@^9Tf2#dCPmN$0Q)Lv1_fiYV6|-ex_c4$}v#^yS9S zHh-+dD9B2T@^!~pt8~O>P zJN6(D6rX+$&mzDnY@Dc;%w4}8IKh$|QH;h@BdmO1*Nx@aK{hRzmHI`+Pj15E)9{V! zUP*Rl4RS;(h5LAaz)SFeXi;ih@oj4~aF{FSva!$SWF3n-FK~&*MAu?C+Kw{8@zPk? zOr%$=&Q+w6pG00fMcohC58d(@xkVo8^SHwDInhfb{Mm#if1W5`zfrKUH`&X##2A%4 zTtd{YDqcUqY>apX>h-=-XEGG!ch|0B?SfC}GgOsRzb1Blw?rtbtT!_lwOEGfo}S^- z33}d5JMB`=nBOMxS~RfbMrp&4>t*dNh3Vl3{9jfC&#QoGe51XML-*IFu_L3Yx(j|k zo0@&EAnKs`D0SJ0Ty7x)yS4Ia6D&B~qa8#jW$U+pR>Z%8C^W~CWAN9=JQv`&GD$nX zH>?MCDU!_tVQU2Nj~1bMBr{*91<)=xO~1Z{uP7I|2vSE|I>BBG7PScq zIvh7mjNwINAccZQCCRtNe6(VI15qHX^2)_k5uGwUBAO|t6dw@1T;R$%7AtUM7sF%FY&$2_ z>F|0TvzP7q3aFdNd+rNk7qnG~(N*U|cyo*2-U7Rnukx`*iH`=yjDLOxd2{D`=xYI- zcDM2ClKT9_ zlH~Zi1WD`#*v2c_R?Z5miFU{|lQ2m4SBb>_^({k%$aX^-($SXW*L-Ir;G&bOdClF? zC+6rON!T0hy@ilRB7iO{=+7YF*gGkLv)YF099vzF@D^Lxcfl!XYI8lAY~agRf>A2= zTs`7QpR6{}8`&|Z8Ju)Xfg|37@YY}1k6@GTJX_Hfea{wFJja2W9=@<-b6Wr5)wnGr z`VO-mRxikK$?$+TlceDtvX+iacEDDe6j%DLwX z2WgpxgPOaUrx~H*&D!_ zC{HYPDHdFg?O1~h)E?7(jihbutQ<=j)A{!oZ#-r-J~GvY16?jKHCGv80PTf*(QJ(F zGTTP#Pm+q#78=ap#fX5H#H15N6awkQBQabp3VlcHl_T_^y?drlvWHUi(p^WYwDl6Y z)@y-TTAEDObeZ4Zc{dR;1ERg~6e;J-rM0L)xX?&i5?@ARV8i>;rHwqt_g`xY*K3G3 zj=l{jp?8d z>V4S9=>Es?=A`K}AK@Zha72qpZc*ulbc`)&UZ3GrLe8*ZqjAwzkm?rTghxr8udYz-QB)8&iOW;b7A?VnJ@^t-+SN6l&A z8G9j`@kI02+v?l9cTx;z+CgJl9A%&jACT$Sl6O~C-JX7V_0p8_#$*N*@~B)*?Egkx z`6_4?K>x&z1^v= zl3ScEALt=wlPIC9G2MMMDXj~4R#;8bLZ6hZrpM~@L;Kz-MXU>|n|}rVy*0tEehSk4 z2mJc2Ly$x7Js@sjg^ST=iQzwCOK~8x81j1=EIz#jLV;^&$UO-(qIiI?eARmWqcijsno&WY^V8 z{y*9$b+f_ENNvjFjXM0);+rnOEQ%XS__AVzw9vKAeNJiga zS`JYZsmYmqlCN>y+6yTiLxg`UTk8dWQ?}Eey(iZzp=#i#KQsa=e6ss=ZWnHqSPqaM zzlq|rvhzaG)S@BDyqn^=YRRwVyK;2QAU9l2hV=1DA&fyv%{Z&@75mdUZctfovnI5ekQ$)tiFJ;!zVya#P2); zH2m%kDgy3pWBg%^dgPu5pvz~HdKdLpgkByJCJBrfU&8_8c=0R9UKc#9DZoA^i#Vyk z2s>hQd1_PrB@zt@^V@?=i%19YSOLizZG!65n5gudr5b-Hwly6;tT)lKF%xoW@eY=Y ztcZ^V#yi6vk^Kla%-{`xfm9^O&tMMt#c!n`&JNn*11%pdKF-+Aje0VOSouXyu%85u zpk1Qkw~s=M`D!6W{X<`G1YQ0rBBQ+u_(t03SgNF>^!R;DW&{*9MnJj&qu`!&{<5W` z>0;JhSOObRS$Hi%Rh7t(y}-u;>c6h7t7q$-WU@)VjzNWT@p%f`8DSBxqkP4W=%bqt zb2LY9uQlG|SMB`60<1NxJLGaBL-?5RwHHASsqj{LDkX!^Fc^%VBNHqecRh!?h@@O; zIYbLyoj?*lXJG@*8wa@@arcFfY?v^yX_>1vD@DSk1dM!)8b~7#rr2%>o}*C<_9w(a zHkmt|$PKH*^c$ip8AN>QA-nw8l@!U!_rRq&dH0C!+iScp*FQI%I)i_}&yUD<)9Y}; zxM}KTyLWI%(T^;h$<;P$TrjUV9M0vTQ~l*W?cr&*UIE%8e2|`pu>loThqRdxhsu}D zZrNmq&tRI8mMAmpdG!5p6s|)X4HniZJ~t3O;RgHTZ|V~vzxT(JhIz3>am{42iEZFt z=^$#hQ7ic#yLdI<%3|nik*e*4neHVqbA9+zfF8K^3}k@hOa~z*)O}EX#54J#tN-M2 z;nPPO0vQkL96;CsiG)I{TaowF68PqTC{(Of4i?coXRYBQu=Xb90jq3JZ%*29@5z&% z1VK;!=tzVi!U6x8&+H^Nk+kw@HNEWfaVDxjL?e5Iyu+uPw-#xtIz<8n&qY|3RJ~Ap z9E#9u(@hUJjdeEq`E1d+sv*Hx=ZZu3C%*tWMQ+|bmx?(2Lgf?oYbl`8gLI}gJMOXu zg;uMtTSOXqsr+#9oyX48q|T&fw{m&*^xxUG_A(EAl|0`6{04|XN2je|o0g$aTJL+| ze?n>*|aGJrtOD`Oz zE#d0hm-qfYaJT)p%lsm+C(UUYUibKrOC>M}(Tq?0*~e_X$8+Rr!JFT=(|4oXOo2_% zKRL?ebjkq^r)2wS6i4Yv4-X!d(pOBy4yXf1zA5y_op3y);47^la6Sb@swB#O)EJRv zl`Fl9nMJ_n-#jIG`1e*r;FKf?>kZx?3D?P!1%ExJnQl5(K;dN9a}@}B2Ri13Q1VHQ z-_{a6n0~$5`ptE&)Pg8zN%U>coI=WVqw=gW>XK*>8>`jX z{8_{L|LlvrQv_gW&#fYDD`*IykXYGb)c2AKJm?*h70}~tNz^~dF#|jrpl#Sz-GDX4$kWwU6y`bkn|=8|kjvc`Cjd0ZL;v?>9)eZFd~$l|&+|ct*+s$Q>-^Ys z+r1YAWLxeFo=N_VLPBSDq=I$G-*Jhsdn^xf*KSvnMgP;b5O9jX`+x_#FF*!RQIDFN zJs1AE&wtnCQ&4!j?8nOBUuQ6;pT&2-DCv|^&0if_#18Cj1*vH~YyR*+Y)ROQ= zcYkwgyWQP%9=yb``$L((V4i4j*Na@2Q~$b8pE7tHQu|xhUBjWt4KmWYhwH$Y`lnm2 z##U#)&t|zr8WPx@8|Y$azT1 z^;e%bLg27gvsc+aclkdDu>lA)4X+YO*Zw+#IgL5Uo=^c%A5dcDI3!#MMUYz|Zlbtm zWBfYxm0lH4E>Y(N!|AC7Ab`9y4nP|;#hGyuLOG$}bxFPPVB>5rpi8CCuGREr+xtRA zf+u^SYF2d2q#6eOqGUa(b`7kOXjp6=o2ca-$8D zb|@>YAYF?GBAb^R*BanGGJ^(YzVvHnK~7eSC2nKLt%JikME0Fk;nHSt0Fde(4u`(m z@nU$ue34(J3h?^lAX*^=@D<(TKn2fd-WihEq~Td_I@sb6EqN^NED@hm5O;@9)egWP zJ-p*pH@5r2m5)MuINgu$bpx(gR)t_JXpaAcbbUBDsg%b12 zDe4EZK=j_eF!uCefE<0Hiw=Z%0J!zF)l5wi5OtD^+Ov&JkdguV2Xu5K90;wrftstD z<5WrUfs{%6M)J(@_gjxXMWog<0N%(1!Fw7CF}2VYiLI4)zgTPl6SN%H?LM_1f+UDF z0;%eRGBVA|oht#7VDV>l?-;0+YjCYO{N#TP5JPxv62 zM<~3T4+oF6zJ{< zOtE%KZ}L9|bjWp^RjVK=YnH&Z&ufixjnCPzNq3?rK-t_AcD14kj=cLp2Gml}{%tV3 z(?C4UE^h!LjkBTBy=SHC!LFBcZcAmOKfZ&l0m0v}4)Lf`n-K~>Ig#Uxy)`o#;xkK2fdfC52nt9#grtqWU0R30pZAtP@zf|; z8Hh^UzI?aB_Z`yXvV>amboxoPO6Q-HvL zH^nBTZ=;oG`_xmBaxk{X!7zy3S#uIQN0w#vMgM{%e-GM01JKLufdRXbaNzcMx~^^` z(Buoe+uqfkpbeash9%4#Qa)waR6Bi%N{t>;KJww>7wg>3PqQt6S(5*O0lw3B(OC|L zKqSL={cWkTY+p~sVzkr99m@uKD)q3wvnxF;DjBi%Lw=R~U%v#FU%dcG#V%7#{)Zarz~0y`iptK43QNO6f;q&=^qkq=UsfnRpOhikm6E(UrNq}%5*0A3f@Vw!;5UtU>eQ|4QeYBG3&-Ar!5oh>ha4A zD9J-1VhuT_WHt_i`4hn@cBj;iB}ko9Kn?Xgx9vBAXGDl1wFqw(e%2sVZ~%#M9I=xF z(eMi|U7qv=tPDe<`BL9C6K9ihDad5&R<6}m-`6*6rRSLzRW@w+#zd?k0TE%e(J`LQ zDS%K|ueS*+n^*~D&SZZd)kS06tHInF3XB%eB6s5hiBa1w5CuAU_bR}d79#SZD6kSJ ztJ$Btv*@gH=A5onz&L)&cO`S|ll#qUFo1RG_was%08WtMpjdq3M(a_b)=y_X`)TcM zjX_zUD+BF-|EhzAuJ&@nShW~#LvVKXKNI5Ky=E9YgH&a4nG3Vi0`MlqE_mB8=xPqY zSj3Aoif9V>h41*<$pFSn6*^H*OcYvN2HDVurB45Cbop>XS&j6l5 zEAh0cXi*|3^7iKF5}M8N$A{s@)Aiu*903tVY=oc&?L;I3@3K?UR-H-VY|GzYMpps; z2tjst1WAa89QSyngBH|%4j{%i=Q+KBC8#|ftWogx<%3Ez2YG*>-l49C=Wate7(Z-B zwoyJ*1}aJd&M(*4Z`kvkKc+k5csgt(Q8y>Nyf6#1#J1Ag%T2WgRwL2+S*4{&!JY>C zBUhA@%bapY;v?8gPI1hv_4>sdp;-f5wYeF7N8A6{Nnp7+AJlYVnk`=a0dER`W$RUS zVQT`9ignP_(v4S@W2n1HFoLnlC6Z1F0qAm{xcbiK0>S+GZQssig(8j-Ly#tHo|jy5 zjTqgN4-~@dOqd(L+AKv`>qOM^P`(@-zcjXCk!(jd#pW_69NPCKck_E4+^M^m8Af== zh~z>v;gZHR;>D}F1{!KCD+Y!RUy`)FsD(DixXcU4A&pCe8LMvKaT?Cu_R*wsV&MY( z(K95?!Watd5p4~YU~l&BgnFE^`|1wNDdM%v!;~ziP=}#ji&)3n#@wX@;v>5cKQ}*} za!h|sF+~r-NpE!iHJAXd4m)*-+gJ%7k>s(TzV5=}v0B}Dr32H6K+xy*Vz_y-U=piT^4WoV zN`BleaRv$q=XH+2mPs&8W?XGCCUK$eW^*>L&}}%lJMeOWqqXvKh@b=>E;?0y=N#Hc z;3_gH9~#DwxJHcF*O%u6Zj;9$2ux$rpHnqy3(CxWb6!v3I$3iu9weNJL`2A?YmJyV zp+~3KHjnW^GWEV;TM0(z1oYj3E?;_n;PG?^uB(0eXueu}Ijpt3C$EBiI+fxB;N!Ni z)iQ=lCL@mhW3d;}mBaWa$nSJhr#BN-9vx14ICd_lb1jPKID;v=y77HEU~;xC^n@Fk zh-_Snm|AVnp5u@3Lv>&yZ7}wLyqO_Re$|ZZ_eBPgfB} z(Id_!+uzZH+N#uSsp{)Di+8DdwCVe-jdZURlRZBO-aqMQDll?mY`sIyVTR56BHc`j zEZD`_EWSv2oujYxCgEnpQ3BVqV0Ne~!?-w@S=tn9#*TyYy;Z(6D_v6PbSk1u!v(nW7F+OZF&>;Wpsj_zAp-D*@lr6ukfNC{7kfa3Z=X` zM)G|%MrE%);s5v@*nRHaqhD>=W>qah)` z$2-=r!IA^pW5CEh%%k=aR-6fePvcZn$o_8tqNei6vYT7t3j3;UK~F-E#$>xYfcG=gZn2UfL4~$KdIdv9g_dV&X0Tyd@#=M4G$gK@Pk;jqz(N$AG~^k3>0k>nU0O*TtH2k zV!wSdM6-^DzevEge@GIz3?h&dYBZ|>=Xf#Pp&AcsI~k)QDj<;WN52mlYfE?qWSMjY z<1hExK7`?_13z@mdtR&PzZVFKti*Y$7XA2SPka{PwEzXLG#lEJIM*b%`zml-&-<&P2RjIv#YrvgL_C69}P}LPElJcKxy!W^=hh4 z(`>~-$R}9tGOp90F4_GYfeTTBvBYbf#xHF-MF(lEbvl6eAFh0f4dkjGM-^o$rrTYz z_R<{Q0 zl1-j1;rAe2`D@m>G1ICk$4Bh1ZBtHE13}vY`Cyj&DRfU=ge1pg^$OEf4hA3@#MZ&S zkfR-530t908R<0wbE9(fC}FS;+ayHREO9jLGk{BX&6YZ`o6_sZk4PLDWQSQ@?2~Zd&Hpx!3Fjgtf<@;^I_0k3` z!StC*uhTMb`4^fx%9py(r%;aHL_Cogy$O}$83*pRxG^1tayqs$@r13Y4TW^tU9g7!ULQj9?nM zb`2!#e|AFu=81lrKzJ4~*pCD|yo$*y=&5kAU@KNlKI9Z?PCBYmB{a9zO6vqC58b$# z%)?iD^?pvOv-y-|sf6H+p%>i25FIBBFvPB#rob5{JiborV=+kwj<%b^^mJ%ZGKUa1Cy%{-Ca>Kn}I&MHN zgbGeFm&PT~t#;_6?%-2gba|>AtWfdRmHjs=?r!+>H+G{de6cWoxIG>}Cho_hm)X^_ zaKS0frW^Q6c{J(Mqhl5W6n}aV(8KEnrAtV(5r9FteaPlB>7#@Lm>qx1^>`}t_R9;K zDfCu40aOQBy9E-uPKt|Fyk2wcNv#maZH%JOMt|E$%xOWYX47o6x?A;gspm*Q^eJ{x z6g`sK3Giijd3^+5@?7f5W7h!j6oG!~OyU_%pIJ?lS7B@9)Yty!6Vv8z+X$1}yU(JG zRxhj1B|IK@tYSh~*G0u@rkfQe*e&0a9XSayx7G>-V8JMmixtBx@zFWf^t|5sI*W-_ z^34mYFG|4}j*L;2PvA?Nvi!iG+|AeQt!rGm7v_LDbNuG>evQRU0i3DA@!~s+@Qt$U z+XK2u1jT4?jHq_Uu`vY=B9L5AnXeKsUGKg?|6zXk<}1@zw|Qo?b)6d7%(rt^B^`H| zAGy#tk1Q!{?x7m~b|#&*+-E%Y9wY?ebTuJ&rfcZ{V%U^qPTEZFttLE?be~I+ZT~qs zlj4juvY)C8wJPz?7(+c38bokE1!K=?8fkLuE9914w{bYieYt=_+_C@LJ9&@#fL2}? z@zJGcQvwmhX&IDlR1MtlHRN&$&vb26IGuTt)2G?|^h&hBi)7ggx5v=amM`hbdk%~j z=MtM03GkWto;pCjIS6r~JT#|oi00Hcv7x%|OsMW#%>^ut)QzykbO9XxyzW8T-5lMc zF)>Gx9UYgv|F8hVQ2MlSZ{bm_slHJ=@&eY*{P<^2b~VMLe5hzXb39#9yxGPXUvc*c zbqji@;oR3LMLuWJgI4E00EbrX3C?CE(?A)c>&Pu~@Ug^@1wpSGOF6Q+mKJLGLNaSc z-~j_GN0qS`w)e{{%}BSaZV)c^Y{%huB+lU4@_W|gZOkro1V9P&O5M5-%hb^QO3xJcJlohY8O0UT#)J0FR?U)3!xUQ7CTZ|{G{CGidem498lvDHg@A%~B?L(4> z=BLFzx+vHw4(X#YOwHHA=c!e5g7)Nd$Ql-scVWX-{{>6*9l!Z$AM#Ri1kyE6K_Xm-#1sFe zA|pFd4aU+FEu!CO5I89NN}KOFlmyZv{iG1H4)j}CuEz9UhBAwFm14pqaaULEoNkLP z>E{}vt|IkdFp)^jxqf+WuPoR_8Af`rQeQgSygCV+lu}_1E(2MlYxeZkWUS=oSE2V+ zo=ZP%CO_O7F@H({+T`5p*=92Dl~ao3sZTG*L1iDZAvytSi40t0VYFYl8Cx0 zpGhikOnEQxA7o09>c)dBO3k$^Y}Uzt%#_+(%O)tA=?bstJDl097jvl^wwOQi{u>8K znc@HPe{P$%2yi2{!rq>|10KO_#Hv!Il36Faf`Lfq2vO<-0a%fn-K2&EA)L2VaSUca ztty6bUscges!|>onhaGzkN3sRe|qDww&eQBLZAKK}jkmRg1vt)7;fKHEZ`k zo<`D6NJErs+I2M^wizwKUj_dAxQu?AZikP8ai41hkb;5q6VePU=5z9e_7DtorEoJ;#yjYa(!cUEN7irgJily}1$>!A>p15!728>4E#A z`MxT0-@2#DzY^YfZFOT}?AdUY9KHY&(VfUm#=y4G0NK;9pv(AF0dk$VOVJ>J(CH_g z>f&>0d*6rwFFGaFZiHp8UpD8+<9y%2X-f-6uSx5p3AVWKbvk$6!k8F!EerG!v6O4K zM&#WIvwk3nc6~FW^;{HMyR=u3Dox2sgFN*0Rk+G;g^AxmzQZ)D;iccA4|hl^YsZ!tZJ=7j7=VjPO9dvW3P($j>GS0F&}xCnnC6C) zAheQ3)(kA6;GNMBT5rOMrcCn0uk|pH_NLo{LWBN29~|uX-w=Zb_3r`>HH|}ud`i$G z8CN-5qas*EmcTD6RZVv$&)p#~Pb#!U_2_HmI9nw1%GT-1=@kP~Z&>w!b))Nr!D%+( z7*ns;_6JA3TN2p$<;UCc=u$}QX}@oNac*%MYV!3MAlLI8(nonjyIrv67BpaO^;s+& zp1&)T+wD}*-<^Q)3L`#RaMi2$Z{NX!PUGS4Ft6Fi184OIO{?pG&%9UUMgDD(pC86U z5nTcTw8hu%fW3q|-%f|ucCaaH=6gLd8Wyx{UHRz58;JVQL_OZcJoIQ;fF>ikInj8zeHO50qI4Z0s4)O6Gz!vCHUa z``-lN6q|O-4GNTYDv%> z(JoKz!2z{LITGOa1FzRo?w_;x-kijuWw-fZ*ht4VEm5kgt8%sdJ_~>5Q2Wvz<#4wG z<6|nDAU}cIabKXk6fxlG0oLy4a(FGxde5u-8@?v2WOI(Lq~8uuK4UC;)ukO>HFqclGt z8O5=wi?UM{m4 zJoF^^op^CjlB5XhO1SV*cg?3JdYydK*Am>H&lN<6LH^9|##NsZcy$oSo284IMcgB9 z*3DgaF+ajpDE1TEhjib?Q@Y~7fI^Qw9mb?A-qjNOF+FBB0^iA5vP%P)YVKqoZ5xX_ z$k~?^LeQ@eZzNPA(d5O;+lA_-T5G`hpfNKYm@1AVP_$M!|FcoQa$xUGjGe?{$8pyf zYoq!@rb1>HN`@p?qWyTO=CGm2d^-!y ze3!$Z2)oZhcdgd8c#+AZgC@g_0}usP{^XP5I8&Ng5Od>xW)?v+BC$I5!9JY3AWefA zf@P(gl7$eAa%JNxm0vBYhIK*0g1BgfqcK+Wu|%RBg_}bj*?68*-KS3bQxNwZMAx2z zk`HYX((ihAoW=&_Rs5Rv#jJsgzwe~&SL?WF%h*g))3%+j%{4&#GQy1d`UZWI2gvh| zoK9E_x+Q_>%TflW-$c|VY+&xEhBf!db>Q;!bj*dVT3sU5;d|3~8oH`yp#XGiic2s> zZy-V`_JV*kT&33iO9Jf_Y%EsBl*H>ec=GS+HPYYwFM~TTv|7kw>h%(>_%Qzbd@k+3coNRsC;CD z8pEWarDNN&tndWX%gIwd;%ndE8>O|QY5G(L%}1A@eTb9umRSK7E;_Z1SJ>|QoLXaM zu>shRYXyr^O8b0#r!d-D_JiPUOGt6P;jh4NjIa1mCC6{xr#;D@+j&+Yo!Q#-E&MP! zJ;Cou@1tj7L3p5Fde7@3?HCRERidPJ3h#&~dE2f*o=z-fUd8BXe4T79 z4%onx+tX{el+U;@mbQrDd^JDi{*5u@g;GBxRH)Va-)^-!&Ho@YU!W5B?ugnH+oVuY@&SQP>`kqf5UrUT?UP2z=(3_ug~2{X*&|od^IO_sw?VQJw-js zB&Cx}5j!MU6hXBioDH&lq(0I~1@q4A&qZ5i(dnk>U02Ng<{6S!4GKp&;uQ7vne7M( z94o$sj6yvNNT8y)6k{!-(v6di64g4!Fb$e14Cx4@a-xssJbQ5lRHdX|&NQeewcNk} z1f=i#@UbAQ4PDKu1A8tC0pgWnLPs*)D%Epc^trL|Tz%ofnacx7?A zU`Z_eJnw}O97>CH+iKd9!@(Akw)ul~1f?)N5W{&#<|E@$Bh}){POI}wU0y&}fPGtI z{%v=$eNr0WB~!CD9EIH#Idjga-yo-_xQq@F`=p*oNE-^8D^fcf+;h}dt=Q=+h1*&S zX#@FhihYfyXR&N@lq@rbdDaxL^T%!oN_7^XP06zf?dsMSy^xvhN#ieoM!$Asaxc=p zq5jJtF0#4%EF$&}wB0c|#rMh=wO+K32fwNaRO%g4U`JlFStBvtb_n+Q{E*8?H*Ui| zAER`%Z5bu`#0AQ^W2UcSs>>FcR6Z*2U34WWY&Kjf+CwQaTTz=E zKgE{5hp!v-5+A$$(+Ru%5z7lctRpu}kj0SPz0|Yt)Z4Zj-0jqfs+=J)1cD^;E#RUQ zm>27{(3>B};mAYexM_PPDiyEtXO7o<$~g z75w!>9njM6`~Uq)|96f5^~e9l$DcI|d?Ww+UjDy3e_TNX-NkK=nyGt$>K@@h#n?%2 zZMpT=d>eEcN?GBHdZPAkYyd#ckXF+&sAIm`@B}1ZKU(VDQ2RA`s%8R6^}|ua;a{}r z?nU}I_d>NcT7j}V6QmqOoR)e9(rAP@On#u?SocT4arZ1);q#|AyUQyw4i3!!qJ4EhFKOK$4gam?yZb14 zoK#gfNVyXt)Q_S2$}6s)ZMe95(T;Ek!glzk_t#3wX~2sLymRrswcQc=CuYA`<^Pb& ze;WAZ(Cr22Ili#_3Gcq7tI!g>>97#>R}Ws)%QGXTTH8q;sqRjMx+*9LqME4-<^GOf zG_5ke2il|#OBFIug4R<|{Kc@hHQ+a2o%esS_vYbLzF+%ri87>A<_0R6wap?^DMV(Q zq-?V?W)9h?P{sx_WGeGEY#AeL5eXslSV`s#nTL&c-G=Y?`#$gQd49+H&+jndTs|;A)CZ%r{v#q_#E`7~!M{|M-~#Xz$spCIT~F^0moL8h zA0uFE<|pAoX33ANacpZ|D*o#%H3wE8ns!?oucRSf+0dFo68dQyfdmtC@4|tnAvaBe=Xy@f0^!_`$_24$&!K@B1 z*j6e}GRY3_h3kXcyVM4IQea4c;&k78=L<$#YspBx_3nc1asr~e3^Aatjojd;op~L+ z24L?vd)F<@|9%kd6ybdFU4dj05aE_;ytj9BLlWrVakI!11Gl!XAQErAS^D_T#b7%A znX`Yk#y_vqKUU-aC&p2c*>&$O7T_P-_K(~9|468iFg81}#W=g05>@FKHy6{g7kb=n zG9ge4rFb`Jhh9Ym0=r7_TvDe|){;J(0PGk5_L2#LT&;rOu4j4S`UuHS7eH|OL0?YZ z(%+N<<3SDup$jtWb?)Se?r{3B z*W-~MCMQ7Q(+GGYR7n3*uCWUkNVrMF;6}tOu4u-hMdP3f2y!}{CRf|K*`k?kH$j*&$Xrh2$Nzh6iht5)lPoR z0*PzFW4Xgp!bH$F4O+8@mJU-Tsq#YgtI`WV=Ai}|W5eaH&(idwz1Ddl$JT*E#sbYY zQz7oA+7c`>g6WECd5b8<=1gRN@I!=A5Gm?dqfphcVUtCpq0UIMz9FRqQivic6b*Kd za24}M?&K0nphNax{lpKTALUFI_WB`xPgAdp1EZ+&(t(q-d%flpS*VeojA|H?IV~D8q+(#;UdA^KeLmSXyWR#0!)%~Y1b`+ZB zTL{X6*GSxG? zip{Yh3Y}9-hzjnOIJOX5y}1QI@&H}B8Svw7TrjDEwd>2DX0kGK4MG|?T|JMeHBm%Y z_SoCsC(iLB+|Jhe-qe4^{*Po|4l%S0)bZehTB!CehPalVJ>k-2WYj1=!h36hWn;#F z=FMSG&OXnj{(-YBD~iO_>+}pwD~P~no(E%XUfAA60KW>xz*=}t=9O|XF{~`W+Q=Xf zt>@hc7Yp?MntXxlm4WiBB0_(RKM8{S2C6pBScSHfJxI|{_4xCCFk}F*b`zgMr%NWX z5#nQ*n`yGu78mSX#I4*G3!DMqKn^RUyMZkFR)V?oZ?Ij=`)WiWlt%UHqjm2KY*x0w z0vunyQC{?*(`YSS%@cR8X~t8&WZ|eD()_03j0w#M9PbLp9W35Un}tJLCu7gL!ni0eSQm)c0OwYa^WoB3j4}WGl_1sxY{<4mdNpdwr*v&n+7^zo)9tnP)(i+)ozMI=%c<%ipdyZ>39%JHh=GTN&_K# zz7;;MutG+o^y#NIyK<^S!v1+5Hfwh?HnisnJ>x%GxplxhQZhOsu5~xA$+7lKV)|On zP$$BzpO%7N)nfF*F|(ilokxHWkgDB#N68A1K` zZ}|1ujI<*cyFCzzu=h~uORTL6RL|{wCW|ys347Ol{Yuggq<>7cHpj|BfNrUAol1YJ zv>XYw7FG&?4)5$bpbPE=xnh$j#iiBqB#(n{2c&-d0DXMX7_dg~)P8~#m&{D2+~WSF zG5`)U|M-9hDM9&dNfpBf2<4fhBU^jtTun}*@)A?UO?CE$+a+~2LLF&AXMO2x#=+`u zn3uWX9Uzr7gVQbJ4roGj^}UjmXm%gkVoQw~JOb?M zIl16+?<&d2pB6G}db}f(VHBN#*IJ>?*?+&;*a@{$C15t)vu7aJcDtcg4;q&L3UrHN zm<7XTtC=`kQjdxzzBIbxb$b5`GjJb=z&fcl`Te*h)82IUQSGP1%#gpp{pA-u6b}<8 zSJZlH~{b`V*%eYhm^}a-F;|9<)Gm0{M z_0-GdHC5+q9|o|C1BenM(hY|ru4zPk!4YU@fgTe;Rt@F|ZK;UIY6;I+oJ43|4T2@W zL1Jh8_Vbiph1BevT{Q9S^L4o5F$DB-Dq?n1fx3t}dSM}}6oYSYTCHoV9R3ntpzQd9knDgtBuG%0085~gB6fWxt zPIvtHaf=Sm9G$)7%pz?iPE3O^I=moI9asJ$?74$Cb?m;y4)%u}@oXDAP- zGBg}^r$*Q@zF!NUD}N#)8g>b4S{rlZ!m7Eyt39DKc>Wgqgu;FSe?$|%MP%On?UgWR zTYwS#wO9!%u?=3&JLi+$7iP_Ki03_cFLo&_=spox)+rHd9C=7iHi1IFz8gRZzht0=`skHc3{7u}#mz!u*h`?Y+`wAENu9*d z)>*z-Kw%!HbcXu-Lbj`lV&|nlz4?t}oE}L@vt`qsc9N10wbT&V!d%R^%84#D#L1YH z&T`1B4%MV%Se8sfQ3Y+9o(o!XGY;buzXDO;9VPxeMZoaTvWfn$km5k$A*lA9ohV^z zmH}tJ`G=UaonewCk%QJ6;|E0`@pRHJKU(Rm%@vxji)-N+5TtkR0s{6v!E+Q*&{3Ri z<01*ix)f@RBmRK{NM4Ds^YQasc|pp0F~lBx%=HIxg3<KDzseaDno5Ojs=>h;#& zok**KTE1Qe{OIxatO3u()iz@J55LWoa?iet9zU->=gpqA3ZK5&?eK+de|J&L!(zat zpxv|+K{!=}`(@4_CzEPj6#k$M@x;5RK8{BXv`emx17%5AouYp$3 z+uU3Tsklm^D@EXogWZaLjGp<>KqX~4iYT@G0ZP2Zrd`iJ?#HK-H@)?InA8pJ7meu+ zMIE!Q%~GX5xy6<^3EcRD2+{2`N=rgA;m>q37SCh(CzPN4b5^xrCvgBRuZD~R#Wu2GvOd&AUpVn*^iwmoL$|XDYz#Bg$T^>HpowNCJs)%wj4 zbs_9ZvO|%<$3Lk9QcFpt=S5nx&k%B@d|Ub?%4QbN5^{4>wJ_=PeVIf(aMV2Ew?4Xp zfcIft12?mVn75whjqY zL~=qPFFXD@op#KpS{buLf};zWK;jjeGMiHKx{!Msw0qHu8=wG=wPa6mf6JJp9ajou~vJ7(9&P+dl4m~ zxUwae+QR28y+1n@cKj#7->K*4zYwqNFOa$G{`IGfaQamr1SNxX7qCsyIS~iBH z9ysHJNOopRa;gkzE2?__X7v^|#V(wEJZs-T$-Q`7GhFLJs>B7Ruzl2BpC9OQiVd$- z%pr=DOl;=(k#~njPx~8YooQ-0^)>LfL6cQaQ}}-`g9q!p?mIepMQhRE(RbbMl+mkY zMH2mwtj40Mm2H_;e3wgp1@LT%h1y+v>2`&3NcB+|hU+EHx?4wV<%&6DDkE~LIE+XJ zezq>jOfZU#nNnoQG0>zu1aZP~>zqrbk#;5V#(%~Xq|MDHA6CVB_D@W7ZnB1|NA~S6UA5_xyumN(PHUcdxw%k` zFN@n;l_HGfbj)QIU?*k_I@`@AiViKUm*_6GTa+)kj+LRwZ%uyY7Cw)f4)Y*F=j3em z&a>XKn$W2JMTtYu@x7!pvU_~ODA~>tXR9`$xp}XRyrp~gAoTDNMZ89~QAwvqI2B>` z5&pPc={MwXWL^`*Zrd|;!L*iULg!DjL?5737pq7u^Ru%) z=p81|s!o`Y;kca&1*V}THQfP>dwjqC`Pk5t`8K^B`!Vi>SQ^K69QwIPY3IdD%R>u< z!WjQOBzKRo5|w%b1X+-$+Dm%${Ii-FtHu~{m-?5uqI?x~BVX=ZP?w>>WI%^*hfOjA zwCrji5n3l0685LcPh8T)it8VOw#zYb`jk1ss=kiF$HfXU$F-fqJzhs${O#bcHicR< z6DMj8x{##@((~oM@;~LCrdR%;cv5+IN^9tl{6(ixL&Dqi$+tr!?Q9D~oM~_32Jg5W zMQe&mUfJNo3$q?|>75+_5;7}dslTQ0PTIpD9`ofE1)+4@;S>pZl7{yTPjE(E%+~m6 z6mw*IDp6>c(FyOKQ|WuItF+Qx315{kdN;&FuYIQ%D815mcod!9KSHg0Fb+hlQr``X z3~}(xbPCB^XzCX>u!4%LMeqJ0+$$#NK}|i;=l@~A6FU^HRh?#R?L*=$*d zE!;z>$dHM|rS_fHgy~_v&+}gMz3vp1-xOYoJ0a?V{o9jP>C(3vGlstJk7SW9-gjXE za}hLxD9fKujdWgJ9@^keF3&+A?d_B+!sp2ZacM6@LmUPoq#q}+FGy8K{$;)p=K&j z(e|>Pw6!UHndq8o(G+LE67hbH zoN%}bl7um9&zkZLn{C5}>hn%wv&jroYpXB5+)aX+G!{awTl8lnG42-Lk9zmr{%_x8T z2^QO65N+@8zj_I~oE%EdnWp~8!Sj;Z-Y!7J-u{4Xy# z7>Gv`J2b+TErX^+h?*Sv>Wn zG-%e%wH>?`n^BNmK?w1oy+Tyz?jdxcJHb!h5i()bCoGd&%t2C|f&+sHq(J!iqD ze=II6a~^A{*2zvQ$!s2Y5G7EHml_wJqQT#7O)(#Bep3iNk$5%9=insStFAitr#&O0 z|5Xtj?Rtz#GD`BPwdt%IJFcQz?qtN3@8K#6=h5w;B+!PWYbt$weMr3S(vten>kcE> ze~VF+)$@`kHT*H|Dcp1U)vD8vITCm#2yIXZQiGqJBOd5+`ACMYf#$N z+EJktH%NMeQZp9MOOh%hap`YA6u-LXm_Az#uFS}!kr&y}QpBhj#yB2>FSAM&cS z+I5Gyo#JrOZM}-&Jidp>4#5F3+zlE(2iTJFba2n>pEiXSC^A*G7O6NN~DOQ zr4jy>X2lUb?)p#NPT)@y0|s&Y?4;u`K^eB|ZW7z`L;jnBO@!!x3(`KB$f|hy6XfHJ zUt2Ix<R+4h$>=TXltsG;{3hdQ7oBs%*KC+G)OIAQp$*>Sq32rv&I7c!MX9#}roP>TH<{3S- zf4KTu$^u1VbY(KQv{Je-Qyyt`*MjTSE=~&1fks*Hv()TLl$6-!NqheJ>{ey0X)u|LAaHR7H_MCAPBOA$cN*e6dy02B+j!8BlMz*CA zl}dO~_}vrQVY#?d+U5sq?A6)mq@wzYx#Zudd+fo8`aVZ83q-2R1`TfMl5eBE7hiL6 z1PLdZH4e)ye9A^n3msPYIsJ&s-0;_WKCO@O86z*4?X7qs9@2?(hJ88wm-2R|O-PBV zmw4x*8v06c(NlM(XKSZ=8dD}ishNdm9PTEKypPphPgegzvA-Wv!P}PKPr)6__c;0C zdDP36ix~k4#vk9#H9AlAb(bIabq{iL3u&~k$)1dWM|Kav9YJ@eEUCT0b(+trE)O|N zS2xZH7Fm`rrZp2m4l2Jl1##zy=wn~!MXKOyBM2YQ{7=`r6bu1d*pq*Q6*Jj4=pZ$q zdrRk`Ju3~%-b(y(CfV6b+eT@x$#qTe-mdA!*Hk78Y&85ow4|wrYo(LvRM$bTXsaT2 zOZ{j^&Wd92#eZC6Q3DZcOykFs3BM)wKEuV&GZ^-34ZJvHbG&U)`Ri#OFM*Ib7Gaxd zZA@lX(f6K3Nv+Y}(tUe1pUo+1Ehp1xOSQMP8DKQE_j#aBJDsRPtru&Pz211;oOJEj zhu=6Sr$Snf6`>3q3QdQjoQGUcLD_H%mIj;b=^MpDvH=c-_}ZRqXV*XGd=@sNEEUt1 zaI36r_Vp9pszkzjtBJRTN5;#iQ2SP?3A3Ny)Ny;NG~XpoZ4^i6sKs3P29a4|^njxc z9f?(Ewg{Y+lC$=-EnX#ivqC)_JEKhJLYX=1@nyxcbSm*#+KuG`(=SIq3~3LlCqD3X z0F!2tsupisH*2NbP2LGG(5!__+H* zj~2f8GRt>Ps;K5;;22Bp9X#$sgE+=dLmj)05yQ$g5MiEzaqppd~db(k8YngIA z8I5L{vM~pkQ-K@Qje-j6od0xvTPl<#+l$+%o32mh3+RzX+dMnk*4KKUrHqF%B!J1P z41Fyv&VD>t#NoGMZ@%>AJrcHcY=KeO)WBo?9!s1ocS!FQ9ygZ!cC|Ngt2HN~fubl| zi-*B@q>x3(q<`{UyX)7cH(8mK6mbnIiyUv~y3Y7%=IR$@REH~;>fyVb(Y{|Y8)R9MMyd4|chE0JRE zKA?)!(k6L~(YQ8ug7n2%+2!z<0^_9Zi8s9rZsu5hOz|~be1!C!gsl53`f3Hi1s+RN z<`v$1T|A;A@FwPmo>83rDd#;?e}F#q%(El#@&xe;w{ClMRxY^oH9f8xyjY_4 zsCxxZf46CujIcUV`*6>IF1=2a_?e$-@bh>Ei?iNa4o$Weesy}EqX&$ebqGFlVGL9J zWy#JboRrqxBC!!$BUcA)$SQ&Qvj3 zMt3CMt9)fV1K-f~&g3hc#3ww0F5Q}`M-d`{x!x6G1d{&(kQ$4J09u8nX!sQQZ`k|y znP3lNyk`PkNp>FI_#C_f8AIfz{2G239IwPupW|0}YNpz**w?gFmPi+e=z%K#kvPP- zzT9N6L+y(avx`G2(AH+JLW~FEB0T6MEM|XyF>gt_wx|H4*M+)7`u5n1fXi!QM) z!4jrxywSG34(SI$oMlUg!fianTNvg?9hZ8!p%u}DgWT-8BL`8F1&@?~%JC={AKWL~ z_XGR&(K_5jiGjz*8lcvGtKAXfK6Wm#0G>ZUfS%zPw%VA9k(A`!Q84}O4*ZNerXM!n zkBdJK5n!^iySNnB>F?%n!c2jwFtbaq zu&R7aF$@{az_FI(K)qszWW9IBSFMM2T}U=vFQ*5T!u6uN^DJJAI}UfT^2j8$(APda z#t{v@)oKt7hB+j+ze;tiPlZtua9Nyf`(njuux_^(mg5wb>3$R#nUc4K!z|tYGIwid zw49t^UdtKI*2Q5oCW@<2Xvu!iur18BtPA6cyIhXoKnh##z&kr!Nre)I+Ev;LWDbro zV4?fC<1loh6Y2lpDz-LFAY>VPKpnLqh)JjcU=d<-(8ajtl*#zh6mC9|ay*7me*3&0 zK%{LJPoSF?{&cr4sFndlpyo1L1mYKRmV1~7#P?EVn(!62aqDBPP@y*BnI zVO>DAie6iwJbvL`LYX|qlvhN?=Ju@u%W%CCr*!HlCt=&ZF09DAE`~E=wtaU9?CEDW z1H+j8ad}RtVBK)th4FTwl3~clh=ERVY?&&i#2QS*H}SCtU)Mo-O+d(^vEg=S_U(&~ zAgbFNaG_t{C;nkM^gnC51zlqbWuoKo1!(jSkR6DA{gSzlr?y#YmXCtK?Pii^Pd%V3 z+7YF9=BEO<%38DR9m+APYJe_9x;&hkRURYX zSJ0YM3o8J)u%rEzZmEoUtX(lIUE(}pUK4WCN{)Y|xs2uh&%Huk8xQo$lI2XsI`Q%A zkTuM>6&~@h5OQC=%y*~c{0^pzbf5^t7Ri<0FNY!PQK&ELd?zD`BzR+eZKV9rwPm^$ zmZ49Q&t`Z8l&fWrJh=`ps-Wem$2&gR08B5M~HNdf=R^Lb-Y;E1`lDJ=YdR6Wl@I&9Qes zmFL%QYRk!!e&b)0Z30y9bLgj%Tt{1at+vKDfba^>#n|dVhS#7z*pwz-#$7;re-aK9 zWIUgo;y*q*@OnQrGvk6CPkWL9oh{`GZO7e-MDE_cPB_5*E##PEdJG9iG5KKGNLU%8 zaR3i$T9v z->lybg^IWyoc2%z39qM${qoE}ibCiqk;-!-!Mg1c8$`~S64*JDE|*7Un6V;u-}`L6 z+9HvxVjiRuy7beSmFIK}Q{^Bp*EZ3-0>TGT{i^AP6Hqif=)|NQ%+6!e>!b^nSF*Yo z-0LIQWJ~d=gCsr>>X22|s_Yy?SvkQ6Ca?`U#&a@%=eck*$Iu6VE#uN!AgcThs35C3 zb{YA1n@<=VavfYC&M3EEL#!rX`(No5+1?I*R_i(KHaFaDna-{f&4><4e^`G~ovvpw z&A<>>qgksxdavfK-`c9X=}2R&r$46TCqS_Z%HGdL~s??#%TQZP-JaQ;MgC4-v9U z#<_b-OIu99Qx~psKJi;py`jx}>#tzV<$;I~IAxXZpF>&fm_;nZKE%4a1~ZG)*+#X| zUt0fx%i(6gh93{*&endH+{{P7M|9SqY|OM7iy)Y2caQ1NKwGT3Cq}ntxJG;^X`o1S zdb9ds652|OO#KDn*B&bxfe`c9h&dw7O8~-W(U?N2fMynpvpssz1v{fXpqgEslJ?iKzzMa+gHS_juvq- zeRB(BSJCR8AgdxO+d?mY5?h5D;R)u^%@(eYK#9Stnv389ZI+#(pI&#(QsaOK@rCo7 zpLNAeuz9SHuP{j9wU?7cw7i7K3|C8%agzZjZ}MbCm9M7RBs|9W5Ct0ARLBW}1%21) z_o~555EprYVkb~}i?}}}iRcl|gm0Y(>DVD%m|PxBNU8EYS~;zZC3}g@uH#12 zAZ8zn&gpt1jfUR6@3K@i-=|=8rV?)~Cwt3(9e3@y%dw{B+OD&a7vPJb><1l{%f}VP zrONVy)ek`;IJc}~*2B?_f#g0Z@fLI)YH06Fs9mA>uxN zXN^n&<$o-bYm|*Rd!|Nw1x8(ZjGXluN_M&WqR);c+VS1mQjDGyGoWDkE?n{@hg!DA zU#+{4AsB)%t`KcnV(|vGpWDd;_+VclsGFoOzl@>hrN?qPF@aN=v`J>4W%ep_U!c56 zOGR*+&A;1fJ(|eAjC-Y75MAz)w#H@1L#IBpd40|efGiC|5g6OoO%v+q9%yoBH2ve9 zi9#Z`5ZWeP>_+l{ZZTg1mWR-mWU!xd!tWrH@gkW0x6@%H621>{k3T@bU{k<4pxf?6 zD&)4W5`X>t#h3C4NqYtuP~wp25GQ&*OD(QdG3+5 za)wrXJ(E$CXZr_V6-i6p8w%I$k=4={rMuHImoYAbjVjwaplcox_w=kfyxoBj`~DxX zuPTAVm#K#`4S#~0ICC7Eu0ecnKiH5MDs34eKFp}!j=rP(mPE|g`mpq};g`9(1){^{ zi)fu8-7InbWNw0R2*ok>E)>c#Fp-2ScoVepb9x1aer9vRyQC5;(Qfb~Q%|Uu!x|DA z*#)9geoM|LvFVpp2Hq5Ug)j-#j8aA2Jch0sdvpModGXhiv(^}qmD*J?!b-4|uF8@# znAO?OsFz}=iFLnoh3=9nLB8+r!`;JaCYUedf)hT}<^z?!qRTA<+L|lWgyDuL6G*v# z^L)pzv=lGnRqpw!a4$VofRjNnUaCaygRzl*`iyc@bD^5=EvSx6hEV<%KEH6m>PNXJ z^$*Pf-SkPnl}j-jW!Y6I8$ww8p^=F=%6$u`?yS?bi6DW@6IuPUO){Gg9HFa0v>)~H z;p^lClC{Bz;^SaeZNEhElbAvDTzAx-WM{iv;eumEvWrub=8QeWjvx^WGVk8&b%PL@ znaBq*8kGu{>at`*uY?L)6W)UUZzpfKO?IMjP2tB3vThdC?H67h`kt$Mo~T*Slcteq z-8_6^eRUy^Py`-p`4EAY4T&ZTR%41sPDadFLF3Z2g@-m>IUgHdi#2gJw9>1dr2L4~ zIGD-kan_E9D)FNm4^k$tJ;vPC*BE{zy8v%(`*DW@J5GQciTGt3BKs|?1Lz7d5f9mH z4*cmU$QYTK0Mu+w=Lx_JyIj2e27jbvE%2m6?P*cN)`(MqCx^HRPPdCUFhiB7emSF1 z9AVx}9_^_TC0N}kwaE#)SW=-g1{!!2x|N#DAQ@-A1QyTv=ifS6+pTyGZB-obQn=~P zOuano!8H~y;x|9n=tqSY#!X0Zq`lAwKxK1deUf-H|IUC_Zz3}^ja-;hkR4Pvi{qY$ zHp-eZ5e~Ku$c89nJ$S%}5j=9W;St8&H6VI{OLihqQ{LC^Pn5oiEtKMZ><)YKPl2jh z+5;|&4~g7)^Ul@hZvi+fQi+1_Be+u<4K#F{A8>&!?UPt0G$Fu_QY9ITY2E zk*U2Lj_FQLNK<(&Dj%+G>4#F2lA}YfDw&j-p?X6H8c-qQe*5&B}-o6!w z=1I(YUJ~K{u$VxSZazo(8EVC7^|I1=vrE2a9I;L>`jxsN9DlJ4Q1|R_dC{UaH!T8_ zW)Re!kn$^Dfmy5G!mMwLmzQ+UPFUXSad3n5cn?aFdz6RH$&G0c&V`1^SyPKQ#wjk9 z?LW-~NDF5iOFTYP~b8~LZJ@B*CY`FLR`nyUbtlRS9!-hpFA zO|=v}vtA@qo?cSjI4eCDCu()w6DY=opP3Ka940ZE`zU zD80$Kk~0{Cv1yCo%Mi~m(84^ihO`BB#SOfraGo>YfNo*O>+Ul@VS?%dkB;n`VNASuN0borc1a!7g;@-E?73+9F7_hFQ?Z$F9e z<_M$U;B49^Ne)g*F&RE{M}%KHt&SY0(GP9~?F1B;AjL?=SGSH-Sgj!fG_xv;;v?BU z@Yo;PHM;C@KPHjGmyz@)7~t?aGc!$cZMZX{$s0HY5pv-S|r4e?i}?E zG_n;h_Y6dEu&W|r0^;A(NN20?X>s+ATftuo5;!zEo9U1*BY{d{b@8sZFR2Ki<7t4z z?`5w;hquyEiUirgn&7XHONiZgDkw)v!wEmGrrNE^zB|Tv(IxZCkHVuLE(s!`(jK2K zsuT8~jtmD0H9lFtz{E;I{+I`1mTZ(OQj$gffRgOh`P-HqS^ByI?YI17-O0=wWA4(U z3}RmYgmz?idW!7gzf%Yak#f@_8Yv9`zQG`W2#8aN$dy_x1sRabY+tL5>Ux}HH_|D+ z*v-J<%egJM-T25?((S@d8YBlYG{v)#@NDNd35Os|9p4kHu$41sy9rV8xBAaNcj|ob zcexN^g%{9Sly6N+JGgr^Pwm3a3?ZTJ6*#%jofZwJ2D!o|y_xG$cNMW0_R&uLg$BIOh={Hr`cjGchG`T=*n~&$8+Zr}GGQ>L? zQvkW$9fa%?_|55G4pv+9`S0NEU*F$^qk2n8ZUYta*sQ#8xg67C)W3eehvYOIBz?W> z__l_q2|;Z5_>h^y?(hE#xYs8KE>}rEyz%ev$w`q(U}Z1bnuOZN@IdUZqOR@KAz-9Q z$RzObe39Im_U%kx^log8JPD0A{ASOSzU@iSf(MGaY0Dn?uZMi*1fx#Evkq=;n{?>2CVF(%7y51xI{sY#3Au6_xK!!o= z7c&}nu>hxuzeIMn>DDS-f&oz65_v2O)6tlcC( zyf(|2gzua|=UUa>A_z1~kU# ziz8<1I!TaQJLgHpB=hg~EFpFRIM*alpe9zO-xpjBBUE> z=)CW~Uc^(C`h}_jZJ{OSN*rOSDC-Odh zSB}vm1oowuYxQAhUei4}L%EllW>BH8*^d|%Ih_+t!m8yv04$_%Y<gz|+0TQLtANvwpkAmpiY#DUU*KJ1?Xd>$SP$b$r3SL1zBP`nN=d*FePkWccae-o2#1kQ{9hoss0$ z_Jlzz8vs4_(Eh03jvaVPbJ_>kkIV5q?Ua*XH^n6=BK*P%UDV72}JQjub9XND_8rE_fmAtzJt;wv_apS_2Bc^Xb|`RZ%V5BNjJak&2PP5#XdR6DU>F;aUX=BJ1v$4yP;v}( zS}ry`B%^ZJcc(eQr(f_#soPx1aauKbIA0<)Fmo=(-Lmz2G60mA(x1N-xt8_lkVNf4 zCP7lR?Pay3cmR0GVd&(?kJP5tGwptq4}UtQb_Fq?3A2H&yTkd#F#{ZgNZ8>WjFHkt z1duDJvC9eC+TX17BmmVCR+IdD#g_MLv`7Z}(uqJHL2^=>C%3%o@U>suSa;stuw(b< zzbSkL!eRKuU>x4Tn0Nwt3k+co4ueVrZtuqfn)gvOva-n99@t&mi#`Cxd<{E5SS*_- z`+cR;RG+xZpsDQE_kWM7$0KF8vtnsby6!p1$j@r<$W$1PPY6u<_isrW;GRSHt1PSgRD(*yxuD4v`UX;$nj{yvMGcdv~-e|E^Z> zW_bCvm+a;M`+UcI_R-dv=t*kD+pB>Mk138hJc2@U8I!n!spNtBGzdNf!4TG_xzX%A z`u!uzfOxQc(Ebjcp@X0j4bBgp*jmdVDqc)^-!15HElw8w-Gb)z-WSa?ZfF(<0_l;CK&m^P7><+ymS5S9*6V z?^N3l?uUs~jDbo0^(tuZS(*~~H2O($cY_dN)2)2_wFQ0j`5#d`Tcdw=0jB2@AJaa0 zR^%Al{L~F`C&+~V-!d-$BeG-*70PN4d*!LV;QpZhYO!X31u&!#xP6|Tg|Og02Q16~ z3J7e-54V>61vdM?AvFF6hVVBsH>&XG<*-82q&tJ&L56%ZL~QaWs1TjA{ldsk@&+;D zstxB)tsqC(78!13PQt4cs1- z%*~jsWWc{rH@lOywQXs5U|MhR9oX8ZM}cDy{{Eav1^Ht@{L@JYY^Sc^jxsQN*!&9& z$V>9Cx!Ikpt+i#x;{=M$3!6JB8-o-^%CnI__T+nc$fV|its~X%$TQ=aQGc0 zQ53>&p8wM=)N*%)+KN^*m{FjzAzGyVgkyuiaE}#U1fbxa-2y!PT2JN?Co2xEvz^`L!Ub%C8uFDI&t};ta6tLdOYqtPifk)-ZB^-reE495xtOT-?FT>uY3>I|} z(@{^daZEmB=%7eQ{l*;!`Yl{zAS7{|U)p4cXkKTlqR3-rI zXz42se=LF&`JokcF?9lDIc0>5DoH=^<@CJ+nzJL2J$u|jPKf7P54|92pA+?5b((`G zWhgC+TU-0F`8@{KwXo#+Km-;KX8W9fqO-=#djQTeP!og=e4TE8a48t*1kALqZ9q-v z2*gJ=z(Xs`U2;-wUepej^M7~+-|h&sfMSGzUZ<1gc8Z*%192*`sJ;7SSzVCVLjUOg zZQ!kJAsCq4ybWYieVrMo+82KhTcFuC5W${rTulk~wli{NZlw2=fmpxO%k?sd$Y^8n zB)n+b0?YO~&SzXM2v%Ar3<6VIBn~QktK2J~Uu0_|z5H`uV)LC}pPm*@hkJY&L?DG# zc+i~sJ`d2>q&1)(ST{Yw2>j2R1kVU_wRB7!s&<+e7 z;mc~5^tVccl?iB!<~aR~7M3h2lXh^2`HXq$V$A>Tw93DcAG@Vev z5%IW+z?dY<0#LrLmjqyYoL%BVr;FCflJCj{kyxY$YR`uCYS$hG2{0io??M_#d{|*J zAGZBA*!Bpl>IE?C?T?=p`y9g#*@n7AN7$ShWZ zLRkyv9xWD8GD8XNf)phI3y)-mY2y*jQf5#Zz{{`C1KCCLHeg?pt)!x;NiKoABYRUT zwPV>?`C%$6I8D3~FZf|py%zy&vo<@I8_vJ!M_CS7L;-|((VC`lwzso^;zf)j9CA%* zMcu|y>Cnp}7L6x_th;iUF+ba0H3DM#xbNeh{poxWz9E*}V|9Gw1G?gG{t#nkcrIFf zy?$hd8{8T?U~c!$$a|+4Y4Z0O+!(LFx$ z^|b{+IY(dgPPNr~fow*htM0p>6JRSu0RJgSMbDe_u`AAFO3$R9HtudIWvx@1(j;QD zf*0+|7Ib>8uKSlWr~kc(@sRwJQ+54w$Vuh$eUvXY=43Wo5w@j#6AE2(8<6?KfOqDH zg$_OWa`>%*amgmAwrS?BcqR`-l-~pZ{YKvJ$aT?D-SC^`cX>Aq`JdomxpC~j_md|f z?!{TT?(z1+DHg)I=XN$VjSezmhe8Q`I!dlAd}Icz%*mIt_8pdN)^Va+txK#tL#9kw zPOCI_YK0EN>|e=e!_$V}cj!WepAw~YOqEr5be^yJl7`~Y$UQGf*}-CX$*dVu0GzDb zPXG0=46*s(i3`p9?Hg|dN+q_;@C1dPB`xUh2;~@&hX{f$SV-*>>os^auHEFT*-A}& z%kGDrDwtEdDOSx-LfzkUvWs>+53SnOKVJ?=UmE4$KMQ1^5ysAbZ9o|p7DHcGYu2Qi z`EmVZtf49kYDq^yLNg-W7Xy%c5sA3v@YIF`pM!t^`B$aLC>es<>geOL_X>|>%FP68j2{dNEbOvvRGR7$a3HNj3NXsA)^<4( zSK(pl-kqC$%Lx`eZs5>WC0~qcD4(ZMGX)`^rsu8eLc4Bnh0>+AEx2vBRYn5tW1QE9 z+wtqM&|Zn`(c7W=h+dj{@$!vTD-X4kCFQ_RCVTx$4N#%B1l~mvMKXt;R|w6RK2y<= zaHVlkjZAO+N3yK?dMO;I1?PYa6Il~{ym#%6Dg+A2i21c1+<+ck-QVRgciVK&&mBgw z(5M&0;M$pm?>zg^r}tU2ti5!RNLliW|GC$)rt}@~r6~SZxdak;IVhXolkPaBO2jEO ziQ2jzl6cHXtDP?X0rwzAuB_B4u6#IcoYPZ8VDkb<34R5bqK%jSbmE2`nV>3Jm?QSx zjIs2$bd#HSU1GJu7a`W~nGAvR zVMFY=^?|J4QNHE#ip%JyrY=D4ubb)-awH9aF!8VLe~Gf+9AY1xsjoMT^}Zf{y@w=i zJX!NI*e2tQ!b38|dmpYMTC9z+24J(U;T$yEUsZCRL?{p@pF;}DN&zEj3O^*{d8GeDy2YwD)_+~DOHsG$_OoG ztFS-9LkSrKjah^R?=++`oYE*D%v+e$J<(5C0-O386yjRoh?gL5m|`W2 zaD>RwXEgDUTZ%Z^{+atv)tFwg!L1(3?gA^_HARu^P86By%I8l{ zk9~#KSLhsZcQ9{SD#KHJI%$~j&Qm(D23f^3l~j%&`w$pn5v%myPsdW6CpzRE)qVBe zB)-6-aCVW*qdeE^e@roUFzd8@$m+Xs=RQW2^MCtlPMtwBr*phwuD+#ZOc10&p~LDXKfY`+y8p!m*Qr~_RmXV3 zaKx5Zb;K&W<>ai_xEL+6=<+T7qz|!k!2S{HaZj%ya>U$wxGs^j!JCoWF#YX~+=14l zYcH82#LaQS^_x+u+Tk(fm&YEgwA`)5a5g(h0|$A?)$E0%^nk8IN5JzlG{|8{yG3#< zRR%GoB)l;-t|VTil(R95J)TtQk*C|~2% zql2IaWYeWz! z+T-&UzUjU%9`kb)(inAQ%D#pBR=;t!%l^3Qgx}D$Y?;zFPQO&@9+K`}Uq+|dghoeR z&QOh&=*|jVp;Jh%MEPo#=;-f52xf`w3ylKK75bYq^)=1ztJPfhb4=;6=R)Hw2X#cJ3H0mOM@W=s^e$*9#r8)R)nJZr)x35vXX;-E2pCiHig> zpbArQ*9hhLZs0OrBdvMNJU*8+_6ToRi!>Hf*6M!h;!p!*B~c z^JyE>G!=WhD=7*23+n9#CBu2J&o)u($x)r<1)%dq1J1Xn zjt_lL#Hu5+rnEgn=@L3oKDeQ5>ARI28w4^VZGBRNGY!RE6f(d0cMOQA^>n16P`DDMkB#Z6ah4u->6AF&{NR=8$3G_Hui;oC zH`4iDfM%a#mg`&f!`Tif)vkev4($*K>R!bXE~C%|Txo4@DpWq=R$odjv}rBw+tWjz zUJ-J38!>ER{=^#t=>~#vOz74*ehX= zSAXpl3S)abF+=SYIMCa0*vzC>qkTr~C9LabYi7bxxKOJrJqLeWyK+f8 z@kYg3WKGdRynR$mC;NJp-E#{FT^iO2IcxCBjF?Of+T?|Y;9iy~htB=0 z_qjOd{a<=^n~%GjDZ|>`iE$bX{H=&Rrn$!`$sBDnz1Mr^25UoqoO_s&x(71!;9g*^ zQ0=i?u<0;eGUOAiCoQ*v!fF)GOliWWx|^gW{Kk28`MPerP+%YwwaII~ep2~BYl?iN z#`E(F1edzkP~uAxTy}C|P7K)6#9Vuxl0DI$K{;Hvp5`dHn1Q>3y1l*P;q=JB*Nt^5 zcQ6gU%6br2RsvhLM{ToXJF8 zf(HEg>$NWY?LX|E0>2$HJ;T#+2Y4XhLwq62Avr0e{057MEoUA}%ZR9XmDHE&5LZX^ z({_awiz=F*W6xU$CDEWq_8TjawQwb(PG|Jtt%`IXe9gIoH#wpHY&yPDXVq$*UqZn~ znuAPvKaiUc+{JFM?rYr~BaUZKG#mjA;4jGbwBtLkrs)f=*VTp$Y{6@6#1~nl0Cv!s zb-A8Q5As~;dGw$UtV6tGF?VADJTVciuszGzNZT6*URk91K&9DPmIE7Z zU`Nz`4s{|DSX>#QQK0y>u<`E8N3;(A7yWUzx0kR@N)2tI4io7pWK93?j+f2Q*e_N{bA>);m6H$ySpQ#X;4PBqs&jfkb;Xp4Xq0@d zWNhWOw#!@x8Ln))W9Vf)4;+=E4@gUI4#SxnnElvT8FqpJiH@0mAMJs#ED~akw(*IL zE^8B@w@uNJiwspDuRgNA7(Z{ClIVGrT|I)ewKmdnhGULkB#M*e=DC8yF<7<2Q|`Aui138*piGnFroj@K%F!n zE2aJ5Q#D$D)1mo4j{cv-(f>U{W&%L%w&paW@H3^r4+`t1sy;s@l9qKX z3yKij4`AoWVzV53HC8hmBP(*`b~C9}k0WMsQ=jlo6%{ert6Z~&`#suK>cq-7OdQ^G z;a{?76vnfj>tOe2dB_j8yTy2SeEhJmIRV=sy~c#YPdW``ix+Nw#4`}z7%?&J_IS6~?O4ayrD)Vv7Ha5&IJ`0=5DK%hCb zFF{IK+GT@iW`wQV%#8!D2E;2^wl9XNS^|Bbwtj7^u~B}ma~43+=-zLP!>AV}NA$XJ z@}#XhA%W}CoJp}0FVsUB*4l7#ZSa!3xMQuGi5IlxP$DmWNkOZC;*HtGyk6jOMkYS=1!E`>g+;h7= z@3lAh>ZPHpk0zU}XL+L$-AZr>YJ>cg8jt|NLeT+!T#lim&58sRQPX6-4 zc;$#Z_Y~!1#9|vw5D}Pe?e~uRjh&{FqohW&zyOmw%i6P>0595G4n=tDlp4Ah)4vA@ zYzu&_=?mCdwy`J=-<`>xG)hQ7q52!h60o`5wU+04Cuqp|Rj4HJ45!HdCt=L6rWU%m z%!UPQyutpo!%G!Qognstk%FM>t19B3c`>v;+Ra(@omJs&A^|mMdkvspe3(ke2CO6w zJB6@FTb(p?q96`i;@}Zjrmhobx%bzPayGbt|MAH=D>EgUE zV(3nr=90}i=5Wuqk)Mw!J>V*99xiV+2RkX3&b#^qYyk;4_}Z4+mPDSOZbBM|(||Sh zPGgebK-M$Tlb0z8KsZ?!34XwFSHLR@_?Oatp+JJRZpV?i>hPmh-H`4PgRK!UTAE zaidjuXX