From 91b93bf9129f2e5959b0dd7f1d47844b4e58f1d9 Mon Sep 17 00:00:00 2001 From: fluopath <255833596+fluopath@users.noreply.github.com> Date: Sat, 8 Aug 2026 20:22:15 +0800 Subject: [PATCH 1/3] build mobile-first v0.7 and Android app --- .github/workflows/android.yml | 57 + .github/workflows/quality.yml | 23 + .gitignore | 1 + PROJECT_HANDOFF.md | 306 ++ README.md | 10 +- apps/native/README.md | 47 +- apps/native/package.json | 7 +- apps/native/src-tauri/Cargo.lock | 4394 +++++++++++++++++ apps/native/src-tauri/Cargo.toml | 2 +- .../src-tauri/gen/android/.editorconfig | 12 + apps/native/src-tauri/gen/android/.gitignore | 20 + .../src-tauri/gen/android/app/.gitignore | 6 + .../gen/android/app/build.gradle.kts | 71 + .../gen/android/app/proguard-rules.pro | 21 + .../android/app/src/main/AndroidManifest.xml | 38 + .../main/java/com/nexus/quant/MainActivity.kt | 11 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2594 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 6596 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2390 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2490 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4289 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2244 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5654 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 8749 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 5022 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8992 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 13452 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 8159 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 12383 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 18555 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10301 bytes .../app/src/main/res/values-night/themes.xml | 6 + .../app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 6 + .../app/src/main/res/xml/file_paths.xml | 5 + .../src-tauri/gen/android/build.gradle.kts | 22 + .../gen/android/buildSrc/build.gradle.kts | 23 + .../java/com/nexus/quant/kotlin/BuildTask.kt | 68 + .../java/com/nexus/quant/kotlin/RustPlugin.kt | 85 + .../src-tauri/gen/android/gradle.properties | 24 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + apps/native/src-tauri/gen/android/gradlew | 185 + apps/native/src-tauri/gen/android/gradlew.bat | 89 + .../src-tauri/gen/android/settings.gradle | 3 + apps/native/src-tauri/icons/128x128.png | Bin 0 -> 5084 bytes apps/native/src-tauri/icons/128x128@2x.png | Bin 0 -> 10355 bytes apps/native/src-tauri/icons/32x32.png | Bin 0 -> 1253 bytes apps/native/src-tauri/icons/64x64.png | Bin 0 -> 2504 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 4292 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 5762 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 6091 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 11856 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1199 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 12532 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1690 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2926 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 0 -> 3407 bytes apps/native/src-tauri/icons/StoreLogo.png | Bin 0 -> 1854 bytes apps/native/src-tauri/icons/icon.icns | Bin 0 -> 130179 bytes apps/native/src-tauri/icons/icon.ico | Bin 0 -> 21077 bytes apps/native/src-tauri/icons/icon.png | Bin 0 -> 22063 bytes .../src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 789 bytes .../icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 1561 bytes .../src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 1561 bytes .../src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 2351 bytes .../src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 1140 bytes .../icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 2300 bytes .../src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 2300 bytes .../src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 3338 bytes .../src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 1561 bytes .../icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 3192 bytes .../src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 3192 bytes .../src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 4833 bytes .../src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 51174 bytes .../src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 4833 bytes .../src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 7268 bytes .../src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 2947 bytes .../src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 6217 bytes .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 6679 bytes apps/native/src-tauri/tauri.conf.json | 5 +- index.html | 7 +- package-lock.json | 34 +- package.json | 2 +- packages/core/package.json | 2 +- packages/sdk/package.json | 4 +- public/icon-128.png | Bin 0 -> 5084 bytes public/icon-512.png | Bin 0 -> 22063 bytes public/manifest.webmanifest | 25 + public/sw.js | 30 + scripts/smoke.mjs | 33 +- src/App.css | 72 +- src/components/Shell.tsx | 65 +- src/index.css | 44 +- src/main.tsx | 6 + src/store.ts | 4 + 102 files changed, 6048 insertions(+), 74 deletions(-) create mode 100644 .github/workflows/android.yml create mode 100644 .github/workflows/quality.yml create mode 100644 PROJECT_HANDOFF.md create mode 100644 apps/native/src-tauri/Cargo.lock create mode 100644 apps/native/src-tauri/gen/android/.editorconfig create mode 100644 apps/native/src-tauri/gen/android/.gitignore create mode 100644 apps/native/src-tauri/gen/android/app/.gitignore create mode 100644 apps/native/src-tauri/gen/android/app/build.gradle.kts create mode 100644 apps/native/src-tauri/gen/android/app/proguard-rules.pro create mode 100644 apps/native/src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/java/com/nexus/quant/MainActivity.kt create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 apps/native/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 apps/native/src-tauri/gen/android/build.gradle.kts create mode 100644 apps/native/src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/BuildTask.kt create mode 100644 apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/RustPlugin.kt create mode 100644 apps/native/src-tauri/gen/android/gradle.properties create mode 100644 apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 apps/native/src-tauri/gen/android/gradlew create mode 100644 apps/native/src-tauri/gen/android/gradlew.bat create mode 100644 apps/native/src-tauri/gen/android/settings.gradle create mode 100644 apps/native/src-tauri/icons/128x128.png create mode 100644 apps/native/src-tauri/icons/128x128@2x.png create mode 100644 apps/native/src-tauri/icons/32x32.png create mode 100644 apps/native/src-tauri/icons/64x64.png create mode 100644 apps/native/src-tauri/icons/Square107x107Logo.png create mode 100644 apps/native/src-tauri/icons/Square142x142Logo.png create mode 100644 apps/native/src-tauri/icons/Square150x150Logo.png create mode 100644 apps/native/src-tauri/icons/Square284x284Logo.png create mode 100644 apps/native/src-tauri/icons/Square30x30Logo.png create mode 100644 apps/native/src-tauri/icons/Square310x310Logo.png create mode 100644 apps/native/src-tauri/icons/Square44x44Logo.png create mode 100644 apps/native/src-tauri/icons/Square71x71Logo.png create mode 100644 apps/native/src-tauri/icons/Square89x89Logo.png create mode 100644 apps/native/src-tauri/icons/StoreLogo.png create mode 100644 apps/native/src-tauri/icons/icon.icns create mode 100644 apps/native/src-tauri/icons/icon.ico create mode 100644 apps/native/src-tauri/icons/icon.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 apps/native/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 public/icon-128.png create mode 100644 public/icon-512.png create mode 100644 public/manifest.webmanifest create mode 100644 public/sw.js diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 0000000..0eeef30 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,57 @@ +name: Android APK + +on: + workflow_dispatch: + push: + branches: [main, "agent/**"] + paths: + - "src/**" + - "public/**" + - "packages/**" + - "apps/native/**" + - "package*.json" + - "vite.config.ts" + - ".github/workflows/android.yml" + +permissions: + contents: read + +jobs: + build-debug-apk: + runs-on: ubuntu-latest + timeout-minutes: 45 + env: + NDK_VERSION: "29.0.14206865" + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: gradle + - uses: android-actions/setup-android@v3 + - name: Install Android SDK packages + run: sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" "ndk;$NDK_VERSION" + - uses: dtolnay/rust-toolchain@stable + with: + targets: aarch64-linux-android + - run: npm ci + - name: Build installable ARM64 debug APK + run: | + export NDK_HOME="$ANDROID_HOME/ndk/$NDK_VERSION" + npm run android:build:debug --workspace @nexus/native + - name: Collect APK + run: | + mkdir -p artifacts/android + find apps/native/src-tauri/gen/android/app/build/outputs/apk -type f -name '*.apk' -exec cp {} artifacts/android/NEXUS-Quant-v0.7.0-arm64-debug.apk \; + test -f artifacts/android/NEXUS-Quant-v0.7.0-arm64-debug.apk + - uses: actions/upload-artifact@v4 + with: + name: NEXUS-Quant-Android-v0.7.0 + path: artifacts/android/*.apk + if-no-files-found: error + retention-days: 30 diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml new file mode 100644 index 0000000..4201eaf --- /dev/null +++ b/.github/workflows/quality.yml @@ -0,0 +1,23 @@ +name: Quality Gate + +on: + pull_request: + push: + branches: [main, "agent/**"] + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + - run: npm ci + - run: npm run check + diff --git a/.gitignore b/.gitignore index 206cb33..111b2fe 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ dist-ssr .env.* !.env.example apps/native/src-tauri/target +artifacts/ # Editor directories and files .vscode/* diff --git a/PROJECT_HANDOFF.md b/PROJECT_HANDOFF.md new file mode 100644 index 0000000..e868b8c --- /dev/null +++ b/PROJECT_HANDOFF.md @@ -0,0 +1,306 @@ +# NEXUS Quant 项目接手手册 + +> 最后核对:2026-08-08 · 应用版本:`0.7.0` +> 本文面向新开发者、产品负责人和接手项目的 AI。先阅读“安全边界”和“第一天接手清单”,再开始修改。 + +## 1. 项目是什么 + +NEXUS Quant 是一个面向个人学习与研究的跨资产量化金融实验室。目前把以下能力放在同一个工作空间中: + +- 分级金融课程、术语库和学习进度; +- A 股、港股、美股、期货、黄金、原油及大宗商品观察; +- A 股规则模拟、T+1 可卖数量、费用和模拟账户; +- 双均线回测、样本外分析、参数敏感性和走步验证; +- 因子研究、Rank IC、逆波动组合和组合风险分析; +- 基本面研究清单、投资论点、估值情景和权威披露入口; +- Web、Windows、Android、iOS 共用的领域核心与 API SDK。 + +这仍是学习和研究产品,不是实盘交易系统。演示行情、部分市场参数、回测数据和估值数字均为仿真或示例,不构成投资建议。 + +## 2. 当前交付状态 + +### 已经实现 + +- React 19 + TypeScript 6 + Vite 8 单页应用,共 8 个主要模块; +- Fastify API、REST 快照、SSE 行情流、安全响应头、CORS 和限流; +- 有容量和并发约束的异步研究任务,支持取消与状态统计; +- `@nexus/core`:跨端领域类型、工具目录、交易规则、回测、稳健性和因子函数; +- `@nexus/sdk`:行情、研究、风险、工具目录和订单 API 客户端; +- 仿真券商连接器、预交易检查、幂等订单、条件单撮合、撤单和脱敏审计; +- 移动优先界面:底部主导航、全部功能面板、44px 触控目标、安全区、手机底部弹层; +- PWA manifest、离线应用壳和可安装快捷入口; +- Tauri 2 原生壳、已生成的 Android Studio 工程和全套 adaptive icon; +- GitHub Actions Web 质量门禁与 ARM64 Android APK 构建; +- Dockerfile、Compose、API/架构/实盘安全文档; +- Windows 双击启动脚本 `start-nexus.cmd`; +- 29 个测试以及 API、浏览器冒烟脚本。 + +### 尚未生产化 + +- 行情提供者当前默认为内置仿真;没有购买或接入任何商业实时数据授权; +- 研究任务保存在单进程内存中,服务重启后任务消失; +- 用户、课程、订单和研究数据主要保存在浏览器本地,没有账户体系和数据库; +- `paper_broker` 与 `live` 环境在服务端默认拒绝;没有真实券商连接器; +- 组合风险使用学习用途的简化相关性假设; +- Android 当前交付调试签名 ARM64 APK;Google Play 发布签名、AAB 与商店材料尚未配置; +- 当前开发机已有 Rust、Android Studio、API 36、Build Tools、ADB 与 NDK,但因无管理员权限缺少 MSVC;本地 Android 编译应使用有 MSVC 的 Windows 或 GitHub Actions; +- 已有基础 CI,但没有生产部署 CD、生产域名、TLS、监控告警和灾难恢复。 + +## 3. 安全边界(必须遵守) + +1. 不要把数据商 Token、券商密钥、Cookie、身份证件或银行卡数据写入前端、日志、Git 或 `localStorage`。 +2. `.env` 和 `.env.*` 已被 Git 忽略;只有无密钥的 `.env.example` 可以提交。 +3. 实盘环境不得由前端参数直接开启。必须有服务端开关、账户授权、重新认证、逐笔确认、审计和紧急停止。 +4. 外部行情和工具参数必须携带来源、时间戳、新鲜度和延迟标记。`indicativeOnly=true` 的参数不能直接用于真实下单。 +5. 未经授权不得抓取、缓存或再分发交易所及数据商实时行情。 +6. 回测必须显式处理费用、滑点、未来数据、复权、停牌、涨跌停、退市和幸存者偏差;当前引擎只覆盖其中一部分。 +7. 不要宣称 VaR、压力测试或回测收益代表最大损失、未来收益或实盘承诺。 + +更完整的实盘边界见 [`docs/BROKER_CONNECTORS.md`](docs/BROKER_CONNECTORS.md)。 + +## 4. 技术架构 + +```text +React UI(Web / Tauri Windows / Android / iOS) + ├── Zustand 持久化状态 + ├── @nexus/core 领域模型与纯计算 + ├── @nexus/sdk 跨端 API 客户端 + └── MarketDataProvider + ├── SimulationMarketProvider + └── NexusApiMarketProvider(REST / SSE) + │ + Fastify API + ├── 标准化行情网关 + ├── 异步研究任务 + ├── 组合风险分析 + └── 仿真券商与审计 +``` + +关键原则:页面不理解供应商私有格式;交易和回测规则尽量放在无 React、DOM、网络依赖的 `packages/core`;跨端网络协议放在 `packages/sdk`。 + +## 5. 目录导航 + +| 路径 | 责任 | +| --- | --- | +| `src/pages/` | 8 个业务页面:总览、学习、市场、期货、模拟盘、策略、研究、风险 | +| `src/components/` | 应用壳、共享组件、错误边界、基本面研究组件 | +| `src/services/` | 行情提供者与研究 API 适配 | +| `src/store.ts` | Zustand 本地账户、持仓、订单和课程状态 | +| `packages/core/src/` | 领域类型、交易规则、工具目录、回测、稳健性、因子和结算函数 | +| `packages/sdk/src/` | 跨端 API SDK 和 SSE 适配器 | +| `server/app.ts` | API 路由、输入校验和安全中间件 | +| `server/researchJobs.ts` | 有界内存研究队列 | +| `server/broker.ts` | 仿真券商连接器参考实现 | +| `server/risk.ts` | 组合风险计算 | +| `apps/native/` | Tauri 2 Windows/Android/iOS 壳、Android Studio 工程与图标 | +| `scripts/` | API 与浏览器冒烟测试 | +| `docs/` | API、架构、数据源、多平台和实盘安全说明 | + +## 6. 本地启动 + +### Windows 最简方式 + +双击仓库根目录的 `start-nexus.cmd`。脚本会在需要时安装依赖,启动 Web 与 API,并打开浏览器。 + +- Web:`http://localhost:5173/#overview` +- API:`http://127.0.0.1:8787` +- 健康检查:`http://127.0.0.1:8787/api/health` + +标题为 `NEXUS Quant Services` 的窗口必须保持打开;关闭窗口即停止服务。 + +### 命令行方式 + +```bash +npm install +npm run dev:full +``` + +只启动前端:`npm run dev` +只启动 API:`npm run server:dev` + +如果端口被占用,在 Windows PowerShell 中检查: + +```powershell +Get-NetTCPConnection -State Listen | Where-Object LocalPort -In 5173,8787 +``` + +不要通过结束所有 Node 进程来解决端口问题;应确认 PID 后只停止本项目的进程。 + +## 7. 环境配置 + +复制 `.env.example` 中需要的配置,不要直接修改或提交真实密钥。 + +| 变量 | 用途 | 默认值 | +| --- | --- | --- | +| `VITE_NEXUS_API_BASE` | 前端 API 基址;同源或 Vite 代理时留空 | 空 | +| `PORT` | API 端口 | `8787` | +| `HOST` | API 监听地址 | `127.0.0.1` | +| `NEXUS_ALLOWED_ORIGIN` | 逗号分隔的 CORS 白名单 | 本地 Vite 地址 | + +生产容器示例:`docker compose up --build`。当前机器未验证 Docker 构建,部署前必须在安装 Docker 的环境执行镜像构建和健康检查。 + +## 8. 必跑质量门禁 + +提交前运行: + +```bash +npm run check +``` + +它依次执行: + +1. `npm run lint` +2. `npm test` +3. `npm run build` +4. `npm run qa:api` +5. `npm run qa:e2e` + +当前基线为 9 个测试文件、29 个测试。数量增加是正常的,减少时必须解释原因。浏览器冒烟覆盖 8 个桌面路由、8 个手机路由、7 个关键交互、全局横向溢出检查和两张视觉快照;新增页面或关键流程时必须同步扩展 `scripts/smoke.mjs`。 + +额外检查: + +```bash +npm audit +git diff --check +git status -sb +``` + +## 9. API 快速索引 + +| 方法 | 路径 | 用途 | +| --- | --- | --- | +| GET | `/api/health` | 服务状态和版本 | +| GET | `/api/v1/system/capabilities` | 客户端能力发现 | +| GET | `/api/v1/instruments` | 跨资产工具目录 | +| GET | `/api/v1/markets/snapshot` | 行情快照 | +| GET | `/api/v1/markets/stream` | SSE 行情流 | +| POST | `/api/v1/research/jobs` | 创建回测或稳健性任务 | +| GET | `/api/v1/research/jobs/:id` | 查询任务 | +| DELETE | `/api/v1/research/jobs/:id` | 取消排队任务 | +| GET | `/api/v1/research/stats` | 任务队列统计 | +| POST | `/api/v1/portfolio/risk` | 组合风险分析 | +| POST | `/api/v1/trading/orders/preview` | 预交易检查 | +| POST | `/api/v1/trading/orders` | 提交仿真订单 | +| GET | `/api/v1/trading/orders` | 订单列表 | +| DELETE | `/api/v1/trading/orders/:id` | 撤单 | +| GET | `/api/v1/trading/audit` | 脱敏审计事件 | + +详细请求与响应见 [`docs/API.md`](docs/API.md)。 + +## 10. 浏览器持久化状态 + +当前以下数据保存在浏览器本地,清理站点数据会丢失: + +- `nexus-quant-state`:账户、持仓、订单和课程完成状态; +- `nexus-data-source`:行情源选择; +- `nexus-research-note`:量化研究笔记; +- `nexus-fundamental-checks`:基本面研究清单; +- `nexus-investment-thesis`:投资论点; +- `nexus-learning-level`:解释深度。 + +修改 Zustand 持久化结构时需要设计迁移,不能假设用户一定是全新状态。 + +## 11. 常见扩展方式 + +### 新增行情提供者 + +1. 在 `src/services/marketData.ts` 实现相同 provider 生命周期; +2. 服务端完成供应商字段到统一行情结构的转换; +3. 密钥只放服务端; +4. 保留仿真回退和延迟/错误状态; +5. 扩展 API 与浏览器冒烟测试。 + +### 新增资产或交易规则 + +1. 扩展 `packages/core/src/domain.ts`; +2. 在 `packages/core/src/instruments.ts` 增加带来源和生效日的工具定义; +3. 在纯函数层实现校验并增加单元测试; +4. 再接入 API、SDK 和页面; +5. 动态保证金、港股整手和期货合约参数必须标记为需要刷新。 + +### 新增研究分析 + +1. 优先在 `packages/core` 编写可复现纯函数和确定性测试; +2. 大计算通过研究任务协议运行,不阻塞请求线程; +3. SDK 返回紧凑、跨端稳定的结果; +4. 页面必须显示样本、费用、参数和方法边界。 + +## 12. Git 与 GitHub 工作流 + +远端仓库:`https://github.com/fluopath/Nexus-Quant-lab` + +本文创建时的状态: + +- 分支:`agent/initial-nexus-quant-platform` +- 初始平台提交:`932017b` +- Draft PR:`https://github.com/fluopath/Nexus-Quant-lab/pull/1` + +开始工作前先执行: + +```bash +git status -sb +git fetch origin +``` + +确认 PR #1 是否已经合并。如果已合并,从最新 `main` 创建新的 `agent/` 分支;不要继续在已合并的旧分支堆叠无关改动。禁止 force-push、`git reset --hard` 或静默覆盖他人改动。 + +提交原则:一次提交只表达一个清晰意图;提交前检查 staged diff;通过 PR 合并到 `main`。 + +## 13. 已知技术债与建议优先级 + +### P0:生产基础 + +1. 在现有 GitHub Actions 之上增加发布签名、SBOM、依赖审查和生产部署审批; +2. 增加用户认证、PostgreSQL 数据模型、迁移和备份; +3. 建立数据授权清单、供应商接口和行情质量监控; +4. 增加结构化日志、指标、追踪、错误上报和健康/就绪探针; +5. 安全评审后再开始真实券商适配。 + +### P1:研究和交易真实性 + +1. Redis/消息队列 + 独立研究 Worker,替换内存任务; +2. 历史行情版本、参数哈希、代码版本和结果对象存储; +3. 复权、停牌、涨跌停、退市、连续合约和交易日历; +4. 模拟盘统一使用服务端订单生命周期,而不是部分逻辑仍在前端即时成交; +5. 风险模型加入协方差、货币、行业、期限和衍生品 Greeks。 + +### P2:体验扩展 + +1. 观察列表、提醒、任务中心和研究工作流; +2. 课程 CMS、错题本、练习沙箱和学习推荐; +3. Python 研究服务与 TypeScript 结果交叉验证; +4. 完成 Windows 安装包与 Android/iOS 真机构建; +5. 无障碍、视觉回归和性能预算。 + +## 14. Definition of Done + +一个功能只有同时满足以下条件才算完成: + +- 需求和不支持范围写清楚; +- 核心规则位于正确层,不在多个页面复制; +- 输入校验、错误状态、加载状态和离线/失败路径完整; +- 关键逻辑有测试,关键用户流程有冒烟覆盖; +- `npm run check` 通过; +- 没有提交密钥、个人数据、构建产物或无授权数据; +- README/API/架构或本接手文档已同步; +- 金融结果显示数据时间、费用、方法假设和风险提示。 + +## 15. 第一天接手清单 + +1. 阅读 `README.md`、本文、`docs/ARCHITECTURE.md` 和 `docs/BROKER_CONNECTORS.md`。 +2. 确认 PR #1 和当前分支状态,避免基于过期分支开发。 +3. 运行 `npm install` 与 `npm run check`,记录自己的环境差异。 +4. 用 `npm run dev:full` 打开 8 个模块,完成一次课程、模拟交易和回测。 +5. 阅读 `packages/core/src/domain.ts`、`server/app.ts` 和 `src/store.ts`。 +6. 从 P0/P1 中选择一个边界明确的任务,先写验收标准再改代码。 +7. 所有真实数据、账户或实盘相关工作先做安全与合规审查。 + +## 16. 延伸文档 + +- [`README.md`](README.md):产品功能和快速启动; +- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md):架构和数据路径; +- [`docs/API.md`](docs/API.md):API 协议; +- [`docs/DATA_PROVIDER_GUIDE.md`](docs/DATA_PROVIDER_GUIDE.md):行情提供者接入; +- [`docs/BROKER_CONNECTORS.md`](docs/BROKER_CONNECTORS.md):实盘连接器与安全边界; +- [`docs/MULTIPLATFORM.md`](docs/MULTIPLATFORM.md):Windows/Android/iOS 交付策略; +- [`apps/native/README.md`](apps/native/README.md):Tauri 构建入口。 diff --git a/README.md b/README.md index f1e20f8..fd03714 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# NEXUS Quant +# NEXUS Quant v0.7 + +> 新开发者或下一位维护者请先阅读 [`PROJECT_HANDOFF.md`](PROJECT_HANDOFF.md),其中包含当前状态、架构边界、启动排错、质量门禁和后续优先级。 一个面向个人学习与研究的量化金融实验室。产品将课程、全市场观察、模拟交易与策略回测放在同一个工作空间内,让金融知识能够立刻被实践和验证。 @@ -72,7 +74,11 @@ docker compose up --build Windows / Android / iOS 壳的命令与平台前置条件见 `apps/native/README.md`。Web、桌面和移动端共享同一套页面、领域模型与 SDK,避免为每个平台复制交易逻辑。 -当前单元测试覆盖确定性行情生成、交易日时区、净值与回撤不变量、股票/ETF 费用差异、A 股整手/T+1、跨资产工具规则、研究队列、组合风险与券商订单生命周期。端到端测试会启动临时 Vite 服务并使用本机 Chrome 验证八个模块、全局搜索、课程阅读器、整手拦截、策略助手与数据源设置。 +### Android 安装包 + +仓库的 **Actions → Android APK** 会自动生成可直接侧载的 ARM64 调试 APK。打开成功的运行记录,下载 `NEXUS-Quant-Android-v0.7.0` artifact,解压后在 Android 7.0 以上设备安装。该包用于当前阶段的真机体验,不是 Google Play 正式签名版本;完整构建、安装和签名说明见 [`apps/native/README.md`](apps/native/README.md)。 + +当前单元测试覆盖确定性行情生成、交易日时区、净值与回撤不变量、股票/ETF 费用差异、A 股整手/T+1、跨资产工具规则、研究队列、组合风险与券商订单生命周期。端到端测试会启动临时 Vite 服务并使用本机 Chrome 验证 8 个桌面路由、8 个手机路由、移动底部导航、全局搜索、课程阅读器、整手拦截、策略助手与数据源设置。 ## 模拟交易参数依据 diff --git a/apps/native/README.md b/apps/native/README.md index 41408bf..2109347 100644 --- a/apps/native/README.md +++ b/apps/native/README.md @@ -1,11 +1,46 @@ # NEXUS Native -Tauri 2 多端壳,共用根目录 React 前端、`@nexus/core` 与 `@nexus/sdk`。 +Tauri 2 多端壳,共用根目录 React 前端、`@nexus/core` 与 `@nexus/sdk`。Android 工程位于 `src-tauri/gen/android`,包名 `com.nexus.quant`,最低 Android 7.0(API 24),目标 API 36。 -- Windows:`npm run desktop:dev --workspace @nexus/native` -- Android:`npm run android:dev --workspace @nexus/native` -- iOS:`npm run ios:dev --workspace @nexus/native`(必须在 macOS + Xcode 上执行) +## 试玩 Android APK -首次构建需要安装 Rust 与平台工具链。Windows 需要 Microsoft C++ Build Tools 和 WebView2;Android 需要 Android Studio/SDK;iOS 需要 macOS、Xcode 和 CocoaPods。平台依赖以 Tauri 2 官方 prerequisites 为准。 +1. 在 GitHub 打开 **Actions → Android APK**,进入最近一次成功运行。 +2. 下载 artifact `NEXUS-Quant-Android-v0.7.0` 并解压。 +3. 把 `NEXUS-Quant-v0.7.0-arm64-debug.apk` 传到 Android 手机。 +4. 系统提示时,只对当前文件管理器临时允许“安装未知应用”,安装完成后可以关闭该权限。 -安全原则:默认 capability 只开放 `core:default`,新增文件、通知、生物识别或券商连接插件时必须逐项增加最小权限,禁止使用全量 allowlist。 +调试 APK 使用 Android 的调试签名,适合内部试玩,不应用于应用商店或正式分发。正式发布必须创建独立上传密钥,并把密钥和密码放在 GitHub Secrets;严禁提交 `.jks`、`keystore.properties` 或密码。 + +## 开发命令 + +```bash +# 首次生成 Android Studio 工程 +npm run android:init --workspace @nexus/native + +# ARM64 可安装调试 APK +npm run android:build:debug --workspace @nexus/native + +# ARM64 + ARMv7 发布构建(正式分发前仍需配置签名) +npm run android:build:release --workspace @nexus/native + +# 连接手机或模拟器热调试 +npm run android:dev --workspace @nexus/native + +# Windows 桌面 +npm run desktop:dev --workspace @nexus/native +``` + +调试 APK 通常输出到 `src-tauri/gen/android/app/build/outputs/apk`。可用 `adb devices` 查看设备,用 `adb install -r ` 覆盖安装。 + +## 工具链 + +Android 构建需要 Rust stable、`aarch64-linux-android` 等 Rust target、JDK、Android Platform/Build Tools、Platform Tools 和 NDK。当前可复现版本为 Platform 36、Build Tools 36.0.0、Platform Tools 37、NDK 29.0.14206865。Windows 宿主还需要 Microsoft C++ Build Tools;若本机没有管理员权限,使用仓库 `Android APK` GitHub Actions 构建。 + +iOS 命令为 `npm run ios:dev --workspace @nexus/native`,必须在 macOS + Xcode 上执行。平台依赖以 Tauri 2 官方 prerequisites 为准。 + +## 安全与权限 + +- 默认 capability 只开放 `core:default`;新增文件、通知、生物识别或券商插件时逐项增加最小权限。 +- Android release 禁止明文 HTTP,且 `allowBackup=false`,减少本地模拟账户数据被系统备份的范围。 +- API Token 和券商密钥只能存服务端或系统安全密钥库,不能进入 WebView、`localStorage`、日志或 Git。 +- 任何实盘插件都必须额外完成账户绑定、重新认证、交易预览、限额、审计和紧急停止设计。 diff --git a/apps/native/package.json b/apps/native/package.json index 5f0cabc..5fe9f59 100644 --- a/apps/native/package.json +++ b/apps/native/package.json @@ -1,17 +1,20 @@ { "name": "@nexus/native", - "version": "0.6.0", + "version": "0.7.0", "private": true, "type": "module", "scripts": { "tauri": "tauri", "desktop:dev": "tauri dev", "desktop:build": "tauri build", + "android:init": "tauri android init --ci", "android:dev": "tauri android dev", "android:build": "tauri android build", + "android:build:debug": "tauri android build --debug --apk --target aarch64 --ci", + "android:build:release": "tauri android build --apk --target aarch64 --target armv7 --ci", "ios:dev": "tauri ios dev", "ios:build": "tauri ios build" }, - "dependencies": { "@nexus/core": "0.6.0", "@nexus/sdk": "0.6.0", "@tauri-apps/api": "^2.11.1" }, + "dependencies": { "@nexus/core": "0.7.0", "@nexus/sdk": "0.7.0", "@tauri-apps/api": "^2.11.1" }, "devDependencies": { "@tauri-apps/cli": "^2.11.4" } } diff --git a/apps/native/src-tauri/Cargo.lock b/apps/native/src-tauri/Cargo.lock new file mode 100644 index 0000000..29b8f16 --- /dev/null +++ b/apps/native/src-tauri/Cargo.lock @@ -0,0 +1,4394 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.13.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d262e149917187838d5b42777c8253bcb64500067342904e7d429499a6f277e" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.4+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-executor" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + +[[package]] +name = "futures-macro" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "futures-sink" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.13.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "js-sys" +version = "0.3.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.13.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa" +dependencies = [ + "libc", +] + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nexus-quant" +version = "0.3.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.13.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.13+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.20", +] + +[[package]] +name = "ref-cast" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.13.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.2", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +dependencies = [ + "bitflags 2.13.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.20", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.119", + "tauri-utils", + "thiserror 2.0.20", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.20", + "toml 1.1.4+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.4+spec-1.1.0", +] + +[[package]] +name = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.4+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b7777d5cc23d0e91404e53ce2d5e8ec7acae3026b16233dba62cd3246457950" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.20", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/apps/native/src-tauri/Cargo.toml b/apps/native/src-tauri/Cargo.toml index 639e80d..a44318d 100644 --- a/apps/native/src-tauri/Cargo.toml +++ b/apps/native/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nexus-quant" -version = "0.3.0" +version = "0.7.0" description = "NEXUS Quant multi-platform research and trading laboratory" authors = ["NEXUS Quant"] edition = "2021" diff --git a/apps/native/src-tauri/gen/android/.editorconfig b/apps/native/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/apps/native/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/.gitignore b/apps/native/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..1c636c3 --- /dev/null +++ b/apps/native/src-tauri/gen/android/.gitignore @@ -0,0 +1,20 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties +keystore.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/.gitignore b/apps/native/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..6c4d56b --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/**/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/build.gradle.kts b/apps/native/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..f0df6a2 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,71 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "com.nexus.quant" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "com.nexus.quant" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.lifecycle:lifecycle-process:2.10.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/proguard-rules.pro b/apps/native/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/apps/native/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..0039e54 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/native/src-tauri/gen/android/app/src/main/java/com/nexus/quant/MainActivity.kt b/apps/native/src-tauri/gen/android/app/src/main/java/com/nexus/quant/MainActivity.kt new file mode 100644 index 0000000..35bee20 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/java/com/nexus/quant/MainActivity.kt @@ -0,0 +1,11 @@ +package com.nexus.quant + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } +} diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/apps/native/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/apps/native/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/apps/native/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0d108b4a330eef8898385e6662681ecdd67f0781 GIT binary patch literal 2594 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 IM6N<$f-UQB2><{9 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ebdb7676ad21cd97be77fe4225cd2ca1686e834b GIT binary patch literal 2490 zcmV;r2}SmaP)6+ZvW?0VNuZLjZ%?Wl?qmm)QZD<|m-0#P*;rBG7tkq`o*KJW$=5~$*V2P*N< z(uY2PK=8y>;+2P#N)?DUi4rAM8=4f`v`y+buJ7x;&-{mT{>xl;*Sogk7f?pK-udSr z|MQ*Ocg}ytga7fvyC=Xs0q*W_cXG4iID(Ee(m_MqV=T11lcM#dUVeLr*rBz2JLn%c zFphvZS|Ce9xx=-nLnE0uG918j%y25eRJTJ9SE*G!N{rk;}*-Z8ivomjP+GpOC0PHWuU10ju zV_)pe4L?_@RHpJ9t5B(wKuQV7-#Wm^e|Tj?Gv;A*7or~P>jGTYg^o-o^yK;>(~-Th zwtDBMmoB{WmwF7lw!rkM)8Fgt>Um*(ZCMlwn}L);fGAx;AVOGZ&oCy7J;4aRkpPAL zH+?|}Cm=!G?(UqM>mSBqVg1=l7ta0sZi1NSaQczc-_K;bUtC$fL*NTOY26c~G%37@=`uavbJvcOaVgAFpnXQCy zn^7g1RdT@YAD#H^%JSm=LUGfl#ocBAlm4HaGdec@Z|0h~nid2Tu~(^SU zg5YedEz455aI#b`e=Ux!r2ypPihqeJPvkdNcpR_}p&nqIbuhAkT7$qljth@|@>}rj zZ@dIYCLV!WwX7_X1P=-D7`hbl6NT^B{PmTO;Lzl;lW}bAEFd{aG0#^jWu{3tp?bF1W{tSya}Iw;#v68Q$K_g4}T86dG;mv_yeDSa%B@7;Wh`4$+$ob*d+@PwRRov z8`wW)5@uTgc(J~Kl2i}`d@i6Vc#MIMNLl(mbnokjgJZ|kcyqG=1AVEMXaqe`~cGcy5LS)57r@QTQ~m zZVMsW?}?RGL;}33=9N2mFg5ig+<)*STz~g9_}7iUMTCoy3#lNMQL?hs$^q_5ZSsbs z7IUXoap1J$Alf!X93QJD16hOV<4?m^&-@Igj-G+9eBniSaPl$Y{;GPS0%!s_Ff4+MrrrF8?g0E0|eK)Y(P+!k@d-fbd- zx?B*kl4TlOE(oD5BWyJ(F=QdF;V7?2X{gpDx-kEVc=AlT?Jj8)6E#klm93kg3DiKP z0aG$)?@jo*5!CuM#|4)_DoZ;?SZJ)Vwt>Hm03vD5s7kcug3+P^tH<`)GAtuRC|G>X z2D-8kLbBGfEClV-vDc#A;@He8M2w$RCr1lrEg(&ugE7BNu#ib=!nlVtF2(asVD`^3 zlD2|a64!fo;q0UqDm%hi)0+=$y6I4K=Gdv~CJG9uwwgn*ID_$zK;5uHyD{Wv=JCJIb4S4_Nd96i}raf;J zX69a{5;+5f;v(E$xC%92(zpkfR~O*+;uT1zI;m`^z})+<0{0076?5zPd01S2TN40A zmKNG7$l2aYrI!iR#&-KcPN|q*KQMmegkP&YTrL-UdmqN>g1#RuT_IP+LqSbM718H zRxZT2S)fgwPIM^zprYpZItvwM338`ER#f-Gby8|BsUX$az?7H9$p@#MxtTYgnZGsj zD~qk23#nRwy2QWFWU^Pfd-_~5sNW1cpSx6nrqf*nvLnGXiXq6I(y4s}FqP+fgxFP4?!7+yi41etu)=JJ;Si{|;m2j^TEDqkN-FJ;`f>!(;j0-l4~- zU=!79$>)w)!vDgJnurPz5xYagdEH(WVLsGdU!xYu+=L4J=)oftL;3GszVOPQTfHlA z+f@?W9p)}^-@wRey5dsjm|N@IrPl8U^u`wB9t&{qP5nIq{tpHCFP>{;D0H7;Z2$lO07*qoM6N<$ Ef+{Y-E&u=k literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebaed36593afa5498fbe3b68ace764f35440134 GIT binary patch literal 4289 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 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..1883e4fc8e6a07a7598ecc4f60436040a9c22ea3 GIT binary patch literal 2244 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 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..6750b94b619115071947706f08f56fcda6f4e94d GIT binary patch literal 8749 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 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ce76ae5f11881a04b325f2e44032d9cb90e95c2d GIT binary patch literal 8992 zcmX|{WmFVUqqT<`0SReoq`RA;yJqO_mX;3b?jA~N=xz`MDe3MG>1L!slBSjfWEuXauWB(em zMc>z{^P8=1h^eXR9>dBIaQ!hPa|QwL&qb4-59f0ca@=_;`Jl&_ zz4DtU6k}ytB9)>v(JR1?{3`EG)RRH#n4 zg1cxWv3;Xzw;Mc{XW%P;??~G&*r3YGIIeAkapRX)x~l5i%T;4qkesKA1eHi+ww)9e z=06jocu@tWMp*&y{TQ044R_B9Lp&-r|UJxx=vHPD$uSLsZ7klGF?F(#FE zQ@!ewa{S8V8m+nsWF+@|;xCM% zVn25~)o^gZef0dnv>IjT^HdpNQeoz7dhI&>)QqEYCFZ!0)cvc{`D|jTWp8Y;*JFVr zjxVBT`Qyqc5=>BLY3X7lk^7D7h!SXLfsJE{L2X0yEZfI{Ub8Jd=FCDhy-2r8sy>(+ z(op}S#YhavTg3NPY~L^_9RWiUk7fY12*B?cyx|ZPer4bQr9XPWw)i^Rpbk1u^OK?m#_*4}<6z1jc?f__a8TKvR%i_DsGa*3DWMvVT$ zHx`*h#}b#fKkCXXnXC_pI|$Ke0p`1=%Kz#S?v1@>n|`AVQ}GI}g;2%eX;kt~%4W2F zX*i@#8x{Lvn)S4s_J%^(e)7T}SEB6u;r4ue(Dq-_H&JqwjQDSLXQ7h(BtCn&~&g&`hzM;UFar=-+3w|c@k~?70?v&=6yqX%I!CK@3}N~^-~WQ5XOtDijAJ#xFc)0W z2FRa+=NoU^LZrjU~{x%s>DS3>p zNg+-b97M|XsMAZSoGO(&D07+}9!;g)jy5-??w}djty@HW7|%n2_%y{M^bi3-USlri zFtrI~zJgJV)B|X`&U-~?$->S&iEw0?d~L^-Er6@Cx?wFfHL7nwhj0`8;^*ZBRLEGQ zFZG0*A(7pQ_-Lu?eW=yY`E%}}La*760IT$L$vS1-R4liI&6jo3PW|{|Jm`CXhTmm#)^S_20j}o!vV$ zIR1l7MVP0}zxXC{D6l_#bsvNV1z}K>xMIx?3~4a1`uL5^UB5`7Hjz=y;fqJKJr>ck zakm+*ZU{)qbaiqIa%TOWIjw9J&lS5n>;PBt)JoSOi|wsZ&=_?pE5Scj=a8)%X461 znqzX{DVqn1q=OzE4($s1Y+>I-3801eJZu^Ej5V?m=TrR}>m5xCdne)XFO5YJEVx;k zIoj=@Gg03>s-VsBz$J%84+)-wss)e93W5 zv9Tp~hPU81pfUligrpknxdqN4g78K43s4Po#p;zHJUMh6{xgNV~3 z5uc)zS0q4!hQ8Vs>D2b^O=a^E6LKB&) z9*q3^9tt)`q)6e}g3YX+fod3o+92tX12Nm25)G3~C02Xw=2s_y`iu^nZUidj=Xi{S zpe!CVA>#O?$>EEsgDDjQg_EL79T+^3OA^vmbR197dVe4n@Rv(3GL1p~G(6^o$}w zif$j;W{<_)Ff*2uFcJb*zS|IyOO&m$<7F>7t#m@liZtjyh_nkP3B3cU4!88DSlflM z^7t_BVG|Ng4_E{Ofxs1^%!olc^v6SvEXm2^Ud;hj8YXfQklHi@3~!QyO@Uno_l>WU zPr^ifMlos|eQ^~>;b}~5I-qBI!W`T%Vs(j^j!cM}AGf1#9akFg<`k!#qYTha_(a4oMB29zUY|_2!`rt529Q%Iq)t8XKw#f7Gg~Ru4_NxP z!wx?jWb2b;Qj|CA(D8Hz85f;4*|iC63Fk66UlF2iPYB?JxS#_!oTa)|V9)QTpwI+T zZ;e7-h79epja+m(w-hc3?4hwba)E)XjT>xE{wAfv!;v5Dk<4cn!Q~XL)<>{|v^~Dv z)_;FxhSvaT$~&gI_pkAmI>clBrgAK2lX z3P&BY)Qd)bn$`JsO#ThpP3PDYw+Km`gD(V`S0QY<_c-tb))10Q&m+HL49~P5-KSx< ze@F|}3{siOi$>f~$7{Xr%zMMkQ3Xd@i1#A-OECYq3)Smi0isoD66 zV)&yy0m7V8hu?Z_uOgzbfsRVRr}!M+bjOgsL4@(54dfbwR>dl@pRF0b_vy`c>)zd7j8NtE-VmRtWddFXO;MI!|8Wts3l6>KE$M-QkcGkCv%<6=MZYLvWFLOC| z$x#(Qp(a%wP@%`B3Fp<%MK$Jze6w=lzT;Klv(@`PFN2kYfd2Ciw-^t9>EMG!99Qij zS>oh1`698lm1G#m*0*3j$LSaapa`K)8DV~gerwY}CxeaDBkg=rMw)gYeUKnGn4oZ! zfqrm<3$E{=YP!ZM9XsO~AEz)DRyOTrT1Prm8weEYy1JmZ_+y@ewUsM1tDw^#b9 zhCvf?wv%$;#y+l^)u%W9ijU*-qB-(g8SxGxkHPsH?h~?yfU{OWdP839k!x^sLTBHY zlj?La@jaOvs9WnsIg*}oA1dro3$DvV&?1uP-d^aXz?Vo`Jn*}K>qw)*-xCyLKv@Jf zG5oy(arx_dup%SN7^{L1zi$+8q&p|?f@K=&E;iC33AR*4HdmNVdzJeD#@zNk% z$jDejBW!8fY4}_S8-cuQXBs$U*}@h`+1DQ!|_e(PY7X(sVxYnMy~- zY^A@dfkg~}cP{-+dEvoh0fvVm0~DvyK4qD-}7$VaZ_C>`mDl1u^B^2PgrmGa*a`pB>&5eq$yUg9GuHJP8AQkqY> zdMr3&n02>z&LZM?+=^@hf{GWXa zc`X>HxsM_oa#-@|7fOt6CJe;sWzMWR%$YxJ3*m}v;vlVob1ObFY_>K~plQ8|l9M9M z$>a{iHWTae$4$2FAxLcpm&Y|W=!lMAc>X{&v`1nFTk7ibvy3C=@GK$*G%3w~7HTJEv^B-3cckvBb;@{yv5#DdfuoHw*gm;vp@yD0= zlciraL_bM+BWuf~Vf7z=Te<&A%t0bpN~&)#860K5Htw61mkSlk3^`{!cqKG<{!6Z( zP`OqkyNWYlqhFMD8i^wm120r zLMm3mjTA*$Z{I{%c6>!ui8pojIAUh)7rCMcVaWeWF)`64TlQ&6(P~!S?^rJ`Da6pJ zqp$Fs8@40WDNJd2cV zb{c1ExH&Zqd-Z)ZbcL4|Xi)JO^OP=XCLZReNu40Mv3^bbyFY5;?&A3%rz;HfL(BS& z`X2VnuNmrWYG|&WYHj&#gm&ZZ*KafsB@IU%_;)y9GZ_~ZpA6k*LxfWuiBsKjd*4C@8=I)*Y67ph$NUbK#m0HCPJ;p_3hwRd-}Tq%g>|`IZtLyDkH=GSUT|^`pXAw;sZ$O* zd(d!RbP|~RvL+OB!p}hq=}gmmxxBG~akNQPZ8Sz#z{tNn9nk4qR%b4{y6NW{A46)K zkW>@#U>by7sx_hXc5)piZ9L}4`(Bbmy{?fIoYH}+XU zZQUHLSYM-3BY1rIipIfV0)Wj7`qm~3wGl-ti6PMaDjd5wjWe0x<0(5a_Ig?sZb zn^3Z{oC3F2!}9K3)RyheNfxq(m#+&R$c{gCXXs#Hfq*7OK_pl3>te{}uoO$$WV}Yz zkCMgD>zekKNvW2#6T~3mGycAL&qe%bj-CR zKrAk(F208Z(s+SXA8+WZ;^aZ={dCZd;+Gnr>E)al8G z_wG)O**h8ckENF05kJ2`(KV~5mIC=tU<%I@Ys2_=78g`i*Oi{D6h}7g7mMTE_Mqz! zBQ)!uePNi+WLgiGzZ3!0IHsG^eJ3i_cgP~1hLk)IPHki*wBn_Sj{1m88sG4SPsLuO z?&ewdf&n%W<}3+CoOZagItNUkIM^*5_9_H36^>f3LX6Nx!PMdd+6uxhQ21xh;1*%! zEY_kIH+h9#e*-sp@yUn#OS}rPU3<@vG(`UN^E$dJgEbpru3vH1XvVJ=<9}52&YOMG zdb`!ofNC5_+%prl_b7$4;zqag873oCGdE=gL;wC;afEKfSFV^#EYjo2 zn_stT&5NDOIqER%7&-3=CG`ZmhlrwB#^R&T5o(UYGeG@&6ssPDP_8EUv zKxp2U66Nbw*xjw>&zIaf>O=NhbeDREv*}LkioWT0#~K`?e@7L5xRwr@s|1BifiI^D z8J-QTJ45RWn-P$oh3__W@cb;zW0i3dQN@ARysm@e)F_bcD$ZLMt9|Tz;JV3Mf)wo* zF-aE|VV13fbfvmmb=j(jfS|WpfB7HF@(m<4Ov}w{U!wfM)o0ZH+SeXM>=-ZvY#?u8 zi#s$pQth%K1$D){znyu&6XWey@Ni*u9So`tR0>}A%}(5E>zfUgzx9s$#@M&_>vHYV z;f-o9(l@k9W`7=WUQ!uQU zdF}0A{K>-58cs;LA6%ekcGeM(l)l^2%sP_VnW$+R(9%*{emt$Gr?n%g-LHcr{&p!R z^bH#hFiLL5lns4*mlFf7?c2SMXslhGcW$u`(b22uyiHD(Us(k*qYG-sSq@dd1Z3&y zk~;U3YGtTvMo}};8IVVN-tcu_?p>qCa_;oei|pM~1%GbfSYsHkBJq;X%V_8@?;_`) zSY| zo)(oc_tV#?09FbYB-IuIYQLc3B?y;{9PD&sW~*TB771Z3Kntb_FXZsi+ow%qQttmy zPf)vh!bm1Fii-U14rEfXa#kB|8djpyTU<5OKyWV^R<`pZRma!iuf7~mKgbMG`Hn0+`Qd+&N=yIpt80G z%EuQx(|wJ2Ni)8-)-KY<4}P7VJoiI$yN{#t=Fb-lm3RSDS|Z0;I(a$KJ7ok zU&J(6Oa)wP`iH}zDca5TJ$IJO!}$W<>dS@`Hm zam^mi(|Uf9q}I00NcpKy#{2nH4MrgV$Mq^VvU!@;iokZQ)im5^e+2gwCZcVBoF)dQ~5zCSfB?s z(&c&4jBqqI%&RW}g!y8R4;~a@EheMS9Vd6TTXu9sn7s}zFMutqYJ9^1c3>`qXMkp4!v5Y32&F9em8OrZ%4WRQWBFrRA$IOSV#3wL3 z)#4@1hhuB*g|jUn+3D$2U-#2hX1v|LYkte{Gl=rHyU)d4L2Ai+wa{Tdi*YNaARxHF zmymv_t#@X}+G81O4zavc$$W9t{^aqN1`erPzG~ zjO!{Dno}NMz$d&cWe&vpe$N4)DC#MFV1g^|ICI_Uj^x@O>;4mD5T%a92LnyyNOs8C|%3R69H3=`+Do??87;|S#+V+q*>&KL3r$jtx5N~1?l^K zF{qa(-ua=KSmI_LP=?m9LV*d2eM>@xgxdTrtTv~=81WcRB{#&yP~Ny7-r(L8OL6KM z3Mxh6orwY`hP!3!OXsc5H*?vns@k&3)^8HK9$$(ndpK{Va2zh!`GZ$@=pc7fNn1C) zFE8h|qu5$yB=-y7uE5QHnk`x}&g%{ivvGq$BbX{m;HE5b<#iN%g@i;!c0yX;jp3I2 zYi3+jUyl05+40iBc7?eZI-^Kh3JZ6|D^|?vMa1;zZCZr`tb-+mxVVsv$@tuo4w6qq zhRFfQa&o%8Ii9&41sd6%hvjl|L*HL#rh6WQ9@dO`32d;S-G2OO-4;F`7UD5}v`i(9 z`TxqxWzl)^)q4_ammiLPT3}udubc&fYJM7sf=kgJlY5>d8kGAJ4V0I7mtK*2AFH2C z_-?`OW%TF=bDNe4cb}lndNTXif+^Hu$V;>2yG~um#tdW6kd|<9p3t8|@9F%!z<#4< zdx)Mn^1BWt_qb;46zpT#5QEdDkiHKmK{MpmMScEGzI}N8wk0=-!PdS;^zcXmZD$bCfZc{d(cy`RU~6Y(WH59~$rQOT z+A-J>b?&f)2bj~>N!9g#eoP4)+`Xn50ta-Sn+r-2nI%>6OG6uf2A*6xQC%!n&E6W+ z4X?k%z2r<%$h6SCwrCbr1Cl&H17}wrnYr14CAa2pm^VKrfhom5CzmGu>n`UhE9fJp z3ZA}s2=ho2^)X{Sv5$3Pd_s-%1jVT@jSfm}ZF4Lnv$l6$cvg2q*RP^y-LN2O%;UZ^H1QCX zlq=hWmi~BS+`A{5da(d+b6=+Iy49^;gx-!MQ>KFcP}JjqLk8`oQI=zvUd>Wh4O{3N z8YFCfAS72d@TW*>3pT~T>0D_`fkAiQj=t2$Xj$a>gK?ISJ7FQVAFY9N#Q$5QvQ_TQ zHJn%v#vI92YmC@p__mRuE~wI3Cnil~C_W?=eW)Ycyc>#*qD|+=Ymm9ft_jyw>rBHu zyYc^D@8>aN%?oSkRIss6u^kcFd{-cHjlYb?N2r$CC!sH28cj!+#*72%XVg0TZ)UMd z>yEgIkSopv8A2lVe}*@qj~=|935D!yQ(TM=Z2#t*kuJbjdg5YrPzukhtX8 zmpcl_&tuoJVw}k-7tC%XR?7Wcj?#odehgTu^x}W-3R1py1s-=|uCvDWiWMLi**g1v zywrq{`y3Bee2LsdP9}hX3;qpCf{J-*tB#lKoqE~Rc}mvEBE&HZqjnwK3$wiXmvnHm zeRDKE^QF=?gPvI+#n={A5|1_6RKU+{B<#OmmV+1d%LzNu0El>ZYwP8S6tHMcn>TLl z%aZ9(sw%B9HD*GUcW5rf;R;^tk!8vuBI*WYUgJ>`@GOB`$*f`X&1aU7!&WScu|Wfa zFTbCgA!3h7WouO)ZXqI=g*hI+{?Et7eDAcGU(6$3@N&A`?YLtHyHrGzKUPt70w{vq z7UOm*iOD<7gBvQp+g#9RclLjguVPCD;esHdkC?X3ew0Wf+!qd1IR+2FPcUqpXyC~n zw47vH*oU&p!#jUC1U9#MD>`>!_v~kGN=8Zui4$2P5>eaz*81bRy@~ zEg*uqM;@V99w?wm1@fDmgm=kU9UF}CwR&^|c<1J2q-xK;Dw==v0zY25LnwXV!TO#d zn*hi%ZL&i?ZKH{3>%A>9EDt$n5)jEWMg;Csa4XhYV+^lOA2<8)N5*o*8yQqv*=N@E z_}kmwdgfe~o(ZJVX9pgo8f7ybpF`|so^T@NrJlv+;4t~R-qJRgcL*X)VNi%nip{L}o`wpD6ns{20p$|#DA)mDQUCm;G5qZ$%2 zr2@k1V4xzMx+(!1Yg*lUxXu@&TiYe4(Ni>Vuz+?u`y@-M;FoF3g_e^eK~BG0_)XBq zw-CFFL;eSvVEdP~xn&XW%@%Ku!G%nwM?b?3BLh=rLj9tfmQ2h_+Q-_`ao#g@_IueD zvC?}I!4@a!p*guDn$i`1$b4YK7mT4N(3jLcbx&Ca;;;A!`-hfu3wqx^on6irHHs`d zuXs5%8m-9-g%~oas~%J=V7|rXIHhe9d*ExT4q>UG#p?qkS!tZumP5z_6M4`ktvIK; zl}`Oy=Um#Ak34heZz{;AIO^`H@Ghz@mNz^^o}#>F(M+BHe#Dy&Xf>#H(weh9PMKpc zuVi5sXp8;()%h%gsNfOhq;C1EU;h-j5Hai6=llo!U`Gk1ED5({sivusGt{u5sfdi9 zeSPLm5Ba&v_|*rPC9BNcexhQA*Yq8O=-#6{a&MY+HY*0FSYrQbeECJJO>*i_A;JEJ zRy<2acL$fG4c1flHn0LJ?Z{4UjT}-V3|58v(Wzm6)Rw| literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..777e2d910f849995d5efd9282ef51af7d3021aba GIT binary patch literal 13452 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 FV1fyunyLT* literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..07ce68538ace8c886fd1abdbd758bb051801489f GIT binary patch literal 12383 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 X5VC+wGqUyeaR8tsr!HG3Z65xAY%wny literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..1903b7ea00ab91bae96415a3d8d90fdb2b967aa2 GIT binary patch literal 18555 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 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/apps/native/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..7f31cece08bf0f26f59453a580adf77437370a06 GIT binary patch literal 10301 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 p + + + diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/values/colors.xml b/apps/native/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml b/apps/native/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/values/strings.xml b/apps/native/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..1d2c0c6 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + "NEXUS Quant" + "NEXUS Quant" + \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/values/themes.xml b/apps/native/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..a150417 --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/apps/native/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/apps/native/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/apps/native/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/native/src-tauri/gen/android/build.gradle.kts b/apps/native/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/apps/native/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/apps/native/src-tauri/gen/android/buildSrc/build.gradle.kts b/apps/native/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/apps/native/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/BuildTask.kt b/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/BuildTask.kt new file mode 100644 index 0000000..a3de125 --- /dev/null +++ b/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/BuildTask.kt @@ -0,0 +1,68 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """npm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("run", "--", "tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/RustPlugin.kt b/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/apps/native/src-tauri/gen/android/buildSrc/src/main/java/com/nexus/quant/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/gradle.properties b/apps/native/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..2a7ec69 --- /dev/null +++ b/apps/native/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar b/apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5f9a53 --- /dev/null +++ b/apps/native/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/apps/native/src-tauri/gen/android/gradlew b/apps/native/src-tauri/gen/android/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/apps/native/src-tauri/gen/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/apps/native/src-tauri/gen/android/gradlew.bat b/apps/native/src-tauri/gen/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/apps/native/src-tauri/gen/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/apps/native/src-tauri/gen/android/settings.gradle b/apps/native/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/apps/native/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/apps/native/src-tauri/icons/128x128.png b/apps/native/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d194a31b3cade55d902a995f13597f563db8d2 GIT binary patch literal 5084 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 SfpnMH|?xQWZsrlv_?5xCHgTpuKWI6$ezR zA_535LO)P9=wggtqxk8-F_vJCB*&o!wdQtm|B0BRk{qcz(b4-tWD6(*ghU z)6we7a~EcxQ7ZNGNJu{cNSy^(^oxiTm^)8YPD*C z5b`V~;aP+9&mMp{Fy9eDQB_b?btjQXrRm4-Q?c0m;^NH*PbDxuerdFJ+_+IG7ltUf zy*IksqYaJ%4fA{Su0?c+#^XuoOlMYOq4><5J751ENPvM?8@1by5B79KYzc171`~2V z@p(Ge-P2!;ClYVn{dwUxAyls0YsW`79`DP+(E-Btz!B}S19;Hu%t) zER4N53(;uOS&Kp5u!)z;1qOO?a`Lk7q#;YSDpfmO8TDBhAS?#{;oN6H=+wvy6Y%Nv zIU(LcR&ZkkBIVLyLDAG49WIyzSe_$GwG$|Pa3BkYVSx?wjY`0Uv0w}%VHo5z5*Tni zz>18O=j|(<5Vn!!6gC#cCW6bnL5TT7-B$@+#%<(11EwAzCILZgp45|jL#SSE7P!{7 zr*!TC_F_c1g|EIe4Oc!|f)8e{Lo|{K426$CkkZ9MA}Spj0h0s|g+=WA_!S6s=+N7f zg_lRB0(2ldj1VMMEV!~Ux0}Gk8gsXXJ5nYoHWvyvdjQ1~Bgg~j1CK>h@cQU1oaxIt z8xnM_XD{m~%qwnK7&&PXlOM+zSXSS=bPf8S%hC-2KL2tK*8g6%EH|tSVDo%?Zatf` zvcrF#NHu`MTXPlb>&=>AY;!h7Cj_vySWAs z0@nr}*U}Kka+wt!L)egrX=sB9N_WCy*N0Z%(w0nCNIY@1ttSFlvj?ogWO*m(JdqLz zs$z!WRy!^%?g0+Ql`e*bpggob4VVq2qIiprP}4Px)HC~ylc^uUHreQY4iwI zicS`=?p0N^-DVwd%eHq{Y{eryc(iQJ?d|_*d4Q65xVh|DxOd>L-P~FBfwMPF)pj*S zU2}TEiHVEphJo7~>noAw27-+vw5E?dKSe=T;NjLiXTzTEQOKl+VP*9@I65krbCIwP zXZxq&;P5_d@7$A$dUzz;h-l$VKL1tOX-eNXH+Ab^e`}^(F8Ue>=>g^GoLV<8Vrccw z3~Nqr{<`$T`<_A+ipM|J(_O2rz&(v=+u+__A=A~p7E;3V(zbkT?A_NY^-_NG(OlQJhGCpKZq(%#O2LB(>7A#b zr+08Io=m+hf(KsBSl?bR6|d5()pV)&gk8-}6Pk0r)67@d+{1=u7FD~tt9N$Ms~IkY z68ikzAHUdY>u$&&);d?})!aXUq1f=w+h=a1vTtz P00000NkvXXu0mjf$H!A3 literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/64x64.png b/apps/native/src-tauri/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd7ae73525628e46a6537204339df13eeb163a4 GIT binary patch literal 2504 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 AK>z>% literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/Square150x150Logo.png b/apps/native/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..331d2726da680f181179a2ce0b63b7e7b22af639 GIT binary patch literal 6091 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 N002ovPDHLkV1g9|OHKd) literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/Square310x310Logo.png b/apps/native/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..eca49b1bf05c5a2a1de35e49a7c8d5d6de99dc02 GIT binary patch literal 12532 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 IWt-^#1xVO8dH?_b literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/Square44x44Logo.png b/apps/native/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2c130508c3de9e23a07e73b3e693eacfce35f6 GIT binary patch literal 1690 zcmV;L24(q)P)V*DTxE{sdp4W3`c4p3*&n;UoG;TWW%+5^DGtYV6=Y7vR zas10Z@&6>?v9autErxTXAxlJQKs&WF!_z%Y)5;oQBCca{YHDIG>JBXmXq9jcgseEO z*X!8Ys-jk_@v+D|JjmKnzE$>|Uq~cVNb)TfGkMcA+)QY=8U{QN@atpQi(t6H8D$$A zdA+z%a0Vw*VUQcFbwtiB_C86MnfscqV|RN7nLXW1*EJnFF5R7)xao&0<_q>r_6q-x z*J{-Ya;qy^rBadz3jiYlP|uUXtlz!F2$f11o5j4AOr{Z!C9;PHN3{9Jvs00P4Q4sm z;zl0pYdJ8gHw~7g>%0;ng;hV+>x^NeuqLE|bb8m=;h~Yo^K-Kg0wrN+mf?|LcJOXbE#%ixEav}_;BxEPJQd7(rn3wCy7nWfW5{CJW|$k5VO_0)ZA*9H z%;|S<>B2RP9vfF!CsOZKz>=5sLLsMMQxXR;WQEVR>I83{zlzb3apSUMN5^sV>&y7% z_irUT_R+I61F}Sz;rlhj;|T%yy27x?U?M3r;{^7AWGm7Jew>5k!Ok}_w$rEHm6-F< zvj?miA60I5W_EQ29Z!+3)v8sG6KvPEETAT6b5ocjHMkVXk=K<(4iMNvY6+KKw<8fU zff8ApnG}MYK-~|PNOMmG z0YtV-NDLYe;Mf+ClCoXh)TsrAH6$Zn<7DlS#?ZM%C80Ms9yZDi2M|KgJ#VD`=wM6*pz#fzlELQ@NRKrRR(O6#D(@Z|8 zyD1B8+9kZK%aP8c0!K+4k_Q{dvQIM^EJ4bnfqoxd{DiFztbmfIRT@xckToP?OO%m4 zJ5D8s=z2S}_z7D;lA~QlP!fbSAXCzEBOomYkrIhgdIo`|km85mct4p)MXnAUYjW%@ zpI@*a(Y8Fv)|}WP19u=YG7z&kEX@mSj(-1t_}pa zCr@WgaF6cbyXj9jn-$v${#uyEX6YGU?Ur%xr|X!TcUH`mYM$Ra4P8&+>C%t5JM%G0 zrRBi!bUluq{r$XIh);RT>Yi^SCAYeS{Q7F((z~hE!8X=_eimw-+t+mfy$1&T8!3%1 zCOdh{GZv2rgQXC#gzdEn5WF}Lz2okle#RNS71&$jPjXr3pYEPRfqjDT)j@bo5bgx3 zg&ypC0a{EeC3Lm7rnFn<=4RJKi&OMx#c`=r^q=N{)xl2n;JSPJz-O9kSNq`msfnr3 z{;=rBie_@Ut$nO*S34@@O&(NRE-=s0YHb3nkU{^zFbCTs0_`K-h5xLn4!r1mn@lIO zyF2!BD`nbNtzu@VmV(RQd1A2`_U`LNU;i*mq*9xLSwFB%y_7L}#=v{xSoGdRYriU9 zA-I|LDWC{GFK47b>2#anvx!8?0&`1f_PJilc!2Ykr|58s#+=;iYU!mH&tM`c@admO k023|0_WJ)#=nj1T2005>ErX3QvH$=807*qoM6N<$g6#4%Z~y=R literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/Square71x71Logo.png b/apps/native/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..107d7e9c08d368638ccb844bde64cb1f3d44f866 GIT binary patch literal 2926 zcmV-!3z77RP)j*=(dP)j0RL~gZL>hQh5%{W z?dXUsbs%0}T3SrEdf7-Tfb1}M1tTzv2&pgHQ;$SoDT1&Vi^5xBfr^9yrOe<}e&Rfm zgxC*{BUGuBt^J)!1sF0q=<~o)J^(%knn$qtDH`p7&aN(NzpFD2k!Vz$V49D*&=rNB z2L&k*IHyvxa}fp$HYn9<6-vbd6iWptmx|IXSmrDbyGG$7x zz@YSm_Yj!I8N&LbWq0WCs3l2teRQ!i0=}6cv6Il1NT~>9! z$ub5uHrARh!5%ZxSD$(gUV7m?H~W*;@$EtuF2DN*EPs4C6eF1cV}I`HIRK+$Cu)9K z6b8km<&Yfi1WeaXW)5J`6d3de1|?vQj!nY%&MrWlfI;gCLU&gZzVq!L!Q&G%PDP52 z_2YiO{M{sHx+Y$%tv(WBbH4UIO8UiXqCtU?$CKG2&fg%0+#VmvmJ%mG z=ujuEGLo-VA1c7!1|P|?H<$#9C_z3xl9rJ|xI4kXX;akB2BpE)*d!qg=sJV}20ajp zd1KQCA4$|X3P9e===k_EH8&u84>r@Q28?6?q#rmfGg5%yl%;c+U_YW@#GxLT(UB>5 z@%aVlPabU?`|Ce0!5^;t)E^i(9cnH)*tV#hrE@f(pfoXTWEK+e@{7Ob!K$P~k-?YHo_x%uX|u zoOVR*L@5#X?Mcf%QjPkXiku06(yKo?=Fdo|bEpHe)!s+#96AS^_6uq}XcY94Y!5ZE zB8dLLfSEBE^DAH2vvi3VKw}apnpN2V3cW3A3~JSfvyfW@X6nflr`$5{Xp%Wlk*(x)r z|D7q!W`8zxkPVE%s8Q`q07jbpO3L-dC!a`Zsl67%5kO&1Ns@ge$F-Twbl41*xiXRm zxdd|`!ZA{RV$3P(0s{>XO)3^IqN-344lh8_mFJfvUZ3TwN-)K~_8mB?bbQ@pf2M21S&@fC+&R zj%PR<#_PrzLv^C)3{l7onU)rv4D^pcptkchq_EM%7^0lr`2u`@%xx1{W$4qwBIbq@4 zwe=OH%#HwK;v$p;p_}yP# zU}$jCI`Y}QWupZC*vLui(8JA}P%3AAeWcOh8Eco8(pG-eIPNW~ijgD7VesGxeY*PL zdy6SgDvv~Akw1wu)P57)d}wu?gsE&O6|-=s0SXwUOIGhM2MA6f+<)-5z`1)77;04O zOAIvT?HeZT1h~lMDHDrzLb89bxr|&aWdGKpka?t_xiZ5{iAXMkhen{2n3>PlnztV~ zRvj(^wGu%hd9Y^lgf2pK8d_e3+@LM|4(>dfrjST#4jvk{hg>jj4B^Gf7YI#K%!h}L z1gf=bsgPS4k5cX)Ju)A`a%)G9PSg}JpQklnFzmOweS4+I`;hKahaQO?S&#*4L08;7s+w;$Twwwd%gZ;D-S_LPU#FTtaBK^TeXnpi2?WZm;zVqS;6_(cMX<`MeA zYHqJUKA(YY-qBas&hMJy^@`e=0MmOQ2?;JGeaV5E9aEcWrXvD#?=LMb!XE#Y#XLWA z-Ui8*Cc6!(#Jf;fy=2~~7RD%D;-0=GHjUSvM{**gqHV@Op$AHIy{Errq4a`M%VVv> z?F@YJwyWe4kmcL9UqNyGxfsr9Lch|0++?xG+ci5-MPUc>t{>^|=fM6iFYSY~zqxGx Y2RDQ8`p*7M{{R3007*qoM6N<$f-QcP6951J literal 0 HcmV?d00001 diff --git a/apps/native/src-tauri/icons/Square89x89Logo.png b/apps/native/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..efb07299927a11dfec66fcb2da45fce9fee09574 GIT binary patch literal 3407 zcmV-V4Y2ZwP)@9sL0 zM_TWAcV}kj+cW2W=R4<~3BmSK@g=kk!8XX-Aa5@<2Ki_-HUxP%Mb`rXh>)kq7Ciqc zM3~anf^gwlB0gS;g9KFVC>o7*W&?rYKpta&5JP~@2hHLL7)#_&9D{*)1LEaGBEGa` zKz`^lV1(FYM&JHW|f^xd)e&ua?uvFPbn5OI`PF5?QwYmm)mAe~-^&CN~iwQMG> zzgc)<_Jo#IG<~A{o?v@4e-t^pN9Lu*#wKm0E);^M=2mD7H$fm6G$S+>2n0s2Cf<6Z zsvuL>kVANj;1xB#o=&YpCY^#5c>otA8-P&&kZD^hRNxC>^FH;Zskuc1yrrd`1u6iE z`T(5v<3a+y1~i0UlgE($T8>z4GPz8ivs^oq0vH7VNo~sq7!CVuXb8iOo!tC=YgdovuXT$? z0<;^~QRilm+a!aW9!yYxsf)lo`m^3DGYCh3k^ddd+fvuKwzdM{a3j>$H_(?F$>Z?j z{e!=onwm)4VHk7*nX(9dkfSbwTCkLRKqm%)oYPecFuDO4`P|k$;VurJb`>H8XM6gIm&~xnT#}pK$Qa= zs$dXk8Q`1%E(cz#T0~oXJEGy`g?5 z@c)6KuShZoObI4Okz}C2cf_={;z^I~3tJYZz18w8^Vl*DEY77EB;T-Z0aCPb+%DmVP+-d>rlD>Mi zwov`9)y9%qot4j-)cfKfUu)&j6!`LC;kpwboe-CY;Xm!)o(@X8eEn*jae$$(Om> z$D#e-fM<`q$_{Xf0d@~^r3N^cl{_NNf(6;CK{PhD!SN$!ZGWhPLobm+!**u|;UYut zALJTmF`U3HfySX|yLSyZic8^!cIfWViDUC3 zN3{Z&&#=0tbr1-w3TFb>jRs+i4($adl%TJ^*+p$CDa}_Sa)J&wATb=92QmtD4!;#r z(gIPHD=CqwL$mT?E65y>j2xQ_GN+zTF~IHxq8ipglr7nvo@@kN!_nl=88?GghACSi z5V_EkZ9-)8RUiz@{Rm)61R{k1 z@BiFMIQ`{wOr%CXMnm2BA6|oh{reJE1Ge~Nk>n}RAegH_qo89fynY@3qQ`0 zgD+Z7)&Lp}2%bLhl2GKa0~b*g51=@3G40FF|2orGR45QhFo=Oqov>b}CSOUTGkcKi z^<aUXZO8f$OMW@Q-O#;Uonx|2aN+4MGUA-HF0DH=e$V?TmT&5h^kv(ZA(cUT;@kDk62R#|A`)NvFZz%QL@iI_$t&SaB|3}$0Sk+hwpYU4 zPu_$1#R>P#NH_q83O$KD#yFjSPO5 ztTxuwg?A)`;D1w>G>_lj+Dm+WTj?_Y^W`7H&57TGT_q(2l3HYE$79gc*rn|_ zlS{(*&0oQl>pv#blQTjUEtQ^!TX+5ltu1}f-qv6G&Ua=m!P{5AO@72%z7$3yyV}zm zA^nJg^z@dmU5<~q>fCbdcC^R=)()-Lj_b*W60?cWp;Xm#9fV11mSqrTfGKtB=AosGn-hJ`#i&H57#|FR7vXl1{+$NLJ0fcPYul^y=x}U`?EO)? ze(&xb(xz*zBC|QG3$Pk}hFbBy$e@nmZ8G3R{FP}LthsylBZLpu+xTAu-c(ZAxfrzs zSk!HccAtG@-xFM%e07~YdOSw`%rITgX4Ax?Z)>e2D>j=`(OkhwO(LSSmRfL_^i?h{ z7p{%PV^Rf&4MB(z|9qpMWi*oZw!IYu*k>grR&SP8PhWotV2TUD=M1RopG=ONAde2v z8XF~HZf?3{(Mo1>Dt8YqvKSsMm;zj)Y?OTkAnK-nvhPmd)OF0>`>5RH$f+L$Zp8u4 z9l)9oCIN@RMX2ut&H#;sa2G8)pWoDgPOYy#lng>=5p<9%D3S#W4hA4rk)HNU>ve?l zt0=5)>^dFg}M|k zQ;B8kAlv|~wSFWkv`0M!ms)ShEtC#`4eRiBQoGt zP)V;y_}jZITueRG=a}z8b%vR>cXwuYc6T;0c>vsOv%53ioNvxK z-#K&6w!pvS)AFAMa&q$Q6x47^z3@TG2M}w9AQ(U)|1GK)0pH@axhvmz`MytP(!|8{ zU!1%ln4h1??g|J25UU^p0N?_>E^co@sa%3maSISajitnN zHS25I_@&+9$MwO+nK7UJhTrFhw)PGPhufgNBccg;Dd<-LDV~8)5M>N=5;BgD}Rmdo6(=L}NYB(HWtVE{1$CX$QvV03u7C7A@p+u)Vdpt5v4+IT5j; zL2Ns2%<1TiLQlMpN}DHO21Q`}4w{HQSi84N5Lg!yH~x7AL5DZi6}x;Q?pip8NlXyfk1%9nAX9e z(d)OenGC0q8Ui)#C>6Jx!c57;2%LNILqO!59<8A+c^G7DJ? z)oM*)rf|3mXz)h_g?f1O0iSOC ziRMn`W>$;PM=Szj6Ek6x0IbiL#_Rq8+`)lp%+G#Ge0B9*C>9I0>5xzzb{c6$&ZL=^&RPwPutDybr(T5v$#H#b ze{u|-cx=iY1jZ6TnwB$B%C(vnYbpl@#w}nU8J=`yPAs!$-&r&lq#GjELcAku05~#0 zvdk$}eDJ=TGiwSrv|(l~F3<`6NRs|tfp|!-Q%|0TV~?MKTz(mTOn(V0cQd@Orq$M* zT@zNLV{RUjk72GFk@1JgQ*XhGn$6u|i)g7hvgb+R;?javA9@L@?A!L8!9YX1}CQr&hRQWTH%+Nv1-- zv)!gWbH;mrdYy3W*$-l1C{jPC2zfPB30{mf;@ z{RnBGTqJGb>+#-x2(^a2*O_b@Lc8s1g~J`tpBMrv8}W?`t{W@bXe7Pu3G$76f;d%I zB*yegOafxNVxGZF=5bCyX-&jo@X!&UGO4n8ZBLVz1m?-Jj?%_T?!i5%5CU+jGc}`k z$c|ITrlzDiH_-$IVb`7x*a0E_Qam&?dbx(7jhNU8+V2hqgCt-EpjxGjhW?ROb$~oS z677cWo<5ak!{K(-Cy2?vzM~fgEU$2oo*iw??ddBVgkmW>?fMlC(TBF^m`+g&n)Fgl sBLQ60BKE@k%uLf?s)7IC*V?naku6JvtfP<+DwQRSR#`HYq>@GpDoHB|bH)@ZMYbf>v{J|v?-JtB zCZwsiB#D_qWuI&_X3m`XUT5_F+@H_=xWA9z{m=Km-^_z%&huQ?d0nsl^|~(Y+kNmT zL_kmNJ7Bj6f|S(nKr+rQ&S#y#Z@04$ag~$PLfd$oQ`Xbw&$qU9a$J)L$&i;?(dW=- z(~Suv65WVyC~GixiR)=_eTfNvonUNCmtLnE$mrX-Fd&&#O94Qb4MzL}5cT!-7Q4km zvQAcWq*F}+1Oo%QzO0^}nFAe?b$0p(A{wpOKG%>AFuI<+u9F7@xh(iI3P6ST6aIm8 zZI(fhv+ciVliPDI|1Lf!U2nRs?kp=O2y(KSJ$s5kIm2Cd@7w|)K~ImaD?e+Ng%qA5 zQr^&T=k1$JeK3-)OP?h##jO8XnG*HJ^=tZio~e@QDJq3fY>V}4M{ag(6w`E_-)YH9~ za$zG5|G{xitH)i)hES z3Jz=i!Rdw?1_qb2v;6for>2~rH7hCc^g3;Ax|X~-PThP%K$yDzrOfordYjHCpPe-; z;S|FQhiCr5aacbi?cyfgjpxoJ>gX`&uqO`x!Eq6&<0R{@Pf9qgqXW}o*J^3eXG*7c zw#J2EsCVJ~xec=@ry21&+OaXw?piZvYHH%VbFnqRIjw&DY|`RcPVw|$ZSBw#k=8S3 z(lzDhyFieelN8o9_E{*gymARA-gWIJGGFpK+bldovRD5 z8Y0=r#>|XvN-+5^BayLi1a?CtJI?(V^2bVuMn;DAD;N-Al@tA+K~m_C$q^hp;vqQ~ zYcn%bQ~E!~CB@`${WEu^LvmiOQz!v9BjSpHdAPL_a5+!YcLg@&wuBDGO3`U6?%s(f zO=+jHzW&1H5aeoSYC1*gG~->jZZdIDYMzREHe>)Vl%i6ah(XNjSN{vvo9~L__~0p+ zM7^4u^RLl*x_|IL@GKH3Fz50mLxZ(v56{up)6@Nf<5Wvs$#kQD?5qp}gQN?|Ubrl$ zS>f~J4nPWP8yRiQOuuMgkbLgU1~7WotSOv6ThrK>WWLG8$Z$(q>IHrMvq=dQT;PAk z18+2gM2fzYxy*2L%K3Bp`iZ9*>u^}-&v;`^63HklBhBA%Q}Wp}`g*70VQ*Y5^eyq{ z+k(jf$I>sR_!;<~NlXBg(PBLTJWYEF$DM&{>V;%qgAKrx^mOB5POhcvSZe=)@xg|M z=g*zlsJ|YVlCJK_6H#k)bhNd#riM$Up?WqcalO6|92cuQE9&^M)pTt|EiDV_@^N|S z8zi1S<)h~vdop^~tYb$GuLPsDX3huVS-ud!KoJhb)9v&eqNAv@baqA@oR7mZZQOwD zU2r{6)t}>T2Uxanxsi^Jq4Rv)aDXn;A%gQfx&dLz`AJQOfO`reFxNTGK=0N#7)b4v zFl9edP!6}{rBbt6iVu`xQgbBWZa`L3bIJ14kn9SFxl)Jv@5r2`%Yl7(IJ+*eVOTLN zr&(Ccw{dZHKMTotEGM6Jl_9%Lnb)?B$?FNe>p@iVqfl0_j9(t_MkmX;x~-s4wj@G2 z8@*lZ>=rFrxNyM&TU#4z>-qDotSpy$_@0JzH+n4o7i9AfWN9(aeIoLvtK;jO$Kii)>EuG;WSaR!x68|T>}G0ARpfqQv!KE zF|pMocznEOwsF(w=q4Q2clHJJQ=|ehTSVUqc;-*DH6~fd`buGaiXR=)_gOL}O)1Cm zRZATM7_DdR4b*Rohg21CRLYYn6r@jjtAXa=C9t62u%xEM{#v_bfi1P+tZg49hXsjwgY<$*s$U3dYKLD{q8^q9KypOh^PSl z?_M)D9fkkxb<|h=-^Uph@_$MGN-@i>x2MSd1?^piwb3T9}!>|8&@xQ)x=;AoE z@c*XYwo({^7X6Pibo>KDkimVye_KWGWd79Tf2L5~c!d6MuOsVm%Kta7eY+PpLeOUW zv+I4_Rh0CUz!(*ewX1;Q%YctEkisoZRIPjsj}aD_T?x%#TXTghH-_$N~c{30&D2;pCd%Vne&iHZ>Z z<^M7GzkAk(+X8L}sk{+&Tyl3>Ho7}$pkG~g3opuZ;{GexUHy29s^cw~k}@A%lD0ui zW;aPH6S2yacPT$OaX%li$nO$N8ag70X|oUN8+>VP`|zmKt@`%L$bRID${WS!B7MO< zjFh2nu)#CsSY+gRZ;Ru?-n4H&pE>~+q{S>@<$bK)rxK|mT)sqB*s)!gai+B3hUTdm zzK)jWr|GBZ zL^>n@j8=cM)_d4!Jj4&}oX^;Np5Zb*_r-@Z559@ExB zXAa#YAKKtF+k|ITAFxlOp(EJN^|w*D{MJVFh0IXI+{+mxtO} z?4_+*zi{tC(t%?JC-!&uQxmmKp%vwv!9H3n`h5DB`D>SFGF;NOdXk_{QId75Eb2nh zj?yPN>ZiAx-LQ6(G0qef%46Lx0}9cy27zZE0VauQT++IF&TQ06d`yYfTi)k3d?3O2 z3K%Y2!!y9CMa6N$$6c1Z5*81JXPn@wdc-*-dr7xn3(;C6194!57H@oa)$d`$KChs<;;NCqKfFj?X=Mp%9IfZjIhn%jYqb=F zBrp*X;NSiu*#`Lr2S1;<+kCEO;4MA%y@oO2%)1f$LewswVl#hS78jKoYH|vhzh7nh zqkWC(CaG4Y?MH=O%eTpxLOrU#b1v0w9}_jX(tMrl3bAKM>>Ju;u-41i&F3&?&LVv_ z6`y=~G1*ZjNVZK$v1)C@E$TZbwI}v4PG7)RGRSw@_-cG z(y}D9oKG3zmq*KSsqGfZN}yn}J`>#>aHIXz^qtMB4#bYrfl&1~vj32Mq(r8aT#-)B z18*KHw>P3cqbVi+kzM|k{`Y<^RogoI?~SyRzB~#Y{*awwkf-4$^ZrN)r?xM-wdmkkfux_8y$72eJPmy!MNvcPRR0^x!410Cwf4alG}&%78PQ$el(R*`-#7d zIE8<0htPQGBbT8+pBwnmh6Z{=mel+;&GLNhwMzcbCyyGF^{GVeBJ{Xf44h>q*-+Jo z+~7~>h&z@~yZ};rF_!8vVWp9$7v!@fur!a=aH+;M9XQUbF0c6u<2XYZN?urAYs8}M zmBY0_dDMW=?#fE!g8ud;+DCNm7;KX{xtZ>|k~`$2Hhurv3%BUC84)uR5hX=T zNszQxC<}8reLg8Ou!1&?%jsQp)Xe6Szc+om`=xacu29=1(5%=qe>kV(EeYb1$*&6| z6c5}#y6i^Ab!3a}B-44aqVxNavox|)(^gJcO?qeB?8q$Lo&VV2X+=Sx%;V!SPGL`5 zhL3Jc8ze^^VK$WPnucA*YJjy#vX~y$MFrPgmRWXmbTkbz{7eZalY^3cWY(;OHX4oG z?!IYxU39*)v-L;{nWuv*1NcFn@t6{wpKNB!i)Ndp0Ww-IgE|uBjxYMgRz+>MJNVbe zERYK84efZM;l~y}az{~-J0M@m-Pc$k? zCLe`_GhMxc3KthRY<)P}zU3QqQ#EDGT2?chxt5o$_jp}1~?^; zuU{u!JhEmbMfGdR@%&@_qFvjJGoW!=tQl1vo83S=$Ys%y!AJ4d?@1&yIWWbkp7y(j z`eUwqwQ$!_)#Sl_@#`)rR6?dDRhXy>crWTj;DT^B6wViw{uRRR-JQ@{wAK9DwZNsw zg^p$X0hb3+(_$%m32O(>OG>0PNSzMLNsycz>Bd+l>$I_7M7?@R=YS_Xx6t|b>%vRl zQhQSec~0~bxc$Un6(Bi%^b#^EeQ2U%!b7V5XQgUqEK*Qs0q z*y$g=`~I$Mb9F%>#I-H;sR`NL*l7hoNww9{x zJ$<{m|H0~QJc7mn!sTjYOK0BB5K-A_L4#7B^d(%rWsGw7>g z>Gurj?ea;gzeq0$0c?BPx7dD@xGBHi%ik@OSC#Z2Kf1f09y`uoOQEp1vTMJp(ru7| z>mLKK11`)Q;4x7=*$xQlqWCL&j3sPo5;tCYPRo%@uhp{D9`qlpGkGw2zZ0>%21&Eo`3h@8-rLt$5_^vZ0Qd zFJk-y+Vq~r)LpM~A3s3<3H15IcTR~&JjL0|Kw)(r^hR`0jy)j+Or?t_W90XSi=Q};uYIiKc*H` zLfyv8wtO;ejWKa)-yCe+zP8)5P%R!SDE=oE#Ma(%QC1SwpF4bFerPZ+yX`@|osXN# z>6#mwbUeWgUxzL`Dm2BTk90b?$y@Tw|K&C-x6;N1=ZQB2a;S+u+iu~)VhZER4Gv&S zEpQK)v3+mHSbbqB{asu(lcaoZ=VLGEzys`pz&?Rir`Nn*c4xELBsWIV2Sbm;O@CL814YbGcuyY==0))}BwAXV)W-4$_hxXpx z4i|08$qO2tH0W}LaGH3j4_bL6-(jb4_rKol=k0ErKe#$`?-qBNhnX2n%WJEC9Y!=Y zHQ$cajfLVev=fK9HghI?ugs|J>iT&qC~%{q+vpprS!JUu`*WM!Ww10nzyamu2z{@R z*HEf=c1=dw=eWx((AQpLcI5?aZgvs&$4>27ANpl4|%u?`gf7xA)^?;fL`{G|Ib-aaYW zmk27N{Y=Pv>%4^RPY)U4*7WC%r29#}%eOgLtY@BBwyEEP9zwojbpB9*K}^=ONK^}V z3d<)}PV5HDrMB=QimxtP7F_qP|IUZKnb)R2T~3*1@E}+&Xk$aDTUVD3u46o0XKRoZ z0^4Vwn}zo#K`}tAtvL|@X-}-YLYqFN{?gy@ab9-tns?dMr&05eML{oq){=!4m%b=F z-YtDtfA%n*|KpFxe~0pz0kJzOjy)=JUHW;?&JGQ_hw=z#RVgav$e-X59&>LH`7wEP z_wt7esj+9x*UMR zLX1T{G2Dspn4T*x_Kgz{S{q-hw1<$N*q-RF_htP`-F?Ipeil0rJ(;9~6+Rp3+vy2b z`gozZ^!0>cEAHzvzp6ZRAD-s$U6}u+$D)7Me9`TyLzn?CwP{R;JFJWiKl^>KeEf%6 zWBbI{IfefGvbcr|vhBH~68G*;{I}!I>^HVMPHetDS!>^IPL7!_Xx%>H)jY-~t(o@q z#4Bx!XuaY#l|v7;73o(lEm!QsSY9AOclRA(dz7^lin`ym4`)=4)%A5^8)Fy39fg`n zQJp6!qc2QlDbC}5(cdenEfSZ+0socFh)oH#a#ra@=gG3)>WbDe?VOG-xIJ{X_osS)CVS zWrA)?$S3<=4nQ}qG|-kT27aT&g?B9iaZjX;+BIFL&E;j&B`C7=U5yC`%>$V< z#b+W+Cr&I|(%Ue&abrEwi#JnDdjg?6iLG`D_6nGpJf=)?7|Vs{ktElWLQe86yB@C2 zI$X0ow=U;&SFK33p-M7P3M>rS%+v8&_V%sNg>892O?5 z1HQsgWxMcnO|PCQ@ol|B2U1YY{i}Mgzhkdda3%wkyKHHq(1bE0Ky&U&RlG8 z$Cd*|ZZCF9;F?qv4>=@OFIf^F)fa~;pNCT!R4ZPgwrh<%`4ArE;EyHLLROeF{qIVG zXUU>X@&fkL3U8;+CG5@oiiJ*t@Q~G7 zJ4UrR7{^XJrGt)~3%2JRv&H$4nFnjvJxEVRi&7hOiu7mfzp_hPQ$_p_6+m}dZbdThs9OCRs zPa~8CJI+(U=W=UCI;<+!)6CtRv>-DrMLI6Dv-Py(E<^jyz>XTG5)pAutqkE?gF1uk ziQip%DCB~s{Efy9a@>w!+A*E%qtGrq;h@83BSN}ro(zP*JJ;O*I^S0pxv)94J*e8A zOWKNn%4X5ClKS*HH+F_BQgmyxgKVrn6X*lkc_7&9J%hmZ`1L_SJk#xN z9-cO3EEOO1yJDzJ^GlX;;?Wgs<4MuUar0k73gmhHz_G(eHZB17`DTmH?cf#lU=xar z)i+q(vhzT+lN|GwL~e+jb0gW8P-&Wms~<%Lvt*|ss&eG4u6AEblmiMAZ#W`i-Sykb zJXzq8-M*1-wb@2SLO~$WdUa5k0YMVpI+%df*CI_vTC4~amM6i=De(8hN%^Omh3XA*B@zFF`f4;PAyP+ZO#6MOTl zl*Yb?6F@75R6LL!PQNCaA@q0x(UE1K7GsODJXi31FJt42#4CsStInv)HKK#q=F`*wgh-4gZimFPzhI})oqjwgo|a~iGjhzb$9Q3;XeH}kFuWU z+xSHpS16BK$=`SDM+VNj64v*uN(31#o}H%Ki+6JhvWE|YN!n~Dv*2FY_?a5UAh@vh zA&A>yvpuzx$D;eQMFh#^U~&Rc0n{z=NK@$gHVUTf#|sM>k_Q#!!WYy>%EpR#w+r+( zSS3~QayEkd-nJUjrV`*Mt}VHk?l;n7uD^vel{S-{GzZ?PhU_A!vlaBjE8z7Gmx3>N zz+bi*X<2q)=It22*UZckxG)HBuuw%r2$aO`Hlhb(^$o3_od?UQ<>&*vzax(w_kifY z1Kr}K2J(DcI_BWbh-PF$5yHcy?}XQKp0CfgL(+5-NmPVDU!zb56^o$AT9#Co2KiPR z5Erk@tl!(7C?$uLBQI4UJav*j7iW%3GkJS0`&JwExqJ=Ycla|qD}O-eaT|4{eT|fm z#}u3p5>IV4&o`wy81K1V=w)4m@Y+^Z^0{W%i)U4EB?$N&SvZn_Cj?(=$#S) zRS>60J3O6_S0&@8VFN`F7(hn5{KAmm#smdidv;$E&pbtc-l&T^i`YE4(0+XwgSvoQ z2TWBSGlisWq%sJ8$)GmA0*Z*&35sss(mqSd!Q!GG+E1?SJb{H`S^gQorhcMikCZCd z;}!?`daWp39eqA8cMj0Rli6s77qmd!%gguWuhUlVi0O)U6#iX$1RZ~I8Dk8%1JzbT<6)G+ zEHi|LzQN-5X~CRjiF;b#1>A}9gWFkQ8Zx7g!s;Gmlk8j%uSxl}id#q4z4Q~FoCWj= zC%SGdyP|=%Fjws9+$1^NIy^i$n8ELeMX;w4TYvo&R}_vN-3~XoG^u4wkCh;<^I_2` zR)avG%eBo!!*apmnuq1F!&k%&y)FaOu<{z_<1=Ny7XFAHel|#Lj2Um847jEc3ooC8 z6B?F|Gehzv2eVM7SsrYLhadCbz(@I{9Yej@lUKGH*=H*}>mTGdP{|W=9eRQ%IO_sF zT+B?Boo@}8KPD6x{7U`gg0}pfeQgPAL%7ZI>vh(W&poWW`?K8rzZ2($@+5Wq*v+)C zU)*y%|55)@%NJJf4w2ru9J~Qn#*TH`_H}o0gw~U?uq8B(+f)fNKOGr)I?Sm(M_oNv zl#?zQ#u_E1`}qD<-y>SI7yRzzqbUOw!p)Nnt*+G!eK!PHZMl+L0^c5};LYb`uV`1V zKK{xyV{e`ii5tETUx>$su?cWo7WM1&L(F(=_^Ysb@QB1+ z!aA2uKei5^hu%xwCwKRX_uS}aYL7gu6^G5=xcrkVl5Y7#Qf?=P!+zbAyCl)zg$9lX zK*)TMTz+vCezWas{X%WBU7UxjAfLW?4`S*K_v1d!O6=8jFcs;YWK$<~WRL{nPE~Y& zLfwO5=6&MJFsV^T0F$X3Q+qj9_TeXcPPZe3XtcZ1mo-yE!X@R`;j9q&N1t2n=V!eq zCoj~($-N{!R7=r~%j0htiBf}K#k;=q-WVMHJ3|qDLPRvICimA2(~4MaKO+)Rfd*k}6EpyFX!pa{PMm0=vXORbw@c0%2kA<}n^}FrF7dtLvqc4ik z+&BpYvLJ4Dv}?_SVX#}liK(Z4!vhO=CzFR2T85h>y_No7No ztaVx->lWl+2l~8QShrW0KVQ(}X&Q(imeI@|j%7}t>#}ir7UizJtSNUv4OjmDoT-~b zgzcX(odRy_bNM%x`}|a3&EXbvQG%r)m>@yjJC8KS;iWo=CwTUIIuEWqZL_VG5?p0^ zFc^8o>OL8c+3pZ0%@sWO?0T_>qW)~?N(}Dx)=jz5Zg0uJ_j{VPwpQ?qQE)zTiZd}4PC^Mo7(_H$YZ*g^$b+H;OKYWIEnbOy8Gw?p%^r+p2e z(Je5)B3)(v9%1N-?37mn>}GAABCOe((;GcQkrr)KHrf|}NBcXiG77giYG`vmKW34* zJ+`Fbk?q4nik#=3)x0j}TFy&1$&(2yTKyK?hg*jH3sBY>$3?T6IV4=28gTbrLVX1a z3V*+c>|sr`WP5PUO+4Fdjj&Zbrp9Iel08s8auS3O=2{u`m7pY-l{6IlIM%W<6}HR} z#Jzw+VuwB%*D&3Ajl!o`b$AVDWj*zSj2j5Iz$-&F)YSns(*&a*iYoe-y+>TApj6P&1PTyL=;^;^rSg6O?AGzey+e7jSx6syxaJY=#*G0wCTG zpxsNd6g(y(N}A}SvB|8`Mn*5w5;eio5+2JOy{&^P;wG-iE3}*Tb;Ak?qIyQoMIFQTSBtr)) z^94H;1BohYc!k~m4TAxP-ZQ9c!B`UlgtyE%A7)skDbaeq$TYO+C+YBX)X~hxjdE!J zG>NGO9;}&H2D16|QyEh(6nZz^z<1;%sa!YLc@NV#V67D3&jiq;(g#*n~$ z4$e^-kR+x_Q@_@ZG2r@+s$z4>LjD4UZV3S-7pV*I1tZmY2&e`cCmg^*0!0Oy=fGcb z3&i~jl09sh8c@zLjr<`t=$@JC$i#63c?G z{vRfPby^D1>UZ0okLiF^N)3=*a0+%}P^*cxSa=TWdiVqD^|J+5`$Q%pzvJ<1ftbNG zRCO%v6j@2&ZYuEm?kgktQbWFpQ{HA9(u|y_axUa%n+n38leg8f+=8WENy=&_hz>IZ zh3Y5+LLSiIj|}PsE-85+{}41!+Wc*!BVnbSC*1r3WL-l8?SnGS^Qr;yOfNG}=d+x2 zQ|XYmjDWAt|A;~Nv*=kNuiS-v{`7We0t z39C*dm5AcWW_=(uCdyz)R9ZW%?W_7Kl~dXR(p+7^kR3H^*hO?`6zMt*pJY&@dH%7@(-u_NvpsjTISwndu@ZTy zc0db1TOOl4yi~!zQt~QBaQs(JXZta zjEY16j1l=2j8wI9OeABZxR58Y)Nj}KEy-3GYwU=M-FWci&!iq!wV2e+W0O>x$82xc z2)5L>6A_BQ+)~iPQ2{Kr7v$~*7CYRRG(n+tsrBrZpf~UG{2e!oEmtNV&9QG97lvUI zF#lrguU5(X&I0OWblG}Gf3as<%+>CbS4)VnU+=h|uIk}Wp8du1TocBw+_Pem{L@Jwlaxe5j$creV|}IQkXq#~{KF5rzt~_BqzFCp=xl z%E@(As_0Sl`Zo0V=CnJI3Mk;HTBu48>De$v=Mw6|fN7U6)yN{^{KmP2&OPKLZW%}W zjT*+~BD+?vc(6s|o)X&dy=&Jc@vg5w@(paJ13Q*9AWrXwUnJy7>abVLXTg(&kyeEU zJv6U~#2=5vjj5=|=;K5MIPKi#kxR8qIn1-Ce817@#qDv}IsXyMx;RGfupY)B&YB}^ z`|&ez;}68>ql@H616fU=tVD~hK`wWNJm&(E?ixh=vYh8K_gF2ZsaR;XM<7y14?O5@ z|Jv_~{#DdB4c3~ChGhWDsk}D8r@&pMC4T(22f1RiqFpXEXh{0bFiFt8SPr? zY9{A+ZCPyJmkRc9^MLOWN7@Zel?F)OW8Vec!9V%3H}bU8zjsjXOI^1CN-j# zwbx^u#2L-eCDml~a`qoM5*$an?}IyDYU}2^R)VZ8@gVJx#}x7E{@u4bU9u-rs~+`( zs&Hv6osay)AWzKFr8Z&*rqdmi2GX{yfB>WP&E9yyO0{i# zL6JN+Bp7j#uVphEe(kX0Ms3zzpB}S?Hj{s-QRRHg3sN%^9ab&z)ba@nrK_2mr?}bq&l5lnYF5ze9W5pF+2JUC1oR$WT#o$A-|N;S2)nQ2~)eXYT~vGg!YFCZFK@z z71diY|KOs%?hLBv1==Z0_S-gXv8GI*D&KYl>uVWcZ!_e{N#^sH4=||3cDOfBbq2*I zKNO6PVO1@&tYvkWzmwz#j#}#baSlaus8yiPFevLV#AkJHcF-5>_T@GHc9D??uVCq( z%1|>0M&QHKi#Q<tc5lC9g!?$AIa?2MoWq>f8s}stHKcsX7~+%6p+4 z;hcpV&%X_Qw6$Qo?Wg~ai0~{)^*o`buU|)h%fzG>C^13vf)iO!)~aPWx%sO}wh)p1 ztK7WAw1_!D;|%IeQBg=90!hG5NDZ=4P&Z%TC;QWl%QO`j){-B(!uP=W#osT;gFsa{ zhN#I*bRfIiPrVQW{&b@&Jx-86N1#<*M~5GLV}^jB{L>IyI5s)xxv8a={Od#2*7)Lv zuV=N_N!G66JC!Fb6o;uv#&DY|AMk&2RWFkpx|&!N*+aU+{YgYsxwarjQfjl^-bP6S z-A>Rn-OpJpOGHK@gms-i{U=K0?;q=rnZsa$!~j_evbrcMQFQ-k5=3M3QrGf)6PA8m z_KR;mU+_5AAPijDfnC?3UwS15zlki!LaOyJE# zN${Hxq-R5AwNMPQu$=2`P1HmO-PZX6uSl{%Z&R*h#Qy_mQv97zpp99IW>no&qFJ{3 z9h)xcv0Xc#!Mt!uD-VwQ1~L-}t-6BcXr|ngLk{$AYT>Dsuvv@p;G6)=mCJe=t>4h@ zavo1!JZ0Pv@_s=bgxxi3fxeMSxc*~@4CV9Sg?NgYwLhF7ae7WJCPIRw*&?kiijxK% z0k3jHj`LDyp>pl=@4T@4iZtyS3WB(rNgOmGF3A-2oq>)#+c!-`@}`F6{DOS4mMsI4 zb3hhe`;zVq{H*v&-RjY@OwbN@ZS@!LydrjVhn^)B{%)?m+A6N$gb5x_*T1oE7kvX7#HwOy)I8D4u9!^Uyh-xNtKUCeVWqoa=<-jZ% zId~#w%VUxXeZc&9npgub7*^8ZbOv+8A#UyuSNMY=)XAmZVw0Q%R>!UAuw@c4k^p;R z8-L$~{H}%-Z+Gz_&N8RiF#lNb$juS%Fsl-)EDw^mRjlwD&vvo zz(Na2XqOiH<%Pf8QORo?ft;dbZxbyG-iwOHCb(J3lloL!%U8@8!sauJoP{QEAGwiQvs# zs*b=s2TW968Q$)rH~Qfxe;SQa`DLXxT9iy5`q8;&wqWwghWK7vZy6$}M}li9S=Y_| z2UQGnxc=4F+-aDHBJBxh%K~x2hMF4WNgmwZ^;L7BXp~iCa7k>Ui9TZ>3|Z!`8EEDT zaMERo2auIXJbZ*3r65rNok`(FKQ+lkcm8H&P(+9W?}0o7)+=FJ3e0W+o}3lk+b_sB z7HBzLe*Mj{jF2+)KpO=|pkNtbnQA(it8^g$McgfIROu{TRV4Nq{suOUEHnJM%-GT! z$ux2abDh9_VTFBvZl00~cK8%|robxAlt@nKrPLz_@o6;iC0JFL3-$W-5m0LQ6wg0o zZBa|nij{vpR>sdc2mBIwMjI<@NmeHJrxKP^%L0$vG`GQNsn}oWvTij`Sq58@EuN_b zdc@q}KwfFH*SH*<$}O`NJh;~`N`N;qnEShuAxR(E7cbwv)=e}P=hc}D9>;Ab^3>Yo z*K5<<52)}hc!`6@kFg%dT*l?R7+Ao~9IWBoPHTb!t@_-`Xe*TuO0)tQUi)bz3>2B5 zN{N|scbEElhhCWyroBL(Tv7H>l@1)Mk{}Dz?jT`r8&m~n7*E5yz&cqK98zVQ?OoN@ z!)h>zL4C-Lf+P-dhzwsJ4=Gl7=yiR^tR8+(C1BVZ{$?UA zm8aG@VEg{3zYOR-FT(SlGd#))Ug1o1qOJqf!#&lnp4E^ErSPkm4frn4XHCdka?u|H zMP~3p)_N{*mif70EzcEe#e==>{WAg;NwQ}KbY#)pM8ryv56Tc{^IJ}Bwnu7N zi+CXWGphi7c7){zzX!hP>o8>#&sWYi?WiCI_|*ZUC%)CM$FjGr&Q`yS&1P`2xvfKo zRlhOQx&D9g?ie5|< zEJW_sf~?G~3&s70ftg@iqUu4>ifOPLkFt*Eo1?Rv#<{tB26~QC^m>f)CJ1l7^I_RU z6Zb56q>KhX2eA!xx%aS^1PblUQoIS6hqHEO#FckMvfm-UyNotf{bX)-Tnp($OGCX& zk!8l#H1St)i6vff#vX`x@c3@4u1M1XWb3)AVTV_fCPq|;1XDoPtI`s6GY@@?mE_2cdZ$%E`tw<`b?32m3nLsWw z&Tl@q?6UF8l0Mr=wMqhlR8z&?@GApQqdHy29?;r~s`d#rP)5#-lDGESH`{D4&6ROF zg$K3Lm|1PMx&rgdc*T+kZ!s5YsiP~1;DBr@h37ka-Ur<$v$uG8hAY!~`i?1+!W8R>BS zP-^3cs@1jBa<%nOQ1y7OJib;uXH`?ewE5OCvT)Fp9K(ia-$=<^|6Z5#z0Ad^2?dyL z)eCCE?uh`4ET_1LdPT`Euq_<-@!%V-8rV3*_ai6q{7WA7mx0F^%u)U&aQtWo&-dUH zNme|vjwjMU4|KkGLyP3HaI2jId~}7U>Q>&UBDQ_>ch^kx>Y#|FhZ(KmpR7!ZM+}>( z8-R*>8DJKQw3cN0!EaP$aFPdUIBYvP6MYVWs`?x+bw2QMwPPYP!&-KeDxHxBU%VYN z2zpqPN$_7GNH_`94wrbTreJ}oGT40unh}sYy4jr{qJw5C?d}=g##7!*1l<^G^mZ5_ zNSLG|`5uu7yk*uV{l;3dSuNXMFq$oTp@kNivA_X|H1RE*5we5)>@QfhrJ$pRoal=9 zk!~nSgG_l+ns~pOWG`-fhk_BV5S<;5%*T_oq9GA$Zx6nQJ7zQud%Q?|+XwKVCJ$c0 zU|zfB{aDKMhNB4i6G%RYgl6QE7(2$6fv|(?B(rLn<5g=W?Zo|aK#Ph#5c<1w`lykO z!$a9N)>2+n26XJrzPQ>?I^wZ4w|(>S^Fc0?2!r&aV-UV16yH>&X%%&6ohC|n^c|Sd z=F3=o4N@8Ew>8q}f$-d7gYBa~8)8qgJ#`jpHzRX-{)0qv%lDGZ*sI;KR~vXw2eR)v z3CgM!lCiBlTgD3`UttG$_Ng0mqt4!Q=CMcDZ9NSqdT9z=ijHiKj?KYlJSR&Y%n6FZbq94ldTKA)7Xnw>eryFm7DEf;|SqI!`x#YY#sSdXYXR zd5D)FDl*d3QU2jc`5WK3`5QcC28MQMO$X;{saS{eBCvfQIIeRFDKKt%`~7)v)DLGR znw85t(C=K8UeIt@t-Z=F9)3jG@_7Hcw&89CYbZpRqzrqw@qD*dlR)SGNn2^>8vdoN zzq6kmDY(_I|HEZ_Y)b?o;q4eDcAlFKFj1Cw@$ZEdt(F3p7vv+Q)cfn<(xX=w=z%2r zn;0~wQqQ^tf<0Zfa9m~Yv51{KtKX)g;4QZ93o88mc!dR)PoFFwpA0`m1)J8AH=6X~ z;)7h0GHRlQjy#2phL#R9n3^-*|1O|vXrc$I%ytUfMW_9$dJO0(YaHWuthfk0eo6j5 zmvAqmmoy6>waJIimPc2rqj&btSU?oGgT0!Hq_{V<1EZynl(~)`K{{^tx3pC1HFGKl z%0@D-J030K<>sZIbLSVkv5PdXu&=uOcsUlKwR?A6$tm*6_}9wsTSf}8M@Q?Py^svF z?Y>*X@;pTiewJj$&-`5)UTm8OKkog|w&d+B(znof3*9c z|HxL(^il@$s$u_7%&3LPI{S3D95SDMC9699rCf`9C2D{NzFO7NsaX}R{#fVb zUh2|QY)OmLvPwo!=qxSh=$sp$UDe+VZJWQjnd-OsNaMum{3WJ-9}0qovYzRK{f=gR zbJdsxiRZ<)%C!FQ_;fBa*`5>I8N-GL1|DsX!;bJPq_@?7crmf{Os}ntP!gP@yIE%a z$f}yVMsyYp7C)JMoZL!rrasHw##>iB-nHo_>D!U2kB>_0o;~NhJS%r`F_-;m6^n>& zEtJ(wWl|3&?5`X1&mm3xxc@>m7AoU1MdVPnk=NRZ>aQw5aulwFtF55!zIQr^jXXZ-guJRK-0=s>Rw9x|Dx+|RArZFd^7an*VS`<$W z7VPZSLhrnEiA66An+FRkPr;Lwk4isSxSIc(mL;7!#xeK#n3^JHr$v7O{uhfM?mSHk zP?vhC&o!^>9=BJEVN!m-&Mj@VUsTHq3r#n#pIR8aXZ-W6)g$#Dzy&%a0C5IY99Q_(#;#(*eD(;WG61X>X~C%Q~E)X z_JEXc!@}a8!!|qO26GNIVGPCRzgwBLV|*gqvUxk}I(`zY*{n2YDA>%+Te5zxIW{&K zu?l3pF<;pItt|Rk7i>9T^+e1J~an>WE>(IVmx9x)aW)YESwJjFw z?0R~sRf4_vle+Il*i(IP_NHGaBAZil-*Xz1ZDIXpjwTw@s6@YXS@)Ci4OPcJyeeZ& zluag)vHhDE)WR_F3na#2mVo^#l_or7z~E?v#`LQE?qa$Od>mtIkR8!1aI8U~iEeWl z3T4CKuTZ**>etlkLWYJTCLY1+@1I#6TjjZqxcyWwX&&0tEauj!+1``cWFy#0l%Pt< zTlbOq%}G_0Gp*tZJfI)`gcaK8Ht~%nPth=j?Hn$|Uj1%<;l+x$2WX+{jJlu$I@H>+ zs30M0>~3r3Rp?%Xt$7dJdYkV4vcU(0t@qrBUE6c}$nX82PzF`oe~!Gs)_)OggqI$u z@~${MnPOkxlDe(v>Pij#F)+%XyTMs=CK_5ioYUw>e=mn@=JSAXv|?IynvwT*TR#&P z%t_xOvwmXF?E|4QAi;TaBHL>6iXh(Rn(ZuRzb`KXO|?4(pJQQuJ>)B-{??^W_CEDG z!(bM1WiPi$UinK3Mo2FxO!!3aB#{6daL0>KHYtONeYd)drFddiF1~F_^kiS?nmN?4 zVspl0C3^4hjl}#*uBBTY$=Dd8_Guu3|J1yipTH=D?cE<<=(nuN;7C@yXK;?B=89VL znUh_NLf@Y5rS`1B7_y)XG>tZ=iZC_FwS$DKKp9UwUqzK98gI#2;uIKn6a0CeYxQn^ zCq+L+CoTp2O>RB-Q#{jklD&YG8ra4srP{cvP`IbxZ@A$^uiwq@=LhR@vLr{z(GF_` zZ20s2X4^Lf*Imo|8ltkOzkkMF-D5G%;<4cTn1NTDB@Mmdt|!+}IYX{(&w2wBIIgi@ zU*ru-nwhv>jQ-xJzx2SRmcrI7Cs}T9U6R_JU(n@3f6LOXr6GoSa19SZSJH&aCm9{1 z;YEAPLg2!>s>37E`0;B6BkU+V+Rc}2p*)Onb*PQF3&)Lq9BpbrBAUrom#Rgl;C#)t zpUOF6*P)$9f3Z1zEuah;E;Vb+mNYI}^ow}ocK0z8JN3PH6}|osbMGD1RQI)uCUg*# zDj-6rq9P!O6a|8U0@7^s5)f$uq5{&BAkwQMAW{{icNCKY(G)dNobxs)Et9yZ&Q+g`ycN7pzMr-+4Y24Mn@(1Q7_6!XBegi1c+;k#1pPp z2P^pw$8j^Cf?Ux}qbC&AJRhmRB}+=Z-=v{)Rn~7@l;gjWvJf1XC~?LP(}rXATN%q=UN8008ED)PXj5~Gp`hT42)AU49Ep@f zT=VFfs*o!qqXHOPZpYh~QO}C*qENFFL7G`-abuLVTA7>RvOe-k5v}Bb>q&e&B=#IY z#{dz&djx))aw-QtvN!Nh{y@(`7bxUa?VK=_)e-OMp50n!4JC~fdY9xdPY83k9Gk% zYT^K~ypK+pVXEA4S7`|PBJ|+U{bGPkKjq2vvP|UI0&QaL?DgD~-KyrlYcOSmi4B6p zGY>&-nu?oXRKQA2OYo`VIKtTjlWQK~zp<+~lxEO@9Ty2a_09fY@%;kZDF7UWa{InC zVPAS~Eekq>MndmSmH$0#!qyX3wkAl1`}nix9%W#K6elJ$(1H5NP0hdHNiFD(v76$OQ$p!O0rZ9bvTQ^J-=9(fuwdxfcR` zj+0Ge`tySF@V*}{;?HgtL=BH`CQTDoer|Y+4vsl}m%i##UU0&$7&9@ zh$~b&1uU9w{;2gc?K2CZ%lqd&GL>bVx(vk#cUUN$FZ;Fwmcv}3C9xZppSm?ZD;coi zQ(!?RWHN93uktwca~*QcHBV7hl}=r1uV$|w|E`g)y>bcWM2`v{uAInxmqlq8+iTN{ zXSg|nmQR*%`e|)Ssc&>YZmM$FFHI@;m;pV#9t~)uCEWQRqnjIR*m1FrF6ocjr`nj*hseg>QUOVqA}+Hl${y2Nll&cFq+PGoL2b@f~MiOYL}EO<(`anIyat# zX@PFMe;n!+M0@GPQf?p+HGB6oMIJV??nHwqELxV0&Kt4u+-m4~h%4Bp>>ObYXV|ev zLa_QjLmmsu67vvF;6sYhX)@Unz^ggpO_>p?(v%dNP@iA7V0=f(pug|6F?6^ z#Tl5Lt?3)VC`u{-IO4m+2o9G|ZiWES7p;3_V<2eCD1r+Eh#eX2h`wn!X4}U2$U$v8=XeK2 zZ!1$7I@|>i<+zea&sY$WrkW}zLl?2WtlqKn<&CYVKLewef%Bp*;)lma+5qwXX-G?W zp!}pO&7l3~gUabPW_@5uU-n2qZvnF$^5!#r`B5=STpi* zCg|^QR{=lr{57k*%hL6oV!|F<-rJ@rw#E1(3~DQbw&g$zx84Zhu%8 zbme1$Bey+PI+zL_{;zAxl;Y|ZvBt)U?D>4=mT!NI=D{O+D$?d(#(md;&o{hM4uWl8 z2ecWd*$V^i{X=Y{N{gOdN3Z=w+j4=_PGb`|#BvW#Kmt_gKNTcRy;8Q1O)K!w*{6cc z$SbMLwwf_l*J!=Geg2{NwE)bZUVuM{N-B3TBvlU+OkWKi&ryWAK&dLizwWs_b>OAa zZ2s$l?le=jIDd=yc3%MX(Z0E7$e>VZl69uy8?eXvZ$2O<3vuXSzfIX(Mu~}oN@ZSa zsyi+DDL!wc!s3mnKrAXsyr;w1@-;(e4dB@=jX_H^y_-z`!>C{^sgw=8qIeztj6Ap^ z^^$d^3jkdIcR&d}vrceHd0(x`qh}qfV_tqrFG?0Sq zCke~pbZ%uyy8p3^69+}nrn0mDc$mp)*GPf6B~h$h3?JXs1F4&IX8E6H==}qttHKR; z)v=||F{D_4zM>|3;;ESF^j&Cvu)$xN3e5ZG7iEi&ro|3iXn&Rpnk=IEIQi`jd&GYz zfxz*oD}ErpzhB06G0Se^O1lo|USk`rVy2^t2s?l;q+X};5TynH<$ocnxFiChIAy#+ zXIq2VyCX0#hJxFNdD2i-_wTh~i|-M|4vhbTwU;CWP_U0dxhhaVC_@&7+w*x+wg1H) z1)6L!0KD~Koa>hAJ4a)q`6f!;-px~)VF*pl1m7rzQ^*x_(`6**r)D$bnPi$SowYY0%RTREZe)RnG6hs`}0rp67 zK#+l&*y9)cdKjvb?6W=Rx`7cw;3F4W%|1>id~Eyjxbmc^`0LOVGw{^^n}^~ZMmD;H zQtV?RB_bbnw&ja2=GVf~&DUGky+0kN$OL(L{VJLpd-Zx#ArIwAg(&!spuJIm*^lj9 z%0o3xRucR%7|i!WuPg)}yFlTd_;jPHLW1to-!1Fvws8$AqV=DP@?pWlkyJjUx!7TN zjpS_9B8EuR1s!~5$;l9`LXYpWxlJlulVGP>`af;}_E3@JV1q_4CPRnxZ`e+1(aZ~f zvs1Z}e1Yz_10=hZ>Vv3`7QpT)jG%SVuxjUI-P<(6{T5)tR))&ppl-`)J1Pm`8Zcd{ zn5;|;6k4+rm{uABFR9i^07-1PA%}oXR_3_ROnAp|f$cSkU1FWwzbsQK(^NNq8Om!} zOZjv#HN7L-XTJe0HKkBe=`lQ^w?oKS4OI6leML6$3!A>>fYV+2@(ls1Yx?&xVj^4Cl0KQ8|Lmi%It;`# zG)5XXFG59qUvgGBx&t=-p9`_PyR(6|;XSN${h66boufAwX=$Q%mlSttq$@Kx)*#yiGeuN3I*Fu!k zo-~e(jJzUFa-@Fb(>~(**D8QaJEyXv+z>7-D}wR`dX#~8pai-riFA!u)93*13pFK8 z7Z5EpqG5OByebX-Mgkgn^lI_Y{?+y${(m)1wb+})(5(&hr0Sop8^o_u=TVouae7e= zKuQqZ;G0LAYDGI~A`PU^cRkGpM?a`*6ztst0NErs)g+%nUHXqu4{NMRip5;y)mBPt zzL@$#Je}={_w%YS#(}L z$G-q(^Z_9>6-Zt34*``h;j?k%>IT8wgsPW!5rs;)xLlJ!3W>;^aP8OI(+%2`HT9W+ z+3F(GGprU;YXk8ZG#CAUd`KQD)YSP1w=)^k1Z>n3qMrVc-Do0r_u?eM&KY#9rb%>O z-iJCUb@;1Si*Kyzy*U0!Bm@ix#aTZ1*wlwIJ#%hlZ-7if3QEg)K19F8%j8*T|2kt5@0b; zDIpZ98Ryw1V>```--T1En0v> z6OKWv_Bu^$3piL)!irFnYa7ml5t@Wv`;g;}%2tHQ;Y2D29gOQAyJ946Tp<`s<8=+f zi3uROOuCQmZzOFH<}&F}#(!r4Q96%ubccB+BYci812%X+{t;bD^gjOT=S0c49)M2z zUmGSMbYxIRDU!bVo%j2#^Xz43^YQOMTA6fwlJmWP)B5Vb0Ca^)B;;N|x$M85^6gB% z$3``3+w07K@4qVe9ek^*KzjG5t8DF*{C};iOYca%K8Q zhMScNldIgXE2(s#pXIN69X71 z`Pa&X>P^LIw^Pe{bU^qJSlxGzP4|@Ml^iMfV1wtu;|WI4>krGhNIIbNKLtZHLq_T) zvJvsG>xlJvqAx6N(rj7M{RhCNOK)U;rn*Gvs>!oO`4@6y1?vXS& zRY|+Wm&V@duD9|06(B}WT?J~Jr;kc+t!yXv;;)S#GGslK`{C%4d{pk6}kA&SW(Eft|n}us1kI!q| z@pU$uu|YV6pU3@IMzj!x zOhbetw1W2?#u7qGaJnESb9lnw9cvC@4q+xyiCv$816=%z>p=2DPVgIH5EMv$_>EsW zP=k_t)Kw9bARICMXyqHc{6=mmIRpuaTk$Pu_lvW(2IgtY$WS|wVzcz;(QB_?t+fXG(Cw^7vD1khg&&_B# zJ7}EYKQ{{9x|I&xoIW_vKDdW4D?iXisxyN`T$tbD!_{?eYp{2m-@SQG{)^fd4lQ*~ z5Rk-Dm zmv8<*=u0#cM*$ODwui9FL%|^6NB54QR@rUaH$d80Wf16M!2g;y77UaE|C=_}>Q#Xw zQ0T^g(#B>4e1I8ycO83VqV(T)FO&G*>oa}AKHy98y2PaaB&9T(KJ`j5;NU@)8WTl7 zl8Y$?*E`FMw;=T7ORrsksH%&%Tx(Hw5-VMSL_wuVM)t3_3A}!N*Y-1KJ-0m^<>S#! zYeCy;$F&0%3Cm=gV;{tE!@yit^}yV9jSz;|D8cJq%+7n!HM^-Vp<@y}gg#gA0UPc`sB7=F=O!&u(SA z9n4QxBI9NJ=~e*~?Tgv6rT~^lldUCW_4*kXraKRi+Lc9vCyT9;rxUC7fSVLo& zsdaRH{_(jf$DVWH7H?Ztdiqm} zK}!ctS$~0>;2A@Ttd5V5jr)LDNMGv}dXLvq@MRinJ|BhVGaleIRu{T1tG%~TR8;i2 zrfhpJwvTLWYRP#0`uF?Rj~?Nx>wiXy6kKk}81V6a{SLf)ZKF0O=`GrBiDWhjvbWFC zAI-U{E_YV;`H*0=tts*1{$)+saAMVW&i|*{EhEocS8Jam|NOb5rENRgdg& zR%Fi0*;ql?Q^`QorLnA!eBldvDWVJU)l-6A9UtD~9%%c?bi_Y{#7(ErdI#lCq8+yj z?8CA%`9r_N8*lo^5$>Nnj@a#IIZdxn3nAA zSE~z>e9<|$2Np7zIwC&@rLDMEEo3ED$__JpH^?KKMZG}v&8 zRpsu(C311Sw)$&p2Z@9k6Hhh0;gK@Y)NGfRwrQzman*CnPGLpbr(~U?3=e83EEyRX zNcff}iIRVZ1{LwL(nEfk@+T`P-V)nq`M`E7O!Lj{vnj_PU!y*+?|GUcY_n^{i5&^o zStqp@k44~*)din3nUq=dDBsF?rPH$cGb6nI#?9*7+Vzr7g4+}cJqe4>);J*e%W74t z_xJV(M`!6k%_K-Q9Z&%qn{yGi^00@?47Xl!Pw9EgG?pGtVl%hJo`QZyKqh<3*S9^f zo^4ry6i$rfu!jt}&S;)%K!eih{Jgwes>%#lQilZ15QM)2SSjRo}m3aFyHnQgfge*y02@ypn*I(Q-XmB&6s- zBhg{F2MPA_9DX@}K)WlN-Pk#4=~C%lrt<}6wArHY?Y%Px$8Gbrlod0yZlh5y>Y*-_ zk1imvoN4WT;8bcgxH}XxYKg?vGhr1YX%j74!;FIu{zUn03;%yzIMNxVJ2#E3-TIt;NSTK|(Z>fq z&EV>~ksG7YQ!}20nj4vA^Xs9DiSjaRy_L#};>Y&PqO|b3#BE)~-hc>v>(h6E9P6<6 zX%Vka?g^C97zqUUK1apiRQ~F5LQQgUa!21k*5Krx-|HCFL5z0{bk$Yon=ve8_d01= zL@Ffm(q6SGnjg8qwSRo7!-Mh2{48`>9){0_EE!2UUpLhB) zg_wH(sZ&C}Rgtdiq%Fa%R7H@gpWVZ@huEf(2bytali_$7loQr9!{g3- zazaP^c!%u1Vxz#=7h+14W!#n|llgT}$%8f07n`8-fx8(GweXP#YpDmtO*~aw+a7oA zD(79K-~E&qpy8fBJ@iOaFWg*|^zE}GA{R1-h~w@&Q=R%ovefws4}faGPKbUXH`>yy z96T~a6sVBCoXVFXzgG|Y=<`SNfJU^`p`TU*_eEbi5Z>aWJ`gf36XE8CDJ58PU$o(m{NE4^P_P+Ck0tohqmr?UH?Y z1Zh_2*vra~0A{@0d05uk&i9G@-baZ>WX&j>#;qsjPn?|-sD>>{Vi|JZ>8v*SwkAe5 znW#*-wg)Tvs|Pd++?-;HlKjnf`rw?)Kpi+DDv;$BS@ur#Kee>*V=@vfcES@jAN;eD z!M1im;TJbN0t30JJxUJC23(RwFrhEV{yxp^GMEaUSLxnV*kP9@aR4`sa$$Ff`{DY0 zwpGyVyT_p=B0dd&Rm4idZ;W9Egf?C0Mpq>J=x{B_WyZU$t7O!TzhgTu_nov3}a+7<|@ zwW*@05MYY9%-xr#n<@XpjKBpG=G#KKb`P$>LffHgp!=<30mGb7{q~m1N{(@>+>66c z@+aQgrde80GD(#p+t|;o7-`hwCQ0wf+Gi_we{3wBX)~BWpVo_tt%Nx&R7&WbTgdQ0 zvzfX#oCT0Fl2=vb?+=XyShcF#rP~zPT|MWBTrKb2@F^9Lr;Ey*#?B>T!?RMrME z-YI}a-%WhQmDlfC{Ma}`#B^MdBEISh)5b5nD@Q!JWtIS)Ou3HTe*lBMH86EE3N*Cl zDFGVtZ)K$8?xg%W2XcHsOuCD&!$A*uVeuXD4nIC_%Be^7dg6NX$r&$0Ohid%by2pXsE$y1Y2SB>&j2#h>@L~3@7{1JA03U; zgZaL7FSs_8YfLMAk0K}__&J@-?TLr}APB7}Be0b!ml_-zLoC$~%ztB2`jg~YA0+G) z^2-nBUZ)klY|uM`xReiVN{64un3TFH#*iNHoh^ANp*)F110U&cD!}Za-uBniEsYN^nG%^lphy^N9~%nAD+nG|8iPxDEP^G5QK@4dJP` z+s^!qqLGN>iS7Xu5Q?*((-p1F>#hUaN{+ohz-f(Q!(ZV?issstjHkQqDfT5%^gI@X4GiQxl^h=D)O{CF1oK7xU5o6>(n~MZz#~Xw4 zgTayLAJ4OlTX=c*7u$C3=Auh`;_c)?q9jc6`fDzNSZi~71iBh5JiMbv+wcruP zIz1u^v4P&feZJQ7MxaA>jale`Rj3T7#t+nUIb69$ALuL`C`$6rMFT+$1DOsZ1K@x* zD{_}B2F!`^xwc_{6_^6VvqhyhaK|>u;hn*iE?ZTguDQ$aLZc%IARJD(eHH~}0;Da* zl_mx;8zDP(G>9J=sqfstm~sGN#1vIP*m#_rGA%GX6^tpCCI*z%DjeTog3 zJ*BbeBMtYW!F6=$5M^|rs}8crquATIu#v_uj}~T9QzH)YRW<@-nEzFlgW9VA(RhyL zg%eJU5sYZa25N2g>WFvNTkdYtj$cGqz!|Of<1Fn+^(N!Twtfeako*C!_P>8Y2j`)z z<-{Z5ba-`|4&p2;C=&WL6%AT-VTQ~`Q9k+1u_#&lKom-yWeC%3BVo2Zs~Inr2|Bo41Y3;kK|r{_ey3fRbvYcz8VOHr%QAu>f4*zKhExmPzF-Tn*mOvBr@ikd=r>kxKO;=y%ome*bx~}uN7hQ5$Y*a` zEGElK>7p#d%+k>pr2`{WOkfjCK4@~OxlO|L;T_jh*#?GeQC$=xRxk3;n_V7Yk^7HdSrSCeOE_HSbJ9M>d7bV4Y?sS3JF~>`LDRp=AkVcAE2KOJnoF<`j*lhk!>#qcFPnk8D1hTkM>uo7fzy_!i}Dhfcoi zcQ~;#NI4K>rRU}J3=_{0y$M%>Z5Eb42d-MwJf)q!6Yn78#R0YCX+9cA6vW#5ihv@~ z`8~32GJDraPaT6sC%NA;80g=JEi=z#Uo&o!yo1fZ&&gWgAFqj>;qYs0C~p>Eza|!F zKc5of3%yQ#MiX(Z2I=t@r$2=)mEJnaI0fxmJhr0ts)y~8?&b%p-?>r#sA%Tw{D==l z%9NP-jOIOVD-n)ui{@#`7Y}T@LAro6x_qT27bdJQ950eYCpNhjb08UkW|>c9S6?4z z)cf(_?o(J@pr3OtMDsH9-Nj>$ov!tPhw1UddftwUwWo1Uet*(sR!+=?GREGDI3Tb? zFJB;LKQ&A6f}|y_D@I}*LS@wgoMh&@h*xLixl~$f`RFT|d`rIz6QOQ`q4bb0HzD zV8CgJzzImB;Qlm)m2Z~l0IFL z>M-hMkW}Nwx}}+4vEcnHGU2fs_ht6#v8ULdj?5qAurZ@AJi`T@U7)6Yv)8h zr~%;~D?*Je8h4cF3P8i?*N3GQgs=eFi453_c5GfU5i(O_b!uzV4{#(4^Pjcnf5~Pl zh?0tqzeG>MtUhR}N${ziLJfEB6pG#_+oFHx84SMMr>$_`Fud=QH#Pc$`Dl(P;Y?_< z{Jh_Q;Nqu~9xh)*@<&?vw8#11d-0{gBf#}qB;*edeP11}?(a^+1{OFYD92s!2=?A- z?n(_G{G__!Iv#edyg~{VIPy)>LMj4oNz-n&%a4asJRE9`_F%2)$IHL_t5UvGpzdh zk5h)7J5!*yGw+UPO?M&}k3!jwa-Zu*9$8A4WCd*)H^g?*MYT=1S3Rh~hHa1T++KEw zw|h}>M(uuU5o;eI)nLONK~b}q_0D}hkHNOiW_>rbaX$qqVS;{E`h00#kG;7DpqN7a zIZ?c{?EZ$7yEVxJDLYmJ4-HCu1a}ghMB!eOCdF3m54`P>%y+;CY6Up^Q}4fAan9{8%p7@N^g}-3}UnI^{x! zf6?{o8B+X{=QfH;$J++x{5!u}$eF!J@E(*nsCrAwCijvNXu*qR04P8c9gv)(U0*A6|iCXUZM zyJY>G+k@5kvfZiT_o_;yh&1O@z@DOQ$Dv;+z?lg5N0Tv zwpG;7tyGbTD+Q}R{?RPbqW<=(K*(~Tf4qLNw9<84Z$~*Bj{A63AQF8mUG|WW0Bm58 zs-qawPcCkC`G2i&uU&UBk!Z#F#QLAN+SGgX?qpxp^Cn=*uK9Szmi5HPEfU`@rpf2R zYR<;rY2k&?B;XzuF>zPm1brst%27KuxJtb&3kl&NS2T@?a-aBSy9QVAo=HB01l;F9 zxe(lDF9I~GJlDi}85p5J2%SYf+SDgw>U_XA&!7ySiCdajsW8KPnaRQeRl~M0 zeC#cn(vf(f`VHYX{A$%J+iA;-8_&&am~l_yKmSy5G9vQ1*|Yyr#-y0BBzWH`^`02I zp5e@~+x>La{HjUWV&EvvhpCVtpishjg_RCIC~vIQgKk#!#FIXFK_Z8Cg8vxVrjd^l{~)mAzWsGAK-JLzT; z#UNth5QRK|=>|e&ODCTwWATgqf~hy17sS&UWUv7vR3o4d7qu7$a^J zEWi9WH(BS})UPyQ&)l3(L{xyOnG`)gK~pt$>wGrpa1AWRtjU z^)1svI;=EF3Vxgx{7MwwfHZ37yQpz{mc8X0F0ZI(hhbN@7jKpdBp0(mw&q;!cwr`|kGKhT?)(Uk2}GDv0&@}9UQbq!VSA7+NFki8ju zOa30-ni)33HQ2|tJ7~@L^|pT}=~OZpl6)esvpDbttdn(69D%;$lM$*ya9%X|I%chH zN@NiFuxoM8x#XcOjDbxVcL9+F4eg?VCjQIP#7AR0~- z?SkIQW*Tv_tYIVDuW^TaSC@Epp;eu=P~6Nc7q-G>?KL5nao8z>4B5V+*w5=;l9|2d zs!IfBdNYwcS#XxbjaE>D$mfuoL_KqpP#woXT9kbC+Gvm zPo@5LIz2@fI6a|EHyIv$oq;*@K+k8Hr(fYH%A=^vK=cPF@LZ=7Pe**E$k}NQmG!w- zNh0ukpd)b-`%H7c(EK${^5U7H($cjrz=Yzgm9D&F0pAuTeKw|Ji90CnK&d}B8S{mG zO}KYdxZy#bsrN@C}-S!c2ptu&7J}{|Ym=7y5WoByA zr&(Bry)Ubd|8&fMuV%W+EO11J`1;ewmfH&(udn_V$8Crf{eMuc?k`%x(``kM$`zi_>5PS*XidEs4=k={i3V<*r# z%~UWD`FSr?E-TZWgd51b`Ap@gYf8XgSxtgCAu>QN%e->k!ezLJ4paoga1ZTH^9vd4oYU308eV%%?`1xd{qT&n@ zXV0bY{GHSYTrXQ$Ov}k3U3e;aL*d4F`A`q&`|Z$F*Tk)Fb2vuVjrBW_KO28&3(D@* z$a_~y@^fP15%R~NHxDu~|BOH+ z#Icd-QI+h8WjcKS#i}l1xS+K3+Hf8ZEs{p+(W6IVL3+7WpS7`Vl)b-+>)V%pg4A29 z{uHY*#`^s(hxtA1nT=Otz}`IckAvEa!_{s4zCRL8|0EmeEoOD&^=3!>s1>~TG^Xof zwN+{aY|Q1yT5MUT=3jf zV_+~k#|%|Dk_`%J6?xsvTOZp2+XL0-9CNPR{m7IRAFL<2Kts6V1Dp)tc*7^wr@tjJ ziT5gBzF>BlfNj2s9Z=muok5K8?MB9_9WNoSo~88qVw~dnXq%N62F?d8d@bjTMmQ1= z5R`75MU-l33LNi{Uor3Tj2L*P=|Ba0;`sKUODzXD z8y7RMxDFDX{xJx8nsLzMwY(*u3^q~^LMhHi-#psdnd@7maIHT!8~jj>*rf}kq#C)> zHrKV-Z>I*XG5W~;e9`7R4!bBp&V;HSm`=Zhr*n|u6Y4+t41v#pOExy#pq8S`SqvJs z?nRSRqhmZFBBUxoKeVzRU-My>&p?^A*xyrG!$oQW~=;62TuLS)KD;(-+jb?fL z_%9>N|JaDDC&CF05WAk3+3^k(dq&0$Prl~koSQiV^06fCsetpi)^M?1UQUdx6g(Lu zPJ_Ij%}e9Fa`x!JE8fk;WwwW0FS4z&v}C_|0n)8+h$_T6G2|bXH{!WVEN59_dlZ8W zv3*=u)De3aqqfeuiS$T>BjCeK12W%SFSf9o8aA-#R5GgEC(T_uzU6^-HR*(HM+V-R z|2~oRW=v}8L{TBc&|9o|j?%7qe6@V*yX`CdQmwhLLYWzxUP@`i8iF2o^4aMoWX}zp6Yaz`dCmBpqLh=p3J6WH4%-zJ4>i`E}iBtV&Bv7oyUa(%F7S zI%>c=0GI;5eS6;7WLV;lMlud-KWh{`{w8zvpHS{AmP{T0 z{zxS_BiGVW9Veo$GTD#T^!Y4(pFnvizJ5jj>CNm9Nj?hqB-C5wiEy9IY}*V-5@dKw zusv3zho`}IBrN0I50mmga%nRIq5ap0{&T(;e$M(xkzeg}H3dueHQ14Eyl%eUBbEai zsUuna4g877ctGB7n&mH^%aMYor;r;+(i0IM|IBGxXJpv0X#@mlk4$n~>HGJ0p7OYj zK!;}AW;LBwb5tSaRW~O+YdRa6)svSV*9qa@@a_X}sGf^>gf-ZrzWzo)>yo_i?wP0K zOO?56S3IoDRTd|T=0e2Deb0_l!km<#95XEyg-J#LEW{FZ zkiWjyz>d0?0q_VT#W63N10OuHOp8p1 zi(_YAnhf0wYjk#XzC0FCB?>=HdHM&jYt7+2s z9taw@MlO|CK_zKJf{yNa1Cge1dP0jH_>3TSe+ogcEZ0>81s)-4s_BOdSlkxrODvjX zG=?D&IC?qmNVLac<{m26*UfEi)%~b;9sJ7|9GI>`x)H;A##m-kFPIv4yK9JY-YtT< zC1xle)hZBX4ng^6E-~B_(O6Vt@-XHI% z)7jelTP}h**sZExi#;|rePjq-IapKAhtQ3}Scq~4m=C0*=b${zV8R`TD8KFsW4ES6 zKvCp-VkFP5dN#|qY|t;#DB~vs=K@XW-YmbjYbtrdevF;DbJzCClQ%q{`9y||D#}H5 zD1R!StXLF&fGIY&-Gh7A4?Y8*kK6EAS8j`W@|D$x~kOpFMi)2A*(twwR$hdScVNG?<~SXuYAU=7VgPZW|m&;MQgqNzy!wcx6ia$Fk|C%pH3H zcqYp@NM9gW%(A9tk2PFzDD;vm-NpPYTNqLW2u$$aMm=;R^Y!3nb}X`t=j}%2-*nsa z5A7>+14`qfM(FB9N!Mgodx9P=I$0EYYmu4)Kv!pV-iFdZ9T6nHHAv*oH+6SaEddB0 zQU}`FJg-Y}zRrDrS}Qo&6If0-+;wE7>Ruc8&+0yEzM z5#N-mBaIC31ewh8NiF`d#N zT3XDV-P%iJ{k8LSk&e?bIDRZ*v{tA| z0F;yz%r90EGsb;hkpB%p4WmXpuNmO&>XVL>-979-Z*l@h^}P|4l##(Fml=fRX}aof zI>dqoxaLFe=@{U7xIIQ#qM8xe5dlU zySrdajFkmDCp$H`UxuseLD`MeT&&GP7gsGJ7V7$gT%KJurpXTEHX# z%6mulvV-`Xluz!B|I#z&JCm=nA27w5D_`ciGs*a9mu+fof4z+qw3c(aLkrJ*^i=|G z(;d#cpD;O)bz`^Z8+cHTCQx5LroHZ($A?!8Oh+7;V{y1p++MGGVLCY`3hK##j2D=` zdE>~6t!PA)2#xiL{AtrNfjKCaO|zN!J5F*8tmIPJV*%mH+AbQG6|z2qA~ z()TH7P8N8h=OznYqXm{_YB#RYSx&jHss;iM3t13h2m7&VHPL>nbD-WOnqT)sq{8S@ zG()1_nO^;E!ba_bF*Hgo@TckP!!?ifI;b8Np1{x|E{>$Hc#%zc@|0b)9BB)AN0zTv z<5i^?@o&>F?lHQ69NAi91p!pS*dc=>!@z~*pUB#aX;@YrVv;WYL?2z@Q%mP8g&?Od-%}{2GFW3ue$iNyG5?tKW@!`ZtLja+vmKSH}h%0m%aU~F@q>6 zRfLp2Ji(jNJ7o&PEBUO{xq6sy?oWGTV!b$!kfRrz$Cv>w9zK|i(Y!2L*EeE1VVMqq%EY=p{SIx6R6)PW4j~LUQ#2bYAzfZ5E4s>6&k%zI`eX+f)l36+GS?n};2-RHJ0MBY(& zB~Fw1BV@4i^4{x8?>A)$pN05AY9WJXz2#*ppxv6kNUQ^J`|W<8O7rGohIt(c=1f*( zhc6;P`)0#cgORY$%x6ucL^aqcAQ663s*cglnMa~$^8pG+?;hu zuwDy7pCFVXVowcPX>lTT6ve0Ce&^t1wtRE3O1Hb}X^+-OrtiDI94qEmzCILly!UXm zQ(wQ^?_F+Q)M#3V-<_|QQzIp>i|IT{)pfjlVe?m%)GJZ{D%K=rF`cOIiO!p`bN%U_ zw~z+x8XjwN`>F#c#NX~3TE|-r=>gj(V8tc+@6W@)GAwt*zdsj2|9KHXgZw{z z>;Jrk|CZ*zU;O_|tp8h@|8K{7p#1332v@Yd{jm)WJ@(`~;?k2ZCxl5e{c(i8&DL7+ zYC!SiPAWIYJ1NI2nULs@k;RB?Rag^IZRs$}KJ8~FYL`k8mL&&EKF}J5jzvazeF%9p zLQsm0-D+eyu&+dHI#iUOD=05JeFT_Hq>UY<6gm*sO!QM6;XW|lz)>zSYM)gilUebV;ZF*u(JkIY~x~iaU z9ntH}5fM7F^>pX*TY7S64N_WSobFJiWuYfmetlMd16A+w92hYjbNVrJOuS%O7Xw-2 zmIk$i=uR^E*_FJ~-DqGC&u-BDEK+uR`tO}$WAdeIR0*nD-I?P5o@RdlVt=ROlmty) zyiYRB93Phj?zJB=cK8PB`XH$W7sHP4N?yzv^ZT215Cc4;zkW5)u0IHVrb;e*@=pOI z92oioR(1}05C@n9RR6*!OjS`f)sWBW~>aG ze8@|?K1&zpe_M+iq~)Iyat8YPVsa4!K3`1$Xlj@XuY7*V9)?@@gc09MY67DZzX#jO zf<+mPBZ9s}ecYvrq?4shrx@S0=1ouSiaW{2NbP8-ph$9^Q`SeQMC}rmq z!fQDiF;Ok@1tiRALbwA662+L9ijSB5%R*H}WV#8VxX8aMa|^vQ#SV;Xh)0-O^iJuK z(Us8)l&_V(@4Knu=c<{u`0@-`dBPck`Hdm~Md_?r;>J93CBL6gN6qS?n%z9^|I_3R zRTW|bt%VrU_qwCR@1r}+17TD(>U7aI-;eEFL-{Z7?q{+A+I#nTCAbh%cn*(9>-(pV z03!|3;Z!+bbshgoEFDeClt)vi=zXT7t()8Cr8W(!+UKcnePRDc?Jd-*S|Zfxro&N1 ziMUOjCZ=6pU^pD1AZkay+SgH!JFEXGn(Mpg2M@eLuCk^Ds&u@DzrVG*+HXxHv=IZZ z80&?gO!f5SP*)M1Spq}?(dyK3_BkSKrtp1WO|dAv^EayMHzoGL*Wl1EesItOn=Cmh0tJ1vD^dV3s5A5eGGZEW;v%t+?@7lH11b``gcot{WD?27d z<}mVCyz%2j(I+07lhbd8-6InJ2MZRVYErA96d!2Kb$F6h57Dg?a0k?)6|U8 z2b;3cEqMpqx{{8IeT0AA5B{6l2atH`*{?25u><<--ERpQ$tr=iWEG(`*@@i}=2liEmd9%{Wt;h9W$48_<_>eP9-ximABsD$xl6h051@~~ufwKe zc+zEA+?sG}c?J_d`1pt8z~3+K+7m%k!(AojtVt10(N1OwY9P!js6tFZaEufa(#Ts% zQWVWhjeC6Qp{dvNdZ68DL;{j*GHQtQzTRORMSID>R)Ce@O8W= zjFeSUE9LLbo$GtyL3U4V3EwBAnA`@>+&^_Llb9n0BQ|8R0Z$Ne9n2F_j#Z5d4_$HZtfuh-^Zc`m+qpHiORZ$t8{JA)dD5_ z)^t@cV|(&fDLZVh-i+h?7o#2oC^}QMng)-A&^#T4K6KEtcrpn1QzkCmthXFHyB&?f z*BP6~De#lGlC`REI-A_Rd&8}vCOc+p?`PdV^LLbxn%h-keo`RYieta8Lz_*qvEV-H zx#CgX@Rsa)6Rsh*vgu@={R*60p4?zWZ@F5bv3#mHwUPH{-?g@mUPD8RE^D8GUk~xy zxa;t)dSxuS<5B$t&V4w6!i!_v6YWKx6Kt;2;5oe~AR9_oPm9zjb)&ZY+5gky`d>`l z!YpEMS0Av+a)Ea*eSL-9@ss#tpz|EJP$8$P?CG42q9}Wx(@!|};oaHMq$LuI(m8U; z>3Z(ek-shxo9Gwq0%c>ma@J>4?^jPKcN(B)RWQ87?)-pl-U(``_&}u)J zz@vwS&k<}wJ@nZBr`|tyT1nm&Eq^zgygay0w8Tuh8EAOl}EJFJomt07i zdMJvb++{k)oXK`tjN{ctVnm12PRG#FVq*>OPg4g(*zm^c8LuQRJjmd7+$%tD>Mu`q zF(s_qcIy9+vB`c?YEF5Qo85TrjstVD4jzSoez)MA$h1-T>U-JXz`E^4FYY;6Ot$KT zv%ybNn-@K+;!GZD^vQN_`^JgcBUXKS*V8yPXdXQ8eHA+Wk1MUvr3-eU@aZv|??w6U zsJ?6rp|um@^M|MFKccJyE9CO%`3_m<&1_z*tuSY+rfFNJX&=!T3mZLl4ZU=4@=bMb zCQFVmPsJXEF$MgT`f6w$#gCr2v3O?bkUo%8FKn zB7YaXAt80iH$`K`;}3)XzOpu2w%pNqX>0D>wX};N4Y)yGfHwz3z&8i5P^rB&Ym;L2uz6|8kSL=5YQUQ%aF2m{Pr7*|NFRh`T%?t zT<4O&**%kB3u4Y={80>;vyfNC4&m0LTlPL3(MLYS3cPpm)(5$w#IZ$+P)#Kut>7Ad zDt2GCGHjB?y(N77 zp1S7+PbNuUjIQCk7Mg0D|9c>~+mPe+)HQgxV3)<;4{T9&USq&^Q`1FVf8oQ&hxdrn z4h9hmns|q(^j6I;NAeRstq)}x>+YRia%j%(lSH3^^M=BQjFIy`s~n@QpT2D2(Lhi>&{6d~um-@iXQH@U-l{pS zm+GmqLdmD4oHO0sDHj8zQ&miA!cGZCQ`*M)%&pXmjPTO3;Z;tPPq?f1XQXJH)HSKk z6*!XY4)%hFiU=7C&4-^aP_W>9k4 z8y1X>4GG@}{D@O$9`pN>Tca_^dePUmZQ7LS-pNUNco6^Gf}ij~O1ZBu7Vp>ka;P}| zpblW_uV&qb?MCAl6(kPwR7@W;PV;B7pj9+TaLr(Jc;G|ph&A!f2o z@AH}5mrZ7G*?%BucbWAbE#r5FxAY+6ytk3_ygmx*)!4-(`Cv#;3vLl%=BTZ&)`zz?PUrG+@V*H;@g!QaklYG?#Q)|j zoIJz6BrfWIXlZTGyoEqp2vn9sn)lfGZH_K38o@YLFD-*dSeepcb;cdVzz~2E!WxdRoVw5`6b-fcc%0w5%t6x_+Va{;2cavI@kT1P z^w>yn+`%g{m0HMIl(v10_@k?DUbLq*V=+E@nF~h=560_+g{#kw>hdpb8n|cai!|-= znt*Io;WutXUFV+R)#{@d&wO%AkEE@g1#18|?1e+Hj1@Y1dKmAXZ=a{O<(8VsXLHL# zhuh8>1TL{H8*MNtDzUhyvMp2;4Oi@aQxItmUvj2}v5C3{AJb0b3{?EoBR}x_=SJ^S z5slvbNg2eJ)+27(ht>|5r!g;!yfa0@@oCCkyI})?nA8qW?+qb%;g{978wC-bR#{PV zlJ!?>|4H<+u)jTiuUm!_AIFBC+z1jk z&S<4z6(9|;u3A-oFsiYY=saCGVBV$tr!j;w=GyiU4&FGap!z9;(aaGe;j=@fQdk!? z9I!zi=dNs(?VB@4W;EnCKt$mim)8B>QqfD={c!8ayyORsp3@|h9Z)$){ z;r$w|@@yGZ(K4&?)EPn&xT9y?@6Ow;{q$ciZ9fseuIKd4miDh-zusCko5OMFa)A7T z1E{pEsDoFDX%hM95%uKDdh^Fok@jY#-juhP^>VyIa`TH#H_mKh_unN(_Nfzp=or-5 z{r%p{HyvctUG_9JPX?x|E)c}j5P4{bftx{a>qk#v#$0Q!)Nyg6v&{Tu0gZMJ+(RR_ z{R$aON*Nc`Ztvj)D#tR^@+aSZ0w%fdN^d#7va~qH@x`^nAz1|x$=~+tIXbpf$YMlu zd!8BWnAoH_a!EDEaRrKVEHl3@q*R-Dl`-O3i_^N1w+%(0viUYt9I| z;bP8gaPl$lr_hdtR=K4a<3P&m9jqI5Iw^Vz9>j;dL66xz;8~aJJ0Bl zalmmm;!b-rovDYN{$Ey#53@(gwvzO}P;7nF&~wI{cMn*aPQ-j_3OLM`0|Uf*6JYHt z;fcA$DOm{EfN@=6!41eE5aViMieUlM;)%u@g;DkmrxJU>VZgHU(3EfeUyCT7?k3r*ab|Iur2d9&{ex%_Ff#zKveL(niqZE2%V@fbPa z)W5tGuQLBA8XiK-Tt1iDHfcmcGVA7i&rPPp>7;Y0sB0jwWbA&$y?>aK8G3^*Jy5_6 zEu_T?(fPY~?@l_XJ7mfkZ5ID||2rgGGFHiAer_v?D>b|(fXAZZ4k~KWb94H@$ue&_&Q!>QG5+Ye<HgEAkm)n=N zc7C`^c4tw3;Eg{S{ZUNp1&%jHXC+izUbk4oCN!_ylbyBF*mOAY$h%%->NABF%$cf% zU5wqZ+Z=3>(!kCl$Bpa5pvK=jZxU9t+}}3cRk!K=l)jhXtPX6=JQFkQ;i3jv`}5W< zotbxI;FqluYed!n%D4(tLqAo1bGF}{kkRvUCTpFzI8x)v%$f?PV#kkeoyd&`i6InY zKsY2kQ95b03}Omr>B}lZj*m~>E?e=D4gSrB_e3Qs-=+##ykvMlmEUT-=zaZGESH2H zZs}!NKWQ4QfravYREBodwXO#j>SomP5Jcb^Vi7TB&2@#a$cd|sy!LOE!7C~8ZXFNp zXXv)TAFS&5w1#q!vi;6!Ni`se-1lxFr`0HC`FAbzkaGVSm7h*d5dJD>@6D&Y=+_YN zsBIZ?cAV?3m?7asP^-=mF^*=ADzBNZSpA0+`)blXb{#%^?+g{y7BI)fb#Z7>`eF$C zaE6CmhPSe;>twu}%DHLlGYyK%5m0L_>Gp0Bd`XiyQUM*uP2aljAr?>KsRTELb+l7u z8*kI5x#u%FZm(UxUi1HYYc`oz^cm`)rvasIm