From d8c485ea0cb32b5340def823ef26c50b1ac23f04 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Wed, 22 Jul 2026 18:30:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20APP=20=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=EF=BC=88PC=20=E7=AB=AF=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E8=BD=AE=E8=AF=A2=EF=BC=89=EF=BC=8C=E7=89=88?= =?UTF-8?q?=E6=9C=AC=204.8.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en-US.md | 234 +++++------- README.md | 208 ++++------- package.json | 4 +- pnpm-lock.yaml | 412 +++++++++++++++++++-- public/images/qrcode/wechat-official.jpg | Bin 0 -> 27403 bytes public/images/qrcode/wechat-official.png | Bin 4268298 -> 0 bytes src/api/auth/index.ts | 47 +++ src/stores/user.ts | 9 + src/views/login/components/QrCodeLogin.vue | 236 ++++++++++++ src/views/login/index.vue | 14 +- 10 files changed, 867 insertions(+), 297 deletions(-) create mode 100644 public/images/qrcode/wechat-official.jpg delete mode 100644 public/images/qrcode/wechat-official.png create mode 100644 src/views/login/components/QrCodeLogin.vue diff --git a/README.en-US.md b/README.en-US.md index c9a8f92c..04bb01ba 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -1,14 +1,11 @@
-
-# vue3-element-admin
+
- ![]() + ![]() WeChat Official Account |
@@ -244,7 +208,3 @@ Thanks to all the contributors! |
Technical Exchange · Issue Feedback · Business Cooperation
- -## License - -[MIT](LICENSE) diff --git a/README.md b/README.md index 55a90400..af0b81f9 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ [](https://vue.youlai.tech) [](https://app.youlai.tech) -[](https://juejin.cn/post/7228990409909108793) +[](https://www.youlai.tech/docs/web/) [](https://www.youlai.tech/docs/web/) [](./README.en-US.md) @@ -27,20 +27,16 @@ ## 项目简介 -[vue3-element-admin](https://gitcode.com/youlai/vue3-element-admin) 基于 Vue3、Vite、TypeScript 和 Element-Plus 搭建的极简开箱即用企业级后台管理前端模板。 配套 Java 后端 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot)、多租户后端 [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) 和 Node 后端 [youlai-nest](https://gitee.com/youlaiorg/youlai-nest) 。 提供开发简版[vue3-element-template](https://gitee.com/youlaiorg/vue3-element-template) 和 JS 版本[vue3-element-admin-js](https://gitee.com/youlaiorg/vue3-element-admin) 供开发者快速开发。 +[vue3-element-admin](https://gitcode.com/youlai/vue3-element-admin) 基于 Vue3、Vite、TypeScript 和 Element-Plus 搭建的企业级中后台前端模板,配套 Java 后端 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot)、多租户后端 [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) 和 Node 后端 [youlai-nest](https://gitee.com/youlaiorg/youlai-nest)。另提供精简版 [vue3-element-template](https://gitee.com/youlaiorg/vue3-element-template)、JS 版 [vue3-element-admin-js](https://gitee.com/youlaiorg/vue3-element-admin-js) 和 Naive UI 版 [vue3-naiveui-admin](https://gitee.com/youlaiorg/vue3-naiveui-admin) 供不同场景选用。 ## 项目特色 -- **简洁易用**:基于 [vue-element-admin](https://gitee.com/panjiachen/vue-element-admin) 升级的 Vue3 版本,无过渡封装 ,易上手。 -- **数据交互**: 支持 `Mock` 数据和[线上接口文档](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5),并提供配套的 [Java](https://gitee.com/youlaiorg/youlai-boot) 和 [Node](https://gitee.com/youlaiorg/youlai-nest) 后端源码。 - -- **系统功能:** 提供用户管理、角色管理、菜单管理、部门管理、字典管理、系统配置、通知公告等功能模块。 -- **权限管理:** 支持动态路由、按钮权限、角色权限和数据权限等多种权限管理方式。 - -- **多租户:** 支持多租户模式与租户隔离。 - -- **基础设施:** 提供国际化、多布局、暗黑模式、全屏、水印、接口文档和代码生成器等功能。 -- **持续更新**:项目持续开源更新,实时更新工具和依赖。 +- **简洁易用** — 基于 [vue-element-admin](https://gitee.com/panjiachen/vue-element-admin) 升级的 Vue3 版本,无过度封装,易上手 +- **权限体系** — 动态路由、按钮权限、角色权限和数据权限 +- **多租户** — 支持多租户模式与租户隔离 +- **基础设施** — 国际化、多布局、暗黑模式、全屏、水印、接口文档、代码生成器 +- **数据交互** — 支持 Mock 数据与线上接口文档,配套 Java / Node 后端源码 +- **持续更新** — 项目持续开源更新,跟进主流技术栈 ## 系统预览 @@ -72,68 +68,25 @@ -## 生态矩阵 +## 快速开始 -**前端** +**环境要求**:Node.js `^20.19.0` 或 `>=22.12.0` · pnpm `>=8.0.0` -| 项目 | 技术栈 | 说明 | -|:-----|:-------|:-----| -| [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) | Vue 3 + Vite + TS + Element Plus | PC 管理前端(主推) | -| [vue3-element-admin-js](https://gitee.com/youlaiorg/vue3-element-admin-js) | Vue 3 + Vite + JS + Element Plus | JavaScript 版本 | -| [vue3-element-template](https://gitee.com/youlaiorg/vue3-element-template) | Vue 3 + Vite + TS + Element Plus | 精简模板 | -| [youlai-app](https://gitee.com/youlaiorg/youlai-app) | Vue 3 + UniApp | 移动端 App | - -**后端** - -| 项目 | 技术栈 | 说明 | -|:-----|:-------|:-----| -| [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) | Spring Boot + MyBatis-Plus | Java(主推) | -| [youlai-nest](https://gitee.com/youlaiorg/youlai-nest) | NestJS + TypeORM | Node.js | -| [youlai-gin](https://gitee.com/youlaiorg/youlai-gin) | Go + Gorm | Go | -| [youlai-django](https://gitee.com/youlaiorg/youlai-django) | Django + DRF | Python | -| [youlai-fastapi](https://gitee.com/youlaiorg/youlai-fastapi) | FastAPI + SQLAlchemy | Python | -| [youlai-think](https://gitee.com/youlaiorg/youlai-think) | ThinkPHP + ThinkORM | PHP | -| [youlai-aspnet](https://gitee.com/youlaiorg/youlai-aspnet) | ASP.NET Core + EF Core | C# | -| [youlai-axum](https://gitee.com/youlaiorg/youlai-axum) | Axum + SeaORM | Rust | - -> **youlai-boot** 还提供以下变种和分支版本:[多租户](https://gitee.com/youlaiorg/youlai-boot-tenant)· [MyBatis-Flex](https://gitee.com/youlaiorg/youlai-boot-flex)· [Spring Boot 3](https://gitee.com/youlaiorg/youlai-boot/tree/spring-boot-3) · [PostgreSQL](https://gitee.com/youlaiorg/youlai-boot/tree/db-pg) · [多模块](https://gitee.com/youlaiorg/youlai-boot/tree/multi-module) -> -> 八种后端共享同一套 **RESTful API 规范** 和 **数据库结构**,前端可无缝切换。 - -## 开发指南 - -| 名称 | 地址 | -| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| 视频教程 | [https://www.bilibili.com/video/BV1eFUuYyEFj](https://www.bilibili.com/video/BV1eFUuYyEFj) | -| 项目搭建 | [基于 Vue3 + Vite + TypeScript + Element-Plus 从0到1搭建后台管理系统](https://blog.csdn.net/u013737132/article/details/130191394) | -| 官方文档 | [https://www.youlai.tech/docs/web/](https://www.youlai.tech/docs/web/) | -| 代码规范 | [ESLint V9 + Prettier + Stylelint + EditorConfig 约束和统一前端代码规范](https://youlai.blog.csdn.net/article/details/145608723) | -| 提交规范 | [Husky + Lint-staged + Commitlint + Commitizen + cz-git 配置 Git 提交规范](https://youlai.blog.csdn.net/article/details/145615236) | -| 接口文档 | [https://www.apifox.cn](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5) | - -## 项目启动 - -- **环境准备** - -| 环境类型 | 版本要求 | 备注 | -| ------------ | ------------------------------------------------------------ | --------------------------------- | -| **Node.js** | `^20.19.0` 或 `>=22.12.0` | 推荐使用 LTS 版本(主版本为偶数) | -| **包管理器** | `pnpm >= 8.0.0` | 项目使用 pnpm 作为包管理器 | +| 环境类型 | 版本要求 | 备注 | +| -------- | -------- | ---- | +| **Node.js** | `^20.19.0` 或 `>=22.12.0` | 推荐 LTS 版本(主版本为偶数) | +| **包管理器** | `pnpm >= 8.0.0` | 项目使用 pnpm 作为包管理器 | | **开发工具** | [Visual Studio Code](https://code.visualstudio.com/Download) | 推荐安装 Vue、TypeScript 相关插件 | -- **快速开始** - ```bash # 克隆代码 git clone https://gitee.com/youlaiorg/vue3-element-admin.git - -# 切换目录 cd vue3-element-admin -# 安装 pnpm +# 安装 pnpm(已安装可跳过) npm install pnpm -g -# 设置镜像源(可忽略) +# 设置镜像源(可忽略) pnpm config set registry https://registry.npmmirror.com # 安装依赖 @@ -143,6 +96,10 @@ pnpm install pnpm run dev ``` +启动后访问 [http://localhost:3000](http://localhost:3000),使用 `admin` / `123456` 登录。 + +> 更多内容详见官方文档:[快速开始](https://www.youlai.tech/docs/web/) · [部署指南](https://www.youlai.tech/docs/web/deployment/deploy.html) + ## AI 编程 本项目配套 [Agent Skill](https://skills.sh/youlaitech/youlai-skills),安装后 AI 编程助手会自动遵循本项目的 Vue3 开发规范(命名、目录结构、BEM + UnoCSS、组件与 API 约定)。支持 CodeBuddy、Claude Code、Cursor、Codex、GitHub Copilot 等 70+ Agent。 @@ -151,74 +108,75 @@ pnpm run dev npx skills add https://github.com/youlaitech/youlai-skills --skill vue ``` -- **安装位置**:项目级默认写入各 Agent 的 skills 目录,如 CodeBuddy → `.codebuddy/skills/vue/SKILL.md`、Claude Code → `.claude/skills/vue/SKILL.md`、Cursor → `.cursor/skills/vue/SKILL.md`;加 `-g` 改为全局 `~/.codebuddy/skills/` 等,跨项目复用。 -- **生成文件**:`vue/` 目录,内含 `SKILL.md`(frontmatter `name`/`description` + Vue3 开发规范正文)。 +## 生态矩阵 + +**前端** + +| 项目 | 技术栈 | 说明 | 更新状态 | +|:-----|:-------|:-----|:---------| +| [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) | Vue 3 + Vite + TS + Element Plus | PC 管理前端(主推) | ✅️ | +| [vue3-element-admin-js](https://gitee.com/youlaiorg/vue3-element-admin-js) | Vue 3 + Vite + JS + Element Plus | JavaScript 版本 | ✅️ | +| [vue3-element-template](https://gitee.com/youlaiorg/vue3-element-template) | Vue 3 + Vite + TS + Element Plus | 精简模板 | ✅️ | +| [vue3-naiveui-admin](https://gitee.com/youlaiorg/vue3-naiveui-admin) | Vue 3 + Vite + TS + Naive UI | Naive UI 版本 | ✅️ | +| [youlai-app](https://gitee.com/youlaiorg/youlai-app) | Vue 3 + UniApp | 移动端 App | ✅️ | + +**后端** + +| 项目 | 技术栈 | 说明 | 更新状态 | +|:-----|:-------|:-----|:---------| +| [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) | Spring Boot + MyBatis-Plus | Java(主推) | ✅️ | +| [youlai-nest](https://gitee.com/youlaiorg/youlai-nest) | NestJS + TypeORM | Node.js | ✅️ | +| [youlai-gin](https://gitee.com/youlaiorg/youlai-gin) | Go + Gorm | Go | ✅️ | +| [youlai-django](https://gitee.com/youlaiorg/youlai-django) | Django + DRF | Python | ✅️ | +| [youlai-fastapi](https://gitee.com/youlaiorg/youlai-fastapi) | FastAPI + SQLAlchemy | Python | ✅️ | +| [youlai-laravel](https://gitee.com/youlaiorg/youlai-laravel) | Laravel + Eloquent | PHP | ✅️ | +| [youlai-think](https://gitee.com/youlaiorg/youlai-think) | ThinkPHP + ThinkORM | PHP | ✅️ | +| [youlai-aspnet](https://gitee.com/youlaiorg/youlai-aspnet) | ASP.NET Core + EF Core | C# | ✅️ | +| [youlai-axum](https://gitee.com/youlaiorg/youlai-axum) | Axum + SeaORM | Rust | ✅️ | + +> 九种后端共享同一套 **RESTful API 规范** 和 **数据库结构**,前端可无缝切换。 + +**变种与衍生版本** + +| 项目 | 基础 | 说明 | 更新状态 | +|:-----|:-----|:-----|:---------| +| [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) | youlai-boot | 多租户 SaaS,租户隔离与租户配置 | ✅️ | +| [youlai-boot-flex](https://gitee.com/youlaiorg/youlai-boot-flex) | youlai-boot | 改用 MyBatis-Flex | ✅️ | +| [youlai-boot (db-pg)](https://gitee.com/youlaiorg/youlai-boot/tree/db-pg) | youlai-boot | PostgreSQL 数据库分支 | ✅️ | +| [youlai-boot (multi-module)](https://gitee.com/youlaiorg/youlai-boot/tree/multi-module) | youlai-boot | 多模块工程拆分 | ✅️ | +| [youlai-boot (spring-boot-3)](https://gitee.com/youlaiorg/youlai-boot/tree/spring-boot-3) | youlai-boot | Spring Boot 3 兼容分支 | ✅️ | +| [youlai-nest (multi-tenant)](https://gitee.com/youlaiorg/youlai-nest/tree/multi-tenant) | youlai-nest | 多租户 SaaS,租户隔离与租户配置 | ✅️ | + +## 开发指南 + +| 名称 | 地址 | +| -------- | -------- | +| 视频教程 | [https://www.bilibili.com/video/BV1eFUuYyEFj](https://www.bilibili.com/video/BV1eFUuYyEFj) | +| 项目搭建 | [基于 Vue3 + Vite + TypeScript + Element-Plus 从0到1搭建后台管理系统](https://blog.csdn.net/u013737132/article/details/130191394) | +| 官方文档 | [https://www.youlai.tech/docs/web/](https://www.youlai.tech/docs/web/) | +| 部署指南 | [https://www.youlai.tech/docs/web/deployment/deploy.html](https://www.youlai.tech/docs/web/deployment/deploy.html) | +| 常见问题 | [https://www.youlai.tech/docs/faq/](https://www.youlai.tech/docs/faq/) | +| 代码规范 | [ESLint V9 + Prettier + Stylelint + EditorConfig 约束和统一前端代码规范](https://youlai.blog.csdn.net/article/details/145608723) | +| 提交规范 | [Husky + Lint-staged + Commitlint + Commitizen + cz-git 配置 Git 提交规范](https://youlai.blog.csdn.net/article/details/145615236) | +| 接口文档 | [https://www.apifox.cn](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5) | ## 项目部署 -执行 `pnpm run build` 命令后,项目将被打包并生成 `dist` 目录。接下来,将 `dist` 目录下的文件上传到服务器 `/usr/share/nginx/html` 目录下,并配置 Nginx 进行反向代理。 +执行 `pnpm run build` 打包生成 `dist` 目录,上传至服务器并配置 Nginx 反向代理。 ```bash pnpm run build ``` -以下是 Nginx 的配置示例: +详细部署流程(Nginx 配置、反向代理、HTTPS 等)见 [部署指南](https://www.youlai.tech/docs/web/deployment/deploy.html)。 -```nginx -server { - listen 80; - server_name localhost; +## 数据接口 - location / { - root /usr/share/nginx/html; - index index.html index.htm; - } +前端默认使用线上接口,也可切换为本地 Mock 或对接本地后端。 - # 反向代理配置 - location /prod-api/ { - # 请将 api.youlai.tech 替换为您的后端 API 地址,并注意保留后面的斜杠 / - proxy_pass http://api.youlai.tech/; - } -} -``` +**本地 Mock**:将 `.env.development` 的 `VITE_MOCK_DEV_SERVER` 设为 `true` 即启用本地 Mock 接口,无需后端即可独立开发。 -更多详细信息,请参考这篇文章:[Nginx 安装和配置](https://blog.csdn.net/u013737132/article/details/145667694)。 - -## 本地Mock - -项目同时支持在线和本地 Mock 接口,默认使用线上接口,如需替换为 Mock 接口,修改文件 `.env.development` 的 `VITE_MOCK_DEV_SERVER` 为 `true` **即可**。 - -## 后端接口 - -> 如果您具备Java开发基础,按照以下步骤将在线接口转为本地后端接口,创建企业级前后端分离开发环境,助您走向全栈之路。 - -1. 获取基于 `Java` 和 `SpringBoot` 开发的后端 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot.git) 源码。 -2. 根据后端工程的说明文档 [README.md](https://gitee.com/youlaiorg/youlai-boot#%E9%A1%B9%E7%9B%AE%E8%BF%90%E8%A1%8C) 完成本地启动。 -3. 修改 `.env.development` 文件中的 `VITE_APP_API_URL` 的值,将其从 https://api.youlai.tech 更改为 http://localhost:8000 即可。 - -## 注意事项 - -- **自动导入插件自动生成默认关闭** - - 模板项目的组件类型声明已自动生成。如果添加和使用新的组件,请按照图示方法开启自动生成。在自动生成完成后,记得将其设置为 `false`,避免重复执行引发冲突。 - -  - -- **项目启动浏览器访问空白** - - 请升级浏览器尝试,低版本浏览器内核可能不支持某些新的 JavaScript 语法,比如可选链操作符 `?.`。 - -- **项目同步仓库更新升级** - - 项目同步仓库更新升级之后,建议 `pnpm install` 安装更新依赖之后启动 。 - -- **项目组件、函数和引用爆红** - - 重启 VSCode 尝试 - -- **其他问题** - - 如果有其他问题或者建议,建议 [ISSUE](https://gitee.com/youlaiorg/vue3-element-admin/issues/new) +**对接后端**:九种后端默认端口均为 `8000`,将 `.env.development` 的 `VITE_APP_API_URL` 改为 `http://localhost:8000` 并启动对应后端即可(主推 Java 后端 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot.git),其余见各自仓库 README)。 ## 提交规范 @@ -226,16 +184,9 @@ server {  -## 项目统计 +## 技术合作 - - -Thanks to all the contributors! -感谢所有的贡献者! - -[](https://github.com/youlaitech/vue3-element-admin/graphs/contributors) - ---- +本项目采用 [MIT](LICENSE) 协议开源,可免费商用。欢迎在 [Issue](https://gitee.com/youlaiorg/vue3-element-admin/issues) 提交问题或反馈,也欢迎提交 [Pull Request](https://gitee.com/youlaiorg/vue3-element-admin/pulls) 共建。如需技术支持、商务合作、二次开发或项目定制,可联系作者微信(见下方二维码)。技术交流 · 问题反馈 · 商务合作
+ diff --git a/package.json b/package.json index 02950e6f..8cafe407 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vue3-element-admin", "description": "Vue3 + Vite + TypeScript + Element-Plus 的后台管理模板,vue-element-admin 的 Vue3 版本", - "version": "4.7.7", + "version": "4.8.0", "private": true, "type": "module", "scripts": { @@ -63,6 +63,7 @@ "path-browserify": "^1.0.1", "path-to-regexp": "^8.4.2", "pinia": "^3.0.4", + "qrcode": "^1.5.4", "qs": "^6.15.2", "sortablejs": "^1.15.7", "vue": "^3.5.38", @@ -81,6 +82,7 @@ "@types/node": "^26.0.0", "@types/nprogress": "^0.2.3", "@types/path-browserify": "^1.0.3", + "@types/qrcode": "^1.5.6", "@types/qs": "^6.15.1", "@types/sortablejs": "^1.15.9", "@vitejs/plugin-vue": "^6.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08e0deb2..8d4231f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: pinia: specifier: ^3.0.4 version: 3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)) + qrcode: + specifier: ^1.5.4 + version: 1.5.4 qs: specifier: ^6.15.2 version: 6.15.2 @@ -73,7 +76,7 @@ importers: version: 11.4.6(vue@3.5.38(typescript@5.9.3)) vue-router: specifier: ^5.1.0 - version: 5.1.0(@vue/compiler-sfc@3.5.38)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)))(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) + version: 5.1.0(@vue/compiler-sfc@3.5.38)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)))(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) vxe-table: specifier: ~4.6.25 version: 4.6.25(vue@3.5.38(typescript@5.9.3)) @@ -105,6 +108,9 @@ importers: '@types/path-browserify': specifier: ^1.0.3 version: 1.0.3 + '@types/qrcode': + specifier: ^1.5.6 + version: 1.5.6 '@types/qs': specifier: ^6.15.1 version: 6.15.1 @@ -113,7 +119,7 @@ importers: version: 1.15.9 '@vitejs/plugin-vue': specifier: ^6.0.7 - version: 6.0.7(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) + version: 6.0.7(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) autoprefixer: specifier: ^10.5.0 version: 10.5.1(postcss@8.5.15) @@ -194,19 +200,19 @@ importers: version: 8.62.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) unocss: specifier: ^66.7.2 - version: 66.7.2(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) + version: 66.7.2(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) unplugin-auto-import: specifier: ^21.0.0 version: 21.0.0(@vueuse/core@14.3.0(vue@3.5.38(typescript@5.9.3))) unplugin-vue-components: specifier: ^32.1.0 - version: 32.1.0(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) + version: 32.1.0(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)) vite: - specifier: ^8.0.16 - version: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + specifier: 8.0.6 + version: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) vite-plugin-mock-dev-server: specifier: ^2.4.1 - version: 2.4.1(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) + version: 2.4.1(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) vue-eslint-parser: specifier: ^10.4.1 version: 10.4.1(eslint@10.5.0(jiti@2.7.0)) @@ -431,12 +437,21 @@ packages: '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -728,6 +743,9 @@ packages: cpu: [x64] os: [win32] + '@oxc-project/types@0.123.0': + resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} + '@oxc-project/types@0.131.0': resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==} @@ -838,36 +856,73 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@rolldown/binding-android-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-android-arm64@1.1.2': resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-arm64@1.1.2': resolution: {integrity: sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.13': + resolution: {integrity: sha512-8DakphqOz8JrMYWTJmWA+vDJxut6LijZ8Xcdc4flOlAhU7PNVwo2MaWBF9iXjJAPo5rC/IxEFZDhJ3GC7NHvug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.1.2': resolution: {integrity: sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.13': + resolution: {integrity: sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-freebsd-x64@1.1.2': resolution: {integrity: sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': + resolution: {integrity: sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.1.2': resolution: {integrity: sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.1.2': resolution: {integrity: sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -875,6 +930,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': + resolution: {integrity: sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.1.2': resolution: {integrity: sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -882,6 +944,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.1.2': resolution: {integrity: sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -889,6 +958,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-D/0Nlo8mQuxSMohNJUF2lDXWRsFDsHldfRRgD9bRgktj+EndGPj4DOV37LqDKPYS+osdyhZEH7fTakTAEcW7qg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.1.2': resolution: {integrity: sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -896,6 +972,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-eRrPvat2YaVQcwwKi/JzOP6MKf1WRnOCr+VaI3cTWz3ZoLcP/654z90lVCJ4dAuMEpPdke0n+qyAqXDZdIC4rA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.1.2': resolution: {integrity: sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -903,6 +986,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': + resolution: {integrity: sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-x64-musl@1.1.2': resolution: {integrity: sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -910,29 +1000,55 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.1.2': resolution: {integrity: sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': + resolution: {integrity: sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.1.2': resolution: {integrity: sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': + resolution: {integrity: sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.1.2': resolution: {integrity: sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': + resolution: {integrity: sha512-/pLI5kPkGEi44TDlnbio3St/5gUFeN51YWNAk/Gnv6mEQBOahRBh52qVFVBpmrnU01n2yysvBML9Ynu7K4kGAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.1.2': resolution: {integrity: sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/pluginutils@1.0.0-rc.13': + resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} + '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} @@ -993,6 +1109,9 @@ packages: '@types/path-browserify@1.0.3': resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} + '@types/qrcode@1.5.6': + resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==} + '@types/qs@6.15.1': resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} @@ -1540,6 +1659,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + caniuse-lite@1.0.30001799: resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} @@ -1581,6 +1704,9 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1758,6 +1884,10 @@ packages: supports-color: optional: true + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -1799,6 +1929,9 @@ packages: diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -2083,6 +2216,10 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2592,6 +2729,10 @@ packages: resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} engines: {node: '>=14'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2880,10 +3021,18 @@ packages: peerDependencies: oxc-parser: '>=0.98.0' + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -2892,6 +3041,10 @@ packages: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + package-manager-detector@1.6.0: resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} @@ -2963,6 +3116,10 @@ packages: pkg-types@2.3.1: resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + postcss-html@1.8.1: resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} engines: {node: ^12 || >=14} @@ -3042,6 +3199,11 @@ packages: resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + qs@6.15.2: resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} engines: {node: '>=0.6'} @@ -3085,6 +3247,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resolve-dir@1.0.1: resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} engines: {node: '>=0.10.0'} @@ -3121,6 +3286,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rolldown@1.0.0-rc.13: + resolution: {integrity: sha512-bvVj8YJmf0rq4pSFmH7laLa6pYrhghv3PRzrCdRAr23g66zOKVJ4wkvFtgohtPLWmthgg8/rkaqRHrpUEh0Zbw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rolldown@1.1.2: resolution: {integrity: sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3165,6 +3335,9 @@ packages: engines: {node: '>=10'} hasBin: true + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -3620,13 +3793,13 @@ packages: zstd-codec: optional: true - vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} + vite@8.0.6: + resolution: {integrity: sha512-jeOXoY6N8rOfit/mZADMd0misLqjRdWBB3/S23ZQNuPcbVsfMBJutWD8b4ftdczMOsNyMBnKro0Z1Kt0HIqq5Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 + '@vitejs/devtools': ^0.1.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -3733,6 +3906,9 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -3794,6 +3970,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -3803,10 +3982,18 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.3: resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} engines: {node: '>=12'} @@ -4088,6 +4275,12 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.9.1': + dependencies: + '@emnapi/wasi-threads': 1.2.0 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 @@ -4098,6 +4291,16 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.9.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 @@ -4269,6 +4472,13 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': + dependencies: + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 + '@tybys/wasm-util': 0.10.3 + optional: true + '@noble/hashes@1.8.0': {} '@nodelib/fs.scandir@2.1.5': @@ -4347,9 +4557,12 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.131.0': optional: true + '@oxc-project/types@0.123.0': {} + '@oxc-project/types@0.131.0': {} - '@oxc-project/types@0.137.0': {} + '@oxc-project/types@0.137.0': + optional: true '@paralleldrive/cuid2@2.3.1': dependencies: @@ -4426,42 +4639,85 @@ snapshots: dependencies: quansync: 1.0.0 + '@rolldown/binding-android-arm64@1.0.0-rc.13': + optional: true + '@rolldown/binding-android-arm64@1.1.2': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.13': + optional: true + '@rolldown/binding-darwin-arm64@1.1.2': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.13': + optional: true + '@rolldown/binding-darwin-x64@1.1.2': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.13': + optional: true + '@rolldown/binding-freebsd-x64@1.1.2': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.1.2': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.1.2': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-arm64-musl@1.1.2': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.1.2': optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.1.2': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-x64-gnu@1.1.2': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': + optional: true + '@rolldown/binding-linux-x64-musl@1.1.2': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': + optional: true + '@rolldown/binding-openharmony-arm64@1.1.2': optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': + dependencies: + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + optional: true + '@rolldown/binding-wasm32-wasi@1.1.2': dependencies: '@emnapi/core': 1.11.1 @@ -4469,12 +4725,20 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': + optional: true + '@rolldown/binding-win32-arm64-msvc@1.1.2': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': + optional: true + '@rolldown/binding-win32-x64-msvc@1.1.2': optional: true + '@rolldown/pluginutils@1.0.0-rc.13': {} + '@rolldown/pluginutils@1.0.1': {} '@simple-libs/child-process-utils@1.0.2': @@ -4524,6 +4788,10 @@ snapshots: '@types/path-browserify@1.0.3': {} + '@types/qrcode@1.5.6': + dependencies: + '@types/node': 26.0.0 + '@types/qs@6.15.1': {} '@types/retry@0.12.2': {} @@ -4743,7 +5011,7 @@ snapshots: dependencies: '@unocss/core': 66.7.2 - '@unocss/vite@66.7.2(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))': + '@unocss/vite@66.7.2(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.7.2 @@ -4754,7 +5022,7 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.17 unplugin-utils: 0.3.1 - vite: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) '@uppy/companion-client@5.1.1(@uppy/core@5.2.0)': dependencies: @@ -4787,10 +5055,10 @@ snapshots: '@uppy/core': 5.2.0 '@uppy/utils': 7.2.0 - '@vitejs/plugin-vue@6.0.7(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) vue: 3.5.38(typescript@5.9.3) '@volar/language-core@2.4.28': @@ -5258,6 +5526,8 @@ snapshots: callsites@3.1.0: {} + camelcase@5.3.1: {} + caniuse-lite@1.0.30001799: {} chainsaw@0.1.0: @@ -5298,6 +5568,12 @@ snapshots: cli-width@3.0.0: {} + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5484,6 +5760,8 @@ snapshots: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + dedent@0.7.0: {} deep-is@0.1.4: {} @@ -5513,6 +5791,8 @@ snapshots: diff-match-patch@1.0.5: {} + dijkstrajs@1.0.3: {} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -5832,6 +6112,11 @@ snapshots: find-root@1.1.0: {} + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -6306,6 +6591,10 @@ snapshots: pkg-types: 2.3.1 quansync: 0.2.11 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -6575,10 +6864,18 @@ snapshots: magic-regexp: 0.10.0 oxc-parser: 0.131.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -6589,6 +6886,8 @@ snapshots: is-network-error: 1.3.2 retry: 0.13.1 + p-try@2.2.0: {} + package-manager-detector@1.6.0: {} pako@1.0.11: {} @@ -6647,6 +6946,8 @@ snapshots: exsolve: 1.1.0 pathe: 2.0.3 + pngjs@5.0.0: {} + postcss-html@1.8.1: dependencies: htmlparser2: 8.0.2 @@ -6709,6 +7010,12 @@ snapshots: dependencies: hookified: 2.2.0 + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + qs@6.15.2: dependencies: side-channel: 1.1.1 @@ -6754,6 +7061,8 @@ snapshots: require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + resolve-dir@1.0.1: dependencies: expand-tilde: 2.0.2 @@ -6783,6 +7092,27 @@ snapshots: dependencies: glob: 7.2.3 + rolldown@1.0.0-rc.13: + dependencies: + '@oxc-project/types': 0.123.0 + '@rolldown/pluginutils': 1.0.0-rc.13 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.13 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.13 + '@rolldown/binding-darwin-x64': 1.0.0-rc.13 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.13 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.13 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.13 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.13 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.13 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.13 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.13 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.13 + rolldown@1.1.2: dependencies: '@oxc-project/types': 0.137.0 @@ -6803,6 +7133,7 @@ snapshots: '@rolldown/binding-wasm32-wasi': 1.1.2 '@rolldown/binding-win32-arm64-msvc': 1.1.2 '@rolldown/binding-win32-x64-msvc': 1.1.2 + optional: true run-async@2.4.1: {} @@ -6840,6 +7171,8 @@ snapshots: semver@7.8.5: {} + set-blocking@2.0.0: {} + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -7218,7 +7551,7 @@ snapshots: universalify@2.0.1: {} - unocss@66.7.2(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): + unocss@66.7.2(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: '@unocss/cli': 66.7.2 '@unocss/core': 66.7.2 @@ -7236,7 +7569,7 @@ snapshots: '@unocss/transformer-compile-class': 66.7.2 '@unocss/transformer-directives': 66.7.2 '@unocss/transformer-variant-group': 66.7.2 - '@unocss/vite': 66.7.2(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) + '@unocss/vite': 66.7.2(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) transitivePeerDependencies: - vite @@ -7258,7 +7591,7 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.4 - unplugin-vue-components@32.1.0(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)): + unplugin-vue-components@32.1.0(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)): dependencies: chokidar: 5.0.0 local-pkg: 1.2.1 @@ -7267,7 +7600,7 @@ snapshots: obug: 2.1.3 picomatch: 4.0.4 tinyglobby: 0.2.17 - unplugin: 3.2.0(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) + unplugin: 3.2.0(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) unplugin-utils: 0.3.1 vue: 3.5.38(typescript@5.9.3) transitivePeerDependencies: @@ -7288,14 +7621,14 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unplugin@3.2.0(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): + unplugin@3.2.0(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 optionalDependencies: rolldown: 1.1.2 - vite: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) unzipper@0.10.14: dependencies: @@ -7326,7 +7659,7 @@ snapshots: vary@1.1.2: {} - vite-plugin-mock-dev-server@2.4.1(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-mock-dev-server@2.4.1(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: '@pengzhanbo/utils': 3.7.3 ansis: 4.3.1 @@ -7343,7 +7676,7 @@ snapshots: path-to-regexp: 8.4.2 picomatch: 4.0.4 tinyglobby: 0.2.17 - vite: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) ws: 8.21.0 optionalDependencies: rolldown: 1.1.2 @@ -7351,12 +7684,12 @@ snapshots: - bufferutil - utf-8-validate - vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0): + vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rolldown: 1.1.2 + rolldown: 1.0.0-rc.13 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.0.0 @@ -7394,7 +7727,7 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.38(typescript@5.9.3) - vue-router@5.1.0(@vue/compiler-sfc@3.5.38)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)))(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)): + vue-router@5.1.0(@vue/compiler-sfc@3.5.38)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)))(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@5.9.3)): dependencies: '@babel/generator': 8.0.0 '@vue-macros/common': 3.1.2(vue@3.5.38(typescript@5.9.3)) @@ -7410,14 +7743,14 @@ snapshots: picomatch: 4.0.4 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.2.0(rolldown@1.1.2)(vite@8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) + unplugin: 3.2.0(rolldown@1.1.2)(vite@8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0)) unplugin-utils: 0.3.1 vue: 3.5.38(typescript@5.9.3) yaml: 2.9.0 optionalDependencies: '@vue/compiler-sfc': 3.5.38 pinia: 3.0.4(typescript@5.9.3)(vue@3.5.38(typescript@5.9.3)) - vite: 8.1.0(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.6(@types/node@26.0.0)(jiti@2.7.0)(sass@1.101.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -7456,6 +7789,8 @@ snapshots: webpack-virtual-modules@0.6.2: {} + which-module@2.0.1: {} + which@1.3.1: dependencies: isexe: 2.0.0 @@ -7506,12 +7841,33 @@ snapshots: xmlchars@2.2.0: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yaml@2.9.0: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.3: dependencies: cliui: 8.0.1 diff --git a/public/images/qrcode/wechat-official.jpg b/public/images/qrcode/wechat-official.jpg new file mode 100644 index 0000000000000000000000000000000000000000..576f210afa4a06336213fc0f0256feca7cb64041 GIT binary patch literal 27403 zcmd75dq7P2|37|`Hh9T53j{wD#u8A7bH)fbu8I3A+87V*yzQZQLO(zP!LCw7p;5Wii zE-`&)S{mfT^kC8od%uj=wu_KyxA9Wqk)WcQFZ0tA&Uk5+Ev1qHK?S0CvjC2$jQ~z5 zu+WZa7;eN~CU;e?Q1R5W2&l+ecl9UIzgJKE3h$ (b|yOxi+aBpAB%fvZ--tVn(Xtk4U?>pct498*2{7fs%AP}@b0Wi1tn$i6fGz2Xi z_zYTb{R~>D7kvp(y%3RIDzUK1!7X&{FVK@sv-;`O+4TO Hbm$>ipGVFe^uW8uxDTAjfxDw<2o>roYnfJa; ze$U 3#6xJ6pS8QzxZ*Ied=NFN_RtJJFc() z^E8Hd6`sqXr9Ew)`GYce#I49;`Z~t o5}AJb+y5-Aj%te zye#!1zBlDW9IC#lsWbJkKUcVF^x%7~ntSIIMZ@!$?8yiBuAXu3wAKBepFO{KpU?La zP5WTxTXI$7e*RUxPt&OWH-;(wH2W@3##;E6DcW<%s~C$`taAE3+Hc&6uMfP6bANj> z;C !lFxbR_Kq1Uv{?5-er!~woyWr8 z tH@Q+2YoET5HFVO@C4TvX4EVook!o-DtBw9O zII)^XJ$(9Jf_nI;D#HvwH_N0Jv0gVzEn?8k>L 2==z;S_y2KppIbOXOupW?3=W^lH@TABP zI5p@%SAleTK1kiQY5b;wf{*f+5&gHtlf6LZ)<}q#gWR}O59zB6mFKmWpu|IKI0!T& ztZEUoo_$p;F(0PCwd(~xC8L@$`ezDLo#XQUcnx5xlI=Y#G0(-STJ>lRU3)?R6tW*e zPe2SdNlJUGMA&UDNXoWA~MRi@GcF1&p&19akhvwd!s= zno+>1;vo(CE&*`FX|~luSQLICEOe^EnK#M-PSrl00WDy3+I--^LYntkgEq0 o#(jANeOGTs;!X z|0}+RE48Kycrs!}GwP613o)Z=U#ftEf@ef=5A$($!;8jln>D_XFMFr%0j7=7!05co z^)->ZBi9BnIw^wkmL_ByfSWaE(kB@<_L}N5;E Ac6- z%Rn0s-2dKK)jKh7AFYC!4N?JkGEqEADlp-ukWA<#6=-Hu#C;S&ID8aAuryg6aKk4N zgc=a<^V&Gi0VM3?ZtQuA*lH0NIr^#&>36a}qukm@v`#(!#gZh>oBCy|!=AjF&6{Yq z 2W!y_BpI}J;i(o9 zEw(U8_HGoE1(Us#0XZv?J7(j3aj_3UwY+@QF#=>bsO3G1WH_Iou)&uR_ZRA{NYo8t?bpQ0atil#dh$!F#*ZH|ZNZ)6MGJbIIQw}0 zqo$Q#%{;zT!5iUxvR{+)g6HGg7-mm1UjH%j ~O=`RF}qdQ){$f!iZ> zKl+f&83pHNFWfQRzw+(c)XCQ3Z+8p&4!Plf78ehBc^p$pU6i(dLngi-bYa_-fTH3S zkFfNfR&q $Y!iE4dcp{eZ9;|M=&ZSxbW)zj4G$ ztdDkcJLfB1dS=k1pz)e=RfY4TK#w0?zRO;;<$RpI-=LvZ7m`yRH{&5XY`)xm*s5v0 z;(RV1aZBI+n(vUhgYlYsIgl|C>fIE<>nEOLh*B&3LkR!OxQY#%q<`++xi9sYrSY*0 zBVk~~gFs$Cjq#u0=s1`vW>_o*AY=W+3s<+UDi3`&{msS3fb >{2-Yt2myMkM=* zeGfj=?9;{()xV46&v@O^Tog32KUXu9SAlPUUCh)B1xFXiEHD40! OLHQ>*Ssc)29^^5n{a7}G zV_Bd-mdlhWpg5g=)yJFDRzG50*z=XMb=ahnTQV{*vr@BY2GI0C{vYRcfXoXU(~I>| zfx8Pq*1h(VvFK-fJW)H2*6c-yR}ilP)n4jpI?N!A4-BL1eG{>d^|%EDKX>IWq)iG^ z=EIUg(+WcPVIOH@DTIF%2%1vT0pjN @4(z}1W5X+Suqla z!}GA6T6TgukOQDrxkIL#A_cHj`GK$$ay7n1O)vLEaP8T$6e-zSSz*@ 8Y|BV#tT@CQWuz8SqKY2phpoJTmcKXPnIA (Y<=I8-3~=P=* 61RWQ`-#xhhzKmYhGl~(vs%{3gCUxGDPe2L5w Nb+&kdpX@l|AxcmdX zEY=MWhNFScX{7^!_8jWdMX{k~srD{VV3bt(d!h!o=G{4}IGL!aH?(=_LM7408lx4h zSLRl=RvWf}(GMwNH^_$_qvQ=0gMnQWbxa^WQRJ+}D_2Vb3SuNfcbT#cyNV5_87hIk z*>#P`9 y#|PVpgG{sm zcz^uutrZirJkg|7Ki(BWoXhyQ*D0pN+0Ltdvf(ubLf~(F#LxAs-u@{MwZvpYIetq*9?Erp8DbyjYXI zYcbqFE^d{;9qA1#V9$EqKo2K}Y_q-QtAyeaTg)ZPO5UG!_Pp`e;zL$8(?%LE{`ryR z;b?3T<5)z?O&}hKb>E#M$1quK*hb`_wBlqEH-Ozlqe}!EnJEZra-q~#QfhKRYOC#^ zHd7&|PyotaN|0@%IzTa;{e&`pGNC6p5mWZ!1`wPJL8zPhK4wdvTfWvC24i<_SyHtR zWd!`$tlxh)vcER0HdBpZ;qvoP{#{{uw`vCZ@G~@>F_NaL> l()7i?cHTmQtp4^Ix&tTG&*B&@KM?jujp{<1qZ3yLYBi^ zkM`O^D1PHLL2_XZ<-tKcM*>NCaN2bjta2XgHPJ71Tfnb+1r+Eht{Ufkns0_8+K(bP zgDG+oB-cQ0ew18essvEsA|Lif@L^M)KwCAMZ}n ZGE#@pJb$Tz z{sRz-itUfnw!Fd+{kd-?38@Ej!B8l;0RNgtlfUCZ>;aGnJ|6@?AYa)B(}f+86$=U{ zI5Y2D1_PqtlK~OaF8b(}@`zqOE#r*YL$j{B HEuaa=x=pZbobuT5wV+IHpUl4PTDs1ytzRw9G;(LR$LLR4y5cW z6YyIs&B|%jf*aI%|H$cIR9#vh_;Luj0ATteP4m@89@L$YoJtsz3FLt|3DY53SYKLT z1|tg$^tE~m%x`AV&<%k4bb!hUwDNlODazjfTL-95kv-`Kr9S;c3eax&WHp$u*Tc3l zr3A|85GE^?sh}o9yK3d 0OUB<~HlI%;7?UZcKK^gb|x` MOSUuE z>_H~;u~nK2I++GNb-p^_^VAaR3MjLQpq-`zdk(sQzpR&lMiN~>%_n02H?v1ha0NnD z9>iDNPzWPEY-?UWg{J}t5?Z}3pRL}*l$g2AMqWYo(#mOK>jUE&`iIanWEVmr=}n%G zw+HQfn-zNK79dV8-xN&h3+8|UUk_B-cD+89_Qo`4V55mPY%gbOMg(jgz$KI~rNMcn z&YE|P nI&Z$Kn_ib$Tn|La!Kn$PKW9JE~5i4CH*VMHtA znGOSEv*!zK8Z3NX1Yv})HM3I*Gt+x*9;%m7hrpGzo4M_eAv5 hu zf)1XNT{;X--Lwv88WS|=`UbYJ4;;Et%Zhw|up5!PEu?$N6H2+fPaKC77iRkgBaC(b zUxM;ony_7nK26WB{XC9gN>>$jG)n?$=m)a K0*~?FszI z?*@ml`t^nlI_!Tn=xaG$(T*{~@jftEQmf)(NMYt_V`^2nB5+s<89*!f5YbW8K_C7$ zmG7upAy0v88ORPsP7Hmd4@y<>Wdn~wg{s^ 1L?`zyAM~= zP+UOlmvSn>$bA~~cgmAPhl)>oY4@S_;T$ d05H|o_0CD3LemNkr+Ng)PK^ %86CPt*2!@ESY)gV#7s2uoA%HFg4N#{aQL2&c(4qPDX{Ymg3W zv2xP5;u;Sg>0F3 X *Iq8LGYyQyl4P>y3!hO zj{L8ZLae#7ow5`T_|19=m|%5h3D}0<_f1;LQHeq=dfy_}2@j?ZQw6}d0(vPBgeHLw zk~B9%a?q>Z0Dh<)KRrntK+$AtIGlXQ{`*y2l)aPtt2Rz)_Ms0IpTsypp0$VgB>eu# z%@P~;HsdalKI05jKCrS(JCP>@1>1xrki!^jC^LK^xc}dNv@9DddCGy>y#n#Cc?b0K ze0vOpV@C``T8BxSn+3)u%QU)tMcxjuOW7i52J|J!FZFslNceyF!Uo5o$rmxox0(=H zk0fNqK-dr wIR*xW>rfxLAiNbRV9)Q4L_n!O!1wj(1yJ~9>byyT zxm(Q;MFDFPrHAM#3V1lkE8NaepzsiiqxdA|b5xHe3wb8QX0r%S8&$p{HXE1!p_!?0 zDi sKr#0{utLzgW7thJL8W_Sdyh4vofu?|@<#yl;AZhw{DwzSD}d zIfpzxvp23cZ1GaQ(cXpo2Q67IFtIz3An~8&31^ry>xTA(6e6y4*hTY($~rapk`?u$ zn{|24pwI+pCx?(u6$2TJ#%meTfrzh2gy4b7mKm;oC)bb$>;MYjeue`Uo|rZd)}xuy z>6FrBDP^9FLv|$ia&80DHYE4Q9sE6_lz1vV0eLKhcBUvj0eLL+(i$JIaQ)OF-Oa#2 zdI`)lG_oI=w*S{+DHd#Dl`_cz0BQ?Ywr^i3NVM18H2+0 Xo1 zk}3k!fC4u_s<^!HbEzWtZ!R&x2kd$HWJl28Lj_F&SRPz2VDtINJ+j&}0Dyc 7*6nX*_0ATz1^+N+185b49P*&uhEiO4i^z@<{HI`;9q}0=gy_p0v}keE z!Qud k7~%l@K(Byts||O@tRp6kq>vr zVTd#VlWhXZKt!rUmW*dwkHoPMvV|0?t67~}O;D;ClfB?Dbtsb;B5kaHDqmFPSdESV zlwM#`((aG?D9wcItB!Y*3?P?aV`pt9q2y;ceV#ERAOat7F!T&4iA8&^+EMVfL&rn~ zt96PVs!7QZQF3_u@k#PJ*oR;%d lkQ#(4!PP+x#MqR;b9J_mPrM~Hv$2T%z?3^>gaJtx3- zMLh=~O^^Pe>9}&|j9CWl@9@nL%{C;uB_H#slM#9c z#GMo3 JD1w4h2eDnuTpM3P} zSvp2B<^uUM0x{;c?Tk64d-;qpU(uN{hnGQatGOSK#VNFCks*QB!>!+5w!>7Aw=fhe zag=+53Sk-fDTJj_V42=u#j8#^*o@4#bIIIx^Q|zt-FrK%BiZqFKR9zy{)(W(Az`6! zk9mkk<#*yy+uLJUU6MG>I8aZ4pq+&IsC{*f2E7c}FJ2DEUrM22YfpRon)cMIOCh|q zo;@gO+J>RmxcfZyut_?-qG@#yfIL-5%7z;0_8d|i5})+Rn6?_C THf)qJZP&NOzn9NVrd_EZPsrXbovrqA $5vOgYc z{~nRaP<_K?9B2=zLt477V*hfpzd6Hv8nk+fwhJ28;f9UW=|*hG`i?VfO-D?uoCd^t z8eI{ex1*g{-vrqU2=IQ5=!_hcnAJ&``HWl2AjjWi`@?BwtG86r5g8!Sdn(%nZ^+uV z9RzO^-isRR{QW*8bcGwoC~`a#^->%#&VY#Bqc3Wv1p3|pIS{C%*rHEa0g%o5&7pi1 z5V=$uUl+v!tqJO1kZD~Y?%io`Fko*$3u-P%grlI{?CSs)=s95ay)A7`yt@rL0|riZ zHPp5n;Bg2sGfE3?H* vM~Np+Z3j z9SIyifhpisW42qy>xd~d7?UB@Xu~5vvOjZ>vsRx&&Jj?&03GbJKX&i}@T8G{7I* MtFQ0& BF6y?7s38%x^`A25))>l@x)d&HrPg*uY<};a z1_DBMtt9f5?6E*(^2p=hl4@Rrh-6qLbL&W}KZPq{mm@a@gNtG>5G7>|l$4$>L`i9$ z6kUh{4wh0`ww(sjbSP`Ppu>0!r|6x3c1CbeYLx((i4nZkDbIkJ7zj)tWXi|)%v2pa z1e=jcJWh}y<4;#?IaaOM3{%K{grubqo`eoZKb5ousnL|4_#u*#MWH~z4hPEXSl`P) zmwnJ@<$zp{DTzQ?IY=%CQN2(;3J%8$EqhDM1`Zy;9N-R-@r3@~MQQZ+?$nrf@VHng zR0yol$3F6@Ae<=+Mau91kI#ho!wrw*SDtQ$xG5tJsu0LpX9V_8O<&4dx8-9*FSVF| z`~>;m#Y SxW9$F!HE4ukTr(9 z_MfF~KK HrLi+Nh8>>uia8R3)Pfl(X{tiv4i1M4rTXUt&e zxeI_GGy#f(xO_Lvr}v=!eNL`p$Qb&}T%4So_6J1+HR`aJV=C2mD{g^;gTi`p4RiBQ z6a&>&{bQKlJ5Os+_fQ}NGJmnDa}&U?cBkLN)18y1yBqpyW5yUyok9!8k@eD3&>lIy z_5%CbW3;Hg{Bam4bq;AAt5Z-cEb^h$p->)(g{?wbM`3&D*(mA9oVWFcv9RH7pqzC; zW_s_yLO7znh_?khy5L{z=(S7)Q9y`Og;pPj*zf7J&`#i0;pgBL=WSPyI*bfz 4H?G; z5Ohh0&N_(&QHG8v>JnnODa-3i$cbVj%Paj;B9j3qn^Bl3SK0-fivrp}W3$))BhaSz z1phnGwnq;J?8R^ILq9A-4+hNT*oVZSAC^&~+*6FSAVH(A;&+pe4)@+PLE-Qav>@AZ zVw+mJnoNa)A3FO8fLo$=!6!@eB9#Q%3P5}XiDo%06W9cxH^8L>1Qgoj1h; SYSvec^2g-chYWU*qi%{(h-0+h%-)QjQ~8&*71Nx`GV(6|1%{h<@d)x z@2?Lr&~Pz=fB+oEt#j-Jct1*C)9)#9^Kpba3^gWU{4XvgJWLBH*d1`pS*idi2*9=O zm8dlTN5NHu?r(xCd^V>mNq*t_A+%Gl|L+E^J|O>w#8iNfcS|7NW*?C?UMXsg2516b zug0~`zpfJ{sR6_YY(pas6s^whxw@yD`yhW2Y0W`5tWStFLfSpHj)Na!f{=E-0g6hr Y`)Jt345rYY&g)3C`2WfO({yG3AFAHKAOHXW literal 0 HcmV?d00001 diff --git a/public/images/qrcode/wechat-official.png b/public/images/qrcode/wechat-official.png deleted file mode 100644 index 54f1e17f2608ddd6663a60467bc2a07587a43993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4268298 zcmeF42fQ6sxxVoVNVzB$6jZog|8|O4uEG_h+^d3sZ~+zNB1jJ %ZTL?`ECJE;D=2K6{^Yp7}9ZQ`W5Yt!KS6hxxv} z)@-@mD*wL4a$0^@T7O+yZ(4D= uG|MHj8S$tush`&0jW_Lrjq zmRmmF>7nfq!dj(u*V1}lX=Q-`1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00I!` zJp>frQJiPZ9ttfLUQNmN)&ALrNu`tp0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U -ukWI#We|V>1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00I>V{IPWGLrn*p3Mimt$Gc1G{uONG5Ck9q0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fI$Btpm@={3kW|oR79!nPnA}_U)6u~MoS?80SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fIuw*`u^3Y8wxx%aZ#yGeRGQi0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00L
00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fIu|@iYG0fIS7?AW2x*_O6!nnm2(^d5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uh0srR`O6hNS9dFO|7kX`L9=!zKhE009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##>Jb=U%CK79U{uBorLr{6N@cP@00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKp-yxjg4x0+*PRzea}i`xL6 j&bU6roaH?vqE009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AkZv -KJ6~4Q)zFbtrlmh_>KmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwx`h`^-M_Pfi$sTv!leEUb&u?YbPKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwx`q6zF@BV3i7DpmNQqAR652tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SHte@S$3 k5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uU&gz ^00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOL})37nmdTa_wUt>{W94+0Q?00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY<62&@*zu1fiL&2SA_AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rzi}fn8H^tCx$efbt*!0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_kb%G? z$E`|v*UXTgED(SI1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izb6@j%ByDAmV z9D%JOOt}z%00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY<+2qbd_mNMR#B{O*- z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AkZQLidQY)qOvI#0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Makd@N69@ ^acj7G!ja+l z(VK(;!`29UJop|~7@z?(fCkV28bAYR01co4G=K)$tbqfDf28!DwrTRdHu{a*!i=t| z`Cj $n1JR%=iM*gyC1yZg$B?78bAYR01co4G=K)sKyT83zFW)!0SG_<0uX=z1Rwwb z2tc6I3Ftdkz3E*GTk#E`0W^RH&;S}h184vZpaC?11{%|V-v3x2009U<00Izz00bZa z0SI&|0sY>N_r1p6_uvLMG=K)s02)98XaEhM0W^RHdZPw3-v$c=AOHafKmY;|fB*y_ z0D(>;p!v;v<2x2M;~PK&XaEhM0W^RH&;S}h184vZG^YW5- )pl|c?uGieV9{k{k2G9T+Km%w14WI!ufCkV&Z`8nm;cEoF7qUPA0uX=z z1Rwwb2tWV=5a $oWSTeZY#f=^yc3LVmrTSMFVI64WI!ufCkV28bAYR01XtQ zfydsswV%H!(|ia(00Izz00bZa0SG{#T?DS4a3panepiVG&;S}h184vZpaC?12G9T+ zKm%nB=sl4I0uX=z1Rwwb2tWV=5P(2C2pm6p)AG9szfCOWw~26sBN{*hXaEhM0W^RH z&;S}h1HD-T$B*8m9j~X<2>}Q|00Izz00bZa0SG`K=$pH}`F#r8@duy*G=K)s02)98 zXaEhM0W^RHiq*h?VQcWV3;_s000Izz00bZa0SG{#Ed+SKEB5^kp72BiXaEhM0W^RH z&;S}h18ATxXrL`Gs8k982tWV=5P$##AOHaf^m_t*;eCoW;1@sxXaEhM0W^RH&;S}h z184vZ6sv)L|FR4K2tWV=5P$##AOHafK%gxIc(*I|-434cL<4954WI!ufCkV28bAYR zpf6~kEib543IPZ}00Izz00bZa0SNSa0)63qiZ 1Rwwb2tWV=5P$##I-3CRcE!Hi!4sZn01co4G=K)s02)98 zXaEiL1r2oen=IBrp!XBdZ~bS_o*ib)m=WH3>n+xQG7ygi3l_AcgS)!A3hNKGWA5C! zZD~i=N*6C)9A?g(Syy|rX3a{*1=cHf$&w{Od5hAsY*U# lc7A;zo$vkNx%e}sE z;lfPi6`e` (~Ov{Az2vdb<@L}OO1R*+*OH{5VT_|liY6l6y;{h|I`fBp5t(MKP>Oux6fEw#!w zPq+8kXP*sQZn _uhMl4K~=Ise4ZLeeG*sOEfZU*s!E3Gp$sw z>X#OziCXu%xZQEb9o@>a?Qyw9ZoB-8F1jeOuPE)GdFGjknJ&Lbn=6%N{(}b(PWndu z(`;L^=vDoxXSkl_dZugXsWw;Qz%dB)B?7$L75i=nPk5pMG=K)s02)98XaEhM0W{DT zG|-pcdua;xGG$6qw9AO= zae3p%j}L3Exn|Y!vTED>*H~kXFlNk{q$<}D*PC_QHf#KrVi`r=bGO`bOJat`uB8{( zt5jO3Rj=Fp=Rg0sTX`-cU3O9X=K9ND{<5ZhS^MtY?|yeu&VT^}5))f(zd5)aiapy_ zGxdHeQr{zbmg||WrKj5Lwv$4juM+4B?^Cn^zW^FQ184vZpaC?12G9T+Km%x?SPk^m zcVOBDfp!tFFVm^!snT!t auHfo)9)=A2