├── docs ├── public │ ├── CNAME │ ├── logo.png │ └── favicon.ico ├── guide │ ├── pictures │ │ ├── logo.png │ │ ├── aifadian │ │ │ ├── USDT.png │ │ │ ├── alipay.jpg │ │ │ └── wechat.png │ │ ├── installation │ │ │ ├── susfs-ksu.jpg │ │ │ └── download-file.png │ │ └── noroot-installation │ │ │ ├── 工作中LKM.jpg │ │ │ ├── 开发者选项.jpg │ │ │ ├── 手机确认解锁.jpg │ │ │ ├── 打开CMD命令行.jpg │ │ │ ├── dl-MKSU │ │ │ ├── 1.png │ │ │ └── 2.png │ │ │ ├── 修补boot.img.jpg │ │ │ ├── 按照提示输入b和i.jpg │ │ │ ├── 开启OEM解锁和USB调试.jpg │ │ │ ├── Payload-Dumper-Compose.jpg │ │ │ └── 复制payload.bin到payload-dumper-go.jpg │ ├── zanzhu.md │ ├── how-to-build.md │ ├── roms.md │ ├── Faq.md │ ├── what-is-this.md │ ├── installation.md │ └── noroot-installation.md ├── .vitepress │ ├── search.ts │ └── config.mts ├── index.md ├── api-examples.md └── markdown-examples.md ├── .gitignore ├── package.json ├── LICENSE ├── README.md ├── .github └── workflows │ ├── deploy.yml │ ├── Build-MKSU-SUSFS_OnePlus_SM7675.yml │ ├── Build-MKSU-SUSFS_OnePlus_SM8650.yml │ └── Build-SukiSU-OnePlus_13.yml └── yarn.lock /docs/public/CNAME: -------------------------------------------------------------------------------- 1 | oki.mcxiaochen.top -------------------------------------------------------------------------------- /docs/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/public/logo.png -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/guide/pictures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/logo.png -------------------------------------------------------------------------------- /docs/guide/pictures/aifadian/USDT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/aifadian/USDT.png -------------------------------------------------------------------------------- /docs/guide/pictures/aifadian/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/aifadian/alipay.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/aifadian/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/aifadian/wechat.png -------------------------------------------------------------------------------- /docs/guide/pictures/installation/susfs-ksu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/installation/susfs-ksu.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/installation/download-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/installation/download-file.png -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/工作中LKM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/工作中LKM.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/开发者选项.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/开发者选项.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/手机确认解锁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/手机确认解锁.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/打开CMD命令行.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/打开CMD命令行.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/dl-MKSU/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/dl-MKSU/1.png -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/dl-MKSU/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/dl-MKSU/2.png -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/修补boot.img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/修补boot.img.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/按照提示输入b和i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/按照提示输入b和i.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/开启OEM解锁和USB调试.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/开启OEM解锁和USB调试.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # End of https://www.gitignore.io/api/visualstudiocode 2 | .DS_Store 3 | node_modules/ 4 | package-lock.json 5 | /docs/.vitepress/cache 6 | /docs/.vitepress/dist 7 | /.idea 8 | /.fleet -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/Payload-Dumper-Compose.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/Payload-Dumper-Compose.jpg -------------------------------------------------------------------------------- /docs/guide/pictures/noroot-installation/复制payload.bin到payload-dumper-go.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/HEAD/docs/guide/pictures/noroot-installation/复制payload.bin到payload-dumper-go.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "vitepress": "^1.6.3" 4 | }, 5 | "scripts": { 6 | "docs:dev": "vitepress dev docs", 7 | "docs:build": "vitepress build docs", 8 | "docs:preview": "vitepress preview docs" 9 | } 10 | } -------------------------------------------------------------------------------- /docs/guide/zanzhu.md: -------------------------------------------------------------------------------- 1 | # 赞助我 2 | 3 | 如果觉得我的文档或者项目写的很好的话欢迎赞助 4 | 5 | ## 微信/WeChat 6 | 7 | ![wechat](./pictures/aifadian/wechat.png) 8 | 9 | ## 支付宝/Alipay 10 | 11 | ![alipay](./pictures/aifadian/alipay.jpg) 12 | 13 | ## USDT 14 | 15 | ![USDT](./pictures/aifadian/USDT.png) 16 | 17 | 地址:0x592C6dF1684c87C49A608079C26AA166ae9dfC3D 18 | 19 | ## 赞助者名单 20 | 21 | 2025-05-24 21:21:21 感谢 支付宝 **鑫 赞助 ¥6.00元 备注:大佬喝茶🍵 22 | 23 | 2025-06-13 21:01:51 感谢 USDT *** 赞助 200 USDT 备注:hey bro i thk u need this. 24 | -------------------------------------------------------------------------------- /docs/guide/how-to-build.md: -------------------------------------------------------------------------------- 1 | # 如何构建 {#how-to-build} 2 | 3 | 推荐先理解必要知识再使用 GitHub Actions 一键构建 4 | 5 | 1. [构建内核](https://source.android.com/docs/setup/build/building-kernels) 6 | 2. [通用内核映像 (GKI) 发布构建](https://source.android.com/docs/core/architecture/kernel/gki-release-builds) 7 | 3. [构建 KernelSU](https://kernelsu.org/zh_CN/guide/how-to-build.html) 8 | 9 | ## 使用本项目一键构建 10 | 11 | 直接[Fork本项目](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/fork) 12 | 13 | 然后点击你Fork来的仓库,选择Acetons并选择你需要构建的机型SOC型号,点击**Run workflow**,选择你需要构建的机型,点击**Run workflow**,等待约一小时即可收获编译好的AK3文件。 14 | 15 | ## 手动构建 16 | 17 | 请学习理解[必要知识](#how-to-build}) -------------------------------------------------------------------------------- /docs/.vitepress/search.ts: -------------------------------------------------------------------------------- 1 | import type { DefaultTheme } from "vitepress"; 2 | 3 | export const localSearchOptions: DefaultTheme.LocalSearchOptions = { 4 | locales: { 5 | root: { 6 | translations: { 7 | button: { 8 | buttonText: "搜索文档", 9 | buttonAriaLabel: "搜索文档", 10 | }, 11 | modal: { 12 | noResultsText: "无法找到相关结果", 13 | resetButtonTitle: "清除查询条件", 14 | footer: { 15 | selectText: "选择", 16 | navigateText: "切换", 17 | }, 18 | }, 19 | }, 20 | }, 21 | }, 22 | }; -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://vitepress.dev/reference/default-theme-home-page 3 | layout: home 4 | title: 使用GA编译一加KSU分支内核并发布构建 5 | 6 | hero: 7 | name: "Oneplus Kernel Image" 8 | text: "使用GA编译一加KSU分支内核并发布构建" 9 | tagline: "" 10 | image: 11 | src: /logo.png 12 | alt: Oneplus Kernel Image 13 | actions: 14 | - theme: brand 15 | text: 开始了解 16 | link: /guide/what-is-this 17 | - theme: alt 18 | text: 在 GitHub 中查看 19 | link: https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS 20 | 21 | features: 22 | - title: 基于官核 23 | details: 此项目编译内核源码来自一加官方,保留官核特性,提升用户体验。 24 | - title: 强可靠性 25 | details: 每个构建发布前都会实机测试,确保内核可以正确启动。 26 | - title: 长期支持 27 | details: 本人为此项目提供长期支持,会持续更新到方法过时。 28 | - title: 宽许可证 & 开源 29 | details: 如果你想,可以随时Fork本项目,此项目完全开源,同时感谢各开源项目做出贡献。 30 | --- 31 | -------------------------------------------------------------------------------- /docs/guide/roms.md: -------------------------------------------------------------------------------- 1 | # ROM 下载 2 | 3 | ::: tip 4 | 本页面镜像自 [**Magisk中文网**](https://magiskcn.com/roms.html) 5 | ::: 6 | 7 | 下载来源官方,可放心下载 8 | 9 | 欢迎提交,来源安全可靠,会收录到此页面 10 | 11 | ## 小米 / 红米 12 | 13 | - [roms.miuier.com](https://roms.miuier.com/zh-cn/devices) ***推荐*** 14 | - [xiaomirom.com](https://xiaomirom.com/series) 15 | - [mirom.ezbox.idv.tw](https://mirom.ezbox.idv.tw/phone) 16 | - [mifirm.net](https://mifirm.net/?type=china) 17 | - [小米社区整理](https://xiaomishequ.feishu.cn/sheets/shtcnsRTbwSvpUsaei6B04ogI6Z) 18 | 19 | ----------------------------------------- 20 | 21 | - [hyperos.fans](https://hyperos.fans/zh/devices) ***推荐*** 22 | - [hyperosupdates.com](https://hyperosupdates.com/xiaomi) 23 | - [mifirmware.com](https://mifirmware.com/hyperos) 24 | 25 | ## 一加 / 真我 / OPPO 26 | 27 | - 一加 [yun.daxiaamu.com](https://yun.daxiaamu.com/OnePlus_Roms) 「**如果下载 403,可 在线提取 或者使用 迅雷IDM 可正常下载**」 28 | - 真我 **@oplus_official_roms** TG群 29 | - OPPO **@oplus_official_roms** TG群 -------------------------------------------------------------------------------- /docs/guide/Faq.md: -------------------------------------------------------------------------------- 1 | # Faq 2 | 3 | 关于本项目及附属项目的任何问题你都可以看这里,如果没有,那么请自行[**必应**](https://cn.bing.com/)、[**百度**](https://www.baidu.com/)、[**酷安**](https://coolapk.com/)或[**提交Issues**](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/issues) 4 | 5 | ## 主播我的手机可以刷吗? 6 | 7 | [本项目](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS)目前只支持一加Ace5、一加Ace3V、一加Ace3Pro、一加PadPro四款机型,但LKM版KSU适用所有可以解BootLoader锁并且Kernel为GKI2.0的机型。 8 | 9 | ## 为什么使用mksu而不是ksu,其与ksu又有什么区别? 10 | 11 | 首先,个人觉得mksu比ksu更有优势,因为**原版KSU基于OverlayFS**实现,通过内核层创建虚拟文件层覆盖系统分区,依赖Linux内核的OverlayFS特性实现模块加载;而**MKSU采用Magisk同源的Magic Mount方案**,利用绑定挂载(Bind Mount)动态替换系统文件路径,直接修改挂载命名空间实现模块注入。***在实际应用中的表现往往MKSU更好,首先它不会生成1t的稀疏文件,其次针对替换系统文件的模块,它提供了更好的隐藏性***由此,**本人选择MKSU** 12 | 13 | ## LKM和GKI的区别在哪 14 | 15 | GKI(通用内核镜像)是**替换设备原有内核的方式**,优点是可玩性强,缺点是会丢失厂家特性,而LKM(可加载内核模块)则**是加载内核模块**,不会**替换原有内核**,优点是简单上手成本低不丢失厂家特性,缺点是可玩性低。[OKI项目](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS)专为一加系设备构建,使用一加官方开源内核,**涵盖了GKI的优点和LKM的优点**,***可放心使用*** 16 | -------------------------------------------------------------------------------- /docs/guide/what-is-this.md: -------------------------------------------------------------------------------- 1 | # 什么是 OKI? {#wtisoki} 2 | 3 | OKI全名Oneplus Kernel Image即“一加内核镜像”。它不同于GKI,其编译内核源码来自一加官方,保留官核特性。 4 | 5 | ## GKI又是什么? {#wtisgki} 6 | 7 | GKI全名Generic Kernel Image即“通用内核镜像”,是由谷歌为统一安卓内核乱象,提高不同机型内核通用性,减少人力开销而编写的。 8 | 9 | 关于GKI的具体详情可以[看这里](https://source.android.google.cn/docs/core/architecture/kernel/generic-kernel-image?hl=zh-cn) 10 | 11 | ## 为什么要使用OKI而不是GKI {#whyuseoki} 12 | 13 | 由于一加魔改了Boot内核部分代码,导致使用GKI(通用内核镜像)无法正常引导系统,虽然格式化data分区可以解决此问题,但使用GKI会导致失去一加官方线程调度,实际表现通常为功耗或发热异常,高负载下卡顿等等。而使用OKI可以完美解决此问题。 14 | 15 | ## Faq 16 | 17 | 如果你有关于本项目的任何问题,可以查看: [Faq](Faq) 18 | 19 | ## 如何使用 {#how-to-use} 20 | 21 | 请参考: [安装](installation) 22 | 23 | ## 如何构建 {#how-to-build} 24 | 25 | 请参考: [如何自行构建](how-to-build) 26 | 27 | ## 讨论 {#discussion} 28 | 29 | - QQ群: [安卓root隐藏交流](https://qm.qq.com/cgi-bin/qm/qr?k=Tncp0qgTxddBSogy17jM2C5wPLqNtQpF&jump_from=webapi&authKey=+/7NoQk9GJWAYkMAWjbA45sIsUDdbpPd8+NoEJSiDEoEeAKdIADuvfwwaztVdmU5) 群号:1021796828 30 | 31 | - 酷安:[@我不是尘桑](https://www.coolapk.com/u/21508887) -------------------------------------------------------------------------------- /docs/api-examples.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Runtime API Examples 6 | 7 | This page demonstrates usage of some of the runtime APIs provided by VitePress. 8 | 9 | The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: 10 | 11 | ```md 12 | 17 | 18 | ## Results 19 | 20 | ### Theme Data 21 |
{{ theme }}
22 | 23 | ### Page Data 24 |
{{ page }}
25 | 26 | ### Page Frontmatter 27 |
{{ frontmatter }}
28 | ``` 29 | 30 | 35 | 36 | ## Results 37 | 38 | ### Theme Data 39 |
{{ theme }}
40 | 41 | ### Page Data 42 |
{{ page }}
43 | 44 | ### Page Frontmatter 45 |
{{ frontmatter }}
46 | 47 | ## More 48 | 49 | Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). 50 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 小尘 Xiao Chen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/markdown-examples.md: -------------------------------------------------------------------------------- 1 | # Markdown Extension Examples 2 | 3 | This page demonstrates some of the built-in markdown extensions provided by VitePress. 4 | 5 | ## Syntax Highlighting 6 | 7 | VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: 8 | 9 | **Input** 10 | 11 | ````md 12 | ```js{4} 13 | export default { 14 | data () { 15 | return { 16 | msg: 'Highlighted!' 17 | } 18 | } 19 | } 20 | ``` 21 | ```` 22 | 23 | **Output** 24 | 25 | ```js{4} 26 | export default { 27 | data () { 28 | return { 29 | msg: 'Highlighted!' 30 | } 31 | } 32 | } 33 | ``` 34 | 35 | ## Custom Containers 36 | 37 | **Input** 38 | 39 | ```md 40 | ::: info 41 | This is an info box. 42 | ::: 43 | 44 | ::: tip 45 | This is a tip. 46 | ::: 47 | 48 | ::: warning 49 | This is a warning. 50 | ::: 51 | 52 | ::: danger 53 | This is a dangerous warning. 54 | ::: 55 | 56 | ::: details 57 | This is a details block. 58 | ::: 59 | ``` 60 | 61 | **Output** 62 | 63 | ::: info 64 | This is an info box. 65 | ::: 66 | 67 | ::: tip 68 | This is a tip. 69 | ::: 70 | 71 | ::: warning 72 | This is a warning. 73 | ::: 74 | 75 | ::: danger 76 | This is a dangerous warning. 77 | ::: 78 | 79 | ::: details 80 | This is a details block. 81 | ::: 82 | 83 | ## More 84 | 85 | Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Action_OKI_KernelSU_SUSFS 2 | 3 | 使用Github Action自动编译一加多种KernelSU分支内核并手动发布稳定构建 4 | 5 | mksu和ksu-next仓库已合并,后续只更新此仓库 6 | 7 | ## 教程文档 8 | 9 | [阅读文档](https://oki.mcxiaochen.top/) 10 | 11 | 本文档在收集整理一加相关新手入门教程,欢迎各位提交PR 12 | 13 | ## 安装 14 | 15 | 请直接使用[本项目](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/releases)的稳定构建 16 | 17 | 本项目所有镜像均为ak3([AnyKernel3](https://github.com/Kernel-SU/AnyKernel3))打包,请自行使用支持的工具刷入使用 18 | 19 | 推荐使用[HorizonKernelFlasher](https://github.com/libxzr/HorizonKernelFlasher)进行刷写([点此下载](https://github.com/libxzr/HorizonKernelFlasher/releases/download/v1.3/app-release.apk)) 20 | 21 | ## ⭐Star 22 | [![Stars](https://starchart.cc/mcxiaochenn/Action_OKI_KernelSU_SUSFS.svg?variant=adaptive)](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS) 23 | 24 | ## 致谢 25 | 26 | - **一加开源内核地址**:感谢[OnePlusOSS](https://github.com/OnePlusOSS/kernel_manifest)开源一加内核相关文件及清单 27 | 28 | - **KernelSU**: 由[tiann](https://github.com/tiann)开发 29 | 30 | - **Magic-KernelSU**: 由[5ec1cff](https://github.com/5ec1cff/KernelSU)开发 31 | 32 | - **KernelSU-Next**: 由[rifsxd](https://github.com/rifsxd/KernelSU-Next)开发 33 | 34 | - **SUSFS**: 由[simonpunk](https://gitlab.com/simonpunk/susfs4ksu.git)开发 35 | 36 | - **SUSFS Module**: 由[sidex15](https://github.com/sidex15)开发 37 | 38 | - **Sultan Kernels**: 由[kerneltoast](https://github.com/kerneltoast)开发 39 | 40 | - **HorizonKernelFlasher**:由[libxzr](https://github.com/libxzr)开发 41 | 42 | - **M-KernelSU编译脚本**:由[xiaonan7777](https://github.com/xiaonan7777)编写 43 | 44 | - **KernelSU-Next编译脚本**:由[Laomaoi](https://github.com/Laomaoi)编写 45 | 46 | 特别感谢开源社区的贡献! 47 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | # 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程 2 | # 3 | name: Deploy VitePress site to Pages 4 | 5 | on: 6 | # 在针对 `main` 分支的推送上运行。如果你 7 | # 使用 `master` 分支作为默认分支,请将其更改为 `master` 8 | push: 9 | branches: [main] 10 | 11 | # 允许你从 Actions 选项卡手动运行此工作流程 12 | workflow_dispatch: 13 | 14 | # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages 15 | permissions: 16 | contents: read 17 | pages: write 18 | id-token: write 19 | 20 | # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列 21 | # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成 22 | concurrency: 23 | group: pages 24 | cancel-in-progress: false 25 | 26 | jobs: 27 | # 构建工作 28 | build: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v4 33 | with: 34 | fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 35 | # - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消此区域注释 36 | # with: 37 | # version: 9 38 | # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释 39 | - name: Setup Node 40 | uses: actions/setup-node@v4 41 | with: 42 | node-version: 22 43 | cache: yarn # 或 pnpm / yarn 44 | - name: Setup Pages 45 | uses: actions/configure-pages@v4 46 | - name: Install dependencies 47 | run: yarn install # 或 pnpm install / yarn install / bun install 48 | - name: Build with VitePress 49 | run: yarn docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build 50 | - name: Upload artifact 51 | uses: actions/upload-pages-artifact@v3 52 | with: 53 | path: docs/.vitepress/dist 54 | 55 | # 部署工作 56 | deploy: 57 | environment: 58 | name: github-pages 59 | url: ${{ steps.deployment.outputs.page_url }} 60 | needs: build 61 | runs-on: ubuntu-latest 62 | name: Deploy 63 | steps: 64 | - name: Deploy to GitHub Pages 65 | id: deployment 66 | uses: actions/deploy-pages@v4 67 | -------------------------------------------------------------------------------- /docs/.vitepress/config.mts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitepress' 2 | import { localSearchOptions } from "./search"; 3 | 4 | // https://vitepress.dev/reference/site-config 5 | export default defineConfig({ 6 | title: "Oneplus Kernel Image", 7 | description: "使用GA编译一加KSU分支内核并发布构建", 8 | themeConfig: { 9 | 10 | outline: { 11 | level: "deep", // 右侧大纲标题层级 12 | label: "目录", // 右侧大纲标题文本配置 13 | }, 14 | 15 | darkModeSwitchLabel: "切换日光/暗黑模式", 16 | sidebarMenuLabel: "文章", 17 | returnToTopLabel: "返回顶部", 18 | lastUpdatedText: "最后更新", // 最后更新时间文本配置, 需先配置lastUpdated为true 19 | 20 | // 文档页脚文本配置 21 | docFooter: { 22 | prev: "上一篇", 23 | next: "下一篇", 24 | }, 25 | // 搜索配置(二选一) 26 | search: { 27 | // 本地离线搜索 28 | provider: "local", 29 | options: localSearchOptions, 30 | }, // 导航栏右侧社交链接配置 31 | 32 | // https://vitepress.dev/reference/default-theme-config 33 | nav: [ 34 | { text: '首页', link: '/' }, 35 | { text: '指南', link: '/guide/what-is-this' } 36 | ], 37 | 38 | footer: { 39 | message: '感谢GitHub Pages提供网站搭建服务', 40 | copyright: 'Copyright © 2024-present 酷安@我不是尘桑' 41 | }, 42 | 43 | editLink: { 44 | pattern: 'https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/edit/main/docs/:path', 45 | text: '在 GitHub 中编辑本页' 46 | }, 47 | 48 | lastUpdated: { 49 | text: '最后更新于' 50 | }, 51 | 52 | socialLinks: [ 53 | { icon: 'github', link: 'https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS' } 54 | ], 55 | 56 | sidebar: [ 57 | { 58 | text: 'Guide', 59 | items: [ 60 | { text: '什么是OKI', link: '/guide/what-is-this' }, 61 | { text: '安装', link: '/guide/installation' }, 62 | { text: '无root安装', link: '/guide/noroot-installation'}, 63 | { text: '如何构建', link: '/guide/how-to-build'}, 64 | { text: 'Faq', link: '/guide/Faq'}, 65 | { text: 'ROM 下载', link: '/guide/roms'}, 66 | { text: '赞助', link: '/guide/zanzhu'} 67 | ] 68 | } 69 | ] 70 | } 71 | }) 72 | -------------------------------------------------------------------------------- /docs/guide/installation.md: -------------------------------------------------------------------------------- 1 | # 安装 {#title} 2 | 3 | ## 确认你的设备已获取root权限 {#check-root} 4 | 5 | 在正式开始之前请确认你的设备已获取root权限,如果没有,请[查看此教程](noroot-installation)先获取root权限 6 | 7 | ## 备份你的 boot.img {#backup-you-boot} 8 | 9 | 在进行刷机操作之前,你必须先备份好自己的原厂 boot.img。如果你后续刷机出现了任何问题,你都可以通过使用 fastboot 刷回原厂 boot 来恢复系统。 10 | 11 | ::: warning 12 | 任何刷机操作都是有风险的,请务必做好这一步再进行下一步操作!!必要时你还可以备份你手机的所有数据。 13 | ::: 14 | 15 | ## 必备知识 {#acknowage} 16 | 17 | ### ADB 和 fastboot {#adb-and-fastboot} 18 | 19 | 此教程默认你会使用 ADB 和 fastboot 工具,如果你没有了解过,建议使用搜索引擎先学习相关知识。 20 | 21 | ## 开始安装 {#start-install} 22 | 23 | ### 寻找版本并下载 {#search-version-dl} 24 | 25 | 前往[本项目的稳定构建](https://github.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/releases),找到适合你的机型并下载两个文件 26 | 27 | ![两个都要下](./pictures/installation/download-file.png) 28 | 29 | ### 下载AK3刷写工具 {#download-HorizonKernelFlasher} 30 | 31 | 下载[HorizonKernelFlasher](https://github.com/libxzr/HorizonKernelFlasher)工具([下载直链](https://github.com/libxzr/HorizonKernelFlasher/releases/download/v1.3/app-release.apk))并安装,然后在KernelSU(Alpha等)内给予其超级用户权限。 32 | 33 | ### 选择并刷入 {#set-fxxkboot} 34 | 35 | 打开HorizonKernelFlasher,自动弹出选择界面,选择你下载的AK3包(名称应为AnyKernel3-oneplus_xxx_x-x,x-MKSU-xxxxx-SUSFS-x.x.x.zip) 36 | 37 | 刷入完成弹出是否重启请选择“否” 38 | 39 | ::: tip 40 | 本篇教程中出现的“x”如无额外提醒则均代表任何字符。 41 | ::: 42 | 43 | ### 安装MKSU管理器 {#install-MKSU} 44 | 45 | 安装[寻找版本并下载](#search-version-dl)步骤中下载的MKSU管理器(名称应为KernelSU_xxxxxxxx_xxxxx-release.apk) 46 | 47 | 安装完成后你可能会发现为什么MKSU的名字依然为KernelSU,请放心,并不是你下载错文件了,而是[5ec1cff](https://github.com/5ec1cff/KernelSU)在编写此项目时没有修改软件名字,但修改了包名和签名,故不用担心与原版KSU出现冲突。 48 | 49 | ### 大功告成...了吗? {#are-u-ok} 50 | 51 | 别急,在重启前请确保你此前的root方式为alpha、ksunext、apatchnext、mksu中的任意一项或确保管理器的模块挂载方式为Magic Mount或类似方法,而非overlayfs或img方式,否则你的手机可能就睡着了。 52 | 解决方式也很简单,打开你的mt管理器,前往/data/adb/删除此文件夹下的所有文件 53 | 54 | ::: tip 55 | 此处不推荐直接删除adb文件夹,部分机型直接删除adb文件夹会导致系统无法启动!!! 56 | ::: 57 | 58 | ### 真的...大功告成...了吗? {#are-u-ok-right} 59 | 60 | 确定你没有[以上问题](#are-u-ok)就可以愉快重启你的手机了,不出意外开机后你的MKSU就会显示GKI运行中了。 61 | 62 | 当然此时还没结束,你还需要做最后一步,下载并刷入 [**SUSFS-FOR-KERNELSU**](https://github.com/sidex15/susfs4ksu-module) 模块后,再重启一次,当你看到管理器内此模块显示如下图界面,则代表大功告成! 63 | 64 | ![两个都要下](./pictures/installation/susfs-ksu.jpg) 65 | 66 | **鸣谢:XiangYaoKaiXin**或**唐宋元清明** 提供的截图 67 | 68 | ### 大功告成! 69 | 70 | 那么恭喜你🎉,你已经成功刷入了带有SUSFS的基于一加官方源码编译的内核了,算是解决了KSU检测到Abnormal Environment这一最大痛点,好好享受玩机带来的乐趣吧!enjoy oneself!🎉 71 | 72 | ::: tip 73 | 本章部分文案来自[KernelSU文档](https://kernelsu.org/zh_CN/guide/installation.html)。 74 | ::: -------------------------------------------------------------------------------- /.github/workflows/Build-MKSU-SUSFS_OnePlus_SM7675.yml: -------------------------------------------------------------------------------- 1 | name: Build MKSU-SUSFS OnePlus sm7675 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | manifest_file: 7 | description: '选择设备型号' 8 | required: true 9 | type: choice 10 | options: 11 | - OnePlus Ace 3V 12 | - OnePlus Nord 4 13 | enable_lto: 14 | description: '启用 Full LTO' 15 | type: boolean 16 | default: false 17 | enable_polly: 18 | description: '启用 Polly' 19 | type: boolean 20 | default: false 21 | enable_o3: 22 | description: '启用 O3 优化' 23 | type: boolean 24 | default: false 25 | 26 | jobs: 27 | build: 28 | runs-on: ubuntu-latest 29 | 30 | steps: 31 | - uses: actions/checkout@main 32 | 33 | - uses: jlumbroso/free-disk-space@main 34 | with: 35 | tool-cache: true 36 | 37 | - uses: actions/setup-python@main 38 | with: 39 | python-version: "3.x" 40 | 41 | - name: Install dependencies and Clang 19 42 | run: | 43 | sudo apt-get update 44 | sudo apt-get install -y repo git curl patch lld 45 | sudo bash -c "echo 'deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main' > /etc/apt/sources.list.d/llvm.list" 46 | sudo bash -c "echo 'deb-src http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main' >> /etc/apt/sources.list.d/llvm.list" 47 | wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - 48 | sudo apt-get update 49 | sudo apt-get install -y clang-19 lld-19 llvm-19 50 | mkdir kernel_workspace 51 | 52 | - name: Map friendly name to manifest file 53 | id: map_manifest 54 | run: | 55 | case "${{ github.event.inputs.manifest_file }}" in 56 | "OnePlus Ace 3V") manifest="oneplus_ace_3v_v" ;; 57 | "OnePlus Nord 4") manifest="oneplus_nord_4_v" ;; 58 | esac 59 | echo "mapped_manifest=$manifest" >> $GITHUB_OUTPUT 60 | 61 | - name: Initialize repo and sync 62 | working-directory: kernel_workspace 63 | run: | 64 | repo init \ 65 | -u https://github.com/OnePlusOSS/kernel_manifest.git \ 66 | -b refs/heads/oneplus/sm7675 \ 67 | -m ${{ steps.map_manifest.outputs.mapped_manifest }}.xml \ 68 | --depth=1 --repo-rev=v2.16 69 | repo --trace sync -c -j$(nproc) --no-tags --fail-fast 70 | 71 | - name: Build Kernel 72 | working-directory: kernel_workspace 73 | id: build 74 | run: | 75 | curl -Ls https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/refs/heads/main/build_shell/build_mksu_sm7675.sh -o build_mksu_sm7675.sh 76 | chmod +x build_mksu_sm7675.sh 77 | ./build_mksu_sm7675.sh ${{ steps.map_manifest.outputs.mapped_manifest }} \ 78 | ${{ github.event.inputs.enable_lto }} \ 79 | ${{ github.event.inputs.enable_polly }} \ 80 | ${{ github.event.inputs.enable_o3 }} 81 | 82 | - name: Make AnyKernel3 83 | run: | 84 | git clone https://github.com/Kernel-SU/AnyKernel3 --depth=1 85 | rm -rf ./AnyKernel3/.git 86 | cp kernel_workspace/kernel_platform/out/msm-kernel-pineapple-gki/dist/Image ./AnyKernel3/ 87 | 88 | - name: Upload AnyKernel3 89 | uses: actions/upload-artifact@v4 90 | with: 91 | name: AnyKernel3-${{ steps.map_manifest.outputs.mapped_manifest }}-${{ steps.build.outputs.kernel_version }}-MKSU-${{ steps.build.outputs.ksu_version }}-SUSFS-${{ steps.build.outputs.susfs_version }} 92 | path: ./AnyKernel3/* 93 | -------------------------------------------------------------------------------- /.github/workflows/Build-MKSU-SUSFS_OnePlus_SM8650.yml: -------------------------------------------------------------------------------- 1 | name: Build MKSU-SUSFS OnePlus sm8650 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | manifest_file: 7 | description: '选择设备型号' 8 | required: true 9 | type: choice 10 | options: 11 | - OnePlus 12 12 | - OnePlus 13R 13 | - OnePlus Ace3 Pro 14 | - OnePlus Ace5 15 | - OnePlus Pad Pro 16 | enable_lto: 17 | description: '启用 Full LTO' 18 | type: boolean 19 | default: false 20 | enable_polly: 21 | description: '启用 Polly' 22 | type: boolean 23 | default: false 24 | enable_o3: 25 | description: '启用 O3 优化' 26 | type: boolean 27 | default: false 28 | 29 | jobs: 30 | build: 31 | runs-on: ubuntu-latest 32 | 33 | steps: 34 | - uses: actions/checkout@main 35 | 36 | - uses: jlumbroso/free-disk-space@main 37 | with: 38 | tool-cache: true 39 | 40 | - uses: actions/setup-python@main 41 | with: 42 | python-version: "3.x" 43 | 44 | - name: Install dependencies and Clang 19 45 | run: | 46 | sudo apt-get update 47 | sudo apt-get install -y repo git curl patch lld 48 | sudo bash -c "echo 'deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main' > /etc/apt/sources.list.d/llvm.list" 49 | sudo bash -c "echo 'deb-src http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main' >> /etc/apt/sources.list.d/llvm.list" 50 | wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - 51 | sudo apt-get update 52 | sudo apt-get install -y clang-19 lld-19 llvm-19 53 | mkdir kernel_workspace 54 | 55 | - name: Map friendly name to manifest file 56 | id: map_manifest 57 | run: | 58 | case "${{ github.event.inputs.manifest_file }}" in 59 | "OnePlus 12") manifest="oneplus12_v" ;; 60 | "OnePlus 13R") manifest="oneplus_13r" ;; 61 | "OnePlus Ace3 Pro") manifest="oneplus_ace3_pro_v" ;; 62 | "OnePlus Ace5") manifest="oneplus_ace5" ;; 63 | "OnePlus Pad Pro") manifest="oneplus_pad2_v" ;; 64 | esac 65 | echo "mapped_manifest=$manifest" >> $GITHUB_OUTPUT 66 | 67 | - name: Initialize repo and sync 68 | working-directory: kernel_workspace 69 | run: | 70 | repo init \ 71 | -u https://github.com/OnePlusOSS/kernel_manifest.git \ 72 | -b refs/heads/oneplus/sm8650 \ 73 | -m ${{ steps.map_manifest.outputs.mapped_manifest }}.xml \ 74 | --depth=1 --repo-rev=v2.16 75 | repo --trace sync -c -j$(nproc) --no-tags --fail-fast 76 | 77 | - name: Build Kernel 78 | working-directory: kernel_workspace 79 | id: build 80 | run: | 81 | curl -Ls https://raw.githubusercontent.com/mcxiaochenn/Action_OKI_KernelSU_SUSFS/refs/heads/main/build_shell/build_mksu_sm8650.sh -o build_mksu_sm8650.sh 82 | chmod +x build_mksu_sm8650.sh 83 | ./build_mksu_sm8650.sh ${{ steps.map_manifest.outputs.mapped_manifest }} \ 84 | ${{ github.event.inputs.enable_lto }} \ 85 | ${{ github.event.inputs.enable_polly }} \ 86 | ${{ github.event.inputs.enable_o3 }} 87 | 88 | - name: Make AnyKernel3 89 | run: | 90 | git clone https://github.com/Kernel-SU/AnyKernel3 --depth=1 91 | rm -rf ./AnyKernel3/.git 92 | cp kernel_workspace/kernel_platform/out/msm-kernel-pineapple-gki/dist/Image ./AnyKernel3/ 93 | 94 | - name: Upload AnyKernel3 95 | uses: actions/upload-artifact@v4 96 | with: 97 | name: AnyKernel3-${{ steps.map_manifest.outputs.mapped_manifest }}-${{ steps.build.outputs.kernel_version }}-MKSU-${{ steps.build.outputs.ksu_version }}-SUSFS-${{ steps.build.outputs.susfs_version }} 98 | path: ./AnyKernel3/* 99 | -------------------------------------------------------------------------------- /docs/guide/noroot-installation.md: -------------------------------------------------------------------------------- 1 | # 无root安装 {#noroot-installation} 2 | 3 | ::: warning 4 | 此教程为一加系设备定制,不一定具有通用型,请知晓! 5 | ::: 6 | 7 | ## 解锁Bootloader {#unlock-bootloader} 8 | 9 | 请确保你的手机已解锁bl,如果已经解锁可跳过此步骤。 10 | 11 | ::: warning 12 | 一加解锁Bootloader会导致数据清空,请注意备份!!! 13 | ::: 14 | 15 | ## 通过全能工具箱解锁(需要电脑) {#use-toolbox-unbl} 16 | 17 | 下载[大侠阿木](https://coolapk.com/u/%E5%A4%A7%E4%BE%A0%E9%98%BF%E6%9C%A8)的[一加全能工具箱](https://optool.daxiaamu.com/wiki_pctool)([蓝奏云](https://daxiaamu.lanzn.com/b03xkgs9a)、[百度云](https://pan.baidu.com/s/1GtTjrsccONw0ORFNtI03yg?pwd=dxam) 提取码均为dxam) 18 | 19 | 打开后使用该工具的解锁bootloader功能,按照操作指引做即可 20 | 21 | ## 通过adb命令行解锁(可选电脑) {#use-platform-tools} 22 | 23 | 查找你身边一切有USB接口的可联网便携式设备,包括的不限于:安卓手机、win电脑、mac电脑、linux电脑、鸿蒙电脑、甚至树莓派nas都可以 24 | 25 | ### 下载 platform-tools 工具 {#dl-platform-tools} 26 | 27 | ::: code-group 28 | ```sh [win] 29 | $ https://googledownloads.cn/android/repository/platform-tools-latest-windows.zip 30 | ``` 31 | 32 | ```sh [mac] 33 | $ https://googledownloads.cn/android/repository/platform-tools-latest-darwin.zip 34 | ``` 35 | 36 | ```sh [linux] 37 | $ https://googledownloads.cn/android/repository/platform-tools-latest-linux.zip 38 | ``` 39 | 40 | ```sh [android] 41 | $ 可使用甲壳虫ADB助手 42 | ``` 43 | ::: 44 | 45 | ### 打开开发者选项 {#open-kfzxx} 46 | 47 | 设置 – 关于手机 – 版本信息 – 连击 版本号(开启 **开发者选项**) 48 | 49 | ![开发者选项](./pictures/noroot-installation/开发者选项.jpg) 50 | 51 | ### 开启OEM解锁和USB调试 {#open-oem-usb} 52 | 53 | 设置 – 其他设置(系统设置)- 开发者选项 – 开启 **OEM解锁**、**USB调试** 54 | 55 | ![开启OEM解锁和USB调试](./pictures/noroot-installation/开启OEM解锁和USB调试.jpg) 56 | 57 | ### 正式开始解锁 {#start-unlock-bl} 58 | 59 | 手机插入电脑,选择**传输文件**模式,解压[上面步骤](#dl-platform-tools)下载的**platform-tools**工具 60 | 61 | 在解压出来的文件夹中打开**CMD** or **终端** 62 | 63 | 输入下面的命令 进入**Bootloader**模式 64 | 65 | ```sh 66 | adb reboot bootloader 67 | ``` 68 | 69 | 进入**Bootloader**模式,再输入解锁命令 70 | 71 | ```sh 72 | fastboot flashing unlock 73 | ``` 74 | 75 | :::warning 76 | 这是你最后的机会,如果你发现你还有重要资料没备份,那你现在后悔还来得及,请立刻长按电源键10秒重启回系统 77 | ::: 78 | 79 | 手机选择 **UNLOCK THE BOOTLOADER** 80 | 81 | ::: tip 82 | 音量键选择,电源键确定 83 | ::: 84 | 85 | ![手机确认解锁](./pictures/noroot-installation/手机确认解锁.jpg) 86 | 87 | ### 解锁完成! {#unlock-bl-ok} 88 | 89 | 开机有黄字警告,就是解锁完成了(第一次开机会有点慢) 90 | 91 | ## 获取root权限 {#give-root} 92 | 93 | 时至今日,root管理器五花八门,有什么KernelSU、MKSU、SukiSU-Ultra、Alpha、Apatch等等等,受限篇幅,此处只讲[MKSU](#give-mksu-root)与[Alpha](#获取root权限-alpha篇)的安装方式 94 | 95 | ## 获取root权限(MKSU篇) {#give-mksu-root} 96 | 97 | 大致思路:下载管理器 -> 提取boot -> 修补boot -> fastboot刷入修补后的boot 98 | 99 | ### 下载MKSU管理器 100 | 101 | 因为MKSU管理器目前不发布稳定构建,需要去GitHub Actions下载,故需要一个GitHub账号,受限篇幅此处不多讲,继续观看本教程即默认你有且已登录GitHub。 102 | 103 | [点此跳转](https://github.com/5ec1cff/KernelSU/actions/workflows/build-manager.yml)点击最新的一个成功构建选择**manager**下载 104 | 105 | ![v1](./pictures/noroot-installation/dl-MKSU/1.png) 106 | 107 | ![v2](./pictures/noroot-installation/dl-MKSU/2.png) 108 | 109 | 下载完成后解压并安装里面的安装包即可 110 | 111 | ### 提取boot分区镜像 112 | 113 | 首先根据机型不同,修补使用**boot**或**init_boot**并不是绝对的,推荐先打开管理器查看是推荐选择boot分区镜像还是init_boot分区镜像 114 | 115 | ### 提取boot分区镜像(免全量下载法) 116 | 117 | 目前有方法不用下载完整系统包即可提取镜像文件了 118 | 119 | 手机下载安装 [Payload-Dumper-Compose](https://github.com/rcmiku/Payload-Dumper-Compose/releases) 120 | 121 | ROM 去 [Magisk中文网](https://magiskcn.com/roms.html) 找([本站备份镜像](roms)),**注意**一定要和手机**系统版本一致**的系统包,**复制下载链接** 122 | 123 | 链接 – 粘贴**系统包下载链接** – 解析 124 | 125 | ![Payload-Dumper-Compose](./pictures/noroot-installation/Payload-Dumper-Compose.jpg) 126 | 127 | 解析成功可以看到所有分区,下载自己需要的 img 即可 128 | 129 | 文件管理**Download/Payload Dumper**可以看到提取的img 130 | 131 | ------------------------------------------ 132 | 133 | ### 提取boot分区镜像(全量法) 134 | 135 | ROM 去 [Magisk中文网](https://magiskcn.com/roms.html) 找([本站备份镜像](roms)),**注意**一定要和手机**系统版本一致**的系统包,**复制下载链接** 136 | 137 | 下载完解压系统包只需要 **payload.bin** 文件 138 | 139 | 下载并解压解包工具[payload-dumper-go](https://mrzzoxo.lanzoue.com/b02plgdpi) 140 | 141 | 复制 **payload.bin** 文件进 **payload-dumper-go** 文件夹里面 142 | 143 | 复制 payload.bin 到 payload-dumper-go 144 | ![复制payload.bin到payload-dumper-go](./pictures/noroot-installation/复制payload.bin到payload-dumper-go.jpg) 145 | 146 | 打开 CMD 命令行 147 | ![打开CMD命令行](./pictures/noroot-installation/打开CMD命令行.jpg) 148 | 149 | 按照提示输入 b或i 150 | ![按照提示输入b或i](./pictures/noroot-installation/按照提示输入b和i.jpg) 151 | 152 | 打开 **img** 文件夹 可以看到提取的 **boot.img**/**init_boot.img** 153 | 154 | ### 修补内核镜像 155 | 156 | 打开MKSU 157 | 158 | 安装 – 选择 **boot.img** – 开始修补 – 修补完成 159 | 160 | 修补生成的文件 **kernelsu_patched-xxx.img** 在 **Download** 目录 161 | 162 | ![修补boot.img](./pictures/noroot-installation/修补boot.img.jpg) 163 | 164 | ### 刷入内核镜像 165 | 166 | 打开 [下载platform-tools工具](#dl-platform-tools)步骤中下载的工具 167 | 168 | 手机插电脑,打开**传输文件**模式,打开 **Download** 目录,把 **kernelsu_patched-xxx.img** 复制到电脑 **platform-tools工具** 文件夹中 169 | 170 | 手机进入 **Bootloader** 模式 171 | 172 | ```sh 173 | adb reboot bootloader 174 | ``` 175 | 176 | 手机进入bootloader模式后,输入下面的刷入命令 177 | 178 | ::: code-group 179 | ```sh [boot刷入命令] 180 | fastboot flash boot kernelsu_patched-xxx.img 181 | ``` 182 | ```sh [init_boot刷入命令] 183 | fastboot flash init_boot kernelsu_patched-xxx.img 184 | ``` 185 | ::: 186 | 187 | ::: tip 188 | **kernelsu_patched-xxx.img**每次修补生成的名字都不一样,使用的时候请输入生成的名字 189 | ::: 190 | 191 | 显示 ***OKAY*** 就是成功刷入了。再使用下面的指令重启手机 192 | 193 | ```sh 194 | fastboot reboot 195 | ``` 196 | 197 | 显示 **工作中 LKM** 成功刷入 MKSU 198 | 199 | ![工作中LKM](./pictures/noroot-installation/工作中LKM.jpg) 200 | 201 | ### 至此MKSU安装成功 202 | 203 | ## 获取root权限(Alpha篇) 204 | 咕咕咕...... -------------------------------------------------------------------------------- /.github/workflows/Build-SukiSU-OnePlus_13.yml: -------------------------------------------------------------------------------- 1 | name: Build OnePlus Kernel Image by SukiSU from OnePlus 13 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | CPU: 6 | description: "分支" 7 | required: true 8 | default: 'sm8750' 9 | FEIL: 10 | description: "配置文件" 11 | required: true 12 | default: 'oneplus_13' 13 | CPUD: 14 | description: "处理器代号" 15 | required: true 16 | default: 'sun' 17 | ANDROID_VERSION: 18 | description: "内核安卓版本" 19 | required: true 20 | default: 'android15' 21 | KERNEL_VERSION: 22 | description: "内核版本" 23 | required: true 24 | default: '6.6' 25 | KERNEL_NAME: 26 | description: "修改内核名称" 27 | required: true 28 | default: '-build-by-xiaochen-no.350234' 29 | kernelsu_variant: 30 | description: "选择 KSU" 31 | required: true 32 | type: choice 33 | options: 34 | - SukiSU 35 | - SukiSU-Ultra 36 | default: SukiSU-Ultra 37 | kernelsu_version: 38 | description: "选择 KSU 版本" 39 | required: true 40 | type: choice 41 | options: 42 | - tag 43 | - main 44 | default: main 45 | SUSFS_ENABLED: 46 | description: "添加 SUSFS" 47 | required: true 48 | type: boolean 49 | default: true 50 | VFS_patch_ENABLED: 51 | description: "添加 vfs 补丁(新钩子)?" 52 | required: true 53 | type: choice 54 | options: 55 | - enable 56 | - disable 57 | default: disable 58 | jobs: 59 | build: 60 | runs-on: ubuntu-latest 61 | 62 | steps: 63 | - name: Maximize build space 64 | uses: easimon/maximize-build-space@master 65 | with: 66 | root-reserve-mb: 8192 67 | temp-reserve-mb: 2048 68 | swap-size-mb: 8192 69 | remove-dotnet: 'true' 70 | remove-android: 'true' 71 | remove-haskell: 'true' 72 | remove-codeql: 'true' 73 | 74 | - name: Configure Git 75 | run: | 76 | git config --global user.name "mcxiaochenn" 77 | git config --global user.email "mcxiaochenn.yyds@gmail.com" 78 | 79 | - name: Install dependencies 80 | run: | 81 | sudo apt update && sudo apt upgrade -y 82 | sudo apt install -y python3 git curl 83 | 84 | - name: Install repo tool 85 | run: | 86 | curl https://storage.googleapis.com/git-repo-downloads/repo > ~/repo 87 | chmod a+x ~/repo 88 | sudo mv ~/repo /usr/local/bin/repo 89 | 90 | - name: Initialize repo and sync 91 | run: | 92 | mkdir kernel_workspace && cd kernel_workspace 93 | repo init -u https://github.com/OnePlusOSS/kernel_manifest.git -b refs/heads/oneplus/${{ github.event.inputs.CPU }} -m ${{ github.event.inputs.FEIL }}.xml --depth=1 94 | repo sync 95 | rm kernel_platform/common/android/abi_gki_protected_exports_* || echo "No protected exports!" 96 | rm kernel_platform/msm-kernel/android/abi_gki_protected_exports_* || echo "No protected exports!" 97 | sed -i 's/ -dirty//g' kernel_platform/common/scripts/setlocalversion 98 | sed -i 's/ -dirty//g' kernel_platform/msm-kernel/scripts/setlocalversion 99 | sed -i 's/ -dirty//g' kernel_platform/external/dtc/scripts/setlocalversion 100 | 101 | - name: SukiSU-Ultra & SukiSU version 102 | if: ${{ github.event.inputs.kernelsu_variant == 'SukiSU-Ultra' || github.event.inputs.kernelsu_variant == 'SukiSU' }} 103 | run: | 104 | if [[ "${{ github.event.inputs.kernelsu_version }}" == "tag" ]]; then 105 | echo "BRANCH=-" >> $GITHUB_ENV 106 | elif [[ "${{ github.event.inputs.kernelsu_version }}" == "main" ]]; then 107 | echo "BRANCH=-s susfs-dev" >> $GITHUB_ENV 108 | fi 109 | 110 | - name: Add SukiSU-Ultra 111 | if: ${{ github.event.inputs.kernelsu_variant == 'SukiSU-Ultra' }} 112 | run: | 113 | cd kernel_workspace/kernel_platform 114 | curl -LSs "https://raw.githubusercontent.com/ShirkNeko/SukiSU-Ultra/main/kernel/setup.sh" | bash ${{ env.BRANCH }} 115 | cd ./KernelSU 116 | KSU_VERSION=$(expr $(/usr/bin/git rev-list --count main) "+" 10606) 117 | echo "KSUVER=$KSU_VERSION" >> $GITHUB_ENV 118 | export KSU_VERSION=$KSU_VERSION 119 | sed -i "s/DKSU_VERSION=12800/DKSU_VERSION=${KSU_VERSION}/" kernel/Makefile 120 | 121 | - name: Add SukiSU 122 | if: ${{ github.event.inputs.kernelsu_variant == 'SukiSU' }} 123 | run: | 124 | cd kernel_workspace/kernel_platform 125 | curl -LSs "https://raw.githubusercontent.com/ShirkNeko/KernelSU/main/kernel/setup.sh" | bash ${{ env.BRANCH }} 126 | cd ./KernelSU 127 | KSU_VERSION=$(expr $(/usr/bin/git rev-list --count main) "+" 10606) 128 | echo "KSUVER=$KSU_VERSION" >> $GITHUB_ENV 129 | export KSU_VERSION=$KSU_VERSION 130 | sed -i "s/DKSU_VERSION=16/DKSU_VERSION=${KSU_VERSION}/" kernel/Makefile 131 | 132 | - name: Apply SUSFS Patches SukiSU 133 | if: ${{ github.event.inputs.SUSFS_ENABLED == 'true' }} 134 | run: | 135 | cd kernel_workspace 136 | git clone https://gitlab.com/simonpunk/susfs4ksu.git -b gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }} 137 | git clone https://github.com/ShirkNeko/SukiSU_patch.git 138 | cd kernel_platform 139 | 140 | # Copy SUSFS patches 141 | cp ../susfs4ksu/kernel_patches/50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch ./common/ 142 | cp ../susfs4ksu/kernel_patches/fs/* ./common/fs/ 143 | cp ../susfs4ksu/kernel_patches/include/linux/* ./common/include/linux/ 144 | 145 | #lz4k 146 | #cp -r ../SukiSU_patch/other/lz4k/include/linux/* ./common/include/linux 147 | #cp -r ../SukiSU_patch/other/lz4k/lib/* ./common/lib 148 | #cp -r ../SukiSU_patch/other/lz4k/crypto/* ./common/crypto 149 | 150 | echo "正在给内核打susfs补丁" 151 | cd ./common 152 | patch -p1 < 50_add_susfs_in_gki-${{ github.event.inputs.ANDROID_VERSION }}-${{ github.event.inputs.KERNEL_VERSION }}.patch || true 153 | echo "完成" 154 | 155 | - name: Apply Hide Stuff Patches 156 | if: ${{ github.event.inputs.SUSFS_ENABLED == 'true' }} 157 | run: | 158 | cd kernel_workspace/kernel_platform/common 159 | cp ../../SukiSU_patch/69_hide_stuff.patch ./ 160 | echo "正在打隐藏应用补丁" 161 | patch -p1 -F 3 < 69_hide_stuff.patch 162 | 163 | - name: Apply New Hooks Patches 164 | if: ${{ github.event.inputs.VFS_patch_ENABLED == 'enable' }} 165 | run: | 166 | cd kernel_workspace/kernel_platform/common 167 | cp ../../SukiSU_patch/hooks/syscall_hooks.patch ./ 168 | echo "正在打vfs补丁" 169 | patch -p1 -F 3 < syscall_hooks.patch 170 | echo "完成" 171 | 172 | # cp ../../SukiSU_patch/other/lz4k_patch/${{ github.event.inputs.KERNEL_VERSION }}/lz4kd.patch ./ 173 | # patch -p1 -F 3 < lz4kd.patch || true 174 | 175 | - name: Add SUSFS Configuration Settings 176 | run: | 177 | cd kernel_workspace/kernel_platform 178 | # Add KSU configuration settings 179 | echo "CONFIG_KSU=y" >> ./common/arch/arm64/configs/gki_defconfig 180 | 181 | if [[ "${{ github.event.inputs.kernelsu_variant }}" == "SukiSU-Ultra" ]]; then 182 | echo "CONFIG_KPM=y" >> ./common/arch/arm64/configs/gki_defconfig 183 | fi 184 | 185 | # Add VFS configuration settings 186 | if [[ "${{ github.event.inputs.VFS_patch_ENABLED }}" == 'enable' ]]; then 187 | echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> ./common/arch/arm64/configs/gki_defconfig 188 | echo "CONFIG_KSU_MANUAL_HOOK=y" >> ./common/arch/arm64/configs/gki_defconfig 189 | else 190 | echo "CONFIG_KSU_SUSFS_SUS_SU=y" >> ./common/arch/arm64/configs/gki_defconfig 191 | fi 192 | 193 | # Add SUSFS configuration settings 194 | echo "CONFIG_KSU_SUSFS=y" >> ./common/arch/arm64/configs/gki_defconfig 195 | echo "CONFIG_KSU_SUSFS_HAS_MAGIC_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 196 | echo "CONFIG_KSU_SUSFS_SUS_PATH=y" >> ./common/arch/arm64/configs/gki_defconfig 197 | echo "CONFIG_KSU_SUSFS_SUS_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 198 | echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_KSU_DEFAULT_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 199 | echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_BIND_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 200 | echo "CONFIG_KSU_SUSFS_SUS_KSTAT=y" >> ./common/arch/arm64/configs/gki_defconfig 201 | echo "CONFIG_KSU_SUSFS_SUS_OVERLAYFS=n" >> ./common/arch/arm64/configs/gki_defconfig 202 | echo "CONFIG_KSU_SUSFS_TRY_UMOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 203 | echo "CONFIG_KSU_SUSFS_AUTO_ADD_TRY_UMOUNT_FOR_BIND_MOUNT=y" >> ./common/arch/arm64/configs/gki_defconfig 204 | echo "CONFIG_KSU_SUSFS_SPOOF_UNAME=y" >> ./common/arch/arm64/configs/gki_defconfig 205 | echo "CONFIG_KSU_SUSFS_ENABLE_LOG=y" >> ./common/arch/arm64/configs/gki_defconfig 206 | echo "CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y" >> ./common/arch/arm64/configs/gki_defconfig 207 | echo "CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y" >> ./common/arch/arm64/configs/gki_defconfig 208 | echo "CONFIG_KSU_SUSFS_OPEN_REDIRECT=y" >> ./common/arch/arm64/configs/gki_defconfig 209 | 210 | #if [ "${{ github.event.inputs.KERNEL_VERSION }}" = "5.10" ]; then 211 | # echo "CONFIG_ZSMALLOC=y" >> ./common/arch/arm64/configs/gki_defconfig 212 | # echo "CONFIG_ZRAM=y" >> ./common/arch/arm64/configs/gki_defconfig 213 | # echo "CONFIG_MODULE_SIG=n" >> ./common/arch/arm64/configs/gki_defconfig 214 | # echo "CONFIG_CRYPTO_LZO=y" >> ./common/arch/arm64/configs/gki_defconfig 215 | # echo "CONFIG_ZRAM_DEF_COMP_LZ4KD=y" >> ./common/arch/arm64/configs/gki_defconfig 216 | #fi 217 | 218 | #if [ "${{ github.event.inputs.KERNEL_VERSION }}" != "6.6" ] && [ "${{ github.event.inputs.KERNEL_VERSION }}" != "5.10" ]; then 219 | # sed -i 's/CONFIG_MODULE_SIG=y/CONFIG_MODULE_SIG=n/g' ./common/arch/arm64/configs/gki_defconfig 220 | # sed -i 's/CONFIG_ZSMALLOC=m/CONFIG_ZSMALLOC=y/g' ./common/arch/arm64/configs/gki_defconfig 221 | # sed -i 's/CONFIG_ZRAM=m/CONFIG_ZRAM=y/g' ./common/arch/arm64/configs/gki_defconfig 222 | #fi 223 | 224 | #if [ "${{ github.event.inputs.KERNEL_VERSION }}" = "6.6" ]; then 225 | # echo "CONFIG_ZSMALLOC=y" >> ./common/arch/arm64/configs/gki_defconfig 226 | # sed -i 's/CONFIG_ZRAM=m/CONFIG_ZRAM=y/g' ./common/arch/arm64/configs/gki_defconfig 227 | #fi 228 | 229 | #if grep -q "CONFIG_ZSMALLOC=y" ./common/arch/arm64/configs/gki_defconfig && grep -q "CONFIG_ZRAM=y" ./common/arch/arm64/configs/gki_defconfig; then 230 | # echo "CONFIG_CRYPTO_LZ4HC=y" >> ./common/arch/arm64/configs/gki_defconfig 231 | # echo "CONFIG_CRYPTO_LZ4K=y" >> ./common/arch/arm64/configs/gki_defconfig 232 | # echo "CONFIG_CRYPTO_LZ4KD=y" >> ./common/arch/arm64/configs/gki_defconfig 233 | # echo "CONFIG_CRYPTO_842=y" >> ./common/arch/arm64/configs/gki_defconfig 234 | #fi 235 | 236 | # Remove check_defconfig 237 | sed -i 's/check_defconfig//' ./common/build.config.gki 238 | 239 | - name: Add make name 240 | run: | 241 | cd kernel_workspace/kernel_platform 242 | if [[ "${{ github.event.inputs.KERNEL_VERSION }}" == "6.1" || "${{ github.event.inputs.KERNEL_VERSION }}" == "6.6" ]]; then 243 | sed -i "/stable_scmversion_cmd/s/-maybe-dirty//g" ./build/kernel/kleaf/impl/stamp.bzl 244 | fi 245 | sed -i '$s|echo "\$res"|echo "\${{ github.event.inputs.KERNEL_NAME }}"|' ./common/scripts/setlocalversion 246 | 247 | - name: Build kernel 248 | run: | 249 | cd kernel_workspace 250 | if [[ "${{ github.event.inputs.KERNEL_VERSION }}" == "6.1" || "${{ github.event.inputs.KERNEL_VERSION }}" == "6.6" ]]; then 251 | ./kernel_platform/build_with_bazel.py -t ${{ github.event.inputs.CPUD }} gki --action_env=KSU_VERSION 252 | else 253 | LTO=thin ./kernel_platform/oplus/build/oplus_build_kernel.sh ${{ github.event.inputs.CPUD }} gki 254 | fi 255 | 256 | - name: Make AnyKernel3 257 | run: | 258 | git clone https://github.com/Kernel-SU/AnyKernel3 --depth=1 259 | rm -rf ./AnyKernel3/.git 260 | dir1="./kernel_workspace/kernel_platform/out/msm-kernel-${{ github.event.inputs.CPUD }}-gki/dist/" 261 | dir2="./kernel_workspace/kernel_platform/common/out/arch/arm64/boot/" 262 | dir3="./kernel_workspace/kernel_platform/out/msm-${{ github.event.inputs.CPUD }}-${{ github.event.inputs.CPUD }}-gki/dist/" 263 | target1="./AnyKernel3/" 264 | target2="./kernel_workspace/kernel" 265 | 266 | if find "$dir1" -name "Image" | grep -q "Image"; then 267 | image_path="$dir1"Image 268 | elif find "$dir2" -name "Image" | grep -q "Image"; then 269 | image_path="$dir2"Image 270 | elif find "$dir3" -name "Image" | grep -q "Image"; then 271 | image_path="$dir3"Image 272 | else 273 | image_path=$(find "./kernel_workspace/kernel_platform/common/out/" -name "Image" | head -n 1) 274 | fi 275 | 276 | if [ -n "$image_path" ] && [ -f "$image_path" ]; then 277 | mkdir -p "$dir1" 278 | if [ "$(realpath "$image_path")" != "$(realpath "$dir1"Image)" ]; then 279 | cp "$image_path" "$dir1" 280 | else 281 | echo "源文件与目标相同,跳过复制" 282 | fi 283 | else 284 | echo "未找到 Image 文件,构建可能失败" 285 | exit 1 286 | fi 287 | 288 | - name: Apply patch_linux and replace Image 289 | if: ${{ github.event.inputs.kernelsu_variant == 'SukiSU-Ultra' }} 290 | run: | 291 | cd kernel_workspace/kernel_platform/out/msm-kernel-${{ github.event.inputs.CPUD }}-gki/dist 292 | curl -LO https://github.com/ShirkNeko/SukiSU_KernelPatch_patch/releases/download/0.11-beta/patch_linux 293 | chmod +x patch_linux 294 | ./patch_linux 295 | rm -f Image 296 | mv oImage Image 297 | cp Image $GITHUB_WORKSPACE/AnyKernel3/Image 298 | cp Image $GITHUB_WORKSPACE/kernel_workspace/kernel 299 | 300 | - name: Reproduction of documents 301 | if: ${{ github.event.inputs.kernelsu_variant == 'SukiSU' }} 302 | run: | 303 | cd kernel_workspace/kernel_platform/out/msm-kernel-${{ github.event.inputs.CPUD }}-gki/dist 304 | cp Image $GITHUB_WORKSPACE/AnyKernel3/Image 305 | cp Image $GITHUB_WORKSPACE/kernel_workspace/kernel 306 | 307 | - name: Upload AnyKernel3 308 | uses: actions/upload-artifact@v4 309 | with: 310 | name: AnyKernel3_KernelSU_${{ env.KSUVER }}_${{ github.event.inputs.FEIL }} 311 | path: ./AnyKernel3/* 312 | 313 | - name: Upload Image 314 | uses: actions/upload-artifact@v4 315 | with: 316 | name: Image_KernelSU_${{ env.KSUVER }}_${{ github.event.inputs.FEIL }} 317 | path: kernel_workspace/kernel -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@algolia/autocomplete-core@1.17.7": 6 | version "1.17.7" 7 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz#2c410baa94a47c5c5f56ed712bb4a00ebe24088b" 8 | integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== 9 | dependencies: 10 | "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" 11 | "@algolia/autocomplete-shared" "1.17.7" 12 | 13 | "@algolia/autocomplete-plugin-algolia-insights@1.17.7": 14 | version "1.17.7" 15 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz#7d2b105f84e7dd8f0370aa4c4ab3b704e6760d82" 16 | integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== 17 | dependencies: 18 | "@algolia/autocomplete-shared" "1.17.7" 19 | 20 | "@algolia/autocomplete-preset-algolia@1.17.7": 21 | version "1.17.7" 22 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz#c9badc0d73d62db5bf565d839d94ec0034680ae9" 23 | integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== 24 | dependencies: 25 | "@algolia/autocomplete-shared" "1.17.7" 26 | 27 | "@algolia/autocomplete-shared@1.17.7": 28 | version "1.17.7" 29 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz#105e84ad9d1a31d3fb86ba20dc890eefe1a313a0" 30 | integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== 31 | 32 | "@algolia/client-abtesting@5.25.0": 33 | version "5.25.0" 34 | resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.25.0.tgz#012204f1614e1a71366fb1e117c8f195186ff081" 35 | integrity sha512-1pfQulNUYNf1Tk/svbfjfkLBS36zsuph6m+B6gDkPEivFmso/XnRgwDvjAx80WNtiHnmeNjIXdF7Gos8+OLHqQ== 36 | dependencies: 37 | "@algolia/client-common" "5.25.0" 38 | "@algolia/requester-browser-xhr" "5.25.0" 39 | "@algolia/requester-fetch" "5.25.0" 40 | "@algolia/requester-node-http" "5.25.0" 41 | 42 | "@algolia/client-analytics@5.25.0": 43 | version "5.25.0" 44 | resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.25.0.tgz#eba015bfafb3dbb82712c9160a00717a5974ff71" 45 | integrity sha512-AFbG6VDJX/o2vDd9hqncj1B6B4Tulk61mY0pzTtzKClyTDlNP0xaUiEKhl6E7KO9I/x0FJF5tDCm0Hn6v5x18A== 46 | dependencies: 47 | "@algolia/client-common" "5.25.0" 48 | "@algolia/requester-browser-xhr" "5.25.0" 49 | "@algolia/requester-fetch" "5.25.0" 50 | "@algolia/requester-node-http" "5.25.0" 51 | 52 | "@algolia/client-common@5.25.0": 53 | version "5.25.0" 54 | resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.25.0.tgz#2def8947efe849266057d92f67d1b8d83de0c005" 55 | integrity sha512-il1zS/+Rc6la6RaCdSZ2YbJnkQC6W1wiBO8+SH+DE6CPMWBU6iDVzH0sCKSAtMWl9WBxoN6MhNjGBnCv9Yy2bA== 56 | 57 | "@algolia/client-insights@5.25.0": 58 | version "5.25.0" 59 | resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.25.0.tgz#b87df8614b96c4cc9c9aa7765cce07fa70864fa8" 60 | integrity sha512-blbjrUH1siZNfyCGeq0iLQu00w3a4fBXm0WRIM0V8alcAPo7rWjLbMJMrfBtzL9X5ic6wgxVpDADXduGtdrnkw== 61 | dependencies: 62 | "@algolia/client-common" "5.25.0" 63 | "@algolia/requester-browser-xhr" "5.25.0" 64 | "@algolia/requester-fetch" "5.25.0" 65 | "@algolia/requester-node-http" "5.25.0" 66 | 67 | "@algolia/client-personalization@5.25.0": 68 | version "5.25.0" 69 | resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.25.0.tgz#74b041f0e7d91e1009c131c8d716c34e4d45c30f" 70 | integrity sha512-aywoEuu1NxChBcHZ1pWaat0Plw7A8jDMwjgRJ00Mcl7wGlwuPt5dJ/LTNcg3McsEUbs2MBNmw0ignXBw9Tbgow== 71 | dependencies: 72 | "@algolia/client-common" "5.25.0" 73 | "@algolia/requester-browser-xhr" "5.25.0" 74 | "@algolia/requester-fetch" "5.25.0" 75 | "@algolia/requester-node-http" "5.25.0" 76 | 77 | "@algolia/client-query-suggestions@5.25.0": 78 | version "5.25.0" 79 | resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.25.0.tgz#e92d935d9e2994f790d43c64d3518d81070a3888" 80 | integrity sha512-a/W2z6XWKjKjIW1QQQV8PTTj1TXtaKx79uR3NGBdBdGvVdt24KzGAaN7sCr5oP8DW4D3cJt44wp2OY/fZcPAVA== 81 | dependencies: 82 | "@algolia/client-common" "5.25.0" 83 | "@algolia/requester-browser-xhr" "5.25.0" 84 | "@algolia/requester-fetch" "5.25.0" 85 | "@algolia/requester-node-http" "5.25.0" 86 | 87 | "@algolia/client-search@5.25.0": 88 | version "5.25.0" 89 | resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.25.0.tgz#dc38ca1015f2f4c9f5053a4517f96fb28a2117f8" 90 | integrity sha512-9rUYcMIBOrCtYiLX49djyzxqdK9Dya/6Z/8sebPn94BekT+KLOpaZCuc6s0Fpfq7nx5J6YY5LIVFQrtioK9u0g== 91 | dependencies: 92 | "@algolia/client-common" "5.25.0" 93 | "@algolia/requester-browser-xhr" "5.25.0" 94 | "@algolia/requester-fetch" "5.25.0" 95 | "@algolia/requester-node-http" "5.25.0" 96 | 97 | "@algolia/ingestion@1.25.0": 98 | version "1.25.0" 99 | resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.25.0.tgz#4d13c56dda0a05c7bacb0e3ef5866292dfd86ed5" 100 | integrity sha512-jJeH/Hk+k17Vkokf02lkfYE4A+EJX+UgnMhTLR/Mb+d1ya5WhE+po8p5a/Nxb6lo9OLCRl6w3Hmk1TX1e9gVbQ== 101 | dependencies: 102 | "@algolia/client-common" "5.25.0" 103 | "@algolia/requester-browser-xhr" "5.25.0" 104 | "@algolia/requester-fetch" "5.25.0" 105 | "@algolia/requester-node-http" "5.25.0" 106 | 107 | "@algolia/monitoring@1.25.0": 108 | version "1.25.0" 109 | resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.25.0.tgz#d59360cfe556338519d05a9d8107147e9dbcb020" 110 | integrity sha512-Ls3i1AehJ0C6xaHe7kK9vPmzImOn5zBg7Kzj8tRYIcmCWVyuuFwCIsbuIIz/qzUf1FPSWmw0TZrGeTumk2fqXg== 111 | dependencies: 112 | "@algolia/client-common" "5.25.0" 113 | "@algolia/requester-browser-xhr" "5.25.0" 114 | "@algolia/requester-fetch" "5.25.0" 115 | "@algolia/requester-node-http" "5.25.0" 116 | 117 | "@algolia/recommend@5.25.0": 118 | version "5.25.0" 119 | resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.25.0.tgz#b96f12c85aa74a0326982c7801fcd4a610b420f4" 120 | integrity sha512-79sMdHpiRLXVxSjgw7Pt4R1aNUHxFLHiaTDnN2MQjHwJ1+o3wSseb55T9VXU4kqy3m7TUme3pyRhLk5ip/S4Mw== 121 | dependencies: 122 | "@algolia/client-common" "5.25.0" 123 | "@algolia/requester-browser-xhr" "5.25.0" 124 | "@algolia/requester-fetch" "5.25.0" 125 | "@algolia/requester-node-http" "5.25.0" 126 | 127 | "@algolia/requester-browser-xhr@5.25.0": 128 | version "5.25.0" 129 | resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.25.0.tgz#c194fa5f49206b9343e6646c41bfbca2a3f2ac54" 130 | integrity sha512-JLaF23p1SOPBmfEqozUAgKHQrGl3z/Z5RHbggBu6s07QqXXcazEsub5VLonCxGVqTv6a61AAPr8J1G5HgGGjEw== 131 | dependencies: 132 | "@algolia/client-common" "5.25.0" 133 | 134 | "@algolia/requester-fetch@5.25.0": 135 | version "5.25.0" 136 | resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.25.0.tgz#231a2d0da2397d141f80b8f28e2cb6e3d219d38d" 137 | integrity sha512-rtzXwqzFi1edkOF6sXxq+HhmRKDy7tz84u0o5t1fXwz0cwx+cjpmxu/6OQKTdOJFS92JUYHsG51Iunie7xbqfQ== 138 | dependencies: 139 | "@algolia/client-common" "5.25.0" 140 | 141 | "@algolia/requester-node-http@5.25.0": 142 | version "5.25.0" 143 | resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.25.0.tgz#0ce13c550890de21c558b04381535d2d245a3725" 144 | integrity sha512-ZO0UKvDyEFvyeJQX0gmZDQEvhLZ2X10K+ps6hViMo1HgE2V8em00SwNsQ+7E/52a+YiBkVWX61pJJJE44juDMQ== 145 | dependencies: 146 | "@algolia/client-common" "5.25.0" 147 | 148 | "@babel/helper-string-parser@^7.27.1": 149 | version "7.27.1" 150 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" 151 | integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== 152 | 153 | "@babel/helper-validator-identifier@^7.27.1": 154 | version "7.27.1" 155 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" 156 | integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== 157 | 158 | "@babel/parser@^7.27.2": 159 | version "7.27.2" 160 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" 161 | integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== 162 | dependencies: 163 | "@babel/types" "^7.27.1" 164 | 165 | "@babel/types@^7.27.1": 166 | version "7.27.1" 167 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" 168 | integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== 169 | dependencies: 170 | "@babel/helper-string-parser" "^7.27.1" 171 | "@babel/helper-validator-identifier" "^7.27.1" 172 | 173 | "@docsearch/css@3.8.2": 174 | version "3.8.2" 175 | resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.2.tgz#7973ceb6892c30f154ba254cd05c562257a44977" 176 | integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== 177 | 178 | "@docsearch/js@3.8.2": 179 | version "3.8.2" 180 | resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.8.2.tgz#bdcfc9837700eb38453b88e211ab5cc5a3813cc6" 181 | integrity sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ== 182 | dependencies: 183 | "@docsearch/react" "3.8.2" 184 | preact "^10.0.0" 185 | 186 | "@docsearch/react@3.8.2": 187 | version "3.8.2" 188 | resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.2.tgz#7b11d39b61c976c0aa9fbde66e6b73b30f3acd42" 189 | integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== 190 | dependencies: 191 | "@algolia/autocomplete-core" "1.17.7" 192 | "@algolia/autocomplete-preset-algolia" "1.17.7" 193 | "@docsearch/css" "3.8.2" 194 | algoliasearch "^5.14.2" 195 | 196 | "@esbuild/aix-ppc64@0.21.5": 197 | version "0.21.5" 198 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" 199 | integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== 200 | 201 | "@esbuild/android-arm64@0.21.5": 202 | version "0.21.5" 203 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" 204 | integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== 205 | 206 | "@esbuild/android-arm@0.21.5": 207 | version "0.21.5" 208 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" 209 | integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== 210 | 211 | "@esbuild/android-x64@0.21.5": 212 | version "0.21.5" 213 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" 214 | integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== 215 | 216 | "@esbuild/darwin-arm64@0.21.5": 217 | version "0.21.5" 218 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" 219 | integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== 220 | 221 | "@esbuild/darwin-x64@0.21.5": 222 | version "0.21.5" 223 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" 224 | integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== 225 | 226 | "@esbuild/freebsd-arm64@0.21.5": 227 | version "0.21.5" 228 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" 229 | integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== 230 | 231 | "@esbuild/freebsd-x64@0.21.5": 232 | version "0.21.5" 233 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" 234 | integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== 235 | 236 | "@esbuild/linux-arm64@0.21.5": 237 | version "0.21.5" 238 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" 239 | integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== 240 | 241 | "@esbuild/linux-arm@0.21.5": 242 | version "0.21.5" 243 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" 244 | integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== 245 | 246 | "@esbuild/linux-ia32@0.21.5": 247 | version "0.21.5" 248 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" 249 | integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== 250 | 251 | "@esbuild/linux-loong64@0.21.5": 252 | version "0.21.5" 253 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" 254 | integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== 255 | 256 | "@esbuild/linux-mips64el@0.21.5": 257 | version "0.21.5" 258 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" 259 | integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== 260 | 261 | "@esbuild/linux-ppc64@0.21.5": 262 | version "0.21.5" 263 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" 264 | integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== 265 | 266 | "@esbuild/linux-riscv64@0.21.5": 267 | version "0.21.5" 268 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" 269 | integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== 270 | 271 | "@esbuild/linux-s390x@0.21.5": 272 | version "0.21.5" 273 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" 274 | integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== 275 | 276 | "@esbuild/linux-x64@0.21.5": 277 | version "0.21.5" 278 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" 279 | integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== 280 | 281 | "@esbuild/netbsd-x64@0.21.5": 282 | version "0.21.5" 283 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" 284 | integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== 285 | 286 | "@esbuild/openbsd-x64@0.21.5": 287 | version "0.21.5" 288 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" 289 | integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== 290 | 291 | "@esbuild/sunos-x64@0.21.5": 292 | version "0.21.5" 293 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" 294 | integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== 295 | 296 | "@esbuild/win32-arm64@0.21.5": 297 | version "0.21.5" 298 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" 299 | integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== 300 | 301 | "@esbuild/win32-ia32@0.21.5": 302 | version "0.21.5" 303 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" 304 | integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== 305 | 306 | "@esbuild/win32-x64@0.21.5": 307 | version "0.21.5" 308 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" 309 | integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== 310 | 311 | "@iconify-json/simple-icons@^1.2.21": 312 | version "1.2.34" 313 | resolved "https://registry.yarnpkg.com/@iconify-json/simple-icons/-/simple-icons-1.2.34.tgz#9333f1afd0ff0ad98ad9299660b326e1ac037397" 314 | integrity sha512-1FRWEA94hSl5zmBogRh6lQL36l7bVTfrl0n5+QJ+WmXmw70RccPT5phqeiSynwo3IhUWKoW2LiajyUMeweXW8g== 315 | dependencies: 316 | "@iconify/types" "*" 317 | 318 | "@iconify/types@*": 319 | version "2.0.0" 320 | resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" 321 | integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== 322 | 323 | "@jridgewell/sourcemap-codec@^1.5.0": 324 | version "1.5.0" 325 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 326 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 327 | 328 | "@rollup/rollup-android-arm-eabi@4.41.0": 329 | version "4.41.0" 330 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz#9145b38faf3fbfe3ec557130110e772f797335aa" 331 | integrity sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A== 332 | 333 | "@rollup/rollup-android-arm64@4.41.0": 334 | version "4.41.0" 335 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz#d73d641c59e9d7827e5ce0af9dfbc168b95cce0f" 336 | integrity sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ== 337 | 338 | "@rollup/rollup-darwin-arm64@4.41.0": 339 | version "4.41.0" 340 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz#45d9d71d941117c98e7a5e77f60f0bc682d27e82" 341 | integrity sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw== 342 | 343 | "@rollup/rollup-darwin-x64@4.41.0": 344 | version "4.41.0" 345 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz#8d72fb5f81714cb43e90f263fb1674520cce3f2a" 346 | integrity sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ== 347 | 348 | "@rollup/rollup-freebsd-arm64@4.41.0": 349 | version "4.41.0" 350 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz#a52b58852c9cec9255e382a2f335b08bc8c6111d" 351 | integrity sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg== 352 | 353 | "@rollup/rollup-freebsd-x64@4.41.0": 354 | version "4.41.0" 355 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz#104511dc64612789ddda41d164ab07cdac84a6c1" 356 | integrity sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg== 357 | 358 | "@rollup/rollup-linux-arm-gnueabihf@4.41.0": 359 | version "4.41.0" 360 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz#643e3ad19c93903201fde89abd76baaee725e6c2" 361 | integrity sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA== 362 | 363 | "@rollup/rollup-linux-arm-musleabihf@4.41.0": 364 | version "4.41.0" 365 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz#fdc6a595aec7b20c5bfdac81412028c56d734e63" 366 | integrity sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg== 367 | 368 | "@rollup/rollup-linux-arm64-gnu@4.41.0": 369 | version "4.41.0" 370 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz#c28620bcd385496bdbbc24920b21f9fcca9ecbfa" 371 | integrity sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw== 372 | 373 | "@rollup/rollup-linux-arm64-musl@4.41.0": 374 | version "4.41.0" 375 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz#a6b71b1e8fa33bac9f65b6f879e8ed878035d120" 376 | integrity sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ== 377 | 378 | "@rollup/rollup-linux-loongarch64-gnu@4.41.0": 379 | version "4.41.0" 380 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz#b06374601ce865a1110324b2f06db574d3a1b0e1" 381 | integrity sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w== 382 | 383 | "@rollup/rollup-linux-powerpc64le-gnu@4.41.0": 384 | version "4.41.0" 385 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz#8a2a1f6058c920889c2aff3753a20fead7a8cc26" 386 | integrity sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg== 387 | 388 | "@rollup/rollup-linux-riscv64-gnu@4.41.0": 389 | version "4.41.0" 390 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz#8ef6f680d011b95a2f6546c6c31a37a33138035f" 391 | integrity sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A== 392 | 393 | "@rollup/rollup-linux-riscv64-musl@4.41.0": 394 | version "4.41.0" 395 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz#9f4884c5955a7cd39b396f6e27aa59b3269988eb" 396 | integrity sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A== 397 | 398 | "@rollup/rollup-linux-s390x-gnu@4.41.0": 399 | version "4.41.0" 400 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz#5619303cc51994e3df404a497f42c79dc5efd6eb" 401 | integrity sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw== 402 | 403 | "@rollup/rollup-linux-x64-gnu@4.41.0": 404 | version "4.41.0" 405 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz#c3e42b66c04e25ad0f2a00beec42ede96ccc8983" 406 | integrity sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ== 407 | 408 | "@rollup/rollup-linux-x64-musl@4.41.0": 409 | version "4.41.0" 410 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz#8d3452de42aa72fc5fc3e5ad1eb0b68030742a25" 411 | integrity sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg== 412 | 413 | "@rollup/rollup-win32-arm64-msvc@4.41.0": 414 | version "4.41.0" 415 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz#3b7bbd9f43f1c380061f306abce6f3f64de20306" 416 | integrity sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg== 417 | 418 | "@rollup/rollup-win32-ia32-msvc@4.41.0": 419 | version "4.41.0" 420 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz#e27ef5c40bbec49fac3d4e4b1618fbe4597b40e5" 421 | integrity sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ== 422 | 423 | "@rollup/rollup-win32-x64-msvc@4.41.0": 424 | version "4.41.0" 425 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz#b0b595ad4720259bbb81600750d26a655cac06be" 426 | integrity sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA== 427 | 428 | "@shikijs/core@2.5.0", "@shikijs/core@^2.1.0": 429 | version "2.5.0" 430 | resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-2.5.0.tgz#e14d33961dfa3141393d4a76fc8923d0d1c4b62f" 431 | integrity sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg== 432 | dependencies: 433 | "@shikijs/engine-javascript" "2.5.0" 434 | "@shikijs/engine-oniguruma" "2.5.0" 435 | "@shikijs/types" "2.5.0" 436 | "@shikijs/vscode-textmate" "^10.0.2" 437 | "@types/hast" "^3.0.4" 438 | hast-util-to-html "^9.0.4" 439 | 440 | "@shikijs/engine-javascript@2.5.0": 441 | version "2.5.0" 442 | resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz#e045c6ecfbda6c99137547b0a482e0b87f1053fc" 443 | integrity sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w== 444 | dependencies: 445 | "@shikijs/types" "2.5.0" 446 | "@shikijs/vscode-textmate" "^10.0.2" 447 | oniguruma-to-es "^3.1.0" 448 | 449 | "@shikijs/engine-oniguruma@2.5.0": 450 | version "2.5.0" 451 | resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz#230de5693cc1da6c9d59c7ad83593c2027274817" 452 | integrity sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw== 453 | dependencies: 454 | "@shikijs/types" "2.5.0" 455 | "@shikijs/vscode-textmate" "^10.0.2" 456 | 457 | "@shikijs/langs@2.5.0": 458 | version "2.5.0" 459 | resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-2.5.0.tgz#97ab50c495922cc1ca06e192985b28dc73de5d50" 460 | integrity sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w== 461 | dependencies: 462 | "@shikijs/types" "2.5.0" 463 | 464 | "@shikijs/themes@2.5.0": 465 | version "2.5.0" 466 | resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-2.5.0.tgz#8c6aecf73f5455681c8bec15797cf678162896cb" 467 | integrity sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw== 468 | dependencies: 469 | "@shikijs/types" "2.5.0" 470 | 471 | "@shikijs/transformers@^2.1.0": 472 | version "2.5.0" 473 | resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-2.5.0.tgz#190c84786ff06c417580ab79177338a947168c55" 474 | integrity sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg== 475 | dependencies: 476 | "@shikijs/core" "2.5.0" 477 | "@shikijs/types" "2.5.0" 478 | 479 | "@shikijs/types@2.5.0", "@shikijs/types@^2.1.0": 480 | version "2.5.0" 481 | resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-2.5.0.tgz#e949c7384802703a48b9d6425dd41673c164df69" 482 | integrity sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw== 483 | dependencies: 484 | "@shikijs/vscode-textmate" "^10.0.2" 485 | "@types/hast" "^3.0.4" 486 | 487 | "@shikijs/vscode-textmate@^10.0.2": 488 | version "10.0.2" 489 | resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" 490 | integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== 491 | 492 | "@types/estree@1.0.7": 493 | version "1.0.7" 494 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" 495 | integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== 496 | 497 | "@types/hast@^3.0.0", "@types/hast@^3.0.4": 498 | version "3.0.4" 499 | resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" 500 | integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== 501 | dependencies: 502 | "@types/unist" "*" 503 | 504 | "@types/linkify-it@^5": 505 | version "5.0.0" 506 | resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" 507 | integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== 508 | 509 | "@types/markdown-it@^14.1.2": 510 | version "14.1.2" 511 | resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" 512 | integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== 513 | dependencies: 514 | "@types/linkify-it" "^5" 515 | "@types/mdurl" "^2" 516 | 517 | "@types/mdast@^4.0.0": 518 | version "4.0.4" 519 | resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" 520 | integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== 521 | dependencies: 522 | "@types/unist" "*" 523 | 524 | "@types/mdurl@^2": 525 | version "2.0.0" 526 | resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" 527 | integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== 528 | 529 | "@types/unist@*", "@types/unist@^3.0.0": 530 | version "3.0.3" 531 | resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" 532 | integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== 533 | 534 | "@types/web-bluetooth@^0.0.21": 535 | version "0.0.21" 536 | resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" 537 | integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== 538 | 539 | "@ungap/structured-clone@^1.0.0": 540 | version "1.3.0" 541 | resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" 542 | integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== 543 | 544 | "@vitejs/plugin-vue@^5.2.1": 545 | version "5.2.4" 546 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8" 547 | integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== 548 | 549 | "@vue/compiler-core@3.5.14": 550 | version "3.5.14" 551 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.14.tgz#3676685c04c48a5b4a5515b3b2842e98342c555c" 552 | integrity sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA== 553 | dependencies: 554 | "@babel/parser" "^7.27.2" 555 | "@vue/shared" "3.5.14" 556 | entities "^4.5.0" 557 | estree-walker "^2.0.2" 558 | source-map-js "^1.2.1" 559 | 560 | "@vue/compiler-dom@3.5.14": 561 | version "3.5.14" 562 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.14.tgz#bbf27421f80f7b8873000edceecd817c4abf438a" 563 | integrity sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug== 564 | dependencies: 565 | "@vue/compiler-core" "3.5.14" 566 | "@vue/shared" "3.5.14" 567 | 568 | "@vue/compiler-sfc@3.5.14": 569 | version "3.5.14" 570 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.14.tgz#fc3db30a1c744139d41bb57bb451d783415fce4b" 571 | integrity sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA== 572 | dependencies: 573 | "@babel/parser" "^7.27.2" 574 | "@vue/compiler-core" "3.5.14" 575 | "@vue/compiler-dom" "3.5.14" 576 | "@vue/compiler-ssr" "3.5.14" 577 | "@vue/shared" "3.5.14" 578 | estree-walker "^2.0.2" 579 | magic-string "^0.30.17" 580 | postcss "^8.5.3" 581 | source-map-js "^1.2.1" 582 | 583 | "@vue/compiler-ssr@3.5.14": 584 | version "3.5.14" 585 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.14.tgz#013174ee6bbf3ee291a6df247a3feb6eb43d808b" 586 | integrity sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q== 587 | dependencies: 588 | "@vue/compiler-dom" "3.5.14" 589 | "@vue/shared" "3.5.14" 590 | 591 | "@vue/devtools-api@^7.7.0": 592 | version "7.7.6" 593 | resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.7.6.tgz#4af5dbc77bcc8543f0a8e6f029f598ed978d6c7d" 594 | integrity sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw== 595 | dependencies: 596 | "@vue/devtools-kit" "^7.7.6" 597 | 598 | "@vue/devtools-kit@^7.7.6": 599 | version "7.7.6" 600 | resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.7.6.tgz#3d9cbe2378a65ed7c4baa77ecc0f7ecdfd185fbb" 601 | integrity sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA== 602 | dependencies: 603 | "@vue/devtools-shared" "^7.7.6" 604 | birpc "^2.3.0" 605 | hookable "^5.5.3" 606 | mitt "^3.0.1" 607 | perfect-debounce "^1.0.0" 608 | speakingurl "^14.0.1" 609 | superjson "^2.2.2" 610 | 611 | "@vue/devtools-shared@^7.7.6": 612 | version "7.7.6" 613 | resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.7.6.tgz#5da2218df61b605b7b88e725241fc6640df0e4b5" 614 | integrity sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA== 615 | dependencies: 616 | rfdc "^1.4.1" 617 | 618 | "@vue/reactivity@3.5.14": 619 | version "3.5.14" 620 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.14.tgz#814fb4ba84a9560d2752b9982fdd2b76e4a5e5a3" 621 | integrity sha512-7cK1Hp343Fu/SUCCO52vCabjvsYu7ZkOqyYu7bXV9P2yyfjUMUXHZafEbq244sP7gf+EZEz+77QixBTuEqkQQw== 622 | dependencies: 623 | "@vue/shared" "3.5.14" 624 | 625 | "@vue/runtime-core@3.5.14": 626 | version "3.5.14" 627 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.14.tgz#f4084cad032be3452d8f137035fcd93c182f7149" 628 | integrity sha512-w9JWEANwHXNgieAhxPpEpJa+0V5G0hz3NmjAZwlOebtfKyp2hKxKF0+qSh0Xs6/PhfGihuSdqMprMVcQU/E6ag== 629 | dependencies: 630 | "@vue/reactivity" "3.5.14" 631 | "@vue/shared" "3.5.14" 632 | 633 | "@vue/runtime-dom@3.5.14": 634 | version "3.5.14" 635 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.14.tgz#59ea4a5fe3ed93fb8f725c1c722a0fe8d8ae16cf" 636 | integrity sha512-lCfR++IakeI35TVR80QgOelsUIdcKjd65rWAMfdSlCYnaEY5t3hYwru7vvcWaqmrK+LpI7ZDDYiGU5V3xjMacw== 637 | dependencies: 638 | "@vue/reactivity" "3.5.14" 639 | "@vue/runtime-core" "3.5.14" 640 | "@vue/shared" "3.5.14" 641 | csstype "^3.1.3" 642 | 643 | "@vue/server-renderer@3.5.14": 644 | version "3.5.14" 645 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.14.tgz#adcaf30ddcf0064a28ce832d29f430bd0db3ef18" 646 | integrity sha512-Rf/ISLqokIvcySIYnv3tNWq40PLpNLDLSJwwVWzG6MNtyIhfbcrAxo5ZL9nARJhqjZyWWa40oRb2IDuejeuv6w== 647 | dependencies: 648 | "@vue/compiler-ssr" "3.5.14" 649 | "@vue/shared" "3.5.14" 650 | 651 | "@vue/shared@3.5.14", "@vue/shared@^3.5.13": 652 | version "3.5.14" 653 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.14.tgz#8fcdc6c69661a1163c173cafb6129c3f8ad01122" 654 | integrity sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ== 655 | 656 | "@vueuse/core@12.8.2", "@vueuse/core@^12.4.0": 657 | version "12.8.2" 658 | resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-12.8.2.tgz#007c6dd29a7d1f6933e916e7a2f8ef3c3f968eaa" 659 | integrity sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ== 660 | dependencies: 661 | "@types/web-bluetooth" "^0.0.21" 662 | "@vueuse/metadata" "12.8.2" 663 | "@vueuse/shared" "12.8.2" 664 | vue "^3.5.13" 665 | 666 | "@vueuse/integrations@^12.4.0": 667 | version "12.8.2" 668 | resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-12.8.2.tgz#d04f33d86fe985c9a27c98addcfde9f30f2db1df" 669 | integrity sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g== 670 | dependencies: 671 | "@vueuse/core" "12.8.2" 672 | "@vueuse/shared" "12.8.2" 673 | vue "^3.5.13" 674 | 675 | "@vueuse/metadata@12.8.2": 676 | version "12.8.2" 677 | resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-12.8.2.tgz#6cb3a4e97cdcf528329eebc1bda73cd7f64318d3" 678 | integrity sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A== 679 | 680 | "@vueuse/shared@12.8.2": 681 | version "12.8.2" 682 | resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-12.8.2.tgz#b9e4611d0603629c8e151f982459da394e22f930" 683 | integrity sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w== 684 | dependencies: 685 | vue "^3.5.13" 686 | 687 | algoliasearch@^5.14.2: 688 | version "5.25.0" 689 | resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.25.0.tgz#7337b097deadeca0e6e985c0f8724abea189994f" 690 | integrity sha512-n73BVorL4HIwKlfJKb4SEzAYkR3Buwfwbh+MYxg2mloFph2fFGV58E90QTzdbfzWrLn4HE5Czx/WTjI8fcHaMg== 691 | dependencies: 692 | "@algolia/client-abtesting" "5.25.0" 693 | "@algolia/client-analytics" "5.25.0" 694 | "@algolia/client-common" "5.25.0" 695 | "@algolia/client-insights" "5.25.0" 696 | "@algolia/client-personalization" "5.25.0" 697 | "@algolia/client-query-suggestions" "5.25.0" 698 | "@algolia/client-search" "5.25.0" 699 | "@algolia/ingestion" "1.25.0" 700 | "@algolia/monitoring" "1.25.0" 701 | "@algolia/recommend" "5.25.0" 702 | "@algolia/requester-browser-xhr" "5.25.0" 703 | "@algolia/requester-fetch" "5.25.0" 704 | "@algolia/requester-node-http" "5.25.0" 705 | 706 | birpc@^2.3.0: 707 | version "2.3.0" 708 | resolved "https://registry.yarnpkg.com/birpc/-/birpc-2.3.0.tgz#e5a402dc785ef952a2383ef3cfc075e0842f3e8c" 709 | integrity sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g== 710 | 711 | ccount@^2.0.0: 712 | version "2.0.1" 713 | resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" 714 | integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== 715 | 716 | character-entities-html4@^2.0.0: 717 | version "2.1.0" 718 | resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" 719 | integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== 720 | 721 | character-entities-legacy@^3.0.0: 722 | version "3.0.0" 723 | resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" 724 | integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== 725 | 726 | comma-separated-tokens@^2.0.0: 727 | version "2.0.3" 728 | resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" 729 | integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== 730 | 731 | copy-anything@^3.0.2: 732 | version "3.0.5" 733 | resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" 734 | integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== 735 | dependencies: 736 | is-what "^4.1.8" 737 | 738 | csstype@^3.1.3: 739 | version "3.1.3" 740 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" 741 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== 742 | 743 | dequal@^2.0.0: 744 | version "2.0.3" 745 | resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" 746 | integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== 747 | 748 | devlop@^1.0.0: 749 | version "1.1.0" 750 | resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" 751 | integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== 752 | dependencies: 753 | dequal "^2.0.0" 754 | 755 | emoji-regex-xs@^1.0.0: 756 | version "1.0.0" 757 | resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" 758 | integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== 759 | 760 | entities@^4.5.0: 761 | version "4.5.0" 762 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" 763 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 764 | 765 | esbuild@^0.21.3: 766 | version "0.21.5" 767 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" 768 | integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== 769 | optionalDependencies: 770 | "@esbuild/aix-ppc64" "0.21.5" 771 | "@esbuild/android-arm" "0.21.5" 772 | "@esbuild/android-arm64" "0.21.5" 773 | "@esbuild/android-x64" "0.21.5" 774 | "@esbuild/darwin-arm64" "0.21.5" 775 | "@esbuild/darwin-x64" "0.21.5" 776 | "@esbuild/freebsd-arm64" "0.21.5" 777 | "@esbuild/freebsd-x64" "0.21.5" 778 | "@esbuild/linux-arm" "0.21.5" 779 | "@esbuild/linux-arm64" "0.21.5" 780 | "@esbuild/linux-ia32" "0.21.5" 781 | "@esbuild/linux-loong64" "0.21.5" 782 | "@esbuild/linux-mips64el" "0.21.5" 783 | "@esbuild/linux-ppc64" "0.21.5" 784 | "@esbuild/linux-riscv64" "0.21.5" 785 | "@esbuild/linux-s390x" "0.21.5" 786 | "@esbuild/linux-x64" "0.21.5" 787 | "@esbuild/netbsd-x64" "0.21.5" 788 | "@esbuild/openbsd-x64" "0.21.5" 789 | "@esbuild/sunos-x64" "0.21.5" 790 | "@esbuild/win32-arm64" "0.21.5" 791 | "@esbuild/win32-ia32" "0.21.5" 792 | "@esbuild/win32-x64" "0.21.5" 793 | 794 | estree-walker@^2.0.2: 795 | version "2.0.2" 796 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 797 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 798 | 799 | focus-trap@^7.6.4: 800 | version "7.6.4" 801 | resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.4.tgz#455ec5c51fee5ae99604ca15142409ffbbf84db9" 802 | integrity sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw== 803 | dependencies: 804 | tabbable "^6.2.0" 805 | 806 | fsevents@~2.3.2, fsevents@~2.3.3: 807 | version "2.3.3" 808 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 809 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 810 | 811 | hast-util-to-html@^9.0.4: 812 | version "9.0.5" 813 | resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" 814 | integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== 815 | dependencies: 816 | "@types/hast" "^3.0.0" 817 | "@types/unist" "^3.0.0" 818 | ccount "^2.0.0" 819 | comma-separated-tokens "^2.0.0" 820 | hast-util-whitespace "^3.0.0" 821 | html-void-elements "^3.0.0" 822 | mdast-util-to-hast "^13.0.0" 823 | property-information "^7.0.0" 824 | space-separated-tokens "^2.0.0" 825 | stringify-entities "^4.0.0" 826 | zwitch "^2.0.4" 827 | 828 | hast-util-whitespace@^3.0.0: 829 | version "3.0.0" 830 | resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" 831 | integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== 832 | dependencies: 833 | "@types/hast" "^3.0.0" 834 | 835 | hookable@^5.5.3: 836 | version "5.5.3" 837 | resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" 838 | integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== 839 | 840 | html-void-elements@^3.0.0: 841 | version "3.0.0" 842 | resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" 843 | integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== 844 | 845 | is-what@^4.1.8: 846 | version "4.1.16" 847 | resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" 848 | integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== 849 | 850 | magic-string@^0.30.17: 851 | version "0.30.17" 852 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" 853 | integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== 854 | dependencies: 855 | "@jridgewell/sourcemap-codec" "^1.5.0" 856 | 857 | mark.js@8.11.1: 858 | version "8.11.1" 859 | resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" 860 | integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== 861 | 862 | mdast-util-to-hast@^13.0.0: 863 | version "13.2.0" 864 | resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" 865 | integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== 866 | dependencies: 867 | "@types/hast" "^3.0.0" 868 | "@types/mdast" "^4.0.0" 869 | "@ungap/structured-clone" "^1.0.0" 870 | devlop "^1.0.0" 871 | micromark-util-sanitize-uri "^2.0.0" 872 | trim-lines "^3.0.0" 873 | unist-util-position "^5.0.0" 874 | unist-util-visit "^5.0.0" 875 | vfile "^6.0.0" 876 | 877 | micromark-util-character@^2.0.0: 878 | version "2.1.1" 879 | resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" 880 | integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== 881 | dependencies: 882 | micromark-util-symbol "^2.0.0" 883 | micromark-util-types "^2.0.0" 884 | 885 | micromark-util-encode@^2.0.0: 886 | version "2.0.1" 887 | resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" 888 | integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== 889 | 890 | micromark-util-sanitize-uri@^2.0.0: 891 | version "2.0.1" 892 | resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" 893 | integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== 894 | dependencies: 895 | micromark-util-character "^2.0.0" 896 | micromark-util-encode "^2.0.0" 897 | micromark-util-symbol "^2.0.0" 898 | 899 | micromark-util-symbol@^2.0.0: 900 | version "2.0.1" 901 | resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" 902 | integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== 903 | 904 | micromark-util-types@^2.0.0: 905 | version "2.0.2" 906 | resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" 907 | integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== 908 | 909 | minisearch@^7.1.1: 910 | version "7.1.2" 911 | resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.2.tgz#296ee8d1906cc378f7e57a3a71f07e5205a75df5" 912 | integrity sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA== 913 | 914 | mitt@^3.0.1: 915 | version "3.0.1" 916 | resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" 917 | integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== 918 | 919 | nanoid@^3.3.8: 920 | version "3.3.11" 921 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" 922 | integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== 923 | 924 | oniguruma-to-es@^3.1.0: 925 | version "3.1.1" 926 | resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz#480e4bac4d3bc9439ac0d2124f0725e7a0d76d17" 927 | integrity sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ== 928 | dependencies: 929 | emoji-regex-xs "^1.0.0" 930 | regex "^6.0.1" 931 | regex-recursion "^6.0.2" 932 | 933 | perfect-debounce@^1.0.0: 934 | version "1.0.0" 935 | resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" 936 | integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== 937 | 938 | picocolors@^1.1.1: 939 | version "1.1.1" 940 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" 941 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 942 | 943 | postcss@^8.4.43, postcss@^8.5.3: 944 | version "8.5.3" 945 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" 946 | integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== 947 | dependencies: 948 | nanoid "^3.3.8" 949 | picocolors "^1.1.1" 950 | source-map-js "^1.2.1" 951 | 952 | preact@^10.0.0: 953 | version "10.26.6" 954 | resolved "https://registry.yarnpkg.com/preact/-/preact-10.26.6.tgz#388963cc4aa15fceafd65c17fbeddc395fdb0ceb" 955 | integrity sha512-5SRRBinwpwkaD+OqlBDeITlRgvd8I8QlxHJw9AxSdMNV6O+LodN9nUyYGpSF7sadHjs6RzeFShMexC6DbtWr9g== 956 | 957 | property-information@^7.0.0: 958 | version "7.1.0" 959 | resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" 960 | integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== 961 | 962 | regex-recursion@^6.0.2: 963 | version "6.0.2" 964 | resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-6.0.2.tgz#a0b1977a74c87f073377b938dbedfab2ea582b33" 965 | integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== 966 | dependencies: 967 | regex-utilities "^2.3.0" 968 | 969 | regex-utilities@^2.3.0: 970 | version "2.3.0" 971 | resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" 972 | integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== 973 | 974 | regex@^6.0.1: 975 | version "6.0.1" 976 | resolved "https://registry.yarnpkg.com/regex/-/regex-6.0.1.tgz#282fa4435d0c700b09c0eb0982b602e05ab6a34f" 977 | integrity sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA== 978 | dependencies: 979 | regex-utilities "^2.3.0" 980 | 981 | rfdc@^1.4.1: 982 | version "1.4.1" 983 | resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" 984 | integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== 985 | 986 | rollup@^4.20.0: 987 | version "4.41.0" 988 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.41.0.tgz#17476835d2967759e3ffebe5823ed15fc4b7d13e" 989 | integrity sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg== 990 | dependencies: 991 | "@types/estree" "1.0.7" 992 | optionalDependencies: 993 | "@rollup/rollup-android-arm-eabi" "4.41.0" 994 | "@rollup/rollup-android-arm64" "4.41.0" 995 | "@rollup/rollup-darwin-arm64" "4.41.0" 996 | "@rollup/rollup-darwin-x64" "4.41.0" 997 | "@rollup/rollup-freebsd-arm64" "4.41.0" 998 | "@rollup/rollup-freebsd-x64" "4.41.0" 999 | "@rollup/rollup-linux-arm-gnueabihf" "4.41.0" 1000 | "@rollup/rollup-linux-arm-musleabihf" "4.41.0" 1001 | "@rollup/rollup-linux-arm64-gnu" "4.41.0" 1002 | "@rollup/rollup-linux-arm64-musl" "4.41.0" 1003 | "@rollup/rollup-linux-loongarch64-gnu" "4.41.0" 1004 | "@rollup/rollup-linux-powerpc64le-gnu" "4.41.0" 1005 | "@rollup/rollup-linux-riscv64-gnu" "4.41.0" 1006 | "@rollup/rollup-linux-riscv64-musl" "4.41.0" 1007 | "@rollup/rollup-linux-s390x-gnu" "4.41.0" 1008 | "@rollup/rollup-linux-x64-gnu" "4.41.0" 1009 | "@rollup/rollup-linux-x64-musl" "4.41.0" 1010 | "@rollup/rollup-win32-arm64-msvc" "4.41.0" 1011 | "@rollup/rollup-win32-ia32-msvc" "4.41.0" 1012 | "@rollup/rollup-win32-x64-msvc" "4.41.0" 1013 | fsevents "~2.3.2" 1014 | 1015 | shiki@^2.1.0: 1016 | version "2.5.0" 1017 | resolved "https://registry.yarnpkg.com/shiki/-/shiki-2.5.0.tgz#09d01ebf3b0b06580431ce3ddc023320442cf223" 1018 | integrity sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ== 1019 | dependencies: 1020 | "@shikijs/core" "2.5.0" 1021 | "@shikijs/engine-javascript" "2.5.0" 1022 | "@shikijs/engine-oniguruma" "2.5.0" 1023 | "@shikijs/langs" "2.5.0" 1024 | "@shikijs/themes" "2.5.0" 1025 | "@shikijs/types" "2.5.0" 1026 | "@shikijs/vscode-textmate" "^10.0.2" 1027 | "@types/hast" "^3.0.4" 1028 | 1029 | source-map-js@^1.2.1: 1030 | version "1.2.1" 1031 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" 1032 | integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== 1033 | 1034 | space-separated-tokens@^2.0.0: 1035 | version "2.0.2" 1036 | resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" 1037 | integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== 1038 | 1039 | speakingurl@^14.0.1: 1040 | version "14.0.1" 1041 | resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" 1042 | integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== 1043 | 1044 | stringify-entities@^4.0.0: 1045 | version "4.0.4" 1046 | resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" 1047 | integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== 1048 | dependencies: 1049 | character-entities-html4 "^2.0.0" 1050 | character-entities-legacy "^3.0.0" 1051 | 1052 | superjson@^2.2.2: 1053 | version "2.2.2" 1054 | resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.2.tgz#9d52bf0bf6b5751a3c3472f1292e714782ba3173" 1055 | integrity sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q== 1056 | dependencies: 1057 | copy-anything "^3.0.2" 1058 | 1059 | tabbable@^6.2.0: 1060 | version "6.2.0" 1061 | resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" 1062 | integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== 1063 | 1064 | trim-lines@^3.0.0: 1065 | version "3.0.1" 1066 | resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" 1067 | integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== 1068 | 1069 | unist-util-is@^6.0.0: 1070 | version "6.0.0" 1071 | resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" 1072 | integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== 1073 | dependencies: 1074 | "@types/unist" "^3.0.0" 1075 | 1076 | unist-util-position@^5.0.0: 1077 | version "5.0.0" 1078 | resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" 1079 | integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== 1080 | dependencies: 1081 | "@types/unist" "^3.0.0" 1082 | 1083 | unist-util-stringify-position@^4.0.0: 1084 | version "4.0.0" 1085 | resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" 1086 | integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== 1087 | dependencies: 1088 | "@types/unist" "^3.0.0" 1089 | 1090 | unist-util-visit-parents@^6.0.0: 1091 | version "6.0.1" 1092 | resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" 1093 | integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== 1094 | dependencies: 1095 | "@types/unist" "^3.0.0" 1096 | unist-util-is "^6.0.0" 1097 | 1098 | unist-util-visit@^5.0.0: 1099 | version "5.0.0" 1100 | resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" 1101 | integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== 1102 | dependencies: 1103 | "@types/unist" "^3.0.0" 1104 | unist-util-is "^6.0.0" 1105 | unist-util-visit-parents "^6.0.0" 1106 | 1107 | vfile-message@^4.0.0: 1108 | version "4.0.2" 1109 | resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" 1110 | integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== 1111 | dependencies: 1112 | "@types/unist" "^3.0.0" 1113 | unist-util-stringify-position "^4.0.0" 1114 | 1115 | vfile@^6.0.0: 1116 | version "6.0.3" 1117 | resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" 1118 | integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== 1119 | dependencies: 1120 | "@types/unist" "^3.0.0" 1121 | vfile-message "^4.0.0" 1122 | 1123 | vite@^5.4.14: 1124 | version "5.4.19" 1125 | resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.19.tgz#20efd060410044b3ed555049418a5e7d1998f959" 1126 | integrity sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA== 1127 | dependencies: 1128 | esbuild "^0.21.3" 1129 | postcss "^8.4.43" 1130 | rollup "^4.20.0" 1131 | optionalDependencies: 1132 | fsevents "~2.3.3" 1133 | 1134 | vitepress@^1.6.3: 1135 | version "1.6.3" 1136 | resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.6.3.tgz#4e4662ce2ad55ef64604ecf4f96231a8da2fe9ba" 1137 | integrity sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw== 1138 | dependencies: 1139 | "@docsearch/css" "3.8.2" 1140 | "@docsearch/js" "3.8.2" 1141 | "@iconify-json/simple-icons" "^1.2.21" 1142 | "@shikijs/core" "^2.1.0" 1143 | "@shikijs/transformers" "^2.1.0" 1144 | "@shikijs/types" "^2.1.0" 1145 | "@types/markdown-it" "^14.1.2" 1146 | "@vitejs/plugin-vue" "^5.2.1" 1147 | "@vue/devtools-api" "^7.7.0" 1148 | "@vue/shared" "^3.5.13" 1149 | "@vueuse/core" "^12.4.0" 1150 | "@vueuse/integrations" "^12.4.0" 1151 | focus-trap "^7.6.4" 1152 | mark.js "8.11.1" 1153 | minisearch "^7.1.1" 1154 | shiki "^2.1.0" 1155 | vite "^5.4.14" 1156 | vue "^3.5.13" 1157 | 1158 | vue@^3.5.13: 1159 | version "3.5.14" 1160 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.14.tgz#0ddf16d20cc20adaedfb5e77bca64c488bf5ee27" 1161 | integrity sha512-LbOm50/vZFG6Mhy6KscQYXZMQ0LMCC/y40HDJPPvGFQ+i/lUH+PJHR6C3assgOQiXdl6tAfsXHbXYVBZZu65ew== 1162 | dependencies: 1163 | "@vue/compiler-dom" "3.5.14" 1164 | "@vue/compiler-sfc" "3.5.14" 1165 | "@vue/runtime-dom" "3.5.14" 1166 | "@vue/server-renderer" "3.5.14" 1167 | "@vue/shared" "3.5.14" 1168 | 1169 | zwitch@^2.0.4: 1170 | version "2.0.4" 1171 | resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" 1172 | integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== 1173 | --------------------------------------------------------------------------------