[
  {
    "path": ".gitattributes",
    "content": "*.* linguist-language=Go"
  },
  {
    "path": ".gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\nrelayports\nlucky\n# Test binary, built with `go test -c`\n*.test\n\n.goreleaser.yaml\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n*.log\n*.upx\n*.pem\n*.crt\n*.key\nlucky.conf\n\n# Dependency directories (remove the comment below to include it)\n# vendor/\n/dist/\nconfig.json\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM scratch\nCOPY lucky /\nEXPOSE 16601\nWORKDIR /goodluck\nENTRYPOINT [\"/lucky\"]\nCMD [\"-c\", \"/goodluck/lucky.conf\"]"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 gdy , 272288813@qq.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# Lucky(万吉)\n \n 本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助\n [亚洲最佳CDN、边缘和安全解决方案 - Tencent EdgeOne](https://edgeone.ai/zh?from=github)\n\n ![](https://edgeone.ai/media/34fe3a45-492d-4ea4-ae5d-ea1087ca7b4b.png)\n \n\n\n ## 注意：源码公布到1.4.10版本，后续暂无继续开源计划。\n\n ## 麻烦各位大佬发表lucky相关教程的时候不要加上“开源”神器，开源二字我不配，lucky后续也没开源打算。\n        1.开源并不等于安全，闭源并不等于不安全。闭源软件开发也会受到安全人员的审查。无论是开源还是闭源软件，都有可能会受到各种安全人员的审查和研究。安全人员可以使用各种技术手段来检测软件的安全性和漏洞。\n        2. 个人观点lucky这种应用类软件更多只是体力活，毫无技术含量，开源的优势在于透明度和社区参与，更多劳动力参与，但也可能导致功能过多、复杂度增加的问题。闭源软件的优势在于我想怎么写就怎么写,即使还未能从lucky中获利，lucky对我也有更深的特殊含义。\n        3. 我对lucky的规划还有一大部分未实现，不想被人当免费劳动力使唤，不解释太多，就这样。\n\n \n ## 如果您是第一次使用Lucky，请务必先访问 https://lucky666.cn ，并仔细阅读相关的文档，以获得必要的信息和答案。在这些文档中，您可以了解到Lucky的基本功能和特性，掌握Lucky的使用方法，以及解决常见的问题和疑惑。\n \n\n<!-- TOC -->\n- [Lucky(万吉)](#)\n  - [特性](#特性)\n  - [一键安装](#一键安装)\n  - [OpenwrtIPK包安装](#OpenwrtIPK包安装)\n  - [使用](#使用)\n  - [Docker中使用](#docker中使用)\n  - [后台界面](#后台界面)\n\n  - [开发编译](#开发编译)\n  - [更新日志](#更新日志)\n  - [使用注意与常见问题](#使用注意与常见问题)\n\n<!-- /TOC -->\n\n\n## 特性\n\nLucky最初是作为一个小工具，由开发者为自己的个人使用而开发，用于替代socat，在小米路由AX6000官方系统上实现公网IPv6转内网IPv4的功能。Lucky的设计始终致力于让更多的Linux嵌入式设备运行，以实现或集成个人用户常用功能，降低用户的硬件和软件操作学习成本，同时引导使用者注意网络安全。随着版本更新和网友反馈，Lucky不断迭代改进，拥有更多功能和更好的性能，成为用户值得信赖的工具。\n\nLucky 的核心程序完全采用 Golang 实现，具有高效、稳定、跨平台等优点。其后台前端则采用 Vue3.2 技术进行开发，具有良好的用户体验和响应速度。此外，Lucky 的管理后台采用前后端分离的架构，第三方开发者也可以自由使用OpenToken轻松调用Lucky的各种功能接口。\n\n\n\n## 功能模块\n\n目前已经实现/集成的主要功能模块有\n  - 端口转发\n  - 动态域名(DDNS)\n  - Web服务\n  - Stun内网穿透\n  - 网络唤醒\n  - 计划任务\n  - ACME自动证书\n  - 网络存储\n\n\n\n### 端口转发\n  1. 主要用于实现公网 IPv6 转内网 IPv4 的 TCP/UDP 端口转发。\n  2. 支持界面化的管理转发规则，用户可以通过 web 后台轻松地进行规则的添加、删除、修改等操作。\n  3. 单条转发规则支持设置多个转发端口，这样可以实现多个内网服务端口的转发。\n  4. 提供了一键开关和定时开关功能，用户可以根据自己的需求设置转发规则的开启和关闭时间，还可以使用计划任务模块进行定时开关。\n  5. 单条规则支持黑白名单安全模式切换，用户可以根据需要选择使用白名单模式或黑名单模式。\n  6. 白名单模式可以让没有安全验证的内网服务端口稍微安全一点暴露到公网，提高服务可用性。\n  7. 实时记录最新的访问日志，方便用户了解转发情况。\n  8. 规则列表日志一目了然，用户可以方便地追踪转发异常，及时进行排查和处理。\n\n\n\n### 动态域名(DDNS)\n  1. 支持接入多个不同的 DNS 服务商。\n  2. 支持全功能自定义回调（Callback），包括设置 BasicAuth，方便接入任意 DNS 服务商。\n  3. Webhook 支持自定义 headers。\n  4. 内置常用免费 DNS 服务商设置模板（每步、No-IP、Dynv6、Dynu），通过自定义回调进行快速接入，仅需修改相应用户密码或 token 即可一键填充。\n  5. 支持 阿里云，百度云，华为云，京东云，腾讯云，火山引擎，帝恩爱斯-DNS.LA,Cloudflare，deSEC,DNSPod.CN，DNSPod.COM，Dynadot，Dynv6，Freemyip ,GoDaddy，Name.com，NameSilo,Porkbun，Vercel等服务商。\n\n\n### Web服务\n  1. 支持反向代理、重定向和 URL 跳转。\n  2. 支持 HTTP 基本认证。\n  3. 支持 IP 黑白名单模式。\n  4. 支持 UserAgent 黑白名单。\n  5. 规则日志清晰易懂，便于追踪异常。\n  6. 支持一键开关规则和定时开关规则。\n\n\n### Stun内网穿透\n  1. 实现内网穿透，无需公网IPv4地址。\n  2. 适合于国内运营商级NAT1宽带网络. \n\n### 网络唤醒\n  1. 支持远程控制唤醒和关机操作\n  2. 支持接入第三方物联网平台(点灯科技 巴法云),可通过各大平台的语音助手控制设备唤醒和关机.\n\n### 计划任务\n  1. 不依赖 Linux 系统的 Cron，支持 Windows 系统。\n  2. 操作简便，可视化编辑。\n  3. 可操作控制 Lucky 框架内的其他模块开关。\n\n###  ACME自动证书\n  1. 支持 ACME 自动证书的申请和续签。\n  2. 支持 阿里云，百度云，华为云，京东云，腾讯云，火山引擎，帝恩爱斯-DNS.LA,Cloudflare，deSEC,DNSPod.CN，DNSPod.COM，Dynadot，Dynv6，Freemyip ,GoDaddy，Name.com，NameSilo,Porkbun，Vercel等服务商.\n\n\n### 网络存储\n  1. 网络存储模块是一个应用范围广泛的模块，它提供了将本地存储、WebDAV和阿里云盘挂载到Lucky内部的各个文件类服务功能。\n  2. 通过网络存储模块，你可以将添加的存储挂载到Web服务的文件服务、WebDAV、FTP和FileBrowser模块，实现更加便捷的文件管理和访问。\n\n\n\n\n\n## 一键安装\n\n- [一键安装详看这里](https://github.com/gdy666/lucky-files)\n\n\n## OpenwrtIPK包安装\n\n- [Openwrt IPK包](https://github.com/gdy666/luci-app-lucky)\n\n\n## 使用\n    \n\n- 默认后台管理地址 http://<运行设备IP>:16601\n  默认登录账号: 666\n  默认登录密码: 666\n\n- 常规使用请用 -cd <配置文件夹路径> 指定配置文件夹的方式运行 \n    ```bash\n    #仅指定配置文件夹路径(如果配置文件夹不存在会自动创建),建议使用绝对路径\n    lucky -cd luckyconf\n\n    ```\n\n\n\n\n## Docker中使用\n\n- 不挂载主机目录, 删除容器同时会删除配置\n\n  ```bash\n  # host模式, 同时支持IPv4/IPv6, Liunx系统推荐\n  docker run -d --name lucky --restart=always --net=host gdy666/lucky\n  # 桥接模式, 只支持IPv4, Mac/Windows推荐,windows 不推荐使用docker版本\n  docker run -d --name lucky --restart=always -p 16601:16601 gdy666/lucky\n  ```\n\n- 在浏览器中打开`http://主机IP:16601`，修改你的配置，成功\n- [可选] 挂载主机目录, 删除容器后配置不会丢失。可替换 `/root/luckyconf` 为主机目录, 配置文件夹为lucky\n\n  ```bash\n  docker run -d --name lucky --restart=always --net=host -v /root/luckyconf:/goodluck gdy666/lucky\n  ```\n\n\n## 宝塔Docker安装\n\n1.  安装宝塔面板 (9.2.0版本及以上)，前往 [宝塔面板](https://www.bt.cn/new/download.html) 官网，选择正式版的脚本下载安装\n2.  安装后登录宝塔面板，在菜单栏中点击 Docker ，首次进入会提示安装 Docker 服务，点击立即安装，按提示完成安装\n3.  安装完成后在应用商店中找到 lucky ，点击安装，配置基本选项 即可完成安装\n\n\n\n\n\n\n\n\n\n\n#开发编译\n\n\n    ```bash\n    go build -v -tags \"adminweb nomsgpack\" -ldflags=\"-s -w\"\n    ```\n\n\n# 更新日志\n\n    2026-02-01 v2.27.2\n      1. 重构并优化文件服务/WebDav 前端显示。\n      2. CorazaWAF：\n        内置规则集更新至 v4.22.0。\n        新增每条规则的功能提示。\n        新增出入站阈值自定义功能。\n        注：WAF 建议按需开启，请勿全选规则，避免误判正常访问。\n\n        如何验证 WAF 是否生效？\n        在已开启防护的域名后面加上测试后缀，例如：\n        https://你的域名.com/?test=../../../\n        生效表现：页面被拦截（显示 403 Forbidden ，Lucky/WAF）。\n        未生效表现：页面能正常打开或显示 404。\n\n      2026-01-31 Lucky v2.27.1\n        1. 修复已知Bug。\n        2. 网页认证页面重构优化\n\n      2026-01-30 Lucky v2.27.1 beta1 \n          1. IP 地址库：更新 ip2region 解析引擎\n          2. Cloudflared：同步官方最新源码\n          3. Rclone 同步官方最新源码\n          4. 轻面板\n          内置面板源：\n          现已提供 4 种主题风格切换\n          站点页面新增“搜索引擎”显示设置，支持快捷搜索\n          新增前端静态源自定义默认参数功能。支持预设背景、主题及默认标签页等默认参数。\n          5.修复了已知的部分 Bug。\n\n      2026-01-28 Lucky v2.27.0 Beta1 | 轻导航体验版，全版本支持。\n          本次更新带来了全新的 “轻导航” 功能，旨在通过极简的配置实现高效的面板管理。\n          提供美观、响应式的站点导航内外网识别、多链接支持，Docker 容器监控、Lucky 服务状态展示等功能。\n\n          快速上手：进入 Web服务 -> 子规则 -> 选择“轻面板”服务类型 ，填写前端域名编辑轻面板设置即可。\n          配置建议：\n          初次体验：无需修改“前端静态源”、“全局设置”及“图标源”，维持默认配置即可秒速开通。\n          深度定制：支持自行部署前端源码，打造个性化导航界面。\n          🛠 相关资源\n          内置面板前端源码：https://github.com/gdy666/LuckyLightPanel\n          内置图标库：icons.666666.host\n          进阶技巧：非前端开发者如需深度定制，推荐结合 qoder IDE 使用 AI 辅助修改。\n          Qoder注册下载地址：https://qoder.com/referral?referral_code=uaJw7kR25Ed4hiHfjRroImw6eoVfmXqj\n          ⚠️ 注意事项\n          Alpha 阶段：当前为体验版本，正式版发布时可能存在配置兼容性调整。\n          持续关注：建议密切关注群公告，以便及时获取配置迁移或更新通知。\n\n\n\n   [更多日志请查看](https://lucky666.cn/docs/category/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n。\n\n\n\n"
  },
  {
    "path": "berforebuild.bat",
    "content": "cd ./web/adminviews\nnpm run build"
  },
  {
    "path": "config/appinfo.go",
    "content": "package config\n\nimport (\n\t\"runtime\"\n\t\"time\"\n)\n\ntype AppInfo struct {\n\tAppName   string\n\tVersion   string\n\tOS        string\n\tARCH      string\n\tDate      string\n\tRunTime   string\n\tGoVersion string\n}\n\nvar appInfo AppInfo\n\nfunc GetAppInfo() *AppInfo {\n\treturn &appInfo\n}\n\nfunc InitAppInfo(version, date string) {\n\tappInfo.AppName = \"Lucky\"\n\tappInfo.Version = version\n\tappInfo.Date = date\n\tappInfo.OS = runtime.GOOS\n\tappInfo.ARCH = runtime.GOARCH\n\tappInfo.RunTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\tappInfo.GoVersion = runtime.Version()\n\n\ttime.Now().Format(\"2006-01-02T15:04:05Z\")\n\n\tbuildTime, err := time.Parse(\"2006-01-02T15:04:05Z\", date)\n\tif err != nil {\n\t\treturn\n\t}\n\tappInfo.Date = buildTime.Local().Format(\"2006-01-02 15:04:05\")\n\n}\n"
  },
  {
    "path": "config/blacklist.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage config\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype BlackListItem WhiteListItem\n\nfunc (w *BlackListItem) Contains(ip string) bool {\n\tnetIP := net.ParseIP(ip)\n\tif netIP == nil {\n\t\treturn false\n\t}\n\tif w.NetIP != nil {\n\t\treturn w.NetIP.Equal(netIP)\n\t}\n\n\tif w.Cidr != nil {\n\t\treturn w.Cidr.Contains(netIP)\n\t}\n\treturn false\n}\n\ntype BlackListConfigure struct {\n\tBlackList []BlackListItem `json:\"BlackList\"` //黑名单列表\n}\n\nfunc GetBlackList() []BlackListItem {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\n\tBlackListFlush(false)\n\n\tvar resList []BlackListItem\n\tif programConfigure == nil {\n\t\treturn resList\n\t}\n\tfor i := range programConfigure.BlackListConfigure.BlackList {\n\t\tresList = append(resList, programConfigure.BlackListConfigure.BlackList[i])\n\t}\n\treturn resList\n}\n\nfunc BlackListInit() {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar netIP net.IP\n\tvar cidr *net.IPNet\n\n\tfor i := range programConfigure.BlackListConfigure.BlackList {\n\t\tnetIP = nil\n\t\tcidr = nil\n\t\tif strings.Contains(programConfigure.BlackListConfigure.BlackList[i].IP, \"/\") {\n\t\t\t_, cidr, _ = net.ParseCIDR(programConfigure.BlackListConfigure.BlackList[i].IP)\n\t\t} else {\n\t\t\tnetIP = net.ParseIP(programConfigure.BlackListConfigure.BlackList[i].IP)\n\t\t}\n\t\tprogramConfigure.BlackListConfigure.BlackList[i].Cidr = cidr\n\t\tprogramConfigure.BlackListConfigure.BlackList[i].NetIP = netIP\n\t}\n}\n\nfunc BlackListAdd(ip string, activelifeDuration int32) (string, error) {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tvar err error\n\tvar netIP net.IP = nil\n\tvar cidr *net.IPNet = nil\n\tif strings.Contains(ip, \"/\") {\n\t\t_, cidr, err = net.ParseCIDR(ip)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"网段格式有误，转换出错：%s\", err.Error())\n\t\t}\n\t} else {\n\t\tnetIP = net.ParseIP(ip)\n\t\tif netIP == nil {\n\t\t\treturn \"\", fmt.Errorf(\"IP格式有误\")\n\t\t}\n\t}\n\n\tif activelifeDuration <= 0 {\n\t\tactivelifeDuration = 666666\n\t}\n\n\tEffectiveTimeStr := time.Now().Add(time.Hour * time.Duration(activelifeDuration)).Format(\"2006-01-02 15:04:05\")\n\n\tfor i, ipr := range programConfigure.BlackListConfigure.BlackList {\n\t\tif ipr.IP == ip {\n\t\t\tprogramConfigure.BlackListConfigure.BlackList[i].EffectiveTime = EffectiveTimeStr\n\t\t\treturn EffectiveTimeStr, Save()\n\t\t}\n\t}\n\titem := BlackListItem{IP: ip, EffectiveTime: EffectiveTimeStr, NetIP: netIP, Cidr: cidr}\n\tprogramConfigure.BlackListConfigure.BlackList = append(programConfigure.BlackListConfigure.BlackList, item)\n\treturn EffectiveTimeStr, Save()\n}\n\nfunc BlackListDelete(ip string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tremoveCount := 0\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range programConfigure.BlackListConfigure.BlackList {\n\t\tif ipr.IP == ip {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tprogramConfigure.BlackListConfigure.BlackList = DeleteBlackListlice(programConfigure.BlackListConfigure.BlackList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn Save()\n}\n\nfunc BlackListFlush(lock bool) error {\n\tif lock {\n\t\tprogramConfigureMutex.Lock()\n\t\tdefer programConfigureMutex.Unlock()\n\t}\n\n\tremoveCount := 0\n\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range programConfigure.BlackListConfigure.BlackList {\n\t\tipat, err := time.ParseInLocation(\"2006-01-02 15:04:05\", ipr.EffectiveTime, time.Local)\n\t\tif err != nil { //有效时间格式有误,当失效处理\n\t\t\tremoveIndex = i\n\n\t\t\tbreak\n\t\t}\n\n\t\tif time.Since(ipat) > 0 {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tprogramConfigure.BlackListConfigure.BlackList = DeleteBlackListlice(programConfigure.BlackListConfigure.BlackList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn Save()\n}\n\nfunc DeleteBlackListlice(a []BlackListItem, deleteIndex int) []BlackListItem {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "config/config.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage config\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/gdy666/lucky/socketproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\nconst defaultAdminAccount = \"666\"\nconst defaultAdminPassword = \"666\"\nconst defaultAdminListenPort = 16601\nconst defaultLogSize = 2048\nconst minLogSize = 1024\nconst maxLogSize = 40960\n\nvar runMode = \"prod\"\nvar version = \"0.0.0\"\n\nfunc SetVersion(v string) {\n\tversion = v\n}\n\nfunc GetVersion() string {\n\treturn version\n}\n\nvar loginRandomkey = \"\"\n\nfunc GetLoginRandomKey() string {\n\treturn loginRandomkey\n}\n\nfunc FlushLoginRandomKey() {\n\tloginRandomkey = stringsp.GetRandomString(16)\n}\n\ntype BaseConfigure struct {\n\tAdminWebListenPort      int  `json:\"AdminWebListenPort\"`      //管理后台端口\n\tAdminWebListenTLS       bool `json:\"AdminWebListenTLS\"`       //启用TLS监听端口\n\tAdminWebListenHttpsPort int  `json:\"AdminWebListenHttpsPort\"` //管理后台Https端口\n\n\t//ProxyCountLimit      int64  `json:\"ProxyCountLimit\"`      //全局代理数量限制\n\tAdminAccount        string `json:\"AdminAccount\"`        //登录账号\n\tAdminPassword       string `json:\"AdminPassword\"`       //登录密码\n\tAllowInternetaccess bool   `json:\"AllowInternetaccess\"` //允许外网访问\n\t//GlobalMaxConnections int64  `json:\"GlobalMaxConnections\"` //全局最大连接数\n\tLogMaxSize int `json:\"LogMaxSize\"` //日志记录最大条数\n}\n\ntype ProgramConfigure struct {\n\tBaseConfigure         BaseConfigure         `json:\"BaseConfigure\"`\n\tWhiteListConfigure    WhiteListConfigure    `json:\"WhiteListConfigure\"`\n\tBlackListConfigure    BlackListConfigure    `json:\"BlackListConfigure\"`\n\tDDNSConfigure         DDNSConfigure         `json:\"DDNSConfigure\"`         //DDNS 参数设置\n\tDDNSTaskList          []DDNSTask            `json:\"DDNSTaskList\"`          //DDNS任务列表\n\tReverseProxyRuleList  []ReverseProxyRule    `json:\"ReverseProxyRuleList\"`  //反向代理规则列表\n\tSSLCertficateList     []SSLCertficate       `json:\"SSLCertficateList\"`     //SSL证书列表\n\tPortForwardsRuleList  []PortForwardsRule    `json:\"PortForwardsRuleList\"`  //端口转发规则列表\n\tPortForwardsConfigure PortForwardsConfigure `json:\"PortForwardsConfigure\"` //端口转发设置\n\tWOLDeviceList         []WOLDevice           `json:\"WOLDeviceList\"`         //网络唤醒设备列表\n}\n\nvar programConfigureMutex sync.RWMutex\nvar programConfigure *ProgramConfigure\nvar configurePath string\n\n// var readConfigureFileOnce sync.Once\nvar checkConfigureFileOnce sync.Once\nvar configureFileSign int8 = -1\n\n// func GetConfigMutex() *sync.RWMutex {\n// \treturn &programConfigureMutex\n// }\n\nfunc GetAuthAccount() map[string]string {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\taccountInfo := make(map[string]string)\n\taccountInfo[programConfigure.BaseConfigure.AdminAccount] = programConfigure.BaseConfigure.AdminPassword\n\treturn accountInfo\n}\n\nfunc GetRunMode() string {\n\treturn runMode\n}\n\nfunc SetRunMode(mode string) {\n\trunMode = mode\n}\n\nfunc SetConfig(p *ProgramConfigure) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tprogramConfigure = p\n\treturn Save()\n}\n\nfunc GetConfig() *ProgramConfigure {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tconf := *programConfigure\n\treturn &conf\n}\n\nfunc GetConfigureBytes() []byte {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tif programConfigure == nil {\n\t\treturn []byte(\"{}\")\n\t}\n\t//JSON.Pars\n\tres, err := json.MarshalIndent(*programConfigure, \"\", \"\\t\")\n\tif err != nil {\n\t\treturn []byte(\"{}\")\n\t}\n\treturn res\n}\n\nfunc GetBaseConfigure() BaseConfigure {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tbaseConf := programConfigure.BaseConfigure\n\treturn baseConf\n}\n\nfunc GetDDNSConfigure() DDNSConfigure {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tconf := programConfigure.DDNSConfigure\n\treturn conf\n}\n\nfunc GetPortForwardsConfigure() PortForwardsConfigure {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tconf := programConfigure.PortForwardsConfigure\n\treturn conf\n}\n\nfunc SetPortForwardsConfigure(conf *PortForwardsConfigure) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tif conf.PortForwardsLimit < 0 {\n\t\tconf.PortForwardsLimit = 0\n\t} else if conf.PortForwardsLimit > 1024 {\n\t\tconf.PortForwardsLimit = 1024\n\t}\n\n\tif conf.TCPPortforwardMaxConnections < 0 {\n\t\tconf.TCPPortforwardMaxConnections = 0\n\t} else if conf.TCPPortforwardMaxConnections > 4096 {\n\t\tconf.TCPPortforwardMaxConnections = 4096\n\t}\n\n\tif conf.UDPReadTargetDataMaxgoroutineCount < 0 {\n\t\tconf.UDPReadTargetDataMaxgoroutineCount = 0\n\t} else if conf.UDPReadTargetDataMaxgoroutineCount > 4096 {\n\t\tconf.UDPReadTargetDataMaxgoroutineCount = 4096\n\t}\n\n\tprogramConfigure.PortForwardsConfigure = *conf\n\n\tsocketproxy.SetGlobalMaxPortForwardsCountLimit(conf.PortForwardsLimit)\n\tsocketproxy.SetGlobalTCPPortforwardMaxConnections(conf.TCPPortforwardMaxConnections)\n\tsocketproxy.SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(conf.UDPReadTargetDataMaxgoroutineCount)\n\treturn Save()\n}\n\n// 保存基础配置\nfunc SetBaseConfigure(conf *BaseConfigure) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tprogramConfigure.BaseConfigure = *conf\n\n\t//socketproxy.SetGlobalMaxConnections(conf.GlobalMaxConnections)\n\t//socketproxy.SetGlobalMaxPortForwardsCount(conf.ProxyCountLimit)\n\n\tif conf.LogMaxSize < minLogSize {\n\t\tconf.LogMaxSize = minLogSize\n\t} else if conf.LogMaxSize > maxLogSize {\n\t\tconf.LogMaxSize = maxLogSize\n\t}\n\n\treturn Save()\n}\n\nfunc SetDDNSConfigure(conf *DDNSConfigure) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tif conf.Intervals < 30 {\n\t\tconf.Intervals = 30\n\t}\n\n\tif conf.Intervals > 3600 {\n\t\tconf.Intervals = 3600\n\t}\n\n\tif conf.FirstCheckDelay < 0 {\n\t\tconf.FirstCheckDelay = 0\n\t}\n\n\tif conf.FirstCheckDelay > 3600 {\n\t\tconf.FirstCheckDelay = 3600\n\t}\n\n\tprogramConfigure.DDNSConfigure = *conf\n\treturn Save()\n}\n\nfunc Read(filePath string) (err error) {\n\n\tif runtime.GOOS == \"windows\" && filePath == \"\" {\n\t\tfilePath = \"lucky.conf\"\n\t\tlog.Printf(\"未指定配置文件路径,使用默认路径lucky所在位置,默认配置文件名lucky.conf\")\n\t}\n\n\tpc, err := readProgramConfigure(filePath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif pc.PortForwardsConfigure.PortForwardsLimit <= 0 {\n\t\tpc.PortForwardsConfigure.PortForwardsLimit = socketproxy.DEFAULT_MAX_PORTFORWARDS_LIMIT\n\t}\n\tif pc.PortForwardsConfigure.TCPPortforwardMaxConnections <= 0 {\n\t\tpc.PortForwardsConfigure.TCPPortforwardMaxConnections = socketproxy.DEFAULT_GLOBAL_MAX_CONNECTIONS\n\t}\n\n\tif pc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount <= 0 {\n\t\tpc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount = socketproxy.DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount\n\t}\n\n\tsocketproxy.SetGlobalMaxPortForwardsCountLimit(pc.PortForwardsConfigure.PortForwardsLimit)\n\tsocketproxy.SetGlobalTCPPortforwardMaxConnections(pc.PortForwardsConfigure.TCPPortforwardMaxConnections)\n\tsocketproxy.SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(pc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount)\n\n\tif pc.BaseConfigure.AdminWebListenPort <= 0 {\n\t\tpc.BaseConfigure.AdminWebListenPort = 16601\n\t}\n\n\tif pc.BaseConfigure.AdminWebListenHttpsPort <= 0 {\n\t\tpc.BaseConfigure.AdminWebListenHttpsPort = 16626\n\t}\n\n\tif pc.BaseConfigure.LogMaxSize < minLogSize {\n\t\tpc.BaseConfigure.LogMaxSize = minLogSize\n\t} else if pc.BaseConfigure.LogMaxSize > maxLogSize {\n\t\tpc.BaseConfigure.LogMaxSize = maxLogSize\n\t}\n\n\tprogramConfigure = pc\n\n\treturn nil\n}\n\nfunc LoadDefault(adminWebListenPort int) {\n\tprogramConfigure = loadDefaultConfigure(adminWebListenPort)\n}\n\nfunc Save() (err error) {\n\t//log.Printf(\"Save配置\\n\")\n\tif configureFileSign == 0 {\n\t\treturn fmt.Errorf(\"配置文件不存在,不作保存\")\n\t}\n\tdefer func() {\n\t\tcheckConfigureFileOnce.Do(func() {\n\t\t\tif err == nil {\n\t\t\t\tconfigureFileSign = 1\n\t\t\t} else {\n\t\t\t\tconfigureFileSign = 0\n\t\t\t}\n\t\t})\n\n\t}()\n\n\terr = saveProgramConfig(programConfigure, configurePath)\n\treturn\n}\n\n//------------------------------------------------------------------------------------\n\nfunc readProgramConfigure(filePath string) (conf *ProgramConfigure, err error) {\n\tif filePath == \"\" {\n\t\treturn nil, fmt.Errorf(\"未指定配置文件路径\")\n\t}\n\n\tif !strings.HasPrefix(filePath, \"/\") {\n\t\tfilePath = fmt.Sprintf(\"%s/%s\", fileutils.GetCurrentDirectory(), filePath)\n\t}\n\n\tconfigurePath = filePath\n\n\t//fmt.Printf(\"filePath:%s\\n\", configurePath)\n\n\tfileContent, err := fileutils.ReadTextFromFile(configurePath)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"读取配置文件出错:%s\", err.Error())\n\t}\n\tvar pc ProgramConfigure\n\n\terr = json.Unmarshal([]byte(fileContent), &pc)\n\tif err != nil {\n\t\tlog.Fatalf(\"解析配置文件出错:%s\", err.Error())\n\t\treturn nil, fmt.Errorf(\"解析配置文件出错:%s\", err.Error())\n\t}\n\n\treturn &pc, nil\n}\n\nfunc loadDefaultConfigure(\n\tadminWebListenPort int) *ProgramConfigure {\n\n\tbaseConfigure := BaseConfigure{AdminWebListenPort: adminWebListenPort,\n\t\tAdminAccount:        defaultAdminAccount,\n\t\tAdminPassword:       defaultAdminPassword,\n\t\tAllowInternetaccess: false,\n\t\tLogMaxSize:          defaultLogSize}\n\n\twhiteListConfigure := WhiteListConfigure{BaseConfigure: WhiteListBaseConfigure{ActivelifeDuration: 36, BasicAccount: defaultAdminAccount, BasicPassword: defaultAdminPassword}}\n\n\tvar pc ProgramConfigure\n\tpc.BaseConfigure = baseConfigure\n\tpc.WhiteListConfigure = whiteListConfigure\n\n\tif pc.PortForwardsConfigure.PortForwardsLimit <= 0 {\n\t\tpc.PortForwardsConfigure.PortForwardsLimit = socketproxy.DEFAULT_MAX_PORTFORWARDS_LIMIT\n\t}\n\tsocketproxy.SetGlobalMaxPortForwardsCountLimit(pc.PortForwardsConfigure.PortForwardsLimit)\n\n\tif pc.PortForwardsConfigure.TCPPortforwardMaxConnections <= 0 {\n\t\tpc.PortForwardsConfigure.TCPPortforwardMaxConnections = socketproxy.TCPUDP_DEFAULT_SINGLE_PROXY_MAX_CONNECTIONS\n\t}\n\tsocketproxy.SetGlobalTCPPortforwardMaxConnections(pc.PortForwardsConfigure.TCPPortforwardMaxConnections)\n\n\tif pc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount <= 0 {\n\t\tpc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount = socketproxy.DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount\n\t}\n\n\tsocketproxy.SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(pc.PortForwardsConfigure.UDPReadTargetDataMaxgoroutineCount)\n\n\tif pc.BaseConfigure.AdminWebListenPort <= 0 {\n\t\tpc.BaseConfigure.AdminWebListenPort = defaultAdminListenPort\n\t}\n\n\tif pc.DDNSConfigure.Intervals < 30 {\n\t\tpc.DDNSConfigure.Intervals = 30\n\t}\n\n\tif pc.DDNSConfigure.FirstCheckDelay <= 0 {\n\t\tpc.DDNSConfigure.FirstCheckDelay = 0\n\t}\n\n\treturn &pc\n}\n\nfunc saveProgramConfig(programConfigure *ProgramConfigure, filePath string) error {\n\tresBytes, err := json.MarshalIndent(*programConfigure, \"\", \"\\t\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"json.Marshal:%s\", err.Error())\n\t}\n\treturn fileutils.SaveTextToFile(string(resBytes), filePath)\n}\n\nfunc CheckTCPPortAvalid(port int) bool {\n\tln, err := net.Listen(\"tcp\", fmt.Sprintf(\":%d\", port))\n\tif err != nil {\n\t\treturn false\n\t}\n\tln.Close()\n\treturn true\n}\n"
  },
  {
    "path": "config/ddns.go",
    "content": "package config\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\ntype DDNSConfigure struct {\n\tEnable                 bool `json:\"Enable\"`\n\tHttpClientSecureVerify bool `json:\"HttpClientSecureVerify\"`\n\tFirstCheckDelay        int  `json:\"FirstCheckDelay\"` //首次检查延迟时间\n\tIntervals              int  `json:\"Intervals\"`\n}\n\ntype DDNSTask struct {\n\tTaskName string `json:\"TaskName\"`\n\tTaskKey  string `json:\"TaskKey\"` //添加任务时随机生成,方便管理任务(修改删除)\n\t//规则类型 IPv4/IPv6\n\tTaskType string `json:\"TaskType\"`\n\tEnable   bool\n\t// 获取IP类型 url/netInterface\n\n\tGetType      string    `json:\"GetType\"`\n\tURL          []string  `json:\"URL\"`\n\tNetInterface string    `json:\"NetInterface\"`\n\tIPReg        string    `json:\"IPReg\"`\n\tDomains      []string  `json:\"Domains\"`\n\tDNS          DNSConfig `json:\"DNS\"`\n\tWebhook\n\tTTL               string `json:\"TTL\"`\n\tHttpClientTimeout int    `json:\"HttpClientTimeout\"`\n}\n\ntype Webhook struct {\n\tWebhookEnable                             bool     `json:\"WebhookEnable\"`          //Webhook开关\n\tWebhookCallOnGetIPfail                    bool     `json:\"WebhookCallOnGetIPfail\"` //获取IP失败时触发Webhook 开关\n\tWebhookURL                                string   `json:\"WebhookURL\"`\n\tWebhookMethod                             string   `json:\"WebhookMethod\"`\n\tWebhookHeaders                            []string `json:\"WebhookHeaders\"`\n\tWebhookRequestBody                        string   `json:\"WebhookRequestBody\"`\n\tWebhookDisableCallbackSuccessContentCheck bool     `json:\"WebhookDisableCallbackSuccessContentCheck\"` //禁用成功调用返回检测\n\tWebhookSuccessContent                     []string `json:\"WebhookSuccessContent\"`                     //接口调用成功包含的内容\n\tWebhookProxy                              string   `json:\"WebhookProxy\"`                              //使用DNS代理设置  \"\"表示禁用，\"dns\"表示使用dns的代理设置\n\tWebhookProxyAddr                          string   `json:\"WebhookProxyAddr\"`                          //代理服务器IP\n\tWebhookProxyUser                          string   `json:\"WebhookProxyUser\"`                          //代理用户\n\tWebhookProxyPassword                      string   `json:\"WebhookProxyPassword\"`                      //代理密码\n}\n\n// DNSConfig DNS配置\ntype DNSConfig struct {\n\t// 名称。如：alidns,webhook\n\tName                    string      `json:\"Name\"`\n\tID                      string      `json:\"ID\"`\n\tSecret                  string      `json:\"Secret\"`\n\tForceInterval           int         `json:\"ForceInterval\"`       //(秒)即使IP没有变化,到一定时间后依然强制更新或先DNS解析比较IP再更新\n\tResolverDoaminCheck     bool        `json:\"ResolverDoaminCheck\"` //调用callback同步前先解析一次域名,如果IP相同就不同步\n\tDNSServerList           []string    `json:\"DNSServerList\"`       //DNS服务器列表\n\tCallAPINetwork          string      `json:\"CallAPINetwork\"`      //空代理tcp, tcp4,tcp6\n\tCallback                DNSCallback `json:\"Callback\"`\n\tHttpClientProxyType     string      `json:\"HttpClientProxyType\"`     //http client代理服务器设置\n\tHttpClientProxyAddr     string      `json:\"HttpClientProxyAddr\"`     //代理服务器IP\n\tHttpClientProxyUser     string      `json:\"HttpClientProxyUser\"`     //代理用户\n\tHttpClientProxyPassword string      `json:\"HttpClientProxyPassword\"` //代理密码\n}\n\nfunc (d *DNSConfig) GetCallAPINetwork() string {\n\tswitch d.CallAPINetwork {\n\tcase \"tcp4\", \"tcp6\":\n\t\treturn d.CallAPINetwork\n\tdefault:\n\t\treturn \"tcp\"\n\t}\n}\n\ntype DNSCallback struct {\n\tURL                                string   `json:\"URL\"`    //请求地址\n\tMethod                             string   `json:\"Method\"` //请求方法\n\tHeaders                            []string `json:\"Headers\"`\n\tRequestBody                        string   `json:\"RequestBody\"`\n\tServer                             string   `json:\"Server\"`                             //预设服务商\n\tDisableCallbackSuccessContentCheck bool     `json:\"DisableCallbackSuccessContentCheck\"` //禁用成功调用返回检测\n\tCallbackSuccessContent             []string `json:\"CallbackSuccessContent\"`             //接口调用成功包含内容\n}\n\nvar checkIPv4URLList = []string{\"https://4.ipw.cn\", \"http://v4.ip.zxinc.org/getip\", \"https://myip4.ipip.net\", \"https://www.taobao.com/help/getip.php\", \"https://ddns.oray.com/checkip\", \"https://ip.3322.net\", \"https://v4.myip.la\"}\nvar checkIPv6URLList = []string{\"https://6.ipw.cn\", \"https://ipv6.ddnspod.com\", \"http://v6.ip.zxinc.org/getip\", \"https://speed.neu6.edu.cn/getIP.php\", \"https://v6.ident.me\", \"https://v6.myip.la\"}\n\nvar DefaultIPv6DNSServerList = []string{\n\t\"[2001:4860:4860::8888]:53\", //谷歌\n\t\"[2001:4860:4860::8844]:53\", //谷歌\n\t\"[2606:4700:4700::64]:53\",   //cloudflare\n\t\"[2606:4700:4700::6400]:53\", //cloudflare\n\t\"[240C::6666]:53\",           //下一代互联网北京研究中心\n\t\"[240C::6644]:53\",           //下一代互联网北京研究中心\n\t\"[2402:4e00::]:53\",          //dnspod\n\t//\"[2400:3200::1]:53\",         //阿里\n\t//\t\t\"[2400:3200:baba::1]:53\",    //阿里\n\t\"[240e:4c:4008::1]:53\",  //中国电信\n\t\"[240e:4c:4808::1]:53\",  //中国电信\n\t\"[2408:8899::8]:53\",     //中国联通\n\t\"[2408:8888::8]:53\",     //中国联通\n\t\"[2409:8088::a]:53\",     //中国移动\n\t\"[2409:8088::b]:53\",     //中国移动\n\t\"[2001:dc7:1000::1]:53\", //CNNIC\n\t\"[2400:da00::6666]:53\",  //百度\n}\n\nvar DefaultIPv4DNSServerList = []string{\n\t\"1.1.1.1:53\",\n\t\"1.2.4.8:53\",\n\t\"8.8.8.8:53\",\n\t\"9.9.9.9:53\",\n\t\"8.8.4.4:53\",\n\t\"114.114.114.114:53\",\n\t\"223.5.5.5:53\",\n\t\"223.6.6.6:53\",\n\t\"101.226.4.6:53\",\n\t\"218.30.118.6:53\",\n\t\"119.28.28.28:53\",\n}\n\n// func SetDDNSTaskIpCacheForceCompareByTaskKey(taskKey string, force bool) {\n// \tprogramConfigureMutex.Lock()\n// \tdefer programConfigureMutex.Unlock()\n// \ttaskIndex := -1\n\n// \tfor i := range programConfigure.DDNSTaskList {\n// \t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n// \t\t\ttaskIndex = i\n// \t\t\tbreak\n// \t\t}\n// \t}\n// \tif taskIndex == -1 {\n// \t\treturn\n// \t}\n// \tprogramConfigure.DDNSTaskList[taskIndex].IpCache.ForceCompare = force\n// }\n\nfunc DDNSTaskListConfigureCheck() {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].DNS.ForceInterval < 60 {\n\t\t\tprogramConfigure.DDNSTaskList[i].DNS.ForceInterval = 60\n\t\t} else if programConfigure.DDNSTaskList[i].DNS.ForceInterval > 360000 {\n\t\t\tprogramConfigure.DDNSTaskList[i].DNS.ForceInterval = 360000\n\t\t}\n\n\t\tif programConfigure.DDNSTaskList[i].HttpClientTimeout < 3 {\n\t\t\tprogramConfigure.DDNSTaskList[i].HttpClientTimeout = 3\n\t\t} else if programConfigure.DDNSTaskList[i].HttpClientTimeout > 60 {\n\t\t\tprogramConfigure.DDNSTaskList[i].HttpClientTimeout = 60\n\t\t}\n\t}\n}\n\nfunc DDNSTaskSetWebhookCallResult(taskKey string, result bool, message string) {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn\n\t}\n\n\tlog.Printf(\"DDNSTaskSetWebhookCallResult %s\", taskKey)\n\n}\n\nfunc GetDDNSTaskConfigureList() []*DDNSTask {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\n\tvar resList []*DDNSTask\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\ttask := programConfigure.DDNSTaskList[i]\n\t\tresList = append(resList, &task)\n\t}\n\treturn resList\n}\n\nfunc GetDDNSTaskByKey(taskKey string) *DDNSTask {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\ttaskIndex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn nil\n\t}\n\tres := programConfigure.DDNSTaskList[taskIndex]\n\n\treturn &res\n}\n\nfunc DDNSTaskListAdd(task *DDNSTask) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\ttask.TaskKey = stringsp.GetRandomString(16)\n\tprogramConfigure.DDNSTaskList = append(programConfigure.DDNSTaskList, *task)\n\treturn Save()\n}\n\nfunc DDNSTaskListDelete(taskKey string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\ttaskIndex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的DDNS任务\")\n\t}\n\n\tprogramConfigure.DDNSTaskList = DeleteDDNSTaskListlice(programConfigure.DDNSTaskList, taskIndex)\n\treturn Save()\n}\n\nfunc CheckDDNSTaskAvalid(task *DDNSTask) error {\n\tif len(task.URL) == 0 {\n\t\tif task.TaskType == \"IPv6\" {\n\t\t\ttask.URL = checkIPv6URLList\n\t\t} else {\n\t\t\ttask.URL = checkIPv4URLList\n\t\t}\n\t}\n\n\tswitch task.DNS.Name {\n\tcase \"cloudflare\":\n\t\tif task.DNS.Secret == \"\" {\n\t\t\treturn fmt.Errorf(\"cloudflare token不能为空\")\n\t\t}\n\tcase \"callback\":\n\t\tif task.DNS.Callback.URL == \"\" {\n\t\t\treturn fmt.Errorf(\"callback URL不能为空\")\n\t\t}\n\n\t\tif task.DNS.Callback.Method == \"\" {\n\t\t\treturn fmt.Errorf(\"请选择callback method\")\n\t\t}\n\tdefault:\n\t\tif task.DNS.ID == \"\" || task.DNS.Secret == \"\" {\n\t\t\treturn fmt.Errorf(\"dns服务商相关参数不能为空\")\n\t\t}\n\t}\n\n\tif len(task.Domains) <= 0 {\n\t\treturn fmt.Errorf(\"域名列表不能为空\")\n\t}\n\n\treturn nil\n}\n\nfunc EnableDDNSTaskByKey(taskKey string, enable bool) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"开关DDNS任务失败,TaskKey不存在\")\n\t}\n\tprogramConfigure.DDNSTaskList[taskIndex].Enable = enable\n\n\treturn Save()\n}\n\nfunc UpdateTaskToDDNSTaskList(taskKey string, task DDNSTask) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的DDNS任务\")\n\t}\n\n\tprogramConfigure.DDNSTaskList[taskIndex].TaskName = task.TaskName\n\tprogramConfigure.DDNSTaskList[taskIndex].TaskType = task.TaskType\n\tprogramConfigure.DDNSTaskList[taskIndex].Enable = task.Enable\n\tprogramConfigure.DDNSTaskList[taskIndex].GetType = task.GetType\n\tprogramConfigure.DDNSTaskList[taskIndex].URL = task.URL\n\tprogramConfigure.DDNSTaskList[taskIndex].NetInterface = task.NetInterface\n\tprogramConfigure.DDNSTaskList[taskIndex].IPReg = task.IPReg\n\tprogramConfigure.DDNSTaskList[taskIndex].Domains = task.Domains\n\tprogramConfigure.DDNSTaskList[taskIndex].DNS = task.DNS\n\tprogramConfigure.DDNSTaskList[taskIndex].Webhook = task.Webhook\n\tprogramConfigure.DDNSTaskList[taskIndex].TTL = task.TTL\n\tprogramConfigure.DDNSTaskList[taskIndex].HttpClientTimeout = task.HttpClientTimeout\n\n\treturn Save()\n}\n\nfunc DeleteDDNSTaskListlice(a []DDNSTask, deleteIndex int) []DDNSTask {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\n//****************************\n"
  },
  {
    "path": "config/portforward.go",
    "content": "package config\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/socketproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype PortForwardsConfigure struct {\n\tPortForwardsLimit                  int64 `json:\"PortForwardsLimit\"`                  //全局端口转发数量限制\n\tTCPPortforwardMaxConnections       int64 `json:\"TCPPortforwardMaxConnections\"`       //端口转发全局TCP并发链接数限制\n\tUDPReadTargetDataMaxgoroutineCount int64 `json:\"UDPReadTargetDataMaxgoroutineCount\"` //端口转发全局UDP读取目标地址数据协程数限制\n}\n\ntype PortForwardsRule struct {\n\tName              string                       `json:\"Name\"`\n\tKey               string                       `json:\"Key\"`\n\tEnable            bool                         `json:\"Enable\"`\n\tForwardTypes      []string                     `json:\"ForwardTypes\"`\n\tListenAddress     string                       `json:\"ListenAddress\"`\n\tListenPorts       string                       `json:\"ListenPorts\"`\n\tTargetAddressList []string                     `json:\"TargetAddressList\"`\n\tTargetPorts       string                       `json:\"TargetPorts\"`\n\tOptions           socketproxy.RelayRuleOptions `json:\"Options\"`\n\tReverseProxyList  *[]socketproxy.Proxy         `json:\"-\"`\n\n\tlogsBuffer                 *logsbuffer.LogsBuffer\n\tlogrus                     *logrus.Logger\n\tLogLevel                   int  `json:\"LogLevel\"`           //日志输出级别\n\tLogOutputToConsole         bool `json:\"LogOutputToConsole\"` //日志输出到终端\n\tAccessLogMaxNum            int  `json:\"AccessLogMaxNum\"`\n\tWebListShowLastLogMaxCount int  `json:\"WebListShowLastLogMaxCount\"` //前端列表显示最新日志最大条数\n}\n\nfunc (r *PortForwardsRule) ProxyCount() int {\n\tif r.ReverseProxyList == nil {\n\t\treturn 0\n\t}\n\treturn len(*r.ReverseProxyList)\n}\n\nfunc (r *PortForwardsRule) StartAllProxys() {\n\tif r.ReverseProxyList == nil {\n\t\treturn\n\t}\n\tfor i := range *r.ReverseProxyList {\n\n\t\t(*r.ReverseProxyList)[i].StartProxy()\n\t}\n}\n\nfunc (r *PortForwardsRule) GetLastLogs(maxCount int) []any {\n\treturn r.GetLogsBuffer().GetLastLogs(WebLogConvert, maxCount)\n}\n\nfunc (r *PortForwardsRule) Fire(entry *logrus.Entry) error {\n\tif !r.LogOutputToConsole {\n\t\treturn nil\n\t}\n\ts, _ := entry.String()\n\tlog.Print(s)\n\treturn nil\n}\n\nfunc (r *PortForwardsRule) Levels() []logrus.Level {\n\treturn logrus.AllLevels\n}\n\nfunc (r *PortForwardsRule) GetLogrus() *logrus.Logger {\n\tif r.logrus == nil {\n\t\tr.logrus = logrus.New()\n\t\tr.logrus.SetLevel(logrus.Level(r.LogLevel))\n\t\tr.logrus.SetOutput(r.GetLogsBuffer())\n\t\tr.logrus.SetFormatter(&logrus.JSONFormatter{\n\t\t\tTimestampFormat:   \"2006-01-02 15:04:05\",\n\t\t\tDisableTimestamp:  true,\n\t\t\tDisableHTMLEscape: true,\n\t\t\tDataKey:           \"ExtInfo\",\n\t\t})\n\t\tr.logrus.AddHook(r)\n\t}\n\treturn r.logrus\n}\n\nfunc (r *PortForwardsRule) GetLogsBuffer() *logsbuffer.LogsBuffer {\n\tif r.logsBuffer == nil {\n\t\tr.logsBuffer = logsbuffer.CreateLogbuffer(\"portforward:\"+r.Key, r.AccessLogMaxNum)\n\t}\n\treturn r.logsBuffer\n}\n\nfunc (r *PortForwardsRule) StopAllProxys() {\n\tif r.ReverseProxyList == nil {\n\t\treturn\n\t}\n\tfor i := range *r.ReverseProxyList {\n\t\t(*r.ReverseProxyList)[i].StopProxy()\n\t}\n}\n\n// TidyReverseProxyCache 整理端口转发日志缓存\nfunc TidyPortforwardLogsCache() {\n\truleList := GetPortForwardsRuleList()\n\tvar keyListBuffer strings.Builder\n\tfor _, rule := range ruleList {\n\t\tkeyListBuffer.WriteString(rule.Key)\n\t\tkeyListBuffer.WriteString(\",\")\n\t}\n\n\tkeyListStr := keyListBuffer.String()\n\tlogsbuffer.LogsBufferStoreMu.Lock()\n\tdefer logsbuffer.LogsBufferStoreMu.Unlock()\n\n\tvar needDeleteKeys []string\n\n\tfor k := range logsbuffer.LogsBufferStore {\n\t\tif !strings.HasPrefix(k, \"portforward:\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(k) <= 13 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !strings.Contains(keyListStr, k[12:]) {\n\t\t\tneedDeleteKeys = append(needDeleteKeys, k)\n\t\t}\n\t}\n\n\tfor i := range needDeleteKeys {\n\t\tdelete(logsbuffer.LogsBufferStore, needDeleteKeys[i])\n\t}\n\n}\n\nfunc (r *PortForwardsRule) InitProxyList() error {\n\tlistenPorts, err := PortsStrToIList(r.ListenPorts)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttargetPorts, err := PortsStrToIList(r.TargetPorts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(listenPorts) != len(targetPorts) {\n\t\treturn fmt.Errorf(\"端口个数不一致\")\n\t}\n\tvar proxyList []socketproxy.Proxy\n\tfor i := range r.ForwardTypes {\n\t\tfor j := range listenPorts {\n\t\t\tp, err := socketproxy.CreateProxy(r.GetLogrus(), r.ForwardTypes[i],\n\t\t\t\tr.ListenAddress,\n\t\t\t\tr.TargetAddressList,\n\t\t\t\tlistenPorts[j],\n\t\t\t\ttargetPorts[j],\n\t\t\t\t&r.Options)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tproxyList = append(proxyList, p)\n\t\t}\n\t}\n\n\tr.ReverseProxyList = &proxyList\n\treturn nil\n}\n\nfunc PortsCheck(ports1Str, ports2Str string) (bool, error) {\n\tports1, err := PortsStrToIList(ports1Str)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tports2, err := PortsStrToIList(ports2Str)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif len(ports1) != len(ports2) {\n\t\treturn false, fmt.Errorf(\"端口个数不一致\")\n\t}\n\treturn true, nil\n}\n\n// portsStrToIList\nfunc PortsStrToIList(portsStr string) (ports []int, err error) {\n\tif portsStr == \"\" {\n\t\treturn\n\t}\n\tif strings.Contains(portsStr, \",\") {\n\t\ttmpStrList := strings.Split(portsStr, \",\")\n\t\tfor i := range tmpStrList {\n\t\t\ttps, e := PortsStrToIList(tmpStrList[i])\n\t\t\tif e != nil {\n\t\t\t\terr = fmt.Errorf(\"端口字符串处理出错:%s\", e.Error())\n\t\t\t\treturn\n\t\t\t}\n\t\t\tports = append(ports, tps...)\n\t\t}\n\n\t\treturn\n\t}\n\n\tportsStrList := strings.Split(portsStr, \"-\")\n\tif len(portsStrList) > 2 {\n\t\terr = fmt.Errorf(\"端口%s格式有误\", portsStr)\n\t\treturn\n\t}\n\n\tif len(portsStrList) == 1 { //single listen port\n\t\tlistenPort, e := portStrToi(portsStrList[0])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", e.Error())\n\t\t\treturn\n\t\t}\n\t\tports = append(ports, listenPort)\n\t}\n\n\tif len(portsStrList) == 2 {\n\t\tminListenPort, e := portStrToi(portsStrList[0])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", portsStrList[0])\n\t\t\treturn\n\t\t}\n\t\tmaxListenPort, e := portStrToi(portsStrList[1])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", portsStrList[1])\n\t\t\treturn\n\t\t}\n\n\t\tif maxListenPort <= minListenPort {\n\t\t\terr = fmt.Errorf(\"前一个端口[%d]要小于后一个端口[%d]\", minListenPort, maxListenPort)\n\t\t\treturn\n\t\t}\n\t\ti := minListenPort\n\t\tfor {\n\t\t\tif i > maxListenPort {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tports = append(ports, i)\n\t\t\ti++\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc portStrToi(portStr string) (int, error) {\n\tport, err := strconv.Atoi(portStr)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"端口格式有误:%s\", err.Error())\n\t}\n\tif port < 1 || port > 65535 {\n\t\treturn 0, fmt.Errorf(\"端口[%d]超出范围\", port)\n\t}\n\treturn port, nil\n}\n\nfunc PortForwardsRuleListInit() {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar err error\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\terr = programConfigure.PortForwardsRuleList[i].InitProxyList()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"InitProxyList error:%s\\n\", err.Error())\n\t\t}\n\t\tif programConfigure.PortForwardsRuleList[i].Enable {\n\t\t\tprogramConfigure.PortForwardsRuleList[i].StartAllProxys()\n\t\t}\n\t}\n}\n\nfunc GetPortForwardsRuleList() []PortForwardsRule {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\n\tvar resList []PortForwardsRule\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tr := programConfigure.PortForwardsRuleList[i]\n\t\tresList = append(resList, r)\n\t}\n\treturn resList\n}\n\nfunc GetPortForwardsGlobalProxyCount() int {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tcount := 0\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tcount += programConfigure.PortForwardsRuleList[i].ProxyCount()\n\t}\n\treturn count\n}\n\nfunc GetPortForwardsGlobalProxyCountExcept(key string) int {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tcount := 0\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif key == programConfigure.PortForwardsRuleList[i].Key {\n\t\t\tcontinue\n\t\t}\n\t\tcount += programConfigure.PortForwardsRuleList[i].ProxyCount()\n\t}\n\treturn count\n}\n\nfunc GetPortForwardsRuleByKey(key string) *PortForwardsRule {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn nil\n\t}\n\tres := programConfigure.PortForwardsRuleList[index]\n\treturn &res\n}\n\nfunc StopAllSocketProxysByRuleKey(key string) error {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到key:%s对应的规则\", key)\n\t}\n\tprogramConfigure.PortForwardsRuleList[index].StopAllProxys()\n\treturn nil\n}\n\nfunc StartAllSocketProxysByRuleKey(key string) error {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到key:%s对应的规则\", key)\n\t}\n\tprogramConfigure.PortForwardsRuleList[index].StartAllProxys()\n\treturn nil\n}\n\nfunc PortForwardsRuleListAdd(r *PortForwardsRule) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tr.Enable = true\n\tprogramConfigure.PortForwardsRuleList = append(programConfigure.PortForwardsRuleList, *r)\n\treturn Save()\n}\n\nfunc PortForwardsRuleListDelete(key string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tindex := -1\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的端口转发规则\")\n\t}\n\n\tprogramConfigure.PortForwardsRuleList[index].StopAllProxys()\n\n\tprogramConfigure.PortForwardsRuleList = DeletePortForwardsRuleListSlice(programConfigure.PortForwardsRuleList, index)\n\treturn Save()\n}\n\nfunc EnablePortForwardsRuleByKey(key string, enable bool) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range programConfigure.DDNSTaskList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"开关端口转发规则失败,key查找失败\")\n\t}\n\n\tif enable {\n\t\tprogramConfigure.PortForwardsRuleList[index].StartAllProxys()\n\t} else {\n\t\tprogramConfigure.PortForwardsRuleList[index].StopAllProxys()\n\t}\n\n\tprogramConfigure.PortForwardsRuleList[index].Enable = enable\n\treturn Save()\n}\n\nfunc UpdatePortForwardsRuleToPortForwardsRuleList(key string, r *PortForwardsRule) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range programConfigure.PortForwardsRuleList {\n\t\tif programConfigure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的端口转发规则\")\n\t}\n\n\tprogramConfigure.PortForwardsRuleList[index] = *r\n\treturn Save()\n}\n\nfunc DeletePortForwardsRuleListSlice(a []PortForwardsRule, deleteIndex int) []PortForwardsRule {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "config/reverseproxy.go",
    "content": "package config\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/ginutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar reverseProxyServerStore sync.Map\nvar reverseProxyServerStoreMu sync.Mutex\n\nfunc init() {\n\n}\n\n// TidyReverseProxyCache 整理反向代理日志缓存\nfunc TidyReverseProxyCache() {\n\truleList := GetReverseProxyRuleList()\n\tvar keyListBuffer strings.Builder\n\tfor _, rule := range ruleList {\n\t\tkeyListBuffer.WriteString(rule.DefaultProxy.Key)\n\t\tkeyListBuffer.WriteString(\",\")\n\t\tfor _, sr := range rule.ProxyList {\n\t\t\tkeyListBuffer.WriteString(sr.Key)\n\t\t\tkeyListBuffer.WriteString(\",\")\n\t\t}\n\t}\n\n\tkeyListStr := keyListBuffer.String()\n\tlogsbuffer.LogsBufferStoreMu.Lock()\n\tdefer logsbuffer.LogsBufferStoreMu.Unlock()\n\n\tvar needDeleteKeys []string\n\tfor k := range logsbuffer.LogsBufferStore {\n\t\tif !strings.HasPrefix(k, \"reverseproxy:\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(k) <= 13 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !strings.Contains(keyListStr, k[13:]) {\n\t\t\tneedDeleteKeys = append(needDeleteKeys, k)\n\t\t}\n\t}\n\n\tfor i := range needDeleteKeys {\n\t\tdelete(logsbuffer.LogsBufferStore, needDeleteKeys[i])\n\t\treverseProxyServerStore.Delete(needDeleteKeys[i])\n\t}\n\n}\n\ntype SubReverProxyRule struct {\n\tKey string `json:\"Key\"`\n\n\tinitOnce       sync.Once\n\tLocations      []string    `json:\"Locations\"` //长度大于1时均衡负载\n\tlocationMutex  *sync.Mutex `json:\"-\"`\n\tlocationsCount int         `json:\"-\"`\n\tlocationIndex  uint64      `json:\"-\"`\n\n\tEnableAccessLog            bool `json:\"EnableAccessLog\"`            //开启日志\n\tLogLevel                   int  `json:\"LogLevel\"`                   //日志输出级别\n\tLogOutputToConsole         bool `json:\"LogOutputToConsole\"`         //日志输出到终端\n\tAccessLogMaxNum            int  `json:\"AccessLogMaxNum\"`            //最大条数\n\tWebListShowLastLogMaxCount int  `json:\"WebListShowLastLogMaxCount\"` //前端列表显示最新日志最大条数\n\n\tForwardedByClientIP bool         `json:\"ForwardedByClientIP\"`\n\tTrustedCIDRsStrList []string     `json:\"TrustedCIDRsStrList\"`\n\tRemoteIPHeaders     []string     `json:\"RemoteIPHeaders\"` //识别客户端原始IP的Http请求头\n\tTrustedProxyCIDRs   []*net.IPNet `json:\"-\"`\n\n\tAddRemoteIPToHeader  bool   `json:\"AddRemoteIPToHeader\"` //追加客户端连接IP到指定Header\n\tAddRemoteIPHeaderKey string `json:\"AddRemoteIPHeaderKey\"`\n\n\tEnableBasicAuth bool   `json:\"EnableBasicAuth\"` //启用BasicAuth认证\n\tBasicAuthUser   string `json:\"BasicAuthUser\"`   //如果配置此参数，暴露出去的 HTTP 服务需要采用 Basic Auth 的鉴权才能访问\n\tBasicAuthPasswd string `json:\"BasicAuthPasswd\"` //结合 BasicAuthUser 使用\n\n\tSafeIPMode        string   `json:\"SafeIPMode\"`        //IP过滤模式 黑白名单\n\tSafeUserAgentMode string   `json:\"SafeUserAgentMode\"` //UserAgent 过滤模式 黑白名单\n\tUserAgentfilter   []string `json:\"UserAgentfilter\"`   //UserAgent 过滤内容\n\n\tCustomRobotTxt bool   `json:\"CustomRobotTxt\"`\n\tRobotTxt       string `json:\"RobotTxt\"`\n\t//------------------\n\tlogsBuffer *logsbuffer.LogsBuffer\n\tlogrus     *logrus.Logger\n\tlogger     *log.Logger\n}\n\ntype ReverseProxyRule struct {\n\tRuleName   string `json:\"RuleName\"`\n\tRuleKey    string `json:\"RuleKey\"`\n\tEnable     bool   `json:\"Enable\"`\n\tListenIP   string `json:\"ListenIP\"`\n\tListenPort int    `json:\"ListenPort\"`\n\tEnableTLS  bool   `json:\"EnableTLS\"`\n\tNetwork    string `json:\"Network\"`\n\n\tDefaultProxy struct {\n\t\tSubReverProxyRule\n\t} `json:\"DefaultProxy\"`\n\n\tProxyList  []ReverseProxy `json:\"ProxyList\"`\n\tdomainsMap *sync.Map\n\tinitOnec   sync.Once\n}\n\nfunc (r *ReverseProxyRule) Init() {\n\tr.initOnec.Do(func() {\n\t\tr.initDomainsMap()\n\n\t})\n}\n\nfunc (r *SubReverProxyRule) Logf(level logrus.Level, c *gin.Context, format string, v ...any) {\n\tclientIP := r.ClientIP(c)\n\tremoteIP := c.RemoteIP()\n\tmethod := c.Request.Method\n\thost := c.Request.Host\n\t//hostname, hostport := httputils.SplitHostPort(c.Request.Host)\n\turl := c.Request.URL.String()\n\t//path := c.Request.URL.Path\n\n\tr.GetLogrus().WithFields(logrus.Fields{\n\t\t\"ClientIP\": clientIP,\n\t\t\"RemoteIP\": remoteIP,\n\t\t\"Method\":   method,\n\t\t\"Host\":     host,\n\t\t// \"Hostname\":  hostname,\n\t\t// \"Hostport\":  hostport,\n\t\t\"URL\": url,\n\t\t//\"path\":      path,\n\t\t\"UserAgent\": c.Request.UserAgent(),\n\t}).Logf(level, format, v...)\n}\n\nfunc (r *SubReverProxyRule) HandlerReverseProxy(remote *url.URL, host, path string, c *gin.Context) {\n\n\tproxy := httputil.NewSingleHostReverseProxy(remote)\n\tproxy.Director = func(req *http.Request) {\n\t\treq.Header = c.Request.Header\n\t\treq.Host = host //remote.Host\n\t\t//req.Host = remote.Host\n\t\treq.URL.Scheme = remote.Scheme\n\t\treq.URL.Host = remote.Host\n\t\treq.URL.Path = path\n\t\tif r.AddRemoteIPToHeader && r.AddRemoteIPHeaderKey != \"\" {\n\t\t\tcip := r.ClientIP(c)\n\t\t\treq.Header.Add(r.AddRemoteIPHeaderKey, cip)\n\t\t}\n\t}\n\tproxy.ErrorLog = r.GetLogger()\n\tproxy.ServeHTTP(c.Writer, c.Request)\n\n}\n\nfunc (r *SubReverProxyRule) Fire(entry *logrus.Entry) error {\n\tif !r.LogOutputToConsole {\n\t\treturn nil\n\t}\n\ts, _ := entry.String()\n\tlog.Print(s)\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) Levels() []logrus.Level {\n\treturn logrus.AllLevels\n}\n\nfunc (r *SubReverProxyRule) GetLogrus() *logrus.Logger {\n\tif r.logrus == nil {\n\t\tr.logrus = logrus.New()\n\t\tr.logrus.SetLevel(logrus.Level(r.LogLevel))\n\t\tr.logrus.SetOutput(r.GetLogsBuffer())\n\t\tr.logrus.SetFormatter(&logrus.JSONFormatter{\n\t\t\tTimestampFormat:   \"2006-01-02 15:04:05\",\n\t\t\tDisableTimestamp:  true,\n\t\t\tDisableHTMLEscape: true,\n\t\t\tDataKey:           \"ExtInfo\",\n\t\t})\n\t\tr.logrus.AddHook(r)\n\n\t}\n\treturn r.logrus\n}\n\nfunc (r *SubReverProxyRule) GetLogger() *log.Logger {\n\tif r.logger == nil {\n\t\tr.logger = log.New(r.GetLogsBuffer(), \"\", log.LstdFlags)\n\t}\n\treturn r.logger\n}\n\nfunc (r *SubReverProxyRule) GetLogsBuffer() *logsbuffer.LogsBuffer {\n\tif r.logsBuffer == nil {\n\t\tr.logsBuffer = logsbuffer.CreateLogbuffer(\"reverseproxy:\"+r.Key, r.AccessLogMaxNum)\n\t}\n\treturn r.logsBuffer\n}\n\nfunc (r *SubReverProxyRule) checkupClientIP(ip string) bool {\n\treturn SafeCheck(r.SafeIPMode, ip)\n}\n\nfunc (r *SubReverProxyRule) checkupUserAgent(ua string) bool {\n\n\tisContains := false\n\tfor _, c := range r.UserAgentfilter {\n\t\tif strings.Contains(ua, c) {\n\t\t\tisContains = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tswitch r.SafeUserAgentMode {\n\tcase \"whitelist\":\n\t\treturn isContains\n\tcase \"blacklist\":\n\t\treturn !isContains\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (r *ReverseProxyRule) ReverseProxyHandler(c *gin.Context) {\n\tpath := c.Param(\"proxyPath\")\n\thostName, _ := httputils.SplitHostPort(c.Request.Host)\n\trule, ok := r.GetSubRuleByDomain(hostName)\n\n\tvar subRule *SubReverProxyRule = nil\n\tif ok && rule.Enable {\n\t\tsubRule = &rule.SubReverProxyRule\n\t} else {\n\t\tsubRule = &r.DefaultProxy.SubReverProxyRule\n\t}\n\n\tif !subRule.checkupClientIP(subRule.ClientIP(c)) { //IP检查\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"IP[%s]禁止访问,当前Ip检查模式[%s]\", subRule.ClientIP(c), subRule.SafeIPMode)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif !subRule.checkupUserAgent(c.Request.UserAgent()) {\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"IP[%s]UA[%s]禁止访问,当前UA检查模式[%s]\", subRule.ClientIP(c), c.Request.UserAgent(), subRule.SafeUserAgentMode)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif !subRule.BasicAuthHandler(c) {\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"BasicAuth认证不通过\")\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif subRule.CustomRobotTxt && c.Request.RequestURI == \"/robots.txt\" {\n\t\tif c.Request.Method != \"GET\" && c.Request.Method != \"HEAD\" {\n\t\t\tstatus := http.StatusOK\n\t\t\tif c.Request.Method != \"OPTIONS\" {\n\t\t\t\tstatus = http.StatusMethodNotAllowed\n\t\t\t}\n\t\t\tc.Header(\"Allow\", \"GET,HEAD,OPTIONS\")\n\t\t\tc.AbortWithStatus(status)\n\t\t\treturn\n\t\t}\n\t\tc.Data(http.StatusOK, \"text/plain\", []byte(subRule.RobotTxt))\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"触发自定义robots.txt\")\n\t\treturn\n\t}\n\n\tlocation := subRule.GetLocation()\n\tif location == \"\" && subRule.Key == r.RuleKey {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"域名[%s]没有对应后端地址,默认后端地址没有设置\", hostName)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif subRule.Key == r.RuleKey {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"[%s] 指向默认后端地址[%s%s]\", hostName, location, c.Request.URL.String())\n\t} else {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"[%s] 指向后端地址[%s%s]\", hostName, location, c.Request.URL.String())\n\t}\n\n\tremote, err := url.Parse(location)\n\tif err != nil {\n\t\tsubRule.Logf(logrus.ErrorLevel, c, \"后端地址转换出错:%s\", err.Error())\n\t\tc.JSON(http.StatusBadGateway, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"后端地址[%s] 转换出错:%s\", location, err.Error())})\n\t\treturn\n\t}\n\tsubRule.HandlerReverseProxy(remote, hostName, path, c)\n\n}\n\nfunc (r *ReverseProxyRule) GetSubRuleByDomain(domain string) (*ReverseProxy, bool) {\n\tval, ok := r.domainsMap.Load(domain)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn val.(*ReverseProxy), true\n}\n\ntype ReverseProxy struct {\n\tSubReverProxyRule\n\tEnable  bool     `json:\"Enable\"`\n\tRemark  string   `json:\"Remark\"`\n\tDomains []string `json:\"Domains\"` //自定义域名\n\n}\n\nfunc GetSubRuleByKey(ruleKey, proxyKey string) *SubReverProxyRule {\n\t//rule := getSubRuleByKey()\n\n\trule := GetReverseProxyRuleByKey(ruleKey)\n\tif rule == nil {\n\t\treturn nil\n\t}\n\n\t//fmt.Printf(\"FFF ruleKey:%s proxyKey:%s\\n\", ruleKey, proxyKey)\n\n\tif proxyKey == \"default\" {\n\n\t\treturn &rule.DefaultProxy.SubReverProxyRule\n\t}\n\n\tfor i := range rule.ProxyList {\n\t\tif rule.ProxyList[i].Key == proxyKey {\n\t\t\treturn &rule.ProxyList[i].SubReverProxyRule\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *ReverseProxyRule) GetServer() *http.Server {\n\ts, loaded := reverseProxyServerStore.Load(r.RuleKey)\n\tif !loaded {\n\t\treturn nil\n\t}\n\treturn s.(*http.Server)\n}\n\nfunc (r *ReverseProxyRule) SetServer(s *http.Server) {\n\tif s == nil {\n\t\treverseProxyServerStore.Delete(r.RuleKey)\n\t\treturn\n\t}\n\treverseProxyServerStore.Store(r.RuleKey, s)\n}\n\nfunc (r *ReverseProxyRule) ServerStart() error {\n\t// r.smu.Lock()\n\t// defer r.smu.Unlock()\n\treverseProxyServerStoreMu.Lock()\n\tdefer reverseProxyServerStoreMu.Unlock()\n\tserver := r.GetServer()\n\n\tif server != nil {\n\t\treturn fmt.Errorf(\"RuleServer[%s]已经启动,请勿重复启动\", r.Addr())\n\t}\n\tginR := gin.New()\n\n\tginR.Any(\"/*proxyPath\", r.ReverseProxyHandler)\n\tserver = &http.Server{\n\t\tAddr:    r.Addr(),\n\t\tHandler: ginR,\n\t}\n\n\t//***************************\n\tvar err error\n\tserver.TLSConfig = &tls.Config{}\n\n\tif r.EnableTLS {\n\t\tcertList := GetValidSSLCertficateList()\n\t\tserver.TLSConfig.Certificates = certList\n\t}\n\t//server.TLSConfig.Certificates = make([]tls.Certificate, 3)\n\n\t//****************************\n\n\tln, err := net.Listen(r.Network, r.Addr())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar serveResult error\n\n\tgo func() {\n\n\t\tif !r.EnableTLS {\n\t\t\tserveResult = server.Serve(ln)\n\t\t\treturn\n\t\t}\n\n\t\tif len(server.TLSConfig.Certificates) <= 0 {\n\t\t\tlog.Printf(\"可用证书列表为空,%s 未能启用TLS\", r.Addr())\n\t\t\tserveResult = server.Serve(ln)\n\t\t\treturn\n\t\t}\n\t\tlog.Printf(\"%s 已启用TLS\", r.Addr())\n\t\tserveResult = server.ServeTLS(ln, \"\", \"\")\n\n\t}()\n\n\t<-time.After(time.Millisecond * 300)\n\n\tdefer func() {\n\t\tif serveResult == nil {\n\t\t\tr.SetServer(server)\n\t\t}\n\t}()\n\n\treturn serveResult\n\n}\n\nfunc (r *ReverseProxyRule) ServerStop() {\n\treverseProxyServerStoreMu.Lock()\n\tdefer reverseProxyServerStoreMu.Unlock()\n\tserver := r.GetServer()\n\tif server == nil {\n\t\treturn\n\t}\n\tserver.Close()\n\tr.SetServer(nil)\n\n}\n\nfunc (r *ReverseProxyRule) initDomainsMap() error {\n\tr.domainsMap = &sync.Map{}\n\tfor i := range r.ProxyList {\n\t\tfor j := range r.ProxyList[i].Domains {\n\t\t\t_, loaded := r.domainsMap.LoadOrStore(r.ProxyList[i].Domains[j], &r.ProxyList[i])\n\t\t\tif loaded {\n\t\t\t\treturn fmt.Errorf(\"前端域名[%s]冲突\", r.ProxyList[i].Domains[j])\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) initOnceExec() {\n\tr.initOnce.Do(func() {\n\t\tr.locationsCount = len(r.Locations)\n\t\tr.InitTrustedProxyCIDRs()\n\t\tr.locationMutex = &sync.Mutex{}\n\t})\n}\n\nfunc (r *SubReverProxyRule) GetLocation() string {\n\tr.initOnceExec()\n\tr.locationMutex.Lock()\n\tdefer func() {\n\t\tr.locationIndex++\n\t\tr.locationMutex.Unlock()\n\t}()\n\n\tif r.locationsCount == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn r.Locations[r.locationIndex%uint64(r.locationsCount)]\n}\n\nfunc (r *SubReverProxyRule) BasicAuthHandler(c *gin.Context) bool {\n\tif !r.EnableBasicAuth || r.BasicAuthUser == \"\" {\n\t\treturn true\n\t}\n\n\trealm := \"Basic realm=\" + strconv.Quote(\"Authorization Required\")\n\tpairs := ginutils.ProcessAccounts(gin.Accounts{r.BasicAuthUser: r.BasicAuthPasswd})\n\tuser, found := pairs.SearchCredential(c.GetHeader(\"Authorization\"))\n\tif !found {\n\t\t// Credentials doesn't match, we return 401 and abort handlers chain.\n\t\tc.Header(\"WWW-Authenticate\", realm)\n\t\tc.AbortWithStatus(http.StatusUnauthorized)\n\t\treturn false\n\t}\n\tc.Set(\"user\", user)\n\treturn true\n}\n\nfunc (r *SubReverProxyRule) InitTrustedProxyCIDRs() error {\n\tvar res []*net.IPNet\n\tfor i := range r.TrustedCIDRsStrList {\n\t\tif strings.TrimSpace(r.TrustedCIDRsStrList[i]) == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\t_, cidr, err := net.ParseCIDR(r.TrustedCIDRsStrList[i])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"[%s]网段格式有误\", r.TrustedCIDRsStrList[i])\n\t\t}\n\t\tres = append(res, cidr)\n\t}\n\tr.TrustedProxyCIDRs = res\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) ClientIP(c *gin.Context) string {\n\tremoteIP := net.ParseIP(c.RemoteIP())\n\tif remoteIP == nil {\n\t\treturn \"\"\n\t}\n\n\ttrusted := r.isTrustedProxy(remoteIP)\n\n\tif trusted && r.ForwardedByClientIP && r.RemoteIPHeaders != nil {\n\t\tfor _, headerName := range r.RemoteIPHeaders {\n\t\t\tip, valid := r.validateHeader(c.Request.Header.Get(headerName))\n\t\t\tif valid {\n\t\t\t\treturn ip\n\t\t\t}\n\t\t}\n\t}\n\n\treturn remoteIP.String()\n}\n\nfunc (r *SubReverProxyRule) validateHeader(header string) (clientIP string, valid bool) {\n\tif header == \"\" {\n\t\treturn \"\", false\n\t}\n\titems := strings.Split(header, \",\")\n\tfor i := len(items) - 1; i >= 0; i-- {\n\t\tipStr := strings.TrimSpace(items[i])\n\t\tip := net.ParseIP(ipStr)\n\t\tif ip == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif (i == 0) || (!r.isTrustedProxy(ip)) {\n\t\t\treturn ipStr, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\nfunc (r *SubReverProxyRule) isTrustedProxy(ip net.IP) bool {\n\tr.initOnceExec()\n\n\tif r.TrustedProxyCIDRs == nil {\n\t\treturn false\n\t}\n\tfor _, cidr := range r.TrustedProxyCIDRs {\n\t\tif cidr.Contains(ip) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (r *ReverseProxyRule) Addr() string {\n\treturn fmt.Sprintf(\"%s:%d\", r.ListenIP, r.ListenPort)\n}\n\ntype LogItem struct {\n\tProxyKey   string\n\tClientIP   string\n\tLogContent string\n\tLogTime    string\n}\n\n// 2006-01-02 15:04:05\nfunc WebLogConvert(lg *logsbuffer.LogItem) any {\n\tl := LogItem{\n\t\tLogContent: lg.Content,\n\t\tLogTime:    time.Unix(lg.Timestamp/int64(time.Second), 0).Format(\"2006-01-02 15:04:05\")}\n\treturn l\n}\n\nfunc (r *ReverseProxyRule) GetLastLogs() map[string][]any {\n\tres := make(map[string][]any)\n\tres[\"default\"] = r.DefaultProxy.GetLogsBuffer().GetLastLogs(WebLogConvert, r.DefaultProxy.WebListShowLastLogMaxCount)\n\n\tfor i := range r.ProxyList {\n\t\tres[r.ProxyList[i].Key] = r.ProxyList[i].GetLogsBuffer().GetLastLogs(\n\t\t\tWebLogConvert, r.ProxyList[i].WebListShowLastLogMaxCount)\n\t}\n\treturn res\n}\n\n//------------------------------------------------------------\n\nfunc GetReverseProxyRuleList() []*ReverseProxyRule {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\n\tvar resList []*ReverseProxyRule\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\t\tprogramConfigure.ReverseProxyRuleList[i].Init()\n\t\trule := programConfigure.ReverseProxyRuleList[i]\n\t\tresList = append(resList, &rule)\n\t}\n\treturn resList\n}\n\nfunc GetReverseProxyRuleByKey(ruleKey string) *ReverseProxyRule {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\n\t\tif programConfigure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn nil\n\t}\n\n\tres := programConfigure.ReverseProxyRuleList[ruleIndex]\n\treturn &res\n}\n\nfunc ReverseProxyRuleListAdd(rule *ReverseProxyRule) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tprogramConfigure.ReverseProxyRuleList = append(programConfigure.ReverseProxyRuleList, *rule)\n\treturn Save()\n}\n\nfunc ReverseProxyRuleListDelete(ruleKey string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\truleIndex := -1\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\t\tif programConfigure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的反向代理任务\")\n\t}\n\n\tprogramConfigure.ReverseProxyRuleList = DeleteReverseProxyRuleListlice(programConfigure.ReverseProxyRuleList, ruleIndex)\n\treturn Save()\n}\n\nfunc EnableReverseProxyRuleByKey(ruleKey string, enable bool) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\t\tif programConfigure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理规则失败,ruleKey %s 未找到\", ruleKey)\n\t}\n\tprogramConfigure.ReverseProxyRuleList[ruleIndex].Enable = enable\n\n\treturn Save()\n}\n\nfunc EnableReverseProxySubRule(ruleKey, proxyKey string, enable bool) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\t\tif programConfigure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理子规则失败,ruleKey %s 未找到\", ruleKey)\n\t}\n\n\tproxyIndex := -1\n\tfor i := range programConfigure.ReverseProxyRuleList[ruleIndex].ProxyList {\n\t\tif programConfigure.ReverseProxyRuleList[ruleIndex].ProxyList[i].Key == proxyKey {\n\t\t\tproxyIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif proxyIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理子规则失败,proxyKey %s 未找到\", proxyKey)\n\t}\n\n\tprogramConfigure.ReverseProxyRuleList[ruleIndex].ProxyList[proxyIndex].Enable = enable\n\n\treturn Save()\n\n}\n\nfunc UpdateReverseProxyRulet(rule ReverseProxyRule) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range programConfigure.ReverseProxyRuleList {\n\t\tif programConfigure.ReverseProxyRuleList[i].RuleKey == rule.RuleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的反向代理规则\")\n\t}\n\n\t//\trule.RuleKey = programConfigure.ReverseProxyRuleList[ruleIndex].RuleKey\n\tprogramConfigure.ReverseProxyRuleList[ruleIndex] = rule\n\n\treturn Save()\n}\n\nfunc DeleteReverseProxyRuleListlice(a []ReverseProxyRule, deleteIndex int) []ReverseProxyRule {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "config/safecheck.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage config\n\nimport (\n\t\"time\"\n)\n\nfunc SafeCheck(mode, ip string) bool {\n\tswitch mode {\n\tcase \"whitelist\":\n\t\t//log.Printf(\"whitelist\")\n\t\treturn whiteListCheck(ip)\n\tcase \"blacklist\":\n\t\t//log.Printf(\"blacklist\")\n\t\treturn blackListCheck(ip)\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc whiteListCheck(ip string) bool {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tif programConfigure == nil {\n\t\treturn false\n\t}\n\n\tfor _, item := range programConfigure.WhiteListConfigure.WhiteList {\n\n\t\tif !item.Contains(ip) {\n\t\t\tcontinue\n\t\t}\n\n\t\titemEffectiveTime, err := time.ParseInLocation(\"2006-01-02 15:04:05\", item.EffectiveTime, time.Local)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\tif time.Since(itemEffectiveTime) < 0 {\n\t\t\t//log.Printf(\"CCC\")\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\t//log.Printf(\"DDDD\")\n\treturn false\n}\n\nfunc blackListCheck(ip string) bool {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tif programConfigure == nil {\n\t\treturn true\n\t}\n\n\tfor _, item := range programConfigure.BlackListConfigure.BlackList {\n\t\tif !item.Contains(ip) {\n\t\t\tcontinue\n\t\t}\n\t\titemEffectiveTime, err := time.ParseInLocation(\"2006-01-02 15:04:05\", item.EffectiveTime, time.Local)\n\t\tif err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\tif time.Since(itemEffectiveTime) < 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "config/sslcertficate.go",
    "content": "package config\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\ntype SSLCertficate struct {\n\tKey        string      `json:\"Key\"`\n\tEnable     bool        `json:\"Enable\"`\n\tRemark     string      `json:\"Remark\"` //备注\n\tCertBase64 string      `json:\"CertBase64\"`\n\tKeyBase64  string      `json:\"KeyBase64\"`\n\tAddTime    string      `json:\"AddTime\"` //添加时间\n\tCertsInfo  *[]CertInfo `json:\"-\"`\n\t//---------------------\n\tCertificate *tls.Certificate `json:\"-\"`\n}\n\nfunc (s *SSLCertficate) Init() error {\n\ttc, err := CreateX509KeyPairByBase64Str(s.CertBase64, s.KeyBase64)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"CreateX509KeyPairByBase64Str error:%s\", err.Error())\n\t}\n\tdomainsInfo, err := GetCertDomainInfo(tc)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"GetCertDomainInfo error:%s\", err.Error())\n\t}\n\ts.Certificate = tc\n\ts.CertsInfo = domainsInfo\n\treturn nil\n}\n\n// GetOnlyDomain 返回证书第一条域名\nfunc (s *SSLCertficate) GetFirstDomain() string {\n\tif s.CertsInfo == nil {\n\t\treturn \"\"\n\t}\n\tif len(*s.CertsInfo) <= 0 {\n\t\treturn \"\"\n\t}\n\tif len((*s.CertsInfo)[0].Domains) <= 0 {\n\t\treturn \"\"\n\t}\n\treturn (*s.CertsInfo)[0].Domains[0]\n}\n\nfunc CreateX509KeyPairByBase64Str(certBase64, keyBase64 string) (*tls.Certificate, error) {\n\tcrtBytes, err := base64.StdEncoding.DecodeString(certBase64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"certBase64 decode error:%s\", err.Error())\n\t}\n\n\tkeyBytes, err := base64.StdEncoding.DecodeString(keyBase64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"keyBase64 decode error:%s\", err.Error())\n\t}\n\n\tcert, err := tls.X509KeyPair(crtBytes, keyBytes)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"create X509KeyPair error:%s\", err.Error())\n\t}\n\treturn &cert, nil\n}\n\ntype CertInfo struct {\n\tDomains       []string\n\tNotBeforeTime string `json:\"NotBeforeTime\"` //time.Time\n\tNotAfterTime  string `json:\"NotAfterTime\"`  //time.Time\n}\n\nfunc GetCertDomainInfo(cert *tls.Certificate) (*[]CertInfo, error) {\n\tif cert == nil {\n\t\treturn nil, fmt.Errorf(\"cert == nil\")\n\t}\n\n\tvar res []CertInfo\n\n\tfor i := range cert.Certificate {\n\t\txx, err := x509.ParseCertificate(cert.Certificate[i])\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tds := GetDomainsTrimSpace(xx.DNSNames)\n\t\tif len(ds) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tinfo := CertInfo{Domains: ds, NotBeforeTime: xx.NotBefore.Format(\"2006-01-02 15:04:05\"), NotAfterTime: xx.NotAfter.Format(\"2006-01-02 15:04:05\")}\n\t\tres = append(res, info)\n\t}\n\treturn &res, nil\n\n}\n\nfunc GetCertDomains(cert *tls.Certificate) []string {\n\tvar res []string\n\tif cert == nil {\n\t\treturn res\n\t}\n\tfor i := range cert.Certificate {\n\t\txx, err := x509.ParseCertificate(cert.Certificate[i])\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor j := range xx.DNSNames {\n\t\t\td := strings.TrimSpace(xx.DNSNames[j])\n\t\t\tif d == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tres = append(res, d)\n\t\t}\n\t}\n\treturn res\n}\n\n// 除去空域名\nfunc GetDomainsTrimSpace(dst []string) []string {\n\tvar res []string\n\tfor i := range dst {\n\t\tif strings.TrimSpace(dst[i]) == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, strings.TrimSpace(dst[i]))\n\t}\n\treturn res\n}\n\nfunc GetDomainsStrByDomains(dst []string) string {\n\tvar res strings.Builder\n\tfor i := range dst {\n\t\td := strings.TrimSpace(dst[i])\n\t\tif d == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif res.Len() > 0 {\n\t\t\tres.WriteString(\",\")\n\t\t}\n\t\tres.WriteString(d)\n\t}\n\treturn res.String()\n}\n\n//---------------------------------\n\nfunc SSLCertficateListInit() {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar err error\n\tfor i := range programConfigure.SSLCertficateList {\n\t\terr = programConfigure.SSLCertficateList[i].Init()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"SSLCertficateListInit [%s]err:%s\", programConfigure.SSLCertficateList[i].Key, err.Error())\n\t\t}\n\t}\n}\n\nfunc GetSSLCertficateList() []SSLCertficate {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar res []SSLCertficate\n\tif programConfigure == nil {\n\t\treturn res\n\t}\n\n\tfor i := range programConfigure.SSLCertficateList {\n\t\tres = append(res, programConfigure.SSLCertficateList[i])\n\t}\n\treturn res\n}\n\nfunc SSLCertficateListAdd(s *SSLCertficate) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\t//************\n\t//重复检测\n\tfor i := range programConfigure.SSLCertficateList {\n\t\tif programConfigure.SSLCertficateList[i].CertBase64 == s.CertBase64 {\n\t\t\treturn fmt.Errorf(\"绑定域名[%s]的相同证书已存在,请勿重复添加\", (*s.CertsInfo)[0].Domains[0])\n\t\t}\n\n\t\tif programConfigure.SSLCertficateList[i].GetFirstDomain() != \"\" &&\n\t\t\tprogramConfigure.SSLCertficateList[i].GetFirstDomain() == s.GetFirstDomain() {\n\t\t\treturn fmt.Errorf(\"绑定域名[%s]的证书已存在,如果要添加新证书请先手动删除旧证书\", (*s.CertsInfo)[0].Domains[0])\n\t\t}\n\t}\n\n\t//************\n\n\tif s.Key == \"\" {\n\t\ts.Key = stringsp.GetRandomString(8)\n\t}\n\ts.AddTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\ts.Enable = true\n\tprogramConfigure.SSLCertficateList = append(programConfigure.SSLCertficateList, *s)\n\treturn Save()\n}\n\nfunc SSLCertficateListDelete(key string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tdeleteIndex := -1\n\n\tfor i := range programConfigure.SSLCertficateList {\n\t\tif programConfigure.SSLCertficateList[i].Key == key {\n\t\t\tdeleteIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif deleteIndex < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tprogramConfigure.SSLCertficateList = DeleteSSLCertficateListslice(programConfigure.SSLCertficateList, deleteIndex)\n\treturn Save()\n}\n\nfunc SSLCertficateEnable(key string, enable bool) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range programConfigure.SSLCertficateList {\n\t\tif programConfigure.SSLCertficateList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tprogramConfigure.SSLCertficateList[index].Enable = enable\n\treturn Save()\n}\n\nfunc SSLCertficateAlterRemark(key, remark string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range programConfigure.SSLCertficateList {\n\t\tif programConfigure.SSLCertficateList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tprogramConfigure.SSLCertficateList[index].Remark = remark\n\treturn Save()\n}\n\nfunc DeleteSSLCertficateListslice(a []SSLCertficate, deleteIndex int) []SSLCertficate {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc GetValidSSLCertficateList() []tls.Certificate {\n\tvar res []tls.Certificate\n\tvar gdnRes []tls.Certificate\n\tsslListCache := GetSSLCertficateList()\n\tfor _, s := range sslListCache {\n\t\tif !s.Enable {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(s.GetFirstDomain(), \"*.\") {\n\t\t\tgdnRes = append(gdnRes, *s.Certificate)\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, *s.Certificate)\n\t}\n\tres = append(res, gdnRes...)\n\n\treturn res\n}\n"
  },
  {
    "path": "config/whitelist.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage config\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype WhiteListConfigure struct {\n\tBaseConfigure WhiteListBaseConfigure `json:\"BaseConfigure\"`\n\tWhiteList     []WhiteListItem        `json:\"WhiteList\"` //白名单列表\n}\n\ntype WhiteListItem struct {\n\tIP            string     `json:\"IP\"`\n\tEffectiveTime string     `json:\"Effectivetime\"` //有效时间\n\tNetIP         net.IP     `json:\"-\"`\n\tCidr          *net.IPNet `json:\"-\"`\n}\n\nfunc (w *WhiteListItem) Contains(ip string) bool {\n\tnetIP := net.ParseIP(ip)\n\tif netIP == nil {\n\t\treturn false\n\t}\n\tif w.NetIP != nil {\n\t\treturn w.NetIP.Equal(netIP)\n\t}\n\n\tif w.Cidr != nil {\n\t\treturn w.Cidr.Contains(netIP)\n\t}\n\treturn false\n}\n\ntype WhiteListBaseConfigure struct {\n\tURL                string `json:\"URL\"`\n\tActivelifeDuration int32  `json:\"ActivelifeDuration\"` //有效期限,小时\n\tBasicAccount       string `json:\"BasicAccount\"`\n\tBasicPassword      string `json:\"BasicPassword\"`\n}\n\nfunc GetWhiteListBaseConfigure() WhiteListBaseConfigure {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\treturn programConfigure.WhiteListConfigure.BaseConfigure\n}\n\nfunc SetWhiteListBaseConfigure(activelifeDuration int32, url, account, password string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tprogramConfigure.WhiteListConfigure.BaseConfigure.URL = url\n\tprogramConfigure.WhiteListConfigure.BaseConfigure.ActivelifeDuration = activelifeDuration\n\tprogramConfigure.WhiteListConfigure.BaseConfigure.BasicAccount = account\n\tprogramConfigure.WhiteListConfigure.BaseConfigure.BasicPassword = password\n\treturn Save()\n}\n\nfunc GetWhiteList() []WhiteListItem {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\n\tWhiteListFlush(false)\n\n\tvar resList []WhiteListItem\n\tif programConfigure == nil {\n\t\treturn resList\n\t}\n\tfor i := range programConfigure.WhiteListConfigure.WhiteList {\n\t\tresList = append(resList, programConfigure.WhiteListConfigure.WhiteList[i])\n\t}\n\treturn resList\n}\n\nfunc WhiteListInit() {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar netIP net.IP\n\tvar cidr *net.IPNet\n\n\tfor i := range programConfigure.WhiteListConfigure.WhiteList {\n\t\tnetIP = nil\n\t\tcidr = nil\n\t\tif strings.Contains(programConfigure.WhiteListConfigure.WhiteList[i].IP, \"/\") {\n\t\t\t_, cidr, _ = net.ParseCIDR(programConfigure.WhiteListConfigure.WhiteList[i].IP)\n\t\t} else {\n\t\t\tnetIP = net.ParseIP(programConfigure.WhiteListConfigure.WhiteList[i].IP)\n\t\t}\n\t\tprogramConfigure.WhiteListConfigure.WhiteList[i].Cidr = cidr\n\t\tprogramConfigure.WhiteListConfigure.WhiteList[i].NetIP = netIP\n\t}\n}\n\nfunc WhiteListAdd(ip string, activelifeDuration int32) (string, error) {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tvar err error\n\tvar netIP net.IP = nil\n\tvar cidr *net.IPNet = nil\n\tif strings.Contains(ip, \"/\") {\n\t\t_, cidr, err = net.ParseCIDR(ip)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"网段格式有误，转换出错：%s\", err.Error())\n\t\t}\n\t} else {\n\t\tnetIP = net.ParseIP(ip)\n\t\tif netIP == nil {\n\t\t\treturn \"\", fmt.Errorf(\"IP格式有误\")\n\t\t}\n\t}\n\n\tif activelifeDuration <= 0 {\n\t\tactivelifeDuration = programConfigure.WhiteListConfigure.BaseConfigure.ActivelifeDuration\n\t}\n\n\tEffectiveTimeStr := time.Now().Add(time.Hour * time.Duration(activelifeDuration)).Format(\"2006-01-02 15:04:05\")\n\n\tfor i, ipr := range programConfigure.WhiteListConfigure.WhiteList {\n\t\tif ipr.IP == ip {\n\t\t\tprogramConfigure.WhiteListConfigure.WhiteList[i].EffectiveTime = EffectiveTimeStr\n\t\t\treturn EffectiveTimeStr, Save()\n\t\t}\n\t}\n\titem := WhiteListItem{IP: ip, EffectiveTime: EffectiveTimeStr, NetIP: netIP, Cidr: cidr}\n\tprogramConfigure.WhiteListConfigure.WhiteList = append(programConfigure.WhiteListConfigure.WhiteList, item)\n\treturn EffectiveTimeStr, Save()\n}\n\nfunc WhiteListDelete(ip string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tremoveCount := 0\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range programConfigure.WhiteListConfigure.WhiteList {\n\t\tif ipr.IP == ip {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tprogramConfigure.WhiteListConfigure.WhiteList = DeleteWhiteListlice(programConfigure.WhiteListConfigure.WhiteList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn Save()\n}\n\nfunc WhiteListFlush(lock bool) error {\n\tif lock {\n\t\tprogramConfigureMutex.Lock()\n\t\tdefer programConfigureMutex.Unlock()\n\t}\n\n\tremoveCount := 0\n\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range programConfigure.WhiteListConfigure.WhiteList {\n\t\tipat, err := time.ParseInLocation(\"2006-01-02 15:04:05\", ipr.EffectiveTime, time.Local)\n\t\tif err != nil { //有效时间格式有误,当失效处理\n\t\t\tremoveIndex = i\n\n\t\t\tbreak\n\t\t}\n\n\t\tif time.Since(ipat) > 0 {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tprogramConfigure.WhiteListConfigure.WhiteList = DeleteWhiteListlice(programConfigure.WhiteListConfigure.WhiteList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn Save()\n}\n\nfunc DeleteWhiteListlice(a []WhiteListItem, deleteIndex int) []WhiteListItem {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "config/wol.go",
    "content": "package config\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/gdy666/lucky/thirdlib/go-wol\"\n)\n\ntype WOLDevice struct {\n\tKey          string\n\tDeviceName   string\n\tMacList      []string\n\tBroadcastIPs []string\n\tPort         int\n\tRelay        bool //交给中继设备发送\n\tRepeat       int  //重复发送次数\n}\n\nfunc (d *WOLDevice) WakeUp() error {\n\treturn WakeOnLan(d.MacList, d.BroadcastIPs, d.Port, d.Repeat)\n}\n\nfunc WakeOnLan(macList []string, broadcastIps []string, port, repeat int) (err error) {\n\tglobalBroadcastList := netinterfaces.GetGlobalIPv4BroadcastList()\n\tmatchCount := 0\n\n\tdefer func() {\n\t\tif matchCount <= 0 {\n\t\t\terr = fmt.Errorf(\"找不到匹配的局域网广播IP,未能发送唤醒指令\")\n\t\t}\n\t}()\n\n\tif len(broadcastIps) > 0 {\n\t\tfor _, bcst := range broadcastIps {\n\t\t\tbcstOk := stringsp.StrIsInList(bcst, globalBroadcastList)\n\t\t\tif !bcstOk {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmatchCount++\n\t\t\tfor _, mac := range macList {\n\t\t\t\twol.WakeUpRepeat(mac, bcst, \"\", port, repeat)\n\t\t\t}\n\n\t\t}\n\t\treturn\n\t}\n\n\tfor _, bcst := range globalBroadcastList {\n\t\tmatchCount++\n\t\tfor _, mac := range macList {\n\t\t\twol.WakeUpRepeat(mac, bcst, \"\", port, repeat)\n\t\t}\n\t}\n\n\treturn\n}\n\n//----------------------------------------\n\nfunc GetWOLDeviceByKey(key string) *WOLDevice {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range programConfigure.WOLDeviceList {\n\t\tif programConfigure.WOLDeviceList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index < 0 {\n\t\treturn nil\n\t}\n\tdevice := programConfigure.WOLDeviceList[index]\n\treturn &device\n\n}\n\nfunc GetWOLDeviceList() []WOLDevice {\n\tprogramConfigureMutex.RLock()\n\tdefer programConfigureMutex.RUnlock()\n\tvar res []WOLDevice\n\tif programConfigure == nil {\n\t\treturn res\n\t}\n\n\tfor i := range programConfigure.WOLDeviceList {\n\t\tres = append(res, programConfigure.WOLDeviceList[i])\n\t}\n\treturn res\n}\n\nfunc WOLDeviceListAdd(d *WOLDevice) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\n\tif d.Key == \"\" {\n\t\td.Key = stringsp.GetRandomString(8)\n\t}\n\tprogramConfigure.WOLDeviceList = append(programConfigure.WOLDeviceList, *d)\n\treturn Save()\n}\n\nfunc WOLDeviceListAlter(d *WOLDevice) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range programConfigure.WOLDeviceList {\n\t\tif programConfigure.WOLDeviceList[i].Key == d.Key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", d.Key)\n\t}\n\tprogramConfigure.WOLDeviceList[index] = *d\n\treturn Save()\n}\n\nfunc WOLDeviceListDelete(key string) error {\n\tprogramConfigureMutex.Lock()\n\tdefer programConfigureMutex.Unlock()\n\tdeleteIndex := -1\n\n\tfor i := range programConfigure.WOLDeviceList {\n\t\tif programConfigure.WOLDeviceList[i].Key == key {\n\t\t\tdeleteIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif deleteIndex < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tprogramConfigure.WOLDeviceList = DeleteWOLDeviceListslice(programConfigure.WOLDeviceList, deleteIndex)\n\treturn Save()\n}\n\nfunc DeleteWOLDeviceListslice(a []WOLDevice, deleteIndex int) []WOLDevice {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "ddns/alidns.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\nconst (\n\talidnsEndpoint string = \"https://alidns.aliyuncs.com/\"\n)\n\n// https://help.aliyun.com/document_detail/29776.html?spm=a2c4g.11186623.6.672.715a45caji9dMA\n// Alidns Alidns\ntype Alidns struct {\n\tDNSCommon\n\tTTL string\n}\n\n// AlidnsRecord record\ntype AlidnsRecord struct {\n\tDomainName string\n\tRecordID   string\n\tValue      string\n}\n\n// AlidnsSubDomainRecords 记录\ntype AlidnsSubDomainRecords struct {\n\tTotalCount    int\n\tDomainRecords struct {\n\t\tRecord []AlidnsRecord\n\t}\n}\n\n// AlidnsResp 修改/添加返回结果\ntype AlidnsResp struct {\n\tRecordID  string\n\tRequestID string\n}\n\n// Init 初始化\nfunc (ali *Alidns) Init(task *ddnscore.DDNSTaskInfo) {\n\tali.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tali.TTL = \"600\"\n\t} else {\n\t\tali.TTL = task.TTL\n\t}\n\tali.SetCreateUpdateDomainFunc(ali.createUpdateDomain)\n}\n\nfunc (ali *Alidns) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records AlidnsSubDomainRecords\n\t// 获取当前域名信息\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"DescribeSubDomainRecords\")\n\tparams.Set(\"DomainName\", domain.DomainName)\n\tparams.Set(\"SubDomain\", domain.GetFullDomain())\n\tparams.Set(\"Type\", recordType)\n\terr := ali.request(params, &records)\n\n\tif err != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t\treturn\n\t}\n\n\tif records.TotalCount > 0 {\n\t\t// 默认第一个\n\t\trecordSelected := records.DomainRecords.Record[0]\n\t\tif params.Has(\"RecordId\") {\n\t\t\tfor i := 0; i < len(records.DomainRecords.Record); i++ {\n\t\t\t\tif records.DomainRecords.Record[i].RecordID == params.Get(\"RecordId\") {\n\t\t\t\t\trecordSelected = records.DomainRecords.Record[i]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// 存在，更新\n\t\tali.modify(recordSelected, domain, recordType, ipAddr)\n\t} else {\n\t\t// 不存在，创建\n\t\tali.create(domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (ali *Alidns) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"AddDomainRecord\")\n\tparams.Set(\"DomainName\", domain.DomainName)\n\tparams.Set(\"RR\", domain.GetSubDomain())\n\tparams.Set(\"Type\", recordType)\n\tparams.Set(\"Value\", ipAddr)\n\tparams.Set(\"TTL\", ali.TTL)\n\n\tvar result AlidnsResp\n\terr := ali.request(params, &result)\n\n\tif err == nil && result.RecordID != \"\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:\\n%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (ali *Alidns) modify(recordSelected AlidnsRecord, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif recordSelected.Value == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"UpdateDomainRecord\")\n\tparams.Set(\"RR\", domain.GetSubDomain())\n\tparams.Set(\"RecordId\", recordSelected.RecordID)\n\tparams.Set(\"Type\", recordType)\n\tparams.Set(\"Value\", ipAddr)\n\tparams.Set(\"TTL\", ali.TTL)\n\n\tvar result AlidnsResp\n\terr := ali.request(params, &result)\n\n\tif err == nil && result.RecordID != \"\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// request 统一请求接口\nfunc (ali *Alidns) request(params url.Values, result interface{}) (err error) {\n\n\tutil.AliyunSigner(ali.task.DNS.ID, ali.task.DNS.Secret, &params)\n\n\treq, err := http.NewRequest(\n\t\t\"GET\",\n\t\talidnsEndpoint,\n\t\tbytes.NewBuffer(nil),\n\t)\n\treq.URL.RawQuery = params.Encode()\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\tclient, err := ali.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "ddns/baidu.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\n// https://cloud.baidu.com/doc/BCD/s/4jwvymhs7\n\nconst (\n\tbaiduEndpoint = \"https://bcd.baidubce.com\"\n)\n\ntype BaiduCloud struct {\n\tDNSCommon\n\tTTL int\n}\n\n// BaiduRecord 单条解析记录\ntype BaiduRecord struct {\n\tRecordId uint   `json:\"recordId\"`\n\tDomain   string `json:\"domain\"`\n\tView     string `json:\"view\"`\n\tRdtype   string `json:\"rdtype\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n\tStatus   string `json:\"status\"`\n}\n\n// BaiduRecordsResp 获取解析列表拿到的结果\ntype BaiduRecordsResp struct {\n\tTotalCount int           `json:\"totalCount\"`\n\tResult     []BaiduRecord `json:\"result\"`\n}\n\n// BaiduListRequest 获取解析列表请求的body json\ntype BaiduListRequest struct {\n\tDomain   string `json:\"domain\"`\n\tPageNum  int    `json:\"pageNum\"`\n\tPageSize int    `json:\"pageSize\"`\n}\n\n// BaiduModifyRequest 修改解析请求的body json\ntype BaiduModifyRequest struct {\n\tRecordId uint   `json:\"recordId\"`\n\tDomain   string `json:\"domain\"`\n\tView     string `json:\"view\"`\n\tRdType   string `json:\"rdType\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n}\n\n// BaiduCreateRequest 创建新解析请求的body json\ntype BaiduCreateRequest struct {\n\tDomain   string `json:\"domain\"`\n\tRdType   string `json:\"rdType\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n}\n\nfunc (baidu *BaiduCloud) Init(task *ddnscore.DDNSTaskInfo) {\n\tbaidu.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\tbaidu.TTL = 300\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tbaidu.TTL = 300\n\t\t} else {\n\t\t\tbaidu.TTL = ttl\n\t\t}\n\t}\n\tbaidu.SetCreateUpdateDomainFunc(baidu.createUpdateDomain)\n}\n\nfunc (baidu *BaiduCloud) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records BaiduRecordsResp\n\n\trequestBody := BaiduListRequest{\n\t\tDomain:   domain.DomainName,\n\t\tPageNum:  1,\n\t\tPageSize: 1000,\n\t}\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/list\", requestBody, &records)\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tfind := false\n\tfor _, record := range records.Result {\n\t\tif record.Domain == domain.GetSubDomain() {\n\t\t\t//存在就去更新\n\t\t\tbaidu.modify(record, domain, recordType, ipAddr)\n\t\t\tfind = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !find {\n\t\t//没找到，去创建\n\t\tbaidu.create(domain, recordType, ipAddr)\n\t}\n}\n\n// create 创建新的解析\nfunc (baidu *BaiduCloud) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tvar baiduCreateRequest = BaiduCreateRequest{\n\t\tDomain:   domain.GetSubDomain(), //处理一下@\n\t\tRdType:   recordType,\n\t\tTTL:      baidu.TTL,\n\t\tRdata:    ipAddr,\n\t\tZoneName: domain.DomainName,\n\t}\n\tvar result BaiduRecordsResp\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/add\", baiduCreateRequest, &result)\n\tif err == nil {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\t//log.Printf(\"新增域名解析 %s 失败！\", domain)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\n// modify 更新解析\nfunc (baidu *BaiduCloud) modify(record BaiduRecord, domain *ddnscore.Domain, rdType string, ipAddr string) {\n\t//没有变化直接跳过\n\tif record.Rdata == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\tvar baiduModifyRequest = BaiduModifyRequest{\n\t\tRecordId: record.RecordId,\n\t\tDomain:   record.Domain,\n\t\tView:     record.View,\n\t\tRdType:   rdType,\n\t\tTTL:      record.TTL,\n\t\tRdata:    ipAddr,\n\t\tZoneName: record.ZoneName,\n\t}\n\tvar result BaiduRecordsResp\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/edit\", baiduModifyRequest, &result)\n\tif err == nil {\n\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\t//log.Printf(\"更新域名解析 %s 失败！\", domain)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\n// request 统一请求接口\nfunc (baidu *BaiduCloud) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\tutil.BaiduSigner(baidu.task.DNS.ID, baidu.task.DNS.Secret, req)\n\n\tclient, err := baidu.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "ddns/callback.go",
    "content": "package ddns\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\ntype Callback struct {\n\tDNSCommon\n\tTTL string\n}\n\n// Init 初始化\nfunc (cb *Callback) Init(task *ddnscore.DDNSTaskInfo) {\n\tcb.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认600\n\t\tcb.TTL = \"600\"\n\t} else {\n\t\tcb.TTL = task.TTL\n\t}\n\tcb.SetCreateUpdateDomainFunc(cb.createUpdateDomain)\n}\n\nfunc CopyHeadersMap(sm map[string]string) map[string]string {\n\tdm := make(map[string]string)\n\n\tfor k, v := range sm {\n\t\tdm[k] = v\n\t}\n\n\treturn dm\n}\n\nfunc (cb *Callback) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\turl := replacePara(cb.task.DNS.Callback.URL, ipAddr, domain, recordType, cb.TTL)\n\trequestBody := replacePara(cb.task.DNS.Callback.RequestBody, ipAddr, domain, recordType, cb.TTL)\n\n\t//headersStr := cb.task.DNS.Callback.Headers\n\tvar headerStrList []string\n\tfor i := range cb.task.DNS.Callback.Headers {\n\t\theader := replacePara(cb.task.DNS.Callback.Headers[i], ipAddr, domain, recordType, cb.TTL)\n\t\theaderStrList = append(headerStrList, header)\n\t}\n\n\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\tsucccssCotentList := []string{}\n\tfor i := range cb.task.DNS.Callback.CallbackSuccessContent {\n\t\tcontent := replacePara(cb.task.DNS.Callback.CallbackSuccessContent[i], ipAddr, domain, recordType, cb.TTL)\n\t\tsucccssCotentList = append(succcssCotentList, content)\n\t}\n\n\tcallErr := cb.CallbackHttpClientDo(cb.task.DNS.Callback.Method, url, requestBody, headers, succcssCotentList)\n\n\tif callErr != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, callErr.Error())\n\t\treturn\n\t}\n\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n}\n\n// replacePara 替换参数\nfunc replacePara(orgPara, ipAddr string, domain *ddnscore.Domain, recordType string, ttl string) (newPara string) {\n\torgPara = strings.ReplaceAll(orgPara, \"#{ip}\", ipAddr)\n\torgPara = strings.ReplaceAll(orgPara, \"#{domain}\", domain.String())\n\torgPara = strings.ReplaceAll(orgPara, \"#{recordType}\", recordType)\n\torgPara = strings.ReplaceAll(orgPara, \"#{ttl}\", ttl)\n\n\tfor k, v := range domain.GetCustomParams() {\n\t\tif len(v) == 1 {\n\t\t\torgPara = strings.ReplaceAll(orgPara, \"#{\"+k+\"}\", v[0])\n\t\t}\n\t}\n\n\treturn orgPara\n}\n\nfunc (cb *Callback) CallbackHttpClientDo(method, url, requestBody string, headers map[string]string, callbackSuccessContent []string) error {\n\n\tglobalDDNSConf := config.GetDDNSConfigure()\n\tdnsConf := cb.task.DNS\n\tstatusCode, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tdnsConf.HttpClientProxyType,\n\t\tdnsConf.HttpClientProxyAddr,\n\t\tdnsConf.HttpClientProxyUser,\n\t\tdnsConf.HttpClientProxyPassword,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Duration(cb.task.HttpClientTimeout)*time.Second)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Callback 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tif cb.task.DNS.Callback.DisableCallbackSuccessContentCheck {\n\t\tif statusCode == http.StatusOK {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"调用接口失败:\\n statusCode:%d\\n%s\", statusCode, respStr)\n\t}\n\n\t//log.Printf(\"接口[%s]调用响应:%s\\n\", url, respStr)\n\n\t//fmt.Printf(\"statusCode:%d\\n\", statusCode)\n\n\tfor _, successContent := range callbackSuccessContent {\n\t\tif strings.Contains(respStr, successContent) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fmt.Errorf(\"调用接口失败:\\n%s\", respStr)\n}\n"
  },
  {
    "path": "ddns/cloudflare.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\tzonesAPI string = \"https://api.cloudflare.com/client/v4/zones\"\n)\n\n// Cloudflare Cloudflare实现\ntype Cloudflare struct {\n\tDNSCommon\n\tTTL int\n}\n\n// CloudflareZonesResp cloudflare zones返回结果\ntype CloudflareZonesResp struct {\n\tCloudflareStatus\n\tResult []struct {\n\t\tID     string\n\t\tName   string\n\t\tStatus string\n\t\tPaused bool\n\t}\n}\n\n// CloudflareRecordsResp records\ntype CloudflareRecordsResp struct {\n\tCloudflareStatus\n\tResult []CloudflareRecord\n}\n\n// CloudflareRecord 记录实体\ntype CloudflareRecord struct {\n\tID      string `json:\"id\"`\n\tName    string `json:\"name\"`\n\tType    string `json:\"type\"`\n\tContent string `json:\"content\"`\n\tProxied bool   `json:\"proxied\"`\n\tTTL     int    `json:\"ttl\"`\n}\n\n// CloudflareStatus 公共状态\ntype CloudflareStatus struct {\n\tSuccess  bool\n\tMessages []string\n}\n\n// Init 初始化\nfunc (cf *Cloudflare) Init(task *ddnscore.DDNSTaskInfo) {\n\tcf.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认1 auto ttl\n\t\tcf.TTL = 1\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tcf.TTL = 1\n\t\t} else {\n\t\t\tcf.TTL = ttl\n\t\t}\n\t}\n\tcf.SetCreateUpdateDomainFunc(cf.createUpdateDomain)\n}\n\nfunc (cf *Cloudflare) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tresult, err := cf.getZones(domain)\n\tif err != nil || len(result.Result) != 1 {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t} else {\n\t\t\terrMsg += fmt.Sprintf(\"%v\", result)\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\tzoneID := result.Result[0].ID\n\n\tvar records CloudflareRecordsResp\n\t// getDomains 最多更新前50条\n\terr = cf.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records?type=%s&name=%s&per_page=50\", zoneID, recordType, domain),\n\t\tnil,\n\t\t&records,\n\t)\n\n\tif err != nil || !records.Success {\n\t\terrMsg := \"更新失败[002]:\\n\"\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tif len(records.Result) > 0 {\n\t\t// 更新\n\t\tcf.modify(records, zoneID, domain, recordType, ipAddr)\n\t} else {\n\t\t// 新增\n\t\tcf.create(zoneID, domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (cf *Cloudflare) create(zoneID string, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\trecord := &CloudflareRecord{\n\t\tType:    recordType,\n\t\tName:    domain.String(),\n\t\tContent: ipAddr,\n\t\tProxied: false,\n\t\tTTL:     cf.TTL,\n\t}\n\n\tvar status CloudflareStatus\n\terr := cf.request(\n\t\t\"POST\",\n\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records\", zoneID),\n\t\trecord,\n\t\t&status,\n\t)\n\tif err == nil && status.Success {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:\\n%v\\n\", status)\n\t\tif err != nil {\n\t\t\terrMsg += fmt.Sprintf(\":%s\", err.Error())\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (cf *Cloudflare) modify(result CloudflareRecordsResp, zoneID string, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\tfor _, record := range result.Result {\n\t\t// 相同不修改\n\t\tif record.Content == ipAddr {\n\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t} else {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tvar status CloudflareStatus\n\t\trecord.Content = ipAddr\n\t\trecord.TTL = cf.TTL\n\n\t\terr := cf.request(\n\t\t\t\"PUT\",\n\t\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records/%s\", zoneID, record.ID),\n\t\t\trecord,\n\t\t\t&status,\n\t\t)\n\n\t\tif err == nil && status.Success {\n\t\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\t//log.Printf(\"更新域名解析 %s 失败！Messages: %s\", domain, status.Messages)\n\t\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", status)\n\t\t\tif err != nil {\n\t\t\t\terrMsg += err.Error()\n\t\t\t}\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\t}\n\t}\n}\n\n// 获得域名记录列表\nfunc (cf *Cloudflare) getZones(domain *ddnscore.Domain) (result CloudflareZonesResp, err error) {\n\terr = cf.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(zonesAPI+\"?name=%s&status=%s&per_page=%s\", domain.DomainName, \"active\", \"50\"),\n\t\tnil,\n\t\t&result,\n\t)\n\n\treturn\n}\n\n// request 统一请求接口\nfunc (cf *Cloudflare) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+cf.task.DNS.Secret)\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\tclient, err := cf.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "ddns/dns.go",
    "content": "package ddns\n\nimport \"github.com/gdy666/lucky/ddnscore.go\"\n\n// DNS interface\ntype DNS interface {\n\tInit(task *ddnscore.DDNSTaskInfo)\n\t// 添加或更新IPv4/IPv6记录\n\tAddUpdateDomainRecords() string\n}\n"
  },
  {
    "path": "ddns/dnscommon.go",
    "content": "package ddns\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/miekg/dns\"\n\t\"golang.org/x/net/idna\"\n)\n\ntype DNSCommon struct {\n\t//Domains                *config.Domains\n\tcreateUpdateDomainFunc func(recordType, ipaddr string, domain *ddnscore.Domain)\n\ttask                   *ddnscore.DDNSTaskInfo\n}\n\nfunc (d *DNSCommon) SetCreateUpdateDomainFunc(f func(recordType, ipaddr string, domain *ddnscore.Domain)) {\n\td.createUpdateDomainFunc = f\n}\n\nfunc (d *DNSCommon) Init(task *ddnscore.DDNSTaskInfo) {\n\td.task = task\n}\n\n// 添加或更新IPv4/IPv6记录\nfunc (d *DNSCommon) AddUpdateDomainRecords() string {\n\tif d.task.TaskType == \"IPv6\" {\n\n\t\treturn d.addUpdateDomainRecords(\"AAAA\")\n\t}\n\treturn d.addUpdateDomainRecords(\"A\")\n}\n\nfunc (d *DNSCommon) addUpdateDomainRecords(recordType string) string {\n\tipAddr, change := d.task.CheckIPChange()\n\tdefer ddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\n\td.task.TaskState.SetIPAddr(ipAddr)\n\t//及时刷新IP地址显示\n\tddnscore.DDNSTaskInfoMapUpdateIPInfo(d.task)\n\n\tif ipAddr == \"\" {\n\t\td.task.TaskState.SetDomainUpdateStatus(ddnscore.UpdatePause, \"获取公网IP失败\")\n\n\t\treturn ipAddr\n\t}\n\n\t//var preFaildDomains []ddnscore.Domain\n\n\tcheckDoamins := d.task.TaskState.Domains\n\n\t//log.Printf(\"时间间隔:%d秒\", time.Since(d.task.TaskState.LastSyncTime)/time.Second)\n\n\tif time.Since(d.task.TaskState.LastSyncTime) > time.Second*time.Duration(d.task.DNS.ForceInterval-1) {\n\t\t//log.Printf(\"DDNS任务[%s]强制更新\", d.task.TaskName)\n\t\tchange = true\n\t\tgoto sync\n\t}\n\n\t//设置原先状态成功的为继续成功\n\t//不成功的就更新\n\tif !change { //公网IP没有改变\n\t\tcheckDoamins = []ddnscore.Domain{}\n\t\tfor i := range d.task.TaskState.Domains { //如果原先状态成功或不改变就刷新时间\n\t\t\tif d.task.TaskState.Domains[i].UpdateStatus == ddnscore.UpdatedNothing ||\n\t\t\t\td.task.TaskState.Domains[i].UpdateStatus == ddnscore.UpdatedSuccess {\n\t\t\t\td.task.TaskState.Domains[i].SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcheckDoamins = append(checkDoamins, d.task.TaskState.Domains[i])\n\t\t}\n\n\t\tif len(checkDoamins) == 0 {\n\t\t\treturn ipAddr\n\t\t}\n\t}\n\nsync:\n\tif change {\n\t\tsyncTime := time.Now()\n\t\tdefer func() {\n\t\t\t//记录最近一次同步操作时间\n\t\t\td.task.TaskState.LastSyncTime = syncTime\n\t\t}()\n\t}\n\n\tfor i := range checkDoamins {\n\n\t\tif d.createUpdateDomainFunc == nil {\n\t\t\tlog.Printf(\"ddns createUpdateDomainFunc undefine\")\n\t\t\tbreak\n\t\t}\n\n\t\tdomain := getDomainItem(checkDoamins[i].String(), &d.task.TaskState.Domains)\n\t\tif domain == nil {\n\t\t\tlog.Printf(\"getDomainItem nil\")\n\t\t\tcontinue\n\t\t}\n\n\t\tif d.task.DNS.ResolverDoaminCheck {\n\t\t\t//<-time.After(time.Second)\n\n\t\t\tdomainResolverIPaddr, _ := ResolveDomainAtServerList(recordType, domain.String(), d.task.DNS.DNSServerList)\n\t\t\t//log.Printf(\"domain:%s domainResolverIPaddr:%s ,ipaddr:%s\", domain.String(), domainResolverIPaddr, ipAddr)\n\n\t\t\tif domainResolverIPaddr == ipAddr {\n\t\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t\t} else {\n\t\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t\t}\n\t\t\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t//*********\n\t\t// params := domain.GetCustomParams()\n\t\t// if params.Has(\"recordType\") {\n\t\t// \trecordType = params.Get(\"recordType\")\n\t\t// }\n\n\t\t// if params.Has(\"recordContent\") {\n\t\t// \t//ipAddr = params.Get(\"recordContent\")\n\t\t// \trecordContent := params.Get(\"recordContent\")\n\t\t// \trecordContent = strings.Replace(recordContent, \"#{ip}\", ipAddr, -1)\n\t\t// \tipAddr = recordContent\n\n\t\t// \tlog.Printf(\"recordType[%s]recordContent[%s]\", recordType, recordContent)\n\t\t// }\n\t\t//*********\n\n\t\td.createUpdateDomainFunc(recordType, ipAddr, domain)\n\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t}\n\n\treturn ipAddr\n}\n\nfunc getDomainItem(fullDomain string, domains *[]ddnscore.Domain) *ddnscore.Domain {\n\tif domains == nil {\n\t\treturn nil\n\t}\n\tfor i, domain := range *domains {\n\t\tif domain.String() == fullDomain {\n\t\t\treturn &(*domains)[i]\n\t\t}\n\t}\n\treturn nil\n}\n\n//--------------------------------------------------------------------------------------------------\n\nfunc (d *DNSCommon) CreateHTTPClient() (*http.Client, error) {\n\tddnsGlobalConf := config.GetDDNSConfigure()\n\n\treturn httputils.CreateHttpClient(\n\t\td.task.DNS.GetCallAPINetwork(),\n\t\t\"\",\n\t\t!ddnsGlobalConf.HttpClientSecureVerify,\n\t\td.task.DNS.HttpClientProxyType,\n\t\td.task.DNS.HttpClientProxyAddr,\n\t\td.task.DNS.HttpClientProxyUser,\n\t\td.task.DNS.HttpClientProxyPassword,\n\t\ttime.Duration(d.task.HttpClientTimeout)*time.Second)\n}\n\n// ---------------------------------------------------------------------------------------------------\nfunc ResolveDomainAtServerList(queryType, domain string, dnsServerList []string) (string, error) {\n\n\tif len(dnsServerList) == 0 {\n\t\tif queryType == \"AAAA\" {\n\t\t\tdnsServerList = config.DefaultIPv6DNSServerList\n\t\t} else {\n\t\t\tdnsServerList = config.DefaultIPv4DNSServerList\n\t\t}\n\t}\n\n\t//some name that ought to exist, does not exist (NXDOMAIN)\n\n\tquerytype, querytypeOk := dns.StringToType[strings.ToUpper(queryType)]\n\tif !querytypeOk {\n\t\treturn \"\", fmt.Errorf(\"queryType error:%s\", queryType)\n\t}\n\n\tif strings.HasPrefix(domain, \"*.\") {\n\t\trandomStr := stringsp.GetRandomString(8)\n\t\tdomain = strings.Replace(domain, \"*\", randomStr, 1)\n\t}\n\n\tdomain = dns.Fqdn(domain)\n\tdomain, err := idna.ToASCII(domain)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(` idna.ToASCII(domain) error:%s`, err.Error())\n\t}\n\n\tm := new(dns.Msg)\n\tm.SetQuestion(domain, querytype)\n\tm.MsgHdr.RecursionDesired = true\n\n\tc := new(dns.Client)\n\tnoExistTimes := 0\n\tfor _, dnsServer := range dnsServerList {\n\t\tc.Net = \"\"\n\t\tipaddr, err := resolveDomain(m, c, dnsServer)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"[%s]===>[%s][%s] ResolveDomain error:%s\", dnsServer, queryType, domain, err.Error())\n\t\t\tif strings.Contains(err.Error(), \"some name that ought to exist, does not exist (NXDOMAIN)\") {\n\t\t\t\tnoExistTimes++\n\t\t\t\tif noExistTimes >= 4 {\n\t\t\t\t\treturn \"\", fmt.Errorf(\"解析域名[%s][%s]IP失败:noExistTimes\", queryType, domain)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn ipaddr, nil\n\t}\n\n\treturn \"\", fmt.Errorf(\"解析域名[%s][%s]IP失败\", queryType, domain)\n}\n\nfunc resolveDomain(msg *dns.Msg, client *dns.Client, dnsServer string) (string, error) {\n\nRedo:\n\tif in, _, err := client.Exchange(msg, dnsServer); err == nil { // Second return value is RTT, not used for now\n\t\tif in.MsgHdr.Truncated {\n\t\t\tclient.Net = \"tcp\"\n\t\t\tgoto Redo\n\t\t}\n\n\t\tswitch in.MsgHdr.Rcode {\n\t\tcase dns.RcodeServerFailure:\n\t\t\treturn \"\", fmt.Errorf(\"the name server encountered an internal failure while processing this request (SERVFAIL)\")\n\t\tcase dns.RcodeNameError:\n\t\t\treturn \"\", fmt.Errorf(\"some name that ought to exist, does not exist (NXDOMAIN)\")\n\t\tcase dns.RcodeRefused:\n\t\t\treturn \"\", fmt.Errorf(\"the name server refuses to perform the specified operation for policy or security reasons (REFUSED)\")\n\t\tdefault:\n\t\t\t//fmt.Printf(\"in.Answer len:%d\\n\", len(in.Answer))\n\t\t\tfor _, rr := range in.Answer {\n\t\t\t\t//fmt.Printf(\"rr.String :%s\\n\", rr.String())\n\t\t\t\treturn strings.Replace(rr.String(), rr.Header().String(), \"\", -1), nil\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", fmt.Errorf(\"DNS server could not be reached\")\n}\n"
  },
  {
    "path": "ddns/dnspod.go",
    "content": "package ddns\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\trecordListAPI   string = \"https://dnsapi.cn/Record.List\"\n\trecordModifyURL string = \"https://dnsapi.cn/Record.Modify\"\n\trecordCreateAPI string = \"https://dnsapi.cn/Record.Create\"\n)\n\n// https://cloud.tencent.com/document/api/302/8516\n// Dnspod 腾讯云dns实现\ntype Dnspod struct {\n\tDNSCommon\n\tTTL string\n}\n\n// DnspodRecordListResp recordListAPI结果\ntype DnspodRecordListResp struct {\n\tDnspodStatus\n\tRecords []struct {\n\t\tID      string\n\t\tName    string\n\t\tType    string\n\t\tValue   string\n\t\tEnabled string\n\t}\n}\n\n// DnspodStatus DnspodStatus\ntype DnspodStatus struct {\n\tStatus struct {\n\t\tCode    string\n\t\tMessage string\n\t}\n}\n\n// Init 初始化\nfunc (dnspod *Dnspod) Init(task *ddnscore.DDNSTaskInfo) {\n\tdnspod.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tdnspod.TTL = \"600\"\n\t} else {\n\t\tdnspod.TTL = task.TTL\n\t}\n\tdnspod.SetCreateUpdateDomainFunc(dnspod.createUpdateDomain)\n}\n\nfunc (dnspod *Dnspod) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tresult, err := dnspod.getRecordList(domain, recordType)\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tif len(result.Records) > 0 {\n\t\t// 更新\n\t\tdnspod.modify(result, domain, recordType, ipAddr)\n\t} else {\n\t\t// 新增\n\t\tdnspod.create(result, domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (dnspod *Dnspod) create(result DnspodRecordListResp, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tparams := domain.GetCustomParams()\n\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\tparams.Add(\"domain\", domain.DomainName)\n\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\tparams.Add(\"record_type\", recordType)\n\tparams.Add(\"value\", ipAddr)\n\tparams.Add(\"ttl\", dnspod.TTL)\n\tparams.Add(\"format\", \"json\")\n\n\tif !params.Has(\"record_line\") {\n\t\tparams.Add(\"record_line\", \"默认\")\n\t}\n\n\tstatus, err := dnspod.commonRequest(recordCreateAPI, params, domain)\n\tif err == nil && status.Status.Code == \"1\" {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:%v\\n\", status)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (dnspod *Dnspod) modify(result DnspodRecordListResp, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tfor _, record := range result.Records {\n\t\t// 相同不修改\n\t\tif record.Value == ipAddr {\n\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t} else {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tparams := domain.GetCustomParams()\n\t\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\t\tparams.Add(\"domain\", domain.DomainName)\n\t\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\t\tparams.Add(\"record_type\", recordType)\n\t\tparams.Add(\"value\", ipAddr)\n\t\tparams.Add(\"ttl\", dnspod.TTL)\n\t\tparams.Add(\"format\", \"json\")\n\t\tparams.Add(\"record_id\", record.ID)\n\n\t\tif !params.Has(\"record_line\") {\n\t\t\tparams.Add(\"record_line\", \"默认\")\n\t\t}\n\t\tstatus, err := dnspod.commonRequest(recordModifyURL, params, domain)\n\t\tif err == nil && status.Status.Code == \"1\" {\n\t\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", status)\n\t\t\tif err != nil {\n\t\t\t\terrMsg += err.Error()\n\t\t\t}\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\t}\n\t}\n}\n\n// 公共\nfunc (dnspod *Dnspod) commonRequest(apiAddr string, values url.Values, domain *ddnscore.Domain) (status DnspodStatus, err error) {\n\tclient, e := dnspod.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\tresp, e := client.PostForm(\n\t\tapiAddr,\n\t\tvalues,\n\t)\n\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\terr = httputils.GetAndParseJSONResponseFromHttpResponse(resp, &status)\n\n\treturn\n}\n\n// 获得域名记录列表\nfunc (dnspod *Dnspod) getRecordList(domain *ddnscore.Domain, typ string) (result DnspodRecordListResp, err error) {\n\tparams := domain.GetCustomParams()\n\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\tparams.Add(\"domain\", domain.DomainName)\n\tparams.Add(\"record_type\", typ)\n\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\tparams.Add(\"format\", \"json\")\n\n\tif !params.Has(\"record_line\") {\n\t\tparams.Add(\"record_line\", \"默认\")\n\t}\n\n\tclient, e := dnspod.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\tresp, err := client.PostForm(\n\t\trecordListAPI,\n\t\tparams,\n\t)\n\n\tif err != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\terr = httputils.GetAndParseJSONResponseFromHttpResponse(resp, &result)\n\n\treturn\n}\n"
  },
  {
    "path": "ddns/godaddy.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\ntype godaddyRecord struct {\n\tData string `json:\"data\"`\n\tName string `json:\"name\"`\n\tTTL  int    `json:\"ttl\"`\n\tType string `json:\"type\"`\n}\n\ntype godaddyRecords []godaddyRecord\n\ntype GoDaddy struct {\n\tDNSCommon\n\tTTL    int\n\theader http.Header\n\tclient *http.Client\n}\n\n// Init 初始化\nfunc (gd *GoDaddy) Init(task *ddnscore.DDNSTaskInfo) {\n\tgd.DNSCommon.Init(task)\n\t// if task.TTL == \"\" {\n\t// \t// 默认600s\n\t// \tgd.TTL = 600\n\t// } else {\n\t// \tgd.TTL = task.TTL\n\t// }\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\tgd.TTL = 600\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tgd.TTL = 600\n\t\t} else {\n\t\t\tgd.TTL = ttl\n\t\t}\n\t}\n\tgd.header = map[string][]string{\n\t\t\"Authorization\": {fmt.Sprintf(\"sso-key %s:%s\", task.DNS.ID, task.DNS.Secret)},\n\t\t\"Content-Type\":  {\"application/json\"},\n\t}\n\t//g.throttle, _ = util.GetThrottle(55)\n\tgd.client, _ = gd.CreateHTTPClient()\n\n\tgd.SetCreateUpdateDomainFunc(gd.createUpdateDomain)\n}\n\nfunc (gd *GoDaddy) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\t_, err := gd.sendReq(http.MethodPut, recordType, domain, &godaddyRecords{godaddyRecord{\n\t\tData: ipAddr,\n\t\tName: domain.SubDomain,\n\t\tTTL:  gd.TTL,\n\t\tType: recordType,\n\t}})\n\tif err != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\nfunc (gd *GoDaddy) sendReq(method string, rType string, domain *ddnscore.Domain, data any) (*godaddyRecords, error) {\n\n\tvar body *bytes.Buffer\n\tif data != nil {\n\t\tif buffer, err := json.Marshal(data); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\tbody = bytes.NewBuffer(buffer)\n\t\t}\n\t}\n\tpath := fmt.Sprintf(\"https://api.godaddy.com/v1/domains/%s/records/%s/%s\",\n\t\tdomain.DomainName, rType, domain.SubDomain)\n\treq, err := http.NewRequest(method, path, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header = gd.header\n\n\tresp, err := gd.client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &godaddyRecords{}\n\n\thttputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n\n\treturn result, nil\n}\n"
  },
  {
    "path": "ddns/huawei.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\nconst (\n\thuaweicloudEndpoint string = \"https://dns.myhuaweicloud.com\"\n)\n\n// https://support.huaweicloud.com/api-dns/dns_api_64001.html\n// Huaweicloud Huaweicloud\ntype Huaweicloud struct {\n\tDNSCommon\n\tTTL int\n}\n\n// HuaweicloudZonesResp zones response\ntype HuaweicloudZonesResp struct {\n\tZones []struct {\n\t\tID         string\n\t\tName       string\n\t\tRecordsets []HuaweicloudRecordsets\n\t}\n}\n\n// HuaweicloudRecordsResp 记录返回结果\ntype HuaweicloudRecordsResp struct {\n\tRecordsets []HuaweicloudRecordsets\n}\n\n// HuaweicloudRecordsets 记录\ntype HuaweicloudRecordsets struct {\n\tID      string\n\tName    string `json:\"name\"`\n\tZoneID  string `json:\"zone_id\"`\n\tStatus  string\n\tType    string   `json:\"type\"`\n\tTTL     int      `json:\"ttl\"`\n\tRecords []string `json:\"records\"`\n}\n\n// Init 初始化\nfunc (hw *Huaweicloud) Init(task *ddnscore.DDNSTaskInfo) {\n\thw.DNSCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\thw.TTL = 300\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\thw.TTL = 300\n\t\t} else {\n\t\t\thw.TTL = ttl\n\t\t}\n\t}\n\thw.SetCreateUpdateDomainFunc(hw.createUpdateDomain)\n}\n\nfunc (hw *Huaweicloud) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records HuaweicloudRecordsResp\n\n\terr := hw.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/recordsets?type=%s&name=%s\", recordType, domain),\n\t\tnil,\n\t\t&records,\n\t)\n\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tfind := false\n\tfor _, record := range records.Recordsets {\n\t\t// 名称相同才更新。华为云默认是模糊搜索\n\t\tif record.Name == domain.String()+\".\" {\n\t\t\t// 更新\n\t\t\thw.modify(record, domain, recordType, ipAddr)\n\t\t\tfind = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !find {\n\t\t// 新增\n\t\thw.create(domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (hw *Huaweicloud) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tzone, err := hw.getZones(domain)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len(zone.Zones) == 0 {\n\t\tlog.Println(\"未能找到公网域名, 请检查域名是否添加\")\n\t\treturn\n\t}\n\n\tzoneID := zone.Zones[0].ID\n\tfor _, z := range zone.Zones {\n\t\tif z.Name == domain.DomainName+\".\" {\n\t\t\tzoneID = z.ID\n\t\t\tbreak\n\t\t}\n\t}\n\n\trecord := &HuaweicloudRecordsets{\n\t\tType:    recordType,\n\t\tName:    domain.String() + \".\",\n\t\tRecords: []string{ipAddr},\n\t\tTTL:     hw.TTL,\n\t}\n\tvar result HuaweicloudRecordsets\n\terr = hw.request(\n\t\t\"POST\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones/%s/recordsets\", zoneID),\n\t\trecord,\n\t\t&result,\n\t)\n\tif err == nil && (len(result.Records) > 0 && result.Records[0] == ipAddr) {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"新增域名失败:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (hw *Huaweicloud) modify(record HuaweicloudRecordsets, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif len(record.Records) > 0 && record.Records[0] == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tvar request map[string]interface{} = make(map[string]interface{})\n\trequest[\"records\"] = []string{ipAddr}\n\trequest[\"ttl\"] = hw.TTL\n\n\tvar result HuaweicloudRecordsets\n\n\terr := hw.request(\n\t\t\"PUT\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones/%s/recordsets/%s\", record.ZoneID, record.ID),\n\t\t&request,\n\t\t&result,\n\t)\n\n\tif err == nil && (len(result.Records) > 0 && result.Records[0] == ipAddr) {\n\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s, 状态: %s\", domain, ipAddr, result.Status)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 获得域名记录列表\nfunc (hw *Huaweicloud) getZones(domain *ddnscore.Domain) (result HuaweicloudZonesResp, err error) {\n\terr = hw.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones?name=%s\", domain.DomainName),\n\t\tnil,\n\t\t&result,\n\t)\n\n\treturn\n}\n\n// request 统一请求接口\nfunc (hw *Huaweicloud) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\ts := util.Signer{\n\t\tKey:    hw.task.DNS.ID,\n\t\tSecret: hw.task.DNS.Secret,\n\t}\n\ts.Sign(req)\n\n\treq.Header.Add(\"content-type\", \"application/json\")\n\n\tclient, err := hw.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "ddns/porkbun.go",
    "content": "package ddns\n\nimport (\n\t\"bytes\"\n\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\tporkbunEndpoint string = \"https://porkbun.com/api/json/v3/dns\"\n)\n\ntype Porkbun struct {\n\tDNSCommon\n\tTTL string\n}\ntype PorkbunDomainRecord struct {\n\tName    string `json:\"name\"`    // subdomain\n\tType    string `json:\"type\"`    // record type, e.g. A AAAA CNAME\n\tContent string `json:\"content\"` // value\n\tTtl     string `json:\"ttl\"`     // default 300\n}\n\ntype PorkbunResponse struct {\n\tStatus string `json:\"status\"`\n}\n\ntype PorkbunDomainQueryResponse struct {\n\t*PorkbunResponse\n\tRecords []PorkbunDomainRecord `json:\"records\"`\n}\n\ntype PorkbunApiKey struct {\n\tAccessKey string `json:\"apikey\"`\n\tSecretKey string `json:\"secretapikey\"`\n}\n\ntype PorkbunDomainCreateOrUpdateVO struct {\n\t*PorkbunApiKey\n\t*PorkbunDomainRecord\n}\n\n// Init 初始化\nfunc (pb *Porkbun) Init(task *ddnscore.DDNSTaskInfo) {\n\tpb.DNSCommon.Init(task)\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tpb.TTL = \"600\"\n\t} else {\n\t\tpb.TTL = task.TTL\n\t}\n\tpb.SetCreateUpdateDomainFunc(pb.createUpdateDomain)\n}\n\nfunc (pb *Porkbun) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\tvar record PorkbunDomainQueryResponse\n\t// 获取当前域名信息\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/retrieveByNameType/%s/%s/%s\", domain.DomainName, recordType, domain.SubDomain),\n\t\t&PorkbunApiKey{\n\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t},\n\t\t&record,\n\t)\n\n\tif err != nil {\n\t\treturn\n\t}\n\tif record.Status == \"SUCCESS\" {\n\t\tif len(record.Records) > 0 {\n\t\t\t// 存在，更新\n\t\t\tpb.modify(&record, domain, recordType, ipAddr)\n\t\t} else {\n\t\t\t// 不存在，创建\n\t\t\tpb.create(domain, recordType, ipAddr)\n\t\t}\n\t} else {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, \"查询现有域名记录失败\")\n\t}\n}\n\n// 创建\nfunc (pb *Porkbun) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tvar response PorkbunResponse\n\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/create/%s\", domain.DomainName),\n\t\t&PorkbunDomainCreateOrUpdateVO{\n\t\t\tPorkbunApiKey: &PorkbunApiKey{\n\t\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t\t},\n\t\t\tPorkbunDomainRecord: &PorkbunDomainRecord{\n\t\t\t\tName:    domain.SubDomain,\n\t\t\t\tType:    recordType,\n\t\t\t\tContent: ipAddr,\n\t\t\t\tTtl:     pb.TTL,\n\t\t\t},\n\t\t},\n\t\t&response,\n\t)\n\n\tif err == nil && response.Status == \"SUCCESS\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"新增域名失败:%v\\n\", response)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (pb *Porkbun) modify(record *PorkbunDomainQueryResponse, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif len(record.Records) > 0 && record.Records[0].Content == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tvar response PorkbunResponse\n\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/editByNameType/%s/%s/%s\", domain.DomainName, recordType, domain.SubDomain),\n\t\t&PorkbunDomainCreateOrUpdateVO{\n\t\t\tPorkbunApiKey: &PorkbunApiKey{\n\t\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t\t},\n\t\t\tPorkbunDomainRecord: &PorkbunDomainRecord{\n\t\t\t\tContent: ipAddr,\n\t\t\t\tTtl:     pb.TTL,\n\t\t\t},\n\t\t},\n\t\t&response,\n\t)\n\n\tif err == nil && response.Status == \"SUCCESS\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", response)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// request 统一请求接口\nfunc (pb *Porkbun) request(url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\treq, err := http.NewRequest(\n\t\t\"POST\",\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\tclient, e := pb.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "ddns/worker.go",
    "content": "package ddns\n\nimport (\n\t\"log\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/service\"\n)\n\nvar DDNSService *service.Service\n\nfunc init() {\n\tDDNSService, _ = service.NewService(\"ddns\")\n\tDDNSService.SetTimerFunc(syncAllDomainsOnce)\n\tDDNSService.SetEventFunc(syncTaskDomainsOnce)\n}\n\n// Run 定时运行\nfunc Run(firstDelay time.Duration, delay time.Duration) {\n\n\tlog.Printf(\"DDNS 第一次运行将等待 %d 秒后运行 (等待网络)\", int(firstDelay.Seconds()))\n\t<-time.After(firstDelay)\n\tDDNSService.Start()\n}\n\nvar wg sync.WaitGroup\n\n// RunOnce RunOnce\nfunc syncAllDomainsOnce(params ...any) {\n\tddnsTaskList := ddnscore.GetDDNSTaskInfoList()\n\tddnscore.CleanIPUrlAddrMap()\n\tddnsConf := config.GetDDNSConfigure()\n\n\t//log.Printf(\"批量执行DDNS任务\")\n\ttaskBeginTime := time.Now()\n\n\t//fmt.Printf(\"ddnsTaskList:%v\\n\", ddnsTaskList)\n\n\tfor index := range ddnsTaskList {\n\n\t\ttask := ddnsTaskList[index]\n\t\tif !task.Enable {\n\t\t\tcontinue\n\t\t}\n\n\t\tif time.Since(task.TaskState.LastWorkTime) < time.Second*15 {\n\t\t\t//log.Printf(\"[%s]太接近,忽略\", task.TaskName)\n\t\t\tcontinue\n\t\t}\n\n\t\t//log.Printf(\"task[%s] enable\\n\", task.TaskName)\n\n\t\twg.Add(1)\n\n\t\tgo func() {\n\t\t\tdefer func() {\n\t\t\t\twg.Done()\n\t\t\t\trecoverErr := recover()\n\t\t\t\tif recoverErr == nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlog.Printf(\"syncDDNSTask[%s]panic:\\n%v\", task.TaskName, recoverErr)\n\t\t\t\tlog.Printf(\"%s\", debug.Stack())\n\t\t\t}()\n\t\t\tsyncDDNSTask(task)\n\t\t}()\n\n\t\t<-time.After(time.Millisecond * 600)\n\t}\n\twg.Wait()\n\n\ttaskEndTime := time.Now()\n\n\tusedTime := taskEndTime.Sub(taskBeginTime)\n\n\tnextTaskTimer := time.Second*time.Duration(ddnsConf.Intervals) - usedTime\n\n\t//debug.FreeOSMemory()\n\t//log.Printf(\"syncAllDomainsOnce 任务完成\")\n\tDDNSService.Timer = time.NewTimer(nextTaskTimer)\n}\n\nfunc syncTaskDomainsOnce(params ...any) {\n\tserverMsg := (params[1]).(service.ServiceMsg)\n\ttaskKey := serverMsg.Params[0].(string)\n\tswitch serverMsg.Type {\n\tcase \"syncDDNSTask\":\n\t\t{\n\t\t\t//log.Printf(\"syncTaskDomainsOnce 单DDNS任务更新：%s\", taskKey)\n\t\t\tddnscore.CleanIPUrlAddrMap()\n\t\t\ttask := ddnscore.GetDDNSTaskInfoByKey(taskKey)\n\t\t\tsyncDDNSTask(task)\n\t\t}\n\tdefault:\n\t\treturn\n\t}\n\n}\n\nfunc syncDDNSTask(task *ddnscore.DDNSTaskInfo) {\n\tif task == nil {\n\t\treturn\n\t}\n\tvar dnsSelected DNS\n\tswitch task.DNS.Name {\n\tcase \"alidns\":\n\t\tdnsSelected = &Alidns{}\n\tcase \"dnspod\":\n\t\tdnsSelected = &Dnspod{}\n\tcase \"cloudflare\":\n\t\tdnsSelected = &Cloudflare{}\n\tcase \"huaweicloud\":\n\t\tdnsSelected = &Huaweicloud{}\n\tcase \"callback\":\n\t\tdnsSelected = &Callback{}\n\tcase \"baiducloud\":\n\t\tdnsSelected = &BaiduCloud{}\n\tcase \"porkbun\":\n\t\tdnsSelected = &Porkbun{}\n\tdefault:\n\t\treturn\n\t}\n\n\tdnsSelected.Init(task)\n\n\tdnsSelected.AddUpdateDomainRecords()\n\ttask.ExecWebhook(&task.TaskState)\n\tddnscore.DDNSTaskInfoMapUpdate(task)\n\ttask.TaskState.LastWorkTime = time.Now() //记录最近一次检测时间,防止批量检测和单个检测时间间隔过于接近\n\n\t//\n}\n"
  },
  {
    "path": "ddnscore.go/cache.go",
    "content": "package ddnscore\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n)\n\nvar taskInfoMap sync.Map\nvar taskInfoMapMutex sync.RWMutex\nvar webLastAccessDDNSTaskListLastTime int64\n\n// 记录最后的前端请求DDNS任务列表时间\nfunc FLushWebLastAccessDDNSTaskListLastTime() {\n\tatomic.StoreInt64(&webLastAccessDDNSTaskListLastTime, time.Now().Unix())\n}\n\n// webAccessAvalid 判断前端访问是否处于活跃时间内\nfunc webAccessAvalid() bool {\n\tlastTime := atomic.LoadInt64(&webLastAccessDDNSTaskListLastTime)\n\treturn time.Now().Unix()-lastTime <= 5\n}\n\nfunc EnableDDNSTaskByKey(key string, enable bool) error {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\ttaskInfo, ok := taskInfoMap.Load(key)\n\tif !ok {\n\t\treturn fmt.Errorf(\"DDNSTaskInfoMap key[%s] no found\", key)\n\t}\n\tif enable {\n\t\ttaskInfo.(*DDNSTaskState).SetDomainUpdateStatus(UpdateWaiting, \"\")\n\t} else {\n\t\ttaskInfo.(*DDNSTaskState).SetDomainUpdateStatus(UpdateStop, \"\")\n\t}\n\treturn config.EnableDDNSTaskByKey(key, enable)\n}\n\nfunc DDNSTaskInfoMapUpdate(task *DDNSTaskInfo) {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\n\tpreInfo, ok := taskInfoMap.Load(task.TaskKey)\n\tif ok {\n\t\tvar checkDomains []Domain\n\t\t//防止有域名被删除\n\t\tfor i, new := range task.TaskState.Domains {\n\t\t\tfor _, pre := range preInfo.(*DDNSTaskState).Domains {\n\t\t\t\tif strings.Compare(new.String(), pre.String()) == 0 {\n\t\t\t\t\tcheckDomains = append(checkDomains, task.TaskState.Domains[i])\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttask.TaskState.Domains = checkDomains\n\n\t\tif len(preInfo.(*DDNSTaskState).Domains) > 0 && preInfo.(*DDNSTaskState).Domains[0].UpdateStatus == UpdateStop {\n\t\t\ttask.TaskState.SetDomainUpdateStatus(UpdateStop, \"\")\n\t\t}\n\n\t\ttaskInfoMap.Store(task.TaskKey, &task.TaskState)\n\t\treturn\n\t}\n}\n\n// 即时更新IP相关数据信息\nfunc DDNSTaskInfoMapUpdateIPInfo(task *DDNSTaskInfo) {\n\tif !webAccessAvalid() {\n\t\t//log.Printf(\"前端没有访问,不即时更新\")\n\t\treturn\n\t}\n\t//log.Printf(\"前端没有访问,不即时更新\")\n\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tstate, ok := taskInfoMap.Load(task.TaskKey)\n\tif !ok {\n\t\treturn\n\t}\n\tstate.(*DDNSTaskState).IpAddr = task.TaskState.IpAddr\n\tstate.(*DDNSTaskState).IPAddrHistory = task.TaskState.IPAddrHistory\n}\n\nfunc DDNSTaskInfoMapUpdateDomainInfo(task *DDNSTaskInfo) {\n\tif !webAccessAvalid() {\n\t\t//log.Printf(\"前端没有访问,不即时更新\")\n\t\treturn\n\t}\n\t//log.Printf(\"前端有访问,即时更新\")\n\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tstate, ok := taskInfoMap.Load(task.TaskKey)\n\tif !ok {\n\t\treturn\n\t}\n\tstate.(*DDNSTaskState).Domains = task.TaskState.Domains\n}\n\nfunc DDNSTaskInfoMapDelete(key string) {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\ttaskInfoMap.Delete(key)\n}\n\nfunc UpdateDomainsStateByTaskKey(key, status, message string) {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tpreInfo, ok := taskInfoMap.Load(key)\n\tif !ok {\n\t\treturn\n\t}\n\tpreInfo.(*DDNSTaskState).SetDomainUpdateStatus(status, message)\n}\n\nfunc GetDDNSTaskInfoList() []*DDNSTaskInfo {\n\ttaskInfoMapMutex.RLock()\n\tdefer taskInfoMapMutex.RUnlock()\n\tddnsTaskList := config.GetDDNSTaskConfigureList()\n\tvar res []*DDNSTaskInfo\n\tfor i := range ddnsTaskList {\n\t\tti := CreateDDNSTaskInfo(ddnsTaskList[i])\n\t\tres = append(res, ti)\n\t}\n\treturn res\n}\n\nfunc GetDDNSTaskInfoByKey(key string) *DDNSTaskInfo {\n\ttaskInfoMapMutex.RLock()\n\tdefer taskInfoMapMutex.RUnlock()\n\tddnsConf := config.GetDDNSTaskByKey(key)\n\tif ddnsConf == nil {\n\t\treturn nil\n\t}\n\tinfo := CreateDDNSTaskInfo(ddnsConf)\n\treturn info\n}\n\nfunc CreateDDNSTaskInfo(task *config.DDNSTask) *DDNSTaskInfo {\n\tvar res DDNSTaskInfo\n\tres.DDNSTask = *task\n\tinfo, ok := taskInfoMap.Load(task.TaskKey)\n\tif ok {\n\t\tres.TaskState = *info.(*DDNSTaskState)\n\t} else {\n\t\tres.TaskState.Init(res.Domains)\n\t\tif task.Enable {\n\t\t\tres.TaskState.SetDomainUpdateStatus(UpdateWaiting, \"\")\n\t\t} else {\n\t\t\tres.TaskState.SetDomainUpdateStatus(UpdateStop, \"\")\n\t\t}\n\t\ttaskInfoMap.Store(task.TaskKey, &res.TaskState)\n\t}\n\treturn &res\n}\n"
  },
  {
    "path": "ddnscore.go/domain.go",
    "content": "package ddnscore\n\nimport (\n\t\"net/url\"\n\t\"time\"\n)\n\nconst (\n\t// UpdatedNothing 未改变\n\tUpdatedNothing string = \"域名IP和公网IP一致\"\n\t// UpdatedFailed 更新失败\n\tUpdatedFailed = \"失败\"\n\t// UpdatedSuccess 更新成功\n\tUpdatedSuccess = \"成功\"\n\t// UpdateStop 暂停\n\tUpdateStop = \"停止同步\"\n\t//UpdatePause 暂停 获取IP失败时暂停\n\tUpdatePause = \"暂停同步\"\n\t// UpdateWaiting\n\tUpdateWaiting = \"等待更新\"\n)\n\n// Domain 域名实体\ntype Domain struct {\n\tDomainName   string\n\tSubDomain    string\n\tCustomParams string\n\n\tUpdateStatus         string // 更新状态\n\tLastUpdateStatusTime string //最后更新状态的时间\n\tMessage              string\n\tUpdateHistroy        []any\n}\n\ntype UpdateHistroyItem struct {\n\tUpdateStatus string\n\tUpdateTime   string\n}\n\nfunc (d *Domain) String() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain + \".\" + d.DomainName\n\t}\n\treturn d.DomainName\n}\n\n// GetFullDomain 返回完整子域名\nfunc (d *Domain) GetFullDomain() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain + \".\" + d.DomainName\n\t}\n\treturn \"@\" + \".\" + d.DomainName\n}\n\n// GetCustomParams not be nil\nfunc (d *Domain) GetCustomParams() url.Values {\n\tif d.CustomParams != \"\" {\n\t\tq, err := url.ParseQuery(d.CustomParams)\n\t\tif err == nil {\n\t\t\treturn q\n\t\t}\n\t}\n\treturn url.Values{}\n}\n\n// GetSubDomain 获得子域名，为空返回@\n// 阿里云，dnspod需要\nfunc (d *Domain) GetSubDomain() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain\n\t}\n\treturn \"@\"\n}\n\nfunc (d *Domain) SetDomainUpdateStatus(status string, message string) {\n\n\tif status != UpdateWaiting {\n\t\tif status != UpdateStop || d.UpdateStatus != UpdateStop {\n\t\t\td.LastUpdateStatusTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\t\t\t// 状态更新历史记录\n\t\t\thi := UpdateHistroyItem{UpdateStatus: string(status), UpdateTime: d.LastUpdateStatusTime}\n\t\t\td.UpdateHistroy = append(d.UpdateHistroy, hi)\n\t\t\tif len(d.UpdateHistroy) > 10 {\n\t\t\t\td.UpdateHistroy = DeleteAnyListlice(d.UpdateHistroy, 0)\n\t\t\t}\n\t\t}\n\t}\n\td.UpdateStatus = status\n\td.Message = message\n\n}\n"
  },
  {
    "path": "ddnscore.go/taskinfo.go",
    "content": "package ddnscore\n\nimport (\n\t\"io\"\n\t\"log\"\n\t\"regexp\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n)\n\n// Ipv4Reg IPv4正则\nconst Ipv4Reg = `((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])`\n\n// Ipv6Reg IPv6正则\nconst Ipv6Reg = `((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))`\n\nvar ipUrlAddrMap sync.Map\n\ntype DDNSTaskInfo struct {\n\tconfig.DDNSTask\n\tTaskState DDNSTaskState `json:\"TaskState\"`\n}\n\nfunc (d *DDNSTaskInfo) getIpAddr() (result string) {\n\tif d.TaskType == \"IPv6\" {\n\t\treturn d.getIpv6Addr()\n\t}\n\treturn d.getIpv4Addr()\n}\n\n// CheckIPChange 检测公网IP是否改变\nfunc (d *DDNSTaskInfo) CheckIPChange() (ipAddr string, change bool) {\n\tipAddr = d.getIpAddr()\n\n\tcheckIPChange := d.TaskState.IPChangeCheck(ipAddr)\n\n\tif checkIPChange {\n\t\treturn ipAddr, true\n\t}\n\n\t//IP没变化\n\treturn ipAddr, false\n}\n\n// getIpv4Addr 获得IPv4地址\nfunc (d *DDNSTaskInfo) getIpv4Addr() (result string) {\n\t// 判断从哪里获取IP\n\tif d.GetType == \"netInterface\" {\n\t\tresult = netinterfaces.GetIPFromNetInterface(\"IPv4\", d.NetInterface, d.IPReg)\n\t\treturn\n\t}\n\n\tddnsGlobalConf := config.GetDDNSConfigure()\n\n\tclient, err := httputils.CreateHttpClient(\n\t\t\"tcp4\",\n\t\t\"\",\n\t\tddnsGlobalConf.HttpClientSecureVerify,\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\ttime.Duration(d.HttpClientTimeout)*time.Second)\n\n\tif err != nil {\n\t\tlog.Printf(\"%s\", err.Error())\n\t\treturn\n\t}\n\n\tfor _, url := range d.URL {\n\t\turl = strings.TrimSpace(url)\n\n\t\tmapIp, ok := ipUrlAddrMap.Load(url)\n\t\tif ok {\n\t\t\t//log.Printf(\"URL[%s]已缓存IP[%s]\", url, mapIp)\n\t\t\tresult = mapIp.(string)\n\t\t\treturn\n\t\t}\n\n\t\tresp, err := client.Get(url)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"连接失败!%s查看接口能否返回IPv4地址</a>,\", url)\n\t\t\tcontinue\n\t\t}\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"读取IPv4结果失败! 接口:%s\", url)\n\t\t\tcontinue\n\t\t}\n\t\tcomp := regexp.MustCompile(Ipv4Reg)\n\t\tresult = comp.FindString(string(body))\n\t\tif result != \"\" {\n\t\t\tipUrlAddrMap.Store(url, result)\n\t\t\treturn\n\t\t}\n\t\t//  else {\n\t\t// \tlog.Printf(\"获取IPv4结果失败! 接口: %s ,返回值: %s\\n\", url, result)\n\t\t// }\n\t}\n\n\tlog.Printf(\"所有查询公网IPv4的接口均获取IPv4结果失败,请检查接口或当前网络情况\")\n\treturn\n}\n\n// getIpv6Addr 获得IPv6地址\nfunc (d *DDNSTaskInfo) getIpv6Addr() (result string) {\n\t// 判断从哪里获取IP\n\tif d.GetType == \"netInterface\" {\n\t\tresult = netinterfaces.GetIPFromNetInterface(\"IPv6\", d.NetInterface, d.IPReg)\n\t\treturn\n\t}\n\n\tddnsGlobalConf := config.GetDDNSConfigure()\n\tclient, err := httputils.CreateHttpClient(\n\t\t\"tcp6\",\n\t\t\"\",\n\t\t!ddnsGlobalConf.HttpClientSecureVerify,\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\ttime.Duration(d.HttpClientTimeout)*time.Second)\n\n\tif err != nil {\n\t\tlog.Printf(\"%s\", err.Error())\n\t\treturn\n\t}\n\n\tfor _, url := range d.URL {\n\t\turl = strings.TrimSpace(url)\n\n\t\tmapIp, ok := ipUrlAddrMap.Load(url)\n\t\tif ok {\n\t\t\t//log.Printf(\"URL[%s]已缓存IP[%s]\", url, mapIp)\n\t\t\tresult = mapIp.(string)\n\t\t\treturn\n\t\t}\n\n\t\tresp, err := client.Get(url)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"连接失败! %s查看接口能否返回IPv6地址 \", url)\n\t\t\tcontinue\n\t\t}\n\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tlog.Println(\"读取IPv6结果失败! 接口: \", url)\n\t\t\tcontinue\n\t\t}\n\t\tcomp := regexp.MustCompile(Ipv6Reg)\n\t\tresult = comp.FindString(string(body))\n\t\tif result != \"\" {\n\t\t\tipUrlAddrMap.Store(url, result)\n\t\t\treturn\n\t\t}\n\t}\n\tlog.Printf(\"所有查询公网IPv6的接口均获取IPv6结果失败,请检查接口或当前网络情况\")\n\n\treturn\n}\n\nfunc CleanIPUrlAddrMap() {\n\tkeys := []string{}\n\tipUrlAddrMap.Range(func(key, value any) bool {\n\t\tkeys = append(keys, key.(string))\n\t\treturn true\n\t})\n\tfor _, k := range keys {\n\t\tipUrlAddrMap.Delete(k)\n\t}\n}\n"
  },
  {
    "path": "ddnscore.go/taskstate.go",
    "content": "package ddnscore\n\nimport (\n\t\"log\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n)\n\n// 固定的主域名\nvar staticMainDomains = []string{\"com.cn\", \"org.cn\", \"net.cn\", \"ac.cn\", \"eu.org\"}\n\n// 获取ip失败的次数\n\n// Domains Ipv4/Ipv6 DDNSTaskState\ntype DDNSTaskState struct {\n\tIpAddr              string\n\tDomains             []Domain\n\tWebhookCallTime     string    `json:\"WebhookCallTime\"`     //最后触发时间\n\tWebhookCallResult   bool      `json:\"WebhookCallResult\"`   //触发结果\n\tWebhookCallErrorMsg string    `json:\"WebhookCallErrorMsg\"` //触发错误信息\n\tLastSyncTime        time.Time `json:\"-\"`                   //记录最新一次同步操作时间\n\tLastWorkTime        time.Time `json:\"-\"`\n\n\tIPAddrHistory      []any `json:\"IPAddrHistory\"`\n\tWebhookCallHistroy []any `json:\"WebhookCallHistroy\"`\n}\n\ntype IPAddrHistoryItem struct {\n\tIPaddr     string\n\tRecordTime string\n}\n\ntype WebhookCallHistroyItem struct {\n\tCallTime   string\n\tCallResult string\n}\n\nfunc (d *DDNSTaskState) SetIPAddr(ipaddr string) {\n\tif d.IpAddr == ipaddr {\n\t\treturn\n\t}\n\n\td.IpAddr = ipaddr\n\n\thi := IPAddrHistoryItem{IPaddr: ipaddr, RecordTime: time.Now().Local().Format(\"2006-01-02 15:04:05\")}\n\td.IPAddrHistory = append(d.IPAddrHistory, hi)\n\n\tif len(d.IPAddrHistory) > 10 {\n\t\td.IPAddrHistory = DeleteAnyListlice(d.IPAddrHistory, 0)\n\t}\n}\n\nfunc DeleteAnyListlice(a []any, deleteIndex int) []any {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc (d *DDNSTaskState) SetDomainUpdateStatus(status string, message string) {\n\tfor i := range d.Domains {\n\t\td.Domains[i].SetDomainUpdateStatus(status, message)\n\t}\n}\n\nfunc (d *DDNSTaskState) SetWebhookResult(result bool, errMsg string) {\n\td.WebhookCallResult = result\n\td.WebhookCallErrorMsg = errMsg\n\td.WebhookCallTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\n\tcr := \"成功\"\n\tif !result {\n\t\tcr = \"出错\"\n\t}\n\n\thi := WebhookCallHistroyItem{CallResult: cr, CallTime: time.Now().Local().Format(\"2006-01-02 15:04:05\")}\n\td.WebhookCallHistroy = append(d.WebhookCallHistroy, hi)\n\tif len(d.WebhookCallHistroy) > 10 {\n\t\td.WebhookCallHistroy = DeleteAnyListlice(d.WebhookCallHistroy, 0)\n\t}\n}\n\nfunc (d *DDNSTaskState) Init(domains []string) {\n\td.Domains = d.checkParseDomains(domains)\n\n}\n\n// checkParseDomains 校验并解析用户输入的域名\nfunc (d *DDNSTaskState) checkParseDomains(domainArr []string) (domains []Domain) {\n\tfor _, domainStr := range domainArr {\n\t\tdomainStr = strings.TrimSpace(domainStr)\n\t\tif domainStr != \"\" {\n\t\t\tdomain := &Domain{}\n\n\t\t\tdp := strings.Split(domainStr, \":\")\n\t\t\tdplen := len(dp)\n\t\t\tif dplen == 1 { // 自动识别域名\n\t\t\t\tsp := strings.Split(domainStr, \".\")\n\t\t\t\tlength := len(sp)\n\t\t\t\tif length <= 1 {\n\t\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// 处理域名\n\t\t\t\tdomain.DomainName = sp[length-2] + \".\" + sp[length-1]\n\t\t\t\t// 如包含在org.cn等顶级域名下，后三个才为用户主域名\n\t\t\t\tfor _, staticMainDomain := range staticMainDomains {\n\t\t\t\t\tif staticMainDomain == domain.DomainName {\n\t\t\t\t\t\tdomain.DomainName = sp[length-3] + \".\" + domain.DomainName\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdomainLen := len(domainStr) - len(domain.DomainName)\n\t\t\t\tif domainLen > 0 {\n\t\t\t\t\tdomain.SubDomain = domainStr[:domainLen-1]\n\t\t\t\t} else {\n\t\t\t\t\tdomain.SubDomain = domainStr[:domainLen]\n\t\t\t\t}\n\n\t\t\t} else if dplen == 2 { // 主机记录:域名 格式\n\t\t\t\tsp := strings.Split(dp[1], \".\")\n\t\t\t\tlength := len(sp)\n\t\t\t\tif length <= 1 {\n\t\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdomain.DomainName = dp[1]\n\t\t\t\tdomain.SubDomain = dp[0]\n\t\t\t} else {\n\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// 参数条件\n\t\t\tif strings.Contains(domain.DomainName, \"?\") {\n\t\t\t\tu, err := url.Parse(\"http://\" + domain.DomainName)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Println(domainStr, \"域名解析失败\")\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdomain.DomainName = u.Host\n\t\t\t\tdomain.CustomParams = u.Query().Encode()\n\t\t\t}\n\t\t\tdomains = append(domains, *domain)\n\t\t}\n\t}\n\treturn\n}\n\n// Check 检测IP是否有改变\nfunc (state *DDNSTaskState) IPChangeCheck(newAddr string) bool {\n\tif newAddr == \"\" {\n\t\treturn true\n\t}\n\t// 地址改变\n\tif state.IpAddr != newAddr {\n\t\t//log.Printf(\"公网地址改变:[%s]===>[%s]\", d.DomainsInfo.IpAddr, newAddr)\n\t\t//domains.IpAddr = newAddr\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "ddnscore.go/webhook.go",
    "content": "package ddnscore\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\n// ExecWebhook 添加或更新IPv4/IPv6记录\nfunc (d *DDNSTaskInfo) ExecWebhook(state *DDNSTaskState) {\n\tif !d.WebhookEnable {\n\t\treturn\n\t}\n\n\tif state.IpAddr == \"\" && !d.WebhookCallOnGetIPfail {\n\t\treturn\n\t}\n\n\thasUpdate := hasDomainTryToUpdate(&state.Domains)\n\n\tif d.WebhookURL != \"\" && (hasUpdate || (state.IpAddr == \"\" && d.WebhookCallOnGetIPfail)) {\n\n\t\t//log.Printf(\"DDNS任务【%s】触发Webhook\", d.TaskName)\n\n\t\tnowTime := time.Now().Format(\"2006-01-02 15:04:05\")\n\n\t\turl := d.replaceWebhookPara(nowTime, d.WebhookURL)\n\t\trequestBody := d.replaceWebhookPara(nowTime, d.WebhookRequestBody)\n\n\t\t//headersStr := cb.task.DNS.Callback.Headers\n\t\tvar headerStrList []string\n\t\tfor i := range d.WebhookHeaders {\n\t\t\theader := d.replaceWebhookPara(nowTime, d.WebhookHeaders[i])\n\t\t\theaderStrList = append(headerStrList, header)\n\t\t}\n\n\t\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\t\tsucccssCotentList := []string{}\n\t\tfor i := range d.WebhookSuccessContent {\n\t\t\tcontent := d.replaceWebhookPara(nowTime, d.WebhookSuccessContent[i])\n\t\t\tsucccssCotentList = append(succcssCotentList, content)\n\t\t}\n\n\t\tcallErr := d.webhookHttpClientDo(d.WebhookMethod, url, requestBody, headers, succcssCotentList)\n\n\t\tif callErr != nil {\n\t\t\t//log.Printf(\"WebHook 调用出错：%s\", callErr.Error())\n\t\t\tstate.SetWebhookResult(false, callErr.Error())\n\t\t\treturn\n\t\t}\n\n\t\t//log.Printf(\"Webhook 调用成功\")\n\t\tstate.SetWebhookResult(true, \"\")\n\n\t}\n}\n\nfunc WebhookTest(d *DDNSTaskInfo, url, method, WebhookRequestBody, proxy, addr, user, passwd string, headerList, successContentListraw []string) (string, error) {\n\tnowTime := time.Now().Format(\"2006-01-02 15:04:05\")\n\turl = replaceWebhookTestPara(url, nowTime)\n\trequestBody := replaceWebhookTestPara(WebhookRequestBody, nowTime)\n\n\t//log.Printf(\"requestBody:\\n%s\", requestBody)\n\n\t//headersStr := cb.task.DNS.Callback.Headers\n\tvar headerStrList []string\n\tfor i := range headerList {\n\t\theader := replaceWebhookTestPara(headerList[i], nowTime)\n\t\theaderStrList = append(headerStrList, header)\n\t}\n\n\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\tsucccssCotentList := []string{}\n\tfor i := range successContentListraw {\n\t\tcontent := replaceWebhookTestPara(successContentListraw[i], nowTime)\n\t\tsucccssCotentList = append(succcssCotentList, content)\n\t}\n\n\tglobalDDNSConf := config.GetDDNSConfigure()\n\tproxyType := \"\"\n\tproxyAddr := \"\"\n\tproxyUser := \"\"\n\tproxyPasswd := \"\"\n\n\tswitch proxy {\n\tcase \"dns\":\n\t\t{\n\t\t\tif d.DNS.HttpClientProxyType != \"\" && d.DNS.HttpClientProxyAddr != \"\" {\n\t\t\t\tproxyType = d.DNS.HttpClientProxyType\n\t\t\t\tproxyAddr = d.DNS.HttpClientProxyAddr\n\t\t\t\tproxyUser = d.DNS.HttpClientProxyUser\n\t\t\t\tproxyPasswd = d.DNS.HttpClientProxyPassword\n\t\t\t}\n\t\t}\n\tcase \"http\", \"https\", \"socks5\":\n\t\t{\n\t\t\tproxyType = proxy\n\t\t\tproxyAddr = addr\n\t\t\tproxyUser = user\n\t\t\tproxyPasswd = passwd\n\t\t}\n\tdefault:\n\t}\n\n\t//fmt.Printf(\"proxyType:%s\\taddr:%s\\t,user[%s]passwd[%s]\\n\", proxyType, proxyAddr, proxyUser, proxyPasswd)\n\n\t//dnsConf := cb.task.DNS\n\t_, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tproxyType,\n\t\tproxyAddr,\n\t\tproxyUser,\n\t\tproxyPasswd,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Second*20)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"webhookTest 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tfor _, successContent := range succcssCotentList {\n\t\tif strings.Contains(respStr, successContent) {\n\t\t\treturn respStr, nil\n\t\t}\n\t}\n\n\treturn respStr, fmt.Errorf(\"接口调用出错,未匹配预设成功返回的字符串\")\n}\n\nfunc (d *DDNSTaskInfo) webhookHttpClientDo(method, url, requestBody string, headers map[string]string, callbackSuccessContent []string) error {\n\n\tglobalDDNSConf := config.GetDDNSConfigure()\n\tproxyType := \"\"\n\tproxyAddr := \"\"\n\tproxyUser := \"\"\n\tproxyPasswd := \"\"\n\n\tswitch d.WebhookProxy {\n\tcase \"dns\":\n\t\t{\n\t\t\tif d.DNS.HttpClientProxyType != \"\" && d.DNS.HttpClientProxyAddr != \"\" {\n\t\t\t\tproxyType = d.DNS.HttpClientProxyType\n\t\t\t\tproxyAddr = d.DNS.HttpClientProxyAddr\n\t\t\t\tproxyUser = d.DNS.HttpClientProxyUser\n\t\t\t\tproxyPasswd = d.DNS.HttpClientProxyPassword\n\t\t\t}\n\t\t}\n\tcase \"http\", \"https\", \"socks5\":\n\t\t{\n\t\t\tproxyType = d.WebhookProxy\n\t\t\tproxyAddr = d.WebhookProxyAddr\n\t\t\tproxyUser = d.WebhookProxyUser\n\t\t\tproxyPasswd = d.WebhookProxyPassword\n\t\t}\n\tdefault:\n\t}\n\n\t//dnsConf := cb.task.DNS\n\tstatusCode, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tproxyType,\n\t\tproxyAddr,\n\t\tproxyUser,\n\t\tproxyPasswd,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Second*20)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"webhook 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tif d.WebhookDisableCallbackSuccessContentCheck {\n\t\tif statusCode == http.StatusOK {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"webhook调用接口失败:\\n statusCode:%d\\n%s\", statusCode, respStr)\n\t}\n\n\tfor _, successContent := range callbackSuccessContent {\n\t\tif strings.Contains(respStr, successContent) {\n\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fmt.Errorf(\"webhook 调用接口失败:\\n%s\", respStr)\n}\n\n// DomainsIsChange\nfunc hasDomainTryToUpdate(domains *[]Domain) bool {\n\tfor _, v46 := range *domains {\n\t\tswitch v46.UpdateStatus {\n\t\tcase UpdatedFailed:\n\t\t\treturn true\n\t\tcase UpdatedSuccess:\n\t\t\treturn true\n\t\tdefault:\n\t\t}\n\t}\n\treturn false\n}\n\n// replaceWebhookTestPara WebhookTest替换参数  #{successDomains},#{failedDomains}\nfunc replaceWebhookTestPara(orgPara, nowTime string) (newPara string) {\n\torgPara = strings.ReplaceAll(orgPara, \"#{ipAddr}\", \"66.66.66.66\")\n\n\tsuccessDomains := \"www1.google.com,www2.google.com,www3.google.com,www4.google.com\"\n\tfailedDomains := \"www1.github.com,www2.github.com,www3.github.com,www4.github.com\"\n\tsuccessDomainsLine := strings.Replace(successDomains, \",\", `\\n`, -1)\n\tfailedDomainsLine := strings.Replace(failedDomains, \",\", `\\n`, -1)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomains}\", successDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomains}\", failedDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomainsLine}\", successDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomainsLine}\", failedDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{time}\", nowTime)\n\treturn orgPara\n}\n\n// replacePara 替换参数  #{successDomains},#{failedDomains}\nfunc (d *DDNSTaskInfo) replaceWebhookPara(nowTime, orgPara string) (newPara string) {\n\tipAddrText := d.TaskState.IpAddr\n\n\tsuccessDomains, failedDomains := d.getDomainsStr(&d.TaskState.Domains)\n\tif ipAddrText == \"\" {\n\t\tipAddrText = \"获取IP失败\"\n\t\tsuccessDomains = \"\"\n\t\tfailedDomains = \"\"\n\t}\n\n\tsuccessDomainsLine := strings.Replace(successDomains, \",\", `\\n`, -1)\n\tfailedDomainsLine := strings.Replace(failedDomains, \",\", `\\n`, -1)\n\n\torgPara = strings.ReplaceAll(orgPara, \"#{ipAddr}\", ipAddrText)\n\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomains}\", successDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomains}\", failedDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomainsLine}\", successDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomainsLine}\", failedDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{time}\", nowTime)\n\treturn orgPara\n}\n\n// getDomainsStr 用逗号分割域名,分类域名返回，成功和失败的\nfunc (d *DDNSTaskInfo) getDomainsStr(domains *[]Domain) (string, string) {\n\tvar successDomainBuf strings.Builder\n\tvar failedDomainsBuf strings.Builder\n\tfor _, v46 := range *domains {\n\t\tif v46.UpdateStatus == UpdatedFailed || (d.Webhook.WebhookCallOnGetIPfail && v46.UpdateStatus == UpdatePause) {\n\t\t\tif failedDomainsBuf.Len() > 0 {\n\t\t\t\tfailedDomainsBuf.WriteString(\",\")\n\t\t\t}\n\t\t\tfailedDomainsBuf.WriteString(v46.String())\n\t\t\tcontinue\n\t\t}\n\n\t\t//if v46.UpdateStatus == UpdatedNothing || v46.UpdateStatus == UpdatedSuccess {\n\t\tif v46.UpdateStatus == UpdatedSuccess {\n\t\t\tif successDomainBuf.Len() > 0 {\n\t\t\t\tsuccessDomainBuf.WriteString(\",\")\n\t\t\t}\n\t\t\tsuccessDomainBuf.WriteString(v46.String())\n\t\t}\n\t}\n\n\treturn successDomainBuf.String(), failedDomainsBuf.String()\n}\n"
  },
  {
    "path": "debug.go",
    "content": "//go:build debug\n// +build debug\n\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/recoverutil\"\n)\n\nfunc init() {\n\tdefer func() {\n\t\trecoverErr := recover()\n\t\tif recoverErr == nil {\n\t\t\treturn\n\t\t}\n\t\tpanicFile := fmt.Sprintf(\"闪退.log\")\n\t\trecoverutil.RecoverHandler(recoverErr, true, true, panicFile)\n\t}()\n}\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/gdy666/lucky\n\ngo 1.18\n\nrequire (\n\tgithub.com/buger/jsonparser v1.1.1\n\tgithub.com/eclipse/paho.mqtt.golang v1.4.1\n\tgithub.com/fatedier/golib v0.2.0\n\tgithub.com/gin-contrib/gzip v0.0.6\n\tgithub.com/gin-gonic/gin v1.8.1\n\tgithub.com/golang-jwt/jwt v3.2.2+incompatible\n\tgithub.com/guonaihong/gout v0.3.1\n\tgithub.com/miekg/dns v1.1.50\n\tgithub.com/shirou/gopsutil/v3 v3.22.9\n\tgithub.com/sirupsen/logrus v1.9.0\n\tgolang.org/x/net v0.0.0-20221004154528-8021a29435af\n)\n\nrequire (\n\tgithub.com/gin-contrib/sse v0.1.0 // indirect\n\tgithub.com/go-ole/go-ole v1.2.6 // indirect\n\tgithub.com/go-playground/locales v0.14.0 // indirect\n\tgithub.com/go-playground/universal-translator v0.18.0 // indirect\n\tgithub.com/go-playground/validator/v10 v10.11.1 // indirect\n\tgithub.com/goccy/go-json v0.9.11 // indirect\n\tgithub.com/gorilla/websocket v1.4.2 // indirect\n\tgithub.com/json-iterator/go v1.1.12 // indirect\n\tgithub.com/leodido/go-urn v1.2.1 // indirect\n\tgithub.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect\n\tgithub.com/mattn/go-isatty v0.0.16 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/pelletier/go-toml/v2 v2.0.5 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect\n\tgithub.com/tklauser/go-sysconf v0.3.10 // indirect\n\tgithub.com/tklauser/numcpus v0.5.0 // indirect\n\tgithub.com/ugorji/go/codec v1.2.7 // indirect\n\tgithub.com/yusufpapurcu/wmi v1.2.2 // indirect\n\tgolang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2 // indirect\n\tgolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect\n\tgolang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde // indirect\n\tgolang.org/x/sys v0.0.0-20221010170243-090e33056c14 // indirect\n\tgolang.org/x/text v0.3.8 // indirect\n\tgolang.org/x/tools v0.1.12 // indirect\n\tgoogle.golang.org/protobuf v1.28.1 // indirect\n\tgopkg.in/yaml.v2 v2.4.0 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=\ngithub.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/eclipse/paho.mqtt.golang v1.4.1 h1:tUSpviiL5G3P9SZZJPC4ZULZJsxQKXxfENpMvdbAXAI=\ngithub.com/eclipse/paho.mqtt.golang v1.4.1/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA=\ngithub.com/fatedier/golib v0.2.0 h1:8BxiUcjleBlXBYlTNUllD8KZZHaFU/NP/vP0Yu1Fkpg=\ngithub.com/fatedier/golib v0.2.0/go.mod h1:e2NPpBGUFsHDjXrfP1B5aK3S0+yUeVxgqfc3go3KNj0=\ngithub.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=\ngithub.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=\ngithub.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=\ngithub.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=\ngithub.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8=\ngithub.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=\ngithub.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=\ngithub.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=\ngithub.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=\ngithub.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=\ngithub.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=\ngithub.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=\ngithub.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=\ngithub.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=\ngithub.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=\ngithub.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ=\ngithub.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=\ngithub.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=\ngithub.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=\ngithub.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=\ngithub.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=\ngithub.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=\ngithub.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=\ngithub.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=\ngithub.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=\ngithub.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/guonaihong/gout v0.3.1 h1:pj/44Jw0TTmcHF2RjMaCWhKPwCH98YuQejbN15Hts/o=\ngithub.com/guonaihong/gout v0.3.1/go.mod h1:lhje0jRkh/gcIogrG22ENPITo9tylQa3kwD9eVxcDrk=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=\ngithub.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=\ngithub.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=\ngithub.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=\ngithub.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY=\ngithub.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE=\ngithub.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=\ngithub.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=\ngithub.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=\ngithub.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA=\ngithub.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=\ngithub.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg=\ngithub.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas=\ngithub.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=\ngithub.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI=\ngithub.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=\ngithub.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=\ngithub.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=\ngithub.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=\ngithub.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA=\ngithub.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A=\ngithub.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=\ngithub.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw=\ngithub.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=\ngithub.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=\ngithub.com/tklauser/numcpus v0.5.0 h1:ooe7gN0fg6myJ0EKoTAf5hebTZrH52px3New/D9iJ+A=\ngithub.com/tklauser/numcpus v0.5.0/go.mod h1:OGzpTxpcIMNGYQdit2BYL1pvk/dSOaJWjKoflh+RQjo=\ngithub.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=\ngithub.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=\ngithub.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=\ngithub.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=\ngithub.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=\ngithub.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=\ngolang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=\ngolang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=\ngolang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2 h1:x8vtB3zMecnlqZIwJNUUpwYKYSqCz5jXbiyv0ZJJZeI=\ngolang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=\ngolang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=\ngolang.org/x/net v0.0.0-20190228165749-92fc7df08ae7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200425230154-ff2c4b7c35a0/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=\ngolang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=\ngolang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=\ngolang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=\ngolang.org/x/net v0.0.0-20221004154528-8021a29435af h1:wv66FM3rLZGPdxpYL+ApnDe2HzHcTFta3z5nsc13wI4=\ngolang.org/x/net v0.0.0-20221004154528-8021a29435af/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc=\ngolang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc=\ngolang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=\ngolang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=\ngolang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=\ngolang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=\ngolang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=\ngoogle.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=\ngoogle.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=\ngoogle.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=\ngopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "main.go",
    "content": "//Copyright 2022 gdy, 272288813@qq.com\n\npackage main\n\nimport (\n\t\"flag\"\n\t\"log\"\n\t\"os\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/ddns\"\n\t\"github.com/gdy666/lucky/reverseproxy\"\n\t\"github.com/gdy666/lucky/socketproxy\"\n)\n\nvar (\n\tlistenPort       = flag.Int(\"p\", 16601, \"http Admin Web listen port \")\n\tconfigureFileURL = flag.String(\"c\", \"\", \"configure file url\")\n)\n\nvar (\n\trunMode = \"prod\"\n\tversion = \"dev\"\n\tcommit  = \"none\"\n\tdate    = \"2022-07-27T17:54:45Z\"\n)\n\nvar runTime time.Time\n\nfunc init() {\n\tvar cstZone = time.FixedZone(\"CST\", 8*3600) // 东八\n\ttime.Local = cstZone\n}\n\nfunc main() {\n\tflag.Parse()\n\tconfig.InitAppInfo(version, date)\n\n\terr := config.Read(*configureFileURL)\n\tif err != nil {\n\t\tlog.Printf(\"%s\", err.Error())\n\t\tlog.Printf(\"载入默认配置以及命令行设定的参数\")\n\t\tconfig.LoadDefault(*listenPort)\n\t\tif len(*configureFileURL) > 0 {\n\t\t\terr = config.Save()\n\t\t\tif err != nil {\n\t\t\t\tlog.Printf(\"保存配置到%s出错:%s\", *configureFileURL, err.Error())\n\t\t\t}\n\t\t}\n\t}\n\n\tgcf := config.GetConfig()\n\n\tconfig.BlackListInit()\n\tconfig.WhiteListInit()\n\tconfig.SSLCertficateListInit()\n\n\t//fmt.Printf(\"*gcf:%v\\n\", *gcf)\n\n\tsocketproxy.SetSafeCheck(config.SafeCheck)\n\t//socketproxy.SetGlobalMaxConnections(gcf.BaseConfigure.GlobalMaxConnections)\n\t//socketproxy.SetGlobalMaxProxyCount(gcf.BaseConfigure.ProxyCountLimit)\n\tconfig.SetRunMode(runMode)\n\tconfig.SetVersion(version)\n\tlog.Printf(\"RunMode:%s\\n\", runMode)\n\tlog.Printf(\"version:%s\\tcommit %s, built at %s\\n\", version, commit, date)\n\n\tRunAdminWeb(&gcf.BaseConfigure)\n\n\trunTime = time.Now()\n\n\t//LoadRuleFromConfigFile(gcf)\n\n\tconfig.PortForwardsRuleListInit()\n\n\t//config.DDNSTaskListTaskDetailsInit()\n\tconfig.DDNSTaskListConfigureCheck()\n\tddnsConf := config.GetDDNSConfigure()\n\tif ddnsConf.Enable {\n\t\tgo ddns.Run(time.Duration(ddnsConf.FirstCheckDelay)*time.Second, time.Duration(ddnsConf.Intervals)*time.Second)\n\t}\n\n\treverseproxy.InitReverseProxyServer()\n\n\t//ddns.RunTimer(time.Second, time.Second*30)\n\n\t//initProxyList()\n\n\t//*****************\n\t// time.Sleep(time.Microsecond * 50)\n\t// cruuentPath, _ := fileutils.GetCurrentDirectory()\n\n\t// panicFile := fmt.Sprintf(\"%s/relayport_panic.log\", cruuentPath)\n\t// fileutils.PanicRedirect(panicFile)\n\t//*****************\n\n\t//main goroutine wait\n\tsigs := make(chan os.Signal, 1)\n\texit := make(chan bool, 1)\n\tsignal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)\n\tgo func() {\n\t\t<-sigs\n\t\texit <- true\n\t}()\n\t<-exit\n}\n\n// func LoadRuleFromConfigFile(pc *config.ProgramConfigure) {\n// \tif pc == nil {\n// \t\treturn\n// \t}\n// \tfor i := range pc.RelayRuleList {\n// \t\trelayRule, err := rule.CreateRuleByConfigureAndOptions(\n// \t\t\tpc.RelayRuleList[i].Name,\n// \t\t\tpc.RelayRuleList[i].Configurestr,\n// \t\t\tpc.RelayRuleList[i].Options)\n// \t\tif err != nil {\n// \t\t\tcontinue\n// \t\t}\n// \t\trelayRule.From = \"configureFile\" //规则来源\n// \t\trelayRule.IsEnable = pc.RelayRuleList[i].Enable\n\n// \t\t_, e := rule.AddRuleToGlobalRuleList(false, *relayRule)\n// \t\tif e != nil {\n// \t\t\tlog.Printf(\"%s\\n\", e)\n// \t\t}\n// \t}\n// }\n"
  },
  {
    "path": "module/ddns/conf/ddns.go",
    "content": "package ddnsconf\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"regexp\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n)\n\nvar getDDNSConfigureFunc func() DDNSConfigure\n\nfunc SetGetDDNSConfigureFunc(f func() DDNSConfigure) {\n\tgetDDNSConfigureFunc = f\n}\n\ntype DDNSConfigure struct {\n\tEnable                 bool `json:\"Enable\"`\n\tHttpClientSecureVerify bool `json:\"HttpClientSecureVerify\"`\n\tFirstCheckDelay        int  `json:\"FirstCheckDelay\"` //首次检查延迟时间\n\tIntervals              int  `json:\"Intervals\"`\n}\n\ntype DDNSTask struct {\n\tTaskName string `json:\"TaskName\"`\n\tTaskKey  string `json:\"TaskKey\"` //添加任务时随机生成,方便管理任务(修改删除)\n\t//规则类型 IPv4/IPv6\n\tTaskType string `json:\"TaskType\"`\n\tEnable   bool\n\t// 获取IP类型 url/netInterface\n\n\tGetType      string    `json:\"GetType\"` //IP获取方式\n\tURL          []string  `json:\"URL\"`\n\tNetInterface string    `json:\"NetInterface\"`\n\tIPReg        string    `json:\"IPReg\"`\n\tDomains      []string  `json:\"Domains\"`\n\tDNS          DNSConfig `json:\"DNS\"`\n\tWebhook\n\tTTL               string `json:\"TTL\"`\n\tHttpClientTimeout int    `json:\"HttpClientTimeout\"`\n\tModifyTime        int64  `json:\"ModifyTime\"`\n}\n\ntype Webhook struct {\n\tWebhookEnable                             bool     `json:\"WebhookEnable\"`          //Webhook开关\n\tWebhookCallOnGetIPfail                    bool     `json:\"WebhookCallOnGetIPfail\"` //获取IP失败时触发Webhook 开关\n\tWebhookURL                                string   `json:\"WebhookURL\"`\n\tWebhookMethod                             string   `json:\"WebhookMethod\"`\n\tWebhookHeaders                            []string `json:\"WebhookHeaders\"`\n\tWebhookRequestBody                        string   `json:\"WebhookRequestBody\"`\n\tWebhookDisableCallbackSuccessContentCheck bool     `json:\"WebhookDisableCallbackSuccessContentCheck\"` //禁用成功调用返回检测\n\tWebhookSuccessContent                     []string `json:\"WebhookSuccessContent\"`                     //接口调用成功包含的内容\n\tWebhookProxy                              string   `json:\"WebhookProxy\"`                              //使用DNS代理设置  \"\"表示禁用，\"dns\"表示使用dns的代理设置\n\tWebhookProxyAddr                          string   `json:\"WebhookProxyAddr\"`                          //代理服务器IP\n\tWebhookProxyUser                          string   `json:\"WebhookProxyUser\"`                          //代理用户\n\tWebhookProxyPassword                      string   `json:\"WebhookProxyPassword\"`                      //代理密码\n}\n\n// DNSConfig DNS配置\ntype DNSConfig struct {\n\t// 名称。如：alidns,webhook\n\tName                    string      `json:\"Name\"`\n\tID                      string      `json:\"ID\"`\n\tSecret                  string      `json:\"Secret\"`\n\tForceInterval           int         `json:\"ForceInterval\"`       //(秒)即使IP没有变化,到一定时间后依然强制更新或先DNS解析比较IP再更新\n\tResolverDoaminCheck     bool        `json:\"ResolverDoaminCheck\"` //调用callback同步前先解析一次域名,如果IP相同就不同步\n\tDNSServerList           []string    `json:\"DNSServerList\"`       //DNS服务器列表\n\tCallAPINetwork          string      `json:\"CallAPINetwork\"`      //空代理tcp, tcp4,tcp6\n\tCallback                DNSCallback `json:\"Callback\"`\n\tHttpClientProxyType     string      `json:\"HttpClientProxyType\"`     //http client代理服务器设置\n\tHttpClientProxyAddr     string      `json:\"HttpClientProxyAddr\"`     //代理服务器IP\n\tHttpClientProxyUser     string      `json:\"HttpClientProxyUser\"`     //代理用户\n\tHttpClientProxyPassword string      `json:\"HttpClientProxyPassword\"` //代理密码\n}\n\nfunc (d *DNSConfig) GetCallAPINetwork() string {\n\tswitch d.CallAPINetwork {\n\tcase \"tcp4\", \"tcp6\":\n\t\treturn d.CallAPINetwork\n\tdefault:\n\t\treturn \"tcp\"\n\t}\n}\n\ntype DNSCallback struct {\n\tURL                                string   `json:\"URL\"`    //请求地址\n\tMethod                             string   `json:\"Method\"` //请求方法\n\tHeaders                            []string `json:\"Headers\"`\n\tRequestBody                        string   `json:\"RequestBody\"`\n\tServer                             string   `json:\"Server\"`                             //预设服务商\n\tDisableCallbackSuccessContentCheck bool     `json:\"DisableCallbackSuccessContentCheck\"` //禁用成功调用返回检测\n\tCallbackSuccessContent             []string `json:\"CallbackSuccessContent\"`             //接口调用成功包含内容\n}\n\n// Ipv4Reg IPv4正则\nconst Ipv4Reg = `((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])`\n\n// Ipv6Reg IPv6正则\nconst Ipv6Reg = `((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))`\n\nvar ipUrlAddrMap sync.Map\n\nfunc (d *DDNSTask) GetIpAddr() (result string) {\n\tif d.TaskType == \"IPv6\" {\n\t\treturn d.getIpv6Addr()\n\t}\n\treturn d.getIpv4Addr()\n}\n\n// getIpv4Addr 获取IPv4地址\nfunc (d *DDNSTask) getIpv4Addr() (result string) {\n\t// 判断从哪里获取IP\n\tif d.GetType == \"netInterface\" {\n\t\tresult = netinterfaces.GetIPFromNetInterface(\"IPv4\", d.NetInterface, d.IPReg)\n\t\treturn\n\t}\n\n\tddnsGlobalConf := getDDNSConfigureFunc()\n\tclient, err := httputils.CreateHttpClient(\n\t\t\"tcp4\",\n\t\t\"\",\n\t\tddnsGlobalConf.HttpClientSecureVerify,\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\ttime.Duration(d.HttpClientTimeout)*time.Second)\n\n\tif err != nil {\n\t\tlog.Printf(\"%s\", err.Error())\n\t\treturn\n\t}\n\n\tfor _, url := range d.URL {\n\t\turl = strings.TrimSpace(url)\n\n\t\tmapIp, ok := ipUrlAddrMap.Load(url)\n\t\tif ok {\n\t\t\t//log.Printf(\"URL[%s]已缓存IP[%s]\", url, mapIp)\n\t\t\tresult = mapIp.(string)\n\t\t\treturn\n\t\t}\n\n\t\tresp, err := client.Get(url)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"连接失败!%s查看接口能否返回IPv4地址</a>,\", url)\n\t\t\tcontinue\n\t\t}\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"读取IPv4结果失败! 接口:%s\", url)\n\t\t\tcontinue\n\t\t}\n\t\tcomp := regexp.MustCompile(Ipv4Reg)\n\t\tresult = comp.FindString(string(body))\n\t\tif result != \"\" {\n\t\t\tipUrlAddrMap.Store(url, result)\n\t\t\treturn\n\t\t}\n\t\t//  else {\n\t\t// \tlog.Printf(\"获取IPv4结果失败! 接口: %s ,返回值: %s\\n\", url, result)\n\t\t// }\n\t}\n\n\tlog.Printf(\"所有查询公网IPv4的接口均获取IPv4结果失败,请检查接口或当前网络情况\")\n\treturn\n}\n\n// getIpv6Addr 获得IPv6地址\nfunc (d *DDNSTask) getIpv6Addr() (result string) {\n\t// 判断从哪里获取IP\n\tif d.GetType == \"netInterface\" {\n\t\tresult = netinterfaces.GetIPFromNetInterface(\"IPv6\", d.NetInterface, d.IPReg)\n\t\treturn\n\t}\n\n\tddnsGlobalConf := getDDNSConfigureFunc()\n\tclient, err := httputils.CreateHttpClient(\n\t\t\"tcp6\",\n\t\t\"\",\n\t\t!ddnsGlobalConf.HttpClientSecureVerify,\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\ttime.Duration(d.HttpClientTimeout)*time.Second)\n\n\tif err != nil {\n\t\tlog.Printf(\"%s\", err.Error())\n\t\treturn\n\t}\n\n\tfor _, url := range d.URL {\n\t\turl = strings.TrimSpace(url)\n\n\t\tmapIp, ok := ipUrlAddrMap.Load(url)\n\t\tif ok {\n\t\t\t//log.Printf(\"URL[%s]已缓存IP[%s]\", url, mapIp)\n\t\t\tresult = mapIp.(string)\n\t\t\treturn\n\t\t}\n\n\t\tresp, err := client.Get(url)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"连接失败! %s查看接口能否返回IPv6地址 \", url)\n\t\t\tcontinue\n\t\t}\n\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tlog.Println(\"读取IPv6结果失败! 接口: \", url)\n\t\t\tcontinue\n\t\t}\n\t\tcomp := regexp.MustCompile(Ipv6Reg)\n\t\tresult = comp.FindString(string(body))\n\t\tif result != \"\" {\n\t\t\tipUrlAddrMap.Store(url, result)\n\t\t\treturn\n\t\t}\n\t}\n\tlog.Printf(\"所有查询公网IPv6的接口均获取IPv6结果失败,请检查接口或当前网络情况\")\n\n\treturn\n}\n\nfunc CleanIPUrlAddrMap() {\n\tkeys := []string{}\n\tipUrlAddrMap.Range(func(key, value any) bool {\n\t\tkeys = append(keys, key.(string))\n\t\treturn true\n\t})\n\tfor _, k := range keys {\n\t\tipUrlAddrMap.Delete(k)\n\t}\n}\n\nvar checkIPv4URLList = []string{\"https://4.ipw.cn\", \"http://v4.ip.zxinc.org/getip\", \"https://myip4.ipip.net\", \"https://www.taobao.com/help/getip.php\", \"https://ddns.oray.com/checkip\", \"https://ip.3322.net\", \"https://v4.myip.la\"}\nvar checkIPv6URLList = []string{\"https://6.ipw.cn\", \"https://ipv6.ddnspod.com\", \"http://v6.ip.zxinc.org/getip\", \"https://speed.neu6.edu.cn/getIP.php\", \"https://v6.ident.me\", \"https://v6.myip.la\"}\n\nfunc CheckDDNSTaskAvalid(task *DDNSTask) error {\n\tif len(task.URL) == 0 {\n\t\tif task.TaskType == \"IPv6\" {\n\t\t\ttask.URL = checkIPv6URLList\n\t\t} else {\n\t\t\ttask.URL = checkIPv4URLList\n\t\t}\n\t}\n\n\tswitch task.DNS.Name {\n\tcase \"cloudflare\":\n\t\tif task.DNS.Secret == \"\" {\n\t\t\treturn fmt.Errorf(\"cloudflare token不能为空\")\n\t\t}\n\tcase \"callback\":\n\t\tif task.DNS.Callback.URL == \"\" {\n\t\t\treturn fmt.Errorf(\"callback URL不能为空\")\n\t\t}\n\n\t\tif task.DNS.Callback.Method == \"\" {\n\t\t\treturn fmt.Errorf(\"请选择callback method\")\n\t\t}\n\tdefault:\n\t\tif task.DNS.ID == \"\" || task.DNS.Secret == \"\" {\n\t\t\treturn fmt.Errorf(\"dns服务商相关参数不能为空\")\n\t\t}\n\t}\n\n\tif len(task.Domains) <= 0 {\n\t\treturn fmt.Errorf(\"域名列表不能为空\")\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "module/ddns/ddnscore.go/cache.go",
    "content": "package ddnscore\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tddnsconf \"github.com/gdy666/lucky/module/ddns/conf\"\n\t\"github.com/gdy666/lucky/module/ddns/ddnsgo\"\n)\n\nvar taskInfoMap sync.Map\nvar taskInfoMapMutex sync.RWMutex\nvar webLastAccessDDNSTaskListLastTime int64\n\n// 记录最后的前端请求DDNS任务列表时间\nfunc FLushWebLastAccessDDNSTaskListLastTime() {\n\tatomic.StoreInt64(&webLastAccessDDNSTaskListLastTime, time.Now().Unix())\n}\n\n// webAccessAvalid 判断前端访问是否处于活跃时间内\nfunc webAccessAvalid() bool {\n\tlastTime := atomic.LoadInt64(&webLastAccessDDNSTaskListLastTime)\n\treturn time.Now().Unix()-lastTime <= 5\n}\n\nfunc EnableDDNSTaskByKey(key string, enable bool) error {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\ttaskInfo, ok := taskInfoMap.Load(key)\n\tif !ok {\n\t\treturn fmt.Errorf(\"DDNSTaskInfoMap key[%s] no found\", key)\n\t}\n\tif enable {\n\t\ttaskInfo.(*DDNSTaskState).SetDomainUpdateStatus(UpdateWaiting, \"\")\n\t} else {\n\t\ttaskInfo.(*DDNSTaskState).SetDomainUpdateStatus(UpdateStop, \"\")\n\t}\n\treturn ddnsgo.EnableDDNSTaskByKey(key, enable)\n}\n\nfunc DDNSTaskInfoMapUpdate(task *DDNSTaskInfo) bool {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\n\tt := ddnsgo.GetDDNSTaskByKey(task.TaskKey)\n\tif t == nil {\n\t\treturn false\n\t}\n\n\tif t.ModifyTime > task.ModifyTime {\n\t\t//fmt.Printf(\"失效,不刷新\\n\")\n\t\treturn false\n\t}\n\n\ttask.TaskState.LastWorkTime = time.Now()\n\ttaskInfoMap.Store(task.TaskKey, &task.TaskState)\n\n\t// preInfo, ok := taskInfoMap.Load(task.TaskKey)\n\t// if ok {\n\t// \tvar checkDomains []Domain\n\t// \t//防止有域名被删除\n\t// \tfor i, new := range task.TaskState.Domains {\n\t// \t\tfor _, pre := range preInfo.(*DDNSTaskState).Domains {\n\t// \t\t\tif strings.Compare(new.String(), pre.String()) == 0 {\n\t// \t\t\t\tcheckDomains = append(checkDomains, task.TaskState.Domains[i])\n\t// \t\t\t\tbreak\n\t// \t\t\t}\n\t// \t\t}\n\t// \t}\n\t// \ttask.TaskState.Domains = checkDomains\n\n\t// \tif len(preInfo.(*DDNSTaskState).Domains) > 0 && preInfo.(*DDNSTaskState).Domains[0].UpdateStatus == UpdateStop {\n\t// \t\ttask.TaskState.SetDomainUpdateStatus(UpdateStop, \"\")\n\t// \t}\n\n\t// \ttask.TaskState.LastWorkTime = time.Now()\n\t// \ttaskInfoMap.Store(task.TaskKey, &task.TaskState)\n\t// \treturn true\n\t// }\n\n\treturn false\n}\n\n// 即时更新IP相关数据信息\nfunc DDNSTaskInfoMapUpdateIPInfo(task *DDNSTaskInfo) {\n\tif !webAccessAvalid() {\n\t\t//log.Printf(\"前端没有访问,不即时更新\")\n\t\treturn\n\t}\n\t//log.Printf(\"前端没有访问,不即时更新\")\n\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tstate, ok := taskInfoMap.Load(task.TaskKey)\n\tif !ok {\n\t\treturn\n\t}\n\tstate.(*DDNSTaskState).IpAddr = task.TaskState.IpAddr\n\tstate.(*DDNSTaskState).IPAddrHistory = task.TaskState.IPAddrHistory\n}\n\nfunc DDNSTaskInfoMapUpdateDomainInfo(task *DDNSTaskInfo) {\n\tif !webAccessAvalid() {\n\t\t//log.Printf(\"前端没有访问,不即时更新\")\n\t\treturn\n\t}\n\t//log.Printf(\"前端有访问,即时更新\")\n\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tstate, ok := taskInfoMap.Load(task.TaskKey)\n\tif !ok {\n\t\treturn\n\t}\n\tstate.(*DDNSTaskState).Domains = task.TaskState.Domains\n}\n\nfunc DDNSTaskInfoMapDelete(key string) {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\ttaskInfoMap.Delete(key)\n}\n\nfunc UpdateDomainsStateByTaskKey(key, status, message string) {\n\ttaskInfoMapMutex.Lock()\n\tdefer taskInfoMapMutex.Unlock()\n\tpreInfo, ok := taskInfoMap.Load(key)\n\tif !ok {\n\t\treturn\n\t}\n\tpreInfo.(*DDNSTaskState).SetDomainUpdateStatus(status, message)\n}\n\nfunc GetDDNSTaskInfoList() []*DDNSTaskInfo {\n\ttaskInfoMapMutex.RLock()\n\tdefer taskInfoMapMutex.RUnlock()\n\tddnsTaskList := ddnsgo.GetDDNSTaskConfigureList()\n\tvar res []*DDNSTaskInfo\n\tfor i := range ddnsTaskList {\n\t\tti := GetDDNSTaskState(ddnsTaskList[i])\n\t\t//ti.syncDomains()\n\t\tres = append(res, ti)\n\t}\n\treturn res\n}\n\nfunc GetDDNSTaskInfoByKey(key string) *DDNSTaskInfo {\n\ttaskInfoMapMutex.RLock()\n\tdefer taskInfoMapMutex.RUnlock()\n\tddnsConf := ddnsgo.GetDDNSTaskByKey(key)\n\tif ddnsConf == nil {\n\t\treturn nil\n\t}\n\tinfo := GetDDNSTaskState(ddnsConf)\n\treturn info\n}\n\nfunc GetDDNSTaskState(task *ddnsconf.DDNSTask) *DDNSTaskInfo {\n\tvar d DDNSTaskInfo\n\td.DDNSTask = *task\n\tinfo, ok := taskInfoMap.Load(task.TaskKey)\n\tif ok {\n\t\td.TaskState = *info.(*DDNSTaskState)\n\t} else {\n\t\tvar state DDNSTaskState\n\t\tstate.Init(d.Domains, d.ModifyTime)\n\t\tif task.Enable {\n\t\t\tstate.SetDomainUpdateStatus(UpdateWaiting, \"\")\n\t\t} else {\n\t\t\tstate.SetDomainUpdateStatus(UpdateStop, \"\")\n\t\t}\n\t\td.TaskState = state\n\t\ttaskInfoMap.Store(task.TaskKey, &state)\n\t}\n\treturn &d\n}\n"
  },
  {
    "path": "module/ddns/ddnscore.go/domain.go",
    "content": "package ddnscore\n\nimport (\n\t\"log\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\t// UpdatedNothing 未改变\n\tUpdatedNothing string = \"域名IP和公网IP一致\"\n\t// UpdatedFailed 更新失败\n\tUpdatedFailed = \"失败\"\n\t// UpdatedSuccess 更新成功\n\tUpdatedSuccess = \"成功\"\n\t// UpdateStop 暂停\n\tUpdateStop = \"停止同步\"\n\t//UpdatePause 暂停 获取IP失败时暂停\n\tUpdatePause = \"暂停同步\"\n\t// UpdateWaiting\n\tUpdateWaiting = \"等待更新\"\n)\n\n// Domain 域名实体\ntype Domain struct {\n\tRawStr       string\n\tDomainName   string\n\tSubDomain    string\n\tCustomParams string\n\n\tUpdateStatus         string // 更新状态\n\tLastUpdateStatusTime string //最后更新状态的时间\n\tMessage              string\n\tUpdateHistroy        []any\n}\n\ntype UpdateHistroyItem struct {\n\tUpdateStatus string\n\tUpdateTime   string\n}\n\nfunc (d *Domain) String() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain + \".\" + d.DomainName\n\t}\n\treturn d.DomainName\n}\n\n// GetFullDomain 返回完整子域名\nfunc (d *Domain) GetFullDomain() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain + \".\" + d.DomainName\n\t}\n\treturn \"@\" + \".\" + d.DomainName\n}\n\n// GetCustomParams not be nil\nfunc (d *Domain) GetCustomParams() url.Values {\n\tif d.CustomParams != \"\" {\n\t\tq, err := url.ParseQuery(d.CustomParams)\n\t\tif err == nil {\n\t\t\treturn q\n\t\t}\n\t}\n\treturn url.Values{}\n}\n\n// GetSubDomain 获得子域名，为空返回@\n// 阿里云，dnspod需要\nfunc (d *Domain) GetSubDomain() string {\n\tif d.SubDomain != \"\" {\n\t\treturn d.SubDomain\n\t}\n\treturn \"@\"\n}\n\nfunc (d *Domain) SetDomainUpdateStatus(status string, message string) {\n\n\tif status != UpdateWaiting {\n\t\tif status != UpdateStop || d.UpdateStatus != UpdateStop {\n\t\t\td.LastUpdateStatusTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\t\t\t// 状态更新历史记录\n\t\t\thi := UpdateHistroyItem{UpdateStatus: string(status), UpdateTime: d.LastUpdateStatusTime}\n\t\t\td.UpdateHistroy = append(d.UpdateHistroy, hi)\n\t\t\tif len(d.UpdateHistroy) > 10 {\n\t\t\t\td.UpdateHistroy = DeleteAnyListlice(d.UpdateHistroy, 0)\n\t\t\t}\n\t\t}\n\t}\n\td.UpdateStatus = status\n\td.Message = message\n}\n\nfunc checkParseDomains(domainArr []string) (domains []Domain, domainsRawStrList []string) {\n\tfor _, domainStr := range domainArr {\n\t\tdomainStr = strings.TrimSpace(domainStr)\n\n\t\tif domainStr == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tdomain := Domain{}\n\t\tdomain.RawStr = domainStr\n\t\tdp := strings.Split(domainStr, \":\")\n\t\tdplen := len(dp)\n\n\t\tswitch dplen {\n\t\tcase 1:\n\t\t\t{\n\t\t\t\tsp := strings.Split(domainStr, \".\")\n\t\t\t\tlength := len(sp)\n\t\t\t\tif length <= 1 {\n\t\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// 处理域名\n\t\t\t\tdomain.DomainName = sp[length-2] + \".\" + sp[length-1]\n\t\t\t\t// 如包含在org.cn等顶级域名下，后三个才为用户主域名\n\t\t\t\tfor _, staticMainDomain := range staticMainDomains {\n\t\t\t\t\tif staticMainDomain == domain.DomainName {\n\t\t\t\t\t\tdomain.DomainName = sp[length-3] + \".\" + domain.DomainName\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdomainLen := len(domainStr) - len(domain.DomainName)\n\t\t\t\tif domainLen > 0 {\n\t\t\t\t\tdomain.SubDomain = domainStr[:domainLen-1]\n\t\t\t\t} else {\n\t\t\t\t\tdomain.SubDomain = domainStr[:domainLen]\n\t\t\t\t}\n\n\t\t\t}\n\t\tcase 2:\n\t\t\t{\n\t\t\t\tsp := strings.Split(dp[1], \".\")\n\t\t\t\tlength := len(sp)\n\t\t\t\tif length <= 1 {\n\t\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdomain.DomainName = dp[1]\n\t\t\t\tdomain.SubDomain = dp[0]\n\t\t\t}\n\t\tdefault:\n\t\t\t{\n\t\t\t\tlog.Println(domainStr, \"域名不正确\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif strings.Contains(domain.DomainName, \"?\") {\n\t\t\tu, err := url.Parse(\"http://\" + domain.DomainName)\n\t\t\tif err != nil {\n\t\t\t\tlog.Println(domainStr, \"域名解析失败\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdomain.DomainName = u.Host\n\t\t\tdomain.CustomParams = u.Query().Encode()\n\t\t}\n\t\tdomains = append(domains, domain)\n\t\tdomainsRawStrList = append(domainsRawStrList, domainStr)\n\n\t}\n\treturn\n}\n"
  },
  {
    "path": "module/ddns/ddnscore.go/taskinfo.go",
    "content": "package ddnscore\n\nimport (\n\tddnsconf \"github.com/gdy666/lucky/module/ddns/conf\"\n)\n\ntype DDNSTaskInfo struct {\n\tddnsconf.DDNSTask\n\tTaskState DDNSTaskState `json:\"TaskState\"`\n}\n\n// CheckIPChange 检测公网IP是否改变\nfunc (d *DDNSTaskInfo) CheckIPChange() (ipAddr string, change bool) {\n\tipAddr = d.GetIpAddr()\n\tcheckIPChange := d.TaskState.IPChanged(ipAddr)\n\tif checkIPChange {\n\t\treturn ipAddr, true\n\t}\n\t//IP没变化\n\treturn ipAddr, false\n}\n\nfunc (d *DDNSTaskInfo) SyncDomains() {\n\tif d.ModifyTime == d.TaskState.ModifyTime {\n\t\t//fmt.Printf(\"不需要syncDomains\\n\")\n\t\treturn\n\t}\n\t//fmt.Printf(\"需要syncDomains\\n\")\n\tdomains, _ := checkParseDomains(d.Domains)\n\n\tfor i := range domains {\n\t\tindex := getDomainIndex(d.TaskState.Domains, &domains[i])\n\t\tif index < 0 {\n\t\t\tcontinue\n\t\t}\n\t\tdomains[i] = d.TaskState.Domains[index]\n\t}\n\td.TaskState.Domains = domains\n\td.TaskState.ModifyTime = d.ModifyTime\n\ttaskInfoMap.Store(d.TaskKey, &d.TaskState)\n}\n\nfunc getDomainIndex(domains []Domain, domain *Domain) (index int) {\n\tindex = -1\n\tfor i := range domains {\n\t\tif domains[i].RawStr == domain.RawStr {\n\t\t\tindex = i\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "module/ddns/ddnscore.go/taskstate.go",
    "content": "package ddnscore\n\nimport (\n\t\"time\"\n)\n\n// 固定的主域名\nvar staticMainDomains = []string{\"com.cn\", \"org.cn\", \"net.cn\", \"ac.cn\", \"eu.org\"}\n\n// 获取ip失败的次数\n\n// Domains Ipv4/Ipv6 DDNSTaskState\ntype DDNSTaskState struct {\n\tIpAddr              string\n\tDomains             []Domain\n\tdomainsRawStrList   []string\n\tWebhookCallTime     string    `json:\"WebhookCallTime\"`     //最后触发时间\n\tWebhookCallResult   bool      `json:\"WebhookCallResult\"`   //触发结果\n\tWebhookCallErrorMsg string    `json:\"WebhookCallErrorMsg\"` //触发错误信息\n\tLastSyncTime        time.Time `json:\"-\"`                   //记录最新一次同步操作时间\n\tLastWorkTime        time.Time `json:\"-\"`\n\n\tIPAddrHistory      []any `json:\"IPAddrHistory\"`\n\tWebhookCallHistroy []any `json:\"WebhookCallHistroy\"`\n\tModifyTime         int64\n}\n\ntype IPAddrHistoryItem struct {\n\tIPaddr     string\n\tRecordTime string\n}\n\ntype WebhookCallHistroyItem struct {\n\tCallTime   string\n\tCallResult string\n}\n\nfunc (d *DDNSTaskState) SetIPAddr(ipaddr string) {\n\tif d.IpAddr == ipaddr {\n\t\treturn\n\t}\n\n\td.IpAddr = ipaddr\n\n\thi := IPAddrHistoryItem{IPaddr: ipaddr, RecordTime: time.Now().Local().Format(\"2006-01-02 15:04:05\")}\n\td.IPAddrHistory = append(d.IPAddrHistory, hi)\n\n\tif len(d.IPAddrHistory) > 10 {\n\t\td.IPAddrHistory = DeleteAnyListlice(d.IPAddrHistory, 0)\n\t}\n}\n\nfunc DeleteAnyListlice(a []any, deleteIndex int) []any {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc (d *DDNSTaskState) SetDomainUpdateStatus(status string, message string) {\n\tfor i := range d.Domains {\n\t\td.Domains[i].SetDomainUpdateStatus(status, message)\n\t}\n}\n\nfunc (d *DDNSTaskState) SetWebhookResult(result bool, errMsg string) {\n\td.WebhookCallResult = result\n\td.WebhookCallErrorMsg = errMsg\n\td.WebhookCallTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\n\tcr := \"成功\"\n\tif !result {\n\t\tcr = \"出错\"\n\t}\n\n\thi := WebhookCallHistroyItem{CallResult: cr, CallTime: time.Now().Local().Format(\"2006-01-02 15:04:05\")}\n\td.WebhookCallHistroy = append(d.WebhookCallHistroy, hi)\n\tif len(d.WebhookCallHistroy) > 10 {\n\t\td.WebhookCallHistroy = DeleteAnyListlice(d.WebhookCallHistroy, 0)\n\t}\n}\n\nfunc (d *DDNSTaskState) Init(domains []string, mt int64) {\n\td.Domains, d.domainsRawStrList = checkParseDomains(domains)\n\td.ModifyTime = mt\n}\n\n// Check 检测IP是否有改变\nfunc (d *DDNSTaskState) IPChanged(newAddr string) bool {\n\tif newAddr == \"\" {\n\t\treturn true\n\t}\n\t// 地址改变\n\tif d.IpAddr != newAddr {\n\t\t//log.Printf(\"公网地址改变:[%s]===>[%s]\", d.DomainsInfo.IpAddr, newAddr)\n\t\t//domains.IpAddr = newAddr\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "module/ddns/ddnscore.go/webhook.go",
    "content": "package ddnscore\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnsgo\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\n// ExecWebhook 添加或更新IPv4/IPv6记录\nfunc (d *DDNSTaskInfo) ExecWebhook(state *DDNSTaskState) {\n\tif !d.WebhookEnable {\n\t\treturn\n\t}\n\n\tif state.IpAddr == \"\" && !d.WebhookCallOnGetIPfail {\n\t\treturn\n\t}\n\n\thasUpdate := hasDomainTryToUpdate(&state.Domains)\n\n\tif d.WebhookURL != \"\" && (hasUpdate || (state.IpAddr == \"\" && d.WebhookCallOnGetIPfail)) {\n\n\t\t//log.Printf(\"DDNS任务【%s】触发Webhook\", d.TaskName)\n\n\t\tnowTime := time.Now().Format(\"2006-01-02 15:04:05\")\n\n\t\turl := d.replaceWebhookPara(nowTime, d.WebhookURL)\n\t\trequestBody := d.replaceWebhookPara(nowTime, d.WebhookRequestBody)\n\n\t\t//headersStr := cb.task.DNS.Callback.Headers\n\t\tvar headerStrList []string\n\t\tfor i := range d.WebhookHeaders {\n\t\t\theader := d.replaceWebhookPara(nowTime, d.WebhookHeaders[i])\n\t\t\theaderStrList = append(headerStrList, header)\n\t\t}\n\n\t\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\t\tsucccssCotentList := []string{}\n\t\tfor i := range d.WebhookSuccessContent {\n\t\t\tcontent := d.replaceWebhookPara(nowTime, d.WebhookSuccessContent[i])\n\t\t\tsucccssCotentList = append(succcssCotentList, content)\n\t\t}\n\n\t\tcallErr := d.webhookHttpClientDo(d.WebhookMethod, url, requestBody, headers, succcssCotentList)\n\n\t\tif callErr != nil {\n\n\t\t\tstate.SetWebhookResult(false, callErr.Error())\n\t\t\treturn\n\t\t}\n\t\tstate.SetWebhookResult(true, \"\")\n\n\t}\n}\n\nfunc WebhookTest(d *DDNSTaskInfo, url, method, WebhookRequestBody, proxy, addr, user, passwd string, headerList, successContentListraw []string) (string, error) {\n\tnowTime := time.Now().Format(\"2006-01-02 15:04:05\")\n\turl = replaceWebhookTestPara(url, nowTime)\n\trequestBody := replaceWebhookTestPara(WebhookRequestBody, nowTime)\n\n\tvar headerStrList []string\n\tfor i := range headerList {\n\t\theader := replaceWebhookTestPara(headerList[i], nowTime)\n\t\theaderStrList = append(headerStrList, header)\n\t}\n\n\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\tsucccssCotentList := []string{}\n\tfor i := range successContentListraw {\n\t\tcontent := replaceWebhookTestPara(successContentListraw[i], nowTime)\n\t\tsucccssCotentList = append(succcssCotentList, content)\n\t}\n\n\tglobalDDNSConf := ddnsgo.GetDDNSConfigure()\n\tproxyType := \"\"\n\tproxyAddr := \"\"\n\tproxyUser := \"\"\n\tproxyPasswd := \"\"\n\n\tswitch proxy {\n\tcase \"dns\":\n\t\t{\n\t\t\tif d.DNS.HttpClientProxyType != \"\" && d.DNS.HttpClientProxyAddr != \"\" {\n\t\t\t\tproxyType = d.DNS.HttpClientProxyType\n\t\t\t\tproxyAddr = d.DNS.HttpClientProxyAddr\n\t\t\t\tproxyUser = d.DNS.HttpClientProxyUser\n\t\t\t\tproxyPasswd = d.DNS.HttpClientProxyPassword\n\t\t\t}\n\t\t}\n\tcase \"http\", \"https\", \"socks5\":\n\t\t{\n\t\t\tproxyType = proxy\n\t\t\tproxyAddr = addr\n\t\t\tproxyUser = user\n\t\t\tproxyPasswd = passwd\n\t\t}\n\tdefault:\n\t}\n\n\t//fmt.Printf(\"proxyType:%s\\taddr:%s\\t,user[%s]passwd[%s]\\n\", proxyType, proxyAddr, proxyUser, proxyPasswd)\n\n\t//dnsConf := cb.task.DNS\n\t_, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tproxyType,\n\t\tproxyAddr,\n\t\tproxyUser,\n\t\tproxyPasswd,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Second*20)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"webhookTest 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tfor _, successContent := range succcssCotentList {\n\t\tif strings.Contains(respStr, successContent) {\n\t\t\treturn respStr, nil\n\t\t}\n\t}\n\n\treturn respStr, fmt.Errorf(\"接口调用出错,未匹配预设成功返回的字符串\")\n}\n\nfunc (d *DDNSTaskInfo) webhookHttpClientDo(method, url, requestBody string, headers map[string]string, callbackSuccessContent []string) error {\n\n\tglobalDDNSConf := ddnsgo.GetDDNSConfigure()\n\tproxyType := \"\"\n\tproxyAddr := \"\"\n\tproxyUser := \"\"\n\tproxyPasswd := \"\"\n\n\tswitch d.WebhookProxy {\n\tcase \"dns\":\n\t\t{\n\t\t\tif d.DNS.HttpClientProxyType != \"\" && d.DNS.HttpClientProxyAddr != \"\" {\n\t\t\t\tproxyType = d.DNS.HttpClientProxyType\n\t\t\t\tproxyAddr = d.DNS.HttpClientProxyAddr\n\t\t\t\tproxyUser = d.DNS.HttpClientProxyUser\n\t\t\t\tproxyPasswd = d.DNS.HttpClientProxyPassword\n\t\t\t}\n\t\t}\n\tcase \"http\", \"https\", \"socks5\":\n\t\t{\n\t\t\tproxyType = d.WebhookProxy\n\t\t\tproxyAddr = d.WebhookProxyAddr\n\t\t\tproxyUser = d.WebhookProxyUser\n\t\t\tproxyPasswd = d.WebhookProxyPassword\n\t\t}\n\tdefault:\n\t}\n\n\t//dnsConf := cb.task.DNS\n\tstatusCode, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tproxyType,\n\t\tproxyAddr,\n\t\tproxyUser,\n\t\tproxyPasswd,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Second*20)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"webhook 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tif d.WebhookDisableCallbackSuccessContentCheck {\n\t\tif statusCode == http.StatusOK {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"webhook调用接口失败:\\n statusCode:%d\\n%s\", statusCode, respStr)\n\t}\n\n\tfor _, successContent := range callbackSuccessContent {\n\t\tif strings.Contains(respStr, successContent) {\n\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fmt.Errorf(\"webhook 调用接口失败:\\n%s\", respStr)\n}\n\n// DomainsIsChange\nfunc hasDomainTryToUpdate(domains *[]Domain) bool {\n\tfor _, v46 := range *domains {\n\t\tswitch v46.UpdateStatus {\n\t\tcase UpdatedFailed:\n\t\t\treturn true\n\t\tcase UpdatedSuccess:\n\t\t\treturn true\n\t\tdefault:\n\t\t}\n\t}\n\treturn false\n}\n\n// replaceWebhookTestPara WebhookTest替换参数  #{successDomains},#{failedDomains}\nfunc replaceWebhookTestPara(orgPara, nowTime string) (newPara string) {\n\torgPara = strings.ReplaceAll(orgPara, \"#{ipAddr}\", \"66.66.66.66\")\n\n\tsuccessDomains := \"www1.google.com,www2.google.com,www3.google.com,www4.google.com\"\n\tfailedDomains := \"www1.github.com,www2.github.com,www3.github.com,www4.github.com\"\n\tsuccessDomainsLine := strings.Replace(successDomains, \",\", `\\n`, -1)\n\tfailedDomainsLine := strings.Replace(failedDomains, \",\", `\\n`, -1)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomains}\", successDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomains}\", failedDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomainsLine}\", successDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomainsLine}\", failedDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{time}\", nowTime)\n\treturn orgPara\n}\n\n// replacePara 替换参数  #{successDomains},#{failedDomains}\nfunc (d *DDNSTaskInfo) replaceWebhookPara(nowTime, orgPara string) (newPara string) {\n\tipAddrText := d.TaskState.IpAddr\n\n\tsuccessDomains, failedDomains := d.getDomainsStr(&d.TaskState.Domains)\n\tif ipAddrText == \"\" {\n\t\tipAddrText = \"获取IP失败\"\n\t\tsuccessDomains = \"\"\n\t\tfailedDomains = \"\"\n\t}\n\n\tsuccessDomainsLine := strings.Replace(successDomains, \",\", `\\n`, -1)\n\tfailedDomainsLine := strings.Replace(failedDomains, \",\", `\\n`, -1)\n\n\torgPara = strings.ReplaceAll(orgPara, \"#{ipAddr}\", ipAddrText)\n\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomains}\", successDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomains}\", failedDomains)\n\torgPara = strings.ReplaceAll(orgPara, \"#{successDomainsLine}\", successDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{failedDomainsLine}\", failedDomainsLine)\n\torgPara = strings.ReplaceAll(orgPara, \"#{time}\", nowTime)\n\treturn orgPara\n}\n\n// getDomainsStr 用逗号分割域名,分类域名返回，成功和失败的\nfunc (d *DDNSTaskInfo) getDomainsStr(domains *[]Domain) (string, string) {\n\tvar successDomainBuf strings.Builder\n\tvar failedDomainsBuf strings.Builder\n\tfor _, v46 := range *domains {\n\t\tif v46.UpdateStatus == UpdatedFailed || (d.Webhook.WebhookCallOnGetIPfail && v46.UpdateStatus == UpdatePause) {\n\t\t\tif failedDomainsBuf.Len() > 0 {\n\t\t\t\tfailedDomainsBuf.WriteString(\",\")\n\t\t\t}\n\t\t\tfailedDomainsBuf.WriteString(v46.String())\n\t\t\tcontinue\n\t\t}\n\n\t\t//if v46.UpdateStatus == UpdatedNothing || v46.UpdateStatus == UpdatedSuccess {\n\t\tif v46.UpdateStatus == UpdatedSuccess {\n\t\t\tif successDomainBuf.Len() > 0 {\n\t\t\t\tsuccessDomainBuf.WriteString(\",\")\n\t\t\t}\n\t\t\tsuccessDomainBuf.WriteString(v46.String())\n\t\t}\n\t}\n\n\treturn successDomainBuf.String(), failedDomainsBuf.String()\n}\n"
  },
  {
    "path": "module/ddns/ddnsgo/ddns.go",
    "content": "package ddnsgo\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\tddnsconf \"github.com/gdy666/lucky/module/ddns/conf\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\nfunc init() {\n\tddnsconf.SetGetDDNSConfigureFunc(GetDDNSConfigure)\n}\n\nfunc DDNSTaskListConfigureCheck() {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].DNS.ForceInterval < 60 {\n\t\t\tconfig.Configure.DDNSTaskList[i].DNS.ForceInterval = 60\n\t\t} else if config.Configure.DDNSTaskList[i].DNS.ForceInterval > 360000 {\n\t\t\tconfig.Configure.DDNSTaskList[i].DNS.ForceInterval = 360000\n\t\t}\n\n\t\tif config.Configure.DDNSTaskList[i].HttpClientTimeout < 3 {\n\t\t\tconfig.Configure.DDNSTaskList[i].HttpClientTimeout = 3\n\t\t} else if config.Configure.DDNSTaskList[i].HttpClientTimeout > 60 {\n\t\t\tconfig.Configure.DDNSTaskList[i].HttpClientTimeout = 60\n\t\t}\n\t}\n}\n\nfunc DDNSTaskSetWebhookCallResult(taskKey string, result bool, message string) {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn\n\t}\n\n\tlog.Printf(\"DDNSTaskSetWebhookCallResult %s\", taskKey)\n\n}\n\nfunc GetDDNSTaskConfigureList() []*ddnsconf.DDNSTask {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\tvar resList []*ddnsconf.DDNSTask\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\ttask := config.Configure.DDNSTaskList[i]\n\t\tresList = append(resList, &task)\n\t}\n\treturn resList\n}\n\nfunc GetDDNSTaskByKey(taskKey string) *ddnsconf.DDNSTask {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\ttaskIndex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn nil\n\t}\n\tres := config.Configure.DDNSTaskList[taskIndex]\n\n\treturn &res\n}\n\nfunc DDNSTaskListAdd(task *ddnsconf.DDNSTask) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\ttask.TaskKey = stringsp.GetRandomString(16)\n\ttask.ModifyTime = time.Now().Unix()\n\tconfig.Configure.DDNSTaskList = append(config.Configure.DDNSTaskList, *task)\n\treturn config.Save()\n}\n\nfunc DDNSTaskListDelete(taskKey string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\ttaskIndex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的DDNS任务\")\n\t}\n\n\tconfig.Configure.DDNSTaskList = DeleteDDNSTaskListlice(config.Configure.DDNSTaskList, taskIndex)\n\treturn config.Save()\n}\n\nfunc EnableDDNSTaskByKey(taskKey string, enable bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"开关DDNS任务失败,TaskKey不存在\")\n\t}\n\tconfig.Configure.DDNSTaskList[taskIndex].Enable = enable\n\n\treturn config.Save()\n}\n\nfunc UpdateTaskToDDNSTaskList(taskKey string, task ddnsconf.DDNSTask) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\ttaskIndex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.DDNSTaskList[i].TaskKey == taskKey {\n\t\t\ttaskIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif taskIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的DDNS任务\")\n\t}\n\n\tconfig.Configure.DDNSTaskList[taskIndex].TaskName = task.TaskName\n\tconfig.Configure.DDNSTaskList[taskIndex].TaskType = task.TaskType\n\tconfig.Configure.DDNSTaskList[taskIndex].Enable = task.Enable\n\tconfig.Configure.DDNSTaskList[taskIndex].GetType = task.GetType\n\tconfig.Configure.DDNSTaskList[taskIndex].URL = task.URL\n\tconfig.Configure.DDNSTaskList[taskIndex].NetInterface = task.NetInterface\n\tconfig.Configure.DDNSTaskList[taskIndex].IPReg = task.IPReg\n\tconfig.Configure.DDNSTaskList[taskIndex].Domains = task.Domains\n\tconfig.Configure.DDNSTaskList[taskIndex].DNS = task.DNS\n\tconfig.Configure.DDNSTaskList[taskIndex].Webhook = task.Webhook\n\tconfig.Configure.DDNSTaskList[taskIndex].TTL = task.TTL\n\tconfig.Configure.DDNSTaskList[taskIndex].HttpClientTimeout = task.HttpClientTimeout\n\n\tconfig.Configure.DDNSTaskList[taskIndex].ModifyTime = time.Now().Unix()\n\n\treturn config.Save()\n}\n\nfunc DeleteDDNSTaskListlice(a []ddnsconf.DDNSTask, deleteIndex int) []ddnsconf.DDNSTask {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc GetDDNSConfigure() ddnsconf.DDNSConfigure {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tconf := config.Configure.DDNSConfigure\n\treturn conf\n}\n\nfunc SetDDNSConfigure(conf *ddnsconf.DDNSConfigure) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tif conf.Intervals < 30 {\n\t\tconf.Intervals = 30\n\t}\n\n\tif conf.Intervals > 3600 {\n\t\tconf.Intervals = 3600\n\t}\n\n\tif conf.FirstCheckDelay < 0 {\n\t\tconf.FirstCheckDelay = 0\n\t}\n\n\tif conf.FirstCheckDelay > 3600 {\n\t\tconf.FirstCheckDelay = 3600\n\t}\n\n\tconfig.Configure.DDNSConfigure = *conf\n\treturn config.Save()\n}\n"
  },
  {
    "path": "module/ddns/providers/alidns.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\nconst (\n\talidnsEndpoint string = \"https://alidns.aliyuncs.com/\"\n)\n\n// https://help.aliyun.com/document_detail/29776.html?spm=a2c4g.11186623.6.672.715a45caji9dMA\n// Alidns Alidns\ntype Alidns struct {\n\tProviderCommon\n\tTTL string\n}\n\n// AlidnsRecord record\ntype AlidnsRecord struct {\n\tDomainName string\n\tRecordID   string\n\tValue      string\n}\n\n// AlidnsSubDomainRecords 记录\ntype AlidnsSubDomainRecords struct {\n\tTotalCount    int\n\tDomainRecords struct {\n\t\tRecord []AlidnsRecord\n\t}\n}\n\n// AlidnsResp 修改/添加返回结果\ntype AlidnsResp struct {\n\tRecordID  string\n\tRequestID string\n}\n\n// Init 初始化\nfunc (ali *Alidns) Init(task *ddnscore.DDNSTaskInfo) {\n\tali.ProviderCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tali.TTL = \"600\"\n\t} else {\n\t\tali.TTL = task.TTL\n\t}\n\tali.SetCreateUpdateDomainFunc(ali.createUpdateDomain)\n}\n\nfunc (ali *Alidns) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records AlidnsSubDomainRecords\n\t// 获取当前域名信息\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"DescribeSubDomainRecords\")\n\tparams.Set(\"DomainName\", domain.DomainName)\n\tparams.Set(\"SubDomain\", domain.GetFullDomain())\n\tparams.Set(\"Type\", recordType)\n\terr := ali.request(params, &records)\n\n\tif err != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t\treturn\n\t}\n\n\tif records.TotalCount > 0 {\n\t\t// 默认第一个\n\t\trecordSelected := records.DomainRecords.Record[0]\n\t\tif params.Has(\"RecordId\") {\n\t\t\tfor i := 0; i < len(records.DomainRecords.Record); i++ {\n\t\t\t\tif records.DomainRecords.Record[i].RecordID == params.Get(\"RecordId\") {\n\t\t\t\t\trecordSelected = records.DomainRecords.Record[i]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// 存在，更新\n\t\tali.modify(recordSelected, domain, recordType, ipAddr)\n\t} else {\n\t\t// 不存在，创建\n\t\tali.create(domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (ali *Alidns) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"AddDomainRecord\")\n\tparams.Set(\"DomainName\", domain.DomainName)\n\tparams.Set(\"RR\", domain.GetSubDomain())\n\tparams.Set(\"Type\", recordType)\n\tparams.Set(\"Value\", ipAddr)\n\tparams.Set(\"TTL\", ali.TTL)\n\n\tvar result AlidnsResp\n\terr := ali.request(params, &result)\n\n\tif err == nil && result.RecordID != \"\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:\\n%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (ali *Alidns) modify(recordSelected AlidnsRecord, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif recordSelected.Value == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tparams := domain.GetCustomParams()\n\tparams.Set(\"Action\", \"UpdateDomainRecord\")\n\tparams.Set(\"RR\", domain.GetSubDomain())\n\tparams.Set(\"RecordId\", recordSelected.RecordID)\n\tparams.Set(\"Type\", recordType)\n\tparams.Set(\"Value\", ipAddr)\n\tparams.Set(\"TTL\", ali.TTL)\n\n\tvar result AlidnsResp\n\terr := ali.request(params, &result)\n\n\tif err == nil && result.RecordID != \"\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// request 统一请求接口\nfunc (ali *Alidns) request(params url.Values, result interface{}) (err error) {\n\n\tutil.AliyunSigner(ali.task.DNS.ID, ali.task.DNS.Secret, &params)\n\n\treq, err := http.NewRequest(\n\t\t\"GET\",\n\t\talidnsEndpoint,\n\t\tbytes.NewBuffer(nil),\n\t)\n\treq.URL.RawQuery = params.Encode()\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\tclient, err := ali.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "module/ddns/providers/baidu.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\n// https://cloud.baidu.com/doc/BCD/s/4jwvymhs7\n\nconst (\n\tbaiduEndpoint = \"https://bcd.baidubce.com\"\n)\n\ntype BaiduCloud struct {\n\tProviderCommon\n\tTTL int\n}\n\n// BaiduRecord 单条解析记录\ntype BaiduRecord struct {\n\tRecordId uint   `json:\"recordId\"`\n\tDomain   string `json:\"domain\"`\n\tView     string `json:\"view\"`\n\tRdtype   string `json:\"rdtype\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n\tStatus   string `json:\"status\"`\n}\n\n// BaiduRecordsResp 获取解析列表拿到的结果\ntype BaiduRecordsResp struct {\n\tTotalCount int           `json:\"totalCount\"`\n\tResult     []BaiduRecord `json:\"result\"`\n}\n\n// BaiduListRequest 获取解析列表请求的body json\ntype BaiduListRequest struct {\n\tDomain   string `json:\"domain\"`\n\tPageNum  int    `json:\"pageNum\"`\n\tPageSize int    `json:\"pageSize\"`\n}\n\n// BaiduModifyRequest 修改解析请求的body json\ntype BaiduModifyRequest struct {\n\tRecordId uint   `json:\"recordId\"`\n\tDomain   string `json:\"domain\"`\n\tView     string `json:\"view\"`\n\tRdType   string `json:\"rdType\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n}\n\n// BaiduCreateRequest 创建新解析请求的body json\ntype BaiduCreateRequest struct {\n\tDomain   string `json:\"domain\"`\n\tRdType   string `json:\"rdType\"`\n\tTTL      int    `json:\"ttl\"`\n\tRdata    string `json:\"rdata\"`\n\tZoneName string `json:\"zoneName\"`\n}\n\nfunc (baidu *BaiduCloud) Init(task *ddnscore.DDNSTaskInfo) {\n\tbaidu.ProviderCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\tbaidu.TTL = 300\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tbaidu.TTL = 300\n\t\t} else {\n\t\t\tbaidu.TTL = ttl\n\t\t}\n\t}\n\tbaidu.SetCreateUpdateDomainFunc(baidu.createUpdateDomain)\n}\n\nfunc (baidu *BaiduCloud) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records BaiduRecordsResp\n\n\trequestBody := BaiduListRequest{\n\t\tDomain:   domain.DomainName,\n\t\tPageNum:  1,\n\t\tPageSize: 1000,\n\t}\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/list\", requestBody, &records)\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tfind := false\n\tfor _, record := range records.Result {\n\t\tif record.Domain == domain.GetSubDomain() {\n\t\t\t//存在就去更新\n\t\t\tbaidu.modify(record, domain, recordType, ipAddr)\n\t\t\tfind = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !find {\n\t\t//没找到，去创建\n\t\tbaidu.create(domain, recordType, ipAddr)\n\t}\n}\n\n// create 创建新的解析\nfunc (baidu *BaiduCloud) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tvar baiduCreateRequest = BaiduCreateRequest{\n\t\tDomain:   domain.GetSubDomain(), //处理一下@\n\t\tRdType:   recordType,\n\t\tTTL:      baidu.TTL,\n\t\tRdata:    ipAddr,\n\t\tZoneName: domain.DomainName,\n\t}\n\tvar result BaiduRecordsResp\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/add\", baiduCreateRequest, &result)\n\tif err == nil {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\t//log.Printf(\"新增域名解析 %s 失败！\", domain)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\n// modify 更新解析\nfunc (baidu *BaiduCloud) modify(record BaiduRecord, domain *ddnscore.Domain, rdType string, ipAddr string) {\n\t//没有变化直接跳过\n\tif record.Rdata == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\tvar baiduModifyRequest = BaiduModifyRequest{\n\t\tRecordId: record.RecordId,\n\t\tDomain:   record.Domain,\n\t\tView:     record.View,\n\t\tRdType:   rdType,\n\t\tTTL:      record.TTL,\n\t\tRdata:    ipAddr,\n\t\tZoneName: record.ZoneName,\n\t}\n\tvar result BaiduRecordsResp\n\n\terr := baidu.request(\"POST\", baiduEndpoint+\"/v1/domain/resolve/edit\", baiduModifyRequest, &result)\n\tif err == nil {\n\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\t//log.Printf(\"更新域名解析 %s 失败！\", domain)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\n// request 统一请求接口\nfunc (baidu *BaiduCloud) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\tutil.BaiduSigner(baidu.task.DNS.ID, baidu.task.DNS.Secret, req)\n\n\tclient, err := baidu.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "module/ddns/providers/callback.go",
    "content": "package providers\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/module/ddns/ddnsgo\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\ntype Callback struct {\n\tProviderCommon\n\tTTL string\n}\n\n// Init 初始化\nfunc (cb *Callback) Init(task *ddnscore.DDNSTaskInfo) {\n\tcb.ProviderCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认600\n\t\tcb.TTL = \"600\"\n\t} else {\n\t\tcb.TTL = task.TTL\n\t}\n\tcb.SetCreateUpdateDomainFunc(cb.createUpdateDomain)\n}\n\nfunc CopyHeadersMap(sm map[string]string) map[string]string {\n\tdm := make(map[string]string)\n\n\tfor k, v := range sm {\n\t\tdm[k] = v\n\t}\n\n\treturn dm\n}\n\nfunc (cb *Callback) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\turl := replacePara(cb.task.DNS.Callback.URL, ipAddr, domain, recordType, cb.TTL)\n\trequestBody := replacePara(cb.task.DNS.Callback.RequestBody, ipAddr, domain, recordType, cb.TTL)\n\n\t//headersStr := cb.task.DNS.Callback.Headers\n\tvar headerStrList []string\n\tfor i := range cb.task.DNS.Callback.Headers {\n\t\theader := replacePara(cb.task.DNS.Callback.Headers[i], ipAddr, domain, recordType, cb.TTL)\n\t\theaderStrList = append(headerStrList, header)\n\t}\n\n\theaders := httputils.CreateHeadersMap(headerStrList)\n\n\tsucccssCotentList := []string{}\n\tfor i := range cb.task.DNS.Callback.CallbackSuccessContent {\n\t\tcontent := replacePara(cb.task.DNS.Callback.CallbackSuccessContent[i], ipAddr, domain, recordType, cb.TTL)\n\t\tsucccssCotentList = append(succcssCotentList, content)\n\t}\n\n\tcallErr := cb.CallbackHttpClientDo(cb.task.DNS.Callback.Method, url, requestBody, headers, succcssCotentList)\n\n\tif callErr != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, callErr.Error())\n\t\treturn\n\t}\n\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n}\n\n// replacePara 替换参数\nfunc replacePara(orgPara, ipAddr string, domain *ddnscore.Domain, recordType string, ttl string) (newPara string) {\n\torgPara = strings.ReplaceAll(orgPara, \"#{ip}\", ipAddr)\n\torgPara = strings.ReplaceAll(orgPara, \"#{domain}\", domain.String())\n\torgPara = strings.ReplaceAll(orgPara, \"#{recordType}\", recordType)\n\torgPara = strings.ReplaceAll(orgPara, \"#{ttl}\", ttl)\n\n\tfor k, v := range domain.GetCustomParams() {\n\t\tif len(v) == 1 {\n\t\t\torgPara = strings.ReplaceAll(orgPara, \"#{\"+k+\"}\", v[0])\n\t\t}\n\t}\n\n\treturn orgPara\n}\n\nfunc (cb *Callback) CallbackHttpClientDo(method, url, requestBody string, headers map[string]string, callbackSuccessContent []string) error {\n\n\tglobalDDNSConf := ddnsgo.GetDDNSConfigure()\n\tdnsConf := cb.task.DNS\n\tstatusCode, respStr, err := httputils.GetStringGoutDoHttpRequest(\n\t\t\"tcp\",\n\t\t\"\",\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tdnsConf.HttpClientProxyType,\n\t\tdnsConf.HttpClientProxyAddr,\n\t\tdnsConf.HttpClientProxyUser,\n\t\tdnsConf.HttpClientProxyPassword,\n\t\theaders,\n\t\t!globalDDNSConf.HttpClientSecureVerify,\n\t\ttime.Duration(cb.task.HttpClientTimeout)*time.Second)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Callback 调用接口[%s]出错：%s\", url, err.Error())\n\t}\n\n\tif cb.task.DNS.Callback.DisableCallbackSuccessContentCheck {\n\t\tif statusCode == http.StatusOK {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"调用接口失败:\\n statusCode:%d\\n%s\", statusCode, respStr)\n\t}\n\n\t//log.Printf(\"接口[%s]调用响应:%s\\n\", url, respStr)\n\n\t//fmt.Printf(\"statusCode:%d\\n\", statusCode)\n\n\tfor _, successContent := range callbackSuccessContent {\n\t\tif strings.Contains(respStr, successContent) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fmt.Errorf(\"调用接口失败:\\n%s\", respStr)\n}\n"
  },
  {
    "path": "module/ddns/providers/cloudflare.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\tzonesAPI string = \"https://api.cloudflare.com/client/v4/zones\"\n)\n\n// Cloudflare Cloudflare实现\ntype Cloudflare struct {\n\tProviderCommon\n\tTTL int\n}\n\n// CloudflareZonesResp cloudflare zones返回结果\ntype CloudflareZonesResp struct {\n\tCloudflareStatus\n\tResult []struct {\n\t\tID     string\n\t\tName   string\n\t\tStatus string\n\t\tPaused bool\n\t}\n}\n\n// CloudflareRecordsResp records\ntype CloudflareRecordsResp struct {\n\tCloudflareStatus\n\tResult []CloudflareRecord\n}\n\n// CloudflareRecord 记录实体\ntype CloudflareRecord struct {\n\tID      string `json:\"id\"`\n\tName    string `json:\"name\"`\n\tType    string `json:\"type\"`\n\tContent string `json:\"content\"`\n\tProxied bool   `json:\"proxied\"`\n\tTTL     int    `json:\"ttl\"`\n}\n\n// CloudflareStatus 公共状态\ntype CloudflareStatus struct {\n\tSuccess  bool\n\tMessages []string\n}\n\n// Init 初始化\nfunc (cf *Cloudflare) Init(task *ddnscore.DDNSTaskInfo) {\n\tcf.ProviderCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认1 auto ttl\n\t\tcf.TTL = 1\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tcf.TTL = 1\n\t\t} else {\n\t\t\tcf.TTL = ttl\n\t\t}\n\t}\n\tcf.SetCreateUpdateDomainFunc(cf.createUpdateDomain)\n}\n\nfunc (cf *Cloudflare) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tresult, err := cf.getZones(domain)\n\tif err != nil || len(result.Result) != 1 {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t} else {\n\t\t\terrMsg += fmt.Sprintf(\"%v\", result)\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\tzoneID := result.Result[0].ID\n\n\tvar records CloudflareRecordsResp\n\t// getDomains 最多更新前50条\n\terr = cf.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records?type=%s&name=%s&per_page=50\", zoneID, recordType, domain),\n\t\tnil,\n\t\t&records,\n\t)\n\n\tif err != nil || !records.Success {\n\t\terrMsg := \"更新失败[002]:\\n\"\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tif len(records.Result) > 0 {\n\t\t// 更新\n\t\tcf.modify(records, zoneID, domain, recordType, ipAddr)\n\t} else {\n\t\t// 新增\n\t\tcf.create(zoneID, domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (cf *Cloudflare) create(zoneID string, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\trecord := &CloudflareRecord{\n\t\tType:    recordType,\n\t\tName:    domain.String(),\n\t\tContent: ipAddr,\n\t\tProxied: false,\n\t\tTTL:     cf.TTL,\n\t}\n\n\tvar status CloudflareStatus\n\terr := cf.request(\n\t\t\"POST\",\n\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records\", zoneID),\n\t\trecord,\n\t\t&status,\n\t)\n\tif err == nil && status.Success {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:\\n%v\\n\", status)\n\t\tif err != nil {\n\t\t\terrMsg += fmt.Sprintf(\":%s\", err.Error())\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (cf *Cloudflare) modify(result CloudflareRecordsResp, zoneID string, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\tfor _, record := range result.Result {\n\t\t// 相同不修改\n\t\tif record.Content == ipAddr {\n\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t} else {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tvar status CloudflareStatus\n\t\trecord.Content = ipAddr\n\t\trecord.TTL = cf.TTL\n\n\t\terr := cf.request(\n\t\t\t\"PUT\",\n\t\t\tfmt.Sprintf(zonesAPI+\"/%s/dns_records/%s\", zoneID, record.ID),\n\t\t\trecord,\n\t\t\t&status,\n\t\t)\n\n\t\tif err == nil && status.Success {\n\t\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\t//log.Printf(\"更新域名解析 %s 失败！Messages: %s\", domain, status.Messages)\n\t\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", status)\n\t\t\tif err != nil {\n\t\t\t\terrMsg += err.Error()\n\t\t\t}\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\t}\n\t}\n}\n\n// 获得域名记录列表\nfunc (cf *Cloudflare) getZones(domain *ddnscore.Domain) (result CloudflareZonesResp, err error) {\n\terr = cf.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(zonesAPI+\"?name=%s&status=%s&per_page=%s\", domain.DomainName, \"active\", \"50\"),\n\t\tnil,\n\t\t&result,\n\t)\n\n\treturn\n}\n\n// request 统一请求接口\nfunc (cf *Cloudflare) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+cf.task.DNS.Secret)\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\tclient, err := cf.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "module/ddns/providers/dnspod.go",
    "content": "package providers\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\trecordListAPI   string = \"https://dnsapi.cn/Record.List\"\n\trecordModifyURL string = \"https://dnsapi.cn/Record.Modify\"\n\trecordCreateAPI string = \"https://dnsapi.cn/Record.Create\"\n)\n\n// https://cloud.tencent.com/document/api/302/8516\n// Dnspod 腾讯云dns实现\ntype Dnspod struct {\n\tProviderCommon\n\tTTL string\n}\n\n// DnspodRecordListResp recordListAPI结果\ntype DnspodRecordListResp struct {\n\tDnspodStatus\n\tRecords []struct {\n\t\tID      string\n\t\tName    string\n\t\tType    string\n\t\tValue   string\n\t\tEnabled string\n\t}\n}\n\n// DnspodStatus DnspodStatus\ntype DnspodStatus struct {\n\tStatus struct {\n\t\tCode    string\n\t\tMessage string\n\t}\n}\n\n// Init 初始化\nfunc (dnspod *Dnspod) Init(task *ddnscore.DDNSTaskInfo) {\n\tdnspod.ProviderCommon.Init(task)\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tdnspod.TTL = \"600\"\n\t} else {\n\t\tdnspod.TTL = task.TTL\n\t}\n\tdnspod.SetCreateUpdateDomainFunc(dnspod.createUpdateDomain)\n}\n\nfunc (dnspod *Dnspod) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tresult, err := dnspod.getRecordList(domain, recordType)\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tif len(result.Records) > 0 {\n\t\t// 更新\n\t\tdnspod.modify(result, domain, recordType, ipAddr)\n\t} else {\n\t\t// 新增\n\t\tdnspod.create(result, domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (dnspod *Dnspod) create(result DnspodRecordListResp, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tparams := domain.GetCustomParams()\n\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\tparams.Add(\"domain\", domain.DomainName)\n\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\tparams.Add(\"record_type\", recordType)\n\tparams.Add(\"value\", ipAddr)\n\tparams.Add(\"ttl\", dnspod.TTL)\n\tparams.Add(\"format\", \"json\")\n\n\tif !params.Has(\"record_line\") {\n\t\tparams.Add(\"record_line\", \"默认\")\n\t}\n\n\tstatus, err := dnspod.commonRequest(recordCreateAPI, params, domain)\n\tif err == nil && status.Status.Code == \"1\" {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"创建域名失败:%v\\n\", status)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (dnspod *Dnspod) modify(result DnspodRecordListResp, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tfor _, record := range result.Records {\n\t\t// 相同不修改\n\t\tif record.Value == ipAddr {\n\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t} else {\n\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tparams := domain.GetCustomParams()\n\t\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\t\tparams.Add(\"domain\", domain.DomainName)\n\t\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\t\tparams.Add(\"record_type\", recordType)\n\t\tparams.Add(\"value\", ipAddr)\n\t\tparams.Add(\"ttl\", dnspod.TTL)\n\t\tparams.Add(\"format\", \"json\")\n\t\tparams.Add(\"record_id\", record.ID)\n\n\t\tif !params.Has(\"record_line\") {\n\t\t\tparams.Add(\"record_line\", \"默认\")\n\t\t}\n\t\tstatus, err := dnspod.commonRequest(recordModifyURL, params, domain)\n\t\tif err == nil && status.Status.Code == \"1\" {\n\t\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", status)\n\t\t\tif err != nil {\n\t\t\t\terrMsg += err.Error()\n\t\t\t}\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\t}\n\t}\n}\n\n// 公共\nfunc (dnspod *Dnspod) commonRequest(apiAddr string, values url.Values, domain *ddnscore.Domain) (status DnspodStatus, err error) {\n\tclient, e := dnspod.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\tresp, e := client.PostForm(\n\t\tapiAddr,\n\t\tvalues,\n\t)\n\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\terr = httputils.GetAndParseJSONResponseFromHttpResponse(resp, &status)\n\n\treturn\n}\n\n// 获得域名记录列表\nfunc (dnspod *Dnspod) getRecordList(domain *ddnscore.Domain, typ string) (result DnspodRecordListResp, err error) {\n\tparams := domain.GetCustomParams()\n\tparams.Add(\"login_token\", dnspod.task.DNS.ID+\",\"+dnspod.task.DNS.Secret)\n\tparams.Add(\"domain\", domain.DomainName)\n\tparams.Add(\"record_type\", typ)\n\tparams.Add(\"sub_domain\", domain.GetSubDomain())\n\tparams.Add(\"format\", \"json\")\n\n\tif !params.Has(\"record_line\") {\n\t\tparams.Add(\"record_line\", \"默认\")\n\t}\n\n\tclient, e := dnspod.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\tresp, err := client.PostForm(\n\t\trecordListAPI,\n\t\tparams,\n\t)\n\n\tif err != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\terr = httputils.GetAndParseJSONResponseFromHttpResponse(resp, &result)\n\n\treturn\n}\n"
  },
  {
    "path": "module/ddns/providers/godaddy.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\ntype godaddyRecord struct {\n\tData string `json:\"data\"`\n\tName string `json:\"name\"`\n\tTTL  int    `json:\"ttl\"`\n\tType string `json:\"type\"`\n}\n\ntype godaddyRecords []godaddyRecord\n\ntype GoDaddy struct {\n\tProviderCommon\n\tTTL    int\n\theader http.Header\n\tclient *http.Client\n}\n\n// Init 初始化\nfunc (gd *GoDaddy) Init(task *ddnscore.DDNSTaskInfo) {\n\tgd.ProviderCommon.Init(task)\n\t// if task.TTL == \"\" {\n\t// \t// 默认600s\n\t// \tgd.TTL = 600\n\t// } else {\n\t// \tgd.TTL = task.TTL\n\t// }\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\tgd.TTL = 600\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\tgd.TTL = 600\n\t\t} else {\n\t\t\tgd.TTL = ttl\n\t\t}\n\t}\n\tgd.header = map[string][]string{\n\t\t\"Authorization\": {fmt.Sprintf(\"sso-key %s:%s\", task.DNS.ID, task.DNS.Secret)},\n\t\t\"Content-Type\":  {\"application/json\"},\n\t}\n\t//g.throttle, _ = util.GetThrottle(55)\n\tgd.client, _ = gd.CreateHTTPClient()\n\n\tgd.SetCreateUpdateDomainFunc(gd.createUpdateDomain)\n}\n\nfunc (gd *GoDaddy) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\t_, err := gd.sendReq(http.MethodPut, recordType, domain, &godaddyRecords{godaddyRecord{\n\t\tData: ipAddr,\n\t\tName: domain.SubDomain,\n\t\tTTL:  gd.TTL,\n\t\tType: recordType,\n\t}})\n\tif err != nil {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, err.Error())\n\t}\n}\n\nfunc (gd *GoDaddy) sendReq(method string, rType string, domain *ddnscore.Domain, data any) (*godaddyRecords, error) {\n\n\tvar body *bytes.Buffer\n\tif data != nil {\n\t\tif buffer, err := json.Marshal(data); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\tbody = bytes.NewBuffer(buffer)\n\t\t}\n\t}\n\tpath := fmt.Sprintf(\"https://api.godaddy.com/v1/domains/%s/records/%s/%s\",\n\t\tdomain.DomainName, rType, domain.SubDomain)\n\treq, err := http.NewRequest(method, path, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header = gd.header\n\n\tresp, err := gd.client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &godaddyRecords{}\n\n\thttputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n\n\treturn result, nil\n}\n"
  },
  {
    "path": "module/ddns/providers/huawei.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/jeessy2/ddns-go/util\"\n)\n\nconst (\n\thuaweicloudEndpoint string = \"https://dns.myhuaweicloud.com\"\n)\n\n// https://support.huaweicloud.com/api-dns/dns_api_64001.html\n// Huaweicloud Huaweicloud\ntype Huaweicloud struct {\n\tProviderCommon\n\tTTL int\n}\n\n// HuaweicloudZonesResp zones response\ntype HuaweicloudZonesResp struct {\n\tZones []struct {\n\t\tID         string\n\t\tName       string\n\t\tRecordsets []HuaweicloudRecordsets\n\t}\n}\n\n// HuaweicloudRecordsResp 记录返回结果\ntype HuaweicloudRecordsResp struct {\n\tRecordsets []HuaweicloudRecordsets\n}\n\n// HuaweicloudRecordsets 记录\ntype HuaweicloudRecordsets struct {\n\tID      string\n\tName    string `json:\"name\"`\n\tZoneID  string `json:\"zone_id\"`\n\tStatus  string\n\tType    string   `json:\"type\"`\n\tTTL     int      `json:\"ttl\"`\n\tRecords []string `json:\"records\"`\n}\n\n// Init 初始化\nfunc (hw *Huaweicloud) Init(task *ddnscore.DDNSTaskInfo) {\n\thw.ProviderCommon.Init(task)\n\n\tif task.TTL == \"\" {\n\t\t// 默认300s\n\t\thw.TTL = 300\n\t} else {\n\t\tttl, err := strconv.Atoi(task.TTL)\n\t\tif err != nil {\n\t\t\thw.TTL = 300\n\t\t} else {\n\t\t\thw.TTL = ttl\n\t\t}\n\t}\n\thw.SetCreateUpdateDomainFunc(hw.createUpdateDomain)\n}\n\nfunc (hw *Huaweicloud) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\tvar records HuaweicloudRecordsResp\n\n\terr := hw.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/recordsets?type=%s&name=%s\", recordType, domain),\n\t\tnil,\n\t\t&records,\n\t)\n\n\tif err != nil {\n\t\terrMsg := \"更新失败[001]:\\n\"\n\t\terrMsg += err.Error()\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t\treturn\n\t}\n\n\tfind := false\n\tfor _, record := range records.Recordsets {\n\t\t// 名称相同才更新。华为云默认是模糊搜索\n\t\tif record.Name == domain.String()+\".\" {\n\t\t\t// 更新\n\t\t\thw.modify(record, domain, recordType, ipAddr)\n\t\t\tfind = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !find {\n\t\t// 新增\n\t\thw.create(domain, recordType, ipAddr)\n\t}\n}\n\n// 创建\nfunc (hw *Huaweicloud) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tzone, err := hw.getZones(domain)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len(zone.Zones) == 0 {\n\t\tlog.Println(\"未能找到公网域名, 请检查域名是否添加\")\n\t\treturn\n\t}\n\n\tzoneID := zone.Zones[0].ID\n\tfor _, z := range zone.Zones {\n\t\tif z.Name == domain.DomainName+\".\" {\n\t\t\tzoneID = z.ID\n\t\t\tbreak\n\t\t}\n\t}\n\n\trecord := &HuaweicloudRecordsets{\n\t\tType:    recordType,\n\t\tName:    domain.String() + \".\",\n\t\tRecords: []string{ipAddr},\n\t\tTTL:     hw.TTL,\n\t}\n\tvar result HuaweicloudRecordsets\n\terr = hw.request(\n\t\t\"POST\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones/%s/recordsets\", zoneID),\n\t\trecord,\n\t\t&result,\n\t)\n\tif err == nil && (len(result.Records) > 0 && result.Records[0] == ipAddr) {\n\t\t//log.Printf(\"新增域名解析 %s 成功！IP: %s\", domain, ipAddr)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"新增域名失败:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (hw *Huaweicloud) modify(record HuaweicloudRecordsets, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif len(record.Records) > 0 && record.Records[0] == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tvar request map[string]interface{} = make(map[string]interface{})\n\trequest[\"records\"] = []string{ipAddr}\n\trequest[\"ttl\"] = hw.TTL\n\n\tvar result HuaweicloudRecordsets\n\n\terr := hw.request(\n\t\t\"PUT\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones/%s/recordsets/%s\", record.ZoneID, record.ID),\n\t\t&request,\n\t\t&result,\n\t)\n\n\tif err == nil && (len(result.Records) > 0 && result.Records[0] == ipAddr) {\n\t\t//log.Printf(\"更新域名解析 %s 成功！IP: %s, 状态: %s\", domain, ipAddr, result.Status)\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析:%v\\n\", result)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 获得域名记录列表\nfunc (hw *Huaweicloud) getZones(domain *ddnscore.Domain) (result HuaweicloudZonesResp, err error) {\n\terr = hw.request(\n\t\t\"GET\",\n\t\tfmt.Sprintf(huaweicloudEndpoint+\"/v2/zones?name=%s\", domain.DomainName),\n\t\tnil,\n\t\t&result,\n\t)\n\n\treturn\n}\n\n// request 统一请求接口\nfunc (hw *Huaweicloud) request(method string, url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\n\treq, err := http.NewRequest(\n\t\tmethod,\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\n\ts := util.Signer{\n\t\tKey:    hw.task.DNS.ID,\n\t\tSecret: hw.task.DNS.Secret,\n\t}\n\ts.Sign(req)\n\n\treq.Header.Add(\"content-type\", \"application/json\")\n\n\tclient, err := hw.CreateHTTPClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "module/ddns/providers/porkbun.go",
    "content": "package providers\n\nimport (\n\t\"bytes\"\n\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\nconst (\n\tporkbunEndpoint string = \"https://porkbun.com/api/json/v3/dns\"\n)\n\ntype Porkbun struct {\n\tProviderCommon\n\tTTL string\n}\ntype PorkbunDomainRecord struct {\n\tName    string `json:\"name\"`    // subdomain\n\tType    string `json:\"type\"`    // record type, e.g. A AAAA CNAME\n\tContent string `json:\"content\"` // value\n\tTtl     string `json:\"ttl\"`     // default 300\n}\n\ntype PorkbunResponse struct {\n\tStatus string `json:\"status\"`\n}\n\ntype PorkbunDomainQueryResponse struct {\n\t*PorkbunResponse\n\tRecords []PorkbunDomainRecord `json:\"records\"`\n}\n\ntype PorkbunApiKey struct {\n\tAccessKey string `json:\"apikey\"`\n\tSecretKey string `json:\"secretapikey\"`\n}\n\ntype PorkbunDomainCreateOrUpdateVO struct {\n\t*PorkbunApiKey\n\t*PorkbunDomainRecord\n}\n\n// Init 初始化\nfunc (pb *Porkbun) Init(task *ddnscore.DDNSTaskInfo) {\n\tpb.ProviderCommon.Init(task)\n\tif task.TTL == \"\" {\n\t\t// 默认600s\n\t\tpb.TTL = \"600\"\n\t} else {\n\t\tpb.TTL = task.TTL\n\t}\n\tpb.SetCreateUpdateDomainFunc(pb.createUpdateDomain)\n}\n\nfunc (pb *Porkbun) createUpdateDomain(recordType, ipAddr string, domain *ddnscore.Domain) {\n\n\tvar record PorkbunDomainQueryResponse\n\t// 获取当前域名信息\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/retrieveByNameType/%s/%s/%s\", domain.DomainName, recordType, domain.SubDomain),\n\t\t&PorkbunApiKey{\n\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t},\n\t\t&record,\n\t)\n\n\tif err != nil {\n\t\treturn\n\t}\n\tif record.Status == \"SUCCESS\" {\n\t\tif len(record.Records) > 0 {\n\t\t\t// 存在，更新\n\t\t\tpb.modify(&record, domain, recordType, ipAddr)\n\t\t} else {\n\t\t\t// 不存在，创建\n\t\t\tpb.create(domain, recordType, ipAddr)\n\t\t}\n\t} else {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, \"查询现有域名记录失败\")\n\t}\n}\n\n// 创建\nfunc (pb *Porkbun) create(domain *ddnscore.Domain, recordType string, ipAddr string) {\n\tvar response PorkbunResponse\n\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/create/%s\", domain.DomainName),\n\t\t&PorkbunDomainCreateOrUpdateVO{\n\t\t\tPorkbunApiKey: &PorkbunApiKey{\n\t\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t\t},\n\t\t\tPorkbunDomainRecord: &PorkbunDomainRecord{\n\t\t\t\tName:    domain.SubDomain,\n\t\t\t\tType:    recordType,\n\t\t\t\tContent: ipAddr,\n\t\t\t\tTtl:     pb.TTL,\n\t\t\t},\n\t\t},\n\t\t&response,\n\t)\n\n\tif err == nil && response.Status == \"SUCCESS\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"新增域名失败:%v\\n\", response)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// 修改\nfunc (pb *Porkbun) modify(record *PorkbunDomainQueryResponse, domain *ddnscore.Domain, recordType string, ipAddr string) {\n\n\t// 相同不修改\n\tif len(record.Records) > 0 && record.Records[0].Content == ipAddr {\n\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t} else {\n\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t}\n\t\treturn\n\t}\n\n\tvar response PorkbunResponse\n\n\terr := pb.request(\n\t\tporkbunEndpoint+fmt.Sprintf(\"/editByNameType/%s/%s/%s\", domain.DomainName, recordType, domain.SubDomain),\n\t\t&PorkbunDomainCreateOrUpdateVO{\n\t\t\tPorkbunApiKey: &PorkbunApiKey{\n\t\t\t\tAccessKey: pb.task.DNS.ID,\n\t\t\t\tSecretKey: pb.task.DNS.Secret,\n\t\t\t},\n\t\t\tPorkbunDomainRecord: &PorkbunDomainRecord{\n\t\t\t\tContent: ipAddr,\n\t\t\t\tTtl:     pb.TTL,\n\t\t\t},\n\t\t},\n\t\t&response,\n\t)\n\n\tif err == nil && response.Status == \"SUCCESS\" {\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t} else {\n\t\terrMsg := fmt.Sprintf(\"更新域名解析失败:%v\\n\", response)\n\t\tif err != nil {\n\t\t\terrMsg += err.Error()\n\t\t}\n\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedFailed, errMsg)\n\t}\n}\n\n// request 统一请求接口\nfunc (pb *Porkbun) request(url string, data interface{}, result interface{}) (err error) {\n\tjsonStr := make([]byte, 0)\n\tif data != nil {\n\t\tjsonStr, _ = json.Marshal(data)\n\t}\n\treq, err := http.NewRequest(\n\t\t\"POST\",\n\t\turl,\n\t\tbytes.NewBuffer(jsonStr),\n\t)\n\tif err != nil {\n\t\tlog.Println(\"http.NewRequest失败. Error: \", err)\n\t\treturn\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\tclient, e := pb.CreateHTTPClient()\n\tif e != nil {\n\t\terr = e\n\t\treturn\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn httputils.GetAndParseJSONResponseFromHttpResponse(resp, result)\n}\n"
  },
  {
    "path": "module/ddns/providers/provider.go",
    "content": "package providers\n\nimport \"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\n// Provider interface\ntype Provider interface {\n\tInit(task *ddnscore.DDNSTaskInfo)\n\t// 添加或更新IPv4/IPv6记录\n\tAddUpdateDomainRecords() string\n}\n"
  },
  {
    "path": "module/ddns/providers/providercommon.go",
    "content": "package providers\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/module/ddns/ddnsgo\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/dnsutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n)\n\ntype ProviderCommon struct {\n\tcreateUpdateDomainFunc func(recordType, ipaddr string, domain *ddnscore.Domain)\n\ttask                   *ddnscore.DDNSTaskInfo\n\ttaskKey                string\n}\n\nfunc (d *ProviderCommon) SetCreateUpdateDomainFunc(f func(recordType, ipaddr string, domain *ddnscore.Domain)) {\n\td.createUpdateDomainFunc = f\n}\n\nfunc (d *ProviderCommon) Init(task *ddnscore.DDNSTaskInfo) {\n\td.task = task\n\td.taskKey = task.TaskKey\n}\n\n// 添加或更新IPv4/IPv6记录\nfunc (d *ProviderCommon) AddUpdateDomainRecords() string {\n\tif d.task.TaskType == \"IPv6\" {\n\n\t\treturn d.addUpdateDomainRecords(\"AAAA\")\n\t}\n\treturn d.addUpdateDomainRecords(\"A\")\n}\n\nfunc (d *ProviderCommon) addUpdateDomainRecords(recordType string) string {\n\tipAddr, change := d.task.CheckIPChange()\n\tdefer ddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\n\td.task.TaskState.SetIPAddr(ipAddr)\n\t//及时刷新IP地址显示\n\tddnscore.DDNSTaskInfoMapUpdateIPInfo(d.task)\n\n\tif ipAddr == \"\" {\n\t\td.task.TaskState.SetDomainUpdateStatus(ddnscore.UpdatePause, \"获取公网IP失败\")\n\n\t\treturn ipAddr\n\t}\n\n\tcheckDoamins := d.task.TaskState.Domains\n\n\tif time.Since(d.task.TaskState.LastSyncTime) > time.Second*time.Duration(d.task.DNS.ForceInterval-1) {\n\t\t//log.Printf(\"DDNS任务[%s]强制更新\", d.task.TaskName)\n\t\tchange = true\n\t\tgoto sync\n\t}\n\n\t//设置原先状态成功的为继续成功\n\t//不成功的就更新\n\tif !change { //公网IP没有改变\n\t\tcheckDoamins = []ddnscore.Domain{}\n\t\tfor i := range d.task.TaskState.Domains { //如果原先状态成功或不改变就刷新时间\n\t\t\tif d.task.TaskState.Domains[i].UpdateStatus == ddnscore.UpdatedNothing ||\n\t\t\t\td.task.TaskState.Domains[i].UpdateStatus == ddnscore.UpdatedSuccess {\n\t\t\t\td.task.TaskState.Domains[i].SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcheckDoamins = append(checkDoamins, d.task.TaskState.Domains[i])\n\t\t}\n\n\t\tif len(checkDoamins) == 0 {\n\t\t\treturn ipAddr\n\t\t}\n\t}\n\nsync:\n\tif change {\n\t\tsyncTime := time.Now()\n\t\tdefer func() {\n\t\t\t//记录最近一次同步操作时间\n\t\t\td.task.TaskState.LastSyncTime = syncTime\n\t\t}()\n\t}\n\n\tfor i := range checkDoamins {\n\n\t\tif d.createUpdateDomainFunc == nil {\n\t\t\tlog.Printf(\"ddns createUpdateDomainFunc undefine\")\n\t\t\tbreak\n\t\t}\n\n\t\tdomain := getDomainItem(checkDoamins[i].String(), &d.task.TaskState.Domains)\n\t\tif domain == nil {\n\t\t\tlog.Printf(\"getDomainItem nil\")\n\t\t\tcontinue\n\t\t}\n\n\t\tif d.task.DNS.ResolverDoaminCheck {\n\t\t\t//<-time.After(time.Second)\n\n\t\t\tdomainResolverIPaddr, _ := dnsutils.ResolveDomainAtServerList(recordType, domain.String(), d.task.DNS.DNSServerList)\n\t\t\t//log.Printf(\"domain:%s domainResolverIPaddr:%s ,ipaddr:%s\", domain.String(), domainResolverIPaddr, ipAddr)\n\n\t\t\tif domainResolverIPaddr == ipAddr {\n\t\t\t\tif domain.UpdateStatus == ddnscore.UpdatedFailed {\n\t\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedSuccess, \"\")\n\t\t\t\t} else {\n\t\t\t\t\tdomain.SetDomainUpdateStatus(ddnscore.UpdatedNothing, \"\")\n\t\t\t\t}\n\t\t\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t//*********\n\t\t// params := domain.GetCustomParams()\n\t\t// if params.Has(\"recordType\") {\n\t\t// \trecordType = params.Get(\"recordType\")\n\t\t// }\n\n\t\t// if params.Has(\"recordContent\") {\n\t\t// \t//ipAddr = params.Get(\"recordContent\")\n\t\t// \trecordContent := params.Get(\"recordContent\")\n\t\t// \trecordContent = strings.Replace(recordContent, \"#{ip}\", ipAddr, -1)\n\t\t// \tipAddr = recordContent\n\n\t\t// \tlog.Printf(\"recordType[%s]recordContent[%s]\", recordType, recordContent)\n\t\t// }\n\t\t//*********\n\n\t\td.createUpdateDomainFunc(recordType, ipAddr, domain)\n\t\tddnscore.DDNSTaskInfoMapUpdateDomainInfo(d.task)\n\t}\n\n\treturn ipAddr\n}\n\nfunc getDomainItem(fullDomain string, domains *[]ddnscore.Domain) *ddnscore.Domain {\n\tif domains == nil {\n\t\treturn nil\n\t}\n\tfor i, domain := range *domains {\n\t\tif domain.String() == fullDomain {\n\t\t\treturn &(*domains)[i]\n\t\t}\n\t}\n\treturn nil\n}\n\n//--------------------------------------------------------------------------------------------------\n\nfunc (d *ProviderCommon) CreateHTTPClient() (*http.Client, error) {\n\tddnsGlobalConf := ddnsgo.GetDDNSConfigure()\n\n\treturn httputils.CreateHttpClient(\n\t\td.task.DNS.GetCallAPINetwork(),\n\t\t\"\",\n\t\t!ddnsGlobalConf.HttpClientSecureVerify,\n\t\td.task.DNS.HttpClientProxyType,\n\t\td.task.DNS.HttpClientProxyAddr,\n\t\td.task.DNS.HttpClientProxyUser,\n\t\td.task.DNS.HttpClientProxyPassword,\n\t\ttime.Duration(d.task.HttpClientTimeout)*time.Second)\n}\n"
  },
  {
    "path": "module/ddns/worker.go",
    "content": "package ddns\n\nimport (\n\t\"log\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\n\tddnsconf \"github.com/gdy666/lucky/module/ddns/conf\"\n\t\"github.com/gdy666/lucky/module/ddns/ddnscore.go\"\n\t\"github.com/gdy666/lucky/module/ddns/ddnsgo\"\n\t\"github.com/gdy666/lucky/module/ddns/providers\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/service\"\n)\n\nvar DDNSService *service.Service\n\nfunc init() {\n\tDDNSService, _ = service.NewService(\"ddns\")\n\tDDNSService.SetTimerFunc(syncAllDomainsOnce)\n\tDDNSService.SetEventFunc(syncTaskDomainsOnce)\n}\n\n// Run 定时运行\nfunc Run(firstDelay time.Duration, delay time.Duration) {\n\n\tlog.Printf(\"DDNS 第一次运行将等待 %d 秒后运行 (等待网络)\", int(firstDelay.Seconds()))\n\t<-time.After(firstDelay)\n\tDDNSService.Start()\n}\n\nvar wg sync.WaitGroup\n\n// RunOnce RunOnce\nfunc syncAllDomainsOnce(params ...any) {\n\tddnsTaskList := ddnscore.GetDDNSTaskInfoList()\n\tddnsconf.CleanIPUrlAddrMap()\n\tddnsConf := ddnsgo.GetDDNSConfigure()\n\n\t//log.Printf(\"批量执行DDNS任务\")\n\ttaskBeginTime := time.Now()\n\n\t//fmt.Printf(\"ddnsTaskList:%v\\n\", ddnsTaskList)\n\n\tfor index := range ddnsTaskList {\n\n\t\ttask := ddnsTaskList[index]\n\t\tif !task.Enable {\n\t\t\tcontinue\n\t\t}\n\n\t\tif time.Since(task.TaskState.LastWorkTime) < time.Second*15 {\n\t\t\t//log.Printf(\"[%s]太接近,忽略\", task.TaskName)\n\t\t\tcontinue\n\t\t}\n\n\t\t//log.Printf(\"task[%s] enable\\n\", task.TaskName)\n\n\t\twg.Add(1)\n\n\t\tgo func() {\n\t\t\tdefer func() {\n\t\t\t\twg.Done()\n\t\t\t\trecoverErr := recover()\n\t\t\t\tif recoverErr == nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlog.Printf(\"syncDDNSTask[%s]panic:\\n%v\", task.TaskName, recoverErr)\n\t\t\t\tlog.Printf(\"%s\", debug.Stack())\n\t\t\t}()\n\t\t\tsyncDDNSTask(task)\n\t\t}()\n\n\t\t<-time.After(time.Millisecond * 600)\n\t}\n\twg.Wait()\n\n\ttaskEndTime := time.Now()\n\n\tusedTime := taskEndTime.Sub(taskBeginTime)\n\n\tnextTaskTimer := time.Second*time.Duration(ddnsConf.Intervals) - usedTime\n\n\t//debug.FreeOSMemory()\n\t//log.Printf(\"syncAllDomainsOnce 任务完成\")\n\tDDNSService.Timer = time.NewTimer(nextTaskTimer)\n}\n\nfunc syncTaskDomainsOnce(params ...any) {\n\tserverMsg := (params[1]).(service.ServiceMsg)\n\ttaskKey := serverMsg.Params[0].(string)\n\tswitch serverMsg.Type {\n\tcase \"syncDDNSTask\":\n\t\t{\n\t\t\t//log.Printf(\"syncTaskDomainsOnce 单DDNS任务更新：%s\", taskKey)\n\t\t\tddnsconf.CleanIPUrlAddrMap()\n\t\t\ttask := ddnscore.GetDDNSTaskInfoByKey(taskKey)\n\t\t\tsyncDDNSTask(task)\n\t\t}\n\tdefault:\n\t\treturn\n\t}\n\n}\n\nfunc syncDDNSTask(task *ddnscore.DDNSTaskInfo) {\n\tif task == nil {\n\t\treturn\n\t}\n\tvar dnsSelected providers.Provider\n\tswitch task.DNS.Name {\n\tcase \"alidns\":\n\t\tdnsSelected = &providers.Alidns{}\n\tcase \"dnspod\":\n\t\tdnsSelected = &providers.Dnspod{}\n\tcase \"cloudflare\":\n\t\tdnsSelected = &providers.Cloudflare{}\n\tcase \"huaweicloud\":\n\t\tdnsSelected = &providers.Huaweicloud{}\n\tcase \"callback\":\n\t\tdnsSelected = &providers.Callback{}\n\tcase \"baiducloud\":\n\t\tdnsSelected = &providers.BaiduCloud{}\n\tcase \"porkbun\":\n\t\tdnsSelected = &providers.Porkbun{}\n\tdefault:\n\t\treturn\n\t}\n\n\tdnsSelected.Init(task)\n\n\tdnsSelected.AddUpdateDomainRecords()\n\ttask.ExecWebhook(&task.TaskState)\n\t// log.Printf(\"假装耗时10秒\\n\")\n\t// <-time.After(time.Second * 10)\n\t// log.Printf(\"耗时完成\\n\")\n\tddnscore.DDNSTaskInfoMapUpdate(task)\n\n\t//task.TaskState.LastWorkTime = time.Now() //记录最近一次检测时间,防止批量检测和单个检测时间间隔过于接近\n\n\t//\n}\n"
  },
  {
    "path": "module/portforward/conf/portforward.go",
    "content": "package portforwardconf\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/module/portforward/socketproxy\"\n\t\"github.com/gdy666/lucky/module/weblog\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype PortForwardsConfigure struct {\n\tPortForwardsLimit                  int64 `json:\"PortForwardsLimit\"`                  //全局端口转发数量限制\n\tTCPPortforwardMaxConnections       int64 `json:\"TCPPortforwardMaxConnections\"`       //端口转发全局TCP并发链接数限制\n\tUDPReadTargetDataMaxgoroutineCount int64 `json:\"UDPReadTargetDataMaxgoroutineCount\"` //端口转发全局UDP读取目标地址数据协程数限制\n}\n\ntype PortForwardsRule struct {\n\tName              string                       `json:\"Name\"`\n\tKey               string                       `json:\"Key\"`\n\tEnable            bool                         `json:\"Enable\"`\n\tForwardTypes      []string                     `json:\"ForwardTypes\"`\n\tListenAddress     string                       `json:\"ListenAddress\"`\n\tListenPorts       string                       `json:\"ListenPorts\"`\n\tTargetAddressList []string                     `json:\"TargetAddressList\"`\n\tTargetPorts       string                       `json:\"TargetPorts\"`\n\tOptions           socketproxy.RelayRuleOptions `json:\"Options\"`\n\tReverseProxyList  *[]socketproxy.Proxy         `json:\"-\"`\n\n\tlogsBuffer                 *logsbuffer.LogsBuffer\n\tlogrus                     *logrus.Logger\n\tLogLevel                   int  `json:\"LogLevel\"`           //日志输出级别\n\tLogOutputToConsole         bool `json:\"LogOutputToConsole\"` //日志输出到终端\n\tAccessLogMaxNum            int  `json:\"AccessLogMaxNum\"`\n\tWebListShowLastLogMaxCount int  `json:\"WebListShowLastLogMaxCount\"` //前端列表显示最新日志最大条数\n}\n\nfunc (r *PortForwardsRule) ProxyCount() int {\n\tif r.ReverseProxyList == nil {\n\t\treturn 0\n\t}\n\treturn len(*r.ReverseProxyList)\n}\n\nfunc (r *PortForwardsRule) StartAllProxys() {\n\tif r.ReverseProxyList == nil {\n\t\treturn\n\t}\n\tfor i := range *r.ReverseProxyList {\n\n\t\t(*r.ReverseProxyList)[i].StartProxy()\n\t}\n}\n\nfunc (r *PortForwardsRule) GetLastLogs(maxCount int) []any {\n\treturn r.GetLogsBuffer().GetLastLogs(weblog.WebLogConvert, maxCount)\n}\n\nfunc (r *PortForwardsRule) Fire(entry *logrus.Entry) error {\n\tif !r.LogOutputToConsole {\n\t\treturn nil\n\t}\n\ts, _ := entry.String()\n\tlog.Print(s)\n\treturn nil\n}\n\nfunc (r *PortForwardsRule) Levels() []logrus.Level {\n\treturn logrus.AllLevels\n}\n\nfunc (r *PortForwardsRule) GetLogrus() *logrus.Logger {\n\tif r.logrus == nil {\n\t\tr.logrus = logrus.New()\n\t\tr.logrus.SetLevel(logrus.Level(r.LogLevel))\n\t\tr.logrus.SetOutput(r.GetLogsBuffer())\n\t\tr.logrus.SetFormatter(&logrus.JSONFormatter{\n\t\t\tTimestampFormat:   \"2006-01-02 15:04:05\",\n\t\t\tDisableTimestamp:  true,\n\t\t\tDisableHTMLEscape: true,\n\t\t\tDataKey:           \"ExtInfo\",\n\t\t})\n\t\tr.logrus.AddHook(r)\n\t}\n\treturn r.logrus\n}\n\nfunc (r *PortForwardsRule) GetLogsBuffer() *logsbuffer.LogsBuffer {\n\tif r.logsBuffer == nil {\n\t\tr.logsBuffer = logsbuffer.CreateLogbuffer(\"portforward:\"+r.Key, r.AccessLogMaxNum)\n\t}\n\treturn r.logsBuffer\n}\n\nfunc (r *PortForwardsRule) StopAllProxys() {\n\tif r.ReverseProxyList == nil {\n\t\treturn\n\t}\n\tfor i := range *r.ReverseProxyList {\n\t\t(*r.ReverseProxyList)[i].StopProxy()\n\t}\n}\n\nfunc (r *PortForwardsRule) InitProxyList() error {\n\tlistenPorts, err := PortsStrToIList(r.ListenPorts)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttargetPorts, err := PortsStrToIList(r.TargetPorts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif len(listenPorts) != len(targetPorts) {\n\t\treturn fmt.Errorf(\"端口个数不一致\")\n\t}\n\tvar proxyList []socketproxy.Proxy\n\tfor i := range r.ForwardTypes {\n\t\tfor j := range listenPorts {\n\t\t\tp, err := socketproxy.CreateProxy(r.GetLogrus(), r.ForwardTypes[i],\n\t\t\t\tr.ListenAddress,\n\t\t\t\tr.TargetAddressList,\n\t\t\t\tlistenPorts[j],\n\t\t\t\ttargetPorts[j],\n\t\t\t\t&r.Options)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tproxyList = append(proxyList, p)\n\t\t}\n\t}\n\n\tr.ReverseProxyList = &proxyList\n\treturn nil\n}\n\n// portsStrToIList\nfunc PortsStrToIList(portsStr string) (ports []int, err error) {\n\tif portsStr == \"\" {\n\t\treturn\n\t}\n\tif strings.Contains(portsStr, \",\") {\n\t\ttmpStrList := strings.Split(portsStr, \",\")\n\t\tfor i := range tmpStrList {\n\t\t\ttps, e := PortsStrToIList(tmpStrList[i])\n\t\t\tif e != nil {\n\t\t\t\terr = fmt.Errorf(\"端口字符串处理出错:%s\", e.Error())\n\t\t\t\treturn\n\t\t\t}\n\t\t\tports = append(ports, tps...)\n\t\t}\n\n\t\treturn\n\t}\n\n\tportsStrList := strings.Split(portsStr, \"-\")\n\tif len(portsStrList) > 2 {\n\t\terr = fmt.Errorf(\"端口%s格式有误\", portsStr)\n\t\treturn\n\t}\n\n\tif len(portsStrList) == 1 { //single listen port\n\t\tlistenPort, e := portStrToi(portsStrList[0])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", e.Error())\n\t\t\treturn\n\t\t}\n\t\tports = append(ports, listenPort)\n\t}\n\n\tif len(portsStrList) == 2 {\n\t\tminListenPort, e := portStrToi(portsStrList[0])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", portsStrList[0])\n\t\t\treturn\n\t\t}\n\t\tmaxListenPort, e := portStrToi(portsStrList[1])\n\t\tif e != nil {\n\t\t\terr = fmt.Errorf(\"端口格式有误!%s\", portsStrList[1])\n\t\t\treturn\n\t\t}\n\n\t\tif maxListenPort <= minListenPort {\n\t\t\terr = fmt.Errorf(\"前一个端口[%d]要小于后一个端口[%d]\", minListenPort, maxListenPort)\n\t\t\treturn\n\t\t}\n\t\ti := minListenPort\n\t\tfor {\n\t\t\tif i > maxListenPort {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tports = append(ports, i)\n\t\t\ti++\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc portStrToi(portStr string) (int, error) {\n\tport, err := strconv.Atoi(portStr)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"端口格式有误:%s\", err.Error())\n\t}\n\tif port < 1 || port > 65535 {\n\t\treturn 0, fmt.Errorf(\"端口[%d]超出范围\", port)\n\t}\n\treturn port, nil\n}\n\nfunc PortsCheck(ports1Str, ports2Str string) (bool, error) {\n\tports1, err := PortsStrToIList(ports1Str)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tports2, err := PortsStrToIList(ports2Str)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif len(ports1) != len(ports2) {\n\t\treturn false, fmt.Errorf(\"端口个数不一致\")\n\t}\n\treturn true, nil\n}\n"
  },
  {
    "path": "module/portforward/portforward.go",
    "content": "package portforward\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/config\"\n\tportforwardconf \"github.com/gdy666/lucky/module/portforward/conf\"\n\t\"github.com/gdy666/lucky/module/portforward/socketproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n)\n\nfunc Init() {\n\tPortForwardsRuleListInit()\n}\n\n// TidyReverseProxyCache 整理端口转发日志缓存\nfunc TidyPortforwardLogsCache() {\n\truleList := GetPortForwardsRuleList()\n\tvar keyListBuffer strings.Builder\n\tfor _, rule := range ruleList {\n\t\tkeyListBuffer.WriteString(rule.Key)\n\t\tkeyListBuffer.WriteString(\",\")\n\t}\n\n\tkeyListStr := keyListBuffer.String()\n\tlogsbuffer.LogsBufferStoreMu.Lock()\n\tdefer logsbuffer.LogsBufferStoreMu.Unlock()\n\n\tvar needDeleteKeys []string\n\n\tfor k := range logsbuffer.LogsBufferStore {\n\t\tif !strings.HasPrefix(k, \"portforward:\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(k) <= 13 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !strings.Contains(keyListStr, k[12:]) {\n\t\t\tneedDeleteKeys = append(needDeleteKeys, k)\n\t\t}\n\t}\n\n\tfor i := range needDeleteKeys {\n\t\tdelete(logsbuffer.LogsBufferStore, needDeleteKeys[i])\n\t}\n\n}\n\nfunc PortForwardsRuleListInit() {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar err error\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\terr = config.Configure.PortForwardsRuleList[i].InitProxyList()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"InitProxyList error:%s\\n\", err.Error())\n\t\t}\n\t\tif config.Configure.PortForwardsRuleList[i].Enable {\n\t\t\tconfig.Configure.PortForwardsRuleList[i].StartAllProxys()\n\t\t}\n\t}\n}\n\nfunc GetPortForwardsRuleList() []portforwardconf.PortForwardsRule {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\tvar resList []portforwardconf.PortForwardsRule\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tr := config.Configure.PortForwardsRuleList[i]\n\t\tresList = append(resList, r)\n\t}\n\treturn resList\n}\n\nfunc GetPortForwardsGlobalProxyCount() int {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tcount := 0\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tcount += config.Configure.PortForwardsRuleList[i].ProxyCount()\n\t}\n\treturn count\n}\n\nfunc GetPortForwardsGlobalProxyCountExcept(key string) int {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tcount := 0\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif key == config.Configure.PortForwardsRuleList[i].Key {\n\t\t\tcontinue\n\t\t}\n\t\tcount += config.Configure.PortForwardsRuleList[i].ProxyCount()\n\t}\n\treturn count\n}\n\nfunc GetPortForwardsRuleByKey(key string) *portforwardconf.PortForwardsRule {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn nil\n\t}\n\tres := config.Configure.PortForwardsRuleList[index]\n\treturn &res\n}\n\nfunc StopAllSocketProxysByRuleKey(key string) error {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到key:%s对应的规则\", key)\n\t}\n\tconfig.Configure.PortForwardsRuleList[index].StopAllProxys()\n\treturn nil\n}\n\nfunc StartAllSocketProxysByRuleKey(key string) error {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tindex := -1\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到key:%s对应的规则\", key)\n\t}\n\tconfig.Configure.PortForwardsRuleList[index].StartAllProxys()\n\treturn nil\n}\n\nfunc PortForwardsRuleListAdd(r *portforwardconf.PortForwardsRule) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tr.Enable = true\n\tconfig.Configure.PortForwardsRuleList = append(config.Configure.PortForwardsRuleList, *r)\n\treturn config.Save()\n}\n\nfunc PortForwardsRuleListDelete(key string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tindex := -1\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的端口转发规则\")\n\t}\n\n\tconfig.Configure.PortForwardsRuleList[index].StopAllProxys()\n\n\tconfig.Configure.PortForwardsRuleList = DeletePortForwardsRuleListSlice(config.Configure.PortForwardsRuleList, index)\n\treturn config.Save()\n}\n\nfunc EnablePortForwardsRuleByKey(key string, enable bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range config.Configure.DDNSTaskList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"开关端口转发规则失败,key查找失败\")\n\t}\n\n\tif enable {\n\t\tconfig.Configure.PortForwardsRuleList[index].StartAllProxys()\n\t} else {\n\t\tconfig.Configure.PortForwardsRuleList[index].StopAllProxys()\n\t}\n\n\tconfig.Configure.PortForwardsRuleList[index].Enable = enable\n\treturn config.Save()\n}\n\nfunc UpdatePortForwardsRuleToPortForwardsRuleList(key string, r *portforwardconf.PortForwardsRule) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range config.Configure.PortForwardsRuleList {\n\t\tif config.Configure.PortForwardsRuleList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的端口转发规则\")\n\t}\n\n\tconfig.Configure.PortForwardsRuleList[index] = *r\n\treturn config.Save()\n}\n\nfunc DeletePortForwardsRuleListSlice(a []portforwardconf.PortForwardsRule, deleteIndex int) []portforwardconf.PortForwardsRule {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc GetPortForwardsConfigure() portforwardconf.PortForwardsConfigure {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tconf := config.Configure.PortForwardsConfigure\n\treturn conf\n}\n\nfunc SetPortForwardsConfigure(conf *portforwardconf.PortForwardsConfigure) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tif conf.PortForwardsLimit < 0 {\n\t\tconf.PortForwardsLimit = 0\n\t} else if conf.PortForwardsLimit > 1024 {\n\t\tconf.PortForwardsLimit = 1024\n\t}\n\n\tif conf.TCPPortforwardMaxConnections < 0 {\n\t\tconf.TCPPortforwardMaxConnections = 0\n\t} else if conf.TCPPortforwardMaxConnections > 4096 {\n\t\tconf.TCPPortforwardMaxConnections = 4096\n\t}\n\n\tif conf.UDPReadTargetDataMaxgoroutineCount < 0 {\n\t\tconf.UDPReadTargetDataMaxgoroutineCount = 0\n\t} else if conf.UDPReadTargetDataMaxgoroutineCount > 4096 {\n\t\tconf.UDPReadTargetDataMaxgoroutineCount = 4096\n\t}\n\n\tconfig.Configure.PortForwardsConfigure = *conf\n\n\tsocketproxy.SetGlobalMaxPortForwardsCountLimit(conf.PortForwardsLimit)\n\tsocketproxy.SetGlobalTCPPortforwardMaxConnections(conf.TCPPortforwardMaxConnections)\n\tsocketproxy.SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(conf.UDPReadTargetDataMaxgoroutineCount)\n\treturn config.Save()\n}\n"
  },
  {
    "path": "module/portforward/socketproxy/baseproxyconf.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"sync/atomic\"\n)\n\ntype BaseProxyConf struct {\n\tTrafficIn  int64\n\tTrafficOut int64\n\tkey        string\n\tProxyType  string // tcp tcp4 tcp6 udp udp4 udp6\n\n}\n\nfunc (p *BaseProxyConf) GetProxyType() string {\n\treturn p.ProxyType\n}\n\nfunc (p *BaseProxyConf) GetStatus() string {\n\treturn p.ProxyType\n}\n\nfunc (p *BaseProxyConf) ReceiveDataCallback(nw int64) {\n\tatomic.AddInt64(&p.TrafficIn, nw)\n}\n\nfunc (p *BaseProxyConf) SendDataCallback(nw int64) {\n\tatomic.AddInt64(&p.TrafficOut, nw)\n}\n\nfunc (p *BaseProxyConf) GetTrafficIn() int64 {\n\treturn atomic.LoadInt64(&p.TrafficIn)\n}\n\nfunc (p *BaseProxyConf) GetTrafficOut() int64 {\n\treturn atomic.LoadInt64(&p.TrafficOut)\n}\n"
  },
  {
    "path": "module/portforward/socketproxy/proxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/pool\"\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype Proxy interface {\n\tStartProxy()\n\tStopProxy()\n\n\tReceiveDataCallback(int64)\n\tSendDataCallback(int64)\n\tGetProxyType() string\n\tGetStatus() string\n\tGetListenIP() string\n\tGetListenPort() int\n\tGetKey() string\n\tGetCurrentConnections() int64\n\n\tString() string\n\tGetTrafficIn() int64\n\tGetTrafficOut() int64\n\tSafeCheck(ip string) bool\n}\n\ntype RelayRuleOptions struct {\n\tUDPPackageSize                                int    `json:\"UDPPackageSize,omitempty\"`\n\tSingleProxyMaxTCPConnections                  int64  `json:\"SingleProxyMaxTCPConnections,omitempty\"`\n\tSingleProxyMaxUDPReadTargetDatagoroutineCount int64  `json:\"SingleProxyMaxUDPReadTargetDatagoroutineCount\"`\n\tUDPProxyPerformanceMode                       bool   `json:\"UDPProxyPerformanceMode,omitempty\"`\n\tUDPShortMode                                  bool   `json:\"UDPShortMode,omitempty\"`\n\tSafeMode                                      string `json:\"SafeMode,omitempty\"`\n}\n\n// Join two io.ReadWriteCloser and do some operations.\nfunc (p *BaseProxyConf) relayData(targetServer io.ReadWriteCloser, client io.ReadWriteCloser) {\n\tvar wait sync.WaitGroup\n\tpipe := func(to io.ReadWriteCloser, from io.ReadWriteCloser, writedataCallback func(int64)) {\n\t\tdefer to.Close()\n\t\tdefer from.Close()\n\t\tdefer wait.Done()\n\n\t\tnw, _ := p.copyBuffer(to, from, nil, nil)\n\t\tif writedataCallback != nil {\n\t\t\twritedataCallback(nw)\n\t\t}\n\n\t\t// if p.TrafficMonitor {\n\t\t// \tbuf := pool.GetBuf(8 * 1024 * 1024)\n\t\t// \tp.CopyBuffer(to, from, buf, writedataCallback)\n\t\t// \tpool.PutBuf(buf)\n\t\t// } else {\n\t\t// \tnw, _ := p.copyBuffer(to, from, nil, nil)\n\t\t// \tif writedataCallback != nil {\n\t\t// \t\twritedataCallback(nw)\n\t\t// \t}\n\t\t// }\n\n\t}\n\n\twait.Add(2)\n\tgo pipe(targetServer, client, p.ReceiveDataCallback)\n\tgo pipe(client, targetServer, p.SendDataCallback)\n\twait.Wait()\n}\n\nfunc (p *BaseProxyConf) CopyBuffer(dst io.Writer, src io.Reader, buf []byte, writedataCallback func(int64)) (written int64, err error) {\n\tif buf != nil && len(buf) == 0 {\n\t\tpanic(\"empty buffer in CopyBuffer\")\n\t}\n\treturn p.copyBuffer(dst, src, buf, writedataCallback)\n}\n\n// copyBuffer is the actual implementation of Copy and CopyBuffer.\n// if buf is nil, one is allocated.\nfunc (p *BaseProxyConf) copyBuffer(dst io.Writer, src io.Reader, buf []byte, writedataCallback func(int64)) (written int64, err error) {\n\tif buf == nil {\n\t\tif wt, ok := src.(io.WriterTo); ok {\n\t\t\treturn wt.WriteTo(dst)\n\t\t}\n\n\t\tif rt, ok := dst.(io.ReaderFrom); ok {\n\t\t\treturn rt.ReadFrom(src)\n\t\t}\n\n\t\tsize := 32 * 1024\n\t\tif l, ok := src.(*io.LimitedReader); ok && int64(size) > l.N {\n\t\t\tif l.N < 1 {\n\t\t\t\tsize = 1\n\t\t\t} else {\n\t\t\t\tsize = int(l.N)\n\t\t\t}\n\t\t}\n\n\t\tbuf = pool.GetBuf(8 * size)\n\t\tdefer pool.PutBuf(buf)\n\t}\n\n\tfor {\n\t\tnr, er := src.Read(buf)\n\t\tif nr > 0 {\n\t\t\tnw, ew := dst.Write(buf[0:nr])\n\t\t\tif nw < 0 || nr < nw {\n\t\t\t\tnw = 0\n\t\t\t\tif ew == nil {\n\t\t\t\t\tew = errors.New(\"invalid write result\")\n\t\t\t\t}\n\t\t\t}\n\t\t\twritten += int64(nw)\n\n\t\t\tif writedataCallback != nil {\n\t\t\t\twritedataCallback(int64(nw))\n\t\t\t}\n\n\t\t\tif ew != nil {\n\t\t\t\terr = ew\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif nr != nw {\n\t\t\t\terr = io.ErrShortWrite\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif er != nil {\n\t\t\tif er != io.EOF {\n\t\t\t\terr = er\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn written, err\n}\n\nfunc formatFileSize(fileSize int64) (size string) {\n\tswitch {\n\tcase fileSize < 1024:\n\t\treturn fmt.Sprintf(\"%.2fB\", float64(fileSize)/float64(1))\n\tcase fileSize < (1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fKB\", float64(fileSize)/float64(1024))\n\tcase fileSize < (1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fMB\", float64(fileSize)/float64(1024*1024))\n\tcase fileSize < (1024 * 1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fGB\", float64(fileSize)/float64(1024*1024*1024))\n\tcase fileSize < (1024 * 1024 * 1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fTB\", float64(fileSize)/float64(1024*1024*1024*1024))\n\tdefault:\n\t\treturn fmt.Sprintf(\"%.2fEB\", float64(fileSize)/float64(1024*1024*1024*1024*1024))\n\t}\n\n}\n\nfunc CreateProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) (p Proxy, err error) {\n\t//key := GetProxyKey(proxyType, listenIP, listenPort)\n\tswitch {\n\tcase strings.HasPrefix(proxyType, \"tcp\"):\n\t\t{\n\t\t\treturn CreateTCPProxy(log, proxyType, listenIP, targetAddressList, listenPort, targetPort, options), nil\n\t\t}\n\tcase strings.HasPrefix(proxyType, \"udp\"):\n\t\t{\n\t\t\treturn CreateUDPProxy(log, proxyType, listenIP, targetAddressList, listenPort, targetPort, options), nil\n\t\t}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"未支持的类型:%s\", proxyType)\n\t}\n\n}\n\nfunc GetProxyKey(proxyType, listenIP string, listenPort int) string {\n\treturn fmt.Sprintf(\"%s@%s:%d\", proxyType, listenIP, listenPort)\n}\n"
  },
  {
    "path": "module/portforward/socketproxy/socketproxy.go",
    "content": "package socketproxy\n"
  },
  {
    "path": "module/portforward/socketproxy/tcpproxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype TCPProxy struct {\n\tTCPUDPProxyCommonConf\n\t//TcpSingleProxyMaxConns int64\n\t//\ttcpCurrentConns        int64\n\tlistenConn      net.Listener\n\tlistenConnMutex sync.Mutex\n\n\tconnMap      map[string]net.Conn\n\tconnMapMutex sync.Mutex\n}\n\nfunc CreateTCPProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) *TCPProxy {\n\tp := &TCPProxy{}\n\tp.ProxyType = proxyType\n\tp.listenIP = listenIP\n\tp.listenPort = listenPort\n\tp.targetAddressList = targetAddressList\n\tp.targetPort = targetPort\n\tp.log = log\n\n\tp.safeMode = options.SafeMode\n\n\tp.SetMaxConnections(options.SingleProxyMaxTCPConnections)\n\treturn p\n}\n\nfunc (p *TCPProxy) GetStatus() string {\n\treturn fmt.Sprintf(\"%s\\nactivity connections:[%d]\", p.String(), p.GetCurrentConnections())\n}\n\nfunc (p *TCPProxy) CheckConnectionsLimit() error {\n\n\tif GetGlobalTCPPortForwardConnections() >= GetGlobalTCPPortforwardMaxConnections() {\n\t\treturn fmt.Errorf(\"超出TCP最大总连接数[%d]限制\", GetGlobalTCPPortforwardMaxConnections())\n\t}\n\n\tif p.GetCurrentConnections() >= p.SingleProxyMaxConnections {\n\t\treturn fmt.Errorf(\"超出单端口TCP最大连接数[%d]限制\", p.SingleProxyMaxConnections)\n\t}\n\n\t//全局,单端口限制\n\treturn nil\n}\n\nfunc (p *TCPProxy) StartProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tif p.listenConn != nil {\n\t\t//log.Printf(\"proxy %s is started\", p.String())\n\t\tp.log.Warnf(\"proxy %s is started\", p.String())\n\t\treturn\n\t}\n\n\tif p.connMap == nil {\n\t\tp.connMap = make(map[string]net.Conn)\n\t}\n\tln, err := net.Listen(p.ProxyType, p.GetListentAddress())\n\n\tif err != nil {\n\t\tif strings.Contains(err.Error(), \"Only one usage of each socket address\") {\n\t\t\tp.log.Errorf(\"监听IP端口[%s]已被占用,proxy[%s]启动失败\", p.GetListentAddress(), p.String())\n\t\t} else {\n\t\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.String(), err)\n\t\t}\n\t\treturn\n\t}\n\n\tp.listenConn = ln\n\n\tp.log.Infof(\"[端口转发][开启][%s]\", p.String())\n\n\tgo func() {\n\t\tfor {\n\t\t\tnewConn, err := ln.Accept()\n\n\t\t\tif err != nil {\n\t\t\t\tif strings.Contains(err.Error(), \"use of closed network connection\") {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tp.log.Errorf(\" Cannot accept connection due to error %s\", err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\terr = p.CheckConnectionsLimit()\n\t\t\tif err != nil {\n\t\t\t\t//p.PrintConnectionsInfo()\n\t\t\t\tp.log.Warnf(\"[%s]超出最大连接数限制,不再接受新连接:%s\", p.GetKey(), err.Error())\n\t\t\t\tnewConn.Close()\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tnewConnAddr := newConn.RemoteAddr().String()\n\t\t\tif !p.SafeCheck(newConnAddr) {\n\t\t\t\tp.log.Warnf(\"[%s]新连接 [%s]安全检查未通过\", p.GetKey(), newConnAddr)\n\t\t\t\tnewConn.Close()\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tp.log.Infof(\"[%s]新连接[%s]安全检查通过\", p.GetKey(), newConnAddr)\n\n\t\t\tp.connMapMutex.Lock()\n\t\t\tp.connMap[newConn.RemoteAddr().String()] = newConn\n\t\t\tp.connMapMutex.Unlock()\n\n\t\t\tp.AddCurrentConnections(1)\n\t\t\tgo p.handle(newConn)\n\t\t}\n\t}()\n\n\t//\n\t//p.test()\n\n\t//go p.test()\n\t//go p.tcptest()\n\n}\n\nfunc (p *TCPProxy) StopProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tdefer func() {\n\t\tp.log.Infof(\"[端口转发][关闭][%s]\", p.String())\n\t}()\n\tif p.listenConn == nil {\n\t\treturn\n\t}\n\n\tp.listenConn.Close()\n\tp.listenConn = nil\n\n\tp.connMapMutex.Lock()\n\tfor _, conn := range p.connMap {\n\t\tconn.Close()\n\t}\n\tp.connMap = make(map[string]net.Conn)\n\tp.connMapMutex.Unlock()\n}\n\nfunc (p *TCPProxy) handle(conn net.Conn) {\n\t//dialer := net.Dialer{Timeout: 10 * time.Second}\n\t//targetConn, err := dialer.Dial(\"tcp\", p.TargetAddress)\n\ttargetConn, err := net.Dial(\"tcp\", p.GetTargetAddress())\n\n\tdefer func() {\n\t\tif targetConn != nil {\n\t\t\ttargetConn.Close()\n\t\t}\n\t\tdefer conn.Close()\n\t\tp.AddCurrentConnections(-1)\n\n\t\tp.connMapMutex.Lock()\n\t\tdelete(p.connMap, conn.RemoteAddr().String())\n\t\tp.log.Infof(\"[%s]%s 断开连接\", p.GetKey(), conn.RemoteAddr().String())\n\t\tp.connMapMutex.Unlock()\n\n\t}()\n\n\tif err != nil {\n\t\tlog.Printf(\"%s error:%s\", p.String(), err.Error())\n\t\treturn\n\t}\n\n\t//targetConn.SetDeadline(time.Now().Add(time.Second * 3))\n\n\t// targetTcpConn, ok := targetConn.(*net.TCPConn)\n\t// if ok {\n\t// \ttargetTcpConn.SetReadBuffer(p.BufferSize * 1024 * 256 * 1024)\n\t// \ttargetTcpConn.SetWriteBuffer(p.BufferSize * 1024 * 256 * 1024)\n\t// }\n\n\tp.relayData(targetConn, conn)\n\n}\n"
  },
  {
    "path": "module/portforward/socketproxy/tcpudpcommon.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst TCP_DEFAULT_STREAM_BUFFERSIZE = 128\nconst DEFAULT_GLOBAL_MAX_CONNECTIONS = int64(1024)\nconst DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount = int64(1024)\nconst TCPUDP_DEFAULT_SINGLE_PROXY_MAX_CONNECTIONS = int64(256)\n\nconst DEFAULT_MAX_PORTFORWARDS_LIMIT = int64(128)\n\nvar globalTCPPortforwardMaxConnectionsLimit = DEFAULT_GLOBAL_MAX_CONNECTIONS\nvar globalUDPReadTargetDataMaxgoroutineCountLimit = DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount\n\nvar globalTCPPortForwardCurrentConnections int64 = 0\nvar globalUDPPortForwardCurrentGroutineCount int64 = 0\n\nvar gloMaxPortForwardsCountLimit int64 = DEFAULT_MAX_PORTFORWARDS_LIMIT\n\nvar safeCheckFunc func(mode, ip string) bool\n\nfunc SetSafeCheck(f func(mode, ip string) bool) {\n\tsafeCheckFunc = f\n}\n\nfunc SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(max int64) {\n\tatomic.StoreInt64(&globalUDPReadTargetDataMaxgoroutineCountLimit, max)\n}\n\nfunc GetGlobalUDPReadTargetDataMaxgoroutineCountLimit() int64 {\n\treturn atomic.LoadInt64(&globalUDPReadTargetDataMaxgoroutineCountLimit)\n}\n\nfunc SetGlobalMaxPortForwardsCountLimit(max int64) {\n\tatomic.StoreInt64(&gloMaxPortForwardsCountLimit, max)\n}\n\nfunc GetGlobalMaxPortForwardsCountLimit() int64 {\n\treturn atomic.LoadInt64(&gloMaxPortForwardsCountLimit)\n}\n\nfunc SetGlobalTCPPortforwardMaxConnections(max int64) {\n\tatomic.StoreInt64(&globalTCPPortforwardMaxConnectionsLimit, max)\n}\n\nfunc GetGlobalTCPPortforwardMaxConnections() int64 {\n\treturn atomic.LoadInt64(&globalTCPPortforwardMaxConnectionsLimit)\n}\n\nfunc GetGlobalTCPPortForwardConnections() int64 {\n\treturn atomic.LoadInt64(&globalTCPPortForwardCurrentConnections)\n}\n\nfunc GloBalTCPPortForwardConnectionsAdd(add int64) int64 {\n\treturn atomic.AddInt64(&globalTCPPortForwardCurrentConnections, add)\n}\n\nfunc GetGlobalUDPPortForwardGroutineCount() int64 {\n\treturn atomic.LoadInt64(&globalUDPPortForwardCurrentGroutineCount)\n}\n\nfunc GloBalUDPPortForwardGroutineCountAdd(add int64) int64 {\n\treturn atomic.AddInt64(&globalUDPPortForwardCurrentGroutineCount, add)\n}\n\ntype TCPUDPProxyCommonConf struct {\n\tCurrentConnectionsCount   int64\n\tSingleProxyMaxConnections int64\n\n\tBaseProxyConf\n\tlistentAddress string\n\tlistenIP       string\n\tlistenPort     int\n\t//targetIP       string\n\ttargetAddressList  []string\n\ttargetAddressCount int\n\ttargetAddressIndex uint64\n\ttargetAddressLock  sync.Mutex\n\ttargetPort         int\n\n\tsafeMode string\n\tlog      *logrus.Logger\n}\n\n// func (p *TCPUDPProxyCommonConf) PrintConnectionsInfo() {\n// \tp.log.Infof(\"[%s]当前连接数:[%d],当前端口最大TCP连接数限制[%d],全局最大TCP连接数限制[%d]\", p.GetKey(), p.GetCurrentConnections(), p.SingleProxyMaxConnections, GetGlobalTCPPortforwardMaxConnections())\n// }\n\nfunc (p *TCPUDPProxyCommonConf) SetMaxConnections(max int64) {\n\tif max <= 0 {\n\t\tp.SingleProxyMaxConnections = TCPUDP_DEFAULT_SINGLE_PROXY_MAX_CONNECTIONS\n\t} else {\n\t\tp.SingleProxyMaxConnections = max\n\t}\n}\n\nfunc (p *TCPUDPProxyCommonConf) AddCurrentConnections(a int64) {\n\tatomic.AddInt64(&p.CurrentConnectionsCount, a)\n\tif strings.HasPrefix(p.ProxyType, \"tcp\") {\n\t\tGloBalTCPPortForwardConnectionsAdd(a)\n\t\treturn\n\t}\n\n\tif strings.HasPrefix(p.ProxyType, \"udp\") {\n\t\tGloBalUDPPortForwardGroutineCountAdd(a)\n\t\treturn\n\t}\n\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetCurrentConnections() int64 {\n\treturn atomic.LoadInt64(&p.CurrentConnectionsCount)\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListentAddress() string {\n\tif p.listentAddress == \"\" {\n\t\tif strings.Contains(p.listenIP, \":\") {\n\t\t\tp.listentAddress = fmt.Sprintf(\"[%s]:%d\", p.listenIP, p.listenPort)\n\t\t} else {\n\t\t\tp.listentAddress = fmt.Sprintf(\"%s:%d\", p.listenIP, p.listenPort)\n\t\t}\n\t}\n\treturn p.listentAddress\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetKey() string {\n\tif p.key == \"\" {\n\t\tp.key = GetProxyKey(p.ProxyType, p.listenIP, p.listenPort)\n\t}\n\treturn p.key\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListenIP() string {\n\treturn p.listenIP\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListenPort() int {\n\treturn p.listenPort\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetTargetAddress() string {\n\tp.targetAddressLock.Lock()\n\tdefer p.targetAddressLock.Unlock()\n\tif p.targetAddressCount <= 0 {\n\t\tp.targetAddressCount = len(p.targetAddressList)\n\t\tp.targetAddressIndex = 0\n\t}\n\taddress := fmt.Sprintf(\"%s:%d\", p.targetAddressList[p.targetAddressIndex%uint64(p.targetAddressCount)], p.targetPort)\n\tp.targetAddressIndex++\n\treturn address\n}\n\nfunc (p *TCPUDPProxyCommonConf) String() string {\n\treturn fmt.Sprintf(\"%s@%v ===> %v:%d\", p.ProxyType, p.GetListentAddress(), p.targetAddressList, p.targetPort)\n}\n\nfunc (p *TCPUDPProxyCommonConf) SafeCheck(remodeAddr string) bool {\n\thost, _, _ := net.SplitHostPort(remodeAddr)\n\treturn safeCheckFunc(p.safeMode, host)\n}\n"
  },
  {
    "path": "module/portforward/socketproxy/udpproxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/fatedier/golib/errors\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/pool\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst UDP_DEFAULT_PACKAGE_SIZE = 1500\n\n//测试\n\ntype UDPProxy struct {\n\t//BaseProxyConf\n\tTCPUDPProxyCommonConf\n\n\t//\ttargetAddr *net.UDPAddr\n\tlistenConn      *net.UDPConn\n\tlistenConnMutex sync.Mutex\n\n\trelayChs []chan *udpPackge\n\treplyCh  chan *udpPackge\n\n\tudpPackageSize int\n\t//targetudpConnItemMap      map[string]*udpMapItem\n\t//targetudpConnItemMapMutex sync.RWMutex\n\ttargetConnectSessions                         sync.Map\n\tUpm                                           bool //性能模式\n\tShortMode                                     bool\n\tisStop                                        bool\n\tSingleProxyMaxUDPReadTargetDatagoroutineCount int64\n}\n\ntype udpPackge struct {\n\tdataSize   int\n\tdata       *[]byte\n\tremoteAddr *net.UDPAddr\n}\n\ntype udpTagetConSession struct {\n\ttargetConn *net.UDPConn\n\tlastTime   time.Time\n}\n\nfunc CreateUDPProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) *UDPProxy {\n\tp := &UDPProxy{}\n\t//p.Key = key\n\tp.ProxyType = proxyType\n\tp.listenIP = listenIP\n\tp.listenPort = listenPort\n\tp.targetAddressList = targetAddressList\n\tp.targetPort = targetPort\n\n\tp.Upm = options.UDPProxyPerformanceMode\n\tp.ShortMode = options.UDPShortMode\n\tp.safeMode = options.SafeMode\n\tp.log = log\n\tp.SingleProxyMaxUDPReadTargetDatagoroutineCount = options.SingleProxyMaxUDPReadTargetDatagoroutineCount\n\n\tp.SetUDPPacketSize(options.UDPPackageSize)\n\treturn p\n}\n\nfunc (p *UDPProxy) getHandlegoroutineNum() int {\n\tif p.Upm {\n\t\treturn runtime.NumCPU()\n\t}\n\treturn 1\n}\n\nfunc (p *UDPProxy) SetUDPPacketSize(size int) {\n\tif size <= 0 {\n\t\tp.udpPackageSize = UDP_DEFAULT_PACKAGE_SIZE\n\t\treturn\n\t}\n\tif size > 65507 {\n\t\tp.udpPackageSize = 65507\n\t\treturn\n\t}\n\tp.udpPackageSize = size\n}\n\nfunc (p *UDPProxy) GetUDPPacketSize() int {\n\n\treturn p.udpPackageSize\n}\n\nfunc (p *UDPProxy) StartProxy() {\n\t//p.init()\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tif p.listenConn != nil {\n\t\treturn\n\t}\n\n\tbindAddr, err := net.ResolveUDPAddr(p.ProxyType, p.GetListentAddress())\n\n\tif err != nil {\n\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.GetKey(), err)\n\t\treturn\n\t}\n\n\tln, err := net.ListenUDP(p.ProxyType, bindAddr)\n\tif err != nil {\n\t\tif strings.Contains(err.Error(), \" bind: Only one usage of each socket address\") {\n\t\t\tp.log.Errorf(\"监听IP端口[%s]已被占用,proxy[%s]启动失败\", p.GetListentAddress(), p.String())\n\t\t} else {\n\t\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.String(), err)\n\t\t}\n\t\treturn\n\t}\n\n\tln.SetReadBuffer(p.getHandlegoroutineNum() * 4 * 1024 * 1024)\n\tln.SetWriteBuffer(p.getHandlegoroutineNum() * 4 * 1024 * 1024)\n\n\tp.listenConn = ln\n\n\tp.log.Infof(\"[端口转发][开启][%s]\", p.String())\n\n\tp.relayChs = make([]chan *udpPackge, p.getHandlegoroutineNum())\n\n\tfor i := range p.relayChs {\n\t\tp.relayChs[i] = make(chan *udpPackge, 1024)\n\t}\n\n\tp.replyCh = make(chan *udpPackge, 1024)\n\t// if p.targetudpConnItemMap == nil {\n\t// \tp.targetudpConnItemMap = make(map[string]*udpMapItem)\n\t// }\n\n\tfor i := range p.relayChs {\n\t\tgo p.Forwarder(i, p.relayChs[i])\n\t}\n\n\tgo p.replyDataToRemotAddress()\n\n\tgo p.CheckTargetUDPConnectSessions()\n\n\tfor i := 0; i < p.getHandlegoroutineNum(); i++ {\n\t\tgo p.ListenHandler(ln)\n\t}\n\n}\n\nfunc (p *UDPProxy) StopProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tdefer func() {\n\t\tp.targetConnectSessions.Range(func(key any, value any) bool {\n\t\t\tsession := value.(*udpTagetConSession)\n\t\t\tsession.targetConn.Close()\n\t\t\tp.targetConnectSessions.Delete(key)\n\t\t\treturn true\n\t\t})\n\t\tp.log.Infof(\"[端口转发][关闭][%s]\", p.String())\n\t}()\n\n\tif p.listenConn == nil {\n\t\treturn\n\t}\n\tp.listenConn.Close()\n\tp.listenConn = nil\n\tp.isStop = true\n\tclose(p.replyCh)\n\tfor i := range p.relayChs {\n\t\tclose(p.relayChs[i])\n\t}\n}\n\n// ReadFromTargetOnce one clientAddr only read once,short mode eg: udp dns\nfunc (p *UDPProxy) ReadFromTargetOnce() bool {\n\tif p.targetPort == 53 || p.ShortMode {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// func (p *UDPProxy) GetStatus() string {\n// \treturn fmt.Sprintf(\"%s  max packet size[%d]\", p.String(), p.GetUDPPacketSize())\n// }\n\nfunc (p *UDPProxy) ListenHandler(ln *net.UDPConn) {\n\n\tinDatabuf := pool.GetBuf(p.GetUDPPacketSize())\n\tdefer pool.PutBuf(inDatabuf)\n\ti := uint64(0)\n\tfor {\n\t\tif p.listenConn == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tinDatabufSize, remoteAddr, err := ln.ReadFromUDP(inDatabuf)\n\t\tif err != nil {\n\t\t\tif strings.Contains(err.Error(), `smaller than the datagram`) {\n\t\t\t\tp.log.Errorf(\"[%s] UDP包最大长度设置过小,请重新设置\", p.GetKey())\n\t\t\t} else {\n\t\t\t\tif !strings.Contains(err.Error(), \"use of closed network connection\") {\n\t\t\t\t\tp.log.Errorf(\" %s ReadFromUDP error:\\n%s \\n\", p.String(), err.Error())\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tremoteAddrStr := remoteAddr.String()\n\t\tif !p.SafeCheck(remoteAddrStr) {\n\t\t\tp.log.Warnf(\"[%s]新连接 [%s]安全检查未通过\", p.GetKey(), remoteAddrStr)\n\t\t\tcontinue\n\t\t}\n\n\t\t_, ok := p.targetConnectSessions.Load(remoteAddrStr)\n\t\tif !ok {\n\t\t\tp.log.Infof(\"[%s]新连接 [%s]安全检查通过\", p.GetKey(), remoteAddrStr)\n\t\t}\n\n\t\tdata := pool.GetBuf(inDatabufSize)\n\t\tcopy(data, inDatabuf[:inDatabufSize])\n\n\t\tinUdpPack := udpPackge{dataSize: inDatabufSize, data: &data, remoteAddr: remoteAddr}\n\n\t\tp.relayChs[i%uint64(p.getHandlegoroutineNum())] <- &inUdpPack\n\t\ti++\n\n\t}\n}\n\nfunc (p *UDPProxy) handlerDataFromTargetAddress(raddr *net.UDPAddr, tgConn *net.UDPConn) {\n\treadBuffer := pool.GetBuf(p.GetUDPPacketSize())\n\tvar session *udpTagetConSession\n\tsessionKey := raddr.String()\n\n\tdefer func() {\n\t\tpool.PutBuf(readBuffer)\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttgConn.Close()\n\t\t} else {\n\t\t\tp.targetConnectSessions.Delete(sessionKey)\n\t\t}\n\t\tp.AddCurrentConnections(-1)\n\t\tp.log.Infof(\"[%s]目标地址[%s]关闭连接[%s]\", p.GetKey(), tgConn.RemoteAddr().String(), tgConn.LocalAddr().String())\n\t}()\n\n\tvar targetConn *net.UDPConn\n\n\tp.AddCurrentConnections(1)\n\tfor {\n\t\ttargetConn = nil\n\t\tsession = nil\n\n\t\ttimeout := 1200 * time.Millisecond\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttimeout = 300 * time.Millisecond\n\t\t}\n\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttargetConn = tgConn\n\t\t} else {\n\t\t\tse, ok := p.targetConnectSessions.Load(sessionKey)\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsession = se.(*udpTagetConSession)\n\t\t\ttargetConn = session.targetConn\n\t\t}\n\n\t\ttargetConn.SetReadDeadline(time.Now().Add(timeout))\n\t\tn, _, err := targetConn.ReadFromUDP(readBuffer)\n\t\tif err != nil {\n\t\t\terrStr := err.Error()\n\t\t\tif strings.Contains(errStr, `i/o timeout`) && !p.ReadFromTargetOnce() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !strings.Contains(errStr, `use of closed network connection`) {\n\t\t\t\tp.log.Errorf(\"[%s]targetConn ReadFromUDP error:%s\", p.GetKey(), err.Error())\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tdata := pool.GetBuf(n)\n\t\tcopy(data, readBuffer[:n])\n\t\tudpMsg := udpPackge{dataSize: n, data: &data, remoteAddr: raddr}\n\n\t\tif err = errors.PanicToError(func() {\n\t\t\tselect {\n\t\t\tcase p.replyCh <- &udpMsg: //转发数据到远程地址\n\t\t\tdefault:\n\t\t\t}\n\t\t}); err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tif p.ReadFromTargetOnce() { //一次性\n\t\t\treturn\n\t\t}\n\n\t\t//非一次性，刷新时间或者退出\n\t\t_, ok := p.targetConnectSessions.Load(sessionKey)\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (p *UDPProxy) Forwarder(kk int, replych chan *udpPackge) {\n\n\t// read from targetAddr and write clientAddr\n\n\tvar err error\n\n\t// read from readCh\n\tfor udpMsg := range replych {\n\t\terr = nil\n\t\tse, ok := p.targetConnectSessions.Load(udpMsg.remoteAddr.String())\n\n\t\tif !ok {\n\t\t\terr := p.CheckReadTargetDataGoroutineLimit()\n\t\t\tif err != nil {\n\t\t\t\tp.log.Warnf(\"[%s]转发中止：%s\", p.GetKey(), err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tvar session *udpTagetConSession\n\t\tif ok {\n\t\t\tsession = se.(*udpTagetConSession)\n\t\t} else {\n\t\t\tsession = &udpTagetConSession{}\n\t\t}\n\n\t\tif !ok {\n\t\t\taddr := p.GetTargetAddress()\n\t\t\ttgAddr, err := net.ResolveUDPAddr(\"udp\", addr)\n\t\t\tif err != nil {\n\t\t\t\tp.log.Errorf(\"[%s]UDP端口转发目标地址[%s]解析出错:%s\", p.GetKey(), addr, err.Error())\n\t\t\t\tpool.PutBuf(*udpMsg.data)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttargetConn, err := net.DialUDP(\"udp\", nil, tgAddr)\n\t\t\tif err != nil {\n\t\t\t\tp.log.Errorf(\"[%s]UDP端口转发目标地址[%s]连接出错:%s\", p.GetKey(), addr, err.Error())\n\t\t\t\tpool.PutBuf(*udpMsg.data)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttargetConn.SetWriteBuffer(4 * 1024 * 1024)\n\t\t\ttargetConn.SetReadBuffer(4 * 1024 * 1024)\n\n\t\t\tsession.targetConn = targetConn\n\t\t}\n\t\tsession.lastTime = time.Now()\n\n\t\tif !p.ReadFromTargetOnce() { //只存储非一次性\n\t\t\tp.targetConnectSessions.Store(udpMsg.remoteAddr.String(), session)\n\t\t}\n\n\t\tp.ReceiveDataCallback(int64(udpMsg.dataSize)) //接收流量记录\n\n\t\t_, err = session.targetConn.Write(*udpMsg.data)\n\t\tif err != nil {\n\t\t\tp.log.Errorf(\"[%s]转发数据到目标端口出错：%s\", p.GetKey(), err.Error())\n\t\t\tsession.targetConn.Close()\n\t\t\tcontinue\n\t\t}\n\t\tpool.PutBuf(*udpMsg.data)\n\n\t\tif !ok {\n\t\t\tgo p.handlerDataFromTargetAddress(udpMsg.remoteAddr, session.targetConn)\n\t\t}\n\n\t}\n\n}\n\nfunc (p *UDPProxy) replyDataToRemotAddress() {\n\tfor msg := range p.replyCh {\n\t\t_, err := p.listenConn.WriteToUDP(*(msg.data), msg.remoteAddr)\n\t\tpool.PutBuf(*msg.data)\n\t\tif err != nil {\n\t\t\tp.log.Errorf(\"[%s]转发目标端口数据到远程端口出错：%s\", p.GetKey(), err.Error())\n\t\t\tcontinue\n\t\t}\n\t\tp.SendDataCallback(int64(msg.dataSize)) //发送流量记录\n\t}\n}\n\nfunc (p *UDPProxy) CheckReadTargetDataGoroutineLimit() error {\n\tif GetGlobalUDPPortForwardGroutineCount() >= GetGlobalUDPReadTargetDataMaxgoroutineCountLimit() {\n\t\treturn fmt.Errorf(\"超出端口转发全局UDP读取目标地址数据协程数限制[%d]\", GetGlobalUDPReadTargetDataMaxgoroutineCountLimit())\n\t}\n\n\tif p.GetCurrentConnections() >= p.SingleProxyMaxUDPReadTargetDatagoroutineCount {\n\t\treturn fmt.Errorf(\"超出单端口UDP读取目标地址数据协程数限制[%d]\", p.SingleProxyMaxUDPReadTargetDatagoroutineCount)\n\t}\n\treturn nil\n}\n\nfunc (p *UDPProxy) CheckTargetUDPConnectSessions() {\n\tfor {\n\t\t<-time.After(time.Second * 1)\n\t\tif p.isStop {\n\t\t\treturn\n\t\t}\n\t\tif p.GetCurrentConnections() <= 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tp.targetConnectSessions.Range(func(key any, value any) bool {\n\t\t\tsession := value.(*udpTagetConSession)\n\t\t\tif time.Since(session.lastTime) >= 30*time.Second {\n\t\t\t\tsession.targetConn.Close()\n\t\t\t\tp.targetConnectSessions.Delete(key)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\n\t}\n}\n"
  },
  {
    "path": "module/reverseproxy/conf/reverseproxy.go",
    "content": "package reverseproxyconf\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t//\"github.com/gdy666/lucky/module/safe\"\n\t//ssl \"github.com/gdy666/lucky/module/sslcertficate\"\n\n\t\"github.com/gdy666/lucky/module/weblog\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/ginutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/httputils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar ReverseProxyServerStore sync.Map\nvar ReverseProxyServerStoreMu sync.Mutex\nvar GetValidSSLCertficateList func() []tls.Certificate\nvar SafeCheck func(string, string) bool\n\ntype SubReverProxyRule struct {\n\tKey string `json:\"Key\"`\n\n\tinitOnce       sync.Once\n\tLocations      []string    `json:\"Locations\"` //长度大于1时均衡负载\n\tlocationMutex  *sync.Mutex `json:\"-\"`\n\tlocationsCount int         `json:\"-\"`\n\tlocationIndex  uint64      `json:\"-\"`\n\n\tEnableAccessLog            bool `json:\"EnableAccessLog\"`            //开启日志\n\tLogLevel                   int  `json:\"LogLevel\"`                   //日志输出级别\n\tLogOutputToConsole         bool `json:\"LogOutputToConsole\"`         //日志输出到终端\n\tAccessLogMaxNum            int  `json:\"AccessLogMaxNum\"`            //最大条数\n\tWebListShowLastLogMaxCount int  `json:\"WebListShowLastLogMaxCount\"` //前端列表显示最新日志最大条数\n\n\tForwardedByClientIP bool         `json:\"ForwardedByClientIP\"`\n\tTrustedCIDRsStrList []string     `json:\"TrustedCIDRsStrList\"`\n\tRemoteIPHeaders     []string     `json:\"RemoteIPHeaders\"` //识别客户端原始IP的Http请求头\n\tTrustedProxyCIDRs   []*net.IPNet `json:\"-\"`\n\n\tAddRemoteIPToHeader  bool   `json:\"AddRemoteIPToHeader\"` //追加客户端连接IP到指定Header\n\tAddRemoteIPHeaderKey string `json:\"AddRemoteIPHeaderKey\"`\n\n\tEnableBasicAuth bool   `json:\"EnableBasicAuth\"` //启用BasicAuth认证\n\tBasicAuthUser   string `json:\"BasicAuthUser\"`   //如果配置此参数，暴露出去的 HTTP 服务需要采用 Basic Auth 的鉴权才能访问\n\tBasicAuthPasswd string `json:\"BasicAuthPasswd\"` //结合 BasicAuthUser 使用\n\n\tSafeIPMode        string   `json:\"SafeIPMode\"`        //IP过滤模式 黑白名单\n\tSafeUserAgentMode string   `json:\"SafeUserAgentMode\"` //UserAgent 过滤模式 黑白名单\n\tUserAgentfilter   []string `json:\"UserAgentfilter\"`   //UserAgent 过滤内容\n\n\tCustomRobotTxt bool   `json:\"CustomRobotTxt\"`\n\tRobotTxt       string `json:\"RobotTxt\"`\n\t//------------------\n\tlogsBuffer *logsbuffer.LogsBuffer\n\tlogrus     *logrus.Logger\n\tlogger     *log.Logger\n}\n\ntype ReverseProxyRule struct {\n\tRuleName   string `json:\"RuleName\"`\n\tRuleKey    string `json:\"RuleKey\"`\n\tEnable     bool   `json:\"Enable\"`\n\tListenIP   string `json:\"ListenIP\"`\n\tListenPort int    `json:\"ListenPort\"`\n\tEnableTLS  bool   `json:\"EnableTLS\"`\n\tNetwork    string `json:\"Network\"`\n\n\tDefaultProxy struct {\n\t\tSubReverProxyRule\n\t} `json:\"DefaultProxy\"`\n\n\tProxyList  []ReverseProxy `json:\"ProxyList\"`\n\tdomainsMap *sync.Map\n\tinitOnec   sync.Once\n}\n\nfunc (r *ReverseProxyRule) Init() {\n\tr.initOnec.Do(func() {\n\t\tr.initDomainsMap()\n\n\t})\n}\n\nfunc (r *SubReverProxyRule) Logf(level logrus.Level, c *gin.Context, format string, v ...any) {\n\tclientIP := r.ClientIP(c)\n\tremoteIP := c.RemoteIP()\n\tmethod := c.Request.Method\n\thost := c.Request.Host\n\t//hostname, hostport := httputils.SplitHostPort(c.Request.Host)\n\turl := c.Request.URL.String()\n\t//path := c.Request.URL.Path\n\n\tr.GetLogrus().WithFields(logrus.Fields{\n\t\t\"ClientIP\": clientIP,\n\t\t\"RemoteIP\": remoteIP,\n\t\t\"Method\":   method,\n\t\t\"Host\":     host,\n\t\t// \"Hostname\":  hostname,\n\t\t// \"Hostport\":  hostport,\n\t\t\"URL\": url,\n\t\t//\"path\":      path,\n\t\t\"UserAgent\": c.Request.UserAgent(),\n\t}).Logf(level, format, v...)\n}\n\nfunc (r *SubReverProxyRule) HandlerReverseProxy(remote *url.URL, host, path string, c *gin.Context) {\n\n\tproxy := httputil.NewSingleHostReverseProxy(remote)\n\tproxy.Director = func(req *http.Request) {\n\t\treq.Header = c.Request.Header\n\t\treq.Host = host //remote.Host\n\t\t//req.Host = remote.Host\n\t\treq.URL.Scheme = remote.Scheme\n\t\treq.URL.Host = remote.Host\n\t\treq.URL.Path = path\n\t\tif r.AddRemoteIPToHeader && r.AddRemoteIPHeaderKey != \"\" {\n\t\t\tcip := r.ClientIP(c)\n\t\t\treq.Header.Add(r.AddRemoteIPHeaderKey, cip)\n\t\t}\n\t}\n\tproxy.ErrorLog = r.GetLogger()\n\tproxy.ServeHTTP(c.Writer, c.Request)\n\n}\n\nfunc (r *SubReverProxyRule) Fire(entry *logrus.Entry) error {\n\tif !r.LogOutputToConsole {\n\t\treturn nil\n\t}\n\ts, _ := entry.String()\n\tlog.Print(s)\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) Levels() []logrus.Level {\n\treturn logrus.AllLevels\n}\n\nfunc (r *SubReverProxyRule) GetLogrus() *logrus.Logger {\n\tif r.logrus == nil {\n\t\tr.logrus = logrus.New()\n\t\tr.logrus.SetLevel(logrus.Level(r.LogLevel))\n\t\tr.logrus.SetOutput(r.GetLogsBuffer())\n\t\tr.logrus.SetFormatter(&logrus.JSONFormatter{\n\t\t\tTimestampFormat:   \"2006-01-02 15:04:05\",\n\t\t\tDisableTimestamp:  true,\n\t\t\tDisableHTMLEscape: true,\n\t\t\tDataKey:           \"ExtInfo\",\n\t\t})\n\t\tr.logrus.AddHook(r)\n\n\t}\n\treturn r.logrus\n}\n\nfunc (r *SubReverProxyRule) GetLogger() *log.Logger {\n\tif r.logger == nil {\n\t\tr.logger = log.New(r.GetLogsBuffer(), \"\", log.LstdFlags)\n\t}\n\treturn r.logger\n}\n\nfunc (r *SubReverProxyRule) GetLogsBuffer() *logsbuffer.LogsBuffer {\n\tif r.logsBuffer == nil {\n\t\tr.logsBuffer = logsbuffer.CreateLogbuffer(\"reverseproxy:\"+r.Key, r.AccessLogMaxNum)\n\t}\n\treturn r.logsBuffer\n}\n\nfunc (r *SubReverProxyRule) checkupClientIP(ip string) bool {\n\treturn SafeCheck(r.SafeIPMode, ip)\n}\n\nfunc (r *SubReverProxyRule) checkupUserAgent(ua string) bool {\n\n\tisContains := false\n\tfor _, c := range r.UserAgentfilter {\n\t\tif strings.Contains(ua, c) {\n\t\t\tisContains = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tswitch r.SafeUserAgentMode {\n\tcase \"whitelist\":\n\t\treturn isContains\n\tcase \"blacklist\":\n\t\treturn !isContains\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (r *ReverseProxyRule) ReverseProxyHandler(c *gin.Context) {\n\tpath := c.Param(\"proxyPath\")\n\thostName, _ := httputils.SplitHostPort(c.Request.Host)\n\trule, ok := r.GetSubRuleByDomain(hostName)\n\n\tvar subRule *SubReverProxyRule = nil\n\tif ok && rule.Enable {\n\t\tsubRule = &rule.SubReverProxyRule\n\t} else {\n\t\tsubRule = &r.DefaultProxy.SubReverProxyRule\n\t}\n\n\tif !subRule.checkupClientIP(subRule.ClientIP(c)) { //IP检查\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"IP[%s]禁止访问,当前Ip检查模式[%s]\", subRule.ClientIP(c), subRule.SafeIPMode)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif !subRule.checkupUserAgent(c.Request.UserAgent()) {\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"IP[%s]UA[%s]禁止访问,当前UA检查模式[%s]\", subRule.ClientIP(c), c.Request.UserAgent(), subRule.SafeUserAgentMode)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif !subRule.BasicAuthHandler(c) {\n\t\tsubRule.Logf(logrus.WarnLevel, c, \"BasicAuth认证不通过\")\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif subRule.CustomRobotTxt && c.Request.RequestURI == \"/robots.txt\" {\n\t\tif c.Request.Method != \"GET\" && c.Request.Method != \"HEAD\" {\n\t\t\tstatus := http.StatusOK\n\t\t\tif c.Request.Method != \"OPTIONS\" {\n\t\t\t\tstatus = http.StatusMethodNotAllowed\n\t\t\t}\n\t\t\tc.Header(\"Allow\", \"GET,HEAD,OPTIONS\")\n\t\t\tc.AbortWithStatus(status)\n\t\t\treturn\n\t\t}\n\t\tc.Data(http.StatusOK, \"text/plain\", []byte(subRule.RobotTxt))\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"触发自定义robots.txt\")\n\t\treturn\n\t}\n\n\tlocation := subRule.GetLocation()\n\tif location == \"\" && subRule.Key == r.RuleKey {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"域名[%s]没有对应后端地址,默认后端地址没有设置\", hostName)\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\tif subRule.Key == r.RuleKey {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"[%s] 指向默认后端地址[%s%s]\", hostName, location, c.Request.URL.String())\n\t} else {\n\t\tsubRule.Logf(logrus.InfoLevel, c, \"[%s] 指向后端地址[%s%s]\", hostName, location, c.Request.URL.String())\n\t}\n\n\tremote, err := url.Parse(location)\n\tif err != nil {\n\t\tsubRule.Logf(logrus.ErrorLevel, c, \"后端地址转换出错:%s\", err.Error())\n\t\tc.JSON(http.StatusBadGateway, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"后端地址[%s] 转换出错:%s\", location, err.Error())})\n\t\treturn\n\t}\n\tsubRule.HandlerReverseProxy(remote, hostName, path, c)\n\n}\n\nfunc (r *ReverseProxyRule) GetSubRuleByDomain(domain string) (*ReverseProxy, bool) {\n\tval, ok := r.domainsMap.Load(domain)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn val.(*ReverseProxy), true\n}\n\ntype ReverseProxy struct {\n\tSubReverProxyRule\n\tEnable  bool     `json:\"Enable\"`\n\tRemark  string   `json:\"Remark\"`\n\tDomains []string `json:\"Domains\"` //自定义域名\n\n}\n\nfunc (r *ReverseProxyRule) GetServer() *http.Server {\n\ts, loaded := ReverseProxyServerStore.Load(r.RuleKey)\n\tif !loaded {\n\t\treturn nil\n\t}\n\treturn s.(*http.Server)\n}\n\nfunc (r *ReverseProxyRule) SetServer(s *http.Server) {\n\tif s == nil {\n\t\tReverseProxyServerStore.Delete(r.RuleKey)\n\t\treturn\n\t}\n\tReverseProxyServerStore.Store(r.RuleKey, s)\n}\n\nfunc (r *ReverseProxyRule) ServerStart() error {\n\t// r.smu.Lock()\n\t// defer r.smu.Unlock()\n\tReverseProxyServerStoreMu.Lock()\n\tdefer ReverseProxyServerStoreMu.Unlock()\n\tserver := r.GetServer()\n\n\tif server != nil {\n\t\treturn fmt.Errorf(\"RuleServer[%s]已经启动,请勿重复启动\", r.Addr())\n\t}\n\tginR := gin.New()\n\n\tginR.Any(\"/*proxyPath\", r.ReverseProxyHandler)\n\tserver = &http.Server{\n\t\tAddr:     r.Addr(),\n\t\tHandler:  ginR,\n\t\tErrorLog: r.DefaultProxy.GetLogger(),\n\t}\n\n\t//***************************\n\tvar err error\n\tserver.TLSConfig = &tls.Config{}\n\n\tif r.EnableTLS {\n\t\tcertList := GetValidSSLCertficateList() //ssl.GetValidSSLCertficateList()\n\t\tserver.TLSConfig.Certificates = certList\n\t}\n\t//server.TLSConfig.Certificates = make([]tls.Certificate, 3)\n\n\t//****************************\n\n\tln, err := net.Listen(r.Network, r.Addr())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar serveResult error\n\n\tgo func() {\n\n\t\tif !r.EnableTLS {\n\t\t\tserveResult = server.Serve(ln)\n\t\t\treturn\n\t\t}\n\n\t\tif len(server.TLSConfig.Certificates) <= 0 {\n\t\t\tlog.Printf(\"可用证书列表为空,%s 未能启用TLS\", r.Addr())\n\t\t\tserveResult = server.Serve(ln)\n\t\t\treturn\n\t\t}\n\t\tlog.Printf(\"%s 已启用TLS\", r.Addr())\n\t\tserveResult = server.ServeTLS(ln, \"\", \"\")\n\n\t}()\n\n\t<-time.After(time.Millisecond * 300)\n\n\tdefer func() {\n\t\tif serveResult == nil {\n\t\t\tr.SetServer(server)\n\t\t}\n\t}()\n\n\treturn serveResult\n\n}\n\nfunc (r *ReverseProxyRule) ServerStop() {\n\tReverseProxyServerStoreMu.Lock()\n\tdefer ReverseProxyServerStoreMu.Unlock()\n\tserver := r.GetServer()\n\tif server == nil {\n\t\treturn\n\t}\n\tserver.Close()\n\tr.SetServer(nil)\n\n}\n\nfunc (r *ReverseProxyRule) initDomainsMap() error {\n\tr.domainsMap = &sync.Map{}\n\tfor i := range r.ProxyList {\n\t\tfor j := range r.ProxyList[i].Domains {\n\t\t\t_, loaded := r.domainsMap.LoadOrStore(r.ProxyList[i].Domains[j], &r.ProxyList[i])\n\t\t\tif loaded {\n\t\t\t\treturn fmt.Errorf(\"前端域名[%s]冲突\", r.ProxyList[i].Domains[j])\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) initOnceExec() {\n\tr.initOnce.Do(func() {\n\t\tr.locationsCount = len(r.Locations)\n\t\tr.InitTrustedProxyCIDRs()\n\t\tr.locationMutex = &sync.Mutex{}\n\t})\n}\n\nfunc (r *SubReverProxyRule) GetLocation() string {\n\tr.initOnceExec()\n\tr.locationMutex.Lock()\n\tdefer func() {\n\t\tr.locationIndex++\n\t\tr.locationMutex.Unlock()\n\t}()\n\n\tif r.locationsCount == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn r.Locations[r.locationIndex%uint64(r.locationsCount)]\n}\n\nfunc (r *SubReverProxyRule) BasicAuthHandler(c *gin.Context) bool {\n\tif !r.EnableBasicAuth || r.BasicAuthUser == \"\" {\n\t\treturn true\n\t}\n\n\trealm := \"Basic realm=\" + strconv.Quote(\"Authorization Required\")\n\tpairs := ginutils.ProcessAccounts(gin.Accounts{r.BasicAuthUser: r.BasicAuthPasswd})\n\tuser, found := pairs.SearchCredential(c.GetHeader(\"Authorization\"))\n\tif !found {\n\t\t// Credentials doesn't match, we return 401 and abort handlers chain.\n\t\tc.Header(\"WWW-Authenticate\", realm)\n\t\tc.AbortWithStatus(http.StatusUnauthorized)\n\t\treturn false\n\t}\n\tc.Set(\"user\", user)\n\treturn true\n}\n\nfunc (r *SubReverProxyRule) InitTrustedProxyCIDRs() error {\n\tvar res []*net.IPNet\n\tfor i := range r.TrustedCIDRsStrList {\n\t\tif strings.TrimSpace(r.TrustedCIDRsStrList[i]) == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\t_, cidr, err := net.ParseCIDR(r.TrustedCIDRsStrList[i])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"[%s]网段格式有误\", r.TrustedCIDRsStrList[i])\n\t\t}\n\t\tres = append(res, cidr)\n\t}\n\tr.TrustedProxyCIDRs = res\n\treturn nil\n}\n\nfunc (r *SubReverProxyRule) ClientIP(c *gin.Context) string {\n\tremoteIP := net.ParseIP(c.RemoteIP())\n\tif remoteIP == nil {\n\t\treturn \"\"\n\t}\n\n\ttrusted := r.isTrustedProxy(remoteIP)\n\n\tif trusted && r.ForwardedByClientIP && r.RemoteIPHeaders != nil {\n\t\tfor _, headerName := range r.RemoteIPHeaders {\n\t\t\tip, valid := r.validateHeader(c.Request.Header.Get(headerName))\n\t\t\tif valid {\n\t\t\t\treturn ip\n\t\t\t}\n\t\t}\n\t}\n\n\treturn remoteIP.String()\n}\n\nfunc (r *SubReverProxyRule) validateHeader(header string) (clientIP string, valid bool) {\n\tif header == \"\" {\n\t\treturn \"\", false\n\t}\n\titems := strings.Split(header, \",\")\n\tfor i := len(items) - 1; i >= 0; i-- {\n\t\tipStr := strings.TrimSpace(items[i])\n\t\tip := net.ParseIP(ipStr)\n\t\tif ip == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif (i == 0) || (!r.isTrustedProxy(ip)) {\n\t\t\treturn ipStr, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n\nfunc (r *SubReverProxyRule) isTrustedProxy(ip net.IP) bool {\n\tr.initOnceExec()\n\n\tif r.TrustedProxyCIDRs == nil {\n\t\treturn false\n\t}\n\tfor _, cidr := range r.TrustedProxyCIDRs {\n\t\tif cidr.Contains(ip) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (r *ReverseProxyRule) Addr() string {\n\treturn fmt.Sprintf(\"%s:%d\", r.ListenIP, r.ListenPort)\n}\n\nfunc (r *ReverseProxyRule) GetLastLogs() map[string][]any {\n\tres := make(map[string][]any)\n\tres[\"default\"] = r.DefaultProxy.GetLogsBuffer().GetLastLogs(weblog.WebLogConvert, r.DefaultProxy.WebListShowLastLogMaxCount)\n\n\tfor i := range r.ProxyList {\n\t\tres[r.ProxyList[i].Key] = r.ProxyList[i].GetLogsBuffer().GetLastLogs(\n\t\t\tweblog.WebLogConvert, r.ProxyList[i].WebListShowLastLogMaxCount)\n\t}\n\treturn res\n}\n"
  },
  {
    "path": "module/reverseproxy/proxy.go",
    "content": "package reverseproxy\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\treverseproxyconf \"github.com/gdy666/lucky/module/reverseproxy/conf\"\n\t\"github.com/gdy666/lucky/module/weblog\"\n)\n\nfunc InitReverseProxyServer() {\n\truleList := GetReverseProxyRuleList()\n\tfor ruleIndex := range ruleList {\n\t\tif ruleList[ruleIndex].Enable {\n\t\t\tstartRes := ruleList[ruleIndex].ServerStart()\n\t\t\tif startRes == nil {\n\t\t\t\tlog.Printf(\"启动反向代理服务[%s]成功\", ruleList[ruleIndex].Addr())\n\t\t\t} else {\n\t\t\t\tlog.Printf(\"启动反向代理服务[%s]失败:%s\", ruleList[ruleIndex].Addr(), startRes.Error())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc EnableRuleByKey(key string, enable bool) error {\n\n\trule := GetReverseProxyRuleByKey(key)\n\n\tif rule == nil {\n\t\treturn fmt.Errorf(\"GetReverseProxyRuleByKey not found:%s\", key)\n\t}\n\n\tif enable {\n\t\terr := rule.ServerStart()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"启用反向代理规则[%s]出错:%s\", rule.Addr(), err.Error())\n\t\t\tEnableReverseProxyRuleByKey(key, false)\n\t\t\treturn fmt.Errorf(\"启用反向代理规则[%s]出错:%s\", rule.Addr(), err.Error())\n\t\t} else {\n\t\t\tlog.Printf(\"启用反向代理规则[%s]成功\", rule.Addr())\n\t\t}\n\t} else {\n\t\trule.ServerStop()\n\t\tlog.Printf(\"停用反向代理规则[%s]成功\", rule.Addr())\n\t}\n\treturn EnableReverseProxyRuleByKey(key, enable)\n}\n\ntype RuleInfo struct {\n\treverseproxyconf.ReverseProxyRule\n\tAccessLogs map[string][]any\n}\n\nfunc GetProxyRuleListInfo() *[]RuleInfo {\n\truleList := GetReverseProxyRuleList()\n\tvar res []RuleInfo\n\tfor i := range ruleList {\n\t\t//ti := createProxyRuleInfo(nil, ruleList[i])\n\t\tvar ri RuleInfo\n\t\tri.ReverseProxyRule = *ruleList[i]\n\t\tri.AccessLogs = ruleList[i].GetLastLogs()\n\t\tres = append(res, ri)\n\t}\n\treturn &res\n}\n\nfunc GetAccessLogs(ruleKey, proxyKey string, pageSize, page int) (int, []any) {\n\tvar res []any\n\ttotal := 0\n\n\tsubRule := GetSubRuleByKey(ruleKey, proxyKey)\n\tif subRule == nil {\n\t\treturn 0, res\n\t}\n\ttotal, res = subRule.GetLogsBuffer().GetLogsByLimit(weblog.WebLogConvert, pageSize, page)\n\treturn total, res\n}\n"
  },
  {
    "path": "module/reverseproxy/reverseproxy.go",
    "content": "package reverseproxy\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/config\"\n\treverseproxyconf \"github.com/gdy666/lucky/module/reverseproxy/conf\"\n\t\"github.com/gdy666/lucky/module/safe\"\n\tssl \"github.com/gdy666/lucky/module/sslcertficate\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n)\n\nfunc init() {\n\treverseproxyconf.GetValidSSLCertficateList = ssl.GetValidSSLCertficateList\n\treverseproxyconf.SafeCheck = safe.SafeCheck\n}\n\n// TidyReverseProxyCache 整理反向代理日志缓存\nfunc TidyReverseProxyCache() {\n\truleList := GetReverseProxyRuleList()\n\tvar keyListBuffer strings.Builder\n\tfor _, rule := range ruleList {\n\t\tkeyListBuffer.WriteString(rule.DefaultProxy.Key)\n\t\tkeyListBuffer.WriteString(\",\")\n\t\tfor _, sr := range rule.ProxyList {\n\t\t\tkeyListBuffer.WriteString(sr.Key)\n\t\t\tkeyListBuffer.WriteString(\",\")\n\t\t}\n\t}\n\n\tkeyListStr := keyListBuffer.String()\n\tlogsbuffer.LogsBufferStoreMu.Lock()\n\tdefer logsbuffer.LogsBufferStoreMu.Unlock()\n\n\tvar needDeleteKeys []string\n\tfor k := range logsbuffer.LogsBufferStore {\n\t\tif !strings.HasPrefix(k, \"reverseproxy:\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(k) <= 13 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !strings.Contains(keyListStr, k[13:]) {\n\t\t\tneedDeleteKeys = append(needDeleteKeys, k)\n\t\t}\n\t}\n\n\tfor i := range needDeleteKeys {\n\t\tdelete(logsbuffer.LogsBufferStore, needDeleteKeys[i])\n\t\treverseproxyconf.ReverseProxyServerStore.Delete(needDeleteKeys[i])\n\t}\n\n}\n\n//------------------------------------------------------------\n\nfunc GetReverseProxyRuleList() []*reverseproxyconf.ReverseProxyRule {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\tvar resList []*reverseproxyconf.ReverseProxyRule\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\t\tconfig.Configure.ReverseProxyRuleList[i].Init()\n\t\trule := config.Configure.ReverseProxyRuleList[i]\n\t\tresList = append(resList, &rule)\n\t}\n\treturn resList\n}\n\nfunc GetReverseProxyRuleByKey(ruleKey string) *reverseproxyconf.ReverseProxyRule {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\n\t\tif config.Configure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn nil\n\t}\n\n\tres := config.Configure.ReverseProxyRuleList[ruleIndex]\n\treturn &res\n}\n\nfunc ReverseProxyRuleListAdd(rule *reverseproxyconf.ReverseProxyRule) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tconfig.Configure.ReverseProxyRuleList = append(config.Configure.ReverseProxyRuleList, *rule)\n\treturn config.Save()\n}\n\nfunc ReverseProxyRuleListDelete(ruleKey string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\truleIndex := -1\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\t\tif config.Configure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要删除的反向代理任务\")\n\t}\n\n\tconfig.Configure.ReverseProxyRuleList = DeleteReverseProxyRuleListlice(config.Configure.ReverseProxyRuleList, ruleIndex)\n\treturn config.Save()\n}\n\nfunc EnableReverseProxyRuleByKey(ruleKey string, enable bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\t\tif config.Configure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理规则失败,ruleKey %s 未找到\", ruleKey)\n\t}\n\tconfig.Configure.ReverseProxyRuleList[ruleIndex].Enable = enable\n\n\treturn config.Save()\n}\n\nfunc EnableReverseProxySubRule(ruleKey, proxyKey string, enable bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\t\tif config.Configure.ReverseProxyRuleList[i].RuleKey == ruleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理子规则失败,ruleKey %s 未找到\", ruleKey)\n\t}\n\n\tproxyIndex := -1\n\tfor i := range config.Configure.ReverseProxyRuleList[ruleIndex].ProxyList {\n\t\tif config.Configure.ReverseProxyRuleList[ruleIndex].ProxyList[i].Key == proxyKey {\n\t\t\tproxyIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif proxyIndex == -1 {\n\t\treturn fmt.Errorf(\"开关反向代理子规则失败,proxyKey %s 未找到\", proxyKey)\n\t}\n\n\tconfig.Configure.ReverseProxyRuleList[ruleIndex].ProxyList[proxyIndex].Enable = enable\n\n\treturn config.Save()\n\n}\n\nfunc UpdateReverseProxyRulet(rule reverseproxyconf.ReverseProxyRule) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\truleIndex := -1\n\n\tfor i := range config.Configure.ReverseProxyRuleList {\n\t\tif config.Configure.ReverseProxyRuleList[i].RuleKey == rule.RuleKey {\n\t\t\truleIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif ruleIndex == -1 {\n\t\treturn fmt.Errorf(\"找不到需要更新的反向代理规则\")\n\t}\n\n\t//\trule.RuleKey = programConfigure.ReverseProxyRuleList[ruleIndex].RuleKey\n\tconfig.Configure.ReverseProxyRuleList[ruleIndex] = rule\n\n\treturn config.Save()\n}\n\nfunc DeleteReverseProxyRuleListlice(a []reverseproxyconf.ReverseProxyRule, deleteIndex int) []reverseproxyconf.ReverseProxyRule {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc GetSubRuleByKey(ruleKey, proxyKey string) *reverseproxyconf.SubReverProxyRule {\n\t//rule := getSubRuleByKey()\n\n\trule := GetReverseProxyRuleByKey(ruleKey)\n\tif rule == nil {\n\t\treturn nil\n\t}\n\n\t//fmt.Printf(\"FFF ruleKey:%s proxyKey:%s\\n\", ruleKey, proxyKey)\n\n\tif proxyKey == \"default\" {\n\n\t\treturn &rule.DefaultProxy.SubReverProxyRule\n\t}\n\n\tfor i := range rule.ProxyList {\n\t\tif rule.ProxyList[i].Key == proxyKey {\n\t\t\treturn &rule.ProxyList[i].SubReverProxyRule\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "module/safe/blacklist.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage safe\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\tsafeconf \"github.com/gdy666/lucky/module/safe/conf\"\n)\n\nfunc GetBlackList() []safeconf.BlackListItem {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\tBlackListFlush(false)\n\n\tvar resList []safeconf.BlackListItem\n\tif config.Configure == nil {\n\t\treturn resList\n\t}\n\tfor i := range config.Configure.BlackListConfigure.BlackList {\n\t\tresList = append(resList, config.Configure.BlackListConfigure.BlackList[i])\n\t}\n\treturn resList\n}\n\nfunc BlackListInit() {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar netIP net.IP\n\tvar cidr *net.IPNet\n\n\tfor i := range config.Configure.BlackListConfigure.BlackList {\n\t\tnetIP = nil\n\t\tcidr = nil\n\t\tif strings.Contains(config.Configure.BlackListConfigure.BlackList[i].IP, \"/\") {\n\t\t\t_, cidr, _ = net.ParseCIDR(config.Configure.BlackListConfigure.BlackList[i].IP)\n\t\t} else {\n\t\t\tnetIP = net.ParseIP(config.Configure.BlackListConfigure.BlackList[i].IP)\n\t\t}\n\t\tconfig.Configure.BlackListConfigure.BlackList[i].Cidr = cidr\n\t\tconfig.Configure.BlackListConfigure.BlackList[i].NetIP = netIP\n\t}\n}\n\nfunc BlackListAdd(ip string, activelifeDuration int32) (string, error) {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tvar err error\n\tvar netIP net.IP = nil\n\tvar cidr *net.IPNet = nil\n\tif strings.Contains(ip, \"/\") {\n\t\t_, cidr, err = net.ParseCIDR(ip)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"网段格式有误，转换出错：%s\", err.Error())\n\t\t}\n\t} else {\n\t\tnetIP = net.ParseIP(ip)\n\t\tif netIP == nil {\n\t\t\treturn \"\", fmt.Errorf(\"IP格式有误\")\n\t\t}\n\t}\n\n\tif activelifeDuration <= 0 {\n\t\tactivelifeDuration = 666666\n\t}\n\n\tEffectiveTimeStr := time.Now().Add(time.Hour * time.Duration(activelifeDuration)).Format(\"2006-01-02 15:04:05\")\n\n\tfor i, ipr := range config.Configure.BlackListConfigure.BlackList {\n\t\tif ipr.IP == ip {\n\t\t\tconfig.Configure.BlackListConfigure.BlackList[i].EffectiveTime = EffectiveTimeStr\n\t\t\treturn EffectiveTimeStr, config.Save()\n\t\t}\n\t}\n\titem := safeconf.BlackListItem{IP: ip, EffectiveTime: EffectiveTimeStr, NetIP: netIP, Cidr: cidr}\n\tconfig.Configure.BlackListConfigure.BlackList = append(config.Configure.BlackListConfigure.BlackList, item)\n\treturn EffectiveTimeStr, config.Save()\n}\n\nfunc BlackListDelete(ip string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tremoveCount := 0\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range config.Configure.BlackListConfigure.BlackList {\n\t\tif ipr.IP == ip {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tconfig.Configure.BlackListConfigure.BlackList = DeleteBlackListlice(config.Configure.BlackListConfigure.BlackList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn config.Save()\n}\n\nfunc BlackListFlush(lock bool) error {\n\tif lock {\n\t\tconfig.ConfigureMutex.Lock()\n\t\tdefer config.ConfigureMutex.Unlock()\n\t}\n\n\tremoveCount := 0\n\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range config.Configure.BlackListConfigure.BlackList {\n\t\tipat, err := time.ParseInLocation(\"2006-01-02 15:04:05\", ipr.EffectiveTime, time.Local)\n\t\tif err != nil { //有效时间格式有误,当失效处理\n\t\t\tremoveIndex = i\n\n\t\t\tbreak\n\t\t}\n\n\t\tif time.Since(ipat) > 0 {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tconfig.Configure.BlackListConfigure.BlackList = DeleteBlackListlice(config.Configure.BlackListConfigure.BlackList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn config.Save()\n}\n\nfunc DeleteBlackListlice(a []safeconf.BlackListItem, deleteIndex int) []safeconf.BlackListItem {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "module/safe/conf/black.go",
    "content": "package safeconf\n\nimport \"net\"\n\ntype BlackListItem WhiteListItem\n\ntype BlackListConfigure struct {\n\tBlackList []BlackListItem `json:\"BlackList\"` //黑名单列表\n}\n\nfunc (w *BlackListItem) Contains(ip string) bool {\n\tnetIP := net.ParseIP(ip)\n\tif netIP == nil {\n\t\treturn false\n\t}\n\tif w.NetIP != nil {\n\t\treturn w.NetIP.Equal(netIP)\n\t}\n\n\tif w.Cidr != nil {\n\t\treturn w.Cidr.Contains(netIP)\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "module/safe/conf/white.go",
    "content": "package safeconf\n\nimport \"net\"\n\ntype WhiteListBaseConfigure struct {\n\tURL                string `json:\"URL\"`\n\tActivelifeDuration int32  `json:\"ActivelifeDuration\"` //有效期限,小时\n\tBasicAccount       string `json:\"BasicAccount\"`\n\tBasicPassword      string `json:\"BasicPassword\"`\n}\n\ntype WhiteListConfigure struct {\n\tBaseConfigure WhiteListBaseConfigure `json:\"BaseConfigure\"`\n\tWhiteList     []WhiteListItem        `json:\"WhiteList\"` //白名单列表\n}\n\ntype WhiteListItem struct {\n\tIP            string     `json:\"IP\"`\n\tEffectiveTime string     `json:\"Effectivetime\"` //有效时间\n\tNetIP         net.IP     `json:\"-\"`\n\tCidr          *net.IPNet `json:\"-\"`\n}\n\nfunc (w *WhiteListItem) Contains(ip string) bool {\n\tnetIP := net.ParseIP(ip)\n\tif netIP == nil {\n\t\treturn false\n\t}\n\tif w.NetIP != nil {\n\t\treturn w.NetIP.Equal(netIP)\n\t}\n\n\tif w.Cidr != nil {\n\t\treturn w.Cidr.Contains(netIP)\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "module/safe/safe.go",
    "content": "package safe\n\nfunc Init() {\n\tBlackListInit()\n\tWhiteListInit()\n}\n"
  },
  {
    "path": "module/safe/safecheck.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage safe\n\nimport (\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n)\n\nfunc SafeCheck(mode, ip string) bool {\n\tswitch mode {\n\tcase \"whitelist\":\n\t\t//log.Printf(\"whitelist\")\n\t\treturn whiteListCheck(ip)\n\tcase \"blacklist\":\n\t\t//log.Printf(\"blacklist\")\n\t\treturn blackListCheck(ip)\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc whiteListCheck(ip string) bool {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tif config.Configure == nil {\n\t\treturn false\n\t}\n\n\tfor _, item := range config.Configure.WhiteListConfigure.WhiteList {\n\n\t\tif !item.Contains(ip) {\n\t\t\tcontinue\n\t\t}\n\n\t\titemEffectiveTime, err := time.ParseInLocation(\"2006-01-02 15:04:05\", item.EffectiveTime, time.Local)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\tif time.Since(itemEffectiveTime) < 0 {\n\t\t\t//log.Printf(\"CCC\")\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\t//log.Printf(\"DDDD\")\n\treturn false\n}\n\nfunc blackListCheck(ip string) bool {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tif config.Configure == nil {\n\t\treturn true\n\t}\n\n\tfor _, item := range config.Configure.BlackListConfigure.BlackList {\n\t\tif !item.Contains(ip) {\n\t\t\tcontinue\n\t\t}\n\t\titemEffectiveTime, err := time.ParseInLocation(\"2006-01-02 15:04:05\", item.EffectiveTime, time.Local)\n\t\tif err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\tif time.Since(itemEffectiveTime) < 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "module/safe/whitelist.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage safe\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\tsafeconf \"github.com/gdy666/lucky/module/safe/conf\"\n)\n\nfunc GetWhiteListBaseConfigure() safeconf.WhiteListBaseConfigure {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\treturn config.Configure.WhiteListConfigure.BaseConfigure\n}\n\nfunc SetWhiteListBaseConfigure(activelifeDuration int32, url, account, password string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tconfig.Configure.WhiteListConfigure.BaseConfigure.URL = url\n\tconfig.Configure.WhiteListConfigure.BaseConfigure.ActivelifeDuration = activelifeDuration\n\tconfig.Configure.WhiteListConfigure.BaseConfigure.BasicAccount = account\n\tconfig.Configure.WhiteListConfigure.BaseConfigure.BasicPassword = password\n\treturn config.Save()\n}\n\nfunc GetWhiteList() []safeconf.WhiteListItem {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\tWhiteListFlush(false)\n\n\tvar resList []safeconf.WhiteListItem\n\tif config.Configure == nil {\n\t\treturn resList\n\t}\n\tfor i := range config.Configure.WhiteListConfigure.WhiteList {\n\t\tresList = append(resList, config.Configure.WhiteListConfigure.WhiteList[i])\n\t}\n\treturn resList\n}\n\nfunc WhiteListInit() {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar netIP net.IP\n\tvar cidr *net.IPNet\n\n\tfor i := range config.Configure.WhiteListConfigure.WhiteList {\n\t\tnetIP = nil\n\t\tcidr = nil\n\t\tif strings.Contains(config.Configure.WhiteListConfigure.WhiteList[i].IP, \"/\") {\n\t\t\t_, cidr, _ = net.ParseCIDR(config.Configure.WhiteListConfigure.WhiteList[i].IP)\n\t\t} else {\n\t\t\tnetIP = net.ParseIP(config.Configure.WhiteListConfigure.WhiteList[i].IP)\n\t\t}\n\t\tconfig.Configure.WhiteListConfigure.WhiteList[i].Cidr = cidr\n\t\tconfig.Configure.WhiteListConfigure.WhiteList[i].NetIP = netIP\n\t}\n}\n\nfunc WhiteListAdd(ip string, activelifeDuration int32) (string, error) {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tvar err error\n\tvar netIP net.IP = nil\n\tvar cidr *net.IPNet = nil\n\tif strings.Contains(ip, \"/\") {\n\t\t_, cidr, err = net.ParseCIDR(ip)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"网段格式有误，转换出错：%s\", err.Error())\n\t\t}\n\t} else {\n\t\tnetIP = net.ParseIP(ip)\n\t\tif netIP == nil {\n\t\t\treturn \"\", fmt.Errorf(\"IP格式有误\")\n\t\t}\n\t}\n\n\tif activelifeDuration <= 0 {\n\t\tactivelifeDuration = config.Configure.WhiteListConfigure.BaseConfigure.ActivelifeDuration\n\t}\n\n\tEffectiveTimeStr := time.Now().Add(time.Hour * time.Duration(activelifeDuration)).Format(\"2006-01-02 15:04:05\")\n\n\tfor i, ipr := range config.Configure.WhiteListConfigure.WhiteList {\n\t\tif ipr.IP == ip {\n\t\t\tconfig.Configure.WhiteListConfigure.WhiteList[i].EffectiveTime = EffectiveTimeStr\n\t\t\treturn EffectiveTimeStr, config.Save()\n\t\t}\n\t}\n\titem := safeconf.WhiteListItem{IP: ip, EffectiveTime: EffectiveTimeStr, NetIP: netIP, Cidr: cidr}\n\tconfig.Configure.WhiteListConfigure.WhiteList = append(config.Configure.WhiteListConfigure.WhiteList, item)\n\treturn EffectiveTimeStr, config.Save()\n}\n\nfunc WhiteListDelete(ip string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tremoveCount := 0\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range config.Configure.WhiteListConfigure.WhiteList {\n\t\tif ipr.IP == ip {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tconfig.Configure.WhiteListConfigure.WhiteList = DeleteWhiteListlice(config.Configure.WhiteListConfigure.WhiteList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn config.Save()\n}\n\nfunc WhiteListFlush(lock bool) error {\n\tif lock {\n\t\tconfig.ConfigureMutex.Lock()\n\t\tdefer config.ConfigureMutex.Unlock()\n\t}\n\n\tremoveCount := 0\n\nCONTINUECHECK:\n\tremoveIndex := -1\n\n\tfor i, ipr := range config.Configure.WhiteListConfigure.WhiteList {\n\t\tipat, err := time.ParseInLocation(\"2006-01-02 15:04:05\", ipr.EffectiveTime, time.Local)\n\t\tif err != nil { //有效时间格式有误,当失效处理\n\t\t\tremoveIndex = i\n\n\t\t\tbreak\n\t\t}\n\n\t\tif time.Since(ipat) > 0 {\n\t\t\tremoveIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif removeIndex >= 0 {\n\t\tremoveCount++\n\t\tconfig.Configure.WhiteListConfigure.WhiteList = DeleteWhiteListlice(config.Configure.WhiteListConfigure.WhiteList, removeIndex)\n\t\tgoto CONTINUECHECK\n\t}\n\n\tif removeCount == 0 {\n\t\treturn nil\n\t}\n\treturn config.Save()\n}\n\nfunc DeleteWhiteListlice(a []safeconf.WhiteListItem, deleteIndex int) []safeconf.WhiteListItem {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "module/service/service.go",
    "content": "package service\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\t\"time\"\n\n\tkservice \"github.com/kardianos/service\"\n)\n\n// var globalService Service\nvar startFunc func()\n\nvar listenPort string\nvar configureFileURL string\n\nfunc RegisterStartFunc(f func()) {\n\tstartFunc = f\n}\n\nfunc SetListenPort(port int) {\n\tlistenPort = fmt.Sprintf(\"%d\", port)\n}\n\nfunc SetConfigureFile(f string) {\n\tconfigureFileURL = f\n}\n\ntype Service struct {\n}\n\nfunc (p *Service) Start(s kservice.Service) error {\n\tgo p.run()\n\treturn nil\n}\n\nfunc (p *Service) run() {\n\tgo func() {\n\t\t<-time.After(time.Second * 2)\n\t\tstartFunc()\n\t}()\n}\n\nfunc (p *Service) Stop(s kservice.Service) error {\n\treturn nil\n}\n\nfunc GetServiceState() int {\n\tserviceStatus := -1\n\ts, err := GetService()\n\tif err == nil {\n\t\tstatus, _ := s.Status()\n\t\tserviceStatus = int(status)\n\t}\n\treturn serviceStatus\n}\n\nfunc GetService() (kservice.Service, error) {\n\toptions := make(kservice.KeyValue)\n\t// if kservice.ChosenSystem().String() == \"unix-systemv\" {\n\t// \toptions[\"SysvScript\"] = sysvScript\n\t// }\n\tif runtime.GOOS != \"windows\" {\n\t\treturn nil, fmt.Errorf(\"仅支持安装卸载windows服务\")\n\t}\n\n\tsvcConfig := &kservice.Config{\n\t\tName:        \"lucky\",\n\t\tDisplayName: \"lucky\",\n\t\tDescription: \"ipv6端口转发,反向代理,DDNS,网络唤醒...\",\n\t\tArguments:   []string{\"-p\", listenPort, \"-c\", configureFileURL},\n\t\tOption:      options,\n\t}\n\n\tprg := &Service{}\n\ts, err := kservice.New(prg, svcConfig)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn s, nil\n}\n\n// 卸载服务\nfunc UninstallService() error {\n\ts, err := GetService()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn s.Uninstall()\n}\n\n// 安装服务\nfunc InstallService() error {\n\ts, err := GetService()\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tstatus, err := s.Status()\n\tif err != nil && status == kservice.StatusUnknown {\n\t\t// 服务未知，创建服务\n\t\tif err = s.Install(); err == nil {\n\t\t\t//s.Start()\n\t\t\t//log.Println(\"安装 lucky 服务成功!\")\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"安装 lucky 服务失败:%s\", err.Error())\n\t}\n\treturn fmt.Errorf(\"lucky服务已安装,无需再次安装:下一次系统启动lucky会以服务形式启动.\")\n}\n\nfunc Stop() error {\n\ts, err := GetService()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.Stop()\n}\n\nfunc Start() error {\n\ts, err := GetService()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.Start()\n}\n\nfunc Restart() error {\n\ts, err := GetService()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.Restart()\n}\n"
  },
  {
    "path": "module/sslcertficate/conf/sslconf.go",
    "content": "package sslconf\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype SSLCertficate struct {\n\tKey        string      `json:\"Key\"`\n\tEnable     bool        `json:\"Enable\"`\n\tRemark     string      `json:\"Remark\"` //备注\n\tCertBase64 string      `json:\"CertBase64\"`\n\tKeyBase64  string      `json:\"KeyBase64\"`\n\tAddTime    string      `json:\"AddTime\"` //添加时间\n\tCertsInfo  *[]CertInfo `json:\"-\"`\n\t//---------------------\n\tCertificate *tls.Certificate `json:\"-\"`\n}\n\ntype CertInfo struct {\n\tDomains       []string\n\tNotBeforeTime string `json:\"NotBeforeTime\"` //time.Time\n\tNotAfterTime  string `json:\"NotAfterTime\"`  //time.Time\n}\n\nfunc (s *SSLCertficate) Init() error {\n\ttc, err := CreateX509KeyPairByBase64Str(s.CertBase64, s.KeyBase64)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"CreateX509KeyPairByBase64Str error:%s\", err.Error())\n\t}\n\tdomainsInfo, err := GetCertDomainInfo(tc)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"GetCertDomainInfo error:%s\", err.Error())\n\t}\n\ts.Certificate = tc\n\ts.CertsInfo = domainsInfo\n\treturn nil\n}\n\n// GetOnlyDomain 返回证书第一条域名\nfunc (s *SSLCertficate) GetFirstDomain() string {\n\tif s.CertsInfo == nil {\n\t\treturn \"\"\n\t}\n\tif len(*s.CertsInfo) <= 0 {\n\t\treturn \"\"\n\t}\n\tif len((*s.CertsInfo)[0].Domains) <= 0 {\n\t\treturn \"\"\n\t}\n\treturn (*s.CertsInfo)[0].Domains[0]\n}\n\nfunc CreateX509KeyPairByBase64Str(certBase64, keyBase64 string) (*tls.Certificate, error) {\n\tcrtBytes, err := base64.StdEncoding.DecodeString(certBase64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"certBase64 decode error:%s\", err.Error())\n\t}\n\n\tkeyBytes, err := base64.StdEncoding.DecodeString(keyBase64)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"keyBase64 decode error:%s\", err.Error())\n\t}\n\n\tcert, err := tls.X509KeyPair(crtBytes, keyBytes)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"create X509KeyPair error:%s\", err.Error())\n\t}\n\treturn &cert, nil\n}\n\nfunc GetCertDomainInfo(cert *tls.Certificate) (*[]CertInfo, error) {\n\tif cert == nil {\n\t\treturn nil, fmt.Errorf(\"cert == nil\")\n\t}\n\n\tvar res []CertInfo\n\n\tfor i := range cert.Certificate {\n\t\txx, err := x509.ParseCertificate(cert.Certificate[i])\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tds := GetDomainsTrimSpace(xx.DNSNames)\n\t\tif len(ds) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tinfo := CertInfo{Domains: ds, NotBeforeTime: xx.NotBefore.Format(\"2006-01-02 15:04:05\"), NotAfterTime: xx.NotAfter.Format(\"2006-01-02 15:04:05\")}\n\t\tres = append(res, info)\n\t}\n\treturn &res, nil\n\n}\n\n// 除去空域名\nfunc GetDomainsTrimSpace(dst []string) []string {\n\tvar res []string\n\tfor i := range dst {\n\t\tif strings.TrimSpace(dst[i]) == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, strings.TrimSpace(dst[i]))\n\t}\n\treturn res\n}\n"
  },
  {
    "path": "module/sslcertficate/ssl.go",
    "content": "package ssl\n\nfunc Init() {\n\tSSLCertficateListInit()\n}\n"
  },
  {
    "path": "module/sslcertficate/sslcertficate.go",
    "content": "package ssl\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\tsslconf \"github.com/gdy666/lucky/module/sslcertficate/conf\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\nfunc GetCertDomains(cert *tls.Certificate) []string {\n\tvar res []string\n\tif cert == nil {\n\t\treturn res\n\t}\n\tfor i := range cert.Certificate {\n\t\txx, err := x509.ParseCertificate(cert.Certificate[i])\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor j := range xx.DNSNames {\n\t\t\td := strings.TrimSpace(xx.DNSNames[j])\n\t\t\tif d == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tres = append(res, d)\n\t\t}\n\t}\n\treturn res\n}\n\nfunc GetDomainsStrByDomains(dst []string) string {\n\tvar res strings.Builder\n\tfor i := range dst {\n\t\td := strings.TrimSpace(dst[i])\n\t\tif d == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif res.Len() > 0 {\n\t\t\tres.WriteString(\",\")\n\t\t}\n\t\tres.WriteString(d)\n\t}\n\treturn res.String()\n}\n\n//---------------------------------\n\nfunc SSLCertficateListInit() {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar err error\n\tfor i := range config.Configure.SSLCertficateList {\n\t\terr = config.Configure.SSLCertficateList[i].Init()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"SSLCertficateListInit [%s]err:%s\", config.Configure.SSLCertficateList[i].Key, err.Error())\n\t\t}\n\t}\n}\n\nfunc GetSSLCertficateList() []sslconf.SSLCertficate {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar res []sslconf.SSLCertficate\n\tif config.Configure == nil {\n\t\treturn res\n\t}\n\n\tfor i := range config.Configure.SSLCertficateList {\n\t\tres = append(res, config.Configure.SSLCertficateList[i])\n\t}\n\treturn res\n}\n\nfunc SSLCertficateListAdd(s *sslconf.SSLCertficate) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\t//************\n\t//重复检测\n\tfor i := range config.Configure.SSLCertficateList {\n\t\tif config.Configure.SSLCertficateList[i].CertBase64 == s.CertBase64 {\n\t\t\treturn fmt.Errorf(\"绑定域名[%s]的相同证书已存在,请勿重复添加\", (*s.CertsInfo)[0].Domains[0])\n\t\t}\n\n\t\tif config.Configure.SSLCertficateList[i].GetFirstDomain() != \"\" &&\n\t\t\tconfig.Configure.SSLCertficateList[i].GetFirstDomain() == s.GetFirstDomain() {\n\t\t\treturn fmt.Errorf(\"绑定域名[%s]的证书已存在,如果要添加新证书请先手动删除旧证书\", (*s.CertsInfo)[0].Domains[0])\n\t\t}\n\t}\n\n\t//************\n\n\tif s.Key == \"\" {\n\t\ts.Key = stringsp.GetRandomString(8)\n\t}\n\ts.AddTime = time.Now().Format(\"2006-01-02 15:04:05\")\n\ts.Enable = true\n\tconfig.Configure.SSLCertficateList = append(config.Configure.SSLCertficateList, *s)\n\treturn config.Save()\n}\n\nfunc SSLCertficateListDelete(key string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tdeleteIndex := -1\n\n\tfor i := range config.Configure.SSLCertficateList {\n\t\tif config.Configure.SSLCertficateList[i].Key == key {\n\t\t\tdeleteIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif deleteIndex < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tconfig.Configure.SSLCertficateList = DeleteSSLCertficateListslice(config.Configure.SSLCertficateList, deleteIndex)\n\treturn config.Save()\n}\n\nfunc SSLCertficateEnable(key string, enable bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range config.Configure.SSLCertficateList {\n\t\tif config.Configure.SSLCertficateList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tconfig.Configure.SSLCertficateList[index].Enable = enable\n\treturn config.Save()\n}\n\nfunc SSLCertficateAlterRemark(key, remark string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range config.Configure.SSLCertficateList {\n\t\tif config.Configure.SSLCertficateList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tconfig.Configure.SSLCertficateList[index].Remark = remark\n\treturn config.Save()\n}\n\nfunc DeleteSSLCertficateListslice(a []sslconf.SSLCertficate, deleteIndex int) []sslconf.SSLCertficate {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n\nfunc GetValidSSLCertficateList() []tls.Certificate {\n\tvar res []tls.Certificate\n\tvar gdnRes []tls.Certificate\n\tsslListCache := GetSSLCertficateList()\n\tfor _, s := range sslListCache {\n\t\tif !s.Enable {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(s.GetFirstDomain(), \"*.\") {\n\t\t\tgdnRes = append(gdnRes, *s.Certificate)\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, *s.Certificate)\n\t}\n\tres = append(res, gdnRes...)\n\n\treturn res\n}\n"
  },
  {
    "path": "module/weblog/weblog.go",
    "content": "package weblog\n\nimport (\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n)\n\ntype LogItem struct {\n\tProxyKey   string\n\tClientIP   string\n\tLogContent string\n\tLogTime    string\n}\n\n// 2006-01-02 15:04:05\nfunc WebLogConvert(lg *logsbuffer.LogItem) any {\n\tl := LogItem{\n\t\tLogContent: lg.Content,\n\t\tLogTime:    time.Unix(lg.Timestamp/int64(time.Second), 0).Format(\"2006-01-02 15:04:05\")}\n\treturn l\n}\n"
  },
  {
    "path": "module/wol/client.go",
    "content": "package wol\n\nimport (\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\twolconf \"github.com/gdy666/lucky/module/wol/conf\"\n\twebsocketcontroller \"github.com/gdy666/lucky/thirdlib/gdylib/websocketController\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar wolClient *websocketcontroller.Controller\nvar wolClientMu sync.Mutex\n\nvar clientState string\nvar clientStateMsg string\n\nfunc init() {\n\twolconf.SetClientInitFunc(WOLClientInit)\n\twolconf.SetClientDisconnectFunc(ClientDisconnect)\n}\n\nfunc GetClientState() string {\n\treturn clientState\n}\n\nfunc GetClientStateMsg() string {\n\treturn clientStateMsg\n}\n\nfunc ClientDisconnect() {\n\twolClientMu.Lock()\n\tdefer wolClientMu.Unlock()\n\tif wolClient == nil {\n\t\treturn\n\t}\n\tgo wolClient.Disconnect()\n}\n\nfunc WOLClientInit(logger *logrus.Logger, c *wolconf.WOLClientConfigure) {\n\n\tif !c.Enable || c.ServerURL == \"\" {\n\t\treturn\n\t}\n\tclient := websocketcontroller.Controller{}\n\tclient.ReceiveMessageCallback = receiveMessageCallback\n\tclient.ClientDisconnectedCallback = clientStop\n\tclient.ClientReadyCallback = clientReady\n\tclient.Logs = logger\n\tclient.SetConnectRetry(true)\n\tclient.SetConnectRetryInterval(time.Second * 3)\n\tclient.SetReadDeadline(time.Second * 5)\n\tclient.SetServerURL(fmt.Sprintf(\"%s/api/wol/service\", c.ServerURL))\n\tclient.ScureSkipVerify(!wolconf.GetHttpClientSecureVerify())\n\tclient.SetSendMessageEncryptionFunc(SendMessageEncryptionFunc)\n\tclient.SetReceiveMessageDecryptionFunc(ReceiveMessageDecryptionFunc)\n\n\twolClientMu.Lock()\n\tdefer wolClientMu.Unlock()\n\twolClient = &client\n\n\tgo wolClient.Connect()\n}\n\nfunc receiveMessageCallback(c *websocketcontroller.Controller, msgBytes []byte) {\n\trawMsg, err := UnPack(msgBytes)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tswitch m := rawMsg.(type) {\n\tcase *LoginResp:\n\t\tgo handlerLoginResp(m, c)\n\tcase *SyncClientConfigure:\n\t\tgo synsClientConfigureToClient(m)\n\tcase *ReplyWakeUp:\n\t\t//fmt.Printf(\"中继唤醒包:%v\\n\", m)\n\t\tc.Logs.Infof(\"中继唤醒包:%v\\n\", m)\n\t\tgo wolconf.WakeOnLan(false, m.MacList, m.BroadcastIPs, m.Port, m.Repeat, nil)\n\tcase *ShutDown:\n\n\t\tgo func() {\n\t\t\tconf := GetWOLServiceConfigure()\n\t\t\tc.Logs.Infof(\"执行关机指令:%s\\n\", conf.Client.PowerOffCMD)\n\t\t\t//<-time.After(time.Second * 1)\n\t\t\tcmd := strings.Split(conf.Client.PowerOffCMD, \" \")\n\n\t\t\tvar output []byte\n\t\t\tvar err error\n\t\t\t//fileutils.OpenProgramOrFile(cmd)\n\t\t\tif len(cmd) == 1 {\n\t\t\t\toutput, err = exec.Command(cmd[0], []string{}...).Output()\n\t\t\t} else {\n\t\t\t\toutput, err = exec.Command(cmd[0], cmd[1:]...).Output()\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\tc.Logs.Errorf(\"执行关机指令[%s]出错:%s:%s\", conf.Client.PowerOffCMD, string(output), err.Error())\n\t\t\t}\n\n\t\t}()\n\tdefault:\n\t}\n}\n\nfunc clientStop(cc *websocketcontroller.Controller) {\n\t//fmt.Printf(\"客户端已断开服务器连接\\n\")\n\t//clientState = \"服务端已断开连接\"\n\t//clientStateMsg = \"\"\n}\n\nfunc clientReady(cc *websocketcontroller.Controller) {\n\tcc.Logs.Info(\"WOL 客户端已连接上服务端,发送登录消息...\")\n\tlogMsg := &Login{}\n\tlogMsg.WOLClientConfigure = wolconf.GetWOLServiceConfigure().Client\n\tlogMsg.ClientTimeStamp = time.Now().Unix()\n\tSendMessage(cc, logMsg)\n}\n\nfunc handlerLoginResp(m *LoginResp, c *websocketcontroller.Controller) {\n\tif m.Ret != 0 {\n\t\tc.Disconnect()\n\t\tc.Logs.Error(\"WOl 服务端登录失败:%s\", m.Msg)\n\t\tclientState = \"服务端登录失败\"\n\t\tclientStateMsg = m.Msg\n\t\treturn\n\t}\n\tc.Logs.Info(\"WOL服务端登录成功\")\n\tclientState = \"服务端登录成功\"\n\tclientStateMsg = \"\"\n\n}\n\nfunc synsClientConfigureToClient(m *SyncClientConfigure) {\n\t//fmt.Printf(\"处理来自服务端同步配置\\n\")\n\tconf := GetWOLServiceConfigure()\n\tconf.Client.Relay = m.Relay\n\tconf.Client.DeviceName = m.DeviceName\n\tconf.Client.Mac = m.Mac\n\tconf.Client.BroadcastIP = m.BroadcastIP\n\tconf.Client.Port = m.Port\n\tconf.Client.Repeat = m.Repeat\n\tconf.Client.UpdateTime = m.UpdateTime\n\tAlterWOLClientConfigure(&conf, logger, false)\n}\n"
  },
  {
    "path": "module/wol/conf/device.go",
    "content": "package wolconf\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/bemfa\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/blinker\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\tgowol \"github.com/gdy666/lucky/thirdlib/go-wol\"\n)\n\nvar httpClientSecureVerify bool\nvar httpClientTimeout int\n\nfunc GetHttpClientSecureVerify() bool {\n\treturn httpClientSecureVerify\n}\n\nfunc SetHttpClientSecureVerify(b bool) {\n\thttpClientSecureVerify = b\n}\n\nfunc SetHttpClientTimeout(t int) {\n\thttpClientTimeout = t\n}\n\ntype WOLDevice struct {\n\tKey          string\n\tDeviceName   string\n\tMacList      []string\n\tBroadcastIPs []string\n\tPort         int\n\tRelay        bool //交给中继设备发送\n\tRepeat       int  //重复发送次数\n\t//PowerOffCMD  string //关机指令\n\tUpdateTime int64 //配置更新时间\n\n\tIOT_DianDeng_Enable  bool //点灯科技开关\n\tIOT_DianDeng_AUTHKEY string\n\tdianDengClient       *blinker.Device\n\tdianDengClientMsg    string\n\n\tIOT_Bemfa_Enable    bool //巴法平台开关\n\tIOT_Bemfa_SecretKey string\n\tIOT_Bemfa_Topic     string\n\tbemfaClient         *bemfa.Device\n\tbemfaClientMsg      string\n\n\tshutDownFunc func(d *WOLDevice) int\n}\n\nfunc (d *WOLDevice) SetShutDownFunc(f func(d *WOLDevice) int) {\n\td.shutDownFunc = f\n}\n\nfunc (d *WOLDevice) GetDianDengClientState() string {\n\tif d.dianDengClient == nil {\n\t\tif d.dianDengClientMsg != \"\" {\n\t\t\treturn d.dianDengClientMsg\n\t\t}\n\t\treturn \"未设置\"\n\t}\n\n\tif d.dianDengClient.OnLine() {\n\t\treturn \"已连接\"\n\t}\n\n\treturn \"未连接\"\n}\n\nfunc (d *WOLDevice) GetBemfaClientState() string {\n\tif d.bemfaClient == nil {\n\t\tif d.bemfaClientMsg != \"\" {\n\t\t\treturn d.bemfaClientMsg\n\t\t}\n\t\treturn \"未设置\"\n\t}\n\n\tif d.bemfaClient.OnLine() {\n\t\treturn \"已连接\"\n\t}\n\n\treturn \"未连接\"\n}\n\nfunc (d *WOLDevice) BemfaClientStart() {\n\tif !d.IOT_Bemfa_Enable || d.IOT_Bemfa_SecretKey == \"\" || d.IOT_Bemfa_Topic == \"\" {\n\t\treturn\n\t}\n\n\tbemfaClient, err := bemfa.GetBemfaDevice(d.IOT_Bemfa_SecretKey, httpClientSecureVerify, httpClientTimeout)\n\tif err != nil {\n\t\t//fmt.Printf(\"FUCK:%s\\n\", err.Error())\n\t\td.SetBemfaClientMsg(err.Error())\n\t}\n\tif bemfaClient != nil {\n\t\td.SetBemfaClientMsg(\"\")\n\t\tbemfaClient.ResigsterPowerChangeCallbackFunc(d.IOT_Bemfa_Topic, d.GetIdentKey(), d.powerChange)\n\t\td.bemfaClient = bemfaClient\n\t}\n}\n\nfunc (d *WOLDevice) BemfaClientStop() {\n\tif d.bemfaClient == nil {\n\t\treturn\n\t}\n\tbemfa.UnRegisterPowerChangeCallback(d.bemfaClient, d.IOT_Bemfa_Topic, d.GetIdentKey())\n\td.bemfaClient = nil\n}\n\nfunc (d *WOLDevice) SetBemfaClientMsg(msg string) {\n\td.bemfaClientMsg = msg\n}\n\nfunc (d *WOLDevice) GetBemfaClient() *bemfa.Device {\n\treturn d.bemfaClient\n}\n\nfunc (d *WOLDevice) SetBemfaClient(dd *bemfa.Device) {\n\td.bemfaClient = dd\n}\n\n//--------------------------\n\nfunc (d *WOLDevice) DianDengClientStart() {\n\tif !d.IOT_DianDeng_Enable || d.IOT_DianDeng_AUTHKEY == \"\" {\n\t\treturn\n\t}\n\n\tblinkerClient, err := blinker.GetBlinkerDevice(d.IOT_DianDeng_AUTHKEY, httpClientSecureVerify, httpClientTimeout)\n\tif err != nil {\n\t\t//fmt.Printf(\"FUCK:%s\\n\", err.Error())\n\t\td.SetDianDengClientMsg(err.Error())\n\t}\n\tif blinkerClient != nil {\n\t\td.SetDianDengClientMsg(\"\")\n\t\tblinkerClient.RegisterPowerChangeCallbackFunc(d.GetIdentKey(), d.powerChange)\n\t\td.dianDengClient = blinkerClient\n\t}\n}\n\nfunc (d *WOLDevice) DianDengClientStop() {\n\tif d.dianDengClient == nil {\n\t\treturn\n\t}\n\tblinker.UnRegisterPowerChangeCallback(d.dianDengClient, d.GetIdentKey())\n\td.dianDengClient = nil\n}\n\nfunc (d *WOLDevice) powerChange(state string) {\n\tlog.Printf(\"WOLDevice 语音助手控制设备[%s]状态:%s\\n\", d.DeviceName, state)\n\tif state == \"on\" || state == \"true\" {\n\t\td.WakeUp(nil)\n\t} else {\n\t\tif d.shutDownFunc != nil {\n\t\t\td.shutDownFunc(d)\n\t\t}\n\t}\n}\n\nfunc (d *WOLDevice) SetDianDengClientMsg(msg string) {\n\td.dianDengClientMsg = msg\n}\n\nfunc (d *WOLDevice) GetDianDengClient() *blinker.Device {\n\treturn d.dianDengClient\n}\n\nfunc (d *WOLDevice) SetDianDengClient(dd *blinker.Device) {\n\td.dianDengClient = dd\n}\n\nfunc (d *WOLDevice) GetIdentKey() string {\n\treturn fmt.Sprintf(\"WOL:%s\", d.Key)\n}\n\nfunc (d *WOLDevice) WakeUp(finishedCallback func(relay bool, macList []string, broadcastIps []string, port, repeat int)) error {\n\treturn WakeOnLan(d.Relay, d.MacList, d.BroadcastIPs, d.Port, d.Repeat, finishedCallback)\n}\n\nfunc WakeOnLan(relay bool, macList []string, broadcastIps []string, port, repeat int,\n\tfinishedCallback func(relay bool, macList []string, broadcastIps []string, port, repeat int),\n) (err error) {\n\tdefer func() {\n\t\tif finishedCallback != nil {\n\t\t\tfinishedCallback(relay, macList, broadcastIps, port, repeat)\n\t\t}\n\t}()\n\tglobalBroadcastList := netinterfaces.GetGlobalIPv4BroadcastList()\n\tmatchCount := 0\n\n\tdefer func() {\n\t\tif matchCount <= 0 {\n\t\t\terr = fmt.Errorf(\"找不到匹配的局域网广播IP,未能发送唤醒指令\")\n\t\t}\n\t}()\n\n\tif len(broadcastIps) > 0 {\n\t\tfor _, bcst := range broadcastIps {\n\t\t\tbcstOk := stringsp.StrIsInList(bcst, globalBroadcastList)\n\t\t\tif !bcstOk {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmatchCount++\n\t\t\tfor _, mac := range macList {\n\t\t\t\tgowol.WakeUpRepeat(mac, bcst, \"\", port, repeat)\n\t\t\t}\n\n\t\t}\n\t\treturn\n\t}\n\n\tfor _, bcst := range globalBroadcastList {\n\t\tmatchCount++\n\t\tfor _, mac := range macList {\n\t\t\tgowol.WakeUpRepeat(mac, bcst, \"\", port, repeat)\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "module/wol/conf/service.go",
    "content": "package wolconf\n\nimport (\n\t\"sync\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype WOLServerConfigure struct {\n\tEnable bool\n\tToken  string\n}\n\ntype WOLClientConfigure struct {\n\tEnable      bool   //开关\n\tServerURL   string //服务器地址\n\tToken       string //验证token\n\tRelay       bool   //中继唤醒包\n\tKey         string\n\tDeviceName  string //设备名称\n\tMac         string //网卡物理地址\n\tBroadcastIP string //广播地址\n\tPort        int    //端口\n\tRepeat      int    //重复次数\n\tPowerOffCMD string //关机指令\n\tUpdateTime  int64  //配置更新时间\n\n}\n\ntype WOLServiceConfigure struct {\n\tServer WOLServerConfigure\n\tClient WOLClientConfigure\n}\n\nvar serviceConfigure *WOLServiceConfigure\nvar serviceConfigureMu sync.RWMutex\nvar clientInitFunc func(logger *logrus.Logger, c *WOLClientConfigure)\nvar clientDisconnectFunc func()\n\nfunc SetClientInitFunc(f func(logger *logrus.Logger, c *WOLClientConfigure)) {\n\tclientInitFunc = f\n}\n\nfunc SetClientDisconnectFunc(f func()) {\n\tclientDisconnectFunc = f\n}\n\nfunc GetWOLServiceConfigure() WOLServiceConfigure {\n\tserviceConfigureMu.RLock()\n\tdefer serviceConfigureMu.RUnlock()\n\tconf := *serviceConfigure\n\treturn conf\n}\n\nfunc StoreWOLServiceConfigure(con *WOLServiceConfigure) {\n\tserviceConfigureMu.Lock()\n\tdefer serviceConfigureMu.Unlock()\n\tserviceConfigure = con\n}\n\nfunc (c *WOLClientConfigure) Init(logger *logrus.Logger) {\n\tif clientInitFunc != nil {\n\t\tclientInitFunc(logger, c)\n\t}\n}\n\nfunc (c *WOLClientConfigure) ClientDisconnect() {\n\tif clientDisconnectFunc != nil {\n\t\tclientDisconnectFunc()\n\t}\n}\n"
  },
  {
    "path": "module/wol/ctl.go",
    "content": "package wol\n\nimport (\n\t\"encoding/base64\"\n\n\tjsonMsg \"github.com/gdy666/lucky/thirdlib/fatedier/golib/json\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n)\n\ntype Message = jsonMsg.Message\n\nvar (\n\tmsgCtl *jsonMsg.MsgCtl\n)\nvar msgkeyBytes = []byte(\"lucky666\")\n\nfunc init() {\n\tmsgCtl = jsonMsg.NewMsgCtl()\n\tfor typeByte, msg := range msgTypeMap {\n\t\tmsgCtl.RegisterMsg(typeByte, msg)\n\t}\n}\n\nfunc SendMessageEncryptionFunc(messageBytesPtr []byte) ([]byte, error) {\n\touts, _ := stringsp.DesEncrypt(messageBytesPtr, msgkeyBytes) //加密\n\tbuf := make([]byte, base64.StdEncoding.EncodedLen(len(outs)))\n\tbase64.StdEncoding.Encode(buf, outs)\n\treturn buf, nil\n}\n\n// receiveMessageDecryptionFunc 自定义接收消息解密函数\nfunc ReceiveMessageDecryptionFunc(messageBytes []byte) ([]byte, error) {\n\trawEncryptMsgBytes, err := base64.StdEncoding.DecodeString(string(messageBytes))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trawMsgBytes, err := stringsp.DesDecrypt(rawEncryptMsgBytes, msgkeyBytes)\n\treturn rawMsgBytes, err\n}\n"
  },
  {
    "path": "module/wol/device.go",
    "content": "package wol\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\twolconf \"github.com/gdy666/lucky/module/wol/conf\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\twebsocketcontroller \"github.com/gdy666/lucky/thirdlib/gdylib/websocketController\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar logger *logrus.Logger\n\nfunc WOLClientConfigureInit(l *logrus.Logger) {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\n\twolconf.StoreWOLServiceConfigure(&config.Configure.WOLServiceConfigure)\n\twolconf.SetHttpClientSecureVerify(config.Configure.BaseConfigure.HttpClientSecureVerify)\n\twolconf.SetHttpClientTimeout(config.Configure.BaseConfigure.HttpClientTimeout)\n\tconfig.Configure.WOLServiceConfigure.Client.Init(l)\n\tlogger = l\n}\n\n//----------------------------------------\n\nfunc GetWOLServiceConfigure() wolconf.WOLServiceConfigure {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tconf := config.Configure.WOLServiceConfigure\n\treturn conf\n}\n\nfunc AlterWOLClientConfigure(conf *wolconf.WOLServiceConfigure, logger *logrus.Logger, updateTimeOpt bool) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tif conf.Client.Key == \"\" {\n\t\tconf.Client.Key = fmt.Sprintf(\"Client_%s\", stringsp.GetRandomString(16))\n\t}\n\n\t// if programConfigure.WOLClientConfigure.Client != nil {\n\t// \tgo programConfigure.WOLClientConfigure.Client.Disconnect()\n\t// }\n\tif updateTimeOpt {\n\t\tconfig.Configure.WOLServiceConfigure.Client.ClientDisconnect()\n\t}\n\n\tconf.Client.ServerURL = strings.TrimSpace(conf.Client.ServerURL)\n\n\tconf.Client.ServerURL = handlerWOLServerURL(conf.Client.ServerURL)\n\n\tconf.Client.Token = strings.TrimSpace(conf.Client.Token)\n\tconf.Client.DeviceName = strings.TrimSpace(conf.Client.DeviceName)\n\tconf.Client.Mac = strings.TrimSpace(conf.Client.Mac)\n\tconf.Client.BroadcastIP = strings.TrimSpace(conf.Client.BroadcastIP)\n\tconf.Client.PowerOffCMD = strings.TrimSpace(conf.Client.PowerOffCMD)\n\n\tif err := CheckWOLServiceConfigure(conf); err != nil {\n\t\treturn err\n\t}\n\tif updateTimeOpt {\n\t\tconf.Client.UpdateTime = time.Now().Unix()\n\t}\n\n\tconfig.Configure.WOLServiceConfigure = *conf\n\tif updateTimeOpt {\n\t\tconfig.Configure.WOLServiceConfigure.Client.Init(logger)\n\t}\n\n\twolconf.StoreWOLServiceConfigure(&config.Configure.WOLServiceConfigure)\n\treturn config.Save()\n}\n\nfunc handlerWOLServerURL(l string) string {\n\tif !strings.HasPrefix(l, \"http\") && !strings.HasPrefix(l, \"ws\") {\n\t\tl = \"ws://\" + l\n\t}\n\n\tu, e := url.Parse(l)\n\tif e != nil {\n\t\treturn \"\"\n\t}\n\tscheme := \"\"\n\tswitch u.Scheme {\n\tcase \"http\":\n\t\tscheme = \"ws\"\n\tcase \"https\":\n\t\tscheme = \"wss\"\n\tcase \"ws\":\n\t\tscheme = \"ws\"\n\tcase \"wss\":\n\t\tscheme = \"wss\"\n\tdefault:\n\t\tscheme = \"未知协议\"\n\t}\n\tl = fmt.Sprintf(\"%s://%s\", scheme, u.Host)\n\treturn l\n}\n\nfunc CheckWOLServiceConfigure(conf *wolconf.WOLServiceConfigure) error {\n\n\tif conf.Client.Enable && strings.TrimSpace(conf.Client.ServerURL) == \"\" {\n\t\treturn fmt.Errorf(\"客户端设置 服务端地址不能为空\")\n\t}\n\n\tif conf.Client.Enable && strings.TrimSpace(conf.Client.Token) == \"\" {\n\t\treturn fmt.Errorf(\"客户端设置 Token不能为空\")\n\t}\n\n\tif conf.Client.Enable && strings.TrimSpace(conf.Client.PowerOffCMD) == \"\" {\n\t\treturn fmt.Errorf(\"客户端设置 关机指令不能为空\")\n\t}\n\n\t//广播地址,设备名称,关机指令可以为空\n\t// if strings.TrimSpace(conf.DeviceName) == \"\" {\n\t// \treturn fmt.Errorf(\"设备名称不能为空\")\n\t// }\n\n\tif conf.Client.Enable && strings.TrimSpace(conf.Client.Mac) == \"\" {\n\t\treturn fmt.Errorf(\"客户端设置 物理网卡地址不能为空\")\n\t}\n\n\tif conf.Server.Enable && strings.TrimSpace(conf.Server.Token) == \"\" {\n\t\treturn fmt.Errorf(\"服务端设置 Token不能为空\")\n\t}\n\n\treturn nil\n}\n\nfunc GetWOLDeviceByKey(key string) *wolconf.WOLDevice {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tif config.Configure.WOLDeviceList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index < 0 {\n\t\treturn nil\n\t}\n\tdevice := config.Configure.WOLDeviceList[index]\n\treturn &device\n}\n\nfunc GetWOLDeviceByMac(mac string) *wolconf.WOLDevice {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tif config.Configure.WOLDeviceList[i].MacList[0] == mac && len(config.Configure.WOLDeviceList[i].MacList) == 1 {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index < 0 {\n\t\treturn nil\n\t}\n\tdevice := config.Configure.WOLDeviceList[index]\n\treturn &device\n}\n\nfunc GetWOLDeviceList() []wolconf.WOLDevice {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tvar res []wolconf.WOLDevice\n\tif config.Configure == nil {\n\t\treturn res\n\t}\n\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tres = append(res, config.Configure.WOLDeviceList[i])\n\t}\n\treturn res\n}\n\nfunc GetDeviceStateDetail(d *wolconf.WOLDevice) (state string, onlineMacList []string) {\n\n\t// clientControllerMap.Range(func(key any, val any) bool {\n\t// \tfmt.Printf(\"%v %v\\n\", key, val)\n\t// \treturn true\n\t// })\n\n\tif strings.HasPrefix(d.Key, \"Client_\") {\n\t\tc, ok := clientControllerMap.Load(d.Key)\n\t\tif ok {\n\t\t\tdeviceName := \"未设置主机名\"\n\t\t\tdn, ok := c.(*websocketcontroller.Controller).GetExtData(\"deviceName\")\n\t\t\tif ok {\n\t\t\t\tdeviceName = dn.(string)\n\t\t\t}\n\t\t\tremoteAddr := strings.Split(c.(*websocketcontroller.Controller).GetRemoteAddr(), \":\")[0]\n\t\t\tonlineMacList = append(onlineMacList, fmt.Sprintf(\"主机名:%s [ %s ]  网卡物理地址:%s\", deviceName, remoteAddr, d.MacList[0]))\n\t\t\tstate = \"在线\"\n\n\t\t} else {\n\t\t\tstate = \"离线\"\n\t\t}\n\n\t\treturn\n\t}\n\n\tfor i := range d.MacList {\n\t\tc, ok := clientControllerMap.Load(d.MacList[i])\n\t\tif ok {\n\t\t\tdeviceName := \"未设置主机名\"\n\t\t\tdn, ok := c.(*websocketcontroller.Controller).GetExtData(\"deviceName\")\n\t\t\tif ok {\n\t\t\t\tdeviceName = dn.(string)\n\t\t\t}\n\t\t\tremoteAddr := strings.Split(c.(*websocketcontroller.Controller).GetRemoteAddr(), \":\")[0]\n\t\t\tonlineMacList = append(onlineMacList, fmt.Sprintf(\"主机名:%s [ %s ] 网卡物理地址:%s\", deviceName, remoteAddr, d.MacList[i]))\n\t\t}\n\t}\n\n\tif len(onlineMacList) == 0 { //离线\n\t\t// if len(d.MacList) == 1 {\n\t\t// \tstate = \"离线\"\n\t\t// } else {\n\t\t// \tstate = \"全部离线\"\n\t\t// }\n\t\tstate = \"未知\"\n\t\treturn\n\t}\n\n\tif len(onlineMacList) == len(d.MacList) {\n\t\tif len(d.MacList) == 1 {\n\t\t\tstate = \"在线\"\n\t\t} else {\n\t\t\tstate = \"全部在线\"\n\t\t}\n\t\treturn\n\t}\n\n\tstate = \"部分在线\"\n\n\treturn\n}\n\nfunc WOLDeviceListAdd(d *wolconf.WOLDevice) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\n\tif d.Key == \"\" {\n\t\td.Key = stringsp.GetRandomString(8)\n\t}\n\tif d.UpdateTime == 0 {\n\t\td.UpdateTime = time.Now().Unix()\n\t}\n\n\td.SetShutDownFunc(ExecShutDown)\n\tconfig.Configure.WOLDeviceList = append(config.Configure.WOLDeviceList, *d)\n\n\tlistLength := len(config.Configure.WOLDeviceList)\n\tgo config.Configure.WOLDeviceList[listLength-1].DianDengClientStart()\n\tgo config.Configure.WOLDeviceList[listLength-1].BemfaClientStart()\n\n\treturn config.Save()\n}\n\nfunc WOLDeviceListAlter(d *wolconf.WOLDevice) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tif config.Configure.WOLDeviceList[i].Key == d.Key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", d.Key)\n\t}\n\td.UpdateTime = time.Now().Unix()\n\n\tconfig.Configure.WOLDeviceList[index].DianDengClientStop()\n\tconfig.Configure.WOLDeviceList[index].BemfaClientStop()\n\t//go d.DianDengClientStart()\n\td.SetShutDownFunc(ExecShutDown)\n\n\tconfig.Configure.WOLDeviceList[index] = *d\n\tgo config.Configure.WOLDeviceList[index].DianDengClientStart()\n\tgo config.Configure.WOLDeviceList[index].BemfaClientStart()\n\treturn config.Save()\n}\n\nfunc WOLDeviceListReplace(key string, d *wolconf.WOLDevice) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tindex := -1\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tif config.Configure.WOLDeviceList[i].Key == key {\n\t\t\tindex = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif index < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", d.Key)\n\t}\n\tconfig.Configure.WOLDeviceList[index] = *d\n\treturn config.Save()\n}\n\nfunc WOLDeviceListDelete(key string) error {\n\tconfig.ConfigureMutex.Lock()\n\tdefer config.ConfigureMutex.Unlock()\n\tdeleteIndex := -1\n\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tif config.Configure.WOLDeviceList[i].Key == key {\n\t\t\tdeleteIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif deleteIndex < 0 {\n\t\treturn fmt.Errorf(\"key:%s 不存在\", key)\n\t}\n\tconfig.Configure.WOLDeviceList[deleteIndex].DianDengClientStop()\n\tconfig.Configure.WOLDeviceList[deleteIndex].BemfaClientStop()\n\tconfig.Configure.WOLDeviceList = DeleteWOLDeviceListslice(config.Configure.WOLDeviceList, deleteIndex)\n\treturn config.Save()\n}\n\nfunc DeleteWOLDeviceListslice(a []wolconf.WOLDevice, deleteIndex int) []wolconf.WOLDevice {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "module/wol/httpapi/api.go",
    "content": "package wolhttpapi\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/module/service\"\n\t\"github.com/gdy666/lucky/module/wol\"\n\twolconf \"github.com/gdy666/lucky/module/wol/conf\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n\twebsocketcontroller \"github.com/gdy666/lucky/thirdlib/gdylib/websocketController\"\n\t\"github.com/gin-gonic/gin\"\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar logger *logrus.Logger\n\nfunc SetLogger(l *logrus.Logger) {\n\tlogger = l\n}\n\n// RegisterAPI 注册相关API\nfunc RegisterAPI(r *gin.Engine, authorized *gin.RouterGroup) {\n\tauthorized.POST(\"/api/wol/device\", AddWOLDevice)\n\tauthorized.GET(\"/api/wol/device/wakeup\", WOLDeviceWakeUp)\n\tauthorized.GET(\"/api/wol/device/shutdown\", WOLDeviceShutDown)\n\tauthorized.GET(\"/api/wol/devices\", GetWOLDeviceList)\n\tauthorized.PUT(\"/api/wol/device\", AlterWOLDevice)\n\tauthorized.DELETE(\"/api/wol/device\", DeleteWOLDevice)\n\tauthorized.GET(\"/api/wol/service/configure\", WOLServiceConfigure)\n\tauthorized.PUT(\"/api/wol/service/configure\", WOLAlterServiceConfigure)\n\tauthorized.GET(\"api/wol/service/getipv4interface\", GetIPv4Interface)\n\tr.GET(\"/api/wol/service\", WOLWebsocketHandler)\n}\n\nvar upgrader = websocket.Upgrader{\n\tReadBufferSize:  4096 * 1,\n\tWriteBufferSize: 4096 * 1,\n\tCheckOrigin: func(r *http.Request) bool { //允许跨域\n\t\treturn true\n\t},\n}\n\nfunc AddWOLDevice(c *gin.Context) {\n\tvar requestObj wolconf.WOLDevice\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkWolDevice(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加网络唤醒设备出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = wol.WOLDeviceListAdd(&requestObj)\n\tif err != nil {\n\t\tlog.Printf(\"config.WOLDeviceListAdd error:%s\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加网络唤醒设备出错!:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\ntype DeviceInfo struct {\n\twolconf.WOLDevice\n\tState               string\n\tOnlineMacList       []string\n\tDianDengClientState string\n\tBemfaClientState    string\n}\n\nfunc GetWOLDeviceList(c *gin.Context) {\n\n\trawlist := wol.GetWOLDeviceList()\n\n\tvar list []DeviceInfo\n\tfor i := range rawlist {\n\t\tstate, onlineMacList := wol.GetDeviceStateDetail(&rawlist[i])\n\t\td := DeviceInfo{}\n\t\td.WOLDevice = rawlist[i]\n\t\td.State = state\n\t\td.OnlineMacList = onlineMacList\n\t\td.DianDengClientState = rawlist[i].GetDianDengClientState()\n\t\td.BemfaClientState = rawlist[i].GetBemfaClientState()\n\t\tlist = append(list, d)\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": list})\n}\n\nfunc AlterWOLDevice(c *gin.Context) {\n\tvar requestObj wolconf.WOLDevice\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkWolDevice(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"修改网络唤醒设备出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = wol.WOLDeviceListAlter(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"修改网络唤醒设备配置失败:%s\", err.Error())})\n\t\treturn\n\t}\n\n\twol.SyncClientConfigureToClient(&requestObj)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc DeleteWOLDevice(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\terr := wol.WOLDeviceListDelete(key)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"删除网络唤醒设备失败:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc WOLDeviceWakeUp(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\n\tdevice := wol.GetWOLDeviceByKey(key)\n\tif device == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"找不到Key对应的设备,唤醒失败\"})\n\t\treturn\n\t}\n\terr := device.WakeUp(wol.WakeUpFinishedCallback)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"唤醒失败\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc WOLDeviceShutDown(c *gin.Context) {\n\n\tkey := c.Query(\"key\")\n\tdevice := wol.GetWOLDeviceByKey(key)\n\tif device == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"找不到Key对应的设备,发送执行关机指令失败\"})\n\t\treturn\n\t}\n\n\tcount := wol.ExecShutDown(device)\n\tif count == 0 {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"没有设备在线,未能发送关机指令\"})\n\t\treturn\n\t}\n\n\tc.SecureJSON(http.StatusOK, gin.H{\"ret\": 0, \"successCount\": count})\n\n}\n\nfunc checkWolDevice(d *wolconf.WOLDevice) error {\n\n\tif len(d.MacList) <= 0 {\n\t\treturn fmt.Errorf(\"网卡MAC不能为空\")\n\t}\n\n\tif strings.HasPrefix(d.Key, \"Client_\") {\n\t\tif len(d.MacList) > 1 {\n\t\t\treturn fmt.Errorf(\"与客户端关联的设备(由客户端连接同步)只能填写一个mac\")\n\t\t}\n\t\tif len(d.BroadcastIPs) > 1 {\n\t\t\treturn fmt.Errorf(\"与客户端关联的设备(由客户端连接同步)只能填写一个广播地址\")\n\t\t}\n\t}\n\n\tif d.IOT_Bemfa_Enable {\n\t\tif strings.TrimSpace(d.IOT_Bemfa_SecretKey) == \"\" {\n\t\t\treturn fmt.Errorf(\"巴法云私钥不能为空\")\n\t\t}\n\n\t\tif strings.TrimSpace(d.IOT_Bemfa_Topic) == \"\" {\n\t\t\treturn fmt.Errorf(\"巴法云主题不能为空\")\n\t\t}\n\n\t\tif !strings.HasSuffix(d.IOT_Bemfa_Topic, \"001\") {\n\t\t\treturn fmt.Errorf(\"巴法云主题需要以001结尾,表示插座类型\")\n\t\t}\n\n\t}\n\n\tif d.IOT_DianDeng_Enable {\n\t\tif strings.TrimSpace(d.IOT_DianDeng_AUTHKEY) == \"\" {\n\t\t\treturn fmt.Errorf(\"点灯科技设备密钥不能为空\")\n\t\t}\n\t}\n\n\tif d.Port <= 0 || d.Port > 065535 {\n\t\td.Port = 9\n\t}\n\n\tif d.Repeat <= 0 || d.Repeat > 10 {\n\t\td.Repeat = 5\n\t}\n\treturn nil\n}\n\nfunc WOLServiceConfigure(c *gin.Context) {\n\tconf := wol.GetWOLServiceConfigure()\n\n\tc.JSON(http.StatusOK, gin.H{\n\t\t\"ret\":            0,\n\t\t\"configure\":      conf,\n\t\t\"ClientState\":    wol.GetClientState(),\n\t\t\"ClientStateMsg\": wol.GetClientStateMsg(),\n\t\t\"serviceStatus\":  service.GetServiceState()})\n}\n\nfunc GetIPv4Interface(c *gin.Context) {\n\tinterfacceList, err := netinterfaces.GetIPv4NetInterfaceInfoList()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"获取IPv4网络信息列表出错:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": interfacceList})\n}\n\nfunc WOLAlterServiceConfigure(c *gin.Context) {\n\tvar conf wolconf.WOLServiceConfigure\n\terr := c.BindJSON(&conf)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\terr = wol.AlterWOLClientConfigure(&conf, logger, true)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"保存配置出错:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"configure\": conf})\n}\n\nfunc WOLWebsocketHandler(c *gin.Context) {\n\tif !wol.GetWOLServiceConfigure().Server.Enable {\n\t\tc.Abort()\n\t\treturn\n\t}\n\tconn, err := upgrader.Upgrade(c.Writer, c.Request, nil)\n\tif err != nil {\n\t\tlogger.Errorf(\"WOLWebsocketHandler upgrader.Upgrade :error:%s\", err.Error())\n\t\tc.Abort()\n\t\treturn\n\t}\n\n\twsc := new(websocketcontroller.Controller)\n\twsc.Logs = logger\n\twsc.ReceiveMessageCallback = wol.ReceiveMsgFromWOLClient\n\twsc.ClientDisconnectedCallback = wol.WOLClientDisconnect\n\twsc.ClientReadyCallback = wol.WOLClientConnected\n\twsc.SetSendMessageEncryptionFunc(wol.SendMessageEncryptionFunc)\n\twsc.SetReceiveMessageDecryptionFunc(wol.ReceiveMessageDecryptionFunc)\n\twsc.ConnectReady(conn)\n\n}\n"
  },
  {
    "path": "module/wol/module.go",
    "content": "package wol\n\nimport (\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nfunc Init(log *logrus.Logger) {\n\tWOLClientConfigureInit(log)\n\tdeviceInit(log)\n}\n\n// deviceInit 暂时用于第三方物联网平台部分初始化\nfunc deviceInit(log *logrus.Logger) {\n\tconfig.ConfigureMutex.RLock()\n\tdefer config.ConfigureMutex.RUnlock()\n\tfor i := range config.Configure.WOLDeviceList {\n\t\tconfig.Configure.WOLDeviceList[i].SetShutDownFunc(ExecShutDown)\n\t\tgo config.Configure.WOLDeviceList[i].DianDengClientStart()\n\t\tgo config.Configure.WOLDeviceList[i].BemfaClientStart()\n\t}\n\n}\n"
  },
  {
    "path": "module/wol/msg.go",
    "content": "package wol\n\nimport (\n\twolconf \"github.com/gdy666/lucky/module/wol/conf\"\n)\n\nconst (\n\tTypeLogin               = '0'\n\tTypeLoginResp           = '1'\n\tTypeSyncClientConfigure = '2'\n\tTypeReplyWakeUp         = '3'\n\tTypeShutDown            = '4'\n)\n\nvar (\n\tmsgTypeMap = map[byte]interface{}{\n\t\tTypeLogin:               Login{},\n\t\tTypeLoginResp:           LoginResp{},\n\t\tTypeSyncClientConfigure: SyncClientConfigure{},\n\t\tTypeReplyWakeUp:         ReplyWakeUp{},\n\t\tTypeShutDown:            ShutDown{},\n\t}\n)\n\ntype Login struct {\n\twolconf.WOLClientConfigure\n\tClientTimeStamp int64\n}\n\n// 服务器发送给客户端,登录认证反馈 ,ret 为0成功,其它失败\ntype LoginResp struct {\n\tRet int //\n\tMsg string\n}\n\ntype SyncClientConfigure struct {\n\twolconf.WOLClientConfigure\n}\n\ntype ReplyWakeUp struct {\n\tMacList      []string\n\tBroadcastIPs []string\n\tPort         int\n\tRepeat       int\n}\n\ntype ShutDown struct {\n}\n"
  },
  {
    "path": "module/wol/service.go",
    "content": "package wol\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\twolconf \"github.com/gdy666/lucky/module/wol/conf\"\n\twebsocketcontroller \"github.com/gdy666/lucky/thirdlib/gdylib/websocketController\"\n)\n\nvar clientControllerMap sync.Map\n\nfunc ReceiveMsgFromWOLClient(c *websocketcontroller.Controller, msgBytes []byte) {\n\n\trawMsg, err := UnPack(msgBytes)\n\tif err != nil {\n\t\treturn\n\t}\n\tswitch m := rawMsg.(type) {\n\tcase *Login:\n\t\tgo hanlderWOLDeviceClientLogin(m, c)\n\tdefault:\n\t\tfmt.Printf(\"未知消息类型\\n\")\n\t}\n}\n\nfunc SyncClientConfigureToClient(d *wolconf.WOLDevice) {\n\n\twc, wcOk := clientControllerMap.Load(d.Key)\n\tif !wcOk {\n\t\treturn\n\t}\n\n\tsyncMsg := &SyncClientConfigure{}\n\tsyncMsg.DeviceName = d.DeviceName\n\tsyncMsg.BroadcastIP = d.BroadcastIPs[0]\n\tsyncMsg.Mac = d.MacList[0]\n\tsyncMsg.Port = d.Port\n\tsyncMsg.Relay = d.Relay\n\tsyncMsg.Repeat = d.Repeat\n\tsyncMsg.UpdateTime = d.UpdateTime\n\tSendMessage(wc.(*websocketcontroller.Controller), syncMsg)\n}\n\nfunc WOLClientDisconnect(c *websocketcontroller.Controller) {\n\n\tmac, macOk := c.GetExtData(\"mac\")\n\tif macOk {\n\t\tclientControllerMap.Delete(mac)\n\t}\n\n\tkey, keyOk := c.GetExtData(\"key\")\n\tif keyOk {\n\t\tclientControllerMap.Delete(key)\n\t}\n}\n\nfunc WOLClientConnected(c *websocketcontroller.Controller) {\n\t//fmt.Printf(\"WOLClientConnected \\n\")\n}\n\nfunc WakeUpFinishedCallback(reply bool, macList []string, broadcastIps []string, port, repeat int) {\n\tif !reply {\n\t\treturn\n\t}\n\tmsg := &ReplyWakeUp{MacList: macList, BroadcastIPs: broadcastIps, Port: port, Repeat: repeat}\n\tdevicesList := GetWOLDeviceList()\n\tfor _, d := range devicesList {\n\t\tif !d.Relay {\n\t\t\tcontinue\n\t\t}\n\t\twc, wcOk := clientControllerMap.Load(d.Key)\n\t\tif !wcOk {\n\t\t\tcontinue\n\t\t}\n\t\tSendMessage(wc.(*websocketcontroller.Controller), msg)\n\t}\n}\n\nfunc hanlderWOLDeviceClientLogin(m *Login, c *websocketcontroller.Controller) {\n\tmsg := &LoginResp{}\n\tdefer func() {\n\t\tif msg.Ret != 0 {\n\t\t\treturn\n\t\t}\n\t\tc.StoreExtData(\"mac\", m.Mac)\n\t\tc.StoreExtData(\"key\", m.Key)\n\t\tc.StoreExtData(\"deviceName\", m.DeviceName)\n\t\tclientControllerMap.Store(m.Key, c)\n\t\tclientControllerMap.Store(m.Mac, c)\n\t}()\n\n\tnowTimeStamp := time.Now().Unix()\n\n\tif nowTimeStamp-m.ClientTimeStamp > 30 || m.ClientTimeStamp-nowTimeStamp > 30 {\n\t\tmsg.Msg = \"客户端和服务器端时间相差大于30秒,请先校对时间\"\n\t\tmsg.Ret = 1\n\t\tSendMessage(c, msg)\n\t\treturn\n\t}\n\n\tif m.Token != GetWOLServiceConfigure().Server.Token {\n\t\tmsg.Msg = \"Token不匹配\"\n\t\tmsg.Ret = 1\n\t\tSendMessage(c, msg)\n\t\treturn\n\t}\n\td := GetWOLDeviceByKey(m.Key)\n\tif d == nil { //根据Key找不到记录\n\t\td = GetWOLDeviceByMac(m.Mac)\n\t\tdev := &wolconf.WOLDevice{\n\t\t\tKey:          m.Key,\n\t\t\tDeviceName:   m.DeviceName,\n\t\t\tMacList:      []string{m.Mac},\n\t\t\tBroadcastIPs: []string{m.BroadcastIP},\n\t\t\tPort:         m.Port,\n\t\t\tRelay:        m.Relay,\n\t\t\tRepeat:       m.Repeat,\n\t\t\tUpdateTime:   m.UpdateTime,\n\t\t}\n\n\t\tif d == nil { //创建记录\n\t\t\terr := WOLDeviceListAdd(dev)\n\t\t\tif err == nil {\n\t\t\t\tmsg.Ret = 0\n\t\t\t\tSendMessage(c, msg)\n\n\t\t\t} else {\n\t\t\t\tmsg.Msg = fmt.Sprintf(\"添加唤醒设备记录出错:%s\", err.Error())\n\t\t\t\tmsg.Ret = 2\n\t\t\t\tSendMessage(c, msg)\n\t\t\t}\n\t\t} else { //修改相同Mac记录的设备未\n\t\t\tfmt.Printf(\"修改相同Mac记录的设备\\n\")\n\t\t\terr := WOLDeviceListReplace(d.Key, dev)\n\t\t\tif err == nil {\n\t\t\t\tmsg.Ret = 0\n\t\t\t\tSendMessage(c, msg)\n\t\t\t} else {\n\t\t\t\tmsg.Msg = fmt.Sprintf(\"替换唤醒设备记录出错:%s\", err.Error())\n\t\t\t\tmsg.Ret = 3\n\t\t\t\tSendMessage(c, msg)\n\t\t\t}\n\t\t}\n\n\t\treturn\n\t}\n\n\tif d.UpdateTime == m.UpdateTime {\n\t\t//fmt.Printf(\"两端规则更新时间一致,不用同步\\n\")\n\t\tmsg.Ret = 0\n\t\tSendMessage(c, msg)\n\t\treturn\n\t}\n\n\t//fmt.Printf(\"d.UpdateTime:%d m.UpdateTime:%d\\n\", d.UpdateTime, m.UpdateTime)\n\tif d.UpdateTime > m.UpdateTime {\n\n\t\tmsg.Ret = 0\n\t\tSendMessage(c, msg)\n\t\t//fmt.Printf(\"服务端配置较新,同步至客户端\\n\")\n\t\tsyncMsg := &SyncClientConfigure{m.WOLClientConfigure}\n\t\tsyncMsg.DeviceName = d.DeviceName\n\t\tsyncMsg.BroadcastIP = d.BroadcastIPs[0]\n\t\tsyncMsg.Mac = d.MacList[0]\n\t\tsyncMsg.Port = d.Port\n\t\tsyncMsg.Relay = d.Relay\n\t\tsyncMsg.Repeat = d.Repeat\n\t\tsyncMsg.UpdateTime = d.UpdateTime\n\t\tSendMessage(c, syncMsg)\n\n\t} else {\n\t\t//fmt.Printf(\"客户端配置较新,同步至服务器端\")\n\t\tdev := &wolconf.WOLDevice{\n\t\t\tKey:                  m.Key,\n\t\t\tDeviceName:           m.DeviceName,\n\t\t\tMacList:              []string{m.Mac},\n\t\t\tBroadcastIPs:         []string{m.BroadcastIP},\n\t\t\tPort:                 m.Port,\n\t\t\tRelay:                m.Relay,\n\t\t\tRepeat:               m.Repeat,\n\t\t\tUpdateTime:           m.UpdateTime,\n\t\t\tIOT_DianDeng_Enable:  d.IOT_Bemfa_Enable,\n\t\t\tIOT_DianDeng_AUTHKEY: d.IOT_DianDeng_AUTHKEY,\n\t\t\tIOT_Bemfa_Enable:     d.IOT_Bemfa_Enable,\n\t\t\tIOT_Bemfa_SecretKey:  d.IOT_Bemfa_SecretKey,\n\t\t\tIOT_Bemfa_Topic:      d.IOT_Bemfa_Topic,\n\t\t}\n\t\terr := WOLDeviceListAlter(dev)\n\t\tif err == nil {\n\t\t\tmsg.Ret = 0\n\t\t\tSendMessage(c, msg)\n\t\t} else {\n\t\t\tmsg.Ret = 3\n\t\t\tmsg.Msg = fmt.Sprintf(\"同步客户端配置到服务端出错:%s\", err.Error())\n\t\t}\n\t}\n\n}\n\nfunc ExecShutDown(d *wolconf.WOLDevice) int {\n\tsuccessCount := 0\n\tmsg := &ShutDown{}\n\tfor _, mac := range d.MacList {\n\t\tcc, ccOk := clientControllerMap.Load(mac)\n\t\tif !ccOk {\n\t\t\tcontinue\n\t\t}\n\t\tSendMessage(cc.(*websocketcontroller.Controller), msg)\n\t\tsuccessCount++\n\t}\n\treturn successCount\n}\n"
  },
  {
    "path": "module/wol/websocketcommon.go",
    "content": "package wol\n\nimport (\n\t\"fmt\"\n\n\twebsocketcontroller \"github.com/gdy666/lucky/thirdlib/gdylib/websocketController\"\n)\n\nfunc SendMessage(c *websocketcontroller.Controller, msg any) error {\n\tmsgBytes, err := Pack(msg)\n\tif err != nil {\n\t\tfmt.Printf(\"pack FUck:%s\\n\", err.Error())\n\t\treturn err\n\t}\n\tc.SendMessage(msgBytes)\n\treturn nil\n}\n\nfunc Pack(msg interface{}) ([]byte, error) {\n\treturn msgCtl.Pack(msg)\n}\n\nfunc UnPack(bytes []byte) (msg Message, err error) {\n\tif len(bytes) <= 9 {\n\t\terr = fmt.Errorf(\"len(bytes) <= 9\")\n\t\treturn\n\t}\n\treturn msgCtl.UnPack(bytes[0], bytes[9:])\n}\n"
  },
  {
    "path": "reverseproxy/proxy.go",
    "content": "package reverseproxy\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/gdy666/lucky/config\"\n)\n\nfunc InitReverseProxyServer() {\n\truleList := config.GetReverseProxyRuleList()\n\tfor ruleIndex := range ruleList {\n\t\tif ruleList[ruleIndex].Enable {\n\t\t\tstartRes := ruleList[ruleIndex].ServerStart()\n\t\t\tif startRes == nil {\n\t\t\t\tlog.Printf(\"启动反向代理服务[%s]成功\", ruleList[ruleIndex].Addr())\n\t\t\t} else {\n\t\t\t\tlog.Printf(\"启动反向代理服务[%s]失败:%s\", ruleList[ruleIndex].Addr(), startRes.Error())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc EnableRuleByKey(key string, enable bool) error {\n\n\trule := config.GetReverseProxyRuleByKey(key)\n\n\tif rule == nil {\n\t\treturn fmt.Errorf(\"GetReverseProxyRuleByKey not found:%s\", key)\n\t}\n\n\tif enable {\n\t\terr := rule.ServerStart()\n\t\tif err != nil {\n\t\t\tlog.Printf(\"启用反向代理规则[%s]出错:%s\", rule.Addr(), err.Error())\n\t\t\tconfig.EnableReverseProxyRuleByKey(key, false)\n\t\t\treturn fmt.Errorf(\"启用反向代理规则[%s]出错:%s\", rule.Addr(), err.Error())\n\t\t} else {\n\t\t\tlog.Printf(\"启用反向代理规则[%s]成功\", rule.Addr())\n\t\t}\n\t} else {\n\t\trule.ServerStop()\n\t\tlog.Printf(\"停用反向代理规则[%s]成功\", rule.Addr())\n\t}\n\treturn config.EnableReverseProxyRuleByKey(key, enable)\n}\n\ntype RuleInfo struct {\n\tconfig.ReverseProxyRule\n\tAccessLogs map[string][]any\n}\n\nfunc GetProxyRuleListInfo() *[]RuleInfo {\n\truleList := config.GetReverseProxyRuleList()\n\tvar res []RuleInfo\n\tfor i := range ruleList {\n\t\t//ti := createProxyRuleInfo(nil, ruleList[i])\n\t\tvar ri RuleInfo\n\t\tri.ReverseProxyRule = *ruleList[i]\n\t\tri.AccessLogs = ruleList[i].GetLastLogs()\n\t\tres = append(res, ri)\n\t}\n\treturn &res\n}\n\nfunc GetAccessLogs(ruleKey, proxyKey string, pageSize, page int) (int, []any) {\n\tvar res []any\n\ttotal := 0\n\n\tsubRule := config.GetSubRuleByKey(ruleKey, proxyKey)\n\tif subRule == nil {\n\t\treturn 0, res\n\t}\n\ttotal, res = subRule.GetLogsBuffer().GetLogsByLimit(config.WebLogConvert, pageSize, page)\n\treturn total, res\n}\n"
  },
  {
    "path": "scripts/lucky.service",
    "content": "[Unit]\nDescription=lucky\nAfter=network.target\n\n[Service]\nType=simple\nUser=root\nExecStart=/etc/lucky/lucky -c /etc/lucky/lucky.conf >/dev/null\nRestart=on-failure\nRestartSec=3s\nLimitNOFILE=999999\n\n\n[Install]\nWantedBy=multi-user.target\n"
  },
  {
    "path": "scripts/luckyservice",
    "content": "#!/bin/sh /etc/rc.common\n# Copyright (C) 2006-2011 OpenWrt.org\n\nSTART=99\nSERVICE_USE_PID=1\nSERVICE_WRITE_PID=1\nSERVICE_DAEMONIZE=1\n\n#获取目录\nDIR=$(cat /etc/profile | grep luckydir | awk -F \"\\\"\" '{print $2}')\n[ -z \"$DIR\" ] && DIR=$(cat ~/.bashrc | grep luckydir | awk -F \"\\\"\" '{print $2}')\n[ -z \"$BINDIR\" ] && BINDIR=$DIR\n\n\nBIN=$BINDIR/lucky\nCONF=$BINDIR/lucky.conf\n\nstart() {\n\tservice_start $BIN -c $CONF &\n}\n\nstop() {\n\tservice_stop $BIN\n}\n\n"
  },
  {
    "path": "scripts/misnap_init.sh",
    "content": "#!/bin/sh\n# Copyright (C) gdy\n\nluckydir=/data/lucky.daji\nprofile=/etc/profile\n\nsed -i '/alias lucky=*/'d $profile\nsed -i '/export luckydir=*/'d $profile\n#h初始化环境变量\necho \"alias lucky=\\\"$luckydir/lucky\\\"\" >> $profile \necho \"export luckydir=\\\"$luckydir\\\"\" >> $profile \n\n#设置init.d服务并启动lucky\nln -sf $luckydir/scripts/luckyservice /etc/init.d/lucky.daji\nchmod 755 /etc/init.d/lucky.daji\n\nlog_file=`uci get system.@system[0].log_file`\ni=0\nwhile [ \"$i\" -lt 10 ];do\n\tsleep 3\n\t[ -n \"$(grep 'init complete' $log_file)\" ] && i=10 || i=$((i+1))\ndone\n/etc/init.d/lucky.daji enable\n/etc/init.d/lucky.daji start\n\n\n"
  },
  {
    "path": "socketproxy/baseproxyconf.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"sync/atomic\"\n)\n\ntype BaseProxyConf struct {\n\tTrafficIn  int64\n\tTrafficOut int64\n\tkey        string\n\tProxyType  string // tcp tcp4 tcp6 udp udp4 udp6\n\n}\n\nfunc (p *BaseProxyConf) GetProxyType() string {\n\treturn p.ProxyType\n}\n\nfunc (p *BaseProxyConf) GetStatus() string {\n\treturn p.ProxyType\n}\n\nfunc (p *BaseProxyConf) ReceiveDataCallback(nw int64) {\n\tatomic.AddInt64(&p.TrafficIn, nw)\n}\n\nfunc (p *BaseProxyConf) SendDataCallback(nw int64) {\n\tatomic.AddInt64(&p.TrafficOut, nw)\n}\n\nfunc (p *BaseProxyConf) GetTrafficIn() int64 {\n\treturn atomic.LoadInt64(&p.TrafficIn)\n}\n\nfunc (p *BaseProxyConf) GetTrafficOut() int64 {\n\treturn atomic.LoadInt64(&p.TrafficOut)\n}\n"
  },
  {
    "path": "socketproxy/proxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/pool\"\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype Proxy interface {\n\tStartProxy()\n\tStopProxy()\n\n\tReceiveDataCallback(int64)\n\tSendDataCallback(int64)\n\tGetProxyType() string\n\tGetStatus() string\n\tGetListenIP() string\n\tGetListenPort() int\n\tGetKey() string\n\tGetCurrentConnections() int64\n\n\tString() string\n\tGetTrafficIn() int64\n\tGetTrafficOut() int64\n\tSafeCheck(ip string) bool\n}\n\ntype RelayRuleOptions struct {\n\tUDPPackageSize                                int    `json:\"UDPPackageSize,omitempty\"`\n\tSingleProxyMaxTCPConnections                  int64  `json:\"SingleProxyMaxTCPConnections,omitempty\"`\n\tSingleProxyMaxUDPReadTargetDatagoroutineCount int64  `json:\"SingleProxyMaxUDPReadTargetDatagoroutineCount\"`\n\tUDPProxyPerformanceMode                       bool   `json:\"UDPProxyPerformanceMode,omitempty\"`\n\tUDPShortMode                                  bool   `json:\"UDPShortMode,omitempty\"`\n\tSafeMode                                      string `json:\"SafeMode,omitempty\"`\n}\n\n// Join two io.ReadWriteCloser and do some operations.\nfunc (p *BaseProxyConf) relayData(targetServer io.ReadWriteCloser, client io.ReadWriteCloser) {\n\tvar wait sync.WaitGroup\n\tpipe := func(to io.ReadWriteCloser, from io.ReadWriteCloser, writedataCallback func(int64)) {\n\t\tdefer to.Close()\n\t\tdefer from.Close()\n\t\tdefer wait.Done()\n\n\t\tnw, _ := p.copyBuffer(to, from, nil, nil)\n\t\tif writedataCallback != nil {\n\t\t\twritedataCallback(nw)\n\t\t}\n\n\t\t// if p.TrafficMonitor {\n\t\t// \tbuf := pool.GetBuf(8 * 1024 * 1024)\n\t\t// \tp.CopyBuffer(to, from, buf, writedataCallback)\n\t\t// \tpool.PutBuf(buf)\n\t\t// } else {\n\t\t// \tnw, _ := p.copyBuffer(to, from, nil, nil)\n\t\t// \tif writedataCallback != nil {\n\t\t// \t\twritedataCallback(nw)\n\t\t// \t}\n\t\t// }\n\n\t}\n\n\twait.Add(2)\n\tgo pipe(targetServer, client, p.ReceiveDataCallback)\n\tgo pipe(client, targetServer, p.SendDataCallback)\n\twait.Wait()\n}\n\nfunc (p *BaseProxyConf) CopyBuffer(dst io.Writer, src io.Reader, buf []byte, writedataCallback func(int64)) (written int64, err error) {\n\tif buf != nil && len(buf) == 0 {\n\t\tpanic(\"empty buffer in CopyBuffer\")\n\t}\n\treturn p.copyBuffer(dst, src, buf, writedataCallback)\n}\n\n// copyBuffer is the actual implementation of Copy and CopyBuffer.\n// if buf is nil, one is allocated.\nfunc (p *BaseProxyConf) copyBuffer(dst io.Writer, src io.Reader, buf []byte, writedataCallback func(int64)) (written int64, err error) {\n\tif buf == nil {\n\t\tif wt, ok := src.(io.WriterTo); ok {\n\t\t\treturn wt.WriteTo(dst)\n\t\t}\n\n\t\tif rt, ok := dst.(io.ReaderFrom); ok {\n\t\t\treturn rt.ReadFrom(src)\n\t\t}\n\n\t\tsize := 32 * 1024\n\t\tif l, ok := src.(*io.LimitedReader); ok && int64(size) > l.N {\n\t\t\tif l.N < 1 {\n\t\t\t\tsize = 1\n\t\t\t} else {\n\t\t\t\tsize = int(l.N)\n\t\t\t}\n\t\t}\n\n\t\tbuf = pool.GetBuf(8 * size)\n\t\tdefer pool.PutBuf(buf)\n\t}\n\n\tfor {\n\t\tnr, er := src.Read(buf)\n\t\tif nr > 0 {\n\t\t\tnw, ew := dst.Write(buf[0:nr])\n\t\t\tif nw < 0 || nr < nw {\n\t\t\t\tnw = 0\n\t\t\t\tif ew == nil {\n\t\t\t\t\tew = errors.New(\"invalid write result\")\n\t\t\t\t}\n\t\t\t}\n\t\t\twritten += int64(nw)\n\n\t\t\tif writedataCallback != nil {\n\t\t\t\twritedataCallback(int64(nw))\n\t\t\t}\n\n\t\t\tif ew != nil {\n\t\t\t\terr = ew\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif nr != nw {\n\t\t\t\terr = io.ErrShortWrite\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif er != nil {\n\t\t\tif er != io.EOF {\n\t\t\t\terr = er\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn written, err\n}\n\nfunc formatFileSize(fileSize int64) (size string) {\n\tswitch {\n\tcase fileSize < 1024:\n\t\treturn fmt.Sprintf(\"%.2fB\", float64(fileSize)/float64(1))\n\tcase fileSize < (1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fKB\", float64(fileSize)/float64(1024))\n\tcase fileSize < (1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fMB\", float64(fileSize)/float64(1024*1024))\n\tcase fileSize < (1024 * 1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fGB\", float64(fileSize)/float64(1024*1024*1024))\n\tcase fileSize < (1024 * 1024 * 1024 * 1024 * 1024):\n\t\treturn fmt.Sprintf(\"%.2fTB\", float64(fileSize)/float64(1024*1024*1024*1024))\n\tdefault:\n\t\treturn fmt.Sprintf(\"%.2fEB\", float64(fileSize)/float64(1024*1024*1024*1024*1024))\n\t}\n\n}\n\nfunc CreateProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) (p Proxy, err error) {\n\t//key := GetProxyKey(proxyType, listenIP, listenPort)\n\tswitch {\n\tcase strings.HasPrefix(proxyType, \"tcp\"):\n\t\t{\n\t\t\treturn CreateTCPProxy(log, proxyType, listenIP, targetAddressList, listenPort, targetPort, options), nil\n\t\t}\n\tcase strings.HasPrefix(proxyType, \"udp\"):\n\t\t{\n\t\t\treturn CreateUDPProxy(log, proxyType, listenIP, targetAddressList, listenPort, targetPort, options), nil\n\t\t}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"未支持的类型:%s\", proxyType)\n\t}\n\n}\n\nfunc GetProxyKey(proxyType, listenIP string, listenPort int) string {\n\treturn fmt.Sprintf(\"%s@%s:%d\", proxyType, listenIP, listenPort)\n}\n"
  },
  {
    "path": "socketproxy/tcpproxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype TCPProxy struct {\n\tTCPUDPProxyCommonConf\n\t//TcpSingleProxyMaxConns int64\n\t//\ttcpCurrentConns        int64\n\tlistenConn      net.Listener\n\tlistenConnMutex sync.Mutex\n\n\tconnMap      map[string]net.Conn\n\tconnMapMutex sync.Mutex\n}\n\nfunc CreateTCPProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) *TCPProxy {\n\tp := &TCPProxy{}\n\tp.ProxyType = proxyType\n\tp.listenIP = listenIP\n\tp.listenPort = listenPort\n\tp.targetAddressList = targetAddressList\n\tp.targetPort = targetPort\n\tp.log = log\n\n\tp.safeMode = options.SafeMode\n\n\tp.SetMaxConnections(options.SingleProxyMaxTCPConnections)\n\treturn p\n}\n\nfunc (p *TCPProxy) GetStatus() string {\n\treturn fmt.Sprintf(\"%s\\nactivity connections:[%d]\", p.String(), p.GetCurrentConnections())\n}\n\nfunc (p *TCPProxy) CheckConnectionsLimit() error {\n\n\tif GetGlobalTCPPortForwardConnections() >= GetGlobalTCPPortforwardMaxConnections() {\n\t\treturn fmt.Errorf(\"超出TCP最大总连接数[%d]限制\", GetGlobalTCPPortforwardMaxConnections())\n\t}\n\n\tif p.GetCurrentConnections() >= p.SingleProxyMaxConnections {\n\t\treturn fmt.Errorf(\"超出单端口TCP最大连接数[%d]限制\", p.SingleProxyMaxConnections)\n\t}\n\n\t//全局,单端口限制\n\treturn nil\n}\n\nfunc (p *TCPProxy) StartProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tif p.listenConn != nil {\n\t\t//log.Printf(\"proxy %s is started\", p.String())\n\t\tp.log.Warnf(\"proxy %s is started\", p.String())\n\t\treturn\n\t}\n\n\tif p.connMap == nil {\n\t\tp.connMap = make(map[string]net.Conn)\n\t}\n\tln, err := net.Listen(p.ProxyType, p.GetListentAddress())\n\n\tif err != nil {\n\t\tif strings.Contains(err.Error(), \"Only one usage of each socket address\") {\n\t\t\tp.log.Errorf(\"监听IP端口[%s]已被占用,proxy[%s]启动失败\", p.GetListentAddress(), p.String())\n\t\t} else {\n\t\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.String(), err)\n\t\t}\n\t\treturn\n\t}\n\n\tp.listenConn = ln\n\n\tp.log.Infof(\"[端口转发][开启][%s]\", p.String())\n\n\tgo func() {\n\t\tfor {\n\t\t\tnewConn, err := ln.Accept()\n\n\t\t\tif err != nil {\n\t\t\t\tif strings.Contains(err.Error(), \"use of closed network connection\") {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tp.log.Errorf(\" Cannot accept connection due to error %s\", err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\terr = p.CheckConnectionsLimit()\n\t\t\tif err != nil {\n\t\t\t\t//p.PrintConnectionsInfo()\n\t\t\t\tp.log.Warnf(\"[%s]超出最大连接数限制,不再接受新连接:%s\", p.GetKey(), err.Error())\n\t\t\t\tnewConn.Close()\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tnewConnAddr := newConn.RemoteAddr().String()\n\t\t\tif !p.SafeCheck(newConnAddr) {\n\t\t\t\tp.log.Warnf(\"[%s]新连接 [%s]安全检查未通过\", p.GetKey(), newConnAddr)\n\t\t\t\tnewConn.Close()\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tp.log.Infof(\"[%s]新连接[%s]安全检查通过\", p.GetKey(), newConnAddr)\n\n\t\t\tp.connMapMutex.Lock()\n\t\t\tp.connMap[newConn.RemoteAddr().String()] = newConn\n\t\t\tp.connMapMutex.Unlock()\n\n\t\t\tp.AddCurrentConnections(1)\n\t\t\tgo p.handle(newConn)\n\t\t}\n\t}()\n\n\t//\n\t//p.test()\n\n\t//go p.test()\n\t//go p.tcptest()\n\n}\n\nfunc (p *TCPProxy) StopProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tdefer func() {\n\t\tp.log.Infof(\"[端口转发][关闭][%s]\", p.String())\n\t}()\n\tif p.listenConn == nil {\n\t\treturn\n\t}\n\n\tp.listenConn.Close()\n\tp.listenConn = nil\n\n\tp.connMapMutex.Lock()\n\tfor _, conn := range p.connMap {\n\t\tconn.Close()\n\t}\n\tp.connMap = make(map[string]net.Conn)\n\tp.connMapMutex.Unlock()\n}\n\nfunc (p *TCPProxy) handle(conn net.Conn) {\n\t//dialer := net.Dialer{Timeout: 10 * time.Second}\n\t//targetConn, err := dialer.Dial(\"tcp\", p.TargetAddress)\n\ttargetConn, err := net.Dial(\"tcp\", p.GetTargetAddress())\n\n\tdefer func() {\n\t\tif targetConn != nil {\n\t\t\ttargetConn.Close()\n\t\t}\n\t\tdefer conn.Close()\n\t\tp.AddCurrentConnections(-1)\n\n\t\tp.connMapMutex.Lock()\n\t\tdelete(p.connMap, conn.RemoteAddr().String())\n\t\tp.log.Infof(\"[%s]%s 断开连接\", p.GetKey(), conn.RemoteAddr().String())\n\t\tp.connMapMutex.Unlock()\n\n\t}()\n\n\tif err != nil {\n\t\tlog.Printf(\"%s error:%s\", p.String(), err.Error())\n\t\treturn\n\t}\n\n\t//targetConn.SetDeadline(time.Now().Add(time.Second * 3))\n\n\t// targetTcpConn, ok := targetConn.(*net.TCPConn)\n\t// if ok {\n\t// \ttargetTcpConn.SetReadBuffer(p.BufferSize * 1024 * 256 * 1024)\n\t// \ttargetTcpConn.SetWriteBuffer(p.BufferSize * 1024 * 256 * 1024)\n\t// }\n\n\tp.relayData(targetConn, conn)\n\n}\n"
  },
  {
    "path": "socketproxy/tcpudpcommon.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst TCP_DEFAULT_STREAM_BUFFERSIZE = 128\nconst DEFAULT_GLOBAL_MAX_CONNECTIONS = int64(1024)\nconst DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount = int64(1024)\nconst TCPUDP_DEFAULT_SINGLE_PROXY_MAX_CONNECTIONS = int64(256)\n\nconst DEFAULT_MAX_PORTFORWARDS_LIMIT = int64(128)\n\nvar globalTCPPortforwardMaxConnectionsLimit = DEFAULT_GLOBAL_MAX_CONNECTIONS\nvar globalUDPReadTargetDataMaxgoroutineCountLimit = DEFAULT_GLOBAL_UDPReadTargetDataMaxgoroutineCount\n\nvar globalTCPPortForwardCurrentConnections int64 = 0\nvar globalUDPPortForwardCurrentGroutineCount int64 = 0\n\nvar gloMaxPortForwardsCountLimit int64 = DEFAULT_MAX_PORTFORWARDS_LIMIT\n\nvar safeCheckFunc func(mode, ip string) bool\n\nfunc SetSafeCheck(f func(mode, ip string) bool) {\n\tsafeCheckFunc = f\n}\n\nfunc SetGlobalUDPReadTargetDataMaxgoroutineCountLimit(max int64) {\n\tatomic.StoreInt64(&globalUDPReadTargetDataMaxgoroutineCountLimit, max)\n}\n\nfunc GetGlobalUDPReadTargetDataMaxgoroutineCountLimit() int64 {\n\treturn atomic.LoadInt64(&globalUDPReadTargetDataMaxgoroutineCountLimit)\n}\n\nfunc SetGlobalMaxPortForwardsCountLimit(max int64) {\n\tatomic.StoreInt64(&gloMaxPortForwardsCountLimit, max)\n}\n\nfunc GetGlobalMaxPortForwardsCountLimit() int64 {\n\treturn atomic.LoadInt64(&gloMaxPortForwardsCountLimit)\n}\n\nfunc SetGlobalTCPPortforwardMaxConnections(max int64) {\n\tatomic.StoreInt64(&globalTCPPortforwardMaxConnectionsLimit, max)\n}\n\nfunc GetGlobalTCPPortforwardMaxConnections() int64 {\n\treturn atomic.LoadInt64(&globalTCPPortforwardMaxConnectionsLimit)\n}\n\nfunc GetGlobalTCPPortForwardConnections() int64 {\n\treturn atomic.LoadInt64(&globalTCPPortForwardCurrentConnections)\n}\n\nfunc GloBalTCPPortForwardConnectionsAdd(add int64) int64 {\n\treturn atomic.AddInt64(&globalTCPPortForwardCurrentConnections, add)\n}\n\nfunc GetGlobalUDPPortForwardGroutineCount() int64 {\n\treturn atomic.LoadInt64(&globalUDPPortForwardCurrentGroutineCount)\n}\n\nfunc GloBalUDPPortForwardGroutineCountAdd(add int64) int64 {\n\treturn atomic.AddInt64(&globalUDPPortForwardCurrentGroutineCount, add)\n}\n\ntype TCPUDPProxyCommonConf struct {\n\tCurrentConnectionsCount   int64\n\tSingleProxyMaxConnections int64\n\n\tBaseProxyConf\n\tlistentAddress string\n\tlistenIP       string\n\tlistenPort     int\n\t//targetIP       string\n\ttargetAddressList  []string\n\ttargetAddressCount int\n\ttargetAddressIndex uint64\n\ttargetAddressLock  sync.Mutex\n\ttargetPort         int\n\n\tsafeMode string\n\tlog      *logrus.Logger\n}\n\n// func (p *TCPUDPProxyCommonConf) PrintConnectionsInfo() {\n// \tp.log.Infof(\"[%s]当前连接数:[%d],当前端口最大TCP连接数限制[%d],全局最大TCP连接数限制[%d]\", p.GetKey(), p.GetCurrentConnections(), p.SingleProxyMaxConnections, GetGlobalTCPPortforwardMaxConnections())\n// }\n\nfunc (p *TCPUDPProxyCommonConf) SetMaxConnections(max int64) {\n\tif max <= 0 {\n\t\tp.SingleProxyMaxConnections = TCPUDP_DEFAULT_SINGLE_PROXY_MAX_CONNECTIONS\n\t} else {\n\t\tp.SingleProxyMaxConnections = max\n\t}\n}\n\nfunc (p *TCPUDPProxyCommonConf) AddCurrentConnections(a int64) {\n\tatomic.AddInt64(&p.CurrentConnectionsCount, a)\n\tif strings.HasPrefix(p.ProxyType, \"tcp\") {\n\t\tGloBalTCPPortForwardConnectionsAdd(a)\n\t\treturn\n\t}\n\n\tif strings.HasPrefix(p.ProxyType, \"udp\") {\n\t\tGloBalUDPPortForwardGroutineCountAdd(a)\n\t\treturn\n\t}\n\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetCurrentConnections() int64 {\n\treturn atomic.LoadInt64(&p.CurrentConnectionsCount)\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListentAddress() string {\n\tif p.listentAddress == \"\" {\n\t\tif strings.Contains(p.listenIP, \":\") {\n\t\t\tp.listentAddress = fmt.Sprintf(\"[%s]:%d\", p.listenIP, p.listenPort)\n\t\t} else {\n\t\t\tp.listentAddress = fmt.Sprintf(\"%s:%d\", p.listenIP, p.listenPort)\n\t\t}\n\t}\n\treturn p.listentAddress\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetKey() string {\n\tif p.key == \"\" {\n\t\tp.key = GetProxyKey(p.ProxyType, p.listenIP, p.listenPort)\n\t}\n\treturn p.key\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListenIP() string {\n\treturn p.listenIP\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetListenPort() int {\n\treturn p.listenPort\n}\n\nfunc (p *TCPUDPProxyCommonConf) GetTargetAddress() string {\n\tp.targetAddressLock.Lock()\n\tdefer p.targetAddressLock.Unlock()\n\tif p.targetAddressCount <= 0 {\n\t\tp.targetAddressCount = len(p.targetAddressList)\n\t\tp.targetAddressIndex = 0\n\t}\n\taddress := fmt.Sprintf(\"%s:%d\", p.targetAddressList[p.targetAddressIndex%uint64(p.targetAddressCount)], p.targetPort)\n\tp.targetAddressIndex++\n\treturn address\n}\n\nfunc (p *TCPUDPProxyCommonConf) String() string {\n\treturn fmt.Sprintf(\"%s@%v ===> %v:%d\", p.ProxyType, p.GetListentAddress(), p.targetAddressList, p.targetPort)\n}\n\nfunc (p *TCPUDPProxyCommonConf) SafeCheck(remodeAddr string) bool {\n\thost, _, _ := net.SplitHostPort(remodeAddr)\n\treturn safeCheckFunc(p.safeMode, host)\n}\n"
  },
  {
    "path": "socketproxy/udpproxy.go",
    "content": "// Copyright 2022 gdy, 272288813@qq.com\npackage socketproxy\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/fatedier/golib/errors\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/pool\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst UDP_DEFAULT_PACKAGE_SIZE = 1500\n\n//测试\n\ntype UDPProxy struct {\n\t//BaseProxyConf\n\tTCPUDPProxyCommonConf\n\n\t//\ttargetAddr *net.UDPAddr\n\tlistenConn      *net.UDPConn\n\tlistenConnMutex sync.Mutex\n\n\trelayChs []chan *udpPackge\n\treplyCh  chan *udpPackge\n\n\tudpPackageSize int\n\t//targetudpConnItemMap      map[string]*udpMapItem\n\t//targetudpConnItemMapMutex sync.RWMutex\n\ttargetConnectSessions                         sync.Map\n\tUpm                                           bool //性能模式\n\tShortMode                                     bool\n\tisStop                                        bool\n\tSingleProxyMaxUDPReadTargetDatagoroutineCount int64\n}\n\ntype udpPackge struct {\n\tdataSize   int\n\tdata       *[]byte\n\tremoteAddr *net.UDPAddr\n}\n\ntype udpTagetConSession struct {\n\ttargetConn *net.UDPConn\n\tlastTime   time.Time\n}\n\nfunc CreateUDPProxy(log *logrus.Logger, proxyType, listenIP string, targetAddressList []string, listenPort, targetPort int, options *RelayRuleOptions) *UDPProxy {\n\tp := &UDPProxy{}\n\t//p.Key = key\n\tp.ProxyType = proxyType\n\tp.listenIP = listenIP\n\tp.listenPort = listenPort\n\tp.targetAddressList = targetAddressList\n\tp.targetPort = targetPort\n\n\tp.Upm = options.UDPProxyPerformanceMode\n\tp.ShortMode = options.UDPShortMode\n\tp.safeMode = options.SafeMode\n\tp.log = log\n\tp.SingleProxyMaxUDPReadTargetDatagoroutineCount = options.SingleProxyMaxUDPReadTargetDatagoroutineCount\n\n\tp.SetUDPPacketSize(options.UDPPackageSize)\n\treturn p\n}\n\nfunc (p *UDPProxy) getHandlegoroutineNum() int {\n\tif p.Upm {\n\t\treturn runtime.NumCPU()\n\t}\n\treturn 1\n}\n\nfunc (p *UDPProxy) SetUDPPacketSize(size int) {\n\tif size <= 0 {\n\t\tp.udpPackageSize = UDP_DEFAULT_PACKAGE_SIZE\n\t\treturn\n\t}\n\tif size > 65507 {\n\t\tp.udpPackageSize = 65507\n\t\treturn\n\t}\n\tp.udpPackageSize = size\n}\n\nfunc (p *UDPProxy) GetUDPPacketSize() int {\n\n\treturn p.udpPackageSize\n}\n\nfunc (p *UDPProxy) StartProxy() {\n\t//p.init()\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tif p.listenConn != nil {\n\t\treturn\n\t}\n\n\tbindAddr, err := net.ResolveUDPAddr(p.ProxyType, p.GetListentAddress())\n\n\tif err != nil {\n\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.GetKey(), err)\n\t\treturn\n\t}\n\n\tln, err := net.ListenUDP(p.ProxyType, bindAddr)\n\tif err != nil {\n\t\tif strings.Contains(err.Error(), \" bind: Only one usage of each socket address\") {\n\t\t\tp.log.Errorf(\"监听IP端口[%s]已被占用,proxy[%s]启动失败\", p.GetListentAddress(), p.String())\n\t\t} else {\n\t\t\tp.log.Errorf(\"Cannot start proxy[%s]:%s\", p.String(), err)\n\t\t}\n\t\treturn\n\t}\n\n\tln.SetReadBuffer(p.getHandlegoroutineNum() * 4 * 1024 * 1024)\n\tln.SetWriteBuffer(p.getHandlegoroutineNum() * 4 * 1024 * 1024)\n\n\tp.listenConn = ln\n\n\tp.log.Infof(\"[端口转发][开启][%s]\", p.String())\n\n\tp.relayChs = make([]chan *udpPackge, p.getHandlegoroutineNum())\n\n\tfor i := range p.relayChs {\n\t\tp.relayChs[i] = make(chan *udpPackge, 1024)\n\t}\n\n\tp.replyCh = make(chan *udpPackge, 1024)\n\t// if p.targetudpConnItemMap == nil {\n\t// \tp.targetudpConnItemMap = make(map[string]*udpMapItem)\n\t// }\n\n\tfor i := range p.relayChs {\n\t\tgo p.Forwarder(i, p.relayChs[i])\n\t}\n\n\tgo p.replyDataToRemotAddress()\n\n\tgo p.CheckTargetUDPConnectSessions()\n\n\tfor i := 0; i < p.getHandlegoroutineNum(); i++ {\n\t\tgo p.ListenHandler(ln)\n\t}\n\n}\n\nfunc (p *UDPProxy) StopProxy() {\n\tp.listenConnMutex.Lock()\n\tdefer p.listenConnMutex.Unlock()\n\tdefer func() {\n\t\tp.targetConnectSessions.Range(func(key any, value any) bool {\n\t\t\tsession := value.(*udpTagetConSession)\n\t\t\tsession.targetConn.Close()\n\t\t\tp.targetConnectSessions.Delete(key)\n\t\t\treturn true\n\t\t})\n\t\tp.log.Infof(\"[端口转发][关闭][%s]\", p.String())\n\t}()\n\n\tif p.listenConn == nil {\n\t\treturn\n\t}\n\tp.listenConn.Close()\n\tp.listenConn = nil\n\tp.isStop = true\n\tclose(p.replyCh)\n\tfor i := range p.relayChs {\n\t\tclose(p.relayChs[i])\n\t}\n}\n\n// ReadFromTargetOnce one clientAddr only read once,short mode eg: udp dns\nfunc (p *UDPProxy) ReadFromTargetOnce() bool {\n\tif p.targetPort == 53 || p.ShortMode {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// func (p *UDPProxy) GetStatus() string {\n// \treturn fmt.Sprintf(\"%s  max packet size[%d]\", p.String(), p.GetUDPPacketSize())\n// }\n\nfunc (p *UDPProxy) ListenHandler(ln *net.UDPConn) {\n\n\tinDatabuf := pool.GetBuf(p.GetUDPPacketSize())\n\tdefer pool.PutBuf(inDatabuf)\n\ti := uint64(0)\n\tfor {\n\t\tif p.listenConn == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tinDatabufSize, remoteAddr, err := ln.ReadFromUDP(inDatabuf)\n\t\tif err != nil {\n\t\t\tif strings.Contains(err.Error(), `smaller than the datagram`) {\n\t\t\t\tp.log.Errorf(\"[%s] UDP包最大长度设置过小,请重新设置\", p.GetKey())\n\t\t\t} else {\n\t\t\t\tif !strings.Contains(err.Error(), \"use of closed network connection\") {\n\t\t\t\t\tp.log.Errorf(\" %s ReadFromUDP error:\\n%s \\n\", p.String(), err.Error())\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tremoteAddrStr := remoteAddr.String()\n\t\tif !p.SafeCheck(remoteAddrStr) {\n\t\t\tp.log.Warnf(\"[%s]新连接 [%s]安全检查未通过\", p.GetKey(), remoteAddrStr)\n\t\t\tcontinue\n\t\t}\n\n\t\t_, ok := p.targetConnectSessions.Load(remoteAddrStr)\n\t\tif !ok {\n\t\t\tp.log.Infof(\"[%s]新连接 [%s]安全检查通过\", p.GetKey(), remoteAddrStr)\n\t\t}\n\n\t\tdata := pool.GetBuf(inDatabufSize)\n\t\tcopy(data, inDatabuf[:inDatabufSize])\n\n\t\tinUdpPack := udpPackge{dataSize: inDatabufSize, data: &data, remoteAddr: remoteAddr}\n\n\t\tp.relayChs[i%uint64(p.getHandlegoroutineNum())] <- &inUdpPack\n\t\ti++\n\n\t}\n}\n\nfunc (p *UDPProxy) handlerDataFromTargetAddress(raddr *net.UDPAddr, tgConn *net.UDPConn) {\n\treadBuffer := pool.GetBuf(p.GetUDPPacketSize())\n\tvar session *udpTagetConSession\n\tsessionKey := raddr.String()\n\n\tdefer func() {\n\t\tpool.PutBuf(readBuffer)\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttgConn.Close()\n\t\t} else {\n\t\t\tp.targetConnectSessions.Delete(sessionKey)\n\t\t}\n\t\tp.AddCurrentConnections(-1)\n\t\tp.log.Infof(\"[%s]目标地址[%s]关闭连接[%s]\", p.GetKey(), tgConn.RemoteAddr().String(), tgConn.LocalAddr().String())\n\t}()\n\n\tvar targetConn *net.UDPConn\n\n\tp.AddCurrentConnections(1)\n\tfor {\n\t\ttargetConn = nil\n\t\tsession = nil\n\n\t\ttimeout := 1200 * time.Millisecond\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttimeout = 300 * time.Millisecond\n\t\t}\n\n\t\tif p.ReadFromTargetOnce() {\n\t\t\ttargetConn = tgConn\n\t\t} else {\n\t\t\tse, ok := p.targetConnectSessions.Load(sessionKey)\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsession = se.(*udpTagetConSession)\n\t\t\ttargetConn = session.targetConn\n\t\t}\n\n\t\ttargetConn.SetReadDeadline(time.Now().Add(timeout))\n\t\tn, _, err := targetConn.ReadFromUDP(readBuffer)\n\t\tif err != nil {\n\t\t\terrStr := err.Error()\n\t\t\tif strings.Contains(errStr, `i/o timeout`) && !p.ReadFromTargetOnce() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !strings.Contains(errStr, `use of closed network connection`) {\n\t\t\t\tp.log.Errorf(\"[%s]targetConn ReadFromUDP error:%s\", p.GetKey(), err.Error())\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tdata := pool.GetBuf(n)\n\t\tcopy(data, readBuffer[:n])\n\t\tudpMsg := udpPackge{dataSize: n, data: &data, remoteAddr: raddr}\n\n\t\tif err = errors.PanicToError(func() {\n\t\t\tselect {\n\t\t\tcase p.replyCh <- &udpMsg: //转发数据到远程地址\n\t\t\tdefault:\n\t\t\t}\n\t\t}); err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tif p.ReadFromTargetOnce() { //一次性\n\t\t\treturn\n\t\t}\n\n\t\t//非一次性，刷新时间或者退出\n\t\t_, ok := p.targetConnectSessions.Load(sessionKey)\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (p *UDPProxy) Forwarder(kk int, replych chan *udpPackge) {\n\n\t// read from targetAddr and write clientAddr\n\n\tvar err error\n\n\t// read from readCh\n\tfor udpMsg := range replych {\n\t\terr = nil\n\t\tse, ok := p.targetConnectSessions.Load(udpMsg.remoteAddr.String())\n\n\t\tif !ok {\n\t\t\terr := p.CheckReadTargetDataGoroutineLimit()\n\t\t\tif err != nil {\n\t\t\t\tp.log.Warnf(\"[%s]转发中止：%s\", p.GetKey(), err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tvar session *udpTagetConSession\n\t\tif ok {\n\t\t\tsession = se.(*udpTagetConSession)\n\t\t} else {\n\t\t\tsession = &udpTagetConSession{}\n\t\t}\n\n\t\tif !ok {\n\t\t\taddr := p.GetTargetAddress()\n\t\t\ttgAddr, err := net.ResolveUDPAddr(\"udp\", addr)\n\t\t\tif err != nil {\n\t\t\t\tp.log.Errorf(\"[%s]UDP端口转发目标地址[%s]解析出错:%s\", p.GetKey(), addr, err.Error())\n\t\t\t\tpool.PutBuf(*udpMsg.data)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttargetConn, err := net.DialUDP(\"udp\", nil, tgAddr)\n\t\t\tif err != nil {\n\t\t\t\tp.log.Errorf(\"[%s]UDP端口转发目标地址[%s]连接出错:%s\", p.GetKey(), addr, err.Error())\n\t\t\t\tpool.PutBuf(*udpMsg.data)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttargetConn.SetWriteBuffer(4 * 1024 * 1024)\n\t\t\ttargetConn.SetReadBuffer(4 * 1024 * 1024)\n\n\t\t\tsession.targetConn = targetConn\n\t\t}\n\t\tsession.lastTime = time.Now()\n\n\t\tif !p.ReadFromTargetOnce() { //只存储非一次性\n\t\t\tp.targetConnectSessions.Store(udpMsg.remoteAddr.String(), session)\n\t\t}\n\n\t\tp.ReceiveDataCallback(int64(udpMsg.dataSize)) //接收流量记录\n\n\t\t_, err = session.targetConn.Write(*udpMsg.data)\n\t\tif err != nil {\n\t\t\tp.log.Errorf(\"[%s]转发数据到目标端口出错：%s\", p.GetKey(), err.Error())\n\t\t\tsession.targetConn.Close()\n\t\t\tcontinue\n\t\t}\n\t\tpool.PutBuf(*udpMsg.data)\n\n\t\tif !ok {\n\t\t\tgo p.handlerDataFromTargetAddress(udpMsg.remoteAddr, session.targetConn)\n\t\t}\n\n\t}\n\n}\n\nfunc (p *UDPProxy) replyDataToRemotAddress() {\n\tfor msg := range p.replyCh {\n\t\t_, err := p.listenConn.WriteToUDP(*(msg.data), msg.remoteAddr)\n\t\tpool.PutBuf(*msg.data)\n\t\tif err != nil {\n\t\t\tp.log.Errorf(\"[%s]转发目标端口数据到远程端口出错：%s\", p.GetKey(), err.Error())\n\t\t\tcontinue\n\t\t}\n\t\tp.SendDataCallback(int64(msg.dataSize)) //发送流量记录\n\t}\n}\n\nfunc (p *UDPProxy) CheckReadTargetDataGoroutineLimit() error {\n\tif GetGlobalUDPPortForwardGroutineCount() >= GetGlobalUDPReadTargetDataMaxgoroutineCountLimit() {\n\t\treturn fmt.Errorf(\"超出端口转发全局UDP读取目标地址数据协程数限制[%d]\", GetGlobalUDPReadTargetDataMaxgoroutineCountLimit())\n\t}\n\n\tif p.GetCurrentConnections() >= p.SingleProxyMaxUDPReadTargetDatagoroutineCount {\n\t\treturn fmt.Errorf(\"超出单端口UDP读取目标地址数据协程数限制[%d]\", p.SingleProxyMaxUDPReadTargetDatagoroutineCount)\n\t}\n\treturn nil\n}\n\nfunc (p *UDPProxy) CheckTargetUDPConnectSessions() {\n\tfor {\n\t\t<-time.After(time.Second * 1)\n\t\tif p.isStop {\n\t\t\treturn\n\t\t}\n\t\tif p.GetCurrentConnections() <= 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tp.targetConnectSessions.Range(func(key any, value any) bool {\n\t\t\tsession := value.(*udpTagetConSession)\n\t\t\tif time.Since(session.lastTime) >= 30*time.Second {\n\t\t\t\tsession.targetConn.Close()\n\t\t\t\tp.targetConnectSessions.Delete(key)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\n\t}\n}\n"
  },
  {
    "path": "thirdlib/fatedier/golib/json/msg.go",
    "content": "// Copyright 2018 fatedier, fatedier@gmail.com\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage json\n\nimport (\n\t\"reflect\"\n)\n\nvar (\n\tdefaultMaxMsgLength int64 = 10240\n)\n\n// Message wraps socket packages for communicating between frpc and frps.\ntype Message interface{}\n\ntype MsgCtl struct {\n\ttypeMap     map[byte]reflect.Type\n\ttypeByteMap map[reflect.Type]byte\n\n\tmaxMsgLength int64\n}\n\nfunc NewMsgCtl() *MsgCtl {\n\treturn &MsgCtl{\n\t\ttypeMap:      make(map[byte]reflect.Type),\n\t\ttypeByteMap:  make(map[reflect.Type]byte),\n\t\tmaxMsgLength: defaultMaxMsgLength,\n\t}\n}\n\nfunc (msgCtl *MsgCtl) RegisterMsg(typeByte byte, msg interface{}) {\n\tmsgCtl.typeMap[typeByte] = reflect.TypeOf(msg)\n\tmsgCtl.typeByteMap[reflect.TypeOf(msg)] = typeByte\n}\n\nfunc (msgCtl *MsgCtl) SetMaxMsgLength(length int64) {\n\tmsgCtl.maxMsgLength = length\n}\n"
  },
  {
    "path": "thirdlib/fatedier/golib/json/pack.go",
    "content": "// Copyright 2018 fatedier, fatedier@gmail.com\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"reflect\"\n)\n\nfunc (msgCtl *MsgCtl) unpack(typeByte byte, buffer []byte, msgIn Message) (msg Message, err error) {\n\tif msgIn == nil {\n\t\tt, ok := msgCtl.typeMap[typeByte]\n\t\tif !ok {\n\t\t\terr = ErrMsgType\n\t\t\treturn\n\t\t}\n\n\t\tmsg = reflect.New(t).Interface().(Message)\n\t} else {\n\t\tmsg = msgIn\n\t}\n\n\terr = json.Unmarshal(buffer, &msg)\n\treturn\n}\n\nfunc (msgCtl *MsgCtl) UnPackInto(buffer []byte, msg Message) (err error) {\n\t_, err = msgCtl.unpack(' ', buffer, msg)\n\treturn\n}\n\nfunc (msgCtl *MsgCtl) UnPack(typeByte byte, buffer []byte) (msg Message, err error) {\n\treturn msgCtl.unpack(typeByte, buffer, nil)\n}\n\nfunc (msgCtl *MsgCtl) Pack(msg Message) ([]byte, error) {\n\ttypeByte, ok := msgCtl.typeByteMap[reflect.TypeOf(msg).Elem()]\n\tif !ok {\n\t\treturn nil, ErrMsgType\n\t}\n\n\tcontent, err := json.Marshal(msg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbuffer := bytes.NewBuffer(nil)\n\tbuffer.WriteByte(typeByte)\n\tbinary.Write(buffer, binary.BigEndian, int64(len(content)))\n\tbuffer.Write(content)\n\treturn buffer.Bytes(), nil\n}\n"
  },
  {
    "path": "thirdlib/fatedier/golib/json/process.go",
    "content": "// Copyright 2018 fatedier, fatedier@gmail.com\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage json\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\nvar (\n\tErrMsgType      = errors.New(\"message type error\")\n\tErrMaxMsgLength = errors.New(\"message length exceed the limit\")\n\tErrMsgLength    = errors.New(\"message length error\")\n\tErrMsgFormat    = errors.New(\"message format error\")\n)\n\nfunc (msgCtl *MsgCtl) readMsg(c io.Reader) (typeByte byte, buffer []byte, err error) {\n\tbuffer = make([]byte, 1)\n\t_, err = c.Read(buffer)\n\tif err != nil {\n\t\treturn\n\t}\n\ttypeByte = buffer[0]\n\tif _, ok := msgCtl.typeMap[typeByte]; !ok {\n\t\terr = ErrMsgType\n\t\treturn\n\t}\n\n\tvar length int64\n\terr = binary.Read(c, binary.BigEndian, &length)\n\tif err != nil {\n\t\treturn\n\t}\n\tif length > msgCtl.maxMsgLength {\n\t\terr = ErrMaxMsgLength\n\t\treturn\n\t} else if length < 0 {\n\t\terr = ErrMsgLength\n\t\treturn\n\t}\n\n\tbuffer = make([]byte, length)\n\tn, err := io.ReadFull(c, buffer)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif int64(n) != length {\n\t\terr = ErrMsgFormat\n\t}\n\treturn\n}\n\nfunc (msgCtl *MsgCtl) ReadMsg(c io.Reader) (msg Message, err error) {\n\ttypeByte, buffer, err := msgCtl.readMsg(c)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn msgCtl.UnPack(typeByte, buffer)\n}\n\nfunc (msgCtl *MsgCtl) ReadMsgInto(c io.Reader, msg Message) (err error) {\n\t_, buffer, err := msgCtl.readMsg(c)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn msgCtl.UnPackInto(buffer, msg)\n}\n\nfunc (msgCtl *MsgCtl) WriteMsg(c io.Writer, msg interface{}) (err error) {\n\tbuffer, err := msgCtl.Pack(msg)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif _, err = c.Write(buffer); err != nil {\n\t\treturn\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/bemfa/device.go",
    "content": "package bemfa\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"log\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tMQTT \"github.com/eclipse/paho.mqtt.golang\"\n)\n\nconst (\n\tbemfaHost = \"bemfa.com\"\n\t//mqttPort  = 9501\n\tmqttsPort = 9503\n)\n\nconst (\n\tDisconnected uint32 = iota\n\tConnecting\n\tReconnecting\n\tConnected\n)\n\ntype Device struct {\n\tlinkState              uint32\n\tsecretKey              string\n\textStroe               sync.Map\n\tsecureVerify           bool\n\thttpClientTimeout      int\n\tpowerChangeCallbackMap map[string]map[string]func(string)\n\tmu                     *sync.Mutex\n\n\tclient MQTT.Client\n\t//clientMu sync.Mutex\n}\n\nfunc CreateDevice(secretKey string, secureVerify bool, httpClientTimeout int) *Device {\n\td := &Device{secretKey: secretKey, secureVerify: secureVerify, httpClientTimeout: httpClientTimeout}\n\td.powerChangeCallbackMap = make(map[string]map[string]func(string))\n\td.mu = &sync.Mutex{}\n\treturn d\n}\n\nfunc (d *Device) OnLine() bool {\n\tstate := atomic.LoadUint32(&d.linkState)\n\treturn state == Connected\n}\n\nfunc (d *Device) IsDisconnected() bool {\n\tstate := atomic.LoadUint32(&d.linkState)\n\treturn state == Disconnected\n}\n\nfunc (d *Device) ResigsterPowerChangeCallbackFunc(subTopic, key string, f func(string)) error {\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.client == nil {\n\t\treturn fmt.Errorf(\"client == nil\")\n\t}\n\tif _, ok := d.powerChangeCallbackMap[subTopic]; ok { //已订阅\n\t\td.powerChangeCallbackMap[subTopic][key] = f\n\t} else {\n\t\td.powerChangeCallbackMap[subTopic] = make(map[string]func(string))\n\t\td.powerChangeCallbackMap[subTopic][key] = f\n\t\t//fmt.Printf(\"订阅主题\")\n\t\td.client.Subscribe(subTopic, 1, d.ReceiveMessageHandler)\n\t}\n\treturn nil\n}\n\nfunc (d *Device) UnRegisterPowerChangeCallbackFunc(subTopic, key string) {\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif _, ok := d.powerChangeCallbackMap[subTopic]; !ok { //已订阅\n\t\treturn\n\t}\n\n\tdelete(d.powerChangeCallbackMap[subTopic], key)\n\n\tif len(d.powerChangeCallbackMap[subTopic]) <= 0 {\n\t\tdelete(d.powerChangeCallbackMap, subTopic)\n\t}\n\n}\n\nfunc (d *Device) StoreExtData(key any, val any) {\n\td.extStroe.Store(key, val)\n}\n\nfunc (d *Device) GetExtData(key any) (val any, ok bool) {\n\tval, ok = d.extStroe.Load(key)\n\treturn\n}\n\nfunc (d *Device) Login() error {\n\topts := MQTT.NewClientOptions()\n\n\tbrokeyURL := fmt.Sprintf(\"mqtts://%s:%d\", bemfaHost, mqttsPort)\n\topts.AddBroker(brokeyURL)\n\topts.SetClientID(d.secretKey)\n\topts.SetUsername(\"\")\n\topts.SetPassword(\"\")\n\topts.SetConnectTimeout(time.Second * 2)\n\topts.SetKeepAlive(time.Second * 30)\n\topts.SetTLSConfig(&tls.Config{InsecureSkipVerify: !d.secureVerify})\n\topts.SetAutoReconnect(true)\n\topts.ConnectRetryInterval = time.Second * 3\n\n\topts.SetOnConnectHandler(func(c MQTT.Client) {\n\t\tlog.Printf(\"巴法云 [%s]已连接\\n\", d.secretKey)\n\t\td.mu.Lock()\n\t\td.client = c\n\t\td.mu.Unlock()\n\t\tatomic.StoreUint32(&d.linkState, Connected)\n\t\td.SubTopicOption()\n\t})\n\topts.OnConnectionLost = func(c MQTT.Client, err error) {\n\t\tlog.Printf(\"巴法云 [%s]连接丢失:%s\\n\", d.secretKey, err.Error())\n\t\tatomic.StoreUint32(&d.linkState, Disconnected)\n\n\t}\n\topts.SetReconnectingHandler(func(c MQTT.Client, opt *MQTT.ClientOptions) {\n\t\tatomic.StoreUint32(&d.linkState, Reconnecting)\n\t})\n\n\tclient := MQTT.NewClient(opts)\n\tif token := client.Connect(); token.Wait() && token.Error() != nil {\n\t\treturn fmt.Errorf(\"连接出错:%s\", token.Error())\n\t}\n\n\treturn nil\n}\n\nfunc (d *Device) Stop() {\n\td.closeMQTTClient()\n}\n\nfunc (d *Device) closeMQTTClient() {\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.client == nil {\n\t\treturn\n\t}\n\td.client.Disconnect(0)\n\tlog.Printf(\"巴法云 [%s]主动关闭连接\", d.secretKey)\n\td.client = nil\n}\n\nfunc (d *Device) SubTopicOption() {\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.client == nil {\n\t\treturn\n\t}\n\ttopicList := []string{}\n\n\tfor k := range d.powerChangeCallbackMap {\n\t\ttopicList = append(topicList, k)\n\t}\n\n\tfor _, t := range topicList {\n\t\td.client.Subscribe(t, 1, d.ReceiveMessageHandler)\n\t}\n}\n\nfunc (d *Device) ReceiveMessageHandler(c MQTT.Client, m MQTT.Message) {\n\t//\tfmt.Printf(\"接收到MQTT消息:\\n[【%s】\\n%s\\n\\n\", m.Topic(), m.Payload())\n\t// switch string(m.Payload()) {\n\t// case \"on\":\n\t// \tc.Publish(\"switch001/up\", 1, true, m.Payload())\n\t// case \"off\":\n\t// \tc.Publish(\"switch001/up\", 1, true, m.Payload())\n\t// default:\n\t// }\n\tc.Publish(fmt.Sprintf(\"%s/up\", m.Topic()), 1, true, m.Payload())\n\tgo d.handlerReceivemessage(m.Topic(), string(m.Payload()))\n}\n\nfunc (d *Device) handlerReceivemessage(topic, msg string) {\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif _, ok := d.powerChangeCallbackMap[topic]; !ok {\n\t\treturn\n\t}\n\tfor _, f := range d.powerChangeCallbackMap[topic] {\n\t\tf(msg)\n\t}\n}\n"
  },
  {
    "path": "thirdlib/gdylib/bemfa/global.go",
    "content": "package bemfa\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar bemfaStore sync.Map\nvar bemfaStroeMu sync.Mutex\n\nfunc GetBemfaDevice(secretKey string, httpClientSecureVerify bool, httpClientTimeout int) (*Device, error) {\n\tbemfaStroeMu.Lock()\n\tdefer bemfaStroeMu.Unlock()\n\tdevice, deviceOk := bemfaStore.Load(secretKey)\n\tif deviceOk {\n\t\td := device.(*Device)\n\t\tif d.OnLine() {\n\t\t\treturn d, nil\n\t\t}\n\n\t\tif d.IsDisconnected() {\n\n\t\t\td.Stop()\n\n\t\t\terr := d.Login()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"bemfa Device login error:%s\", err.Error())\n\t\t\t}\n\n\t\t\ti := 0\n\t\t\tfor {\n\t\t\t\t<-time.After(time.Second * 200)\n\t\t\t\ti++\n\t\t\t\tif d.OnLine() {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif i > 26 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif d.OnLine() {\n\t\t\t\treturn d, nil\n\t\t\t}\n\n\t\t\treturn nil, fmt.Errorf(\"blinker drvice 连接服务器失败\")\n\t\t}\n\n\t\treturn device.(*Device), nil\n\t}\n\td := CreateDevice(secretKey, httpClientSecureVerify, httpClientTimeout)\n\n\terr := d.Login()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"bemfa Device Login error:%s\", err.Error())\n\t}\n\n\ti := 0\n\tfor {\n\t\t<-time.After(time.Millisecond * 100)\n\t\ti++\n\t\tif d.OnLine() {\n\t\t\tbreak\n\t\t}\n\t\tif i > 51 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t//fmt.Printf(\"在线\\n\")\n\n\tif d.OnLine() {\n\t\tbemfaStore.Store(secretKey, d)\n\t\treturn d, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"bemfa drvice 连接服务器失败\")\n}\n\nfunc UnRegisterPowerChangeCallback(d *Device, topic, key string) {\n\tbemfaStroeMu.Lock()\n\tdefer bemfaStroeMu.Unlock()\n\td.UnRegisterPowerChangeCallbackFunc(topic, key)\n\n\tif len(d.powerChangeCallbackMap) != 0 {\n\t\treturn\n\t}\n\n\td.Stop()\n\tbemfaStore.Delete(d.secretKey)\n\n}\n"
  },
  {
    "path": "thirdlib/gdylib/blinker/VoiceAssistant.go",
    "content": "package blinker\n\nimport \"fmt\"\n\nconst (\n\tVA_TYPE_LIGHT        = \"light\"\n\tVA_TYPE_OUTLET       = \"outlet\"\n\tVA_TYPE_MULTI_OUTLET = \"multi_outlet\"\n\tVA_TYPE_SENSOR       = \"sensor\"\n\tVA_TYPE_FAN          = \"fan\"\n\tVA_TYPE_AIRCONDITION = \"aircondition\"\n)\n\ntype VoiceAssistant struct {\n\tDeviceType string //语言助手类型 (设备类型).\n\tVAType     string //语言助手类型  MIOT AliGenie DuerOS\n\tDevice     *BlinkerDevice\n\ttopic      string\n}\n\nfunc (v *VoiceAssistant) GetSKey() string {\n\tswitch v.VAType {\n\tcase \"MIOT\":\n\t\treturn \"miType\"\n\tcase \"AliGenie\":\n\t\treturn \"aliType\"\n\tcase \"DuerOS\":\n\t\treturn \"duerType\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\nfunc (v *VoiceAssistant) PowerChangeReply(msgid, st string) {\n\tstate := \"off\"\n\n\tif st == \"true\" {\n\t\tstate = \"on\"\n\t}\n\n\t// if v.VAType == \"MIOT\" {\n\t// \tif state == \"on\" {\n\t// \t\tstate = \"true\"\n\t// \t} else {\n\t// \t\tstate = \"false\"\n\t// \t}\n\t// }\n\n\tdata := map[string]string{\"pState\": state}\n\tv.Device.SendMessage(\"vAssistant\", v.GetToDevice(), msgid, data)\n}\n\nfunc (v *VoiceAssistant) QueryDeviceState(msgid string) {\n\tstate := v.Device.state\n\t// if v.VAType == \"MIOT\" {\n\t// \tif state == \"on\" {\n\t// \t\tstate = \"true\"\n\t// \t} else {\n\t// \t\tstate = \"false\"\n\t// \t}\n\t// }\n\tdata := map[string]string{\"pState\": state}\n\tv.Device.SendMessage(\"vAssistant\", v.GetToDevice(), msgid, data)\n}\n\nfunc (v *VoiceAssistant) GetToDevice() string {\n\t// if v.Device.DetailInfo.Broker == \"blinker\" {\n\t// \treturn \"ServerReceiver\"\n\t// }\n\treturn v.topic\n}\n\nfunc CreateVoiceAssistant(deviceType, vaType string) *VoiceAssistant {\n\tswitch vaType {\n\tcase \"MIOT\":\n\t\treturn &VoiceAssistant{DeviceType: deviceType, VAType: vaType, topic: fmt.Sprintf(\"%s_r\", vaType)}\n\tcase \"AliGenie\":\n\t\treturn &VoiceAssistant{DeviceType: deviceType, VAType: vaType, topic: fmt.Sprintf(\"%s_r\", vaType)}\n\tcase \"DuerOS\":\n\t\t{\n\t\t\tnewDeviceType := \"\"\n\t\t\tswitch deviceType {\n\t\t\tcase VA_TYPE_LIGHT:\n\t\t\t\tnewDeviceType = \"LIGHT\"\n\t\t\tcase VA_TYPE_OUTLET:\n\t\t\t\tnewDeviceType = \"SOCKET\"\n\t\t\tcase VA_TYPE_MULTI_OUTLET:\n\t\t\t\tnewDeviceType = \"MULTI_SOCKET\"\n\t\t\tcase VA_TYPE_SENSOR:\n\t\t\t\tnewDeviceType = \"AIR_MONITOR\"\n\t\t\tdefault:\n\t\t\t}\n\t\t\tif newDeviceType == \"\" {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn &VoiceAssistant{DeviceType: newDeviceType, VAType: vaType, topic: fmt.Sprintf(\"%s_r\", vaType)}\n\t\t}\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "thirdlib/gdylib/blinker/device.go",
    "content": "package blinker\n\nimport (\n\t\"compress/gzip\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/buger/jsonparser\"\n\tMQTT \"github.com/eclipse/paho.mqtt.golang\"\n)\n\nconst (\n\tHOST                = \"https://iot.diandeng.tech\"\n\tAPI_AUTH            = HOST + \"/api/v1/user/device/diy/auth\"\n\tAPI_HEARTBEAT       = HOST + \"/api/v1/user/device/heartbeat\"\n\tAPI_VOICE_ASSISTANT = HOST + \"/api/v1/user/device/voice_assistant\"\n)\n\ntype BlinkerDevice struct {\n\tauthKey string\n\n\tsubTopic    string\n\tpubTopic    string\n\texasubTopic string //aliyun特有\n\texapubTopic string //aliyun特有\n\n\tclient        MQTT.Client\n\tDetailInfo    BlinkerDetailInfo\n\theartBeatChan chan uint8\n\thbmu          sync.Mutex\n\tpreSendTime   time.Time\n\tsendMsgChan   chan message\n\t//\n\tstate string\n\n\tvoiceAssistants map[string]*VoiceAssistant\n}\n\ntype message struct {\n\tTargetType string\n\tDevice     string\n\tMessageID  string\n\tMsg        any\n}\n\nfunc CreateBlinkerDevice(ak string) *BlinkerDevice {\n\td := &BlinkerDevice{authKey: ak}\n\td.voiceAssistants = make(map[string]*VoiceAssistant)\n\td.state = \"on\"\n\treturn d\n}\n\nfunc (d *BlinkerDevice) AddVoiceAssistant(v *VoiceAssistant) {\n\tv.Device = d\n\td.voiceAssistants[v.VAType] = v\n}\n\nfunc (d *BlinkerDevice) SyncAssistants() error {\n\tfor _, v := range d.voiceAssistants {\n\t\tskey := v.GetSKey()\n\t\tdataMap := make(map[string]string)\n\t\tdataMap[\"token\"] = d.DetailInfo.IotToken\n\t\tdataMap[skey] = v.DeviceType\n\n\t\tdataBytes, _ := json.Marshal(dataMap)\n\n\t\tresp, err := http.Post(API_VOICE_ASSISTANT, \"application/json\", strings.NewReader(string(dataBytes)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = GetBytesFromHttpResponse(resp)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t//fmt.Printf(\"同步语音助手结果:%s\\n\", respBytes)\n\t}\n\n\treturn nil\n}\n\nfunc (d *BlinkerDevice) RunSenderMessageService() {\n\tfor m := range d.sendMsgChan {\n\t\tt := time.Since(d.preSendTime) - time.Millisecond*1100\n\t\tif t < 0 {\n\t\t\t//log.Printf(\"太快,睡眠一下:%d\\n\", -t)\n\t\t\t<-time.After(-t)\n\t\t}\n\t\td.sendMessage(m.TargetType, m.Device, m.MessageID, m.Msg)\n\t}\n\n}\n\nfunc (d *BlinkerDevice) RunHeartBearTimer() {\n\tif !d.hbmu.TryLock() {\n\t\treturn\n\t}\n\tdefer d.hbmu.Unlock()\n\tlog.Printf(\"开始心跳...\\n\")\n\td.heartBeatChan <- uint8(1)\n\tfor range d.heartBeatChan {\n\t\td.heartBeat()\n\t\t<-time.After(time.Second * 599)\n\t\td.heartBeatChan <- uint8(1)\n\t}\n\tlog.Printf(\"心跳中止...\\n\")\n}\n\nfunc (d *BlinkerDevice) Init() error {\n\tapiurl := fmt.Sprintf(\"%s?authKey=%s\", API_AUTH, d.authKey)\n\tresp, err := http.Get(apiurl)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"device init http.Get err:%s\", err.Error())\n\t}\n\n\tvar infoRes BlinkerInfoRes\n\terr = GetAndParseJSONResponseFromHttpResponse(resp, &infoRes)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"parse DeviceInfo resp err:%s\", err.Error())\n\t}\n\n\td.DetailInfo = infoRes.Detail\n\n\terr = d.SyncAssistants()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// if d.DetailInfo.Broker == \"blinker\" {\n\t// \td.subTopic = fmt.Sprintf(\"/device/%s/r\", d.DetailInfo.DeviceName)\n\t// \td.pubTopic = fmt.Sprintf(\"/device/%s/s\", d.DetailInfo.DeviceName)\n\t// \treturn nil\n\t// }\n\n\t// if d.DetailInfo.Broker == \"aliyun\" {\n\t// \td.subTopic = fmt.Sprintf(\"/%s/%s/r\", d.DetailInfo.ProductKey, d.DetailInfo.DeviceName)\n\t// \td.pubTopic = fmt.Sprintf(\"/%s/%s/s\", d.DetailInfo.ProductKey, d.DetailInfo.DeviceName)\n\t// \td.exasubTopic = \"/device/ServerSender/r\"\n\t// \td.exapubTopic = \"/device/ServerReceiver/s\"\n\t// \treturn nil\n\t// }\n\n\td.subTopic = fmt.Sprintf(\"/device/%s/r\", d.DetailInfo.DeviceName)\n\td.pubTopic = fmt.Sprintf(\"/device/%s/s\", d.DetailInfo.DeviceName)\n\td.exasubTopic = \"/device/ServerSender/r\"\n\td.exapubTopic = \"/device/ServerReceiver/s\"\n\n\treturn nil\n}\n\nfunc (d *BlinkerDevice) Login() error {\n\topts := MQTT.NewClientOptions()\n\n\tbrokeyURL := fmt.Sprintf(\"%s:%s\", d.DetailInfo.Host, d.DetailInfo.Port)\n\n\t//brokeyURL := fmt.Sprintf(\"tcp://broker.diandeng.tech:%s\", d.DetailInfo.Port)\n\topts.AddBroker(brokeyURL)\n\topts.SetClientID(d.DetailInfo.DeviceName)\n\topts.SetUsername(d.DetailInfo.IotID)\n\topts.SetPassword(d.DetailInfo.IotToken)\n\n\t//opts.SetKeepAlive(time.Second * 3)\n\t//opts.WillRetained = true\n\n\t//choke := make(chan [2]string)\n\t// opts.SetDefaultPublishHandler(func(client MQTT.Client, msg MQTT.Message) {\n\t// \t//choke <- [2]string{msg.Topic(), string(msg.Payload())}\n\t// \tmsg.Payload()\n\t// })\n\n\topts.SetOnConnectHandler(func(c MQTT.Client) {\n\t\tlog.Printf(\"连接成功!\")\n\t\td.client = c\n\t\tc.Subscribe(d.subTopic, byte(0), d.ReceiveMessageHandler)\n\t\t//c.Subscribe(d.exasubTopic, byte(0), d.ReceiveMessageHandler)\n\t\td.heartBeatChan = make(chan uint8, 1)\n\t\tgo d.RunHeartBearTimer()\n\t\td.sendMsgChan = make(chan message, 8)\n\t\tgo d.RunSenderMessageService()\n\t})\n\n\topts.OnConnectionLost = func(c MQTT.Client, err error) {\n\t\tlog.Printf(\"连接丢失:%s\\n\", err.Error())\n\t\tclose(d.heartBeatChan)\n\t\tclose(d.sendMsgChan)\n\t\td.client = nil\n\t}\n\n\t//opts.\n\n\tclient := MQTT.NewClient(opts)\n\n\tif token := client.Connect(); token.Wait() && token.Error() != nil {\n\t\treturn fmt.Errorf(\"连接出错:%s\", token.Error())\n\t}\n\n\t<-time.After(time.Second * 60000)\n\n\treturn nil\n}\n\nfunc (d *BlinkerDevice) heartBeat() error {\n\n\t//hr := fmt.Sprintf(\"%s?deviceName=%s&key=%s&heartbeat=600\", SERVER+HEARTBEAT_URL, d.DetailInfo.DeviceName, d.authKey)\n\n\thr := fmt.Sprintf(\"%s?deviceName=%s&key=%s&heartbeat=600\", API_HEARTBEAT, d.DetailInfo.DeviceName, d.authKey)\n\tresp, err := http.Get(hr)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"device init http.Get err:%s\", err.Error())\n\t}\n\n\trespBytes, err := GetBytesFromHttpResponse(resp)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfmt.Printf(\"HearBeat:%s\\n\", string(respBytes))\n\treturn nil\n}\n\nfunc (d *BlinkerDevice) ReceiveMessageHandler(c MQTT.Client, m MQTT.Message) {\n\n\tlog.Printf(\"接收到MQTT消息:【%s】%s\\n\", m.Topic(), m.Payload())\n\n\tif m.Topic() != d.subTopic {\n\t\treturn\n\t}\n\n\tfromDevice, fromDeviceErr := jsonparser.GetString(m.Payload(), \"fromDevice\")\n\tif fromDeviceErr != nil || (fromDevice != d.DetailInfo.UUID && fromDevice != \"ServerSender\") {\n\t\treturn\n\t}\n\n\tif fromDevice == d.DetailInfo.UUID {\n\t\td.ownAppMessagehandler(m.Payload())\n\t\treturn\n\t}\n\n\tfrom, fromErr := jsonparser.GetString(m.Payload(), \"data\", \"from\")\n\tif fromErr != nil {\n\t\treturn\n\t}\n\tswitch from {\n\tcase \"MIOT\", \"AliGenie\", \"DuerOS\":\n\t\td.voiceAssistantMessageHandler(from, m.Payload())\n\tdefault:\n\t}\n\n}\n\nfunc (d *BlinkerDevice) voiceAssistantMessageHandler(from string, msg []byte) {\n\n\tfmt.Printf(\"from:%s msg:%s\\n\", from, string(msg))\n\n\tva, ok := d.voiceAssistants[from]\n\tif !ok {\n\n\t\treturn\n\t}\n\n\t//fmt.Printf(\"voiceAssistantMessageHandler\\t msg:[%s]\\n\", msg)\n\tmessageId, messageIdErr := jsonparser.GetString(msg, \"data\", \"messageId\")\n\tif messageIdErr != nil {\n\t\treturn\n\t}\n\n\t//jsonparser.GetString(msg, \"data\", \"set\")\n\tpstate, pstateErr := jsonparser.GetString(msg, \"data\", \"set\", \"pState\")\n\tif pstateErr == nil {\n\t\td.powerChange(va, messageId, pstate)\n\t\treturn\n\t}\n\n\t_, getKeyerr := jsonparser.GetString(msg, \"data\", \"get\")\n\tif getKeyerr == nil {\n\t\tva.QueryDeviceState(messageId)\n\t}\n\t//va.Power()\n\n}\n\nfunc (d *BlinkerDevice) powerChange(va *VoiceAssistant, msgId, state string) {\n\td.state = state\n\tif va != nil {\n\t\tva.PowerChangeReply(msgId, state)\n\t}\n}\n\nfunc (d *BlinkerDevice) ownAppMessagehandler(msg []byte) {\n\tgetValue, getKeyError := jsonparser.GetString(msg, \"data\", \"get\")\n\tif getKeyError == nil {\n\t\tswitch getValue {\n\t\tcase \"state\":\n\t\t\td.SendMessage(\"OwnApp\", d.DetailInfo.UUID, \"\", map[string]any{\"state\": \"online\"})\n\t\tcase \"timing\":\n\t\t\td.SendMessage(\"OwnApp\", d.DetailInfo.UUID, \"\", map[string]any{\"timing\": map[string]any{\"timing\": []any{}}}) //{\"timing\":{\"timing\":[]}}\n\t\tcase \"countdown\":\n\t\t\td.SendMessage(\"OwnApp\", d.DetailInfo.UUID, \"\", map[string]any{\"countdown\": \"false\"}) //`{ \"countdown\": false }`\n\t\tdefault:\n\t\t\tfmt.Printf(` \"data\", \"get\":Value:%s`, getValue)\n\t\t}\n\n\t\treturn\n\t}\n}\n\ntype mess2device struct {\n\tDeviceType string `json:\"deviceType\"`\n\tData       any    `json:\"data\"`\n\tFromDeivce string `json:\"fromDevice\"`\n\tToDevice   string `json:\"toDevice\"`\n}\n\ntype mess2assistant struct {\n\tDeviceType string `json:\"deviceType\"`\n\tData       any    `json:\"data\"`\n\tFromDeivce string `json:\"fromDevice\"`\n\tToDevice   string `json:\"toDevice\"`\n\tMessageID  string `json:\"-\"` //`json:\"messageId\"`\n}\n\nfunc (d *BlinkerDevice) formatMess2assistant(targetType, toDevice, msgid string, data any) ([]byte, error) {\n\tm := mess2assistant{DeviceType: targetType, Data: data, FromDeivce: d.DetailInfo.DeviceName, ToDevice: toDevice, MessageID: msgid}\n\trawBytes, err := json.Marshal(m)\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\n\tstr := base64.StdEncoding.EncodeToString(rawBytes)\n\tlog.Printf(\"回复语音助手:%s\\n\", string(rawBytes))\n\t//fmt.Printf(\"base64:%s\\n\", str)\n\n\treturn []byte(str), nil\n\t//return rawBytes, nil\n}\n\nfunc (d *BlinkerDevice) formatMess2Device(targetType, toDevice string, data any) ([]byte, error) {\n\tm := mess2device{DeviceType: targetType, Data: data, FromDeivce: d.DetailInfo.DeviceName, ToDevice: toDevice}\n\treturn json.Marshal(m)\n}\n\nfunc (d *BlinkerDevice) SendMessage(targetType, todevice, msgid string, msg any) {\n\tm := message{Device: todevice, Msg: msg, TargetType: targetType, MessageID: msgid}\n\td.sendMsgChan <- m\n}\n\nfunc (d *BlinkerDevice) sendMessage(targetType, todevice, msgid string, msg any) error {\n\tif d.client == nil {\n\t\treturn fmt.Errorf(\"SendMessage error:client == nil\")\n\t}\n\tvar pubTopic string\n\tvar payload []byte\n\tvar err error\n\tif targetType == \"OwnApp\" {\n\t\tpubTopic = d.pubTopic\n\t\tpayload, err = d.formatMess2Device(targetType, todevice, msg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if targetType == \"vAssistant\" {\n\t\t//pubTopic = \"/device/ServerReceiver/s\"\n\t\t//pubTopic = fmt.Sprintf(\"/sys/%s/%s/rrpc/response/%s\", d.DetailInfo.ProductKey, d.DetailInfo.DeviceName, msgid)\n\t\t//pubTopic = fmt.Sprintf(\"%s\", d.exapubTopic)\n\t\tpubTopic = d.pubTopic\n\t\tpayload, err = d.formatMess2assistant(targetType, todevice, msgid, msg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfmt.Printf(\"topic:%s\\n\", pubTopic)\n\n\tif token := d.client.Publish(pubTopic, 0, false, payload); token.Wait() && token.Error() != nil {\n\t\tfmt.Printf(\"Publish error:%s\\n\", token.Error())\n\t\treturn token.Error()\n\t}\n\td.preSendTime = time.Now()\n\n\treturn nil\n}\n\n//-----------------------\n\ntype BlinkerDetailInfo struct {\n\tBroker     string `json:\"broker\"`\n\tDeviceName string `json:\"deviceName\"`\n\tHost       string `json:\"host\"`\n\tIotID      string `json:\"iotId\"`\n\tIotToken   string `json:\"iotToken\"`\n\tPort       string `json:\"port\"`\n\tProductKey string `json:\"productKey\"`\n\tUUID       string `json:\"uuid\"`\n}\n\ntype BlinkerInfoRes struct {\n\tMessage int               `json:\"message\"`\n\tDetail  BlinkerDetailInfo `json:\"detail\"`\n}\n\n// GetStringFromHttpResponse 从response获取\nfunc GetBytesFromHttpResponse(resp *http.Response) ([]byte, error) {\n\tif resp == nil || resp.Body == nil {\n\t\treturn []byte{}, fmt.Errorf(\"resp.Body = nil\")\n\t}\n\tdefer resp.Body.Close()\n\tvar body []byte\n\tvar err error\n\tif resp.Header.Get(\"Content-Encoding\") == \"gzip\" {\n\t\treader, err := gzip.NewReader(resp.Body)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\tbody, err = ioutil.ReadAll(reader)\n\t\treturn body, err\n\t}\n\tbody, err = ioutil.ReadAll(resp.Body)\n\treturn body, err\n}\n\nfunc GetAndParseJSONResponseFromHttpResponse(resp *http.Response, result interface{}) error {\n\tbytes, err := GetBytesFromHttpResponse(resp)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"GetBytesFromHttpResponse err:%s\", err.Error())\n\t}\n\tif len(bytes) > 0 {\n\t\terr = json.Unmarshal(bytes, &result)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"请求接口解析json结果失败! ERROR: %s\\n\", err)\n\t\t\treturn fmt.Errorf(\"GetAndParseJSONResponseFromHttpResponse 解析JSON结果出错：%s\", err.Error())\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/blinker/global.go",
    "content": "package blinker\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar blinkerDeviceStore sync.Map\nvar blinkerdeviceStroeMu sync.Mutex\n\nfunc GetBlinkerDevice(authKey string, httpClientSecureVerify bool, httpClientTimeout int) (*Device, error) {\n\tblinkerdeviceStroeMu.Lock()\n\tdefer blinkerdeviceStroeMu.Unlock()\n\tdevice, deviceOk := blinkerDeviceStore.Load(authKey)\n\tif deviceOk {\n\t\td := device.(*Device)\n\t\tif d.OnLine() {\n\t\t\treturn d, nil\n\t\t}\n\n\t\tif d.IsDisconnected() {\n\t\t\terr := d.Init()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"blinker Device init error:%s\", err.Error())\n\t\t\t}\n\n\t\t\td.Stop()\n\n\t\t\terr = d.Login()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"blinker Device login error:%s\", err.Error())\n\t\t\t}\n\n\t\t\ti := 0\n\t\t\tfor {\n\t\t\t\t<-time.After(time.Second * 200)\n\t\t\t\ti++\n\t\t\t\tif d.OnLine() {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif i > 26 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif d.OnLine() {\n\t\t\t\treturn d, nil\n\t\t\t}\n\n\t\t\treturn nil, fmt.Errorf(\"blinker drvice 连接服务器失败\")\n\t\t}\n\n\t\treturn device.(*Device), nil\n\t}\n\td := CreateDevice(authKey, httpClientSecureVerify, httpClientTimeout)\n\td.AddVoiceAssistant(CreateVoiceAssistant(VA_TYPE_OUTLET, \"MIOT\"))\n\td.AddVoiceAssistant(CreateVoiceAssistant(VA_TYPE_OUTLET, \"AliGenie\"))\n\td.AddVoiceAssistant(CreateVoiceAssistant(VA_TYPE_OUTLET, \"DuerOS\"))\n\terr := d.Init()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"blinker Device init error:%s\", err.Error())\n\t}\n\n\terr = d.Login()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"blinker Device Login error:%s\", err.Error())\n\t}\n\n\ti := 0\n\tfor {\n\t\t<-time.After(time.Millisecond * 100)\n\t\ti++\n\t\tif d.OnLine() {\n\t\t\tbreak\n\t\t}\n\t\tif i > 51 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t//fmt.Printf(\"在线\\n\")\n\n\tif d.OnLine() {\n\t\tblinkerDeviceStore.Store(authKey, d)\n\t\treturn d, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"blinker drvice 连接服务器失败\")\n}\n\n// func RegisterPowerChangeCallback(authkey, key string, cb func(string)) (*Device, error) {\n// \td, err := GetBlinkerDevice(authkey)\n// \tif err != nil {\n// \t\treturn nil, err\n// \t}\n// \td.RegisterPowerChangeCallbackFunc(key, cb)\n// \treturn d, nil\n// }\n\nfunc UnRegisterPowerChangeCallback(d *Device, key string) {\n\tblinkerdeviceStroeMu.Lock()\n\tdefer blinkerdeviceStroeMu.Unlock()\n\td.UnRegisterPowerChangeCallbackFunc(key)\n\n\tisEmpty := true\n\td.powerChangeCallbackMap.Range(func(key any, val any) bool {\n\t\tisEmpty = false\n\t\treturn false\n\t})\n\n\tif isEmpty {\n\t\td.Stop()\n\t\tblinkerDeviceStore.Delete(d.authKey)\n\t}\n}\n"
  },
  {
    "path": "thirdlib/gdylib/dnsutils/resolve.go",
    "content": "package dnsutils\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/miekg/dns\"\n\t\"golang.org/x/net/idna\"\n)\n\nvar DefaultIPv6DNSServerList = []string{\n\t\"[2001:4860:4860::8888]:53\", //谷歌\n\t\"[2001:4860:4860::8844]:53\", //谷歌\n\t\"[2606:4700:4700::64]:53\",   //cloudflare\n\t\"[2606:4700:4700::6400]:53\", //cloudflare\n\t\"[240C::6666]:53\",           //下一代互联网北京研究中心\n\t\"[240C::6644]:53\",           //下一代互联网北京研究中心\n\t\"[2402:4e00::]:53\",          //dnspod\n\t//\"[2400:3200::1]:53\",         //阿里\n\t//\t\t\"[2400:3200:baba::1]:53\",    //阿里\n\t\"[240e:4c:4008::1]:53\",  //中国电信\n\t\"[240e:4c:4808::1]:53\",  //中国电信\n\t\"[2408:8899::8]:53\",     //中国联通\n\t\"[2408:8888::8]:53\",     //中国联通\n\t\"[2409:8088::a]:53\",     //中国移动\n\t\"[2409:8088::b]:53\",     //中国移动\n\t\"[2001:dc7:1000::1]:53\", //CNNIC\n\t\"[2400:da00::6666]:53\",  //百度\n}\n\nvar DefaultIPv4DNSServerList = []string{\n\t\"1.1.1.1:53\",\n\t\"1.2.4.8:53\",\n\t\"8.8.8.8:53\",\n\t\"9.9.9.9:53\",\n\t\"8.8.4.4:53\",\n\t\"114.114.114.114:53\",\n\t\"223.5.5.5:53\",\n\t\"223.6.6.6:53\",\n\t\"101.226.4.6:53\",\n\t\"218.30.118.6:53\",\n\t\"119.28.28.28:53\",\n}\n\nfunc ResolveDomainAtServerList(queryType, domain string, dnsServerList []string) (string, error) {\n\n\tif len(dnsServerList) == 0 {\n\t\tif queryType == \"AAAA\" {\n\t\t\tdnsServerList = DefaultIPv6DNSServerList\n\t\t} else {\n\t\t\tdnsServerList = DefaultIPv4DNSServerList\n\t\t}\n\t}\n\n\t//some name that ought to exist, does not exist (NXDOMAIN)\n\n\tquerytype, querytypeOk := dns.StringToType[strings.ToUpper(queryType)]\n\tif !querytypeOk {\n\t\treturn \"\", fmt.Errorf(\"queryType error:%s\", queryType)\n\t}\n\n\tif strings.HasPrefix(domain, \"*.\") {\n\t\trandomStr := stringsp.GetRandomString(8)\n\t\tdomain = strings.Replace(domain, \"*\", randomStr, 1)\n\t}\n\n\tdomain = dns.Fqdn(domain)\n\tdomain, err := idna.ToASCII(domain)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(` idna.ToASCII(domain) error:%s`, err.Error())\n\t}\n\n\tm := new(dns.Msg)\n\tm.SetQuestion(domain, querytype)\n\tm.MsgHdr.RecursionDesired = true\n\n\tc := new(dns.Client)\n\tnoExistTimes := 0\n\tfor _, dnsServer := range dnsServerList {\n\t\tc.Net = \"\"\n\t\tipaddr, err := resolveDomain(m, c, dnsServer)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"[%s]===>[%s][%s] ResolveDomain error:%s\", dnsServer, queryType, domain, err.Error())\n\t\t\tif strings.Contains(err.Error(), \"some name that ought to exist, does not exist (NXDOMAIN)\") {\n\t\t\t\tnoExistTimes++\n\t\t\t\tif noExistTimes >= 4 {\n\t\t\t\t\treturn \"\", fmt.Errorf(\"解析域名[%s][%s]IP失败:noExistTimes\", queryType, domain)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn ipaddr, nil\n\t}\n\n\treturn \"\", fmt.Errorf(\"解析域名[%s][%s]IP失败\", queryType, domain)\n}\n\nfunc resolveDomain(msg *dns.Msg, client *dns.Client, dnsServer string) (string, error) {\n\nRedo:\n\tif in, _, err := client.Exchange(msg, dnsServer); err == nil { // Second return value is RTT, not used for now\n\t\tif in.MsgHdr.Truncated {\n\t\t\tclient.Net = \"tcp\"\n\t\t\tgoto Redo\n\t\t}\n\n\t\tswitch in.MsgHdr.Rcode {\n\t\tcase dns.RcodeServerFailure:\n\t\t\treturn \"\", fmt.Errorf(\"the name server encountered an internal failure while processing this request (SERVFAIL)\")\n\t\tcase dns.RcodeNameError:\n\t\t\treturn \"\", fmt.Errorf(\"some name that ought to exist, does not exist (NXDOMAIN)\")\n\t\tcase dns.RcodeRefused:\n\t\t\treturn \"\", fmt.Errorf(\"the name server refuses to perform the specified operation for policy or security reasons (REFUSED)\")\n\t\tdefault:\n\t\t\t//fmt.Printf(\"in.Answer len:%d\\n\", len(in.Answer))\n\t\t\tfor _, rr := range in.Answer {\n\t\t\t\t//fmt.Printf(\"rr.String :%s\\n\", rr.String())\n\t\t\t\treturn strings.Replace(rr.String(), rr.Header().String(), \"\", -1), nil\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", fmt.Errorf(\"DNS server could not be reached\")\n}\n"
  },
  {
    "path": "thirdlib/gdylib/fileutils/fileutils.go",
    "content": "package fileutils\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\n//获取当前路径\nfunc GetCurrentDirectory() string {\n\tdir, err := filepath.Abs(filepath.Dir(os.Args[0]))\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\treturn dir\n}\n\n//保存base64为文件，一般用于保存图片\nfunc SaveBase64AsFile(base64Str *string, fileURL string) (err error) {\n\tdecodeStr, _ := base64.StdEncoding.DecodeString(*base64Str) //把base64写入缓存\n\terr = ioutil.WriteFile(fileURL, decodeStr, 0666)            //buffer输出到jpg文件中（不做处理，直接写到文件）\n\treturn\n}\n\n//判断文件或文件夹是否存在\nfunc FileExists(path string) (bool, error) {\n\t_, err := os.Stat(path)\n\tif err == nil {\n\t\treturn true, nil\n\t}\n\tif os.IsNotExist(err) {\n\t\treturn false, nil\n\t}\n\treturn false, err\n}\n\n//保存Text到文本\nfunc SaveTextToFile(text, fileURL string) error {\n\tdstFile, err := os.Create(fileURL)\n\tif err != nil {\n\t\tfmt.Println(err.Error())\n\t\treturn err\n\t}\n\tdefer dstFile.Close()\n\tdstFile.WriteString(text + \"\\n\")\n\treturn nil\n}\n\n//ReadTextFromFile 从文本读取内容\nfunc ReadTextFromFile(path string) (string, error) {\n\tfi, err := os.Open(path)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer fi.Close()\n\tfd, err := ioutil.ReadAll(fi)\n\treturn string(fd), nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/fileutils/run_linux.go",
    "content": "package fileutils\n\nimport (\n\t\"os/exec\"\n)\n\n//OpenProgramOrFile 启动程序\nfunc OpenProgramOrFile(argv []string) error {\n\n\tvar startArgvs []string\n\n\tfor i := range argv {\n\t\tif i == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tstartArgvs = append(startArgvs, argv[i])\n\t}\n\t//startArgvs = append(startArgvs, \"-c\")\n\t//startArgvs = append(startArgvs, argv...)\n\n\t//fmt.Printf(\"fuck...%v \\n\", startArgvs)\n\n\t//cmd := exec.Command(\"/bin/bash\", startArgvs...)\n\tcmd := exec.Command(argv[0], startArgvs...)\n\treturn cmd.Start()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/fileutils/run_windows.go",
    "content": "package fileutils\n\nimport \"os/exec\"\n\n//OpenProgramOrFile 启动程序\nfunc OpenProgramOrFile(argv []string) error {\n\n\tvar startArgvs []string\n\n\tstartArgvs = append(startArgvs, \"/C\")\n\tstartArgvs = append(startArgvs, \"start\")\n\n\tstartArgvs = append(startArgvs, argv...)\n\n\tcmd := exec.Command(\"cmd.exe\", startArgvs...)\n\treturn cmd.Start()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/ginutils/basicAuth.go",
    "content": "package ginutils\n\nimport (\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\t\"unsafe\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\ntype BasicAuthPair struct {\n\tvalue string\n\tuser  string\n}\n\ntype BasicAuthPairs []BasicAuthPair\n\nfunc ProcessAccounts(accounts gin.Accounts) BasicAuthPairs {\n\tlength := len(accounts)\n\tassert1(length > 0, \"Empty list of authorized credentials\")\n\tpairs := make(BasicAuthPairs, 0, length)\n\tfor user, password := range accounts {\n\t\tassert1(user != \"\", \"User can not be empty\")\n\t\tvalue := authorizationHeader(user, password)\n\t\tpairs = append(pairs, BasicAuthPair{\n\t\t\tvalue: value,\n\t\t\tuser:  user,\n\t\t})\n\t}\n\treturn pairs\n}\n\nfunc authorizationHeader(user, password string) string {\n\tbase := user + \":\" + password\n\treturn \"Basic \" + base64.StdEncoding.EncodeToString(StringToBytes(base))\n}\n\nfunc assert1(guard bool, text string) {\n\tif !guard {\n\t\tpanic(text)\n\t}\n}\n\nfunc StringToBytes(s string) []byte {\n\treturn *(*[]byte)(unsafe.Pointer(\n\t\t&struct {\n\t\t\tstring\n\t\t\tCap int\n\t\t}{s, len(s)},\n\t))\n}\n\nfunc (a BasicAuthPairs) SearchCredential(authValue string) (string, bool) {\n\tif authValue == \"\" {\n\t\treturn \"\", false\n\t}\n\tfor _, pair := range a {\n\t\tif subtle.ConstantTimeCompare(StringToBytes(pair.value), StringToBytes(authValue)) == 1 {\n\t\t\treturn pair.user, true\n\t\t}\n\t}\n\treturn \"\", false\n}\n"
  },
  {
    "path": "thirdlib/gdylib/ginutils/jwt.go",
    "content": "package ginutils\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/golang-jwt/jwt\"\n)\n\nfunc GetJWTToken(tokenString, tokenKey string) (t *jwt.Token, e error) {\n\ttoken, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {\n\t\treturn []byte(tokenKey), nil\n\t})\n\tif err != nil {\n\t\t//beego.Error(\"Parse token:\", err)\n\t\tif ve, ok := err.(*jwt.ValidationError); ok {\n\t\t\tif ve.Errors&jwt.ValidationErrorMalformed != 0 {\n\t\t\t\t// That's not even a token\n\t\t\t\treturn nil, errors.New(\"errInputData\")\n\t\t\t} else if ve.Errors&(jwt.ValidationErrorExpired|jwt.ValidationErrorNotValidYet) != 0 {\n\t\t\t\t// Token is either expired or not active yet\n\t\t\t\treturn nil, errors.New(\"errExpired\")\n\t\t\t} else {\n\t\t\t\t// Couldn't handle this token\n\t\t\t\treturn nil, errors.New(\"errInputData\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Couldn't handle this token\n\t\t\treturn nil, errors.New(\"errInputData\")\n\t\t}\n\t}\n\tif !token.Valid {\n\t\t//beego.Error(\"Token invalid:\", tokenString)\n\t\treturn nil, errors.New(\"errInputData\")\n\t}\n\n\treturn token, nil\n}\n\n// info 存储的信息\n// key 加密的key\n// exp 有效期\n// GetJWTTokenString 获取Token字符串\nfunc GetJWTTokenString(info map[string]interface{}, key string, exp time.Duration) (string, error) {\n\tclaims := make(jwt.MapClaims)\n\tclaims[\"exp\"] = time.Now().Add(exp).Unix() //token 24小时有效期\n\tfor k := range info {\n\t\tclaims[k] = info[k]\n\t}\n\n\ttoken := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)\n\ttokenString, err := token.SignedString([]byte(key))\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"生成TokenString出错:%s\", err.Error())\n\t}\n\n\treturn tokenString, nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/ginutils/staticFilesHandler.go",
    "content": "package ginutils\n\nimport (\n\t\"io/fs\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc HandlerStaticFiles(files fs.FS) gin.HandlerFunc {\n\tfileServer := http.FileServer(http.FS(files))\n\treturn func(c *gin.Context) {\n\t\tstaticFile := isStaticFile(http.FS(files), c.Request.URL.Path, true)\n\t\tif staticFile {\n\t\t\tfileServer.ServeHTTP(c.Writer, c.Request)\n\t\t\tc.Abort()\n\t\t\treturn\n\t\t}\n\t\tc.Next()\n\t}\n}\n\nfunc isStaticFile(fs http.FileSystem, name string, redirect bool) (isFile bool) {\n\tconst indexPage = \"/index.html\"\n\tif strings.HasSuffix(name, indexPage) {\n\t\treturn true\n\t}\n\tf, err := fs.Open(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\tdefer f.Close()\n\t_, err = f.Stat()\n\treturn err == nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/ginutils/utils.go",
    "content": "package ginutils\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\n// Cors 处理跨域请求,支持options访问\nfunc Cors(params ...interface{}) gin.HandlerFunc {\n\treturn func(c *gin.Context) {\n\t\tmethod := c.Request.Method\n\n\t\tc.Header(\"Access-Control-Allow-Origin\", \"*\")\n\t\tc.Header(\"Access-Control-Allow-Headers\", \"Content-Type,AccessToken,X-CSRF-Token, Authorization, Token,access_token\")\n\t\tc.Header(\"Access-Control-Allow-Methods\", \"POST, GET, PUT,OPTIONS,DELETE\")\n\t\tc.Header(\"Access-Control-Expose-Headers\", \"Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type\")\n\t\tc.Header(\"Access-Control-Allow-Credentials\", \"true\")\n\n\t\t//放行所有OPTIONS方法\n\t\tif method == \"OPTIONS\" {\n\t\t\tc.AbortWithStatus(http.StatusNoContent)\n\t\t}\n\t\t// 处理请求\n\t\tc.Next()\n\t}\n}\n\n// GetChildDomain 获取子域名部分\nfunc GetChildDomain(host string) string {\n\thostSplitList := strings.Split(host, \".\")\n\tlistLen := len(hostSplitList)\n\tvar resBuilder strings.Builder\n\n\tfor i := range hostSplitList {\n\t\tif i >= listLen-2 {\n\t\t\tbreak\n\t\t}\n\t\tif resBuilder.Len() > 0 {\n\t\t\tresBuilder.WriteString(\".\")\n\t\t}\n\t\tresBuilder.WriteString(hostSplitList[i])\n\t}\n\n\treturn resBuilder.String()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/httputils/common.go",
    "content": "package httputils\n\nimport (\n\t\"compress/gzip\"\n\t\"context\"\n\t\"crypto/tls\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/net/proxy\"\n)\n\nvar globalTransportMap map[string]*http.Transport\nvar globalTransportMapMutex sync.Mutex\n\nfunc init() {\n\tglobalTransportMap = make(map[string]*http.Transport)\n}\n\nfunc SplitHostPort(hostPort string) (host, port string) {\n\thost = hostPort\n\n\tcolon := strings.LastIndexByte(host, ':')\n\tif colon != -1 && validOptionalPort(host[colon:]) {\n\t\thost, port = host[:colon], host[colon+1:]\n\t}\n\n\tif strings.HasPrefix(host, \"[\") && strings.HasSuffix(host, \"]\") {\n\t\thost = host[1 : len(host)-1]\n\t}\n\n\treturn\n}\n\nfunc validOptionalPort(port string) bool {\n\tif port == \"\" {\n\t\treturn true\n\t}\n\tif port[0] != ':' {\n\t\treturn false\n\t}\n\tfor _, b := range port[1:] {\n\t\tif b < '0' || b > '9' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc GetAndParseJSONResponseFromHttpResponse(resp *http.Response, result interface{}) error {\n\tbytes, err := GetBytesFromHttpResponse(resp)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"GetBytesFromHttpResponse err:%s\", err.Error())\n\t}\n\tif len(bytes) > 0 {\n\t\terr = json.Unmarshal(bytes, &result)\n\t\tif err != nil {\n\t\t\t//log.Printf(\"请求接口解析json结果失败! ERROR: %s\\n\", err)\n\t\t\treturn fmt.Errorf(\"GetAndParseJSONResponseFromHttpResponse 解析JSON结果出错：%s\", err.Error())\n\t\t}\n\t}\n\treturn nil\n}\n\n// GetStringFromHttpResponse 从response获取\nfunc GetBytesFromHttpResponse(resp *http.Response) ([]byte, error) {\n\tif resp == nil || resp.Body == nil {\n\t\treturn []byte{}, fmt.Errorf(\"resp.Body = nil\")\n\t}\n\tdefer resp.Body.Close()\n\tvar body []byte\n\tvar err error\n\tif resp.Header.Get(\"Content-Encoding\") == \"gzip\" {\n\t\treader, err := gzip.NewReader(resp.Body)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\tbody, err = ioutil.ReadAll(reader)\n\t\treturn body, err\n\t}\n\tbody, err = ioutil.ReadAll(resp.Body)\n\treturn body, err\n}\n\n// GetStringFromHttpResponse 从response获取\nfunc GetStringFromHttpResponse(resp *http.Response) (string, error) {\n\trespBytes, err := GetBytesFromHttpResponse(resp)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn string(respBytes), nil\n}\n\ntype transportIt struct {\n\tNetwork          string\n\tLocalAddr        string\n\tProxyType        string\n\tProxyUrl         string\n\tUser             string\n\tPasswd           string\n\tSecureSkipVerify bool\n}\n\nfunc (t *transportIt) String() string {\n\treturn fmt.Sprintf(\"%s,%s,%s,%s,%s,%s,%v\", t.Network, t.LocalAddr, t.ProxyType, t.ProxyUrl, t.User, t.Passwd, t.SecureSkipVerify)\n}\n\n// NewTransport\n// transportNetwork 网络类型 tcp tcp4 tcp6\n// localAddr 指定网卡出口\nfunc NewTransport(transportNetwork,\n\tlocalAddrStr string,\n\tsecureSkipVerify bool,\n\tproxyType,\n\tproxyUrl,\n\tuser,\n\tpasswd string) (*http.Transport, error) {\n\tvar transport *http.Transport\n\tproxyType = strings.ToLower(proxyType)\n\tti := transportIt{\n\t\tNetwork:          transportNetwork,\n\t\tLocalAddr:        localAddrStr,\n\t\tProxyType:        proxyType,\n\t\tProxyUrl:         proxyUrl,\n\t\tUser:             user,\n\t\tPasswd:           passwd,\n\t\tSecureSkipVerify: secureSkipVerify}\n\n\tglobalTransportMapMutex.Lock()\n\tdefer globalTransportMapMutex.Unlock()\n\n\ttr, ok := globalTransportMap[ti.String()]\n\tif ok {\n\t\t//log.Printf(\"map[%s]已存在\", ti.String())\n\t\treturn tr, nil\n\t}\n\t//log.Printf(\"map[%s]未存在\", ti.String())\n\n\tswitch proxyType {\n\tcase \"http\", \"https\":\n\t\t{\n\t\t\t//log.Printf(\"http proxy Transport network:%s\", transportNetwork)\n\t\t\tif !strings.Contains(proxyUrl, \"http\") {\n\t\t\t\tproxyUrl = fmt.Sprintf(\"%s://%s\", proxyType, proxyUrl)\n\t\t\t}\n\t\t\turlProxy, err := url.Parse(proxyUrl)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"NewTransport=>proxy url.Parse error:%s\", err.Error())\n\t\t\t}\n\n\t\t\tif user != \"\" && passwd != \"\" {\n\t\t\t\turlProxy.User = url.UserPassword(user, passwd)\n\t\t\t}\n\n\t\t\tvar localAddr net.Addr\n\t\t\tlocalAddr = nil\n\n\t\t\tif localAddrStr != \"\" {\n\t\t\t\tlAddr, err := net.ResolveTCPAddr(transportNetwork, localAddrStr+\":0\")\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"NewTransport=> ResolveTCPAddr localAddr:%s error:%s\", localAddrStr, err.Error())\n\t\t\t\t}\n\t\t\t\tlocalAddr = lAddr\n\t\t\t}\n\n\t\t\tdialer := (&net.Dialer{\n\t\t\t\tTimeout:   30 * time.Second,\n\t\t\t\tKeepAlive: 30 * time.Second,\n\t\t\t\tLocalAddr: localAddr,\n\t\t\t})\n\n\t\t\ttransport = &http.Transport{\n\n\t\t\t\tTLSClientConfig: &tls.Config{InsecureSkipVerify: secureSkipVerify},\n\t\t\t\tProxy:           http.ProxyURL(urlProxy),\n\t\t\t\tDialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {\n\t\t\t\t\treturn dialer.Dial(transportNetwork, addr)\n\t\t\t\t},\n\t\t\t\tForceAttemptHTTP2:     true,\n\t\t\t\tDial:                  dialer.Dial,\n\t\t\t\tMaxIdleConns:          100,\n\t\t\t\tIdleConnTimeout:       90 * time.Second,\n\t\t\t\tTLSHandshakeTimeout:   10 * time.Second,\n\t\t\t\tExpectContinueTimeout: 1 * time.Second,\n\t\t\t}\n\t\t}\n\tcase \"socket5\", \"socks5\":\n\t\t{\n\t\t\t//log.Printf(\"socket5 proxy Transport network:%s\", transportNetwork)\n\t\t\tvar userAuth proxy.Auth\n\t\t\tif user != \"\" && passwd != \"\" {\n\t\t\t\tuserAuth.User = user\n\t\t\t\tuserAuth.Password = passwd\n\t\t\t}\n\n\t\t\tdialer, err := proxy.SOCKS5(\"tcp\", proxyUrl, &userAuth, proxy.Direct)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"NewTransport=>proxy.SOCKS5 error:%s\", err.Error())\n\t\t\t}\n\n\t\t\ttransport = &http.Transport{\n\t\t\t\tTLSClientConfig: &tls.Config{InsecureSkipVerify: secureSkipVerify},\n\t\t\t\tDialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {\n\t\t\t\t\treturn dialer.Dial(transportNetwork, addr)\n\t\t\t\t},\n\t\t\t\tDial: (&net.Dialer{\n\t\t\t\t\tTimeout:   30 * time.Second,\n\t\t\t\t\tKeepAlive: 30 * time.Second,\n\t\t\t\t}).Dial,\n\t\t\t\tForceAttemptHTTP2:     true,\n\t\t\t\tMaxIdleConns:          100,\n\t\t\t\tIdleConnTimeout:       90 * time.Second,\n\t\t\t\tTLSHandshakeTimeout:   10 * time.Second,\n\t\t\t\tExpectContinueTimeout: 1 * time.Second,\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t{\n\t\t\t//log.Printf(\"default Transport network:%s\", transportNetwork)\n\t\t\tvar localAddr net.Addr\n\n\t\t\tlocalAddr = nil\n\t\t\tif localAddrStr != \"\" {\n\t\t\t\tlAddr, err := net.ResolveTCPAddr(transportNetwork, localAddrStr+\":0\")\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"NewTransport=> ResolveTCPAddr localAddr:%s error:%s\", localAddrStr, err.Error())\n\t\t\t\t}\n\t\t\t\tlocalAddr = lAddr\n\t\t\t}\n\n\t\t\tdialer := (&net.Dialer{\n\t\t\t\tTimeout:   30 * time.Second,\n\t\t\t\tKeepAlive: 30 * time.Second,\n\t\t\t\tLocalAddr: localAddr,\n\t\t\t\tControl: func(network, address string, c syscall.RawConn) error {\n\t\t\t\t\t//\tfmt.Printf(\"network:%s\\taddress:%s\\n\", network, address)\n\t\t\t\t\tif network != transportNetwork && transportNetwork != \"tcp\" {\n\t\t\t\t\t\treturn fmt.Errorf(\"must use :%s\", transportNetwork)\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t})\n\n\t\t\ttransport = &http.Transport{\n\t\t\t\tDisableKeepAlives: true,\n\t\t\t\tTLSClientConfig:   &tls.Config{InsecureSkipVerify: secureSkipVerify},\n\t\t\t\tDialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {\n\t\t\t\t\treturn dialer.Dial(transportNetwork, addr)\n\t\t\t\t},\n\t\t\t\tDial:                  dialer.Dial,\n\t\t\t\tForceAttemptHTTP2:     true,\n\t\t\t\tMaxIdleConns:          100,\n\t\t\t\tIdleConnTimeout:       90 * time.Second,\n\t\t\t\tTLSHandshakeTimeout:   10 * time.Second,\n\t\t\t\tExpectContinueTimeout: 1 * time.Second,\n\t\t\t}\n\t\t}\n\n\t}\n\n\tglobalTransportMap[ti.String()] = transport\n\n\treturn transport, nil\n}\n\nfunc CreateHeadersMap(headers []string) map[string]string {\n\thm := make(map[string]string)\n\tfor _, header := range headers {\n\t\tkvSpliteIndex := strings.Index(header, \":\")\n\t\tif kvSpliteIndex < 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif kvSpliteIndex+1 > len(header) {\n\t\t\tcontinue\n\t\t}\n\t\tkey := header[:kvSpliteIndex]\n\t\tvalue := header[kvSpliteIndex+1:]\n\t\thm[key] = value\n\t}\n\n\treturn hm\n}\n"
  },
  {
    "path": "thirdlib/gdylib/httputils/goututils.go",
    "content": "package httputils\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/guonaihong/gout\"\n\t\"github.com/guonaihong/gout/dataflow\"\n)\n\nfunc NewGout(transportNetwork, localAddr string, secureSkipVerify bool, proxyType, proxyUrl, user, passwd string, timeout time.Duration) (*dataflow.Gout, error) {\n\thttpClient, err := CreateHttpClient(transportNetwork, localAddr, secureSkipVerify, proxyType, proxyUrl, user, passwd, timeout)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"CreateHttpClient error:%s\", err.Error())\n\t}\n\n\treturn gout.New(httpClient), nil\n}\n\nfunc GetAndParseJSONResponseFromGoutDoHttpRequest(transportNetwork, localAddr, method, url, requestBody, proxyType, proxyUrl, user, passwd string,\n\theaders map[string]string, secureSkipVerify bool, timeout time.Duration, result interface{}) error {\n\t_, bytes, err := GetBytesFromGoutDoHttpRequest(\n\t\ttransportNetwork,\n\t\tlocalAddr,\n\t\tmethod,\n\t\turl,\n\t\trequestBody,\n\t\tproxyType,\n\t\tproxyUrl, user, passwd, headers, secureSkipVerify, timeout)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"GetBytesFromHttpResponse err:%s\", err.Error())\n\t}\n\tif len(bytes) > 0 {\n\t\terr = json.Unmarshal(bytes, &result)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"GetAndParseJSONResponseFromHttpResponse 解析JSON结果出错：%s\", err.Error())\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc GetStringGoutDoHttpRequest(transportNetwork, localAddr, method, url, requestBody, proxyType, proxyUrl, user, passwd string,\n\theaders map[string]string, secureSkipVerify bool, timeout time.Duration) (int, string, error) {\n\tstatusCode, bytes, err := GetBytesFromGoutDoHttpRequest(transportNetwork, localAddr, method, url, requestBody, proxyType, proxyUrl, user, passwd, headers, secureSkipVerify, timeout)\n\tif err != nil {\n\t\treturn 0, \"\", err\n\t}\n\treturn statusCode, string(bytes), nil\n}\n\nfunc GetBytesFromGoutDoHttpRequest(transportNetwork, localAddr, method, url, requestBody, proxyType, proxyUrl, user, passwd string,\n\theaders map[string]string, secureSkipVerify bool, timeout time.Duration) (int, []byte, error) {\n\tgout, err := NewGout(\n\t\ttransportNetwork,\n\t\tlocalAddr,\n\t\tsecureSkipVerify,\n\t\tproxyType,\n\t\tproxyUrl,\n\t\tuser,\n\t\tpasswd, timeout)\n\tif err != nil {\n\t\treturn 0, []byte{}, fmt.Errorf(\"GoutDoHttpRequest err:%s\", err.Error())\n\t}\n\n\tswitch strings.ToLower(method) {\n\tcase \"get\":\n\t\tgout.GET(url)\n\tcase \"post\":\n\t\tgout.POST(url)\n\tcase \"put\":\n\t\tgout.PUT(url)\n\tcase \"delete\":\n\t\tgout.DELETE(url)\n\tdefault:\n\t\treturn 0, []byte{}, fmt.Errorf(\"未支持的Callback请求方法:%s\", method)\n\t}\n\n\tbasicAuthUserName, BasicAuthUserNameOk := headers[\"BasicAuthUserName\"]\n\tbasicAuthPassword, BasicAuthPasswordOk := headers[\"BasicAuthPassword\"]\n\tif BasicAuthUserNameOk && BasicAuthPasswordOk {\n\t\tgout.SetBasicAuth(basicAuthUserName, basicAuthPassword)\n\t}\n\tdelete(headers, \"BasicAuthUserName\")\n\tdelete(headers, \"BasicAuthPassword\")\n\n\tif len(requestBody) > 0 && method != \"get\" {\n\t\tif json.Valid([]byte(requestBody)) {\n\t\t\tgout.SetJSON(requestBody)\n\t\t} else {\n\t\t\tgout.SetWWWForm(requestBody)\n\t\t}\n\t}\n\n\tgout.SetHeader(headers)\n\t//gout.SetTimeout(timeout)\n\n\tresp, err := gout.Response()\n\tif err != nil {\n\t\treturn 0, []byte{}, fmt.Errorf(\"gout.Response() error:%s\", err.Error())\n\t}\n\trespByte, respErr := GetBytesFromHttpResponse(resp)\n\n\treturn resp.StatusCode, respByte, respErr\n}\n"
  },
  {
    "path": "thirdlib/gdylib/httputils/httpclient.go",
    "content": "package httputils\n\nimport (\n\t\"net/http\"\n\t\"time\"\n)\n\nfunc CreateHttpClient(transportNetwork, localAddr string, secureSkipVerify bool, proxyType, proxyUrl, user, passwd string, timeout time.Duration) (*http.Client, error) {\n\n\ttransport, err := NewTransport(transportNetwork, localAddr, secureSkipVerify, proxyType, proxyUrl, user, passwd)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient := &http.Client{\n\t\tTimeout:   timeout,\n\t\tTransport: transport}\n\n\treturn httpClient, nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/logsbuffer/logsbuffer.go",
    "content": "package logsbuffer\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype LogsBuffer struct {\n\tbufferSize     int\n\tpreTimeStamp   int64\n\ttimeStampIndex int64\n\tlogsStore      []LogItem\n\tmu             sync.RWMutex\n\tfireCallback   func(entry *logrus.Entry) error\n}\n\ntype LogItem struct {\n\tTimestamp int64\n\tContent   string\n\tData      map[string]any\n}\n\nfunc (l *LogsBuffer) AddLog(t time.Time, msg string, data map[string]any) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\n\tif l.preTimeStamp == t.UnixNano() {\n\t\tl.timeStampIndex++\n\t} else {\n\t\tl.timeStampIndex = 0\n\t}\n\n\tli := LogItem{Timestamp: t.UnixNano() + l.timeStampIndex, Content: strings.TrimSpace(msg), Data: data}\n\tl.logsStore = append(l.logsStore, li)\n\tl.preTimeStamp = t.UnixNano()\n\tif len(l.logsStore) > l.bufferSize+16 {\n\t\tl.logsStore = l.logsStore[len(l.logsStore)-l.bufferSize:]\n\t}\n}\n\nfunc (l *LogsBuffer) Fire(entry *logrus.Entry) error {\n\n\tentryStr, err := entry.String()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"entry.String() err:%s\", err.Error())\n\t}\n\n\tif l.fireCallback != nil {\n\t\treturn l.fireCallback(entry)\n\t} else {\n\t\tl.AddLog(entry.Time, entryStr, entry.Data)\n\t}\n\n\treturn nil\n}\n\nfunc (l *LogsBuffer) SetFireCallback(f func(entry *logrus.Entry) error) {\n\tl.fireCallback = f\n}\n\nfunc (l *LogsBuffer) Levels() []logrus.Level {\n\treturn logrus.AllLevels\n}\n\nfunc (l *LogsBuffer) Write(p []byte) (n int, err error) {\n\n\tl.AddLog(time.Now(), string(p), nil)\n\n\treturn len(p), nil\n}\n\nfunc (l *LogsBuffer) GetLogs(logItemConvertFunc func(*LogItem) any, fTimestamp int64) []any {\n\tl.mu.RLock()\n\tdefer l.mu.RUnlock()\n\tvar logs []any\n\tfor i := range l.logsStore {\n\t\tif l.logsStore[i].Timestamp <= fTimestamp {\n\t\t\tcontinue\n\t\t}\n\t\tlg := l.getLogItem(logItemConvertFunc, l.logsStore[i])\n\n\t\tlogs = append(logs, lg)\n\t}\n\treturn logs\n}\n\nfunc (l *LogsBuffer) GetLastLogs(logItemConvertFunc func(*LogItem) any, maxCount int) []any {\n\tl.mu.RLock()\n\tdefer l.mu.RUnlock()\n\tlogCount := len(l.logsStore)\n\tvar resRaw []LogItem\n\tif maxCount >= logCount {\n\t\tresRaw = l.logsStore[0:]\n\t} else {\n\t\tresRaw = l.logsStore[logCount-maxCount:]\n\t}\n\tvar logs []any\n\tfor i := range resRaw {\n\t\tlg := l.getLogItem(logItemConvertFunc, resRaw[i])\n\t\tlogs = append(logs, lg)\n\t}\n\treturn logs\n}\n\nfunc (l *LogsBuffer) GetLogsByLimit(logItemConvertFunc func(*LogItem) any, pageSize, page int) (int, []any) {\n\tl.mu.RLock()\n\tdefer l.mu.RUnlock()\n\tlogCount := len(l.logsStore)\n\tvar resRaw []LogItem\n\n\tfirstIndex := (page - 1) * pageSize\n\tendIndex := firstIndex + pageSize\n\n\tif firstIndex < logCount {\n\t\tif endIndex >= logCount {\n\t\t\tresRaw = l.logsStore[firstIndex:]\n\t\t} else {\n\t\t\tresRaw = l.logsStore[firstIndex:endIndex]\n\t\t}\n\t}\n\n\tvar logs []any\n\tfor i := range resRaw {\n\t\tlg := l.getLogItem(logItemConvertFunc, resRaw[i])\n\t\tlogs = append(logs, lg)\n\t}\n\treturn logCount, logs\n}\n\nfunc (l *LogsBuffer) getLogItem(logItemConvertFunc func(*LogItem) any, li LogItem) any {\n\tvar lg any\n\tif logItemConvertFunc == nil {\n\t\tlg = li\n\t} else {\n\t\tlg = logItemConvertFunc(&li)\n\t}\n\treturn lg\n}\n\nfunc (l *LogsBuffer) ClearLog() {\n\tl.logsStore = l.logsStore[:0]\n}\n\nfunc Create(size int) *LogsBuffer {\n\tlb := &LogsBuffer{bufferSize: size}\n\treturn lb\n}\n\nfunc (l *LogsBuffer) SetBufferSize(size int) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tl.bufferSize = size\n\tif len(l.logsStore) > l.bufferSize {\n\t\tl.logsStore = l.logsStore[len(l.logsStore)-l.bufferSize:]\n\t}\n}\n\nfunc (l *LogsBuffer) GetBufferSize() int {\n\tl.mu.RLock()\n\tdefer l.mu.RUnlock()\n\treturn l.bufferSize\n}\n\nfunc (l *LogsBuffer) GetLogCount() int {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\treturn len(l.logsStore)\n}\n\n//---------------------------\n\nvar LogsBufferStore map[string]*LogsBuffer\nvar LogsBufferStoreMu sync.Mutex\n\nfunc init() {\n\tLogsBufferStore = make(map[string]*LogsBuffer)\n}\n\nfunc CreateLogbuffer(key string, buffSize int) *LogsBuffer {\n\tif strings.TrimSpace(key) == \"\" {\n\t\treturn nil\n\t}\n\tLogsBufferStoreMu.Lock()\n\tdefer LogsBufferStoreMu.Unlock()\n\tvar buf *LogsBuffer\n\tvar ok bool\n\tif buf, ok = LogsBufferStore[key]; !ok {\n\t\tbuf = &LogsBuffer{}\n\t\tbuf.SetBufferSize(buffSize)\n\t\tLogsBufferStore[key] = buf\n\t} else if buf.GetBufferSize() != buffSize {\n\t\tbuf.SetBufferSize(buffSize)\n\t}\n\treturn buf\n}\n"
  },
  {
    "path": "thirdlib/gdylib/netinterfaces/netInterface.go",
    "content": "package netinterfaces\n\nimport (\n\t\"log\"\n\t\"net\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// NetInterface 本机网络\ntype NetInterface struct {\n\tNetInterfaceName string\n\tAddressList      []string\n}\n\n// GetNetInterface 获得网卡地址\n// 返回ipv4, ipv6地址\nfunc GetNetInterface() (ipv4NetInterfaces []NetInterface, ipv6NetInterfaces []NetInterface, err error) {\n\tallNetInterfaces, err := net.Interfaces()\n\tif err != nil {\n\t\t//fmt.Println(\"net.Interfaces failed, err:\", err.Error())\n\t\treturn ipv4NetInterfaces, ipv6NetInterfaces, err\n\t}\n\n\t// https://en.wikipedia.org/wiki/IPv6_address#General_allocation\n\t//_, ipv6Unicast, _ := net.ParseCIDR(\"2000::/3\")\n\n\tfor i := 0; i < len(allNetInterfaces); i++ {\n\t\tif (allNetInterfaces[i].Flags & net.FlagUp) != 0 {\n\t\t\taddrs, _ := allNetInterfaces[i].Addrs()\n\t\t\tipv4 := []string{}\n\t\t\tipv6 := []string{}\n\n\t\t\tfor _, address := range addrs {\n\t\t\t\tif ipnet, ok := address.(*net.IPNet); ok && ipnet.IP.IsGlobalUnicast() {\n\t\t\t\t\t_, bits := ipnet.Mask.Size()\n\t\t\t\t\t// 需匹配全局单播地址\n\t\t\t\t\t//if bits == 128 && ipv6Unicast.Contains(ipnet.IP) {\n\t\t\t\t\tif bits == 128 {\n\t\t\t\t\t\tipv6 = append(ipv6, ipnet.IP.String())\n\t\t\t\t\t}\n\t\t\t\t\tif bits == 32 {\n\t\t\t\t\t\tipv4 = append(ipv4, ipnet.IP.String())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif len(ipv4) > 0 {\n\t\t\t\tipv4NetInterfaces = append(\n\t\t\t\t\tipv4NetInterfaces,\n\t\t\t\t\tNetInterface{\n\t\t\t\t\t\tNetInterfaceName: allNetInterfaces[i].Name,\n\t\t\t\t\t\tAddressList:      ipv4,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif len(ipv6) > 0 {\n\t\t\t\tipv6NetInterfaces = append(\n\t\t\t\t\tipv6NetInterfaces,\n\t\t\t\t\tNetInterface{\n\t\t\t\t\t\tNetInterfaceName: allNetInterfaces[i].Name,\n\t\t\t\t\t\tAddressList:      ipv6,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\n\t\t}\n\t}\n\n\treturn ipv4NetInterfaces, ipv6NetInterfaces, nil\n}\n\nfunc GetIPFromNetInterface(ipType, netinterface, ipreg string) string {\n\tipv4NetInterfaces, ipv6NetInterfaces, err := GetNetInterface()\n\tif err != nil {\n\t\tlog.Printf(\"获取网卡信息出错：%s\", err.Error())\n\t\treturn \"\"\n\t}\n\n\tvar netInterfaces []NetInterface\n\n\tswitch ipType {\n\tcase \"IPv6\":\n\t\tnetInterfaces = ipv6NetInterfaces\n\tcase \"IPv4\":\n\t\tnetInterfaces = ipv4NetInterfaces\n\tdefault:\n\t\tlog.Printf(\"未知IP类型\")\n\t\treturn \"\"\n\t}\n\n\tvar addressList []string\n\tfor i := range netInterfaces {\n\t\tif netInterfaces[i].NetInterfaceName == netinterface {\n\t\t\taddressList = netInterfaces[i].AddressList\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif len(addressList) <= 0 {\n\t\treturn \"\"\n\t}\n\n\tif ipreg == \"\" { //默认返回第一个IP\n\t\treturn addressList[0]\n\t}\n\n\tipN, err := strconv.Atoi(ipreg)\n\tif err == nil { //选择第N个IP\n\t\tif len(addressList) < ipN {\n\t\t\tlog.Printf(\"当前选择网卡[%s]的第[%d]个IP,超出列表范围\", netinterface, ipN)\n\t\t\treturn \"\"\n\t\t}\n\t\treturn addressList[ipN-1]\n\t}\n\n\tfor i := range addressList {\n\t\tmatched, err := regexp.MatchString(ipreg, addressList[i])\n\t\tif matched && err == nil {\n\t\t\t//log.Printf(\"正则匹配上\")\n\t\t\treturn addressList[i]\n\t\t}\n\t}\n\n\tif len(ipreg) <= 1 {\n\t\treturn \"\"\n\t}\n\n\tif ipreg[len(ipreg)-1] == '*' {\n\t\tprefixStr := ipreg[:len(ipreg)-1]\n\t\tlog.Printf(\"匹配以 %s 开头的IP\", prefixStr)\n\t\tfor i := range addressList {\n\t\t\tif strings.HasPrefix(addressList[i], prefixStr) {\n\t\t\t\treturn addressList[i]\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tif ipreg[0] == '*' {\n\t\tsuffixStr := ipreg[1:]\n\t\tlog.Printf(\"匹配以 %s 结尾的IP\", suffixStr)\n\t\tfor i := range addressList {\n\t\t\tif strings.HasSuffix(addressList[i], suffixStr) {\n\t\t\t\treturn addressList[i]\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\n\treturn \"\"\n}\n\nfunc GetGlobalIPv4BroadcastList() []string {\n\tvar res []string\n\tallNetInterfaces, err := net.Interfaces()\n\tif err != nil {\n\t\treturn res\n\t}\n\n\tfor i := 0; i < len(allNetInterfaces); i++ {\n\t\tif (allNetInterfaces[i].Flags & net.FlagUp) != 0 {\n\t\t\taddrs, _ := allNetInterfaces[i].Addrs()\n\n\t\t\tfor _, address := range addrs {\n\t\t\t\tif ipnet, ok := address.(*net.IPNet); ok && ipnet.IP.IsGlobalUnicast() {\n\t\t\t\t\t_, bits := ipnet.Mask.Size()\n\t\t\t\t\t// 需匹配全局单播地址\n\t\t\t\t\t//if bits == 128 && ipv6Unicast.Contains(ipnet.IP) {\n\n\t\t\t\t\tif bits == 32 {\n\t\t\t\t\t\t//ipv4 = append(ipv4, ipnet.IP.String())\n\t\t\t\t\t\tbcst := GetBroadcast(ipnet.IP, ipnet.Mask)\n\t\t\t\t\t\tres = append(res, bcst)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\treturn res\n}\n\nfunc GetBroadcast(ip net.IP, mask net.IPMask) string {\n\n\tbcst := make(net.IP, len(ip))\n\tcopy(bcst, ip)\n\tfor i := 0; i < len(mask); i++ {\n\t\tipIdx := len(bcst) - i - 1\n\t\tbcst[ipIdx] = ip[ipIdx] | ^mask[len(mask)-i-1]\n\t}\n\treturn bcst.String()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/pool/buf.go",
    "content": "package pool\n\nimport (\n\t\"sync\"\n)\n\nvar (\n\tbufPool    sync.Pool\n\tbufPool1k  sync.Pool\n\tbufPool2k  sync.Pool\n\tbufPool4k  sync.Pool\n\tbufPool8k  sync.Pool\n\tbufPool16k sync.Pool\n)\n\nconst (\n\tk16 = 16 * 1024\n\tk8  = 8 * 1024\n\tk4  = 4 * 1024\n\tk2  = 2 * 1024\n\tk1  = 1024\n)\n\nfunc GetBuf(size int) []byte {\n\tvar x interface{}\n\tswitch {\n\tcase size >= k16:\n\t\tx = bufPool16k.Get()\n\tcase size >= k8:\n\t\tx = bufPool8k.Get()\n\tcase size >= k4:\n\t\tx = bufPool4k.Get()\n\tcase size >= k2:\n\t\tx = bufPool2k.Get()\n\tcase size >= k1:\n\t\tx = bufPool1k.Get()\n\tdefault:\n\t\tx = bufPool.Get()\n\t}\n\tif x == nil {\n\t\treturn make([]byte, size)\n\t}\n\tbuf := x.([]byte)\n\tif cap(buf) < size {\n\t\treturn make([]byte, size)\n\t}\n\treturn buf[:size]\n}\n\nfunc PutBuf(buf interface{}) {\n\tsize := cap(buf.([]byte))\n\tswitch {\n\tcase size >= k16:\n\t\tbufPool16k.Put(buf)\n\tcase size >= k8:\n\t\tbufPool8k.Put(buf)\n\tcase size >= k4:\n\t\tbufPool4k.Put(buf)\n\n\tcase size >= k2:\n\t\tbufPool2k.Put(buf)\n\n\tcase size >= k1:\n\t\tbufPool1k.Put(buf)\n\tdefault:\n\t\tbufPool.Put(buf)\n\t}\n}\n"
  },
  {
    "path": "thirdlib/gdylib/recoverutil/recoverutil.go",
    "content": "package recoverutil\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"runtime/debug\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stderrredirect\"\n)\n\n//RecoverHandler 恢复处理\nfunc RecoverHandler(recoverErr interface{}, exit, reboot bool, panicFileURL string) {\n\tif recoverErr == nil {\n\t\treturn\n\t}\n\n\toutputPanicV2(panicFileURL, recoverErr)\n\n\tif reboot {\n\n\t\tvar argvsBuilder strings.Builder\n\n\t\tfor i := range os.Args {\n\t\t\tif i == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif argvsBuilder.Len() == 0 {\n\t\t\t\targvsBuilder.WriteString(os.Args[i])\n\t\t\t} else {\n\t\t\t\targvsBuilder.WriteString(\" \")\n\t\t\t\targvsBuilder.WriteString(os.Args[i])\n\t\t\t}\n\t\t}\n\n\t\tfileutils.OpenProgramOrFile(os.Args) //重启程序\n\t\t//fileutil.OpenProgramOrFile(restartURIBuilder.String())\n\t}\n\tif exit {\n\t\tos.Exit(1)\n\t}\n}\n\nfunc outputPanic(panicFileURL string, recoverErr interface{}) {\n\texeName := os.Args[0] //获取程序名称\n\tnow := time.Now()     //获取当前时间\n\tpid := os.Getpid()    //获取进程ID\n\n\tif !strings.Contains(panicFileURL, \":\") && !strings.HasPrefix(panicFileURL, \"/\") { //相对路径\n\t\tpanicFileURL = fmt.Sprintf(\"%s%s%s\", fileutils.GetCurrentDirectory(), string(os.PathSeparator), panicFileURL)\n\t}\n\n\tfileDir := \"\"\n\tlastIndex := strings.LastIndex(panicFileURL, string(os.PathSeparator))\n\tif lastIndex > 0 {\n\t\tfileDir = panicFileURL[:lastIndex]\n\t}\n\n\tif err := os.MkdirAll(fileDir, 0755); err != nil {\n\t\tpanic(fmt.Sprintf(\"创建错误重定向文件夹路径出错:%s\", err.Error()))\n\t}\n\n\tfile, err := os.OpenFile(panicFileURL, os.O_CREATE|os.O_APPEND, 0666)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"panic重定向出错:%s\", err.Error()))\n\t}\n\n\tdefer file.Close()\n\n\ttimeStr := now.Format(\"2006-01-02 15:04:05\") //设定时间格式\n\tfile.WriteString(\"\\n\\n\\n↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓\\r\\n\")\n\tfile.WriteString(fmt.Sprintf(\"%s-%d-%s dump LOG\\r\\n\", exeName, pid, timeStr))\n\tfile.WriteString(fmt.Sprintf(\"%v\\r\\n\", err)) //输出panic信息\n\tfile.WriteString(string(debug.Stack()))      //输出堆栈信息\n\tfile.WriteString(\"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\\r\\n\")\n\n\t// timeStr := now.Format(\"20060102150405\")                          //设定时间格式\n\t// fname := fmt.Sprintf(\"%s-%d-%s-dump.log\", exeName, pid, timeStr) //保存错误信息文件名:程序名-进程ID-当前时间（年月日时分秒）\n\t// fmt.Println(\"dump to file \", fname)\n\n\t// f, err := os.Create(fname)\n\t// if err != nil {\n\t// \treturn\n\t// }\n\t// defer f.Close()\n\n\t// if recoverErr != nil {\n\t// \tf.WriteString(fmt.Sprintf(\"%v\\r\\n\", err)) //输出panic信息\n\t// \tf.WriteString(\"========\\r\\n\")\n\t// }\n\n\t// f.WriteString(string(debug.Stack())) //输出堆栈信息\n}\n\nfunc outputPanicV2(panicFileURL string, recoverErr interface{}) {\n\texeName := os.Args[0] //获取程序名称\n\tnow := time.Now()     //获取当前时间\n\tpid := os.Getpid()    //获取进程ID\n\tsetPanicRedirect := true\n\tif panicFileURL == \"\" { //空路径不设置\n\t\tsetPanicRedirect = false\n\t}\n\tif !strings.Contains(panicFileURL, \":\") && !strings.HasPrefix(panicFileURL, \"/\") { //相对路径\n\t\tpanicFileURL = fmt.Sprintf(\"%s%s%s\", fileutils.GetCurrentDirectory(), string(os.PathSeparator), panicFileURL)\n\t}\n\n\t// fileDir := \"\"\n\t// lastIndex := strings.LastIndex(panicFileURL, string(os.PathSeparator))\n\t// if lastIndex > 0 {\n\t// \tfileDir = panicFileURL[:lastIndex]\n\t// }\n\n\t// if err := os.MkdirAll(fileDir, 0755); err != nil {\n\t// \tpanic(fmt.Sprintf(\"创建错误重定向文件夹路径出错:%s\", err.Error()))\n\t// }\n\n\tif setPanicRedirect {\n\t\tstderrredirect.PanicRedirect(panicFileURL)\n\t}\n\n\ttimeStr := now.Format(\"2006-01-02 15:04:05\") //设定时间格式\n\tstderrredirect.PanicFile.WriteString(\"\\n\\n\\n↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓\\r\\n\")\n\tstderrredirect.PanicFile.WriteString(fmt.Sprintf(\"%s-%d-%s dump LOG\\r\\n\", exeName, pid, timeStr))\n\t//\tstderrredirect.PanicFile.WriteString(fmt.Sprintf(\"%v\\r\\n\", err)) //输出panic信息\n\tstderrredirect.PanicFile.WriteString(string(debug.Stack())) //输出堆栈信息\n\tstderrredirect.PanicFile.WriteString(\"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\\r\\n\")\n\n\t// file, err := os.OpenFile(panicFileURL, os.O_CREATE|os.O_APPEND, 0666)\n\t// if err != nil {\n\t// \tpanic(fmt.Sprintf(\"panic重定向出错:%s\", err.Error()))\n\t// }\n\n\t// defer file.Close()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/service/service.go",
    "content": "package service\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n)\n\nconst (\n\t//StateStop 未启动\n\tStateStop = 0\n\t//StateRunning 正在运行\n\tStateRunning = 1\n\t//StateStopping 正在结束\n\tStateStopping = 2\n)\n\n//ServiceMsg 服务消息\ntype ServiceMsg struct {\n\tType   string\n\tParams []any\n}\n\n//var serviceMap map[string]*Service //用于保存已创建的服务\n//var serverMapRWLock sync.RWMutex\nvar serviceMap = struct {\n\tsync.RWMutex\n\tservices map[string]*Service\n}{\n\tservices: map[string]*Service{},\n}\n\n//Service 服务\ntype Service struct {\n\tName         string //服务名称\n\tserviceMutex sync.Mutex\n\n\tState                uint8        //服务状态 //服务运行状态 , 0:未启动 1:正在运行 2:正在结束\n\tNextAction           string       //动作名称\n\tDefaultAction        string       //默认动作\n\tTimerFunc            func(...any) //定时回调函数\n\tEventFunc            func(...any) //事件回调函数\n\tStopFinishedCallback func(...any) //服务停止后的回调函数\n\teventChan            chan any\n\tTimer                *time.Timer\n\t//Args     []interface{}\n\n\tcontext    context.Context\n\tcancelFunc context.CancelFunc\n}\n\n//NewService 创建服务对象\nfunc NewService(name string) (*Service, error) {\n\tserviceMap.Lock()\n\tdefer serviceMap.Unlock()\n\tif _, ok := serviceMap.services[name]; ok {\n\t\treturn nil, fmt.Errorf(\"命名为[%s]服务已存在\", name)\n\t}\n\n\tif _, ok := serviceMap.services[name]; !ok {\n\t\tservice := Service{Name: name, State: StateStop}\n\t\tservice.eventChan = make(chan any, 32)\n\t\tserviceMap.services[name] = &service\n\t\treturn &service, nil\n\t}\n\n\tpanic(fmt.Sprintf(\"命名为[%s]服务已存在\", name))\n\t//return nil, fmt.Errorf(\"命名为[%s]服务已存在\", name)\n}\n\n//SetDefaultAction 设置默认action\nfunc (s *Service) SetDefaultAction(action string) *Service {\n\ts.DefaultAction = action\n\treturn s\n}\n\n//SetTimerFunc 设置定时功能函数\nfunc (s *Service) SetTimerFunc(timerFunc func(...any)) *Service {\n\ts.TimerFunc = timerFunc\n\treturn s\n}\n\n//SetEventFunc 设置时间功能函数\nfunc (s *Service) SetEventFunc(eventFunc func(...any)) *Service {\n\ts.EventFunc = eventFunc\n\treturn s\n}\n\n//SetStopFinishedCallback 设置服务停止后的回调函数\nfunc (s *Service) SetStopFinishedCallback(f func(...any)) *Service {\n\ts.StopFinishedCallback = f\n\treturn s\n}\n\n//Start 服务启动\nfunc (s *Service) Start(vs ...any) error {\n\ts.serviceMutex.Lock()\n\tdefer s.serviceMutex.Unlock()\n\tif s.State == StateRunning {\n\t\ttext := fmt.Sprintf(\"服务 [%s]已启动,无需再次启动\", s.Name)\n\t\treturn fmt.Errorf(text)\n\t}\n\n\tif s.State == StateStopping {\n\t\ttext := fmt.Sprintf(\"服务[%s]正在结束,请结束后再次启动\", s.Name)\n\t\treturn fmt.Errorf(text)\n\t}\n\n\ts.State = StateRunning\n\ts.NextAction = s.DefaultAction\n\tlog.Printf(\"服务[%s] 启动\", s.Name)\n\ts.context, s.cancelFunc = context.WithCancel(context.Background())\n\n\tgo s.loop(vs)\n\treturn nil\n}\n\n//Stop 服务结束\nfunc (s *Service) Stop() error {\n\ts.serviceMutex.Lock()\n\tdefer s.serviceMutex.Unlock()\n\tif s.State == StateStop {\n\t\ttext := fmt.Sprintf(\"服务[%s]未启动,无须停止\", s.Name)\n\t\treturn fmt.Errorf(text)\n\t}\n\tif s.State == StateStopping {\n\t\ttext := fmt.Sprintf(\"服务[%s]正在结束,无须再次结束.\", s.Name)\n\t\treturn fmt.Errorf(text)\n\t}\n\n\tif s.cancelFunc == nil {\n\t\treturn fmt.Errorf(\"服务[%s]context nil\", s.Name)\n\t}\n\ts.cancelFunc()\n\n\ts.State = StateStopping\n\treturn nil\n}\n\nfunc (s *Service) loop(params ...any) {\n\tdefer func() {\n\t\trecoverErr := recover()\n\t\tif recoverErr == nil {\n\t\t\treturn\n\t\t}\n\t\tlog.Printf(\"service[%s] panic:\\n%v\", s.Name, recoverErr)\n\t\tlog.Printf(\"\\n%s\\n\", debug.Stack())\n\t\ts.State = StateStop\n\t\tlog.Printf(\"server[%s] restart\", s.Name)\n\t\ts.Start()\n\t}()\n\n\ts.Timer = time.NewTimer(0)\n\n\tfor {\n\n\t\tselect {\n\t\tcase <-s.Timer.C:\n\t\t\t{\n\t\t\t\tif s.TimerFunc != nil { //如果设置了定时回调的话\n\t\t\t\t\ts.TimerFunc(s, params)\n\t\t\t\t}\n\t\t\t}\n\t\tcase <-s.context.Done():\n\t\t\t{\n\t\t\t\tif s.State == StateStopping {\n\t\t\t\t\ts.State = StateStop\n\t\t\t\t\tlog.Printf(\"服务[%s] 停止\", s.Name)\n\n\t\t\t\t\tif s.StopFinishedCallback != nil {\n\t\t\t\t\t\ts.StopFinishedCallback()\n\t\t\t\t\t}\n\n\t\t\t\t\ts.context = nil\n\t\t\t\t\ts.cancelFunc = nil\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif s.State == StateStop {\n\t\t\t\t\tlog.Printf(\"服务[%s] 状态有误,结束服务失败\", s.Name)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif s.State == StateRunning {\n\t\t\t\t\tlog.Printf(\"服务[%s] 状态有误,请使用正确途径结束\", s.Name)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\tcase msg := <-s.eventChan:\n\t\t\t{\n\t\t\t\tif s.EventFunc != nil {\n\t\t\t\t\ts.EventFunc(s, msg)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n}\n\n//Restart 重启服务\nfunc (s *Service) Restart(params ...any) error {\n\ts.Stop()\n\n\tvar timeout time.Duration\n\tif len(params) == 0 {\n\t\ttimeout = time.Second * 15\n\t} else {\n\t\ttimeout = params[0].(time.Duration)\n\t}\n\n\tpreTime := time.Now()\n\tfor {\n\t\twaitTime := time.Now()\n\t\tif s.State == StateStop {\n\t\t\treturn s.Start()\n\t\t}\n\t\tif waitTime.Sub(preTime) > timeout {\n\t\t\treturn fmt.Errorf(\"重启服务[%s]超时\", s.Name)\n\t\t}\n\t\t<-time.After(time.Millisecond * 100)\n\t}\n\n}\n\n//Message 发送消息给service\n//t 消息类型\n//params 消息内容\nfunc (s *Service) Message(t string, params ...any) error {\n\n\ts.serviceMutex.Lock()\n\tdefer s.serviceMutex.Unlock()\n\n\tif s.State != StateRunning {\n\t\treturn fmt.Errorf(\"[%s]服务已关闭或者正在关闭,无法处理消息 %v,\", s.Name, params)\n\t}\n\tmsg := ServiceMsg{Type: t}\n\tfor i := range params {\n\t\tmsg.Params = append(msg.Params, params[i])\n\t}\n\tselect {\n\tcase s.eventChan <- msg:\n\tdefault:\n\t\treturn fmt.Errorf(\"[%s]服务EventChan阻塞,无法处理event\", s.Name)\n\t}\n\treturn nil\n}\n\n//*************************************\n\n//GetService 查询服务根据服务名称\nfunc GetService(name string) (*Service, error) {\n\tserviceMap.RLock()\n\tdefer serviceMap.RUnlock()\n\tif _, ok := serviceMap.services[name]; !ok {\n\t\treturn nil, fmt.Errorf(\"service[%s]不存在\", name)\n\t}\n\tservice := serviceMap.services[name]\n\treturn service, nil\n}\n\n//Message 发送消息到service,根据serviceName\nfunc Message(serviceName string, msgType string, params ...any) error {\n\tservice, err := GetService(serviceName)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"service[%s] Message faild,:%s\", serviceName, err.Error())\n\t}\n\treturn service.Message(msgType, params...)\n}\n\n//Stop 服务停止,根据serviceName\nfunc Stop(serviceName string) error {\n\tservice, err := GetService(serviceName)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"service[%s] stop faild:%s\", serviceName, err.Error())\n\t}\n\treturn service.Stop()\n}\n\n//Restart 服务重启\nfunc Restart(serviceName string) error {\n\tservice, err := GetService(serviceName)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"restart servcie[%s] faild,:%s\", serviceName, err.Error())\n\t}\n\treturn service.Restart()\n}\n\n//Start 服务启动\nfunc Start(serviceName string) error {\n\tservice, err := GetService(serviceName)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"servcie[%s] start faild,:%s\", serviceName, err.Error())\n\t}\n\treturn service.Start()\n}\n"
  },
  {
    "path": "thirdlib/gdylib/slice/options.go",
    "content": "package slice\n\nfunc DeleteAnyListlice(a []any, deleteIndex int) []any {\n\tj := 0\n\tfor i := range a {\n\t\tif i != deleteIndex {\n\t\t\ta[j] = a[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn a[:j]\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stderrredirect/stderrredirect_linux.go",
    "content": "package stderrredirect\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n)\n\nvar PanicFile *os.File\n\nvar doOnce sync.Once\n\n//PanicRedirect panic重定向\nfunc PanicRedirect(fileURL string) {\n\n\tdoOnce.Do(func() {\n\t\tif !strings.HasPrefix(fileURL, \"/\") { //相对路径\n\t\t\tfileURL = fmt.Sprintf(\"%s%s%s\", fileutils.GetCurrentDirectory(), string(os.PathSeparator), fileURL)\n\t\t}\n\n\t\tlastIndex := strings.LastIndex(fileURL, string(os.PathSeparator))\n\n\t\tfileDir := \"\"\n\n\t\tif lastIndex > 0 {\n\t\t\tfileDir = fileURL[:lastIndex]\n\t\t}\n\n\t\tif err := os.MkdirAll(fileDir, 0755); err != nil {\n\t\t\tpanic(fmt.Sprintf(\"创建错误重定向文件夹路径出错:%s\", err.Error()))\n\t\t}\n\n\t\tfile, err := os.OpenFile(fileURL, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)\n\t\tPanicFile = file\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tif err = syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn\n\t})\n\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stderrredirect/stderrredirect_windows.go",
    "content": "package stderrredirect\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n)\n\n//错误输出重定向,用于捕获闪退信息\n\n//PanicFile 记录闪退的文件\nvar PanicFile *os.File\n\nvar doOnce sync.Once\n\n//PanicRedirect panic重定向\nfunc PanicRedirect(fileURL string) {\n\n\tdoOnce.Do(func() {\n\t\tif !strings.Contains(fileURL, \":\") { //相对路径\n\t\t\tfileURL = fmt.Sprintf(\"%s%s%s\", fileutils.GetCurrentDirectory(), string(os.PathSeparator), fileURL)\n\t\t}\n\n\t\t//fmt.Printf(\"FileURL:%s\\n\", fileURL)\n\n\t\tlastIndex := strings.LastIndex(fileURL, string(os.PathSeparator))\n\n\t\tfileDir := \"\"\n\n\t\tif lastIndex > 0 {\n\t\t\tfileDir = fileURL[:lastIndex]\n\t\t}\n\n\t\tif err := os.MkdirAll(fileDir, 0755); err != nil {\n\t\t\tpanic(fmt.Sprintf(\"创建错误重定向文件夹路径出错:%s\", err.Error()))\n\t\t}\n\n\t\t//fileDir := strings.LastIndex(fileURL, string(os.PathSeparator))\n\n\t\tfile, err := os.OpenFile(fileURL, os.O_CREATE|os.O_APPEND, 0666)\n\t\tPanicFile = file\n\t\tif err != nil {\n\t\t\tpanic(fmt.Sprintf(\"panic重定向出错:%s\", err.Error()))\n\t\t}\n\t\tkernel32 := syscall.NewLazyDLL(\"kernel32.dll\")\n\t\tsetStdHandle := kernel32.NewProc(\"SetStdHandle\")\n\t\tsh := syscall.STD_ERROR_HANDLE\n\t\tv, _, err := setStdHandle.Call(uintptr(sh), uintptr(file.Fd()))\n\t\tif v == 0 {\n\t\t\treturn\n\t\t}\n\t})\n\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stringsp/binary.go",
    "content": "package stringsp\n\nimport \"fmt\"\n\nconst (\n\tKB = uint(1024)\n\tMB = uint64(1024 * 1024)\n\tGB = uint64(1024 * 1024 * 1024)\n\tTB = uint64(1024 * 1024 * 1024 * 1024)\n\tEB = uint64(1024 * 1024 * 1024 * 1024 * 1024)\n)\n\nfunc BinaryUnitToStr(binaryUnit uint64) (size string) {\n\tswitch {\n\tcase binaryUnit < 1024:\n\t\treturn fmt.Sprintf(\"%.2fB\", float64(binaryUnit)/float64(1))\n\tcase binaryUnit < MB: //1024*1024\n\t\treturn fmt.Sprintf(\"%.2fKB\", float64(binaryUnit)/float64(KB))\n\tcase binaryUnit < GB: //1024 * 1024 * 1024\n\t\treturn fmt.Sprintf(\"%.2fMB\", float64(binaryUnit)/float64(MB))\n\tcase binaryUnit < TB: //1024 * 1024 * 1024 * 1024\n\t\treturn fmt.Sprintf(\"%.2fGB\", float64(binaryUnit)/float64(GB))\n\tcase binaryUnit < EB: //1024 * 1024 * 1024 * 1024 * 1024\n\t\treturn fmt.Sprintf(\"%.2fTB\", float64(binaryUnit)/float64(TB))\n\tdefault:\n\t\treturn fmt.Sprintf(\"%.2fEB\", float64(binaryUnit)/float64(EB))\n\t}\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stringsp/randomutils.go",
    "content": "package stringsp\n\nimport (\n\t\"math/rand\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar strModel = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\nvar stringsBytes = []byte(strModel)\nvar strModelLength = len(strModel)\n\nvar numStrModel = \"0123456789\"\nvar numStrBytes = []byte(numStrModel)\nvar numStrLength = len(numStrModel)\n\nvar randVar = rand.New(rand.NewSource(time.Now().UnixNano()))\n\n//GetRandomString 生成随机字符串\nfunc GetRandomString(len int) string {\n\tvar resBuf strings.Builder\n\tfor i := 0; i < len; i++ {\n\t\tresBuf.WriteByte(stringsBytes[randVar.Intn(strModelLength)])\n\t}\n\treturn resBuf.String()\n}\n\n//GetRandomStringNum 生成随机数字字符串\nfunc GetRandomStringNum(len int) string {\n\tvar resBuf strings.Builder\n\tfor i := 0; i < len; i++ {\n\t\tresBuf.WriteByte(numStrBytes[randVar.Intn(numStrLength)])\n\t}\n\treturn resBuf.String()\n\n}\n\nvar timeStampIDMutex sync.Mutex\nvar pretimeStampID int64 = 0\n\n//GetTimeStampID 获取时间戳ID\nfunc GetTimeStampID() int64 {\n\ttimeStampIDMutex.Lock()\n\tdefer timeStampIDMutex.Unlock()\n\tid := time.Now().UnixNano()\n\nCHECK:\n\tif id == pretimeStampID || id < pretimeStampID {\n\t\tif id < pretimeStampID {\n\t\t\tid = pretimeStampID + 1\n\t\t} else {\n\t\t\tid++\n\t\t}\n\n\t\tgoto CHECK\n\t}\n\n\tpretimeStampID = id\n\treturn id\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stringsp/stringsp.go",
    "content": "package stringsp\n\nfunc StrIsInList(str string, strList []string) bool {\n\tcheckMap := make(map[string]uint8)\n\tfor i := range strList {\n\t\tcheckMap[strList[i]] = 1\n\t}\n\tif _, ok := checkMap[str]; ok {\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "thirdlib/gdylib/stringsp/url.go",
    "content": "package stringsp\n\nimport (\n\t\"net/url\"\n\t\"strings\"\n)\n\nfunc GetHostAndPathFromURL(urlstr string) (string, string, string, string, error) {\n\tif !strings.HasPrefix(urlstr, \"http\") {\n\t\turlstr = \"http://\" + urlstr\n\t}\n\tu, err := url.Parse(urlstr)\n\tif err != nil {\n\t\treturn \"\", \"\", \"\", \"\", err\n\t}\n\treturn u.Scheme, u.Hostname(), u.Port(), u.Path, nil\n}\n"
  },
  {
    "path": "thirdlib/gdylib/websocketController/controller.go",
    "content": "package websocketcontroller\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tdisconnected uint32 = iota\n\tconnecting\n\treconnecting\n\tconnected\n)\n\nconst (\n\t// Time allowed to write a message to the peer.\n\twriteWait = 5 * time.Second\n\t// Time allowed to read the next pong message from the peer.\n\tpongWait = 9 * time.Second\n\t// Send pings to peer with this period. Must be less than pongWait.\n\tpingPeriod = 1500 * time.Millisecond\n\t// Maximum message size allowed from peer.\n\tmaxMessageSize = 4096 * 4\n\n\thandshakeTimeout = 10 * time.Second\n\n\treadTimeout = 9 * time.Second\n)\n\ntype Controller struct {\n\tLogs     *logrus.Logger\n\tmu       sync.Mutex\n\twait     sync.WaitGroup\n\tinitOnce sync.Once //一次\n\n\tstatus      uint32\n\treadTimeout time.Duration\n\twriteWait   time.Duration //自定义写超时参数\n\tpongWait    time.Duration //自定义Pong超时参数\n\tpingPeriod  time.Duration //自定义发送ping时间间隔\n\tsendChan    chan []byte\n\n\tReceiveMessageCallback       func(c *Controller, messageBytes []byte) //接收消息回调函数\n\tctx                          context.Context\n\tctxCancelFunc                context.CancelFunc\n\tsendMessageEncryptionFunc    func(messageBytes []byte) ([]byte, error) //发送消息加密函数\n\treceiveMessageDecryptionFunc func(messageBytes []byte) ([]byte, error) //接收消息解密函数\n\n\t//---------- 客户端特有\n\tserverUrl                  string\n\tscureSkipVerify            bool\n\thandshakeTimeout           time.Duration\n\tdisconnectSign             uint32 //主动断开连接标记,不自动重连\n\tconnectRetry               bool   //重连\n\tconnectRetryInterval       time.Duration\n\tconnectRetryCount          int //0表示无限次\n\tClientReadyCallback        func(c *Controller)\n\tClientDisconnectedCallback func(c *Controller)\n\n\tremoteAddr string\n\textDataMap sync.Map\n}\n\nfunc (c *Controller) SetSendMessageEncryptionFunc(f func(messageBytes []byte) ([]byte, error)) {\n\tc.sendMessageEncryptionFunc = f\n}\n\nfunc (c *Controller) SetReceiveMessageDecryptionFunc(f func(messageBytes []byte) ([]byte, error)) {\n\tc.receiveMessageDecryptionFunc = f\n}\n\nfunc (c *Controller) StoreExtData(key any, data any) {\n\tc.extDataMap.Store(key, data)\n\n}\n\nfunc (c *Controller) GetExtData(key any) (any, bool) {\n\treturn c.extDataMap.Load(key)\n}\n\nfunc (c *Controller) disconnect() {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstatus := atomic.LoadUint32(&c.status)\n\tif status == disconnected {\n\t\treturn\n\t}\n\n\tc.wait.Wait()\n\n\tif c.ctxCancelFunc != nil {\n\t\tc.ctxCancelFunc()\n\t\tc.ctxCancelFunc = nil\n\t}\n\n\tif c.ClientDisconnectedCallback != nil {\n\t\tc.ClientDisconnectedCallback(c)\n\t}\n\tatomic.StoreUint32(&c.status, disconnected)\n\n\tdisconnectSign := atomic.LoadUint32(&c.disconnectSign)\n\n\t//\tif c.connectRetry && !c.disconnectSign {\n\tif c.connectRetry && disconnectSign == 0 {\n\t\tgo func() {\n\t\t\t<-time.After(c.connectRetryInterval)\n\t\t\tc.Connect()\n\t\t}()\n\t}\n\n}\n\nfunc (c *Controller) SetServerURL(url string) {\n\tc.serverUrl = url\n\n}\n\nfunc (c *Controller) ScureSkipVerify(b bool) {\n\tc.scureSkipVerify = b\n}\n\nfunc (c *Controller) SetConnectRetry(b bool) {\n\tc.connectRetry = b\n}\n\nfunc (c *Controller) SetConnectRetryInterval(t time.Duration) {\n\tc.connectRetryInterval = t\n}\n\nfunc (c *Controller) SetConnectRetryCount(count int) {\n\tc.connectRetryCount = count\n}\n\nfunc (c *Controller) SetReadDeadline(d time.Duration) {\n\tc.readTimeout = d\n}\n\nfunc (c *Controller) init() {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstatus := atomic.LoadUint32(&c.status)\n\tif status == connected {\n\t\treturn\n\t}\n\n\tif c.writeWait <= 0 {\n\t\tc.writeWait = writeWait\n\t}\n\n\tif c.pongWait <= 0 {\n\t\tc.pongWait = pongWait\n\t}\n\n\tif c.pingPeriod <= 0 {\n\t\tc.pingPeriod = pingPeriod\n\t}\n\n\tif c.handshakeTimeout <= 0 {\n\t\tc.handshakeTimeout = handshakeTimeout\n\t}\n\n\tif c.readTimeout <= 0 {\n\t\tc.readTimeout = readTimeout\n\t}\n\n\t//c.disconnectSign = false\n\tatomic.StoreUint32(&c.disconnectSign, 0)\n\n\tc.initOnce.Do(func() {\n\t\tc.sendChan = make(chan []byte, 1024)\n\t})\n\n}\n\nfunc (c *Controller) Disconnect() {\n\n\t//c.disconnectSign = true\n\tatomic.StoreUint32(&c.disconnectSign, 1)\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstatus := atomic.LoadUint32(&c.status)\n\tif status != connected {\n\t\treturn\n\t}\n\tc.Logs.Infof(\"[%s]Disconnect\", c.serverUrl)\n\tif c.ctxCancelFunc != nil {\n\t\tc.ctxCancelFunc()\n\t}\n\n}\n\nfunc (c *Controller) SendMessage(messageBytes []byte) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstatus := atomic.LoadUint32(&c.status)\n\tif status != connected {\n\t\tc.Logs.Warn(\"websocketclient 未连接,消息[%s]发送失败\", string(messageBytes))\n\t\treturn\n\t}\n\n\tif c.sendMessageEncryptionFunc != nil {\n\t\tenMsgBytes, err := c.sendMessageEncryptionFunc(messageBytes)\n\t\tif err != nil {\n\t\t\tc.Logs.Error(\"WebSocket客户端 自定义发送消息加密函数加密出错:%s\", err.Error())\n\t\t\treturn\n\t\t}\n\t\tmessageBytes = enMsgBytes\n\t}\n\n\tselect {\n\tcase c.sendChan <- messageBytes:\n\tdefault:\n\t}\n}\n\nfunc (c *Controller) writePump(ctx context.Context, conn *websocket.Conn) {\n\tticker := time.NewTicker(c.pingPeriod)\n\tc.wait.Add(1)\n\n\tdefer func() {\n\n\t\tconn.Close()\n\t\tc.wait.Done()\n\t\tticker.Stop()\n\t\tc.disconnect()\n\t\t//c.Logs.Printf(\"writePump return\\n\")\n\t\trecoverErr := recover()\n\t\tif recoverErr == nil {\n\t\t\treturn\n\t\t}\n\t\tc.Logs.Errorf(\"webscoket controller writePump panic:\\n%v\", recoverErr)\n\t\tc.Logs.Errorf(\"%s\", debug.Stack())\n\t}()\n\t//ccontext, _ := context.WithCancel(ctx)\n\tfor {\n\n\t\tselect {\n\t\tcase messageBytes, ok := <-c.sendChan: //需要发送的消息\n\n\t\t\tconn.SetWriteDeadline(time.Now().Add(c.writeWait))\n\t\t\tif !ok {\n\t\t\t\tconn.WriteMessage(websocket.CloseMessage, []byte{})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tw, err := conn.NextWriter(websocket.TextMessage)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif len(messageBytes) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tw.Write(messageBytes)\n\n\t\t\tif err := w.Close(); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-ticker.C:\n\t\t\tconn.SetWriteDeadline(time.Now().Add(c.writeWait))\n\t\t\tif err := conn.WriteMessage(websocket.PingMessage, nil); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t// case <-ccontext.Done():\n\t\t// \t{\n\t\t// \t\treturn\n\t\t// \t}\n\t\tcase <-ctx.Done():\n\t\t\t{\n\t\t\t\t//fmt.Printf(\"ctx.Done():666\\n\")\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nfunc (c *Controller) readPump(cancelFunc context.CancelFunc, conn *websocket.Conn) {\n\tdefer func() {\n\t\tc.wait.Done()\n\t\tcancelFunc()\n\t\t//c.Logs.Printf(\"readPump return \")\n\t\trecoverErr := recover()\n\t\tif recoverErr == nil {\n\t\t\treturn\n\t\t}\n\t\tc.Logs.Errorf(\"webscoket controller readPump panic:\\n%v\", recoverErr)\n\t\tc.Logs.Errorf(\"%s\", debug.Stack())\n\t}()\n\n\tc.wait.Add(1)\n\tconn.SetReadLimit(maxMessageSize)\n\tconn.SetReadDeadline(time.Now().Add(c.readTimeout))\n\tconn.SetPongHandler(func(string) error {\n\t\tconn.SetReadDeadline(time.Now().Add(c.pongWait))\n\t\treturn nil\n\t})\n\n\tfor {\n\t\t_, messageBytes, err := conn.ReadMessage()\n\t\tif err != nil {\n\t\t\tif websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {\n\t\t\t\tc.Logs.Error(\"websocket.IsUnexpectedCloseError : %s\", err.Error())\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\tmessageSize := len(messageBytes)\n\t\tif messageSize <= 1 { //忽略心跳消息\n\t\t\tcontinue\n\t\t}\n\n\t\tif c.receiveMessageDecryptionFunc != nil {\n\t\t\tdeMsgBytes, err := c.receiveMessageDecryptionFunc(messageBytes)\n\t\t\tif err != nil {\n\t\t\t\tc.Logs.Error(\"Websocket controller 消息接收消息解密出错:%s\", err.Error())\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmessageBytes = deMsgBytes\n\t\t}\n\n\t\tif c.ReceiveMessageCallback != nil {\n\t\t\tgo c.ReceiveMessageCallback(c, messageBytes)\n\t\t}\n\t}\n\n}\n\nfunc (c *Controller) Connect() error {\n\tc.init()\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tdialer := &websocket.Dialer{\n\t\tProxy:            http.ProxyFromEnvironment,\n\t\tHandshakeTimeout: c.handshakeTimeout,\n\t\tTLSClientConfig:  &tls.Config{InsecureSkipVerify: c.scureSkipVerify}}\n\n\tatomic.StoreUint32(&c.status, connecting)\n\tretryCount := 0\nRETRYCONN:\n\tconnect, _, err := dialer.Dial(c.serverUrl, nil)\n\tif err != nil {\n\t\tdisconnectSign := atomic.LoadUint32(&c.disconnectSign)\n\t\t//\tif c.connectRetry && (c.connectRetryCount <= 0 || retryCount < c.connectRetryCount) && !c.disconnectSign {\n\t\tif c.connectRetry && (c.connectRetryCount <= 0 || retryCount < c.connectRetryCount) && disconnectSign == 0 {\n\t\t\t<-time.After(c.connectRetryInterval)\n\t\t\tretryCount++\n\t\t\tc.Logs.Errorf(\"[%d]Connect error:%s\", disconnectSign, err.Error())\n\t\t\tc.Logs.Infof(\"[%s]重新连接...%d\\n\", c.serverUrl, retryCount)\n\t\t\tgoto RETRYCONN\n\t\t}\n\t\tatomic.StoreUint32(&c.status, disconnected)\n\t\treturn fmt.Errorf(\"Connect DefaultDialer error:%s\", err.Error())\n\t}\n\t//c.conn = connect\n\n\tif c.ctxCancelFunc != nil {\n\t\tc.ctxCancelFunc()\n\t}\n\n\tc.monitor(connect)\n\n\treturn nil\n}\n\n// ConnectReady Websocket 服务器端使用\nfunc (c *Controller) ConnectReady(connect *websocket.Conn) {\n\tc.init()\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tc.remoteAddr = connect.RemoteAddr().String()\n\tc.monitor(connect)\n}\n\nfunc (c *Controller) GetRemoteAddr() string {\n\treturn c.remoteAddr\n}\n\nfunc (c *Controller) monitor(connect *websocket.Conn) {\n\tctx, ctxCancelFunc := context.WithCancel(context.Background())\n\tc.ctx = ctx\n\tc.ctxCancelFunc = ctxCancelFunc\n\tatomic.StoreUint32(&c.status, connected)\n\n\tgo c.writePump(ctx, connect)\n\tgo c.readPump(ctxCancelFunc, connect)\n\n\tif c.ClientReadyCallback != nil {\n\t\tgo c.ClientReadyCallback(c)\n\t}\n}\n"
  },
  {
    "path": "thirdlib/go-wol/magic_packet.go",
    "content": "package wol\n\n////////////////////////////////////////////////////////////////////////////////\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"net\"\n\t\"regexp\"\n)\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar (\n\tdelims = \":-\"\n\treMAC  = regexp.MustCompile(`^([0-9a-fA-F]{2}[` + delims + `]){5}([0-9a-fA-F]{2})$`)\n)\n\n////////////////////////////////////////////////////////////////////////////////\n\n// MACAddress represents a 6 byte network mac address.\ntype MACAddress [6]byte\n\n// MagicPacket is constituted of 6 bytes of 0xFF followed by 16-groups of the\n// destination MAC address.\ntype MagicPacket struct {\n\theader  [6]byte\n\tpayload [16]MACAddress\n}\n\n// New returns a magic packet based on a mac address string.\nfunc New(mac string) (*MagicPacket, error) {\n\tvar packet MagicPacket\n\tvar macAddr MACAddress\n\n\thwAddr, err := net.ParseMAC(mac)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We only support 6 byte MAC addresses since it is much harder to use the\n\t// binary.Write(...) interface when the size of the MagicPacket is dynamic.\n\tif !reMAC.MatchString(mac) {\n\t\treturn nil, fmt.Errorf(\"%s is not a IEEE 802 MAC-48 address\", mac)\n\t}\n\n\t// Copy bytes from the returned HardwareAddr -> a fixed size MACAddress.\n\tfor idx := range macAddr {\n\t\tmacAddr[idx] = hwAddr[idx]\n\t}\n\n\t// Setup the header which is 6 repetitions of 0xFF.\n\tfor idx := range packet.header {\n\t\tpacket.header[idx] = 0xFF\n\t}\n\n\t// Setup the payload which is 16 repetitions of the MAC addr.\n\tfor idx := range packet.payload {\n\t\tpacket.payload[idx] = macAddr\n\t}\n\n\treturn &packet, nil\n}\n\n// Marshal serializes the magic packet structure into a 102 byte slice.\nfunc (mp *MagicPacket) Marshal() ([]byte, error) {\n\tvar buf bytes.Buffer\n\tif err := binary.Write(&buf, binary.BigEndian, mp); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "thirdlib/go-wol/wol.go",
    "content": "package wol\n\nimport (\n\t\"fmt\"\n\t\"net\"\n)\n\nfunc WakeUpRepeat(macAddr, broadcastIP, bcastInterface string, port, repeat int) {\n\ti := 0\n\tfor {\n\t\tWakeUp(macAddr, broadcastIP, bcastInterface, port)\n\t\ti++\n\t\tif i >= repeat {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc WakeUp(macAddr, broadcastIP, bcastInterface string, port int) error {\n\tvar localAddr *net.UDPAddr\n\tvar err error\n\tif bcastInterface != \"\" {\n\t\tlocalAddr, err = ipFromInterface(bcastInterface)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tbcastAddr := fmt.Sprintf(\"%s:%d\", broadcastIP, port)\n\tudpAddr, err := net.ResolveUDPAddr(\"udp\", bcastAddr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Build the magic packet.\n\tmp, err := New(macAddr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbs, err := mp.Marshal()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tconn, err := net.DialUDP(\"udp\", localAddr, udpAddr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer conn.Close()\n\n\t//fmt.Printf(\"Attempting to send a magic packet to MAC %s\\n\", macAddr)\n\t//fmt.Printf(\"... Broadcasting to: %s\\n\", bcastAddr)\n\tn, err := conn.Write(bs)\n\tif err == nil && n != 102 {\n\t\terr = fmt.Errorf(\"magic packet sent was %d bytes (expected 102 bytes sent)\", n)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t//fmt.Printf(\"Magic packet sent successfully to %s\\n\", macAddr)\n\treturn nil\n\n}\n\n// ipFromInterface returns a `*net.UDPAddr` from a network interface name.\nfunc ipFromInterface(iface string) (*net.UDPAddr, error) {\n\tief, err := net.InterfaceByName(iface)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddrs, err := ief.Addrs()\n\tif err == nil && len(addrs) <= 0 {\n\t\terr = fmt.Errorf(\"no address associated with interface %s\", iface)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Validate that one of the addrs is a valid network IP address.\n\tfor _, addr := range addrs {\n\t\tswitch ip := addr.(type) {\n\t\tcase *net.IPNet:\n\t\t\tif !ip.IP.IsLoopback() && ip.IP.To4() != nil {\n\t\t\t\treturn &net.UDPAddr{\n\t\t\t\t\tIP: ip.IP,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"no address associated with interface %s\", iface)\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/aliyun_signer.go",
    "content": "package util\n\nimport (\n\t\"crypto/hmac\"\n\t\"crypto/md5\"\n\t\"crypto/sha1\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"net/url\"\n)\n\n// https://github.com/rosbit/aliyun-sign/blob/master/aliyun-sign.go\n\nvar (\n\tsignMethodMap = map[string]func() hash.Hash{\n\t\t\"HMAC-SHA1\":   sha1.New,\n\t\t\"HMAC-SHA256\": sha256.New,\n\t\t\"HMAC-MD5\":    md5.New,\n\t}\n)\n\nfunc HmacSign(signMethod string, httpMethod string, appKeySecret string, vals url.Values) (signature []byte) {\n\tkey := []byte(appKeySecret + \"&\")\n\n\tvar h hash.Hash\n\tif method, ok := signMethodMap[signMethod]; ok {\n\t\th = hmac.New(method, key)\n\t} else {\n\t\th = hmac.New(sha1.New, key)\n\t}\n\tmakeDataToSign(h, httpMethod, vals)\n\treturn h.Sum(nil)\n}\n\nfunc HmacSignToB64(signMethod string, httpMethod string, appKeySecret string, vals url.Values) (signature string) {\n\treturn base64.StdEncoding.EncodeToString(HmacSign(signMethod, httpMethod, appKeySecret, vals))\n}\n\ntype strToEnc struct {\n\ts string\n\te bool\n}\n\nfunc makeDataToSign(w io.Writer, httpMethod string, vals url.Values) {\n\tin := make(chan *strToEnc)\n\tgo func() {\n\t\tin <- &strToEnc{s: httpMethod}\n\t\tin <- &strToEnc{s: \"&\"}\n\t\tin <- &strToEnc{s: \"/\", e: true}\n\t\tin <- &strToEnc{s: \"&\"}\n\t\tin <- &strToEnc{s: vals.Encode(), e: true}\n\t\tclose(in)\n\t}()\n\n\tspecialUrlEncode(in, w)\n}\n\nvar (\n\tencTilde = \"%7E\"         // '~' -> \"%7E\"\n\tencBlank = []byte(\"%20\") // ' ' -> \"%20\"\n\ttilde    = []byte(\"~\")\n)\n\nfunc specialUrlEncode(in <-chan *strToEnc, w io.Writer) {\n\tfor s := range in {\n\t\tif !s.e {\n\t\t\tio.WriteString(w, s.s)\n\t\t\tcontinue\n\t\t}\n\n\t\tl := len(s.s)\n\t\tfor i := 0; i < l; {\n\t\t\tch := s.s[i]\n\n\t\t\tswitch ch {\n\t\t\tcase '%':\n\t\t\t\tif encTilde == s.s[i:i+3] {\n\t\t\t\t\tw.Write(tilde)\n\t\t\t\t\ti += 3\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tfallthrough\n\t\t\tcase '*', '/', '&', '=':\n\t\t\t\tfmt.Fprintf(w, \"%%%02X\", ch)\n\t\t\tcase '+':\n\t\t\t\tw.Write(encBlank)\n\t\t\tdefault:\n\t\t\t\tfmt.Fprintf(w, \"%c\", ch)\n\t\t\t}\n\n\t\t\ti += 1\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/aliyun_signer_util.go",
    "content": "package util\n\nimport (\n\t\"net/url\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// AliyunSigner AliyunSigner\nfunc AliyunSigner(accessKeyID, accessSecret string, params *url.Values) {\n\t// 公共参数\n\tparams.Set(\"SignatureMethod\", \"HMAC-SHA1\")\n\tparams.Set(\"SignatureNonce\", strconv.FormatInt(time.Now().UnixNano(), 10))\n\tparams.Set(\"AccessKeyId\", accessKeyID)\n\tparams.Set(\"SignatureVersion\", \"1.0\")\n\tparams.Set(\"Timestamp\", time.Now().UTC().Format(\"2006-01-02T15:04:05Z\"))\n\tparams.Set(\"Format\", \"JSON\")\n\tparams.Set(\"Version\", \"2015-01-09\")\n\tparams.Set(\"Signature\", HmacSignToB64(\"HMAC-SHA1\", \"GET\", accessSecret, *params))\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/baidu_signer.go",
    "content": "package util\n\nimport (\n\t\"crypto/hmac\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"time\"\n)\n\n// https://cloud.baidu.com/doc/Reference/s/Njwvz1wot\n\nconst (\n\tBaiduDateFormat  = \"2006-01-02T15:04:05Z\"\n\texpirationPeriod = \"1800\"\n)\n\nfunc HmacSha256Hex(secret, message string) string {\n\tkey := []byte(secret)\n\n\th := hmac.New(sha256.New, key)\n\th.Write([]byte(message))\n\tsha := hex.EncodeToString(h.Sum(nil))\n\treturn sha\n}\n\nfunc BaiduCanonicalURI(r *http.Request) string {\n\tpattens := strings.Split(r.URL.Path, \"/\")\n\tvar uri []string\n\tfor _, v := range pattens {\n\t\turi = append(uri, escape(v))\n\t}\n\turlpath := strings.Join(uri, \"/\")\n\tif len(urlpath) == 0 || urlpath[len(urlpath)-1] != '/' {\n\t\turlpath = urlpath + \"/\"\n\t}\n\treturn urlpath[0 : len(urlpath)-1]\n}\n\n// BaiduSigner set Authorization header\nfunc BaiduSigner(accessKeyID, accessSecret string, r *http.Request) {\n\t//format: bce-auth-v1/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}\n\tauthStringPrefix := \"bce-auth-v1/\" + accessKeyID + \"/\" + time.Now().UTC().Format(BaiduDateFormat) + \"/\" + expirationPeriod\n\tbaiduCanonicalURL := BaiduCanonicalURI(r)\n\n\t//format: HTTP Method + \"\\n\" + CanonicalURI + \"\\n\" + CanonicalQueryString + \"\\n\" + CanonicalHeaders\n\t//由于仅仅调用三个POST接口且不会更改，这里CanonicalQueryString和CanonicalHeaders直接写死\n\tCanonicalReq := fmt.Sprintf(\"%s\\n%s\\n%s\\n%s\", r.Method, baiduCanonicalURL, \"\", \"host:bcd.baidubce.com\")\n\n\tsigningKey := HmacSha256Hex(accessSecret, authStringPrefix)\n\tsignature := HmacSha256Hex(signingKey, CanonicalReq)\n\n\t//format: authStringPrefix/{signedHeaders}/{signature}\n\tauthString := authStringPrefix + \"/host/\" + signature\n\tr.Header.Set(HeaderAuthorization, authString)\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/escape.go",
    "content": "// based on https://github.com/golang/go/blob/master/src/net/url/url.go\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage util\n\nfunc shouldEscape(c byte) bool {\n\tif 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '_' || c == '-' || c == '~' || c == '.' {\n\t\treturn false\n\t}\n\treturn true\n}\nfunc escape(s string) string {\n\thexCount := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif shouldEscape(c) {\n\t\t\thexCount++\n\t\t}\n\t}\n\n\tif hexCount == 0 {\n\t\treturn s\n\t}\n\n\tt := make([]byte, len(s)+2*hexCount)\n\tj := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch c := s[i]; {\n\t\tcase shouldEscape(c):\n\t\t\tt[j] = '%'\n\t\t\tt[j+1] = \"0123456789ABCDEF\"[c>>4]\n\t\t\tt[j+2] = \"0123456789ABCDEF\"[c&15]\n\t\t\tj += 3\n\t\tdefault:\n\t\t\tt[j] = s[i]\n\t\t\tj++\n\t\t}\n\t}\n\treturn string(t)\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/huawei_signer.go",
    "content": "// HWS API Gateway Signature\n// based on https://github.com/datastream/aws/blob/master/signv4.go\n// Copyright (c) 2014, Xianjie\n\npackage util\n\nimport (\n\t\"bytes\"\n\t\"crypto/hmac\"\n\t\"crypto/sha256\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tBasicDateFormat     = \"20060102T150405Z\"\n\tAlgorithm           = \"SDK-HMAC-SHA256\"\n\tHeaderXDate         = \"X-Sdk-Date\"\n\tHeaderHost          = \"host\"\n\tHeaderAuthorization = \"Authorization\"\n\tHeaderContentSha256 = \"X-Sdk-Content-Sha256\"\n)\n\nfunc hmacsha256(key []byte, data string) ([]byte, error) {\n\th := hmac.New(sha256.New, []byte(key))\n\tif _, err := h.Write([]byte(data)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn h.Sum(nil), nil\n}\n\n// Build a CanonicalRequest from a regular request string\n//\n// CanonicalRequest =\n//  HTTPRequestMethod + '\\n' +\n//  CanonicalURI + '\\n' +\n//  CanonicalQueryString + '\\n' +\n//  CanonicalHeaders + '\\n' +\n//  SignedHeaders + '\\n' +\n//  HexEncode(Hash(RequestPayload))\nfunc CanonicalRequest(r *http.Request, signedHeaders []string) (string, error) {\n\tvar hexencode string\n\tvar err error\n\tif hex := r.Header.Get(HeaderContentSha256); hex != \"\" {\n\t\thexencode = hex\n\t} else {\n\t\tdata, err := RequestPayload(r)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\thexencode, err = HexEncodeSHA256Hash(data)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"%s\\n%s\\n%s\\n%s\\n%s\\n%s\", r.Method, CanonicalURI(r), CanonicalQueryString(r), CanonicalHeaders(r, signedHeaders), strings.Join(signedHeaders, \";\"), hexencode), err\n}\n\n// CanonicalURI returns request uri\nfunc CanonicalURI(r *http.Request) string {\n\tpattens := strings.Split(r.URL.Path, \"/\")\n\tvar uri []string\n\tfor _, v := range pattens {\n\t\turi = append(uri, escape(v))\n\t}\n\turlpath := strings.Join(uri, \"/\")\n\tif len(urlpath) == 0 || urlpath[len(urlpath)-1] != '/' {\n\t\turlpath = urlpath + \"/\"\n\t}\n\treturn urlpath\n}\n\n// CanonicalQueryString\nfunc CanonicalQueryString(r *http.Request) string {\n\tvar keys []string\n\tquery := r.URL.Query()\n\tfor key := range query {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\tvar a []string\n\tfor _, key := range keys {\n\t\tk := escape(key)\n\t\tsort.Strings(query[key])\n\t\tfor _, v := range query[key] {\n\t\t\tkv := fmt.Sprintf(\"%s=%s\", k, escape(v))\n\t\t\ta = append(a, kv)\n\t\t}\n\t}\n\tqueryStr := strings.Join(a, \"&\")\n\tr.URL.RawQuery = queryStr\n\treturn queryStr\n}\n\n// CanonicalHeaders\nfunc CanonicalHeaders(r *http.Request, signerHeaders []string) string {\n\tvar a []string\n\theader := make(map[string][]string)\n\tfor k, v := range r.Header {\n\t\theader[strings.ToLower(k)] = v\n\t}\n\tfor _, key := range signerHeaders {\n\t\tvalue := header[key]\n\t\tif strings.EqualFold(key, HeaderHost) {\n\t\t\tvalue = []string{r.Host}\n\t\t}\n\t\tsort.Strings(value)\n\t\tfor _, v := range value {\n\t\t\ta = append(a, key+\":\"+strings.TrimSpace(v))\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"%s\\n\", strings.Join(a, \"\\n\"))\n}\n\n// SignedHeaders\nfunc SignedHeaders(r *http.Request) []string {\n\tvar a []string\n\tfor key := range r.Header {\n\t\ta = append(a, strings.ToLower(key))\n\t}\n\tsort.Strings(a)\n\treturn a\n}\n\n// RequestPayload\nfunc RequestPayload(r *http.Request) ([]byte, error) {\n\tif r.Body == nil {\n\t\treturn []byte(\"\"), nil\n\t}\n\tb, err := ioutil.ReadAll(r.Body)\n\tif err != nil {\n\t\treturn []byte(\"\"), err\n\t}\n\tr.Body = ioutil.NopCloser(bytes.NewBuffer(b))\n\treturn b, err\n}\n\n// Create a \"String to Sign\".\nfunc StringToSign(canonicalRequest string, t time.Time) (string, error) {\n\thash := sha256.New()\n\t_, err := hash.Write([]byte(canonicalRequest))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn fmt.Sprintf(\"%s\\n%s\\n%x\",\n\t\tAlgorithm, t.UTC().Format(BasicDateFormat), hash.Sum(nil)), nil\n}\n\n// Create the HWS Signature.\nfunc SignStringToSign(stringToSign string, signingKey []byte) (string, error) {\n\thm, err := hmacsha256(signingKey, stringToSign)\n\treturn fmt.Sprintf(\"%x\", hm), err\n}\n\n// HexEncodeSHA256Hash returns hexcode of sha256\nfunc HexEncodeSHA256Hash(body []byte) (string, error) {\n\thash := sha256.New()\n\tif body == nil {\n\t\tbody = []byte(\"\")\n\t}\n\t_, err := hash.Write(body)\n\treturn fmt.Sprintf(\"%x\", hash.Sum(nil)), err\n}\n\n// Get the finalized value for the \"Authorization\" header. The signature parameter is the output from SignStringToSign\nfunc AuthHeaderValue(signature, accessKey string, signedHeaders []string) string {\n\treturn fmt.Sprintf(\"%s Access=%s, SignedHeaders=%s, Signature=%s\", Algorithm, accessKey, strings.Join(signedHeaders, \";\"), signature)\n}\n\n// Signature HWS meta\ntype Signer struct {\n\tKey    string\n\tSecret string\n}\n\n// SignRequest set Authorization header\nfunc (s *Signer) Sign(r *http.Request) error {\n\tvar t time.Time\n\tvar err error\n\tvar dt string\n\tif dt = r.Header.Get(HeaderXDate); dt != \"\" {\n\t\tt, err = time.Parse(BasicDateFormat, dt)\n\t}\n\tif err != nil || dt == \"\" {\n\t\tt = time.Now()\n\t\tr.Header.Set(HeaderXDate, t.UTC().Format(BasicDateFormat))\n\t}\n\tsignedHeaders := SignedHeaders(r)\n\tcanonicalRequest, err := CanonicalRequest(r, signedHeaders)\n\tif err != nil {\n\t\treturn err\n\t}\n\tstringToSign, err := StringToSign(canonicalRequest, t)\n\tif err != nil {\n\t\treturn err\n\t}\n\tsignature, err := SignStringToSign(stringToSign, []byte(s.Secret))\n\tif err != nil {\n\t\treturn err\n\t}\n\tauthValue := AuthHeaderValue(signature, s.Key, signedHeaders)\n\tr.Header.Set(HeaderAuthorization, authValue)\n\treturn nil\n}\n"
  },
  {
    "path": "thirdlib/jeessy2/ddns-go/util/net.go",
    "content": "package util\n\nimport (\n\t\"net\"\n\t\"strings\"\n)\n\n// IsPrivateNetwork 是否为私有地址\n// https://en.wikipedia.org/wiki/Private_network\nfunc IsPrivateNetwork(remoteAddr string) bool {\n\tlastIndex := strings.LastIndex(remoteAddr, \":\")\n\tif lastIndex < 1 {\n\t\treturn false\n\t}\n\n\tremoteAddr = remoteAddr[:lastIndex]\n\n\t// ipv6\n\tif strings.HasPrefix(remoteAddr, \"[\") && strings.HasSuffix(remoteAddr, \"]\") {\n\t\tremoteAddr = remoteAddr[1 : len(remoteAddr)-1]\n\t}\n\n\tif ip := net.ParseIP(remoteAddr); ip != nil {\n\t\treturn ip.IsLoopback() || // 127/8, ::1\n\t\t\tip.IsPrivate() || // 10/8, 172.16/12, 192.168/16, fc00::/7\n\t\t\tip.IsLinkLocalUnicast() // 169.254/16, fe80::/10\n\t}\n\n\t// localhost\n\tif remoteAddr == \"localhost\" {\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "web/adminviews/.gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\n.DS_Store\n\ndist-ssr\ncoverage\n*.local\n\n/cypress/videos/\n/cypress/screenshots/\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "web/adminviews/.vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\"Vue.volar\", \"Vue.vscode-typescript-vue-plugin\"]\n}\n"
  },
  {
    "path": "web/adminviews/README.md",
    "content": "# lucky-adminviews\n\nThis template should help get you started developing with Vue 3 in Vite.\n\n## Recommended IDE Setup\n\n[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).\n\n## Customize configuration\n\nSee [Vite Configuration Reference](https://vitejs.dev/config/).\n\n## Project Setup\n\n```sh\nnpm install\n```\n\n### Compile and Hot-Reload for Development\n\n```sh\nnpm run dev\n```\n\n### Compile and Minify for Production\n\n```sh\nnpm run build\n```\n"
  },
  {
    "path": "web/adminviews/auto-imports.d.ts",
    "content": "// Generated by 'unplugin-auto-import'\nexport {}\ndeclare global {\n\n}\n"
  },
  {
    "path": "web/adminviews/components.d.ts",
    "content": "// generated by unplugin-vue-components\n// We suggest you to commit this file into source control\n// Read more: https://github.com/vuejs/core/pull/3399\nimport '@vue/runtime-core'\n\ndeclare module '@vue/runtime-core' {\n  export interface GlobalComponents {\n    About: typeof import('./src/components/About.vue')['default']\n    BlackLists: typeof import('./src/components/BlackLists.vue')['default']\n    DDNS: typeof import('./src/components/DDNS.vue')['default']\n    DDNSSet: typeof import('./src/components/DDNSSet.vue')['default']\n    ElAffix: typeof import('element-plus/es')['ElAffix']\n    ElButton: typeof import('element-plus/es')['ElButton']\n    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']\n    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']\n    ElCollapse: typeof import('element-plus/es')['ElCollapse']\n    ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']\n    ElContainer: typeof import('element-plus/es')['ElContainer']\n    ElDescriptions: typeof import('element-plus/es')['ElDescriptions']\n    ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']\n    ElDialog: typeof import('element-plus/es')['ElDialog']\n    ElDivider: typeof import('element-plus/es')['ElDivider']\n    ElForm: typeof import('element-plus/es')['ElForm']\n    ElFormItem: typeof import('element-plus/es')['ElFormItem']\n    ElHeader: typeof import('element-plus/es')['ElHeader']\n    ElIcon: typeof import('element-plus/es')['ElIcon']\n    ElInput: typeof import('element-plus/es')['ElInput']\n    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']\n    ElLink: typeof import('element-plus/es')['ElLink']\n    ElMain: typeof import('element-plus/es')['ElMain']\n    ElMenu: typeof import('element-plus/es')['ElMenu']\n    ElMenuItem: typeof import('element-plus/es')['ElMenuItem']\n    ElOption: typeof import('element-plus/es')['ElOption']\n    ElPagination: typeof import('element-plus/es')['ElPagination']\n    ElRadio: typeof import('element-plus/es')['ElRadio']\n    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']\n    ElScrollbar: typeof import('element-plus/es')['ElScrollbar']\n    ElSelect: typeof import('element-plus/es')['ElSelect']\n    ElSubMenu: typeof import('element-plus/es')['ElSubMenu']\n    ElSwitch: typeof import('element-plus/es')['ElSwitch']\n    ElTable: typeof import('element-plus/es')['ElTable']\n    ElTableColumn: typeof import('element-plus/es')['ElTableColumn']\n    ElTooltip: typeof import('element-plus/es')['ElTooltip']\n    ElUpload: typeof import('element-plus/es')['ElUpload']\n    Loading: typeof import('element-plus/es')['ElLoadingDirective']\n    Log: typeof import('./src/components/Log.vue')['default']\n    Login: typeof import('./src/components/Login.vue')['default']\n    Pmenu: typeof import('./src/components/Pmenu.vue')['default']\n    PortForward: typeof import('./src/components/PortForward.vue')['default']\n    PortForwardSet: typeof import('./src/components/PortForwardSet.vue')['default']\n    PSet: typeof import('./src/components/PSet.vue')['default']\n    ReverseProxy: typeof import('./src/components/ReverseProxy.vue')['default']\n    SSL: typeof import('./src/components/SSL.vue')['default']\n    Status: typeof import('./src/components/Status.vue')['default']\n    WhiteLists: typeof import('./src/components/WhiteLists.vue')['default']\n    WhiteListSet: typeof import('./src/components/WhiteListSet.vue')['default']\n    WOL: typeof import('./src/components/tools/WOL.vue')['default']\n  }\n}\n\nexport {}\n"
  },
  {
    "path": "web/adminviews/dist/assets/index.0c84c960.js",
    "content": "var up=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Dpe=up((Cn,En)=>{const ap=function(){const t=document.createElement(\"link\").relList;if(t&&t.supports&&t.supports(\"modulepreload\"))return;for(const l of document.querySelectorAll('link[rel=\"modulepreload\"]'))o(l);new MutationObserver(l=>{for(const u of l)if(u.type===\"childList\")for(const a of u.addedNodes)a.tagName===\"LINK\"&&a.rel===\"modulepreload\"&&o(a)}).observe(document,{childList:!0,subtree:!0});function n(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerpolicy&&(u.referrerPolicy=l.referrerpolicy),l.crossorigin===\"use-credentials\"?u.credentials=\"include\":l.crossorigin===\"anonymous\"?u.credentials=\"omit\":u.credentials=\"same-origin\",u}function o(l){if(l.ep)return;l.ep=!0;const u=n(l);fetch(l.href,u)}};ap();function xi(e,t){const n=Object.create(null),o=e.split(\",\");for(let l=0;l<o.length;l++)n[o[l]]=!0;return t?l=>!!n[l.toLowerCase()]:l=>!!n[l]}const rp=\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\",sp=xi(rp);function jd(e){return!!e||e===\"\"}function ut(e){if(qe(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],l=tt(o)?dp(o):ut(o);if(l)for(const u in l)t[u]=l[u]}return t}else{if(tt(e))return e;if(dt(e))return e}}const ip=/;(?![^(]*\\))/g,cp=/:(.+)/;function dp(e){const t={};return e.split(ip).forEach(n=>{if(n){const o=n.split(cp);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function K(e){let t=\"\";if(tt(e))t=e;else if(qe(e))for(let n=0;n<e.length;n++){const o=K(e[n]);o&&(t+=o+\" \")}else if(dt(e))for(const n in e)e[n]&&(t+=n+\" \");return t.trim()}function fp(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=Jl(e[o],t[o]);return n}function Jl(e,t){if(e===t)return!0;let n=l2(e),o=l2(t);if(n||o)return n&&o?e.getTime()===t.getTime():!1;if(n=ju(e),o=ju(t),n||o)return e===t;if(n=qe(e),o=qe(t),n||o)return n&&o?fp(e,t):!1;if(n=dt(e),o=dt(t),n||o){if(!n||!o)return!1;const l=Object.keys(e).length,u=Object.keys(t).length;if(l!==u)return!1;for(const a in e){const r=e.hasOwnProperty(a),s=t.hasOwnProperty(a);if(r&&!s||!r&&s||!Jl(e[a],t[a]))return!1}}return String(e)===String(t)}function Kd(e,t){return e.findIndex(n=>Jl(n,t))}const re=e=>tt(e)?e:e==null?\"\":qe(e)||dt(e)&&(e.toString===Yd||!Ge(e.toString))?JSON.stringify(e,Gd,2):String(e),Gd=(e,t)=>t&&t.__v_isRef?Gd(e,t.value):Gl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l])=>(n[`${o} =>`]=l,n),{})}:Sr(t)?{[`Set(${t.size})`]:[...t.values()]}:dt(t)&&!qe(t)&&!Xd(t)?String(t):t,wt={},Kl=[],vt=()=>{},pp=()=>!1,vp=/^on[^a-z]/,$r=e=>vp.test(e),$i=e=>e.startsWith(\"onUpdate:\"),Ht=Object.assign,Si=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hp=Object.prototype.hasOwnProperty,st=(e,t)=>hp.call(e,t),qe=Array.isArray,Gl=e=>da(e)===\"[object Map]\",Sr=e=>da(e)===\"[object Set]\",l2=e=>da(e)===\"[object Date]\",Ge=e=>typeof e==\"function\",tt=e=>typeof e==\"string\",ju=e=>typeof e==\"symbol\",dt=e=>e!==null&&typeof e==\"object\",dr=e=>dt(e)&&Ge(e.then)&&Ge(e.catch),Yd=Object.prototype.toString,da=e=>Yd.call(e),qa=e=>da(e).slice(8,-1),Xd=e=>da(e)===\"[object Object]\",ki=e=>tt(e)&&e!==\"NaN\"&&e[0]!==\"-\"&&\"\"+parseInt(e,10)===e,ja=xi(\",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"),kr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},_p=/-(\\w)/g,Ln=kr(e=>e.replace(_p,(t,n)=>n?n.toUpperCase():\"\")),mp=/\\B([A-Z])/g,ll=kr(e=>e.replace(mp,\"-$1\").toLowerCase()),Pr=kr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ka=kr(e=>e?`on${Pr(e)}`:\"\"),Ku=(e,t)=>!Object.is(e,t),Ga=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},fr=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},pr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let u2;const gp=()=>u2||(u2=typeof globalThis!=\"undefined\"?globalThis:typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:{});let yn;class bp{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=yn,!t&&yn&&(this.index=(yn.scopes||(yn.scopes=[])).push(this)-1)}run(t){if(this.active){const n=yn;try{return yn=this,t()}finally{yn=n}}}on(){yn=this}off(){yn=this.parent}stop(t){if(this.active){let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.scopes)for(n=0,o=this.scopes.length;n<o;n++)this.scopes[n].stop(!0);if(!this.detached&&this.parent&&!t){const l=this.parent.scopes.pop();l&&l!==this&&(this.parent.scopes[this.index]=l,l.index=this.index)}this.parent=void 0,this.active=!1}}}function yp(e,t=yn){t&&t.active&&t.effects.push(e)}function wp(){return yn}function Jd(e){yn&&yn.cleanups.push(e)}const Pi=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Qd=e=>(e.w&el)>0,Zd=e=>(e.n&el)>0,Cp=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=el},Ep=e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const l=t[o];Qd(l)&&!Zd(l)?l.delete(e):t[n++]=l,l.w&=~el,l.n&=~el}t.length=n}},zs=new WeakMap;let zu=0,el=1;const Ms=30;let Wn;const El=Symbol(\"\"),Vs=Symbol(\"\");class Li{constructor(t,n=null,o){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,yp(this,o)}run(){if(!this.active)return this.fn();let t=Wn,n=Qo;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=Wn,Wn=this,Qo=!0,el=1<<++zu,zu<=Ms?Cp(this):a2(this),this.fn()}finally{zu<=Ms&&Ep(this),el=1<<--zu,Wn=this.parent,Qo=n,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Wn===this?this.deferStop=!0:this.active&&(a2(this),this.onStop&&this.onStop(),this.active=!1)}}function a2(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let Qo=!0;const e1=[];function kl(){e1.push(Qo),Qo=!1}function Pl(){const e=e1.pop();Qo=e===void 0?!0:e}function Fn(e,t,n){if(Qo&&Wn){let o=zs.get(e);o||zs.set(e,o=new Map);let l=o.get(n);l||o.set(n,l=Pi()),t1(l)}}function t1(e,t){let n=!1;zu<=Ms?Zd(e)||(e.n|=el,n=!Qd(e)):n=!e.has(Wn),n&&(e.add(Wn),Wn.deps.push(e))}function xo(e,t,n,o,l,u){const a=zs.get(e);if(!a)return;let r=[];if(t===\"clear\")r=[...a.values()];else if(n===\"length\"&&qe(e))a.forEach((s,i)=>{(i===\"length\"||i>=o)&&r.push(s)});else switch(n!==void 0&&r.push(a.get(n)),t){case\"add\":qe(e)?ki(n)&&r.push(a.get(\"length\")):(r.push(a.get(El)),Gl(e)&&r.push(a.get(Vs)));break;case\"delete\":qe(e)||(r.push(a.get(El)),Gl(e)&&r.push(a.get(Vs)));break;case\"set\":Gl(e)&&r.push(a.get(El));break}if(r.length===1)r[0]&&Is(r[0]);else{const s=[];for(const i of r)i&&s.push(...i);Is(Pi(s))}}function Is(e,t){const n=qe(e)?e:[...e];for(const o of n)o.computed&&r2(o);for(const o of n)o.computed||r2(o)}function r2(e,t){(e!==Wn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Fp=xi(\"__proto__,__v_isRef,__isVue\"),n1=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==\"arguments\"&&e!==\"caller\").map(e=>Symbol[e]).filter(ju)),Ap=Ti(),Dp=Ti(!1,!0),Bp=Ti(!0),s2=xp();function xp(){const e={};return[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach(t=>{e[t]=function(...n){const o=ct(this);for(let u=0,a=this.length;u<a;u++)Fn(o,\"get\",u+\"\");const l=o[t](...n);return l===-1||l===!1?o[t](...n.map(ct)):l}}),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach(t=>{e[t]=function(...n){kl();const o=ct(this)[t].apply(this,n);return Pl(),o}}),e}function Ti(e=!1,t=!1){return function(o,l,u){if(l===\"__v_isReactive\")return!e;if(l===\"__v_isReadonly\")return e;if(l===\"__v_isShallow\")return t;if(l===\"__v_raw\"&&u===(e?t?Wp:r1:t?a1:u1).get(o))return o;const a=qe(o);if(!e&&a&&st(s2,l))return Reflect.get(s2,l,u);const r=Reflect.get(o,l,u);return(ju(l)?n1.has(l):Fp(l))||(e||Fn(o,\"get\",l),t)?r:yt(r)?a&&ki(l)?r:r.value:dt(r)?e?Vi(r):Rt(r):r}}const $p=o1(),Sp=o1(!0);function o1(e=!1){return function(n,o,l,u){let a=n[o];if(Ql(a)&&yt(a)&&!yt(l))return!1;if(!e&&(!vr(l)&&!Ql(l)&&(a=ct(a),l=ct(l)),!qe(n)&&yt(a)&&!yt(l)))return a.value=l,!0;const r=qe(n)&&ki(o)?Number(o)<n.length:st(n,o),s=Reflect.set(n,o,l,u);return n===ct(u)&&(r?Ku(l,a)&&xo(n,\"set\",o,l):xo(n,\"add\",o,l)),s}}function kp(e,t){const n=st(e,t);e[t];const o=Reflect.deleteProperty(e,t);return o&&n&&xo(e,\"delete\",t,void 0),o}function Pp(e,t){const n=Reflect.has(e,t);return(!ju(t)||!n1.has(t))&&Fn(e,\"has\",t),n}function Lp(e){return Fn(e,\"iterate\",qe(e)?\"length\":El),Reflect.ownKeys(e)}const l1={get:Ap,set:$p,deleteProperty:kp,has:Pp,ownKeys:Lp},Tp={get:Bp,set(e,t){return!0},deleteProperty(e,t){return!0}},zp=Ht({},l1,{get:Dp,set:Sp}),zi=e=>e,Lr=e=>Reflect.getPrototypeOf(e);function Da(e,t,n=!1,o=!1){e=e.__v_raw;const l=ct(e),u=ct(t);n||(t!==u&&Fn(l,\"get\",t),Fn(l,\"get\",u));const{has:a}=Lr(l),r=o?zi:n?Hi:Gu;if(a.call(l,t))return r(e.get(t));if(a.call(l,u))return r(e.get(u));e!==l&&e.get(t)}function Ba(e,t=!1){const n=this.__v_raw,o=ct(n),l=ct(e);return t||(e!==l&&Fn(o,\"has\",e),Fn(o,\"has\",l)),e===l?n.has(e):n.has(e)||n.has(l)}function xa(e,t=!1){return e=e.__v_raw,!t&&Fn(ct(e),\"iterate\",El),Reflect.get(e,\"size\",e)}function i2(e){e=ct(e);const t=ct(this);return Lr(t).has.call(t,e)||(t.add(e),xo(t,\"add\",e,e)),this}function c2(e,t){t=ct(t);const n=ct(this),{has:o,get:l}=Lr(n);let u=o.call(n,e);u||(e=ct(e),u=o.call(n,e));const a=l.call(n,e);return n.set(e,t),u?Ku(t,a)&&xo(n,\"set\",e,t):xo(n,\"add\",e,t),this}function d2(e){const t=ct(this),{has:n,get:o}=Lr(t);let l=n.call(t,e);l||(e=ct(e),l=n.call(t,e)),o&&o.call(t,e);const u=t.delete(e);return l&&xo(t,\"delete\",e,void 0),u}function f2(){const e=ct(this),t=e.size!==0,n=e.clear();return t&&xo(e,\"clear\",void 0,void 0),n}function $a(e,t){return function(o,l){const u=this,a=u.__v_raw,r=ct(a),s=t?zi:e?Hi:Gu;return!e&&Fn(r,\"iterate\",El),a.forEach((i,p)=>o.call(l,s(i),s(p),u))}}function Sa(e,t,n){return function(...o){const l=this.__v_raw,u=ct(l),a=Gl(u),r=e===\"entries\"||e===Symbol.iterator&&a,s=e===\"keys\"&&a,i=l[e](...o),p=n?zi:t?Hi:Gu;return!t&&Fn(u,\"iterate\",s?Vs:El),{next(){const{value:m,done:v}=i.next();return v?{value:m,done:v}:{value:r?[p(m[0]),p(m[1])]:p(m),done:v}},[Symbol.iterator](){return this}}}}function Ro(e){return function(...t){return e===\"delete\"?!1:this}}function Mp(){const e={get(u){return Da(this,u)},get size(){return xa(this)},has:Ba,add:i2,set:c2,delete:d2,clear:f2,forEach:$a(!1,!1)},t={get(u){return Da(this,u,!1,!0)},get size(){return xa(this)},has:Ba,add:i2,set:c2,delete:d2,clear:f2,forEach:$a(!1,!0)},n={get(u){return Da(this,u,!0)},get size(){return xa(this,!0)},has(u){return Ba.call(this,u,!0)},add:Ro(\"add\"),set:Ro(\"set\"),delete:Ro(\"delete\"),clear:Ro(\"clear\"),forEach:$a(!0,!1)},o={get(u){return Da(this,u,!0,!0)},get size(){return xa(this,!0)},has(u){return Ba.call(this,u,!0)},add:Ro(\"add\"),set:Ro(\"set\"),delete:Ro(\"delete\"),clear:Ro(\"clear\"),forEach:$a(!0,!0)};return[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach(u=>{e[u]=Sa(u,!1,!1),n[u]=Sa(u,!0,!1),t[u]=Sa(u,!1,!0),o[u]=Sa(u,!0,!0)}),[e,n,t,o]}const[Vp,Ip,Hp,Rp]=Mp();function Mi(e,t){const n=t?e?Rp:Hp:e?Ip:Vp;return(o,l,u)=>l===\"__v_isReactive\"?!e:l===\"__v_isReadonly\"?e:l===\"__v_raw\"?o:Reflect.get(st(n,l)&&l in o?n:o,l,u)}const Np={get:Mi(!1,!1)},Op={get:Mi(!1,!0)},Up={get:Mi(!0,!1)},u1=new WeakMap,a1=new WeakMap,r1=new WeakMap,Wp=new WeakMap;function qp(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}function jp(e){return e.__v_skip||!Object.isExtensible(e)?0:qp(qa(e))}function Rt(e){return Ql(e)?e:Ii(e,!1,l1,Np,u1)}function s1(e){return Ii(e,!1,zp,Op,a1)}function Vi(e){return Ii(e,!0,Tp,Up,r1)}function Ii(e,t,n,o,l){if(!dt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const u=l.get(e);if(u)return u;const a=jp(e);if(a===0)return e;const r=new Proxy(e,a===2?o:n);return l.set(e,r),r}function Yl(e){return Ql(e)?Yl(e.__v_raw):!!(e&&e.__v_isReactive)}function Ql(e){return!!(e&&e.__v_isReadonly)}function vr(e){return!!(e&&e.__v_isShallow)}function i1(e){return Yl(e)||Ql(e)}function ct(e){const t=e&&e.__v_raw;return t?ct(t):e}function c1(e){return fr(e,\"__v_skip\",!0),e}const Gu=e=>dt(e)?Rt(e):e,Hi=e=>dt(e)?Vi(e):e;function d1(e){Qo&&Wn&&(e=ct(e),t1(e.dep||(e.dep=Pi())))}function Ri(e,t){e=ct(e),e.dep&&Is(e.dep)}function yt(e){return!!(e&&e.__v_isRef===!0)}function L(e){return f1(e,!1)}function Kn(e){return f1(e,!0)}function f1(e,t){return yt(e)?e:new Kp(e,t)}class Kp{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ct(t),this._value=n?t:Gu(t)}get value(){return d1(this),this._value}set value(t){const n=this.__v_isShallow||vr(t)||Ql(t);t=n?t:ct(t),Ku(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Gu(t),Ri(this))}}function xu(e){Ri(e)}function h(e){return yt(e)?e.value:e}const Gp={get:(e,t,n)=>h(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return yt(l)&&!yt(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function p1(e){return Yl(e)?e:new Proxy(e,Gp)}function ho(e){const t=qe(e)?new Array(e.length):{};for(const n in e)t[n]=Tn(e,n);return t}class Yp{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function Tn(e,t,n){const o=e[t];return yt(o)?o:new Yp(e,t,n)}var v1;class Xp{constructor(t,n,o,l){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[v1]=!1,this._dirty=!0,this.effect=new Li(t,()=>{this._dirty||(this._dirty=!0,Ri(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=o}get value(){const t=ct(this);return d1(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}v1=\"__v_isReadonly\";function h1(e,t,n=!1){let o,l;const u=Ge(e);return u?(o=e,l=vt):(o=e.get,l=e.set),new Xp(o,l,u||!l,n)}const Vu=[];function Jp(e,...t){kl();const n=Vu.length?Vu[Vu.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=Qp();if(o)Ao(o,n,11,[e+t.join(\"\"),n&&n.proxy,l.map(({vnode:u})=>`at <${W1(n,u.type)}>`).join(`\n`),l]);else{const u=[`[Vue warn]: ${e}`,...t];l.length&&u.push(`\n`,...Zp(l)),console.warn(...u)}Pl()}function Qp(){let e=Vu[Vu.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Zp(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[`\n`],...e3(n))}),t}function e3({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:\"\",o=e.component?e.component.parent==null:!1,l=` at <${W1(e.component,e.type,o)}`,u=\">\"+n;return e.props?[l,...t3(e.props),u]:[l+u]}function t3(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(..._1(o,e[o]))}),n.length>3&&t.push(\" ...\"),t}function _1(e,t,n){return tt(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t==\"number\"||typeof t==\"boolean\"||t==null?n?t:[`${e}=${t}`]:yt(t)?(t=_1(e,ct(t.value),!0),n?t:[`${e}=Ref<`,t,\">\"]):Ge(t)?[`${e}=fn${t.name?`<${t.name}>`:\"\"}`]:(t=ct(t),n?t:[`${e}=`,t])}function Ao(e,t,n,o){let l;try{l=o?e(...o):e()}catch(u){Tr(u,t,n)}return l}function Sn(e,t,n,o){if(Ge(e)){const u=Ao(e,t,n,o);return u&&dr(u)&&u.catch(a=>{Tr(a,t,n)}),u}const l=[];for(let u=0;u<e.length;u++)l.push(Sn(e[u],t,n,o));return l}function Tr(e,t,n,o=!0){const l=t?t.vnode:null;if(t){let u=t.parent;const a=t.proxy,r=n;for(;u;){const i=u.ec;if(i){for(let p=0;p<i.length;p++)if(i[p](e,a,r)===!1)return}u=u.parent}const s=t.appContext.config.errorHandler;if(s){Ao(s,null,10,[e,a,r]);return}}n3(e,n,l,o)}function n3(e,t,n,o=!0){console.error(e)}let Yu=!1,Hs=!1;const jt=[];let uo=0;const Xl=[];let wo=null,vl=0;const m1=Promise.resolve();let Ni=null;function at(e){const t=Ni||m1;return e?t.then(this?e.bind(this):e):t}function o3(e){let t=uo+1,n=jt.length;for(;t<n;){const o=t+n>>>1;Xu(jt[o])<e?t=o+1:n=o}return t}function Oi(e){(!jt.length||!jt.includes(e,Yu&&e.allowRecurse?uo+1:uo))&&(e.id==null?jt.push(e):jt.splice(o3(e.id),0,e),g1())}function g1(){!Yu&&!Hs&&(Hs=!0,Ni=m1.then(y1))}function l3(e){const t=jt.indexOf(e);t>uo&&jt.splice(t,1)}function u3(e){qe(e)?Xl.push(...e):(!wo||!wo.includes(e,e.allowRecurse?vl+1:vl))&&Xl.push(e),g1()}function p2(e,t=Yu?uo+1:0){for(;t<jt.length;t++){const n=jt[t];n&&n.pre&&(jt.splice(t,1),t--,n())}}function b1(e){if(Xl.length){const t=[...new Set(Xl)];if(Xl.length=0,wo){wo.push(...t);return}for(wo=t,wo.sort((n,o)=>Xu(n)-Xu(o)),vl=0;vl<wo.length;vl++)wo[vl]();wo=null,vl=0}}const Xu=e=>e.id==null?1/0:e.id,a3=(e,t)=>{const n=Xu(e)-Xu(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function y1(e){Hs=!1,Yu=!0,jt.sort(a3);const t=vt;try{for(uo=0;uo<jt.length;uo++){const n=jt[uo];n&&n.active!==!1&&Ao(n,null,14)}}finally{uo=0,jt.length=0,b1(),Yu=!1,Ni=null,(jt.length||Xl.length)&&y1()}}function r3(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||wt;let l=n;const u=t.startsWith(\"update:\"),a=u&&t.slice(7);if(a&&a in o){const p=`${a===\"modelValue\"?\"model\":a}Modifiers`,{number:m,trim:v}=o[p]||wt;v&&(l=n.map(_=>_.trim())),m&&(l=n.map(pr))}let r,s=o[r=Ka(t)]||o[r=Ka(Ln(t))];!s&&u&&(s=o[r=Ka(ll(t))]),s&&Sn(s,e,6,l);const i=o[r+\"Once\"];if(i){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Sn(i,e,6,l)}}function w1(e,t,n=!1){const o=t.emitsCache,l=o.get(e);if(l!==void 0)return l;const u=e.emits;let a={},r=!1;if(!Ge(e)){const s=i=>{const p=w1(i,t,!0);p&&(r=!0,Ht(a,p))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!u&&!r?(dt(e)&&o.set(e,null),null):(qe(u)?u.forEach(s=>a[s]=null):Ht(a,u),dt(e)&&o.set(e,a),a)}function zr(e,t){return!e||!$r(t)?!1:(t=t.slice(2).replace(/Once$/,\"\"),st(e,t[0].toLowerCase()+t.slice(1))||st(e,ll(t))||st(e,t))}let Kt=null,Mr=null;function hr(e){const t=Kt;return Kt=e,Mr=e&&e.type.__scopeId||null,t}function gu(e){Mr=e}function bu(){Mr=null}function d(e,t=Kt,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&A2(-1);const u=hr(t);let a;try{a=e(...l)}finally{hr(u),o._d&&A2(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function is(e){const{type:t,vnode:n,proxy:o,withProxy:l,props:u,propsOptions:[a],slots:r,attrs:s,emit:i,render:p,renderCache:m,data:v,setupState:_,ctx:g,inheritAttrs:y}=e;let w,E;const D=hr(e);try{if(n.shapeFlag&4){const B=l||o;w=lo(p.call(B,B,m,u,_,v,g)),E=s}else{const B=t;w=lo(B.length>1?B(u,{attrs:s,slots:r,emit:i}):B(u,null)),E=t.props?s:s3(s)}}catch(B){Ru.length=0,Tr(B,e,1),w=c(an)}let C=w;if(E&&y!==!1){const B=Object.keys(E),{shapeFlag:$}=C;B.length&&$&7&&(a&&B.some($i)&&(E=i3(E,a)),C=$o(C,E))}return n.dirs&&(C=$o(C),C.dirs=C.dirs?C.dirs.concat(n.dirs):n.dirs),n.transition&&(C.transition=n.transition),w=C,hr(D),w}const s3=e=>{let t;for(const n in e)(n===\"class\"||n===\"style\"||$r(n))&&((t||(t={}))[n]=e[n]);return t},i3=(e,t)=>{const n={};for(const o in e)(!$i(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function c3(e,t,n){const{props:o,children:l,component:u}=e,{props:a,children:r,patchFlag:s}=t,i=u.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return o?v2(o,a,i):!!a;if(s&8){const p=t.dynamicProps;for(let m=0;m<p.length;m++){const v=p[m];if(a[v]!==o[v]&&!zr(i,v))return!0}}}else return(l||r)&&(!r||!r.$stable)?!0:o===a?!1:o?a?v2(o,a,i):!0:!!a;return!1}function v2(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;l<o.length;l++){const u=o[l];if(t[u]!==e[u]&&!zr(n,u))return!0}return!1}function d3({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const f3=e=>e.__isSuspense;function p3(e,t){t&&t.pendingBranch?qe(e)?t.effects.push(...e):t.effects.push(e):u3(e)}function Dt(e,t){if(It){let n=It.provides;const o=It.parent&&It.parent.provides;o===n&&(n=It.provides=Object.create(o)),n[e]=t}}function Xe(e,t,n=!1){const o=It||Kt;if(o){const l=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(l&&e in l)return l[e];if(arguments.length>1)return n&&Ge(t)?t.call(o.proxy):t}}function Do(e,t){return Ui(e,null,t)}const h2={};function Me(e,t,n){return Ui(e,t,n)}function Ui(e,t,{immediate:n,deep:o,flush:l,onTrack:u,onTrigger:a}=wt){const r=It;let s,i=!1,p=!1;if(yt(e)?(s=()=>e.value,i=vr(e)):Yl(e)?(s=()=>e,o=!0):qe(e)?(p=!0,i=e.some(E=>Yl(E)||vr(E)),s=()=>e.map(E=>{if(yt(E))return E.value;if(Yl(E))return gl(E);if(Ge(E))return Ao(E,r,2)})):Ge(e)?t?s=()=>Ao(e,r,2):s=()=>{if(!(r&&r.isUnmounted))return m&&m(),Sn(e,r,3,[v])}:s=vt,t&&o){const E=s;s=()=>gl(E())}let m,v=E=>{m=w.onStop=()=>{Ao(E,r,4)}};if(ea)return v=vt,t?n&&Sn(t,r,3,[s(),p?[]:void 0,v]):s(),vt;let _=p?[]:h2;const g=()=>{if(!!w.active)if(t){const E=w.run();(o||i||(p?E.some((D,C)=>Ku(D,_[C])):Ku(E,_)))&&(m&&m(),Sn(t,r,3,[E,_===h2?void 0:_,v]),_=E)}else w.run()};g.allowRecurse=!!t;let y;l===\"sync\"?y=g:l===\"post\"?y=()=>un(g,r&&r.suspense):(g.pre=!0,r&&(g.id=r.uid),y=()=>Oi(g));const w=new Li(s,y);return t?n?g():_=w.run():l===\"post\"?un(w.run.bind(w),r&&r.suspense):w.run(),()=>{w.stop(),r&&r.scope&&Si(r.scope.effects,w)}}function v3(e,t,n){const o=this.proxy,l=tt(e)?e.includes(\".\")?C1(o,e):()=>o[e]:e.bind(o,o);let u;Ge(t)?u=t:(u=t.handler,n=t);const a=It;eu(this);const r=Ui(l,u.bind(o),n);return a?eu(a):Fl(),r}function C1(e,t){const n=t.split(\".\");return()=>{let o=e;for(let l=0;l<n.length&&o;l++)o=o[n[l]];return o}}function gl(e,t){if(!dt(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),yt(e))gl(e.value,t);else if(qe(e))for(let n=0;n<e.length;n++)gl(e[n],t);else if(Sr(e)||Gl(e))e.forEach(n=>{gl(n,t)});else if(Xd(e))for(const n in e)gl(e[n],t);return e}function E1(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ot(()=>{e.isMounted=!0}),Mt(()=>{e.isUnmounting=!0}),e}const xn=[Function,Array],h3={name:\"BaseTransition\",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:xn,onEnter:xn,onAfterEnter:xn,onEnterCancelled:xn,onBeforeLeave:xn,onLeave:xn,onAfterLeave:xn,onLeaveCancelled:xn,onBeforeAppear:xn,onAppear:xn,onAfterAppear:xn,onAppearCancelled:xn},setup(e,{slots:t}){const n=pt(),o=E1();let l;return()=>{const u=t.default&&Wi(t.default(),!0);if(!u||!u.length)return;let a=u[0];if(u.length>1){for(const y of u)if(y.type!==an){a=y;break}}const r=ct(e),{mode:s}=r;if(o.isLeaving)return cs(a);const i=_2(a);if(!i)return cs(a);const p=Ju(i,r,o,n);Qu(i,p);const m=n.subTree,v=m&&_2(m);let _=!1;const{getTransitionKey:g}=i.type;if(g){const y=g();l===void 0?l=y:y!==l&&(l=y,_=!0)}if(v&&v.type!==an&&(!hl(i,v)||_)){const y=Ju(v,r,o,n);if(Qu(v,y),s===\"out-in\")return o.isLeaving=!0,y.afterLeave=()=>{o.isLeaving=!1,n.update()},cs(a);s===\"in-out\"&&i.type!==an&&(y.delayLeave=(w,E,D)=>{const C=A1(o,v);C[String(v.key)]=v,w._leaveCb=()=>{E(),w._leaveCb=void 0,delete p.delayedLeave},p.delayedLeave=D})}return a}}},F1=h3;function A1(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Ju(e,t,n,o){const{appear:l,mode:u,persisted:a=!1,onBeforeEnter:r,onEnter:s,onAfterEnter:i,onEnterCancelled:p,onBeforeLeave:m,onLeave:v,onAfterLeave:_,onLeaveCancelled:g,onBeforeAppear:y,onAppear:w,onAfterAppear:E,onAppearCancelled:D}=t,C=String(e.key),B=A1(n,e),$=(T,H)=>{T&&Sn(T,o,9,H)},k=(T,H)=>{const j=H[1];$(T,H),qe(T)?T.every(X=>X.length<=1)&&j():T.length<=1&&j()},P={mode:u,persisted:a,beforeEnter(T){let H=r;if(!n.isMounted)if(l)H=y||r;else return;T._leaveCb&&T._leaveCb(!0);const j=B[C];j&&hl(e,j)&&j.el._leaveCb&&j.el._leaveCb(),$(H,[T])},enter(T){let H=s,j=i,X=p;if(!n.isMounted)if(l)H=w||s,j=E||i,X=D||p;else return;let W=!1;const N=T._enterCb=J=>{W||(W=!0,J?$(X,[T]):$(j,[T]),P.delayedLeave&&P.delayedLeave(),T._enterCb=void 0)};H?k(H,[T,N]):N()},leave(T,H){const j=String(e.key);if(T._enterCb&&T._enterCb(!0),n.isUnmounting)return H();$(m,[T]);let X=!1;const W=T._leaveCb=N=>{X||(X=!0,H(),N?$(g,[T]):$(_,[T]),T._leaveCb=void 0,B[j]===e&&delete B[j])};B[j]=e,v?k(v,[T,W]):W()},clone(T){return Ju(T,t,n,o)}};return P}function cs(e){if(Vr(e))return e=$o(e),e.children=null,e}function _2(e){return Vr(e)?e.children?e.children[0]:void 0:e}function Qu(e,t){e.shapeFlag&6&&e.component?Qu(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Wi(e,t=!1,n){let o=[],l=0;for(let u=0;u<e.length;u++){let a=e[u];const r=n==null?a.key:String(n)+String(a.key!=null?a.key:u);a.type===Oe?(a.patchFlag&128&&l++,o=o.concat(Wi(a.children,t,r))):(t||a.type!==an)&&o.push(r!=null?$o(a,{key:r}):a)}if(l>1)for(let u=0;u<o.length;u++)o[u].patchFlag=-2;return o}function le(e){return Ge(e)?{setup:e,name:e.name}:e}const Iu=e=>!!e.type.__asyncLoader,Vr=e=>e.type.__isKeepAlive;function _3(e,t){B1(e,\"a\",t)}function D1(e,t){B1(e,\"da\",t)}function B1(e,t,n=It){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(Ir(t,o,n),n){let l=n.parent;for(;l&&l.parent;)Vr(l.parent.vnode)&&m3(o,t,n,l),l=l.parent}}function m3(e,t,n,o){const l=Ir(t,e,o,!0);In(()=>{Si(o[t],l)},n)}function Ir(e,t,n=It,o=!1){if(n){const l=n[e]||(n[e]=[]),u=t.__weh||(t.__weh=(...a)=>{if(n.isUnmounted)return;kl(),eu(n);const r=Sn(t,n,e,a);return Fl(),Pl(),r});return o?l.unshift(u):l.push(u),u}}const Lo=e=>(t,n=It)=>(!ea||e===\"sp\")&&Ir(e,(...o)=>t(...o),n),Hr=Lo(\"bm\"),ot=Lo(\"m\"),g3=Lo(\"bu\"),Ll=Lo(\"u\"),Mt=Lo(\"bum\"),In=Lo(\"um\"),b3=Lo(\"sp\"),y3=Lo(\"rtg\"),w3=Lo(\"rtc\");function C3(e,t=It){Ir(\"ec\",e,t)}function fe(e,t){const n=Kt;if(n===null)return e;const o=Nr(n)||n.proxy,l=e.dirs||(e.dirs=[]);for(let u=0;u<t.length;u++){let[a,r,s,i=wt]=t[u];Ge(a)&&(a={mounted:a,updated:a}),a.deep&&gl(r),l.push({dir:a,instance:o,value:r,oldValue:void 0,arg:s,modifiers:i})}return e}function sl(e,t,n,o){const l=e.dirs,u=t&&t.dirs;for(let a=0;a<l.length;a++){const r=l[a];u&&(r.oldValue=u[a].value);let s=r.dir[o];s&&(kl(),Sn(s,n,8,[e.el,r,e,t]),Pl())}}const qi=\"components\",E3=\"directives\";function lt(e,t){return Ki(qi,e,!0,t)||e}const x1=Symbol();function Ct(e){return tt(e)?Ki(qi,e,!1)||e:e||x1}function ji(e){return Ki(E3,e)}function Ki(e,t,n=!0,o=!1){const l=Kt||It;if(l){const u=l.type;if(e===qi){const r=U1(u,!1);if(r&&(r===t||r===Ln(t)||r===Pr(Ln(t))))return u}const a=m2(l[e]||u[e],t)||m2(l.appContext[e],t);return!a&&o?u:a}}function m2(e,t){return e&&(e[t]||e[Ln(t)]||e[Pr(Ln(t))])}function it(e,t,n,o){let l;const u=n&&n[o];if(qe(e)||tt(e)){l=new Array(e.length);for(let a=0,r=e.length;a<r;a++)l[a]=t(e[a],a,void 0,u&&u[a])}else if(typeof e==\"number\"){l=new Array(e);for(let a=0;a<e;a++)l[a]=t(a+1,a,void 0,u&&u[a])}else if(dt(e))if(e[Symbol.iterator])l=Array.from(e,(a,r)=>t(a,r,void 0,u&&u[r]));else{const a=Object.keys(e);l=new Array(a.length);for(let r=0,s=a.length;r<s;r++){const i=a[r];l[r]=t(e[i],i,r,u&&u[r])}}else l=[];return n&&(n[o]=l),l}function Zl(e,t){for(let n=0;n<t.length;n++){const o=t[n];if(qe(o))for(let l=0;l<o.length;l++)e[o[l].name]=o[l].fn;else o&&(e[o.name]=o.key?(...l)=>{const u=o.fn(...l);return u&&(u.key=o.key),u}:o.fn)}return e}function ze(e,t,n={},o,l){if(Kt.isCE||Kt.parent&&Iu(Kt.parent)&&Kt.parent.isCE)return c(\"slot\",t===\"default\"?null:{name:t},o&&o());let u=e[t];u&&u._c&&(u._d=!1),b();const a=u&&$1(u(n)),r=ae(Oe,{key:n.key||a&&a.key||`_${t}`},a||(o?o():[]),a&&e._===1?64:-2);return!l&&r.scopeId&&(r.slotScopeIds=[r.scopeId+\"-s\"]),u&&u._c&&(u._d=!0),r}function $1(e){return e.some(t=>cn(t)?!(t.type===an||t.type===Oe&&!$1(t.children)):!0)?e:null}function F3(e,t){const n={};for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:Ka(o)]=e[o];return n}const Rs=e=>e?R1(e)?Nr(e)||e.proxy:Rs(e.parent):null,_r=Ht(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rs(e.parent),$root:e=>Rs(e.root),$emit:e=>e.emit,$options:e=>Gi(e),$forceUpdate:e=>e.f||(e.f=()=>Oi(e.update)),$nextTick:e=>e.n||(e.n=at.bind(e.proxy)),$watch:e=>v3.bind(e)}),A3={get({_:e},t){const{ctx:n,setupState:o,data:l,props:u,accessCache:a,type:r,appContext:s}=e;let i;if(t[0]!==\"$\"){const _=a[t];if(_!==void 0)switch(_){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return u[t]}else{if(o!==wt&&st(o,t))return a[t]=1,o[t];if(l!==wt&&st(l,t))return a[t]=2,l[t];if((i=e.propsOptions[0])&&st(i,t))return a[t]=3,u[t];if(n!==wt&&st(n,t))return a[t]=4,n[t];Ns&&(a[t]=0)}}const p=_r[t];let m,v;if(p)return t===\"$attrs\"&&Fn(e,\"get\",t),p(e);if((m=r.__cssModules)&&(m=m[t]))return m;if(n!==wt&&st(n,t))return a[t]=4,n[t];if(v=s.config.globalProperties,st(v,t))return v[t]},set({_:e},t,n){const{data:o,setupState:l,ctx:u}=e;return l!==wt&&st(l,t)?(l[t]=n,!0):o!==wt&&st(o,t)?(o[t]=n,!0):st(e.props,t)||t[0]===\"$\"&&t.slice(1)in e?!1:(u[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:l,propsOptions:u}},a){let r;return!!n[a]||e!==wt&&st(e,a)||t!==wt&&st(t,a)||(r=u[0])&&st(r,a)||st(o,a)||st(_r,a)||st(l.config.globalProperties,a)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:st(n,\"value\")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Ns=!0;function D3(e){const t=Gi(e),n=e.proxy,o=e.ctx;Ns=!1,t.beforeCreate&&g2(t.beforeCreate,e,\"bc\");const{data:l,computed:u,methods:a,watch:r,provide:s,inject:i,created:p,beforeMount:m,mounted:v,beforeUpdate:_,updated:g,activated:y,deactivated:w,beforeDestroy:E,beforeUnmount:D,destroyed:C,unmounted:B,render:$,renderTracked:k,renderTriggered:P,errorCaptured:T,serverPrefetch:H,expose:j,inheritAttrs:X,components:W,directives:N,filters:J}=t;if(i&&B3(i,o,null,e.appContext.config.unwrapInjectedRef),a)for(const Ee in a){const te=a[Ee];Ge(te)&&(o[Ee]=te.bind(n))}if(l){const Ee=l.call(n,n);dt(Ee)&&(e.data=Rt(Ee))}if(Ns=!0,u)for(const Ee in u){const te=u[Ee],Z=Ge(te)?te.bind(n,n):Ge(te.get)?te.get.bind(n,n):vt,De=!Ge(te)&&Ge(te.set)?te.set.bind(n):vt,Be=U({get:Z,set:De});Object.defineProperty(o,Ee,{enumerable:!0,configurable:!0,get:()=>Be.value,set:x=>Be.value=x})}if(r)for(const Ee in r)S1(r[Ee],o,n,Ee);if(s){const Ee=Ge(s)?s.call(n):s;Reflect.ownKeys(Ee).forEach(te=>{Dt(te,Ee[te])})}p&&g2(p,e,\"c\");function ve(Ee,te){qe(te)?te.forEach(Z=>Ee(Z.bind(n))):te&&Ee(te.bind(n))}if(ve(Hr,m),ve(ot,v),ve(g3,_),ve(Ll,g),ve(_3,y),ve(D1,w),ve(C3,T),ve(w3,k),ve(y3,P),ve(Mt,D),ve(In,B),ve(b3,H),qe(j))if(j.length){const Ee=e.exposed||(e.exposed={});j.forEach(te=>{Object.defineProperty(Ee,te,{get:()=>n[te],set:Z=>n[te]=Z})})}else e.exposed||(e.exposed={});$&&e.render===vt&&(e.render=$),X!=null&&(e.inheritAttrs=X),W&&(e.components=W),N&&(e.directives=N)}function B3(e,t,n=vt,o=!1){qe(e)&&(e=Os(e));for(const l in e){const u=e[l];let a;dt(u)?\"default\"in u?a=Xe(u.from||l,u.default,!0):a=Xe(u.from||l):a=Xe(u),yt(a)&&o?Object.defineProperty(t,l,{enumerable:!0,configurable:!0,get:()=>a.value,set:r=>a.value=r}):t[l]=a}}function g2(e,t,n){Sn(qe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function S1(e,t,n,o){const l=o.includes(\".\")?C1(n,o):()=>n[o];if(tt(e)){const u=t[e];Ge(u)&&Me(l,u)}else if(Ge(e))Me(l,e.bind(n));else if(dt(e))if(qe(e))e.forEach(u=>S1(u,t,n,o));else{const u=Ge(e.handler)?e.handler.bind(n):t[e.handler];Ge(u)&&Me(l,u,e)}}function Gi(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:u,config:{optionMergeStrategies:a}}=e.appContext,r=u.get(t);let s;return r?s=r:!l.length&&!n&&!o?s=t:(s={},l.length&&l.forEach(i=>mr(s,i,a,!0)),mr(s,t,a)),dt(t)&&u.set(t,s),s}function mr(e,t,n,o=!1){const{mixins:l,extends:u}=t;u&&mr(e,u,n,!0),l&&l.forEach(a=>mr(e,a,n,!0));for(const a in t)if(!(o&&a===\"expose\")){const r=x3[a]||n&&n[a];e[a]=r?r(e[a],t[a]):t[a]}return e}const x3={data:b2,props:fl,emits:fl,methods:fl,computed:fl,beforeCreate:Zt,created:Zt,beforeMount:Zt,mounted:Zt,beforeUpdate:Zt,updated:Zt,beforeDestroy:Zt,beforeUnmount:Zt,destroyed:Zt,unmounted:Zt,activated:Zt,deactivated:Zt,errorCaptured:Zt,serverPrefetch:Zt,components:fl,directives:fl,watch:S3,provide:b2,inject:$3};function b2(e,t){return t?e?function(){return Ht(Ge(e)?e.call(this,this):e,Ge(t)?t.call(this,this):t)}:t:e}function $3(e,t){return fl(Os(e),Os(t))}function Os(e){if(qe(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Zt(e,t){return e?[...new Set([].concat(e,t))]:t}function fl(e,t){return e?Ht(Ht(Object.create(null),e),t):t}function S3(e,t){if(!e)return t;if(!t)return e;const n=Ht(Object.create(null),e);for(const o in t)n[o]=Zt(e[o],t[o]);return n}function k3(e,t,n,o=!1){const l={},u={};fr(u,Rr,1),e.propsDefaults=Object.create(null),k1(e,t,l,u);for(const a in e.propsOptions[0])a in l||(l[a]=void 0);n?e.props=o?l:s1(l):e.type.props?e.props=l:e.props=u,e.attrs=u}function P3(e,t,n,o){const{props:l,attrs:u,vnode:{patchFlag:a}}=e,r=ct(l),[s]=e.propsOptions;let i=!1;if((o||a>0)&&!(a&16)){if(a&8){const p=e.vnode.dynamicProps;for(let m=0;m<p.length;m++){let v=p[m];if(zr(e.emitsOptions,v))continue;const _=t[v];if(s)if(st(u,v))_!==u[v]&&(u[v]=_,i=!0);else{const g=Ln(v);l[g]=Us(s,r,g,_,e,!1)}else _!==u[v]&&(u[v]=_,i=!0)}}}else{k1(e,t,l,u)&&(i=!0);let p;for(const m in r)(!t||!st(t,m)&&((p=ll(m))===m||!st(t,p)))&&(s?n&&(n[m]!==void 0||n[p]!==void 0)&&(l[m]=Us(s,r,m,void 0,e,!0)):delete l[m]);if(u!==r)for(const m in u)(!t||!st(t,m)&&!0)&&(delete u[m],i=!0)}i&&xo(e,\"set\",\"$attrs\")}function k1(e,t,n,o){const[l,u]=e.propsOptions;let a=!1,r;if(t)for(let s in t){if(ja(s))continue;const i=t[s];let p;l&&st(l,p=Ln(s))?!u||!u.includes(p)?n[p]=i:(r||(r={}))[p]=i:zr(e.emitsOptions,s)||(!(s in o)||i!==o[s])&&(o[s]=i,a=!0)}if(u){const s=ct(n),i=r||wt;for(let p=0;p<u.length;p++){const m=u[p];n[m]=Us(l,s,m,i[m],e,!st(i,m))}}return a}function Us(e,t,n,o,l,u){const a=e[n];if(a!=null){const r=st(a,\"default\");if(r&&o===void 0){const s=a.default;if(a.type!==Function&&Ge(s)){const{propsDefaults:i}=l;n in i?o=i[n]:(eu(l),o=i[n]=s.call(null,t),Fl())}else o=s}a[0]&&(u&&!r?o=!1:a[1]&&(o===\"\"||o===ll(n))&&(o=!0))}return o}function P1(e,t,n=!1){const o=t.propsCache,l=o.get(e);if(l)return l;const u=e.props,a={},r=[];let s=!1;if(!Ge(e)){const p=m=>{s=!0;const[v,_]=P1(m,t,!0);Ht(a,v),_&&r.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!u&&!s)return dt(e)&&o.set(e,Kl),Kl;if(qe(u))for(let p=0;p<u.length;p++){const m=Ln(u[p]);y2(m)&&(a[m]=wt)}else if(u)for(const p in u){const m=Ln(p);if(y2(m)){const v=u[p],_=a[m]=qe(v)||Ge(v)?{type:v}:v;if(_){const g=E2(Boolean,_.type),y=E2(String,_.type);_[0]=g>-1,_[1]=y<0||g<y,(g>-1||st(_,\"default\"))&&r.push(m)}}}const i=[a,r];return dt(e)&&o.set(e,i),i}function y2(e){return e[0]!==\"$\"}function w2(e){const t=e&&e.toString().match(/^\\s*function (\\w+)/);return t?t[1]:e===null?\"null\":\"\"}function C2(e,t){return w2(e)===w2(t)}function E2(e,t){return qe(t)?t.findIndex(n=>C2(n,e)):Ge(t)&&C2(t,e)?0:-1}const L1=e=>e[0]===\"_\"||e===\"$stable\",Yi=e=>qe(e)?e.map(lo):[lo(e)],L3=(e,t,n)=>{if(t._n)return t;const o=d((...l)=>Yi(t(...l)),n);return o._c=!1,o},T1=(e,t,n)=>{const o=e._ctx;for(const l in e){if(L1(l))continue;const u=e[l];if(Ge(u))t[l]=L3(l,u,o);else if(u!=null){const a=Yi(u);t[l]=()=>a}}},z1=(e,t)=>{const n=Yi(t);e.slots.default=()=>n},T3=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ct(t),fr(t,\"_\",n)):T1(t,e.slots={})}else e.slots={},t&&z1(e,t);fr(e.slots,Rr,1)},z3=(e,t,n)=>{const{vnode:o,slots:l}=e;let u=!0,a=wt;if(o.shapeFlag&32){const r=t._;r?n&&r===1?u=!1:(Ht(l,t),!n&&r===1&&delete l._):(u=!t.$stable,T1(t,l)),a=t}else t&&(z1(e,t),a={default:1});if(u)for(const r in l)!L1(r)&&!(r in a)&&delete l[r]};function M1(){return{app:null,config:{isNativeTag:pp,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let M3=0;function V3(e,t){return function(o,l=null){Ge(o)||(o=Object.assign({},o)),l!=null&&!dt(l)&&(l=null);const u=M1(),a=new Set;let r=!1;const s=u.app={_uid:M3++,_component:o,_props:l,_container:null,_context:u,_instance:null,version:l8,get config(){return u.config},set config(i){},use(i,...p){return a.has(i)||(i&&Ge(i.install)?(a.add(i),i.install(s,...p)):Ge(i)&&(a.add(i),i(s,...p))),s},mixin(i){return u.mixins.includes(i)||u.mixins.push(i),s},component(i,p){return p?(u.components[i]=p,s):u.components[i]},directive(i,p){return p?(u.directives[i]=p,s):u.directives[i]},mount(i,p,m){if(!r){const v=c(o,l);return v.appContext=u,p&&t?t(v,i):e(v,i,m),r=!0,s._container=i,i.__vue_app__=s,Nr(v.component)||v.component.proxy}},unmount(){r&&(e(null,s._container),delete s._container.__vue_app__)},provide(i,p){return u.provides[i]=p,s}};return s}}function Ws(e,t,n,o,l=!1){if(qe(e)){e.forEach((v,_)=>Ws(v,t&&(qe(t)?t[_]:t),n,o,l));return}if(Iu(o)&&!l)return;const u=o.shapeFlag&4?Nr(o.component)||o.component.proxy:o.el,a=l?null:u,{i:r,r:s}=e,i=t&&t.r,p=r.refs===wt?r.refs={}:r.refs,m=r.setupState;if(i!=null&&i!==s&&(tt(i)?(p[i]=null,st(m,i)&&(m[i]=null)):yt(i)&&(i.value=null)),Ge(s))Ao(s,r,12,[a,p]);else{const v=tt(s),_=yt(s);if(v||_){const g=()=>{if(e.f){const y=v?st(m,s)?m[s]:p[s]:s.value;l?qe(y)&&Si(y,u):qe(y)?y.includes(u)||y.push(u):v?(p[s]=[u],st(m,s)&&(m[s]=p[s])):(s.value=[u],e.k&&(p[e.k]=s.value))}else v?(p[s]=a,st(m,s)&&(m[s]=a)):_&&(s.value=a,e.k&&(p[e.k]=a))};a?(g.id=-1,un(g,n)):g()}}}const un=p3;function I3(e){return H3(e)}function H3(e,t){const n=gp();n.__VUE__=!0;const{insert:o,remove:l,patchProp:u,createElement:a,createText:r,createComment:s,setText:i,setElementText:p,parentNode:m,nextSibling:v,setScopeId:_=vt,insertStaticContent:g}=e,y=(z,q,R,I=null,Y=null,pe=null,Fe=!1,ce=null,Ae=!!q.dynamicChildren)=>{if(z===q)return;z&&!hl(z,q)&&(I=he(z),x(z,Y,pe,!0),z=null),q.patchFlag===-2&&(Ae=!1,q.dynamicChildren=null);const{type:ue,ref:me,shapeFlag:Ie}=q;switch(ue){case fa:w(z,q,R,I);break;case an:E(z,q,R,I);break;case Ya:z==null&&D(q,R,I,Fe);break;case Oe:W(z,q,R,I,Y,pe,Fe,ce,Ae);break;default:Ie&1?$(z,q,R,I,Y,pe,Fe,ce,Ae):Ie&6?N(z,q,R,I,Y,pe,Fe,ce,Ae):(Ie&64||Ie&128)&&ue.process(z,q,R,I,Y,pe,Fe,ce,Ae,je)}me!=null&&Y&&Ws(me,z&&z.ref,pe,q||z,!q)},w=(z,q,R,I)=>{if(z==null)o(q.el=r(q.children),R,I);else{const Y=q.el=z.el;q.children!==z.children&&i(Y,q.children)}},E=(z,q,R,I)=>{z==null?o(q.el=s(q.children||\"\"),R,I):q.el=z.el},D=(z,q,R,I)=>{[z.el,z.anchor]=g(z.children,q,R,I,z.el,z.anchor)},C=({el:z,anchor:q},R,I)=>{let Y;for(;z&&z!==q;)Y=v(z),o(z,R,I),z=Y;o(q,R,I)},B=({el:z,anchor:q})=>{let R;for(;z&&z!==q;)R=v(z),l(z),z=R;l(q)},$=(z,q,R,I,Y,pe,Fe,ce,Ae)=>{Fe=Fe||q.type===\"svg\",z==null?k(q,R,I,Y,pe,Fe,ce,Ae):H(z,q,Y,pe,Fe,ce,Ae)},k=(z,q,R,I,Y,pe,Fe,ce)=>{let Ae,ue;const{type:me,props:Ie,shapeFlag:ee,transition:Se,dirs:Ke}=z;if(Ae=z.el=a(z.type,pe,Ie&&Ie.is,Ie),ee&8?p(Ae,z.children):ee&16&&T(z.children,Ae,null,I,Y,pe&&me!==\"foreignObject\",Fe,ce),Ke&&sl(z,null,I,\"created\"),Ie){for(const we in Ie)we!==\"value\"&&!ja(we)&&u(Ae,we,null,Ie[we],pe,z.children,I,Y,Pe);\"value\"in Ie&&u(Ae,\"value\",null,Ie.value),(ue=Ie.onVnodeBeforeMount)&&oo(ue,I,z)}P(Ae,z,z.scopeId,Fe,I),Ke&&sl(z,null,I,\"beforeMount\");const nt=(!Y||Y&&!Y.pendingBranch)&&Se&&!Se.persisted;nt&&Se.beforeEnter(Ae),o(Ae,q,R),((ue=Ie&&Ie.onVnodeMounted)||nt||Ke)&&un(()=>{ue&&oo(ue,I,z),nt&&Se.enter(Ae),Ke&&sl(z,null,I,\"mounted\")},Y)},P=(z,q,R,I,Y)=>{if(R&&_(z,R),I)for(let pe=0;pe<I.length;pe++)_(z,I[pe]);if(Y){let pe=Y.subTree;if(q===pe){const Fe=Y.vnode;P(z,Fe,Fe.scopeId,Fe.slotScopeIds,Y.parent)}}},T=(z,q,R,I,Y,pe,Fe,ce,Ae=0)=>{for(let ue=Ae;ue<z.length;ue++){const me=z[ue]=ce?Ko(z[ue]):lo(z[ue]);y(null,me,q,R,I,Y,pe,Fe,ce)}},H=(z,q,R,I,Y,pe,Fe)=>{const ce=q.el=z.el;let{patchFlag:Ae,dynamicChildren:ue,dirs:me}=q;Ae|=z.patchFlag&16;const Ie=z.props||wt,ee=q.props||wt;let Se;R&&il(R,!1),(Se=ee.onVnodeBeforeUpdate)&&oo(Se,R,q,z),me&&sl(q,z,R,\"beforeUpdate\"),R&&il(R,!0);const Ke=Y&&q.type!==\"foreignObject\";if(ue?j(z.dynamicChildren,ue,ce,R,I,Ke,pe):Fe||te(z,q,ce,null,R,I,Ke,pe,!1),Ae>0){if(Ae&16)X(ce,q,Ie,ee,R,I,Y);else if(Ae&2&&Ie.class!==ee.class&&u(ce,\"class\",null,ee.class,Y),Ae&4&&u(ce,\"style\",Ie.style,ee.style,Y),Ae&8){const nt=q.dynamicProps;for(let we=0;we<nt.length;we++){const Le=nt[we],Qe=Ie[Le],Ze=ee[Le];(Ze!==Qe||Le===\"value\")&&u(ce,Le,Qe,Ze,Y,z.children,R,I,Pe)}}Ae&1&&z.children!==q.children&&p(ce,q.children)}else!Fe&&ue==null&&X(ce,q,Ie,ee,R,I,Y);((Se=ee.onVnodeUpdated)||me)&&un(()=>{Se&&oo(Se,R,q,z),me&&sl(q,z,R,\"updated\")},I)},j=(z,q,R,I,Y,pe,Fe)=>{for(let ce=0;ce<q.length;ce++){const Ae=z[ce],ue=q[ce],me=Ae.el&&(Ae.type===Oe||!hl(Ae,ue)||Ae.shapeFlag&70)?m(Ae.el):R;y(Ae,ue,me,null,I,Y,pe,Fe,!0)}},X=(z,q,R,I,Y,pe,Fe)=>{if(R!==I){if(R!==wt)for(const ce in R)!ja(ce)&&!(ce in I)&&u(z,ce,R[ce],null,Fe,q.children,Y,pe,Pe);for(const ce in I){if(ja(ce))continue;const Ae=I[ce],ue=R[ce];Ae!==ue&&ce!==\"value\"&&u(z,ce,ue,Ae,Fe,q.children,Y,pe,Pe)}\"value\"in I&&u(z,\"value\",R.value,I.value)}},W=(z,q,R,I,Y,pe,Fe,ce,Ae)=>{const ue=q.el=z?z.el:r(\"\"),me=q.anchor=z?z.anchor:r(\"\");let{patchFlag:Ie,dynamicChildren:ee,slotScopeIds:Se}=q;Se&&(ce=ce?ce.concat(Se):Se),z==null?(o(ue,R,I),o(me,R,I),T(q.children,R,me,Y,pe,Fe,ce,Ae)):Ie>0&&Ie&64&&ee&&z.dynamicChildren?(j(z.dynamicChildren,ee,R,Y,pe,Fe,ce),(q.key!=null||Y&&q===Y.subTree)&&Xi(z,q,!0)):te(z,q,R,me,Y,pe,Fe,ce,Ae)},N=(z,q,R,I,Y,pe,Fe,ce,Ae)=>{q.slotScopeIds=ce,z==null?q.shapeFlag&512?Y.ctx.activate(q,R,I,Fe,Ae):J(q,R,I,Y,pe,Fe,Ae):be(z,q,Ae)},J=(z,q,R,I,Y,pe,Fe)=>{const ce=z.component=X3(z,I,Y);if(Vr(z)&&(ce.ctx.renderer=je),J3(ce),ce.asyncDep){if(Y&&Y.registerDep(ce,ve),!z.el){const Ae=ce.subTree=c(an);E(null,Ae,q,R)}return}ve(ce,z,q,R,Y,pe,Fe)},be=(z,q,R)=>{const I=q.component=z.component;if(c3(z,q,R))if(I.asyncDep&&!I.asyncResolved){Ee(I,q,R);return}else I.next=q,l3(I.update),I.update();else q.el=z.el,I.vnode=q},ve=(z,q,R,I,Y,pe,Fe)=>{const ce=()=>{if(z.isMounted){let{next:me,bu:Ie,u:ee,parent:Se,vnode:Ke}=z,nt=me,we;il(z,!1),me?(me.el=Ke.el,Ee(z,me,Fe)):me=Ke,Ie&&Ga(Ie),(we=me.props&&me.props.onVnodeBeforeUpdate)&&oo(we,Se,me,Ke),il(z,!0);const Le=is(z),Qe=z.subTree;z.subTree=Le,y(Qe,Le,m(Qe.el),he(Qe),z,Y,pe),me.el=Le.el,nt===null&&d3(z,Le.el),ee&&un(ee,Y),(we=me.props&&me.props.onVnodeUpdated)&&un(()=>oo(we,Se,me,Ke),Y)}else{let me;const{el:Ie,props:ee}=q,{bm:Se,m:Ke,parent:nt}=z,we=Iu(q);if(il(z,!1),Se&&Ga(Se),!we&&(me=ee&&ee.onVnodeBeforeMount)&&oo(me,nt,q),il(z,!0),Ie&&se){const Le=()=>{z.subTree=is(z),se(Ie,z.subTree,z,Y,null)};we?q.type.__asyncLoader().then(()=>!z.isUnmounted&&Le()):Le()}else{const Le=z.subTree=is(z);y(null,Le,R,I,z,Y,pe),q.el=Le.el}if(Ke&&un(Ke,Y),!we&&(me=ee&&ee.onVnodeMounted)){const Le=q;un(()=>oo(me,nt,Le),Y)}(q.shapeFlag&256||nt&&Iu(nt.vnode)&&nt.vnode.shapeFlag&256)&&z.a&&un(z.a,Y),z.isMounted=!0,q=R=I=null}},Ae=z.effect=new Li(ce,()=>Oi(ue),z.scope),ue=z.update=()=>Ae.run();ue.id=z.uid,il(z,!0),ue()},Ee=(z,q,R)=>{q.component=z;const I=z.vnode.props;z.vnode=q,z.next=null,P3(z,q.props,I,R),z3(z,q.children,R),kl(),p2(),Pl()},te=(z,q,R,I,Y,pe,Fe,ce,Ae=!1)=>{const ue=z&&z.children,me=z?z.shapeFlag:0,Ie=q.children,{patchFlag:ee,shapeFlag:Se}=q;if(ee>0){if(ee&128){De(ue,Ie,R,I,Y,pe,Fe,ce,Ae);return}else if(ee&256){Z(ue,Ie,R,I,Y,pe,Fe,ce,Ae);return}}Se&8?(me&16&&Pe(ue,Y,pe),Ie!==ue&&p(R,Ie)):me&16?Se&16?De(ue,Ie,R,I,Y,pe,Fe,ce,Ae):Pe(ue,Y,pe,!0):(me&8&&p(R,\"\"),Se&16&&T(Ie,R,I,Y,pe,Fe,ce,Ae))},Z=(z,q,R,I,Y,pe,Fe,ce,Ae)=>{z=z||Kl,q=q||Kl;const ue=z.length,me=q.length,Ie=Math.min(ue,me);let ee;for(ee=0;ee<Ie;ee++){const Se=q[ee]=Ae?Ko(q[ee]):lo(q[ee]);y(z[ee],Se,R,null,Y,pe,Fe,ce,Ae)}ue>me?Pe(z,Y,pe,!0,!1,Ie):T(q,R,I,Y,pe,Fe,ce,Ae,Ie)},De=(z,q,R,I,Y,pe,Fe,ce,Ae)=>{let ue=0;const me=q.length;let Ie=z.length-1,ee=me-1;for(;ue<=Ie&&ue<=ee;){const Se=z[ue],Ke=q[ue]=Ae?Ko(q[ue]):lo(q[ue]);if(hl(Se,Ke))y(Se,Ke,R,null,Y,pe,Fe,ce,Ae);else break;ue++}for(;ue<=Ie&&ue<=ee;){const Se=z[Ie],Ke=q[ee]=Ae?Ko(q[ee]):lo(q[ee]);if(hl(Se,Ke))y(Se,Ke,R,null,Y,pe,Fe,ce,Ae);else break;Ie--,ee--}if(ue>Ie){if(ue<=ee){const Se=ee+1,Ke=Se<me?q[Se].el:I;for(;ue<=ee;)y(null,q[ue]=Ae?Ko(q[ue]):lo(q[ue]),R,Ke,Y,pe,Fe,ce,Ae),ue++}}else if(ue>ee)for(;ue<=Ie;)x(z[ue],Y,pe,!0),ue++;else{const Se=ue,Ke=ue,nt=new Map;for(ue=Ke;ue<=ee;ue++){const G=q[ue]=Ae?Ko(q[ue]):lo(q[ue]);G.key!=null&&nt.set(G.key,ue)}let we,Le=0;const Qe=ee-Ke+1;let Ze=!1,M=0;const S=new Array(Qe);for(ue=0;ue<Qe;ue++)S[ue]=0;for(ue=Se;ue<=Ie;ue++){const G=z[ue];if(Le>=Qe){x(G,Y,pe,!0);continue}let ie;if(G.key!=null)ie=nt.get(G.key);else for(we=Ke;we<=ee;we++)if(S[we-Ke]===0&&hl(G,q[we])){ie=we;break}ie===void 0?x(G,Y,pe,!0):(S[ie-Ke]=ue+1,ie>=M?M=ie:Ze=!0,y(G,q[ie],R,null,Y,pe,Fe,ce,Ae),Le++)}const _e=Ze?R3(S):Kl;for(we=_e.length-1,ue=Qe-1;ue>=0;ue--){const G=Ke+ue,ie=q[G],$e=G+1<me?q[G+1].el:I;S[ue]===0?y(null,ie,R,$e,Y,pe,Fe,ce,Ae):Ze&&(we<0||ue!==_e[we]?Be(ie,R,$e,2):we--)}}},Be=(z,q,R,I,Y=null)=>{const{el:pe,type:Fe,transition:ce,children:Ae,shapeFlag:ue}=z;if(ue&6){Be(z.component.subTree,q,R,I);return}if(ue&128){z.suspense.move(q,R,I);return}if(ue&64){Fe.move(z,q,R,je);return}if(Fe===Oe){o(pe,q,R);for(let Ie=0;Ie<Ae.length;Ie++)Be(Ae[Ie],q,R,I);o(z.anchor,q,R);return}if(Fe===Ya){C(z,q,R);return}if(I!==2&&ue&1&&ce)if(I===0)ce.beforeEnter(pe),o(pe,q,R),un(()=>ce.enter(pe),Y);else{const{leave:Ie,delayLeave:ee,afterLeave:Se}=ce,Ke=()=>o(pe,q,R),nt=()=>{Ie(pe,()=>{Ke(),Se&&Se()})};ee?ee(pe,Ke,nt):nt()}else o(pe,q,R)},x=(z,q,R,I=!1,Y=!1)=>{const{type:pe,props:Fe,ref:ce,children:Ae,dynamicChildren:ue,shapeFlag:me,patchFlag:Ie,dirs:ee}=z;if(ce!=null&&Ws(ce,null,R,z,!0),me&256){q.ctx.deactivate(z);return}const Se=me&1&&ee,Ke=!Iu(z);let nt;if(Ke&&(nt=Fe&&Fe.onVnodeBeforeUnmount)&&oo(nt,q,z),me&6)xe(z.component,R,I);else{if(me&128){z.suspense.unmount(R,I);return}Se&&sl(z,null,q,\"beforeUnmount\"),me&64?z.type.remove(z,q,R,Y,je,I):ue&&(pe!==Oe||Ie>0&&Ie&64)?Pe(ue,q,R,!1,!0):(pe===Oe&&Ie&384||!Y&&me&16)&&Pe(Ae,q,R),I&&O(z)}(Ke&&(nt=Fe&&Fe.onVnodeUnmounted)||Se)&&un(()=>{nt&&oo(nt,q,z),Se&&sl(z,null,q,\"unmounted\")},R)},O=z=>{const{type:q,el:R,anchor:I,transition:Y}=z;if(q===Oe){ye(R,I);return}if(q===Ya){B(z);return}const pe=()=>{l(R),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if(z.shapeFlag&1&&Y&&!Y.persisted){const{leave:Fe,delayLeave:ce}=Y,Ae=()=>Fe(R,pe);ce?ce(z.el,pe,Ae):Ae()}else pe()},ye=(z,q)=>{let R;for(;z!==q;)R=v(z),l(z),z=R;l(q)},xe=(z,q,R)=>{const{bum:I,scope:Y,update:pe,subTree:Fe,um:ce}=z;I&&Ga(I),Y.stop(),pe&&(pe.active=!1,x(Fe,z,q,R)),ce&&un(ce,q),un(()=>{z.isUnmounted=!0},q),q&&q.pendingBranch&&!q.isUnmounted&&z.asyncDep&&!z.asyncResolved&&z.suspenseId===q.pendingId&&(q.deps--,q.deps===0&&q.resolve())},Pe=(z,q,R,I=!1,Y=!1,pe=0)=>{for(let Fe=pe;Fe<z.length;Fe++)x(z[Fe],q,R,I,Y)},he=z=>z.shapeFlag&6?he(z.component.subTree):z.shapeFlag&128?z.suspense.next():v(z.anchor||z.el),Te=(z,q,R)=>{z==null?q._vnode&&x(q._vnode,null,null,!0):y(q._vnode||null,z,q,null,null,null,R),p2(),b1(),q._vnode=z},je={p:y,um:x,m:Be,r:O,mt:J,mc:T,pc:te,pbc:j,n:he,o:e};let de,se;return t&&([de,se]=t(je)),{render:Te,hydrate:de,createApp:V3(Te,de)}}function il({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Xi(e,t,n=!1){const o=e.children,l=t.children;if(qe(o)&&qe(l))for(let u=0;u<o.length;u++){const a=o[u];let r=l[u];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=l[u]=Ko(l[u]),r.el=a.el),n||Xi(a,r))}}function R3(e){const t=e.slice(),n=[0];let o,l,u,a,r;const s=e.length;for(o=0;o<s;o++){const i=e[o];if(i!==0){if(l=n[n.length-1],e[l]<i){t[o]=l,n.push(o);continue}for(u=0,a=n.length-1;u<a;)r=u+a>>1,e[n[r]]<i?u=r+1:a=r;i<e[n[u]]&&(u>0&&(t[o]=n[u-1]),n[u]=o)}}for(u=n.length,a=n[u-1];u-- >0;)n[u]=a,a=t[a];return n}const N3=e=>e.__isTeleport,Hu=e=>e&&(e.disabled||e.disabled===\"\"),F2=e=>typeof SVGElement!=\"undefined\"&&e instanceof SVGElement,qs=(e,t)=>{const n=e&&e.to;return tt(n)?t?t(n):null:n},O3={__isTeleport:!0,process(e,t,n,o,l,u,a,r,s,i){const{mc:p,pc:m,pbc:v,o:{insert:_,querySelector:g,createText:y,createComment:w}}=i,E=Hu(t.props);let{shapeFlag:D,children:C,dynamicChildren:B}=t;if(e==null){const $=t.el=y(\"\"),k=t.anchor=y(\"\");_($,n,o),_(k,n,o);const P=t.target=qs(t.props,g),T=t.targetAnchor=y(\"\");P&&(_(T,P),a=a||F2(P));const H=(j,X)=>{D&16&&p(C,j,X,l,u,a,r,s)};E?H(n,k):P&&H(P,T)}else{t.el=e.el;const $=t.anchor=e.anchor,k=t.target=e.target,P=t.targetAnchor=e.targetAnchor,T=Hu(e.props),H=T?n:k,j=T?$:P;if(a=a||F2(k),B?(v(e.dynamicChildren,B,H,l,u,a,r),Xi(e,t,!0)):s||m(e,t,H,j,l,u,a,r,!1),E)T||ka(t,n,$,i,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const X=t.target=qs(t.props,g);X&&ka(t,X,null,i,0)}else T&&ka(t,k,P,i,1)}},remove(e,t,n,o,{um:l,o:{remove:u}},a){const{shapeFlag:r,children:s,anchor:i,targetAnchor:p,target:m,props:v}=e;if(m&&u(p),(a||!Hu(v))&&(u(i),r&16))for(let _=0;_<s.length;_++){const g=s[_];l(g,t,n,!0,!!g.dynamicChildren)}},move:ka,hydrate:U3};function ka(e,t,n,{o:{insert:o},m:l},u=2){u===0&&o(e.targetAnchor,t,n);const{el:a,anchor:r,shapeFlag:s,children:i,props:p}=e,m=u===2;if(m&&o(a,t,n),(!m||Hu(p))&&s&16)for(let v=0;v<i.length;v++)l(i[v],t,n,2);m&&o(r,t,n)}function U3(e,t,n,o,l,u,{o:{nextSibling:a,parentNode:r,querySelector:s}},i){const p=t.target=qs(t.props,s);if(p){const m=p._lpa||p.firstChild;if(t.shapeFlag&16)if(Hu(t.props))t.anchor=i(a(e),t,r(e),n,o,l,u),t.targetAnchor=m;else{t.anchor=a(e);let v=m;for(;v;)if(v=a(v),v&&v.nodeType===8&&v.data===\"teleport anchor\"){t.targetAnchor=v,p._lpa=t.targetAnchor&&a(t.targetAnchor);break}i(m,t,p,n,o,l,u)}}return t.anchor&&a(t.anchor)}const V1=O3,Oe=Symbol(void 0),fa=Symbol(void 0),an=Symbol(void 0),Ya=Symbol(void 0),Ru=[];let qn=null;function b(e=!1){Ru.push(qn=e?null:[])}function W3(){Ru.pop(),qn=Ru[Ru.length-1]||null}let Zu=1;function A2(e){Zu+=e}function I1(e){return e.dynamicChildren=Zu>0?qn||Kl:null,W3(),Zu>0&&qn&&qn.push(e),e}function F(e,t,n,o,l,u){return I1(f(e,t,n,o,l,u,!0))}function ae(e,t,n,o,l){return I1(c(e,t,n,o,l,!0))}function cn(e){return e?e.__v_isVNode===!0:!1}function hl(e,t){return e.type===t.type&&e.key===t.key}const Rr=\"__vInternal\",H1=({key:e})=>e!=null?e:null,Xa=({ref:e,ref_key:t,ref_for:n})=>e!=null?tt(e)||yt(e)||Ge(e)?{i:Kt,r:e,k:t,f:!!n}:e:null;function f(e,t=null,n=null,o=0,l=null,u=e===Oe?0:1,a=!1,r=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&H1(t),ref:t&&Xa(t),scopeId:Mr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:u,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null};return r?(Ji(s,n),u&128&&e.normalize(s)):n&&(s.shapeFlag|=tt(n)?8:16),Zu>0&&!a&&qn&&(s.patchFlag>0||u&6)&&s.patchFlag!==32&&qn.push(s),s}const c=q3;function q3(e,t=null,n=null,o=0,l=null,u=!1){if((!e||e===x1)&&(e=an),cn(e)){const r=$o(e,t,!0);return n&&Ji(r,n),Zu>0&&!u&&qn&&(r.shapeFlag&6?qn[qn.indexOf(e)]=r:qn.push(r)),r.patchFlag|=-2,r}if(n8(e)&&(e=e.__vccOpts),t){t=j3(t);let{class:r,style:s}=t;r&&!tt(r)&&(t.class=K(r)),dt(s)&&(i1(s)&&!qe(s)&&(s=Ht({},s)),t.style=ut(s))}const a=tt(e)?1:f3(e)?128:N3(e)?64:dt(e)?4:Ge(e)?2:0;return f(e,t,n,o,l,a,u,!0)}function j3(e){return e?i1(e)||Rr in e?Ht({},e):e:null}function $o(e,t,n=!1){const{props:o,ref:l,patchFlag:u,children:a}=e,r=t?kn(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:r,key:r&&H1(r),ref:t&&t.ref?n&&l?qe(l)?l.concat(Xa(t)):[l,Xa(t)]:Xa(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Oe?u===-1?16:u|16:u,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$o(e.ssContent),ssFallback:e.ssFallback&&$o(e.ssFallback),el:e.el,anchor:e.anchor}}function A(e=\" \",t=0){return c(fa,null,e,t)}function K3(e,t){const n=c(Ya,null,e);return n.staticCount=t,n}function oe(e=\"\",t=!1){return t?(b(),ae(an,null,e)):c(an,null,e)}function lo(e){return e==null||typeof e==\"boolean\"?c(an):qe(e)?c(Oe,null,e.slice()):typeof e==\"object\"?Ko(e):c(fa,null,String(e))}function Ko(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$o(e)}function Ji(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(qe(t))n=16;else if(typeof t==\"object\")if(o&65){const l=t.default;l&&(l._c&&(l._d=!1),Ji(e,l()),l._c&&(l._d=!0));return}else{n=32;const l=t._;!l&&!(Rr in t)?t._ctx=Kt:l===3&&Kt&&(Kt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ge(t)?(t={default:t,_ctx:Kt},n=32):(t=String(t),o&64?(n=16,t=[A(t)]):n=8);e.children=t,e.shapeFlag|=n}function kn(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const l in o)if(l===\"class\")t.class!==o.class&&(t.class=K([t.class,o.class]));else if(l===\"style\")t.style=ut([t.style,o.style]);else if($r(l)){const u=t[l],a=o[l];a&&u!==a&&!(qe(u)&&u.includes(a))&&(t[l]=u?[].concat(u,a):a)}else l!==\"\"&&(t[l]=o[l])}return t}function oo(e,t,n,o=null){Sn(e,t,7,[n,o])}const G3=M1();let Y3=0;function X3(e,t,n){const o=e.type,l=(t?t.appContext:e.appContext)||G3,u={uid:Y3++,vnode:e,type:o,parent:t,appContext:l,root:null,next:null,subTree:null,effect:null,update:null,scope:new bp(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(l.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:P1(o,l),emitsOptions:w1(o,l),emit:null,emitted:null,propsDefaults:wt,inheritAttrs:o.inheritAttrs,ctx:wt,data:wt,props:wt,attrs:wt,slots:wt,refs:wt,setupState:wt,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return u.ctx={_:u},u.root=t?t.root:u,u.emit=r3.bind(null,u),e.ce&&e.ce(u),u}let It=null;const pt=()=>It||Kt,eu=e=>{It=e,e.scope.on()},Fl=()=>{It&&It.scope.off(),It=null};function R1(e){return e.vnode.shapeFlag&4}let ea=!1;function J3(e,t=!1){ea=t;const{props:n,children:o}=e.vnode,l=R1(e);k3(e,n,l,t),T3(e,o);const u=l?Q3(e,t):void 0;return ea=!1,u}function Q3(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=c1(new Proxy(e.ctx,A3));const{setup:o}=n;if(o){const l=e.setupContext=o.length>1?O1(e):null;eu(e),kl();const u=Ao(o,e,0,[e.props,l]);if(Pl(),Fl(),dr(u)){if(u.then(Fl,Fl),t)return u.then(a=>{D2(e,a,t)}).catch(a=>{Tr(a,e,0)});e.asyncDep=u}else D2(e,u,t)}else N1(e,t)}function D2(e,t,n){Ge(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:dt(t)&&(e.setupState=p1(t)),N1(e,n)}let B2;function N1(e,t,n){const o=e.type;if(!e.render){if(!t&&B2&&!o.render){const l=o.template||Gi(e).template;if(l){const{isCustomElement:u,compilerOptions:a}=e.appContext.config,{delimiters:r,compilerOptions:s}=o,i=Ht(Ht({isCustomElement:u,delimiters:r},a),s);o.render=B2(l,i)}}e.render=o.render||vt}eu(e),kl(),D3(e),Pl(),Fl()}function Z3(e){return new Proxy(e.attrs,{get(t,n){return Fn(e,\"get\",\"$attrs\"),t[n]}})}function O1(e){const t=o=>{e.exposed=o||{}};let n;return{get attrs(){return n||(n=Z3(e))},slots:e.slots,emit:e.emit,expose:t}}function Nr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(p1(c1(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in _r)return _r[n](e)}}))}const e8=/(?:^|[-_])(\\w)/g,t8=e=>e.replace(e8,t=>t.toUpperCase()).replace(/[-_]/g,\"\");function U1(e,t=!0){return Ge(e)?e.displayName||e.name:e.name||t&&e.__name}function W1(e,t,n=!1){let o=U1(t);if(!o&&t.__file){const l=t.__file.match(/([^/\\\\]+)\\.\\w+$/);l&&(o=l[1])}if(!o&&e&&e.parent){const l=u=>{for(const a in u)if(u[a]===t)return a};o=l(e.components||e.parent.type.components)||l(e.appContext.components)}return o?t8(o):n?\"App\":\"Anonymous\"}function n8(e){return Ge(e)&&\"__vccOpts\"in e}const U=(e,t)=>h1(e,t,ea);function To(){return q1().slots}function o8(){return q1().attrs}function q1(){const e=pt();return e.setupContext||(e.setupContext=O1(e))}function Re(e,t,n){const o=arguments.length;return o===2?dt(t)&&!qe(t)?cn(t)?c(e,null,[t]):c(e,t):c(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&cn(n)&&(n=[n]),c(e,t,n))}const l8=\"3.2.41\",u8=\"http://www.w3.org/2000/svg\",_l=typeof document!=\"undefined\"?document:null,x2=_l&&_l.createElement(\"template\"),a8={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l=t?_l.createElementNS(u8,e):_l.createElement(e,n?{is:n}:void 0);return e===\"select\"&&o&&o.multiple!=null&&l.setAttribute(\"multiple\",o.multiple),l},createText:e=>_l.createTextNode(e),createComment:e=>_l.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>_l.querySelector(e),setScopeId(e,t){e.setAttribute(t,\"\")},insertStaticContent(e,t,n,o,l,u){const a=n?n.previousSibling:t.lastChild;if(l&&(l===u||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),!(l===u||!(l=l.nextSibling)););else{x2.innerHTML=o?`<svg>${e}</svg>`:e;const r=x2.content;if(o){const s=r.firstChild;for(;s.firstChild;)r.appendChild(s.firstChild);r.removeChild(s)}t.insertBefore(r,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function r8(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(\" \")),t==null?e.removeAttribute(\"class\"):n?e.setAttribute(\"class\",t):e.className=t}function s8(e,t,n){const o=e.style,l=tt(n);if(n&&!l){for(const u in n)js(o,u,n[u]);if(t&&!tt(t))for(const u in t)n[u]==null&&js(o,u,\"\")}else{const u=o.display;l?t!==n&&(o.cssText=n):t&&e.removeAttribute(\"style\"),\"_vod\"in e&&(o.display=u)}}const $2=/\\s*!important$/;function js(e,t,n){if(qe(n))n.forEach(o=>js(e,t,o));else if(n==null&&(n=\"\"),t.startsWith(\"--\"))e.setProperty(t,n);else{const o=i8(e,t);$2.test(n)?e.setProperty(ll(o),n.replace($2,\"\"),\"important\"):e[o]=n}}const S2=[\"Webkit\",\"Moz\",\"ms\"],ds={};function i8(e,t){const n=ds[t];if(n)return n;let o=Ln(t);if(o!==\"filter\"&&o in e)return ds[t]=o;o=Pr(o);for(let l=0;l<S2.length;l++){const u=S2[l]+o;if(u in e)return ds[t]=u}return t}const k2=\"http://www.w3.org/1999/xlink\";function c8(e,t,n,o,l){if(o&&t.startsWith(\"xlink:\"))n==null?e.removeAttributeNS(k2,t.slice(6,t.length)):e.setAttributeNS(k2,t,n);else{const u=sp(t);n==null||u&&!jd(n)?e.removeAttribute(t):e.setAttribute(t,u?\"\":n)}}function d8(e,t,n,o,l,u,a){if(t===\"innerHTML\"||t===\"textContent\"){o&&a(o,l,u),e[t]=n==null?\"\":n;return}if(t===\"value\"&&e.tagName!==\"PROGRESS\"&&!e.tagName.includes(\"-\")){e._value=n;const s=n==null?\"\":n;(e.value!==s||e.tagName===\"OPTION\")&&(e.value=s),n==null&&e.removeAttribute(t);return}let r=!1;if(n===\"\"||n==null){const s=typeof e[t];s===\"boolean\"?n=jd(n):n==null&&s===\"string\"?(n=\"\",r=!0):s===\"number\"&&(n=0,r=!0)}try{e[t]=n}catch{}r&&e.removeAttribute(t)}function Xo(e,t,n,o){e.addEventListener(t,n,o)}function f8(e,t,n,o){e.removeEventListener(t,n,o)}function p8(e,t,n,o,l=null){const u=e._vei||(e._vei={}),a=u[t];if(o&&a)a.value=o;else{const[r,s]=v8(t);if(o){const i=u[t]=m8(o,l);Xo(e,r,i,s)}else a&&(f8(e,r,a,s),u[t]=void 0)}}const P2=/(?:Once|Passive|Capture)$/;function v8(e){let t;if(P2.test(e)){t={};let o;for(;o=e.match(P2);)e=e.slice(0,e.length-o[0].length),t[o[0].toLowerCase()]=!0}return[e[2]===\":\"?e.slice(3):ll(e.slice(2)),t]}let fs=0;const h8=Promise.resolve(),_8=()=>fs||(h8.then(()=>fs=0),fs=Date.now());function m8(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Sn(g8(o,n.value),t,5,[o])};return n.value=e,n.attached=_8(),n}function g8(e,t){if(qe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>l=>!l._stopped&&o&&o(l))}else return t}const L2=/^on[a-z]/,b8=(e,t,n,o,l=!1,u,a,r,s)=>{t===\"class\"?r8(e,o,l):t===\"style\"?s8(e,n,o):$r(t)?$i(t)||p8(e,t,n,o,a):(t[0]===\".\"?(t=t.slice(1),!0):t[0]===\"^\"?(t=t.slice(1),!1):y8(e,t,o,l))?d8(e,t,o,u,a,r,s):(t===\"true-value\"?e._trueValue=o:t===\"false-value\"&&(e._falseValue=o),c8(e,t,o,l))};function y8(e,t,n,o){return o?!!(t===\"innerHTML\"||t===\"textContent\"||t in e&&L2.test(t)&&Ge(n)):t===\"spellcheck\"||t===\"draggable\"||t===\"translate\"||t===\"form\"||t===\"list\"&&e.tagName===\"INPUT\"||t===\"type\"&&e.tagName===\"TEXTAREA\"||L2.test(t)&&tt(n)?!1:t in e}const No=\"transition\",$u=\"animation\",tn=(e,{slots:t})=>Re(F1,K1(e),t);tn.displayName=\"Transition\";const j1={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},w8=tn.props=Ht({},F1.props,j1),cl=(e,t=[])=>{qe(e)?e.forEach(n=>n(...t)):e&&e(...t)},T2=e=>e?qe(e)?e.some(t=>t.length>1):e.length>1:!1;function K1(e){const t={};for(const W in e)W in j1||(t[W]=e[W]);if(e.css===!1)return t;const{name:n=\"v\",type:o,duration:l,enterFromClass:u=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:r=`${n}-enter-to`,appearFromClass:s=u,appearActiveClass:i=a,appearToClass:p=r,leaveFromClass:m=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,g=C8(l),y=g&&g[0],w=g&&g[1],{onBeforeEnter:E,onEnter:D,onEnterCancelled:C,onLeave:B,onLeaveCancelled:$,onBeforeAppear:k=E,onAppear:P=D,onAppearCancelled:T=C}=t,H=(W,N,J)=>{Uo(W,N?p:r),Uo(W,N?i:a),J&&J()},j=(W,N)=>{W._isLeaving=!1,Uo(W,m),Uo(W,_),Uo(W,v),N&&N()},X=W=>(N,J)=>{const be=W?P:D,ve=()=>H(N,W,J);cl(be,[N,ve]),z2(()=>{Uo(N,W?s:u),bo(N,W?p:r),T2(be)||M2(N,o,y,ve)})};return Ht(t,{onBeforeEnter(W){cl(E,[W]),bo(W,u),bo(W,a)},onBeforeAppear(W){cl(k,[W]),bo(W,s),bo(W,i)},onEnter:X(!1),onAppear:X(!0),onLeave(W,N){W._isLeaving=!0;const J=()=>j(W,N);bo(W,m),Y1(),bo(W,v),z2(()=>{!W._isLeaving||(Uo(W,m),bo(W,_),T2(B)||M2(W,o,w,J))}),cl(B,[W,J])},onEnterCancelled(W){H(W,!1),cl(C,[W])},onAppearCancelled(W){H(W,!0),cl(T,[W])},onLeaveCancelled(W){j(W),cl($,[W])}})}function C8(e){if(e==null)return null;if(dt(e))return[ps(e.enter),ps(e.leave)];{const t=ps(e);return[t,t]}}function ps(e){return pr(e)}function bo(e,t){t.split(/\\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Uo(e,t){t.split(/\\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function z2(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let E8=0;function M2(e,t,n,o){const l=e._endId=++E8,u=()=>{l===e._endId&&o()};if(n)return setTimeout(u,n);const{type:a,timeout:r,propCount:s}=G1(e,t);if(!a)return o();const i=a+\"end\";let p=0;const m=()=>{e.removeEventListener(i,v),u()},v=_=>{_.target===e&&++p>=s&&m()};setTimeout(()=>{p<s&&m()},r+1),e.addEventListener(i,v)}function G1(e,t){const n=window.getComputedStyle(e),o=g=>(n[g]||\"\").split(\", \"),l=o(No+\"Delay\"),u=o(No+\"Duration\"),a=V2(l,u),r=o($u+\"Delay\"),s=o($u+\"Duration\"),i=V2(r,s);let p=null,m=0,v=0;t===No?a>0&&(p=No,m=a,v=u.length):t===$u?i>0&&(p=$u,m=i,v=s.length):(m=Math.max(a,i),p=m>0?a>i?No:$u:null,v=p?p===No?u.length:s.length:0);const _=p===No&&/\\b(transform|all)(,|$)/.test(n[No+\"Property\"]);return{type:p,timeout:m,propCount:v,hasTransform:_}}function V2(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,o)=>I2(n)+I2(e[o])))}function I2(e){return Number(e.slice(0,-1).replace(\",\",\".\"))*1e3}function Y1(){return document.body.offsetHeight}const X1=new WeakMap,J1=new WeakMap,F8={name:\"TransitionGroup\",props:Ht({},w8,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=pt(),o=E1();let l,u;return Ll(()=>{if(!l.length)return;const a=e.moveClass||`${e.name||\"v\"}-move`;if(!$8(l[0].el,n.vnode.el,a))return;l.forEach(D8),l.forEach(B8);const r=l.filter(x8);Y1(),r.forEach(s=>{const i=s.el,p=i.style;bo(i,a),p.transform=p.webkitTransform=p.transitionDuration=\"\";const m=i._moveCb=v=>{v&&v.target!==i||(!v||/transform$/.test(v.propertyName))&&(i.removeEventListener(\"transitionend\",m),i._moveCb=null,Uo(i,a))};i.addEventListener(\"transitionend\",m)})}),()=>{const a=ct(e),r=K1(a);let s=a.tag||Oe;l=u,u=t.default?Wi(t.default()):[];for(let i=0;i<u.length;i++){const p=u[i];p.key!=null&&Qu(p,Ju(p,r,o,n))}if(l)for(let i=0;i<l.length;i++){const p=l[i];Qu(p,Ju(p,r,o,n)),X1.set(p,p.el.getBoundingClientRect())}return c(s,null,u)}}},A8=F8;function D8(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function B8(e){J1.set(e,e.el.getBoundingClientRect())}function x8(e){const t=X1.get(e),n=J1.get(e),o=t.left-n.left,l=t.top-n.top;if(o||l){const u=e.el.style;return u.transform=u.webkitTransform=`translate(${o}px,${l}px)`,u.transitionDuration=\"0s\",e}}function $8(e,t,n){const o=e.cloneNode();e._vtc&&e._vtc.forEach(a=>{a.split(/\\s+/).forEach(r=>r&&o.classList.remove(r))}),n.split(/\\s+/).forEach(a=>a&&o.classList.add(a)),o.style.display=\"none\";const l=t.nodeType===1?t:t.parentNode;l.appendChild(o);const{hasTransform:u}=G1(o);return l.removeChild(o),u}const tu=e=>{const t=e.props[\"onUpdate:modelValue\"]||!1;return qe(t)?n=>Ga(t,n):t};function S8(e){e.target.composing=!0}function H2(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(\"input\")))}const k8={created(e,{modifiers:{lazy:t,trim:n,number:o}},l){e._assign=tu(l);const u=o||l.props&&l.props.type===\"number\";Xo(e,t?\"change\":\"input\",a=>{if(a.target.composing)return;let r=e.value;n&&(r=r.trim()),u&&(r=pr(r)),e._assign(r)}),n&&Xo(e,\"change\",()=>{e.value=e.value.trim()}),t||(Xo(e,\"compositionstart\",S8),Xo(e,\"compositionend\",H2),Xo(e,\"change\",H2))},mounted(e,{value:t}){e.value=t==null?\"\":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:l}},u){if(e._assign=tu(u),e.composing||document.activeElement===e&&e.type!==\"range\"&&(n||o&&e.value.trim()===t||(l||e.type===\"number\")&&pr(e.value)===t))return;const a=t==null?\"\":t;e.value!==a&&(e.value=a)}},gr={deep:!0,created(e,t,n){e._assign=tu(n),Xo(e,\"change\",()=>{const o=e._modelValue,l=Z1(e),u=e.checked,a=e._assign;if(qe(o)){const r=Kd(o,l),s=r!==-1;if(u&&!s)a(o.concat(l));else if(!u&&s){const i=[...o];i.splice(r,1),a(i)}}else if(Sr(o)){const r=new Set(o);u?r.add(l):r.delete(l),a(r)}else a(ef(e,u))})},mounted:R2,beforeUpdate(e,t,n){e._assign=tu(n),R2(e,t,n)}};function R2(e,{value:t,oldValue:n},o){e._modelValue=t,qe(t)?e.checked=Kd(t,o.props.value)>-1:Sr(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=Jl(t,ef(e,!0)))}const Q1={created(e,{value:t},n){e.checked=Jl(t,n.props.value),e._assign=tu(n),Xo(e,\"change\",()=>{e._assign(Z1(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e._assign=tu(o),t!==n&&(e.checked=Jl(t,o.props.value))}};function Z1(e){return\"_value\"in e?e._value:e.value}function ef(e,t){const n=t?\"_trueValue\":\"_falseValue\";return n in e?e[n]:t}const P8=[\"ctrl\",\"shift\",\"alt\",\"meta\"],L8={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>\"button\"in e&&e.button!==0,middle:e=>\"button\"in e&&e.button!==1,right:e=>\"button\"in e&&e.button!==2,exact:(e,t)=>P8.some(n=>e[`${n}Key`]&&!t.includes(n))},mt=(e,t)=>(n,...o)=>{for(let l=0;l<t.length;l++){const u=L8[t[l]];if(u&&u(n,t))return}return e(n,...o)},T8={esc:\"escape\",space:\" \",up:\"arrow-up\",left:\"arrow-left\",right:\"arrow-right\",down:\"arrow-down\",delete:\"backspace\"},Bt=(e,t)=>n=>{if(!(\"key\"in n))return;const o=ll(n.key);if(t.some(l=>l===o||T8[l]===o))return e(n)},ge={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display===\"none\"?\"\":e.style.display,n&&t?n.beforeEnter(e):Su(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Su(e,!0),o.enter(e)):o.leave(e,()=>{Su(e,!1)}):Su(e,t))},beforeUnmount(e,{value:t}){Su(e,t)}};function Su(e,t){e.style.display=t?e._vod:\"none\"}const z8=Ht({patchProp:b8},a8);let N2;function tf(){return N2||(N2=I3(z8))}const nu=(...e)=>{tf().render(...e)},nf=(...e)=>{const t=tf().createApp(...e),{mount:n}=t;return t.mount=o=>{const l=M8(o);if(!l)return;const u=t._component;!Ge(u)&&!u.render&&!u.template&&(u.template=l.innerHTML),l.innerHTML=\"\";const a=n(l,!1,l instanceof SVGElement);return l instanceof Element&&(l.removeAttribute(\"v-cloak\"),l.setAttribute(\"data-v-app\",\"\")),a},t};function M8(e){return tt(e)?document.querySelector(e):e}var V8=typeof global==\"object\"&&global&&global.Object===Object&&global,of=V8,I8=typeof self==\"object\"&&self&&self.Object===Object&&self,H8=of||I8||Function(\"return this\")(),Qn=H8,R8=Qn.Symbol,zn=R8,lf=Object.prototype,N8=lf.hasOwnProperty,O8=lf.toString,ku=zn?zn.toStringTag:void 0;function U8(e){var t=N8.call(e,ku),n=e[ku];try{e[ku]=void 0;var o=!0}catch{}var l=O8.call(e);return o&&(t?e[ku]=n:delete e[ku]),l}var W8=Object.prototype,q8=W8.toString;function j8(e){return q8.call(e)}var K8=\"[object Null]\",G8=\"[object Undefined]\",O2=zn?zn.toStringTag:void 0;function yu(e){return e==null?e===void 0?G8:K8:O2&&O2 in Object(e)?U8(e):j8(e)}function tl(e){return e!=null&&typeof e==\"object\"}var Y8=\"[object Symbol]\";function Or(e){return typeof e==\"symbol\"||tl(e)&&yu(e)==Y8}function X8(e,t){for(var n=-1,o=e==null?0:e.length,l=Array(o);++n<o;)l[n]=t(e[n],n,e);return l}var J8=Array.isArray,Yn=J8,Q8=1/0,U2=zn?zn.prototype:void 0,W2=U2?U2.toString:void 0;function uf(e){if(typeof e==\"string\")return e;if(Yn(e))return X8(e,uf)+\"\";if(Or(e))return W2?W2.call(e):\"\";var t=e+\"\";return t==\"0\"&&1/e==-Q8?\"-0\":t}var Z8=/\\s/;function e5(e){for(var t=e.length;t--&&Z8.test(e.charAt(t)););return t}var t5=/^\\s+/;function n5(e){return e&&e.slice(0,e5(e)+1).replace(t5,\"\")}function fo(e){var t=typeof e;return e!=null&&(t==\"object\"||t==\"function\")}var q2=0/0,o5=/^[-+]0x[0-9a-f]+$/i,l5=/^0b[01]+$/i,u5=/^0o[0-7]+$/i,a5=parseInt;function j2(e){if(typeof e==\"number\")return e;if(Or(e))return q2;if(fo(e)){var t=typeof e.valueOf==\"function\"?e.valueOf():e;e=fo(t)?t+\"\":t}if(typeof e!=\"string\")return e===0?e:+e;e=n5(e);var n=l5.test(e);return n||u5.test(e)?a5(e.slice(2),n?2:8):o5.test(e)?q2:+e}function r5(e){return e}var s5=\"[object AsyncFunction]\",i5=\"[object Function]\",c5=\"[object GeneratorFunction]\",d5=\"[object Proxy]\";function af(e){if(!fo(e))return!1;var t=yu(e);return t==i5||t==c5||t==s5||t==d5}var f5=Qn[\"__core-js_shared__\"],vs=f5,K2=function(){var e=/[^.]+$/.exec(vs&&vs.keys&&vs.keys.IE_PROTO||\"\");return e?\"Symbol(src)_1.\"+e:\"\"}();function p5(e){return!!K2&&K2 in e}var v5=Function.prototype,h5=v5.toString;function Tl(e){if(e!=null){try{return h5.call(e)}catch{}try{return e+\"\"}catch{}}return\"\"}var _5=/[\\\\^$.*+?()[\\]{}|]/g,m5=/^\\[object .+?Constructor\\]$/,g5=Function.prototype,b5=Object.prototype,y5=g5.toString,w5=b5.hasOwnProperty,C5=RegExp(\"^\"+y5.call(w5).replace(_5,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function E5(e){if(!fo(e)||p5(e))return!1;var t=af(e)?C5:m5;return t.test(Tl(e))}function F5(e,t){return e==null?void 0:e[t]}function zl(e,t){var n=F5(e,t);return E5(n)?n:void 0}var A5=zl(Qn,\"WeakMap\"),Ks=A5,G2=Object.create,D5=function(){function e(){}return function(t){if(!fo(t))return{};if(G2)return G2(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),B5=D5;function x5(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function $5(e,t){var n=-1,o=e.length;for(t||(t=Array(o));++n<o;)t[n]=e[n];return t}var S5=800,k5=16,P5=Date.now;function L5(e){var t=0,n=0;return function(){var o=P5(),l=k5-(o-n);if(n=o,l>0){if(++t>=S5)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function T5(e){return function(){return e}}var z5=function(){try{var e=zl(Object,\"defineProperty\");return e({},\"\",{}),e}catch{}}(),br=z5,M5=br?function(e,t){return br(e,\"toString\",{configurable:!0,enumerable:!1,value:T5(t),writable:!0})}:r5,V5=M5,I5=L5(V5),H5=I5;function R5(e,t){for(var n=-1,o=e==null?0:e.length;++n<o&&t(e[n],n,e)!==!1;);return e}var N5=9007199254740991,O5=/^(?:0|[1-9]\\d*)$/;function Qi(e,t){var n=typeof e;return t=t==null?N5:t,!!t&&(n==\"number\"||n!=\"symbol\"&&O5.test(e))&&e>-1&&e%1==0&&e<t}function rf(e,t,n){t==\"__proto__\"&&br?br(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Zi(e,t){return e===t||e!==e&&t!==t}var U5=Object.prototype,W5=U5.hasOwnProperty;function ec(e,t,n){var o=e[t];(!(W5.call(e,t)&&Zi(o,n))||n===void 0&&!(t in e))&&rf(e,t,n)}function Ur(e,t,n,o){var l=!n;n||(n={});for(var u=-1,a=t.length;++u<a;){var r=t[u],s=o?o(n[r],e[r],r,n,e):void 0;s===void 0&&(s=e[r]),l?rf(n,r,s):ec(n,r,s)}return n}var Y2=Math.max;function q5(e,t,n){return t=Y2(t===void 0?e.length-1:t,0),function(){for(var o=arguments,l=-1,u=Y2(o.length-t,0),a=Array(u);++l<u;)a[l]=o[t+l];l=-1;for(var r=Array(t+1);++l<t;)r[l]=o[l];return r[t]=n(a),x5(e,this,r)}}var j5=9007199254740991;function tc(e){return typeof e==\"number\"&&e>-1&&e%1==0&&e<=j5}function sf(e){return e!=null&&tc(e.length)&&!af(e)}var K5=Object.prototype;function nc(e){var t=e&&e.constructor,n=typeof t==\"function\"&&t.prototype||K5;return e===n}function G5(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}var Y5=\"[object Arguments]\";function X2(e){return tl(e)&&yu(e)==Y5}var cf=Object.prototype,X5=cf.hasOwnProperty,J5=cf.propertyIsEnumerable,Q5=X2(function(){return arguments}())?X2:function(e){return tl(e)&&X5.call(e,\"callee\")&&!J5.call(e,\"callee\")},oc=Q5;function Z5(){return!1}var df=typeof Cn==\"object\"&&Cn&&!Cn.nodeType&&Cn,J2=df&&typeof En==\"object\"&&En&&!En.nodeType&&En,ev=J2&&J2.exports===df,Q2=ev?Qn.Buffer:void 0,tv=Q2?Q2.isBuffer:void 0,nv=tv||Z5,yr=nv,ov=\"[object Arguments]\",lv=\"[object Array]\",uv=\"[object Boolean]\",av=\"[object Date]\",rv=\"[object Error]\",sv=\"[object Function]\",iv=\"[object Map]\",cv=\"[object Number]\",dv=\"[object Object]\",fv=\"[object RegExp]\",pv=\"[object Set]\",vv=\"[object String]\",hv=\"[object WeakMap]\",_v=\"[object ArrayBuffer]\",mv=\"[object DataView]\",gv=\"[object Float32Array]\",bv=\"[object Float64Array]\",yv=\"[object Int8Array]\",wv=\"[object Int16Array]\",Cv=\"[object Int32Array]\",Ev=\"[object Uint8Array]\",Fv=\"[object Uint8ClampedArray]\",Av=\"[object Uint16Array]\",Dv=\"[object Uint32Array]\",At={};At[gv]=At[bv]=At[yv]=At[wv]=At[Cv]=At[Ev]=At[Fv]=At[Av]=At[Dv]=!0;At[ov]=At[lv]=At[_v]=At[uv]=At[mv]=At[av]=At[rv]=At[sv]=At[iv]=At[cv]=At[dv]=At[fv]=At[pv]=At[vv]=At[hv]=!1;function Bv(e){return tl(e)&&tc(e.length)&&!!At[yu(e)]}function lc(e){return function(t){return e(t)}}var ff=typeof Cn==\"object\"&&Cn&&!Cn.nodeType&&Cn,Nu=ff&&typeof En==\"object\"&&En&&!En.nodeType&&En,xv=Nu&&Nu.exports===ff,hs=xv&&of.process,$v=function(){try{var e=Nu&&Nu.require&&Nu.require(\"util\").types;return e||hs&&hs.binding&&hs.binding(\"util\")}catch{}}(),ou=$v,Z2=ou&&ou.isTypedArray,Sv=Z2?lc(Z2):Bv,pf=Sv,kv=Object.prototype,Pv=kv.hasOwnProperty;function vf(e,t){var n=Yn(e),o=!n&&oc(e),l=!n&&!o&&yr(e),u=!n&&!o&&!l&&pf(e),a=n||o||l||u,r=a?G5(e.length,String):[],s=r.length;for(var i in e)(t||Pv.call(e,i))&&!(a&&(i==\"length\"||l&&(i==\"offset\"||i==\"parent\")||u&&(i==\"buffer\"||i==\"byteLength\"||i==\"byteOffset\")||Qi(i,s)))&&r.push(i);return r}function hf(e,t){return function(n){return e(t(n))}}var Lv=hf(Object.keys,Object),Tv=Lv,zv=Object.prototype,Mv=zv.hasOwnProperty;function Vv(e){if(!nc(e))return Tv(e);var t=[];for(var n in Object(e))Mv.call(e,n)&&n!=\"constructor\"&&t.push(n);return t}function uc(e){return sf(e)?vf(e):Vv(e)}function Iv(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Hv=Object.prototype,Rv=Hv.hasOwnProperty;function Nv(e){if(!fo(e))return Iv(e);var t=nc(e),n=[];for(var o in e)o==\"constructor\"&&(t||!Rv.call(e,o))||n.push(o);return n}function ac(e){return sf(e)?vf(e,!0):Nv(e)}var Ov=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,Uv=/^\\w*$/;function Wv(e,t){if(Yn(e))return!1;var n=typeof e;return n==\"number\"||n==\"symbol\"||n==\"boolean\"||e==null||Or(e)?!0:Uv.test(e)||!Ov.test(e)||t!=null&&e in Object(t)}var qv=zl(Object,\"create\"),ta=qv;function jv(){this.__data__=ta?ta(null):{},this.size=0}function Kv(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Gv=\"__lodash_hash_undefined__\",Yv=Object.prototype,Xv=Yv.hasOwnProperty;function Jv(e){var t=this.__data__;if(ta){var n=t[e];return n===Gv?void 0:n}return Xv.call(t,e)?t[e]:void 0}var Qv=Object.prototype,Zv=Qv.hasOwnProperty;function eh(e){var t=this.__data__;return ta?t[e]!==void 0:Zv.call(t,e)}var th=\"__lodash_hash_undefined__\";function nh(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ta&&t===void 0?th:t,this}function xl(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}xl.prototype.clear=jv;xl.prototype.delete=Kv;xl.prototype.get=Jv;xl.prototype.has=eh;xl.prototype.set=nh;function oh(){this.__data__=[],this.size=0}function Wr(e,t){for(var n=e.length;n--;)if(Zi(e[n][0],t))return n;return-1}var lh=Array.prototype,uh=lh.splice;function ah(e){var t=this.__data__,n=Wr(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():uh.call(t,n,1),--this.size,!0}function rh(e){var t=this.__data__,n=Wr(t,e);return n<0?void 0:t[n][1]}function sh(e){return Wr(this.__data__,e)>-1}function ih(e,t){var n=this.__data__,o=Wr(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function zo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}zo.prototype.clear=oh;zo.prototype.delete=ah;zo.prototype.get=rh;zo.prototype.has=sh;zo.prototype.set=ih;var ch=zl(Qn,\"Map\"),na=ch;function dh(){this.size=0,this.__data__={hash:new xl,map:new(na||zo),string:new xl}}function fh(e){var t=typeof e;return t==\"string\"||t==\"number\"||t==\"symbol\"||t==\"boolean\"?e!==\"__proto__\":e===null}function qr(e,t){var n=e.__data__;return fh(t)?n[typeof t==\"string\"?\"string\":\"hash\"]:n.map}function ph(e){var t=qr(this,e).delete(e);return this.size-=t?1:0,t}function vh(e){return qr(this,e).get(e)}function hh(e){return qr(this,e).has(e)}function _h(e,t){var n=qr(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}function Mo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}Mo.prototype.clear=dh;Mo.prototype.delete=ph;Mo.prototype.get=vh;Mo.prototype.has=hh;Mo.prototype.set=_h;var mh=\"Expected a function\";function rc(e,t){if(typeof e!=\"function\"||t!=null&&typeof t!=\"function\")throw new TypeError(mh);var n=function(){var o=arguments,l=t?t.apply(this,o):o[0],u=n.cache;if(u.has(l))return u.get(l);var a=e.apply(this,o);return n.cache=u.set(l,a)||u,a};return n.cache=new(rc.Cache||Mo),n}rc.Cache=Mo;var gh=500;function bh(e){var t=rc(e,function(o){return n.size===gh&&n.clear(),o}),n=t.cache;return t}var yh=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,wh=/\\\\(\\\\)?/g,Ch=bh(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(\"\"),e.replace(yh,function(n,o,l,u){t.push(l?u.replace(wh,\"$1\"):o||n)}),t}),Eh=Ch;function Fh(e){return e==null?\"\":uf(e)}function jr(e,t){return Yn(e)?e:Wv(e,t)?[e]:Eh(Fh(e))}var Ah=1/0;function sc(e){if(typeof e==\"string\"||Or(e))return e;var t=e+\"\";return t==\"0\"&&1/e==-Ah?\"-0\":t}function _f(e,t){t=jr(t,e);for(var n=0,o=t.length;e!=null&&n<o;)e=e[sc(t[n++])];return n&&n==o?e:void 0}function en(e,t,n){var o=e==null?void 0:_f(e,t);return o===void 0?n:o}function ic(e,t){for(var n=-1,o=t.length,l=e.length;++n<o;)e[l+n]=t[n];return e}var e0=zn?zn.isConcatSpreadable:void 0;function Dh(e){return Yn(e)||oc(e)||!!(e0&&e&&e[e0])}function mf(e,t,n,o,l){var u=-1,a=e.length;for(n||(n=Dh),l||(l=[]);++u<a;){var r=e[u];t>0&&n(r)?t>1?mf(r,t-1,n,o,l):ic(l,r):o||(l[l.length]=r)}return l}function Bh(e){var t=e==null?0:e.length;return t?mf(e,1):[]}function xh(e){return H5(q5(e,void 0,Bh),e+\"\")}var $h=hf(Object.getPrototypeOf,Object),gf=$h;function oa(){if(!arguments.length)return[];var e=arguments[0];return Yn(e)?e:[e]}function Sh(){this.__data__=new zo,this.size=0}function kh(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Ph(e){return this.__data__.get(e)}function Lh(e){return this.__data__.has(e)}var Th=200;function zh(e,t){var n=this.__data__;if(n instanceof zo){var o=n.__data__;if(!na||o.length<Th-1)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new Mo(o)}return n.set(e,t),this.size=n.size,this}function Bo(e){var t=this.__data__=new zo(e);this.size=t.size}Bo.prototype.clear=Sh;Bo.prototype.delete=kh;Bo.prototype.get=Ph;Bo.prototype.has=Lh;Bo.prototype.set=zh;function Mh(e,t){return e&&Ur(t,uc(t),e)}function Vh(e,t){return e&&Ur(t,ac(t),e)}var bf=typeof Cn==\"object\"&&Cn&&!Cn.nodeType&&Cn,t0=bf&&typeof En==\"object\"&&En&&!En.nodeType&&En,Ih=t0&&t0.exports===bf,n0=Ih?Qn.Buffer:void 0,o0=n0?n0.allocUnsafe:void 0;function Hh(e,t){if(t)return e.slice();var n=e.length,o=o0?o0(n):new e.constructor(n);return e.copy(o),o}function Rh(e,t){for(var n=-1,o=e==null?0:e.length,l=0,u=[];++n<o;){var a=e[n];t(a,n,e)&&(u[l++]=a)}return u}function yf(){return[]}var Nh=Object.prototype,Oh=Nh.propertyIsEnumerable,l0=Object.getOwnPropertySymbols,Uh=l0?function(e){return e==null?[]:(e=Object(e),Rh(l0(e),function(t){return Oh.call(e,t)}))}:yf,cc=Uh;function Wh(e,t){return Ur(e,cc(e),t)}var qh=Object.getOwnPropertySymbols,jh=qh?function(e){for(var t=[];e;)ic(t,cc(e)),e=gf(e);return t}:yf,wf=jh;function Kh(e,t){return Ur(e,wf(e),t)}function Cf(e,t,n){var o=t(e);return Yn(e)?o:ic(o,n(e))}function Gs(e){return Cf(e,uc,cc)}function Gh(e){return Cf(e,ac,wf)}var Yh=zl(Qn,\"DataView\"),Ys=Yh,Xh=zl(Qn,\"Promise\"),Xs=Xh,Jh=zl(Qn,\"Set\"),Js=Jh,u0=\"[object Map]\",Qh=\"[object Object]\",a0=\"[object Promise]\",r0=\"[object Set]\",s0=\"[object WeakMap]\",i0=\"[object DataView]\",Zh=Tl(Ys),e_=Tl(na),t_=Tl(Xs),n_=Tl(Js),o_=Tl(Ks),pl=yu;(Ys&&pl(new Ys(new ArrayBuffer(1)))!=i0||na&&pl(new na)!=u0||Xs&&pl(Xs.resolve())!=a0||Js&&pl(new Js)!=r0||Ks&&pl(new Ks)!=s0)&&(pl=function(e){var t=yu(e),n=t==Qh?e.constructor:void 0,o=n?Tl(n):\"\";if(o)switch(o){case Zh:return i0;case e_:return u0;case t_:return a0;case n_:return r0;case o_:return s0}return t});var la=pl,l_=Object.prototype,u_=l_.hasOwnProperty;function a_(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==\"string\"&&u_.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}var r_=Qn.Uint8Array,wr=r_;function dc(e){var t=new e.constructor(e.byteLength);return new wr(t).set(new wr(e)),t}function s_(e,t){var n=t?dc(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var i_=/\\w*$/;function c_(e){var t=new e.constructor(e.source,i_.exec(e));return t.lastIndex=e.lastIndex,t}var c0=zn?zn.prototype:void 0,d0=c0?c0.valueOf:void 0;function d_(e){return d0?Object(d0.call(e)):{}}function f_(e,t){var n=t?dc(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var p_=\"[object Boolean]\",v_=\"[object Date]\",h_=\"[object Map]\",__=\"[object Number]\",m_=\"[object RegExp]\",g_=\"[object Set]\",b_=\"[object String]\",y_=\"[object Symbol]\",w_=\"[object ArrayBuffer]\",C_=\"[object DataView]\",E_=\"[object Float32Array]\",F_=\"[object Float64Array]\",A_=\"[object Int8Array]\",D_=\"[object Int16Array]\",B_=\"[object Int32Array]\",x_=\"[object Uint8Array]\",$_=\"[object Uint8ClampedArray]\",S_=\"[object Uint16Array]\",k_=\"[object Uint32Array]\";function P_(e,t,n){var o=e.constructor;switch(t){case w_:return dc(e);case p_:case v_:return new o(+e);case C_:return s_(e,n);case E_:case F_:case A_:case D_:case B_:case x_:case $_:case S_:case k_:return f_(e,n);case h_:return new o;case __:case b_:return new o(e);case m_:return c_(e);case g_:return new o;case y_:return d_(e)}}function L_(e){return typeof e.constructor==\"function\"&&!nc(e)?B5(gf(e)):{}}var T_=\"[object Map]\";function z_(e){return tl(e)&&la(e)==T_}var f0=ou&&ou.isMap,M_=f0?lc(f0):z_,V_=M_,I_=\"[object Set]\";function H_(e){return tl(e)&&la(e)==I_}var p0=ou&&ou.isSet,R_=p0?lc(p0):H_,N_=R_,O_=1,U_=2,W_=4,Ef=\"[object Arguments]\",q_=\"[object Array]\",j_=\"[object Boolean]\",K_=\"[object Date]\",G_=\"[object Error]\",Ff=\"[object Function]\",Y_=\"[object GeneratorFunction]\",X_=\"[object Map]\",J_=\"[object Number]\",Af=\"[object Object]\",Q_=\"[object RegExp]\",Z_=\"[object Set]\",em=\"[object String]\",tm=\"[object Symbol]\",nm=\"[object WeakMap]\",om=\"[object ArrayBuffer]\",lm=\"[object DataView]\",um=\"[object Float32Array]\",am=\"[object Float64Array]\",rm=\"[object Int8Array]\",sm=\"[object Int16Array]\",im=\"[object Int32Array]\",cm=\"[object Uint8Array]\",dm=\"[object Uint8ClampedArray]\",fm=\"[object Uint16Array]\",pm=\"[object Uint32Array]\",Et={};Et[Ef]=Et[q_]=Et[om]=Et[lm]=Et[j_]=Et[K_]=Et[um]=Et[am]=Et[rm]=Et[sm]=Et[im]=Et[X_]=Et[J_]=Et[Af]=Et[Q_]=Et[Z_]=Et[em]=Et[tm]=Et[cm]=Et[dm]=Et[fm]=Et[pm]=!0;Et[G_]=Et[Ff]=Et[nm]=!1;function Ja(e,t,n,o,l,u){var a,r=t&O_,s=t&U_,i=t&W_;if(n&&(a=l?n(e,o,l,u):n(e)),a!==void 0)return a;if(!fo(e))return e;var p=Yn(e);if(p){if(a=a_(e),!r)return $5(e,a)}else{var m=la(e),v=m==Ff||m==Y_;if(yr(e))return Hh(e,r);if(m==Af||m==Ef||v&&!l){if(a=s||v?{}:L_(e),!r)return s?Kh(e,Vh(a,e)):Wh(e,Mh(a,e))}else{if(!Et[m])return l?e:{};a=P_(e,m,r)}}u||(u=new Bo);var _=u.get(e);if(_)return _;u.set(e,a),N_(e)?e.forEach(function(w){a.add(Ja(w,t,n,w,e,u))}):V_(e)&&e.forEach(function(w,E){a.set(E,Ja(w,t,n,E,e,u))});var g=i?s?Gh:Gs:s?ac:uc,y=p?void 0:g(e);return R5(y||e,function(w,E){y&&(E=w,w=e[E]),ec(a,E,Ja(w,t,n,E,e,u))}),a}var vm=4;function v0(e){return Ja(e,vm)}var hm=\"__lodash_hash_undefined__\";function _m(e){return this.__data__.set(e,hm),this}function mm(e){return this.__data__.has(e)}function Cr(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Mo;++t<n;)this.add(e[t])}Cr.prototype.add=Cr.prototype.push=_m;Cr.prototype.has=mm;function gm(e,t){for(var n=-1,o=e==null?0:e.length;++n<o;)if(t(e[n],n,e))return!0;return!1}function bm(e,t){return e.has(t)}var ym=1,wm=2;function Df(e,t,n,o,l,u){var a=n&ym,r=e.length,s=t.length;if(r!=s&&!(a&&s>r))return!1;var i=u.get(e),p=u.get(t);if(i&&p)return i==t&&p==e;var m=-1,v=!0,_=n&wm?new Cr:void 0;for(u.set(e,t),u.set(t,e);++m<r;){var g=e[m],y=t[m];if(o)var w=a?o(y,g,m,t,e,u):o(g,y,m,e,t,u);if(w!==void 0){if(w)continue;v=!1;break}if(_){if(!gm(t,function(E,D){if(!bm(_,D)&&(g===E||l(g,E,n,o,u)))return _.push(D)})){v=!1;break}}else if(!(g===y||l(g,y,n,o,u))){v=!1;break}}return u.delete(e),u.delete(t),v}function Cm(e){var t=-1,n=Array(e.size);return e.forEach(function(o,l){n[++t]=[l,o]}),n}function Em(e){var t=-1,n=Array(e.size);return e.forEach(function(o){n[++t]=o}),n}var Fm=1,Am=2,Dm=\"[object Boolean]\",Bm=\"[object Date]\",xm=\"[object Error]\",$m=\"[object Map]\",Sm=\"[object Number]\",km=\"[object RegExp]\",Pm=\"[object Set]\",Lm=\"[object String]\",Tm=\"[object Symbol]\",zm=\"[object ArrayBuffer]\",Mm=\"[object DataView]\",h0=zn?zn.prototype:void 0,_s=h0?h0.valueOf:void 0;function Vm(e,t,n,o,l,u,a){switch(n){case Mm:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case zm:return!(e.byteLength!=t.byteLength||!u(new wr(e),new wr(t)));case Dm:case Bm:case Sm:return Zi(+e,+t);case xm:return e.name==t.name&&e.message==t.message;case km:case Lm:return e==t+\"\";case $m:var r=Cm;case Pm:var s=o&Fm;if(r||(r=Em),e.size!=t.size&&!s)return!1;var i=a.get(e);if(i)return i==t;o|=Am,a.set(e,t);var p=Df(r(e),r(t),o,l,u,a);return a.delete(e),p;case Tm:if(_s)return _s.call(e)==_s.call(t)}return!1}var Im=1,Hm=Object.prototype,Rm=Hm.hasOwnProperty;function Nm(e,t,n,o,l,u){var a=n&Im,r=Gs(e),s=r.length,i=Gs(t),p=i.length;if(s!=p&&!a)return!1;for(var m=s;m--;){var v=r[m];if(!(a?v in t:Rm.call(t,v)))return!1}var _=u.get(e),g=u.get(t);if(_&&g)return _==t&&g==e;var y=!0;u.set(e,t),u.set(t,e);for(var w=a;++m<s;){v=r[m];var E=e[v],D=t[v];if(o)var C=a?o(D,E,v,t,e,u):o(E,D,v,e,t,u);if(!(C===void 0?E===D||l(E,D,n,o,u):C)){y=!1;break}w||(w=v==\"constructor\")}if(y&&!w){var B=e.constructor,$=t.constructor;B!=$&&\"constructor\"in e&&\"constructor\"in t&&!(typeof B==\"function\"&&B instanceof B&&typeof $==\"function\"&&$ instanceof $)&&(y=!1)}return u.delete(e),u.delete(t),y}var Om=1,_0=\"[object Arguments]\",m0=\"[object Array]\",Pa=\"[object Object]\",Um=Object.prototype,g0=Um.hasOwnProperty;function Wm(e,t,n,o,l,u){var a=Yn(e),r=Yn(t),s=a?m0:la(e),i=r?m0:la(t);s=s==_0?Pa:s,i=i==_0?Pa:i;var p=s==Pa,m=i==Pa,v=s==i;if(v&&yr(e)){if(!yr(t))return!1;a=!0,p=!1}if(v&&!p)return u||(u=new Bo),a||pf(e)?Df(e,t,n,o,l,u):Vm(e,t,s,n,o,l,u);if(!(n&Om)){var _=p&&g0.call(e,\"__wrapped__\"),g=m&&g0.call(t,\"__wrapped__\");if(_||g){var y=_?e.value():e,w=g?t.value():t;return u||(u=new Bo),l(y,w,n,o,u)}}return v?(u||(u=new Bo),Nm(e,t,n,o,l,u)):!1}function Bf(e,t,n,o,l){return e===t?!0:e==null||t==null||!tl(e)&&!tl(t)?e!==e&&t!==t:Wm(e,t,n,o,Bf,l)}function qm(e,t){return e!=null&&t in Object(e)}function jm(e,t,n){t=jr(t,e);for(var o=-1,l=t.length,u=!1;++o<l;){var a=sc(t[o]);if(!(u=e!=null&&n(e,a)))break;e=e[a]}return u||++o!=l?u:(l=e==null?0:e.length,!!l&&tc(l)&&Qi(a,l)&&(Yn(e)||oc(e)))}function Km(e,t){return e!=null&&jm(e,t,qm)}var Gm=function(){return Qn.Date.now()},ms=Gm,Ym=\"Expected a function\",Xm=Math.max,Jm=Math.min;function lu(e,t,n){var o,l,u,a,r,s,i=0,p=!1,m=!1,v=!0;if(typeof e!=\"function\")throw new TypeError(Ym);t=j2(t)||0,fo(n)&&(p=!!n.leading,m=\"maxWait\"in n,u=m?Xm(j2(n.maxWait)||0,t):u,v=\"trailing\"in n?!!n.trailing:v);function _(k){var P=o,T=l;return o=l=void 0,i=k,a=e.apply(T,P),a}function g(k){return i=k,r=setTimeout(E,t),p?_(k):a}function y(k){var P=k-s,T=k-i,H=t-P;return m?Jm(H,u-T):H}function w(k){var P=k-s,T=k-i;return s===void 0||P>=t||P<0||m&&T>=u}function E(){var k=ms();if(w(k))return D(k);r=setTimeout(E,y(k))}function D(k){return r=void 0,v&&o?_(k):(o=l=void 0,a)}function C(){r!==void 0&&clearTimeout(r),i=0,o=s=l=r=void 0}function B(){return r===void 0?a:D(ms())}function $(){var k=ms(),P=w(k);if(o=arguments,l=this,s=k,P){if(r===void 0)return g(s);if(m)return clearTimeout(r),r=setTimeout(E,t),_(s)}return r===void 0&&(r=setTimeout(E,t)),a}return $.cancel=C,$.flush=B,$}function xf(e){for(var t=-1,n=e==null?0:e.length,o={};++t<n;){var l=e[t];o[l[0]]=l[1]}return o}function Qs(e,t){return Bf(e,t)}function io(e){return e==null}function $f(e,t,n,o){if(!fo(e))return e;t=jr(t,e);for(var l=-1,u=t.length,a=u-1,r=e;r!=null&&++l<u;){var s=sc(t[l]),i=n;if(s===\"__proto__\"||s===\"constructor\"||s===\"prototype\")return e;if(l!=a){var p=r[s];i=o?o(p,s,r):void 0,i===void 0&&(i=fo(p)?p:Qi(t[l+1])?[]:{})}ec(r,s,i),r=r[s]}return e}function Qm(e,t,n){for(var o=-1,l=t.length,u={};++o<l;){var a=t[o],r=_f(e,a);n(r,a)&&$f(u,jr(a,e),r)}return u}function Zm(e,t){return Qm(e,t,function(n,o){return Km(e,o)})}var e9=xh(function(e,t){return e==null?{}:Zm(e,t)}),t9=e9;function n9(e,t,n){return e==null?e:$f(e,t,n)}const o9='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])',l9=e=>getComputedStyle(e).position===\"fixed\"?!1:e.offsetParent!==null,b0=e=>Array.from(e.querySelectorAll(o9)).filter(t=>u9(t)&&l9(t)),u9=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(\"tabIndex\")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case\"A\":return!!e.href&&e.rel!==\"ignore\";case\"INPUT\":return!(e.type===\"hidden\"||e.type===\"file\");case\"BUTTON\":case\"SELECT\":case\"TEXTAREA\":return!0;default:return!1}},Qa=function(e,t,...n){let o;t.includes(\"mouse\")||t.includes(\"click\")?o=\"MouseEvents\":t.includes(\"key\")?o=\"KeyboardEvent\":o=\"HTMLEvents\";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},Co=(e,t,{checkForDefaultPrevented:n=!0}={})=>l=>{const u=e==null?void 0:e(l);if(n===!1||!u)return t==null?void 0:t(l)};var y0;const _t=typeof window!=\"undefined\",a9=e=>typeof e!=\"undefined\",Ut=e=>typeof e==\"boolean\",r9=e=>typeof e==\"function\",gt=e=>typeof e==\"number\",s9=e=>typeof e==\"string\",gs=()=>{};_t&&((y0=window==null?void 0:window.navigator)==null?void 0:y0.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Er(e){return typeof e==\"function\"?e():h(e)}function i9(e,t){function n(...o){e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})}return n}function c9(e,t={}){let n,o;return u=>{const a=Er(e),r=Er(t.maxWait);if(n&&clearTimeout(n),a<=0||r!==void 0&&r<=0)return o&&(clearTimeout(o),o=null),u();r&&!o&&(o=setTimeout(()=>{n&&clearTimeout(n),o=null,u()},r)),n=setTimeout(()=>{o&&clearTimeout(o),o=null,u()},a)}}function d9(e){return e}function Kr(e){return wp()?(Jd(e),!0):!1}function f9(e,t=200,n={}){return i9(c9(t,n),e)}function p9(e,t=200,n={}){if(t<=0)return e;const o=L(e.value),l=f9(()=>{o.value=e.value},t,n);return Me(e,()=>l()),o}function fc(e,t=!0){pt()?ot(e):t?e():at(e)}function uu(e,t,n={}){const{immediate:o=!0}=n,l=L(!1);let u=null;function a(){u&&(clearTimeout(u),u=null)}function r(){l.value=!1,a()}function s(...i){a(),l.value=!0,u=setTimeout(()=>{l.value=!1,u=null,e(...i)},Er(t))}return o&&(l.value=!0,_t&&s()),Kr(r),{isPending:l,start:s,stop:r}}function ao(e){var t;const n=Er(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Gr=_t?window:void 0;function Gt(...e){let t,n,o,l;if(s9(e[0])?([n,o,l]=e,t=Gr):[t,n,o,l]=e,!t)return gs;let u=gs;const a=Me(()=>ao(t),s=>{u(),s&&(s.addEventListener(n,o,l),u=()=>{s.removeEventListener(n,o,l),u=gs})},{immediate:!0,flush:\"post\"}),r=()=>{a(),u()};return Kr(r),r}function v9(e,t,n={}){const{window:o=Gr,ignore:l,capture:u=!0,detectIframe:a=!1}=n;if(!o)return;const r=L(!0);let s;const i=_=>{o.clearTimeout(s);const g=ao(e);!g||g===_.target||_.composedPath().includes(g)||!r.value||t(_)},p=_=>l&&l.some(g=>{const y=ao(g);return y&&(_.target===y||_.composedPath().includes(y))}),m=[Gt(o,\"click\",i,{passive:!0,capture:u}),Gt(o,\"pointerdown\",_=>{const g=ao(e);r.value=!!g&&!_.composedPath().includes(g)&&!p(_)},{passive:!0}),Gt(o,\"pointerup\",_=>{if(_.button===0){const g=_.composedPath();_.composedPath=()=>g,s=o.setTimeout(()=>i(_),50)}},{passive:!0}),a&&Gt(o,\"blur\",_=>{var g;const y=ao(e);((g=document.activeElement)==null?void 0:g.tagName)===\"IFRAME\"&&!(y!=null&&y.contains(document.activeElement))&&t(_)})].filter(Boolean);return()=>m.forEach(_=>_())}function h9(e,t=!1){const n=L(),o=()=>n.value=Boolean(e());return o(),fc(o,t),n}function _9(e){return JSON.parse(JSON.stringify(e))}const Zs=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:{},ei=\"__vueuse_ssr_handlers__\";Zs[ei]=Zs[ei]||{};Zs[ei];var w0=Object.getOwnPropertySymbols,m9=Object.prototype.hasOwnProperty,g9=Object.prototype.propertyIsEnumerable,b9=(e,t)=>{var n={};for(var o in e)m9.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&w0)for(var o of w0(e))t.indexOf(o)<0&&g9.call(e,o)&&(n[o]=e[o]);return n};function po(e,t,n={}){const o=n,{window:l=Gr}=o,u=b9(o,[\"window\"]);let a;const r=h9(()=>l&&\"ResizeObserver\"in l),s=()=>{a&&(a.disconnect(),a=void 0)},i=Me(()=>ao(e),m=>{s(),r.value&&l&&m&&(a=new ResizeObserver(t),a.observe(m,u))},{immediate:!0,flush:\"post\"}),p=()=>{s(),i()};return Kr(p),{isSupported:r,stop:p}}function C0(e,t={}){const{reset:n=!0,windowResize:o=!0,windowScroll:l=!0,immediate:u=!0}=t,a=L(0),r=L(0),s=L(0),i=L(0),p=L(0),m=L(0),v=L(0),_=L(0);function g(){const y=ao(e);if(!y){n&&(a.value=0,r.value=0,s.value=0,i.value=0,p.value=0,m.value=0,v.value=0,_.value=0);return}const w=y.getBoundingClientRect();a.value=w.height,r.value=w.bottom,s.value=w.left,i.value=w.right,p.value=w.top,m.value=w.width,v.value=w.x,_.value=w.y}return po(e,g),Me(()=>ao(e),y=>!y&&g()),l&&Gt(\"scroll\",g,{passive:!0}),o&&Gt(\"resize\",g,{passive:!0}),fc(()=>{u&&g()}),{height:a,bottom:r,left:s,right:i,top:p,width:m,x:v,y:_,update:g}}var E0;(function(e){e.UP=\"UP\",e.RIGHT=\"RIGHT\",e.DOWN=\"DOWN\",e.LEFT=\"LEFT\",e.NONE=\"NONE\"})(E0||(E0={}));var y9=Object.defineProperty,F0=Object.getOwnPropertySymbols,w9=Object.prototype.hasOwnProperty,C9=Object.prototype.propertyIsEnumerable,A0=(e,t,n)=>t in e?y9(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,E9=(e,t)=>{for(var n in t||(t={}))w9.call(t,n)&&A0(e,n,t[n]);if(F0)for(var n of F0(t))C9.call(t,n)&&A0(e,n,t[n]);return e};const F9={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};E9({linear:d9},F9);function A9(e,t,n,o={}){var l,u,a;const{clone:r=!1,passive:s=!1,eventName:i,deep:p=!1,defaultValue:m}=o,v=pt(),_=n||(v==null?void 0:v.emit)||((l=v==null?void 0:v.$emit)==null?void 0:l.bind(v))||((a=(u=v==null?void 0:v.proxy)==null?void 0:u.$emit)==null?void 0:a.bind(v==null?void 0:v.proxy));let g=i;t||(t=\"modelValue\"),g=i||g||`update:${t.toString()}`;const y=E=>r?r9(r)?r(E):_9(E):E,w=()=>a9(e[t])?y(e[t]):m;if(s){const E=w(),D=L(E);return Me(()=>e[t],C=>D.value=y(C)),Me(D,C=>{(C!==e[t]||p)&&_(g,C)},{deep:p}),D}else return U({get(){return w()},set(E){_(g,E)}})}function D9(e={}){const{window:t=Gr,initialWidth:n=1/0,initialHeight:o=1/0,listenOrientation:l=!0,includeScrollbar:u=!0}=e,a=L(n),r=L(o),s=()=>{t&&(u?(a.value=t.innerWidth,r.value=t.innerHeight):(a.value=t.document.documentElement.clientWidth,r.value=t.document.documentElement.clientHeight))};return s(),fc(s),Gt(\"resize\",s,{passive:!0}),l&&Gt(\"orientationchange\",s,{passive:!0}),{width:a,height:r}}const jn=e=>e===void 0,nl=e=>typeof Element==\"undefined\"?!1:e instanceof Element,B9=(e=\"\")=>e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\"),D0=e=>Object.keys(e),x9=e=>Object.entries(e),Za=(e,t,n)=>({get value(){return en(e,t,n)},set value(o){n9(e,t,o)}});class $9 extends Error{constructor(t){super(t),this.name=\"ElementPlusError\"}}function An(e,t){throw new $9(`[${e}] ${t}`)}const Sf=(e=\"\")=>e.split(\" \").filter(t=>!!t.trim()),Al=(e,t)=>{if(!e||!t)return!1;if(t.includes(\" \"))throw new Error(\"className should not contain space.\");return e.classList.contains(t)},Fo=(e,t)=>{!e||!t.trim()||e.classList.add(...Sf(t))},Gn=(e,t)=>{!e||!t.trim()||e.classList.remove(...Sf(t))},Eo=(e,t)=>{var n;if(!_t||!e||!t)return\"\";let o=Ln(t);o===\"float\"&&(o=\"cssFloat\");try{const l=e.style[o];if(l)return l;const u=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,\"\");return u?u[o]:\"\"}catch{return e.style[o]}};function Xn(e,t=\"px\"){if(!e)return\"\";if(tt(e))return e;if(gt(e))return`${e}${t}`}const S9=(e,t)=>{if(!_t)return!1;const n={undefined:\"overflow\",true:\"overflow-y\",false:\"overflow-x\"}[String(t)],o=Eo(e,n);return[\"scroll\",\"auto\",\"overlay\"].some(l=>o.includes(l))},k9=(e,t)=>{if(!_t)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(S9(n,t))return n;n=n.parentNode}return n};let La;const P9=e=>{var t;if(!_t)return 0;if(La!==void 0)return La;const n=document.createElement(\"div\");n.className=`${e}-scrollbar__wrap`,n.style.visibility=\"hidden\",n.style.width=\"100px\",n.style.position=\"absolute\",n.style.top=\"-9999px\",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow=\"scroll\";const l=document.createElement(\"div\");l.style.width=\"100%\",n.appendChild(l);const u=l.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),La=o-u,La};function L9(e,t){if(!_t)return;if(!t){e.scrollTop=0;return}const n=[];let o=t.offsetParent;for(;o!==null&&e!==o&&e.contains(o);)n.push(o),o=o.offsetParent;const l=t.offsetTop+n.reduce((s,i)=>s+i.offsetTop,0),u=l+t.offsetHeight,a=e.scrollTop,r=a+e.clientHeight;l<a?e.scrollTop=l:u>r&&(e.scrollTop=u-e.clientHeight)}/*! Element Plus Icons Vue v2.0.10 */var T9={name:\"AddLocation\"},V=(e,t)=>{let n=e.__vccOpts||e;for(let[o,l]of t)n[o]=l;return n},z9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},M9=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),V9=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),I9=f(\"path\",{fill:\"currentColor\",d:\"M544 384h96a32 32 0 1 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96z\"},null,-1),H9=[M9,V9,I9];function R9(e,t,n,o,l,u){return b(),F(\"svg\",z9,H9)}var N9=V(T9,[[\"render\",R9],[\"__file\",\"add-location.vue\"]]),O9={name:\"Aim\"},U9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},W9=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),q9=f(\"path\",{fill:\"currentColor\",d:\"M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32zm0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32zM96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32zm576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32z\"},null,-1),j9=[W9,q9];function K9(e,t,n,o,l,u){return b(),F(\"svg\",U9,j9)}var G9=V(O9,[[\"render\",K9],[\"__file\",\"aim.vue\"]]),Y9={name:\"AlarmClock\"},X9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},J9=f(\"path\",{fill:\"currentColor\",d:\"M512 832a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z\"},null,-1),Q9=f(\"path\",{fill:\"currentColor\",d:\"m292.288 824.576 55.424 32-48 83.136a32 32 0 1 1-55.424-32l48-83.136zm439.424 0-55.424 32 48 83.136a32 32 0 1 0 55.424-32l-48-83.136zM512 512h160a32 32 0 1 1 0 64H480a32 32 0 0 1-32-32V320a32 32 0 0 1 64 0v192zM90.496 312.256A160 160 0 0 1 312.32 90.496l-46.848 46.848a96 96 0 0 0-128 128L90.56 312.256zm835.264 0A160 160 0 0 0 704 90.496l46.848 46.848a96 96 0 0 1 128 128l46.912 46.912z\"},null,-1),Z9=[J9,Q9];function eg(e,t,n,o,l,u){return b(),F(\"svg\",X9,Z9)}var tg=V(Y9,[[\"render\",eg],[\"__file\",\"alarm-clock.vue\"]]),ng={name:\"Apple\"},og={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lg=f(\"path\",{fill:\"currentColor\",d:\"M599.872 203.776a189.44 189.44 0 0 1 64.384-4.672l2.624.128c31.168 1.024 51.2 4.096 79.488 16.32 37.632 16.128 74.496 45.056 111.488 89.344 96.384 115.264 82.752 372.8-34.752 521.728-7.68 9.728-32 41.6-30.72 39.936a426.624 426.624 0 0 1-30.08 35.776c-31.232 32.576-65.28 49.216-110.08 50.048-31.36.64-53.568-5.312-84.288-18.752l-6.528-2.88c-20.992-9.216-30.592-11.904-47.296-11.904-18.112 0-28.608 2.88-51.136 12.672l-6.464 2.816c-28.416 12.224-48.32 18.048-76.16 19.2-74.112 2.752-116.928-38.08-180.672-132.16-96.64-142.08-132.608-349.312-55.04-486.4 46.272-81.92 129.92-133.632 220.672-135.04 32.832-.576 60.288 6.848 99.648 22.72 27.136 10.88 34.752 13.76 37.376 14.272 16.256-20.16 27.776-36.992 34.56-50.24 13.568-26.304 27.2-59.968 40.704-100.8a32 32 0 1 1 60.8 20.224c-12.608 37.888-25.408 70.4-38.528 97.664zm-51.52 78.08c-14.528 17.792-31.808 37.376-51.904 58.816a32 32 0 1 1-46.72-43.776l12.288-13.248c-28.032-11.2-61.248-26.688-95.68-26.112-70.4 1.088-135.296 41.6-171.648 105.792C121.6 492.608 176 684.16 247.296 788.992c34.816 51.328 76.352 108.992 130.944 106.944 52.48-2.112 72.32-34.688 135.872-34.688 63.552 0 81.28 34.688 136.96 33.536 56.448-1.088 75.776-39.04 126.848-103.872 107.904-136.768 107.904-362.752 35.776-449.088-72.192-86.272-124.672-84.096-151.68-85.12-41.472-4.288-81.6 12.544-113.664 25.152z\"},null,-1),ug=[lg];function ag(e,t,n,o,l,u){return b(),F(\"svg\",og,ug)}var rg=V(ng,[[\"render\",ag],[\"__file\",\"apple.vue\"]]),sg={name:\"ArrowDownBold\"},ig={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cg=f(\"path\",{fill:\"currentColor\",d:\"M104.704 338.752a64 64 0 0 1 90.496 0l316.8 316.8 316.8-316.8a64 64 0 0 1 90.496 90.496L557.248 791.296a64 64 0 0 1-90.496 0L104.704 429.248a64 64 0 0 1 0-90.496z\"},null,-1),dg=[cg];function fg(e,t,n,o,l,u){return b(),F(\"svg\",ig,dg)}var pg=V(sg,[[\"render\",fg],[\"__file\",\"arrow-down-bold.vue\"]]),vg={name:\"ArrowDown\"},hg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_g=f(\"path\",{fill:\"currentColor\",d:\"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"},null,-1),mg=[_g];function gg(e,t,n,o,l,u){return b(),F(\"svg\",hg,mg)}var pa=V(vg,[[\"render\",gg],[\"__file\",\"arrow-down.vue\"]]),bg={name:\"ArrowLeftBold\"},yg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wg=f(\"path\",{fill:\"currentColor\",d:\"M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z\"},null,-1),Cg=[wg];function Eg(e,t,n,o,l,u){return b(),F(\"svg\",yg,Cg)}var Fg=V(bg,[[\"render\",Eg],[\"__file\",\"arrow-left-bold.vue\"]]),Ag={name:\"ArrowLeft\"},Dg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Bg=f(\"path\",{fill:\"currentColor\",d:\"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z\"},null,-1),xg=[Bg];function $g(e,t,n,o,l,u){return b(),F(\"svg\",Dg,xg)}var kf=V(Ag,[[\"render\",$g],[\"__file\",\"arrow-left.vue\"]]),Sg={name:\"ArrowRightBold\"},kg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Pg=f(\"path\",{fill:\"currentColor\",d:\"M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z\"},null,-1),Lg=[Pg];function Tg(e,t,n,o,l,u){return b(),F(\"svg\",kg,Lg)}var zg=V(Sg,[[\"render\",Tg],[\"__file\",\"arrow-right-bold.vue\"]]),Mg={name:\"ArrowRight\"},Vg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ig=f(\"path\",{fill:\"currentColor\",d:\"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z\"},null,-1),Hg=[Ig];function Rg(e,t,n,o,l,u){return b(),F(\"svg\",Vg,Hg)}var wu=V(Mg,[[\"render\",Rg],[\"__file\",\"arrow-right.vue\"]]),Ng={name:\"ArrowUpBold\"},Og={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ug=f(\"path\",{fill:\"currentColor\",d:\"M104.704 685.248a64 64 0 0 0 90.496 0l316.8-316.8 316.8 316.8a64 64 0 0 0 90.496-90.496L557.248 232.704a64 64 0 0 0-90.496 0L104.704 594.752a64 64 0 0 0 0 90.496z\"},null,-1),Wg=[Ug];function qg(e,t,n,o,l,u){return b(),F(\"svg\",Og,Wg)}var jg=V(Ng,[[\"render\",qg],[\"__file\",\"arrow-up-bold.vue\"]]),Kg={name:\"ArrowUp\"},Gg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Yg=f(\"path\",{fill:\"currentColor\",d:\"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z\"},null,-1),Xg=[Yg];function Jg(e,t,n,o,l,u){return b(),F(\"svg\",Gg,Xg)}var pc=V(Kg,[[\"render\",Jg],[\"__file\",\"arrow-up.vue\"]]),Qg={name:\"Avatar\"},Zg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},e7=f(\"path\",{fill:\"currentColor\",d:\"M628.736 528.896A416 416 0 0 1 928 928H96a415.872 415.872 0 0 1 299.264-399.104L512 704l116.736-175.104zM720 304a208 208 0 1 1-416 0 208 208 0 0 1 416 0z\"},null,-1),t7=[e7];function n7(e,t,n,o,l,u){return b(),F(\"svg\",Zg,t7)}var o7=V(Qg,[[\"render\",n7],[\"__file\",\"avatar.vue\"]]),l7={name:\"Back\"},u7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},a7=f(\"path\",{fill:\"currentColor\",d:\"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64z\"},null,-1),r7=f(\"path\",{fill:\"currentColor\",d:\"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312L237.248 512z\"},null,-1),s7=[a7,r7];function i7(e,t,n,o,l,u){return b(),F(\"svg\",u7,s7)}var c7=V(l7,[[\"render\",i7],[\"__file\",\"back.vue\"]]),d7={name:\"Baseball\"},f7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},p7=f(\"path\",{fill:\"currentColor\",d:\"M195.2 828.8a448 448 0 1 1 633.6-633.6 448 448 0 0 1-633.6 633.6zm45.248-45.248a384 384 0 1 0 543.104-543.104 384 384 0 0 0-543.104 543.104z\"},null,-1),v7=f(\"path\",{fill:\"currentColor\",d:\"M497.472 96.896c22.784 4.672 44.416 9.472 64.896 14.528a256.128 256.128 0 0 0 350.208 350.208c5.056 20.48 9.856 42.112 14.528 64.896A320.128 320.128 0 0 1 497.472 96.896zM108.48 491.904a320.128 320.128 0 0 1 423.616 423.68c-23.04-3.648-44.992-7.424-65.728-11.52a256.128 256.128 0 0 0-346.496-346.432 1736.64 1736.64 0 0 1-11.392-65.728z\"},null,-1),h7=[p7,v7];function _7(e,t,n,o,l,u){return b(),F(\"svg\",f7,h7)}var m7=V(d7,[[\"render\",_7],[\"__file\",\"baseball.vue\"]]),g7={name:\"Basketball\"},b7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},y7=f(\"path\",{fill:\"currentColor\",d:\"M778.752 788.224a382.464 382.464 0 0 0 116.032-245.632 256.512 256.512 0 0 0-241.728-13.952 762.88 762.88 0 0 1 125.696 259.584zm-55.04 44.224a699.648 699.648 0 0 0-125.056-269.632 256.128 256.128 0 0 0-56.064 331.968 382.72 382.72 0 0 0 181.12-62.336zm-254.08 61.248A320.128 320.128 0 0 1 557.76 513.6a715.84 715.84 0 0 0-48.192-48.128 320.128 320.128 0 0 1-379.264 88.384 382.4 382.4 0 0 0 110.144 229.696 382.4 382.4 0 0 0 229.184 110.08zM129.28 481.088a256.128 256.128 0 0 0 331.072-56.448 699.648 699.648 0 0 0-268.8-124.352 382.656 382.656 0 0 0-62.272 180.8zm106.56-235.84a762.88 762.88 0 0 1 258.688 125.056 256.512 256.512 0 0 0-13.44-241.088A382.464 382.464 0 0 0 235.84 245.248zm318.08-114.944c40.576 89.536 37.76 193.92-8.448 281.344a779.84 779.84 0 0 1 66.176 66.112 320.832 320.832 0 0 1 282.112-8.128 382.4 382.4 0 0 0-110.144-229.12 382.4 382.4 0 0 0-229.632-110.208zM828.8 828.8a448 448 0 1 1-633.6-633.6 448 448 0 0 1 633.6 633.6z\"},null,-1),w7=[y7];function C7(e,t,n,o,l,u){return b(),F(\"svg\",b7,w7)}var E7=V(g7,[[\"render\",C7],[\"__file\",\"basketball.vue\"]]),F7={name:\"BellFilled\"},A7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},D7=f(\"path\",{fill:\"currentColor\",d:\"M640 832a128 128 0 0 1-256 0h256zm192-64H134.4a38.4 38.4 0 0 1 0-76.8H192V448c0-154.88 110.08-284.16 256.32-313.6a64 64 0 1 1 127.36 0A320.128 320.128 0 0 1 832 448v243.2h57.6a38.4 38.4 0 0 1 0 76.8H832z\"},null,-1),B7=[D7];function x7(e,t,n,o,l,u){return b(),F(\"svg\",A7,B7)}var $7=V(F7,[[\"render\",x7],[\"__file\",\"bell-filled.vue\"]]),S7={name:\"Bell\"},k7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},P7=f(\"path\",{fill:\"currentColor\",d:\"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"},null,-1),L7=f(\"path\",{fill:\"currentColor\",d:\"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"},null,-1),T7=f(\"path\",{fill:\"currentColor\",d:\"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"},null,-1),z7=[P7,L7,T7];function M7(e,t,n,o,l,u){return b(),F(\"svg\",k7,z7)}var V7=V(S7,[[\"render\",M7],[\"__file\",\"bell.vue\"]]),I7={name:\"Bicycle\"},H7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},R7=K3('<path fill=\"currentColor\" d=\"M256 832a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"></path><path fill=\"currentColor\" d=\"M288 672h320q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"></path><path fill=\"currentColor\" d=\"M768 832a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"></path><path fill=\"currentColor\" d=\"M480 192a32 32 0 0 1 0-64h160a32 32 0 0 1 31.04 24.256l96 384a32 32 0 0 1-62.08 15.488L615.04 192H480zM96 384a32 32 0 0 1 0-64h128a32 32 0 0 1 30.336 21.888l64 192a32 32 0 1 1-60.672 20.224L200.96 384H96z\"></path><path fill=\"currentColor\" d=\"m373.376 599.808-42.752-47.616 320-288 42.752 47.616z\"></path>',5),N7=[R7];function O7(e,t,n,o,l,u){return b(),F(\"svg\",H7,N7)}var U7=V(I7,[[\"render\",O7],[\"__file\",\"bicycle.vue\"]]),W7={name:\"BottomLeft\"},q7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},j7=f(\"path\",{fill:\"currentColor\",d:\"M256 768h416a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V352a32 32 0 0 1 64 0v416z\"},null,-1),K7=f(\"path\",{fill:\"currentColor\",d:\"M246.656 822.656a32 32 0 0 1-45.312-45.312l544-544a32 32 0 0 1 45.312 45.312l-544 544z\"},null,-1),G7=[j7,K7];function Y7(e,t,n,o,l,u){return b(),F(\"svg\",q7,G7)}var X7=V(W7,[[\"render\",Y7],[\"__file\",\"bottom-left.vue\"]]),J7={name:\"BottomRight\"},Q7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Z7=f(\"path\",{fill:\"currentColor\",d:\"M352 768a32 32 0 1 0 0 64h448a32 32 0 0 0 32-32V352a32 32 0 0 0-64 0v416H352z\"},null,-1),eb=f(\"path\",{fill:\"currentColor\",d:\"M777.344 822.656a32 32 0 0 0 45.312-45.312l-544-544a32 32 0 0 0-45.312 45.312l544 544z\"},null,-1),tb=[Z7,eb];function nb(e,t,n,o,l,u){return b(),F(\"svg\",Q7,tb)}var ob=V(J7,[[\"render\",nb],[\"__file\",\"bottom-right.vue\"]]),lb={name:\"Bottom\"},ub={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ab=f(\"path\",{fill:\"currentColor\",d:\"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z\"},null,-1),rb=[ab];function sb(e,t,n,o,l,u){return b(),F(\"svg\",ub,rb)}var ib=V(lb,[[\"render\",sb],[\"__file\",\"bottom.vue\"]]),cb={name:\"Bowl\"},db={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fb=f(\"path\",{fill:\"currentColor\",d:\"M714.432 704a351.744 351.744 0 0 0 148.16-256H161.408a351.744 351.744 0 0 0 148.16 256h404.864zM288 766.592A415.68 415.68 0 0 1 96 416a32 32 0 0 1 32-32h768a32 32 0 0 1 32 32 415.68 415.68 0 0 1-192 350.592V832a64 64 0 0 1-64 64H352a64 64 0 0 1-64-64v-65.408zM493.248 320h-90.496l254.4-254.4a32 32 0 1 1 45.248 45.248L493.248 320zm187.328 0h-128l269.696-155.712a32 32 0 0 1 32 55.424L680.576 320zM352 768v64h320v-64H352z\"},null,-1),pb=[fb];function vb(e,t,n,o,l,u){return b(),F(\"svg\",db,pb)}var hb=V(cb,[[\"render\",vb],[\"__file\",\"bowl.vue\"]]),_b={name:\"Box\"},mb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gb=f(\"path\",{fill:\"currentColor\",d:\"M317.056 128 128 344.064V896h768V344.064L706.944 128H317.056zm-14.528-64h418.944a32 32 0 0 1 24.064 10.88l206.528 236.096A32 32 0 0 1 960 332.032V928a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V332.032a32 32 0 0 1 7.936-21.12L278.4 75.008A32 32 0 0 1 302.528 64z\"},null,-1),bb=f(\"path\",{fill:\"currentColor\",d:\"M64 320h896v64H64z\"},null,-1),yb=f(\"path\",{fill:\"currentColor\",d:\"M448 327.872V640h128V327.872L526.08 128h-28.16L448 327.872zM448 64h128l64 256v352a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V320l64-256z\"},null,-1),wb=[gb,bb,yb];function Cb(e,t,n,o,l,u){return b(),F(\"svg\",mb,wb)}var Eb=V(_b,[[\"render\",Cb],[\"__file\",\"box.vue\"]]),Fb={name:\"Briefcase\"},Ab={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Db=f(\"path\",{fill:\"currentColor\",d:\"M320 320V128h384v192h192v192H128V320h192zM128 576h768v320H128V576zm256-256h256.064V192H384v128z\"},null,-1),Bb=[Db];function xb(e,t,n,o,l,u){return b(),F(\"svg\",Ab,Bb)}var $b=V(Fb,[[\"render\",xb],[\"__file\",\"briefcase.vue\"]]),Sb={name:\"BrushFilled\"},kb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Pb=f(\"path\",{fill:\"currentColor\",d:\"M608 704v160a96 96 0 0 1-192 0V704h-96a128 128 0 0 1-128-128h640a128 128 0 0 1-128 128h-96zM192 512V128.064h640V512H192z\"},null,-1),Lb=[Pb];function Tb(e,t,n,o,l,u){return b(),F(\"svg\",kb,Lb)}var zb=V(Sb,[[\"render\",Tb],[\"__file\",\"brush-filled.vue\"]]),Mb={name:\"Brush\"},Vb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ib=f(\"path\",{fill:\"currentColor\",d:\"M896 448H128v192a64 64 0 0 0 64 64h192v192h256V704h192a64 64 0 0 0 64-64V448zm-770.752-64c0-47.552 5.248-90.24 15.552-128 14.72-54.016 42.496-107.392 83.2-160h417.28l-15.36 70.336L736 96h211.2c-24.832 42.88-41.92 96.256-51.2 160a663.872 663.872 0 0 0-6.144 128H960v256a128 128 0 0 1-128 128H704v160a32 32 0 0 1-32 32H352a32 32 0 0 1-32-32V768H192A128 128 0 0 1 64 640V384h61.248zm64 0h636.544c-2.048-45.824.256-91.584 6.848-137.216 4.48-30.848 10.688-59.776 18.688-86.784h-96.64l-221.12 141.248L561.92 160H256.512c-25.856 37.888-43.776 75.456-53.952 112.832-8.768 32.064-13.248 69.12-13.312 111.168z\"},null,-1),Hb=[Ib];function Rb(e,t,n,o,l,u){return b(),F(\"svg\",Vb,Hb)}var Nb=V(Mb,[[\"render\",Rb],[\"__file\",\"brush.vue\"]]),Ob={name:\"Burger\"},Ub={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Wb=f(\"path\",{fill:\"currentColor\",d:\"M160 512a32 32 0 0 0-32 32v64a32 32 0 0 0 30.08 32H864a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H160zm736-58.56A96 96 0 0 1 960 544v64a96 96 0 0 1-51.968 85.312L855.36 833.6a96 96 0 0 1-89.856 62.272H258.496A96 96 0 0 1 168.64 833.6l-52.608-140.224A96 96 0 0 1 64 608v-64a96 96 0 0 1 64-90.56V448a384 384 0 1 1 768 5.44zM832 448a320 320 0 0 0-640 0h640zM512 704H188.352l40.192 107.136a32 32 0 0 0 29.952 20.736h507.008a32 32 0 0 0 29.952-20.736L835.648 704H512z\"},null,-1),qb=[Wb];function jb(e,t,n,o,l,u){return b(),F(\"svg\",Ub,qb)}var Kb=V(Ob,[[\"render\",jb],[\"__file\",\"burger.vue\"]]),Gb={name:\"Calendar\"},Yb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Xb=f(\"path\",{fill:\"currentColor\",d:\"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64H128zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0v32zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64z\"},null,-1),Jb=[Xb];function Qb(e,t,n,o,l,u){return b(),F(\"svg\",Yb,Jb)}var Zb=V(Gb,[[\"render\",Qb],[\"__file\",\"calendar.vue\"]]),ey={name:\"CameraFilled\"},ty={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ny=f(\"path\",{fill:\"currentColor\",d:\"M160 224a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h704a64 64 0 0 0 64-64V288a64 64 0 0 0-64-64H748.416l-46.464-92.672A64 64 0 0 0 644.736 96H379.328a64 64 0 0 0-57.216 35.392L275.776 224H160zm352 435.2a115.2 115.2 0 1 0 0-230.4 115.2 115.2 0 0 0 0 230.4zm0 140.8a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),oy=[ny];function ly(e,t,n,o,l,u){return b(),F(\"svg\",ty,oy)}var uy=V(ey,[[\"render\",ly],[\"__file\",\"camera-filled.vue\"]]),ay={name:\"Camera\"},ry={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sy=f(\"path\",{fill:\"currentColor\",d:\"M896 256H128v576h768V256zm-199.424-64-32.064-64h-304.96l-32 64h369.024zM96 192h160l46.336-92.608A64 64 0 0 1 359.552 64h304.96a64 64 0 0 1 57.216 35.328L768.192 192H928a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32zm416 512a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm0 64a224 224 0 1 1 0-448 224 224 0 0 1 0 448z\"},null,-1),iy=[sy];function cy(e,t,n,o,l,u){return b(),F(\"svg\",ry,iy)}var dy=V(ay,[[\"render\",cy],[\"__file\",\"camera.vue\"]]),fy={name:\"CaretBottom\"},py={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vy=f(\"path\",{fill:\"currentColor\",d:\"m192 384 320 384 320-384z\"},null,-1),hy=[vy];function _y(e,t,n,o,l,u){return b(),F(\"svg\",py,hy)}var my=V(fy,[[\"render\",_y],[\"__file\",\"caret-bottom.vue\"]]),gy={name:\"CaretLeft\"},by={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yy=f(\"path\",{fill:\"currentColor\",d:\"M672 192 288 511.936 672 832z\"},null,-1),wy=[yy];function Cy(e,t,n,o,l,u){return b(),F(\"svg\",by,wy)}var Ey=V(gy,[[\"render\",Cy],[\"__file\",\"caret-left.vue\"]]),Fy={name:\"CaretRight\"},Ay={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Dy=f(\"path\",{fill:\"currentColor\",d:\"M384 192v640l384-320.064z\"},null,-1),By=[Dy];function xy(e,t,n,o,l,u){return b(),F(\"svg\",Ay,By)}var $y=V(Fy,[[\"render\",xy],[\"__file\",\"caret-right.vue\"]]),Sy={name:\"CaretTop\"},ky={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Py=f(\"path\",{fill:\"currentColor\",d:\"M512 320 192 704h639.936z\"},null,-1),Ly=[Py];function Ty(e,t,n,o,l,u){return b(),F(\"svg\",ky,Ly)}var zy=V(Sy,[[\"render\",Ty],[\"__file\",\"caret-top.vue\"]]),My={name:\"Cellphone\"},Vy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Iy=f(\"path\",{fill:\"currentColor\",d:\"M256 128a64 64 0 0 0-64 64v640a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H256zm0-64h512a128 128 0 0 1 128 128v640a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V192A128 128 0 0 1 256 64zm128 128h256a32 32 0 1 1 0 64H384a32 32 0 0 1 0-64zm128 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z\"},null,-1),Hy=[Iy];function Ry(e,t,n,o,l,u){return b(),F(\"svg\",Vy,Hy)}var Ny=V(My,[[\"render\",Ry],[\"__file\",\"cellphone.vue\"]]),Oy={name:\"ChatDotRound\"},Uy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Wy=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z\"},null,-1),qy=f(\"path\",{fill:\"currentColor\",d:\"M512 563.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"},null,-1),jy=[Wy,qy];function Ky(e,t,n,o,l,u){return b(),F(\"svg\",Uy,jy)}var Gy=V(Oy,[[\"render\",Ky],[\"__file\",\"chat-dot-round.vue\"]]),Yy={name:\"ChatDotSquare\"},Xy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Jy=f(\"path\",{fill:\"currentColor\",d:\"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),Qy=f(\"path\",{fill:\"currentColor\",d:\"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"},null,-1),Zy=[Jy,Qy];function ew(e,t,n,o,l,u){return b(),F(\"svg\",Xy,Zy)}var tw=V(Yy,[[\"render\",ew],[\"__file\",\"chat-dot-square.vue\"]]),nw={name:\"ChatLineRound\"},ow={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lw=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z\"},null,-1),uw=f(\"path\",{fill:\"currentColor\",d:\"M352 576h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm32-192h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z\"},null,-1),aw=[lw,uw];function rw(e,t,n,o,l,u){return b(),F(\"svg\",ow,aw)}var sw=V(nw,[[\"render\",rw],[\"__file\",\"chat-line-round.vue\"]]),iw={name:\"ChatLineSquare\"},cw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dw=f(\"path\",{fill:\"currentColor\",d:\"M160 826.88 273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),fw=f(\"path\",{fill:\"currentColor\",d:\"M352 512h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm0-192h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z\"},null,-1),pw=[dw,fw];function vw(e,t,n,o,l,u){return b(),F(\"svg\",cw,pw)}var hw=V(iw,[[\"render\",vw],[\"__file\",\"chat-line-square.vue\"]]),_w={name:\"ChatRound\"},mw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gw=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 130.048-43.392 23.424 11.392C382.4 849.984 444.352 864 512 864c223.744 0 384-159.872 384-352 0-192.832-159.104-352-384-352S128 319.168 128 512a341.12 341.12 0 0 0 69.248 204.288l21.632 28.8-44.16 110.528zm-45.248 82.56A32 32 0 0 1 89.6 896l56.512-141.248A405.12 405.12 0 0 1 64 512C64 299.904 235.648 96 512 96s448 203.904 448 416-173.44 416-448 416c-79.68 0-150.848-17.152-211.712-46.72l-170.88 56.96z\"},null,-1),bw=[gw];function yw(e,t,n,o,l,u){return b(),F(\"svg\",mw,bw)}var ww=V(_w,[[\"render\",yw],[\"__file\",\"chat-round.vue\"]]),Cw={name:\"ChatSquare\"},Ew={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Fw=f(\"path\",{fill:\"currentColor\",d:\"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),Aw=[Fw];function Dw(e,t,n,o,l,u){return b(),F(\"svg\",Ew,Aw)}var Bw=V(Cw,[[\"render\",Dw],[\"__file\",\"chat-square.vue\"]]),xw={name:\"Check\"},$w={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Sw=f(\"path\",{fill:\"currentColor\",d:\"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"},null,-1),kw=[Sw];function Pw(e,t,n,o,l,u){return b(),F(\"svg\",$w,kw)}var vc=V(xw,[[\"render\",Pw],[\"__file\",\"check.vue\"]]),Lw={name:\"Checked\"},Tw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zw=f(\"path\",{fill:\"currentColor\",d:\"M704 192h160v736H160V192h160.064v64H704v-64zM311.616 537.28l-45.312 45.248L447.36 763.52l316.8-316.8-45.312-45.184L447.36 673.024 311.616 537.28zM384 192V96h256v96H384z\"},null,-1),Mw=[zw];function Vw(e,t,n,o,l,u){return b(),F(\"svg\",Tw,Mw)}var Iw=V(Lw,[[\"render\",Vw],[\"__file\",\"checked.vue\"]]),Hw={name:\"Cherry\"},Rw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Nw=f(\"path\",{fill:\"currentColor\",d:\"M261.056 449.6c13.824-69.696 34.88-128.96 63.36-177.728 23.744-40.832 61.12-88.64 112.256-143.872H320a32 32 0 0 1 0-64h384a32 32 0 1 1 0 64H554.752c14.912 39.168 41.344 86.592 79.552 141.76 47.36 68.48 84.8 106.752 106.304 114.304a224 224 0 1 1-84.992 14.784c-22.656-22.912-47.04-53.76-73.92-92.608-38.848-56.128-67.008-105.792-84.352-149.312-55.296 58.24-94.528 107.52-117.76 147.2-23.168 39.744-41.088 88.768-53.568 147.072a224.064 224.064 0 1 1-64.96-1.6zM288 832a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm448-64a160 160 0 1 0 0-320 160 160 0 0 0 0 320z\"},null,-1),Ow=[Nw];function Uw(e,t,n,o,l,u){return b(),F(\"svg\",Rw,Ow)}var Ww=V(Hw,[[\"render\",Uw],[\"__file\",\"cherry.vue\"]]),qw={name:\"Chicken\"},jw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Kw=f(\"path\",{fill:\"currentColor\",d:\"M349.952 716.992 478.72 588.16a106.688 106.688 0 0 1-26.176-19.072 106.688 106.688 0 0 1-19.072-26.176L304.704 671.744c.768 3.072 1.472 6.144 2.048 9.216l2.048 31.936 31.872 1.984c3.136.64 6.208 1.28 9.28 2.112zm57.344 33.152a128 128 0 1 1-216.32 114.432l-1.92-32-32-1.92a128 128 0 1 1 114.432-216.32L416.64 469.248c-2.432-101.44 58.112-239.104 149.056-330.048 107.328-107.328 231.296-85.504 316.8 0 85.44 85.44 107.328 209.408 0 316.8-91.008 90.88-228.672 151.424-330.112 149.056L407.296 750.08zm90.496-226.304c49.536 49.536 233.344-7.04 339.392-113.088 78.208-78.208 63.232-163.072 0-226.304-63.168-63.232-148.032-78.208-226.24 0C504.896 290.496 448.32 474.368 497.792 523.84zM244.864 708.928a64 64 0 1 0-59.84 59.84l56.32-3.52 3.52-56.32zm8.064 127.68a64 64 0 1 0 59.84-59.84l-56.32 3.52-3.52 56.32z\"},null,-1),Gw=[Kw];function Yw(e,t,n,o,l,u){return b(),F(\"svg\",jw,Gw)}var Xw=V(qw,[[\"render\",Yw],[\"__file\",\"chicken.vue\"]]),Jw={name:\"ChromeFilled\"},Qw={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},Zw=f(\"path\",{d:\"M938.67 512.01c0-44.59-6.82-87.6-19.54-128H682.67a212.372 212.372 0 0 1 42.67 128c.06 38.71-10.45 76.7-30.42 109.87l-182.91 316.8c235.65-.01 426.66-191.02 426.66-426.67z\",fill:\"currentColor\"},null,-1),eC=f(\"path\",{d:\"M576.79 401.63a127.92 127.92 0 0 0-63.56-17.6c-22.36-.22-44.39 5.43-63.89 16.38s-35.79 26.82-47.25 46.02a128.005 128.005 0 0 0-2.16 127.44l1.24 2.13a127.906 127.906 0 0 0 46.36 46.61 127.907 127.907 0 0 0 63.38 17.44c22.29.2 44.24-5.43 63.68-16.33a127.94 127.94 0 0 0 47.16-45.79v-.01l1.11-1.92a127.984 127.984 0 0 0 .29-127.46 127.957 127.957 0 0 0-46.36-46.91z\",fill:\"currentColor\"},null,-1),tC=f(\"path\",{d:\"M394.45 333.96A213.336 213.336 0 0 1 512 298.67h369.58A426.503 426.503 0 0 0 512 85.34a425.598 425.598 0 0 0-171.74 35.98 425.644 425.644 0 0 0-142.62 102.22l118.14 204.63a213.397 213.397 0 0 1 78.67-94.21zm117.56 604.72H512zm-97.25-236.73a213.284 213.284 0 0 1-89.54-86.81L142.48 298.6c-36.35 62.81-57.13 135.68-57.13 213.42 0 203.81 142.93 374.22 333.95 416.55h.04l118.19-204.71a213.315 213.315 0 0 1-122.77-21.91z\",fill:\"currentColor\"},null,-1),nC=[Zw,eC,tC];function oC(e,t,n,o,l,u){return b(),F(\"svg\",Qw,nC)}var lC=V(Jw,[[\"render\",oC],[\"__file\",\"chrome-filled.vue\"]]),uC={name:\"CircleCheckFilled\"},aC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rC=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z\"},null,-1),sC=[rC];function iC(e,t,n,o,l,u){return b(),F(\"svg\",aC,sC)}var cC=V(uC,[[\"render\",iC],[\"__file\",\"circle-check-filled.vue\"]]),dC={name:\"CircleCheck\"},fC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),vC=f(\"path\",{fill:\"currentColor\",d:\"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z\"},null,-1),hC=[pC,vC];function _C(e,t,n,o,l,u){return b(),F(\"svg\",fC,hC)}var Yr=V(dC,[[\"render\",_C],[\"__file\",\"circle-check.vue\"]]),mC={name:\"CircleCloseFilled\"},gC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bC=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z\"},null,-1),yC=[bC];function wC(e,t,n,o,l,u){return b(),F(\"svg\",gC,yC)}var hc=V(mC,[[\"render\",wC],[\"__file\",\"circle-close-filled.vue\"]]),CC={name:\"CircleClose\"},EC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FC=f(\"path\",{fill:\"currentColor\",d:\"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z\"},null,-1),AC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),DC=[FC,AC];function BC(e,t,n,o,l,u){return b(),F(\"svg\",EC,DC)}var va=V(CC,[[\"render\",BC],[\"__file\",\"circle-close.vue\"]]),xC={name:\"CirclePlusFilled\"},$C={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SC=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z\"},null,-1),kC=[SC];function PC(e,t,n,o,l,u){return b(),F(\"svg\",$C,kC)}var LC=V(xC,[[\"render\",PC],[\"__file\",\"circle-plus-filled.vue\"]]),TC={name:\"CirclePlus\"},zC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MC=f(\"path\",{fill:\"currentColor\",d:\"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),VC=f(\"path\",{fill:\"currentColor\",d:\"M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z\"},null,-1),IC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),HC=[MC,VC,IC];function RC(e,t,n,o,l,u){return b(),F(\"svg\",zC,HC)}var NC=V(TC,[[\"render\",RC],[\"__file\",\"circle-plus.vue\"]]),OC={name:\"Clock\"},UC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),qC=f(\"path\",{fill:\"currentColor\",d:\"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"},null,-1),jC=f(\"path\",{fill:\"currentColor\",d:\"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32z\"},null,-1),KC=[WC,qC,jC];function GC(e,t,n,o,l,u){return b(),F(\"svg\",UC,KC)}var YC=V(OC,[[\"render\",GC],[\"__file\",\"clock.vue\"]]),XC={name:\"CloseBold\"},JC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QC=f(\"path\",{fill:\"currentColor\",d:\"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z\"},null,-1),ZC=[QC];function eE(e,t,n,o,l,u){return b(),F(\"svg\",JC,ZC)}var tE=V(XC,[[\"render\",eE],[\"__file\",\"close-bold.vue\"]]),nE={name:\"Close\"},oE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lE=f(\"path\",{fill:\"currentColor\",d:\"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"},null,-1),uE=[lE];function aE(e,t,n,o,l,u){return b(),F(\"svg\",oE,uE)}var $l=V(nE,[[\"render\",aE],[\"__file\",\"close.vue\"]]),rE={name:\"Cloudy\"},sE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iE=f(\"path\",{fill:\"currentColor\",d:\"M598.4 831.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 831.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 381.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z\"},null,-1),cE=[iE];function dE(e,t,n,o,l,u){return b(),F(\"svg\",sE,cE)}var fE=V(rE,[[\"render\",dE],[\"__file\",\"cloudy.vue\"]]),pE={name:\"CoffeeCup\"},vE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hE=f(\"path\",{fill:\"currentColor\",d:\"M768 192a192 192 0 1 1-8 383.808A256.128 256.128 0 0 1 512 768H320A256 256 0 0 1 64 512V160a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v32zm0 64v256a128 128 0 1 0 0-256zM96 832h640a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-640v320a192 192 0 0 0 192 192h192a192 192 0 0 0 192-192V192H128z\"},null,-1),_E=[hE];function mE(e,t,n,o,l,u){return b(),F(\"svg\",vE,_E)}var gE=V(pE,[[\"render\",mE],[\"__file\",\"coffee-cup.vue\"]]),bE={name:\"Coffee\"},yE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wE=f(\"path\",{fill:\"currentColor\",d:\"M822.592 192h14.272a32 32 0 0 1 31.616 26.752l21.312 128A32 32 0 0 1 858.24 384h-49.344l-39.04 546.304A32 32 0 0 1 737.92 960H285.824a32 32 0 0 1-32-29.696L214.912 384H165.76a32 32 0 0 1-31.552-37.248l21.312-128A32 32 0 0 1 187.136 192h14.016l-6.72-93.696A32 32 0 0 1 226.368 64h571.008a32 32 0 0 1 31.936 34.304L822.592 192zm-64.128 0 4.544-64H260.736l4.544 64h493.184zm-548.16 128H820.48l-10.688-64H214.208l-10.688 64h6.784zm68.736 64 36.544 512H708.16l36.544-512H279.04z\"},null,-1),CE=[wE];function EE(e,t,n,o,l,u){return b(),F(\"svg\",yE,CE)}var FE=V(bE,[[\"render\",EE],[\"__file\",\"coffee.vue\"]]),AE={name:\"Coin\"},DE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BE=f(\"path\",{fill:\"currentColor\",d:\"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z\"},null,-1),xE=f(\"path\",{fill:\"currentColor\",d:\"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z\"},null,-1),$E=f(\"path\",{fill:\"currentColor\",d:\"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z\"},null,-1),SE=[BE,xE,$E];function kE(e,t,n,o,l,u){return b(),F(\"svg\",DE,SE)}var PE=V(AE,[[\"render\",kE],[\"__file\",\"coin.vue\"]]),LE={name:\"ColdDrink\"},TE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zE=f(\"path\",{fill:\"currentColor\",d:\"M768 64a192 192 0 1 1-69.952 370.88L480 725.376V896h96a32 32 0 1 1 0 64H320a32 32 0 1 1 0-64h96V725.376L76.8 273.536a64 64 0 0 1-12.8-38.4v-10.688a32 32 0 0 1 32-32h71.808l-65.536-83.84a32 32 0 0 1 50.432-39.424l96.256 123.264h337.728A192.064 192.064 0 0 1 768 64zM656.896 192.448H800a32 32 0 0 1 32 32v10.624a64 64 0 0 1-12.8 38.4l-80.448 107.2a128 128 0 1 0-81.92-188.16v-.064zm-357.888 64 129.472 165.76a32 32 0 0 1-50.432 39.36l-160.256-205.12H144l304 404.928 304-404.928H299.008z\"},null,-1),ME=[zE];function VE(e,t,n,o,l,u){return b(),F(\"svg\",TE,ME)}var IE=V(LE,[[\"render\",VE],[\"__file\",\"cold-drink.vue\"]]),HE={name:\"CollectionTag\"},RE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NE=f(\"path\",{fill:\"currentColor\",d:\"M256 128v698.88l196.032-156.864a96 96 0 0 1 119.936 0L768 826.816V128H256zm-32-64h576a32 32 0 0 1 32 32v797.44a32 32 0 0 1-51.968 24.96L531.968 720a32 32 0 0 0-39.936 0L243.968 918.4A32 32 0 0 1 192 893.44V96a32 32 0 0 1 32-32z\"},null,-1),OE=[NE];function UE(e,t,n,o,l,u){return b(),F(\"svg\",RE,OE)}var WE=V(HE,[[\"render\",UE],[\"__file\",\"collection-tag.vue\"]]),qE={name:\"Collection\"},jE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KE=f(\"path\",{fill:\"currentColor\",d:\"M192 736h640V128H256a64 64 0 0 0-64 64v544zm64-672h608a32 32 0 0 1 32 32v672a32 32 0 0 1-32 32H160l-32 57.536V192A128 128 0 0 1 256 64z\"},null,-1),GE=f(\"path\",{fill:\"currentColor\",d:\"M240 800a48 48 0 1 0 0 96h592v-96H240zm0-64h656v160a64 64 0 0 1-64 64H240a112 112 0 0 1 0-224zm144-608v250.88l96-76.8 96 76.8V128H384zm-64-64h320v381.44a32 32 0 0 1-51.968 24.96L480 384l-108.032 86.4A32 32 0 0 1 320 445.44V64z\"},null,-1),YE=[KE,GE];function XE(e,t,n,o,l,u){return b(),F(\"svg\",jE,YE)}var JE=V(qE,[[\"render\",XE],[\"__file\",\"collection.vue\"]]),QE={name:\"Comment\"},ZE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eF=f(\"path\",{fill:\"currentColor\",d:\"M736 504a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zM128 128v640h192v160l224-160h352V128H128z\"},null,-1),tF=[eF];function nF(e,t,n,o,l,u){return b(),F(\"svg\",ZE,tF)}var oF=V(QE,[[\"render\",nF],[\"__file\",\"comment.vue\"]]),lF={name:\"Compass\"},uF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aF=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),rF=f(\"path\",{fill:\"currentColor\",d:\"M725.888 315.008C676.48 428.672 624 513.28 568.576 568.64c-55.424 55.424-139.968 107.904-253.568 157.312a12.8 12.8 0 0 1-16.896-16.832c49.536-113.728 102.016-198.272 157.312-253.632 55.36-55.296 139.904-107.776 253.632-157.312a12.8 12.8 0 0 1 16.832 16.832z\"},null,-1),sF=[aF,rF];function iF(e,t,n,o,l,u){return b(),F(\"svg\",uF,sF)}var cF=V(lF,[[\"render\",iF],[\"__file\",\"compass.vue\"]]),dF={name:\"Connection\"},fF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pF=f(\"path\",{fill:\"currentColor\",d:\"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192h192z\"},null,-1),vF=f(\"path\",{fill:\"currentColor\",d:\"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.064 192.064 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192H384z\"},null,-1),hF=[pF,vF];function _F(e,t,n,o,l,u){return b(),F(\"svg\",fF,hF)}var mF=V(dF,[[\"render\",_F],[\"__file\",\"connection.vue\"]]),gF={name:\"Coordinate\"},bF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yF=f(\"path\",{fill:\"currentColor\",d:\"M480 512h64v320h-64z\"},null,-1),wF=f(\"path\",{fill:\"currentColor\",d:\"M192 896h640a64 64 0 0 0-64-64H256a64 64 0 0 0-64 64zm64-128h512a128 128 0 0 1 128 128v64H128v-64a128 128 0 0 1 128-128zm256-256a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),CF=[yF,wF];function EF(e,t,n,o,l,u){return b(),F(\"svg\",bF,CF)}var FF=V(gF,[[\"render\",EF],[\"__file\",\"coordinate.vue\"]]),AF={name:\"CopyDocument\"},DF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BF=f(\"path\",{fill:\"currentColor\",d:\"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64h64z\"},null,-1),xF=f(\"path\",{fill:\"currentColor\",d:\"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H384zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64z\"},null,-1),$F=[BF,xF];function SF(e,t,n,o,l,u){return b(),F(\"svg\",DF,$F)}var kF=V(AF,[[\"render\",SF],[\"__file\",\"copy-document.vue\"]]),PF={name:\"Cpu\"},LF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TF=f(\"path\",{fill:\"currentColor\",d:\"M320 256a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H320zm0-64h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H320a128 128 0 0 1-128-128V320a128 128 0 0 1 128-128z\"},null,-1),zF=f(\"path\",{fill:\"currentColor\",d:\"M512 64a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm-320 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 896a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm160 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm-320 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zM64 512a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0-160a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0 320a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm896-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0 320a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32z\"},null,-1),MF=[TF,zF];function VF(e,t,n,o,l,u){return b(),F(\"svg\",LF,MF)}var IF=V(PF,[[\"render\",VF],[\"__file\",\"cpu.vue\"]]),HF={name:\"CreditCard\"},RF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NF=f(\"path\",{fill:\"currentColor\",d:\"M896 324.096c0-42.368-2.496-55.296-9.536-68.48a52.352 52.352 0 0 0-22.144-22.08c-13.12-7.04-26.048-9.536-68.416-9.536H228.096c-42.368 0-55.296 2.496-68.48 9.536a52.352 52.352 0 0 0-22.08 22.144c-7.04 13.12-9.536 26.048-9.536 68.416v375.808c0 42.368 2.496 55.296 9.536 68.48a52.352 52.352 0 0 0 22.144 22.08c13.12 7.04 26.048 9.536 68.416 9.536h567.808c42.368 0 55.296-2.496 68.48-9.536a52.352 52.352 0 0 0 22.08-22.144c7.04-13.12 9.536-26.048 9.536-68.416V324.096zm64 0v375.808c0 57.088-5.952 77.76-17.088 98.56-11.136 20.928-27.52 37.312-48.384 48.448-20.864 11.136-41.6 17.088-98.56 17.088H228.032c-57.088 0-77.76-5.952-98.56-17.088a116.288 116.288 0 0 1-48.448-48.384c-11.136-20.864-17.088-41.6-17.088-98.56V324.032c0-57.088 5.952-77.76 17.088-98.56 11.136-20.928 27.52-37.312 48.384-48.448 20.864-11.136 41.6-17.088 98.56-17.088H795.84c57.088 0 77.76 5.952 98.56 17.088 20.928 11.136 37.312 27.52 48.448 48.384 11.136 20.864 17.088 41.6 17.088 98.56z\"},null,-1),OF=f(\"path\",{fill:\"currentColor\",d:\"M64 320h896v64H64v-64zm0 128h896v64H64v-64zm128 192h256v64H192z\"},null,-1),UF=[NF,OF];function WF(e,t,n,o,l,u){return b(),F(\"svg\",RF,UF)}var qF=V(HF,[[\"render\",WF],[\"__file\",\"credit-card.vue\"]]),jF={name:\"Crop\"},KF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GF=f(\"path\",{fill:\"currentColor\",d:\"M256 768h672a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V96a32 32 0 0 1 64 0v672z\"},null,-1),YF=f(\"path\",{fill:\"currentColor\",d:\"M832 224v704a32 32 0 1 1-64 0V256H96a32 32 0 0 1 0-64h704a32 32 0 0 1 32 32z\"},null,-1),XF=[GF,YF];function JF(e,t,n,o,l,u){return b(),F(\"svg\",KF,XF)}var QF=V(jF,[[\"render\",JF],[\"__file\",\"crop.vue\"]]),ZF={name:\"DArrowLeft\"},eA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tA=f(\"path\",{fill:\"currentColor\",d:\"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z\"},null,-1),nA=[tA];function oA(e,t,n,o,l,u){return b(),F(\"svg\",eA,nA)}var Pf=V(ZF,[[\"render\",oA],[\"__file\",\"d-arrow-left.vue\"]]),lA={name:\"DArrowRight\"},uA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aA=f(\"path\",{fill:\"currentColor\",d:\"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688zm-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z\"},null,-1),rA=[aA];function sA(e,t,n,o,l,u){return b(),F(\"svg\",uA,rA)}var Lf=V(lA,[[\"render\",sA],[\"__file\",\"d-arrow-right.vue\"]]),iA={name:\"DCaret\"},cA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dA=f(\"path\",{fill:\"currentColor\",d:\"m512 128 288 320H224l288-320zM224 576h576L512 896 224 576z\"},null,-1),fA=[dA];function pA(e,t,n,o,l,u){return b(),F(\"svg\",cA,fA)}var vA=V(iA,[[\"render\",pA],[\"__file\",\"d-caret.vue\"]]),hA={name:\"DataAnalysis\"},_A={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mA=f(\"path\",{fill:\"currentColor\",d:\"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216zM832 192H192v512h640V192zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32z\"},null,-1),gA=[mA];function bA(e,t,n,o,l,u){return b(),F(\"svg\",_A,gA)}var yA=V(hA,[[\"render\",bA],[\"__file\",\"data-analysis.vue\"]]),wA={name:\"DataBoard\"},CA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EA=f(\"path\",{fill:\"currentColor\",d:\"M32 128h960v64H32z\"},null,-1),FA=f(\"path\",{fill:\"currentColor\",d:\"M192 192v512h640V192H192zm-64-64h768v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V128z\"},null,-1),AA=f(\"path\",{fill:\"currentColor\",d:\"M322.176 960H248.32l144.64-250.56 55.424 32L322.176 960zm453.888 0h-73.856L576 741.44l55.424-32L776.064 960z\"},null,-1),DA=[EA,FA,AA];function BA(e,t,n,o,l,u){return b(),F(\"svg\",CA,DA)}var xA=V(wA,[[\"render\",BA],[\"__file\",\"data-board.vue\"]]),$A={name:\"DataLine\"},SA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kA=f(\"path\",{fill:\"currentColor\",d:\"M359.168 768H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216l110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192zM832 192H192v512h640V192zM342.656 534.656a32 32 0 1 1-45.312-45.312L444.992 341.76l125.44 94.08L679.04 300.032a32 32 0 1 1 49.92 39.936L581.632 524.224 451.008 426.24 342.656 534.592z\"},null,-1),PA=[kA];function LA(e,t,n,o,l,u){return b(),F(\"svg\",SA,PA)}var TA=V($A,[[\"render\",LA],[\"__file\",\"data-line.vue\"]]),zA={name:\"DeleteFilled\"},MA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},VA=f(\"path\",{fill:\"currentColor\",d:\"M352 192V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64H96a32 32 0 0 1 0-64h256zm64 0h192v-64H416v64zM192 960a32 32 0 0 1-32-32V256h704v672a32 32 0 0 1-32 32H192zm224-192a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32zm192 0a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32z\"},null,-1),IA=[VA];function HA(e,t,n,o,l,u){return b(),F(\"svg\",MA,IA)}var RA=V(zA,[[\"render\",HA],[\"__file\",\"delete-filled.vue\"]]),NA={name:\"DeleteLocation\"},OA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},UA=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),WA=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),qA=f(\"path\",{fill:\"currentColor\",d:\"M384 384h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z\"},null,-1),jA=[UA,WA,qA];function KA(e,t,n,o,l,u){return b(),F(\"svg\",OA,jA)}var GA=V(NA,[[\"render\",KA],[\"__file\",\"delete-location.vue\"]]),YA={name:\"Delete\"},XA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JA=f(\"path\",{fill:\"currentColor\",d:\"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z\"},null,-1),QA=[JA];function ZA(e,t,n,o,l,u){return b(),F(\"svg\",XA,QA)}var Tf=V(YA,[[\"render\",ZA],[\"__file\",\"delete.vue\"]]),eD={name:\"Dessert\"},tD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nD=f(\"path\",{fill:\"currentColor\",d:\"M128 416v-48a144 144 0 0 1 168.64-141.888 224.128 224.128 0 0 1 430.72 0A144 144 0 0 1 896 368v48a384 384 0 0 1-352 382.72V896h-64v-97.28A384 384 0 0 1 128 416zm287.104-32.064h193.792a143.808 143.808 0 0 1 58.88-132.736 160.064 160.064 0 0 0-311.552 0 143.808 143.808 0 0 1 58.88 132.8zm-72.896 0a72 72 0 1 0-140.48 0h140.48zm339.584 0h140.416a72 72 0 1 0-140.48 0zM512 736a320 320 0 0 0 318.4-288.064H193.6A320 320 0 0 0 512 736zM384 896.064h256a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64z\"},null,-1),oD=[nD];function lD(e,t,n,o,l,u){return b(),F(\"svg\",tD,oD)}var uD=V(eD,[[\"render\",lD],[\"__file\",\"dessert.vue\"]]),aD={name:\"Discount\"},rD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sD=f(\"path\",{fill:\"currentColor\",d:\"M224 704h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336V704zm0 64v128h576V768H224zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z\"},null,-1),iD=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),cD=[sD,iD];function dD(e,t,n,o,l,u){return b(),F(\"svg\",rD,cD)}var fD=V(aD,[[\"render\",dD],[\"__file\",\"discount.vue\"]]),pD={name:\"DishDot\"},vD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hD=f(\"path\",{fill:\"currentColor\",d:\"m384.064 274.56.064-50.688A128 128 0 0 1 512.128 96c70.528 0 127.68 57.152 127.68 127.68v50.752A448.192 448.192 0 0 1 955.392 768H68.544A448.192 448.192 0 0 1 384 274.56zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-128h768a384 384 0 1 0-768 0zm447.808-448v-32.32a63.68 63.68 0 0 0-63.68-63.68 64 64 0 0 0-64 63.936V256h127.68z\"},null,-1),_D=[hD];function mD(e,t,n,o,l,u){return b(),F(\"svg\",vD,_D)}var gD=V(pD,[[\"render\",mD],[\"__file\",\"dish-dot.vue\"]]),bD={name:\"Dish\"},yD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wD=f(\"path\",{fill:\"currentColor\",d:\"M480 257.152V192h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96v65.152A448 448 0 0 1 955.52 768H68.48A448 448 0 0 1 480 257.152zM128 704h768a384 384 0 1 0-768 0zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64z\"},null,-1),CD=[wD];function ED(e,t,n,o,l,u){return b(),F(\"svg\",yD,CD)}var FD=V(bD,[[\"render\",ED],[\"__file\",\"dish.vue\"]]),AD={name:\"DocumentAdd\"},DD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BD=f(\"path\",{fill:\"currentColor\",d:\"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm320 512V448h64v128h128v64H544v128h-64V640H352v-64h128z\"},null,-1),xD=[BD];function $D(e,t,n,o,l,u){return b(),F(\"svg\",DD,xD)}var SD=V(AD,[[\"render\",$D],[\"__file\",\"document-add.vue\"]]),kD={name:\"DocumentChecked\"},PD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LD=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm318.4 582.144 180.992-180.992L704.64 510.4 478.4 736.64 320 578.304l45.248-45.312L478.4 646.144z\"},null,-1),TD=[LD];function zD(e,t,n,o,l,u){return b(),F(\"svg\",PD,TD)}var MD=V(kD,[[\"render\",zD],[\"__file\",\"document-checked.vue\"]]),VD={name:\"DocumentCopy\"},ID={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HD=f(\"path\",{fill:\"currentColor\",d:\"M128 320v576h576V320H128zm-32-64h640a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32zM960 96v704a32 32 0 0 1-32 32h-96v-64h64V128H384v64h-64V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32zM256 672h320v64H256v-64zm0-192h320v64H256v-64z\"},null,-1),RD=[HD];function ND(e,t,n,o,l,u){return b(),F(\"svg\",ID,RD)}var OD=V(VD,[[\"render\",ND],[\"__file\",\"document-copy.vue\"]]),UD={name:\"DocumentDelete\"},WD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qD=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm308.992 546.304-90.496-90.624 45.248-45.248 90.56 90.496 90.496-90.432 45.248 45.248-90.496 90.56 90.496 90.496-45.248 45.248-90.496-90.496-90.56 90.496-45.248-45.248 90.496-90.496z\"},null,-1),jD=[qD];function KD(e,t,n,o,l,u){return b(),F(\"svg\",WD,jD)}var GD=V(UD,[[\"render\",KD],[\"__file\",\"document-delete.vue\"]]),YD={name:\"DocumentRemove\"},XD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JD=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm192 512h320v64H352v-64z\"},null,-1),QD=[JD];function ZD(e,t,n,o,l,u){return b(),F(\"svg\",XD,QD)}var eB=V(YD,[[\"render\",ZD],[\"__file\",\"document-remove.vue\"]]),tB={name:\"Document\"},nB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oB=f(\"path\",{fill:\"currentColor\",d:\"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z\"},null,-1),lB=[oB];function uB(e,t,n,o,l,u){return b(),F(\"svg\",nB,lB)}var zf=V(tB,[[\"render\",uB],[\"__file\",\"document.vue\"]]),aB={name:\"Download\"},rB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sB=f(\"path\",{fill:\"currentColor\",d:\"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z\"},null,-1),iB=[sB];function cB(e,t,n,o,l,u){return b(),F(\"svg\",rB,iB)}var dB=V(aB,[[\"render\",cB],[\"__file\",\"download.vue\"]]),fB={name:\"Drizzling\"},pB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vB=f(\"path\",{fill:\"currentColor\",d:\"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM288 800h64v64h-64v-64zm192 0h64v64h-64v-64zm-96 96h64v64h-64v-64zm192 0h64v64h-64v-64zm96-96h64v64h-64v-64z\"},null,-1),hB=[vB];function _B(e,t,n,o,l,u){return b(),F(\"svg\",pB,hB)}var mB=V(fB,[[\"render\",_B],[\"__file\",\"drizzling.vue\"]]),gB={name:\"EditPen\"},bB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yB=f(\"path\",{d:\"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696L175.168 732.8zM455.04 229.248l193.92 112 56.704-98.112-193.984-112-56.64 98.112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336L104.32 708.8zm384 254.272v-64h448v64h-448z\",fill:\"currentColor\"},null,-1),wB=[yB];function CB(e,t,n,o,l,u){return b(),F(\"svg\",bB,wB)}var EB=V(gB,[[\"render\",CB],[\"__file\",\"edit-pen.vue\"]]),FB={name:\"Edit\"},AB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DB=f(\"path\",{fill:\"currentColor\",d:\"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z\"},null,-1),BB=f(\"path\",{fill:\"currentColor\",d:\"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z\"},null,-1),xB=[DB,BB];function $B(e,t,n,o,l,u){return b(),F(\"svg\",AB,xB)}var SB=V(FB,[[\"render\",$B],[\"__file\",\"edit.vue\"]]),kB={name:\"ElemeFilled\"},PB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LB=f(\"path\",{fill:\"currentColor\",d:\"M176 64h672c61.824 0 112 50.176 112 112v672a112 112 0 0 1-112 112H176A112 112 0 0 1 64 848V176c0-61.824 50.176-112 112-112zm150.528 173.568c-152.896 99.968-196.544 304.064-97.408 456.96a330.688 330.688 0 0 0 456.96 96.64c9.216-5.888 17.6-11.776 25.152-18.56a18.24 18.24 0 0 0 4.224-24.32L700.352 724.8a47.552 47.552 0 0 0-65.536-14.272A234.56 234.56 0 0 1 310.592 641.6C240 533.248 271.104 387.968 379.456 316.48a234.304 234.304 0 0 1 276.352 15.168c1.664.832 2.56 2.56 3.392 4.224 5.888 8.384 3.328 19.328-5.12 25.216L456.832 489.6a47.552 47.552 0 0 0-14.336 65.472l16 24.384c5.888 8.384 16.768 10.88 25.216 5.056l308.224-199.936a19.584 19.584 0 0 0 6.72-23.488v-.896c-4.992-9.216-10.048-17.6-15.104-26.88-99.968-151.168-304.064-194.88-456.96-95.744zM786.88 504.704l-62.208 40.32c-8.32 5.888-10.88 16.768-4.992 25.216L760 632.32c5.888 8.448 16.768 11.008 25.152 5.12l31.104-20.16a55.36 55.36 0 0 0 16-76.48l-20.224-31.04a19.52 19.52 0 0 0-25.152-5.12z\"},null,-1),TB=[LB];function zB(e,t,n,o,l,u){return b(),F(\"svg\",PB,TB)}var MB=V(kB,[[\"render\",zB],[\"__file\",\"eleme-filled.vue\"]]),VB={name:\"Eleme\"},IB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HB=f(\"path\",{fill:\"currentColor\",d:\"M300.032 188.8c174.72-113.28 408-63.36 522.24 109.44 5.76 10.56 11.52 20.16 17.28 30.72v.96a22.4 22.4 0 0 1-7.68 26.88l-352.32 228.48c-9.6 6.72-22.08 3.84-28.8-5.76l-18.24-27.84a54.336 54.336 0 0 1 16.32-74.88l225.6-146.88c9.6-6.72 12.48-19.2 5.76-28.8-.96-1.92-1.92-3.84-3.84-4.8a267.84 267.84 0 0 0-315.84-17.28c-123.84 81.6-159.36 247.68-78.72 371.52a268.096 268.096 0 0 0 370.56 78.72 54.336 54.336 0 0 1 74.88 16.32l17.28 26.88c5.76 9.6 3.84 21.12-4.8 27.84-8.64 7.68-18.24 14.4-28.8 21.12a377.92 377.92 0 0 1-522.24-110.4c-113.28-174.72-63.36-408 111.36-522.24zm526.08 305.28a22.336 22.336 0 0 1 28.8 5.76l23.04 35.52a63.232 63.232 0 0 1-18.24 87.36l-35.52 23.04c-9.6 6.72-22.08 3.84-28.8-5.76l-46.08-71.04c-6.72-9.6-3.84-22.08 5.76-28.8l71.04-46.08z\"},null,-1),RB=[HB];function NB(e,t,n,o,l,u){return b(),F(\"svg\",IB,RB)}var OB=V(VB,[[\"render\",NB],[\"__file\",\"eleme.vue\"]]),UB={name:\"ElementPlus\"},WB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qB=f(\"path\",{d:\"M839.7 734.7c0 33.3-17.9 41-17.9 41S519.7 949.8 499.2 960c-10.2 5.1-20.5 5.1-30.7 0 0 0-314.9-184.3-325.1-192-5.1-5.1-10.2-12.8-12.8-20.5V368.6c0-17.9 20.5-28.2 20.5-28.2L466 158.6c12.8-5.1 25.6-5.1 38.4 0 0 0 279 161.3 309.8 179.2 17.9 7.7 28.2 25.6 25.6 46.1-.1-5-.1 317.5-.1 350.8zM714.2 371.2c-64-35.8-217.6-125.4-217.6-125.4-7.7-5.1-20.5-5.1-30.7 0L217.6 389.1s-17.9 10.2-17.9 23v297c0 5.1 5.1 12.8 7.7 17.9 7.7 5.1 256 148.5 256 148.5 7.7 5.1 17.9 5.1 25.6 0 15.4-7.7 250.9-145.9 250.9-145.9s12.8-5.1 12.8-30.7v-74.2l-276.5 169v-64c0-17.9 7.7-30.7 20.5-46.1L745 535c5.1-7.7 10.2-20.5 10.2-30.7v-66.6l-279 169v-69.1c0-15.4 5.1-30.7 17.9-38.4l220.1-128zM919 135.7c0-5.1-5.1-7.7-7.7-7.7h-58.9V66.6c0-5.1-5.1-5.1-10.2-5.1l-30.7 5.1c-5.1 0-5.1 2.6-5.1 5.1V128h-56.3c-5.1 0-5.1 5.1-7.7 5.1v38.4h69.1v64c0 5.1 5.1 5.1 10.2 5.1l30.7-5.1c5.1 0 5.1-2.6 5.1-5.1v-56.3h64l-2.5-38.4z\",fill:\"currentColor\"},null,-1),jB=[qB];function KB(e,t,n,o,l,u){return b(),F(\"svg\",WB,jB)}var GB=V(UB,[[\"render\",KB],[\"__file\",\"element-plus.vue\"]]),YB={name:\"Expand\"},XB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JB=f(\"path\",{fill:\"currentColor\",d:\"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"},null,-1),QB=[JB];function ZB(e,t,n,o,l,u){return b(),F(\"svg\",XB,QB)}var ex=V(YB,[[\"render\",ZB],[\"__file\",\"expand.vue\"]]),tx={name:\"Failed\"},nx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ox=f(\"path\",{fill:\"currentColor\",d:\"m557.248 608 135.744-135.744-45.248-45.248-135.68 135.744-135.808-135.68-45.248 45.184L466.752 608l-135.68 135.68 45.184 45.312L512 653.248l135.744 135.744 45.248-45.248L557.312 608zM704 192h160v736H160V192h160v64h384v-64zm-320 0V96h256v96H384z\"},null,-1),lx=[ox];function ux(e,t,n,o,l,u){return b(),F(\"svg\",nx,lx)}var ax=V(tx,[[\"render\",ux],[\"__file\",\"failed.vue\"]]),rx={name:\"Female\"},sx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ix=f(\"path\",{fill:\"currentColor\",d:\"M512 640a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),cx=f(\"path\",{fill:\"currentColor\",d:\"M512 640q32 0 32 32v256q0 32-32 32t-32-32V672q0-32 32-32z\"},null,-1),dx=f(\"path\",{fill:\"currentColor\",d:\"M352 800h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z\"},null,-1),fx=[ix,cx,dx];function px(e,t,n,o,l,u){return b(),F(\"svg\",sx,fx)}var vx=V(rx,[[\"render\",px],[\"__file\",\"female.vue\"]]),hx={name:\"Files\"},_x={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mx=f(\"path\",{fill:\"currentColor\",d:\"M128 384v448h768V384H128zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32zm64-128h704v64H160zm96-128h512v64H256z\"},null,-1),gx=[mx];function bx(e,t,n,o,l,u){return b(),F(\"svg\",_x,gx)}var yx=V(hx,[[\"render\",bx],[\"__file\",\"files.vue\"]]),wx={name:\"Film\"},Cx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ex=f(\"path\",{fill:\"currentColor\",d:\"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z\"},null,-1),Fx=f(\"path\",{fill:\"currentColor\",d:\"M320 288V128h64v352h256V128h64v160h160v64H704v128h160v64H704v128h160v64H704v160h-64V544H384v352h-64V736H128v-64h192V544H128v-64h192V352H128v-64h192z\"},null,-1),Ax=[Ex,Fx];function Dx(e,t,n,o,l,u){return b(),F(\"svg\",Cx,Ax)}var Bx=V(wx,[[\"render\",Dx],[\"__file\",\"film.vue\"]]),xx={name:\"Filter\"},$x={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Sx=f(\"path\",{fill:\"currentColor\",d:\"M384 523.392V928a32 32 0 0 0 46.336 28.608l192-96A32 32 0 0 0 640 832V523.392l280.768-343.104a32 32 0 1 0-49.536-40.576l-288 352A32 32 0 0 0 576 512v300.224l-128 64V512a32 32 0 0 0-7.232-20.288L195.52 192H704a32 32 0 1 0 0-64H128a32 32 0 0 0-24.768 52.288L384 523.392z\"},null,-1),kx=[Sx];function Px(e,t,n,o,l,u){return b(),F(\"svg\",$x,kx)}var Lx=V(xx,[[\"render\",Px],[\"__file\",\"filter.vue\"]]),Tx={name:\"Finished\"},zx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Mx=f(\"path\",{fill:\"currentColor\",d:\"M280.768 753.728 691.456 167.04a32 32 0 1 1 52.416 36.672L314.24 817.472a32 32 0 0 1-45.44 7.296l-230.4-172.8a32 32 0 0 1 38.4-51.2l203.968 152.96zM736 448a32 32 0 1 1 0-64h192a32 32 0 1 1 0 64H736zM608 640a32 32 0 0 1 0-64h319.936a32 32 0 1 1 0 64H608zM480 832a32 32 0 1 1 0-64h447.936a32 32 0 1 1 0 64H480z\"},null,-1),Vx=[Mx];function Ix(e,t,n,o,l,u){return b(),F(\"svg\",zx,Vx)}var Hx=V(Tx,[[\"render\",Ix],[\"__file\",\"finished.vue\"]]),Rx={name:\"FirstAidKit\"},Nx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ox=f(\"path\",{fill:\"currentColor\",d:\"M192 256a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H192zm0-64h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z\"},null,-1),Ux=f(\"path\",{fill:\"currentColor\",d:\"M544 512h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96zM352 128v64h320v-64H352zm-32-64h384a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32H320a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),Wx=[Ox,Ux];function qx(e,t,n,o,l,u){return b(),F(\"svg\",Nx,Wx)}var jx=V(Rx,[[\"render\",qx],[\"__file\",\"first-aid-kit.vue\"]]),Kx={name:\"Flag\"},Gx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Yx=f(\"path\",{fill:\"currentColor\",d:\"M288 128h608L736 384l160 256H288v320h-96V64h96v64z\"},null,-1),Xx=[Yx];function Jx(e,t,n,o,l,u){return b(),F(\"svg\",Gx,Xx)}var Qx=V(Kx,[[\"render\",Jx],[\"__file\",\"flag.vue\"]]),Zx={name:\"Fold\"},e$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},t$=f(\"path\",{fill:\"currentColor\",d:\"M896 192H128v128h768V192zm0 256H384v128h512V448zm0 256H128v128h768V704zM320 384 128 512l192 128V384z\"},null,-1),n$=[t$];function o$(e,t,n,o,l,u){return b(),F(\"svg\",e$,n$)}var l$=V(Zx,[[\"render\",o$],[\"__file\",\"fold.vue\"]]),u$={name:\"FolderAdd\"},a$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},r$=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm384 416V416h64v128h128v64H544v128h-64V608H352v-64h128z\"},null,-1),s$=[r$];function i$(e,t,n,o,l,u){return b(),F(\"svg\",a$,s$)}var c$=V(u$,[[\"render\",i$],[\"__file\",\"folder-add.vue\"]]),d$={name:\"FolderChecked\"},f$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},p$=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm414.08 502.144 180.992-180.992L736.32 494.4 510.08 720.64l-158.4-158.336 45.248-45.312L510.08 630.144z\"},null,-1),v$=[p$];function h$(e,t,n,o,l,u){return b(),F(\"svg\",f$,v$)}var _$=V(d$,[[\"render\",h$],[\"__file\",\"folder-checked.vue\"]]),m$={name:\"FolderDelete\"},g$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},b$=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm370.752 448-90.496-90.496 45.248-45.248L512 530.752l90.496-90.496 45.248 45.248L557.248 576l90.496 90.496-45.248 45.248L512 621.248l-90.496 90.496-45.248-45.248L466.752 576z\"},null,-1),y$=[b$];function w$(e,t,n,o,l,u){return b(),F(\"svg\",g$,y$)}var C$=V(m$,[[\"render\",w$],[\"__file\",\"folder-delete.vue\"]]),E$={name:\"FolderOpened\"},F$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},A$=f(\"path\",{fill:\"currentColor\",d:\"M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384H832zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896z\"},null,-1),D$=[A$];function B$(e,t,n,o,l,u){return b(),F(\"svg\",F$,D$)}var x$=V(E$,[[\"render\",B$],[\"__file\",\"folder-opened.vue\"]]),$$={name:\"FolderRemove\"},S$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},k$=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm256 416h320v64H352v-64z\"},null,-1),P$=[k$];function L$(e,t,n,o,l,u){return b(),F(\"svg\",S$,P$)}var T$=V($$,[[\"render\",L$],[\"__file\",\"folder-remove.vue\"]]),z$={name:\"Folder\"},M$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},V$=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32z\"},null,-1),I$=[V$];function H$(e,t,n,o,l,u){return b(),F(\"svg\",M$,I$)}var R$=V(z$,[[\"render\",H$],[\"__file\",\"folder.vue\"]]),N$={name:\"Food\"},O$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},U$=f(\"path\",{fill:\"currentColor\",d:\"M128 352.576V352a288 288 0 0 1 491.072-204.224 192 192 0 0 1 274.24 204.48 64 64 0 0 1 57.216 74.24C921.6 600.512 850.048 710.656 736 756.992V800a96 96 0 0 1-96 96H384a96 96 0 0 1-96-96v-43.008c-114.048-46.336-185.6-156.48-214.528-330.496A64 64 0 0 1 128 352.64zm64-.576h64a160 160 0 0 1 320 0h64a224 224 0 0 0-448 0zm128 0h192a96 96 0 0 0-192 0zm439.424 0h68.544A128.256 128.256 0 0 0 704 192c-15.36 0-29.952 2.688-43.52 7.616 11.328 18.176 20.672 37.76 27.84 58.304A64.128 64.128 0 0 1 759.424 352zM672 768H352v32a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32v-32zm-342.528-64h365.056c101.504-32.64 165.76-124.928 192.896-288H136.576c27.136 163.072 91.392 255.36 192.896 288z\"},null,-1),W$=[U$];function q$(e,t,n,o,l,u){return b(),F(\"svg\",O$,W$)}var j$=V(N$,[[\"render\",q$],[\"__file\",\"food.vue\"]]),K$={name:\"Football\"},G$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Y$=f(\"path\",{fill:\"currentColor\",d:\"M512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-64a384 384 0 1 0 0-768 384 384 0 0 0 0 768z\"},null,-1),X$=f(\"path\",{fill:\"currentColor\",d:\"M186.816 268.288c16-16.384 31.616-31.744 46.976-46.08 17.472 30.656 39.808 58.112 65.984 81.28l-32.512 56.448a385.984 385.984 0 0 1-80.448-91.648zm653.696-5.312a385.92 385.92 0 0 1-83.776 96.96l-32.512-56.384a322.923 322.923 0 0 0 68.48-85.76c15.552 14.08 31.488 29.12 47.808 45.184zM465.984 445.248l11.136-63.104a323.584 323.584 0 0 0 69.76 0l11.136 63.104a387.968 387.968 0 0 1-92.032 0zm-62.72-12.8A381.824 381.824 0 0 1 320 396.544l32-55.424a319.885 319.885 0 0 0 62.464 27.712l-11.2 63.488zm300.8-35.84a381.824 381.824 0 0 1-83.328 35.84l-11.2-63.552A319.885 319.885 0 0 0 672 341.184l32 55.424zm-520.768 364.8a385.92 385.92 0 0 1 83.968-97.28l32.512 56.32c-26.88 23.936-49.856 52.352-67.52 84.032-16-13.44-32.32-27.712-48.96-43.072zm657.536.128a1442.759 1442.759 0 0 1-49.024 43.072 321.408 321.408 0 0 0-67.584-84.16l32.512-56.32c33.216 27.456 61.696 60.352 84.096 97.408zM465.92 578.752a387.968 387.968 0 0 1 92.032 0l-11.136 63.104a323.584 323.584 0 0 0-69.76 0l-11.136-63.104zm-62.72 12.8 11.2 63.552a319.885 319.885 0 0 0-62.464 27.712L320 627.392a381.824 381.824 0 0 1 83.264-35.84zm300.8 35.84-32 55.424a318.272 318.272 0 0 0-62.528-27.712l11.2-63.488c29.44 8.64 57.28 20.736 83.264 35.776z\"},null,-1),J$=[Y$,X$];function Q$(e,t,n,o,l,u){return b(),F(\"svg\",G$,J$)}var Z$=V(K$,[[\"render\",Q$],[\"__file\",\"football.vue\"]]),eS={name:\"ForkSpoon\"},tS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nS=f(\"path\",{fill:\"currentColor\",d:\"M256 410.304V96a32 32 0 0 1 64 0v314.304a96 96 0 0 0 64-90.56V96a32 32 0 0 1 64 0v223.744a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.544a160 160 0 0 1-128-156.8V96a32 32 0 0 1 64 0v223.744a96 96 0 0 0 64 90.56zM672 572.48C581.184 552.128 512 446.848 512 320c0-141.44 85.952-256 192-256s192 114.56 192 256c0 126.848-69.184 232.128-160 252.48V928a32 32 0 1 1-64 0V572.48zM704 512c66.048 0 128-82.56 128-192s-61.952-192-128-192-128 82.56-128 192 61.952 192 128 192z\"},null,-1),oS=[nS];function lS(e,t,n,o,l,u){return b(),F(\"svg\",tS,oS)}var uS=V(eS,[[\"render\",lS],[\"__file\",\"fork-spoon.vue\"]]),aS={name:\"Fries\"},rS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sS=f(\"path\",{fill:\"currentColor\",d:\"M608 224v-64a32 32 0 0 0-64 0v336h26.88A64 64 0 0 0 608 484.096V224zm101.12 160A64 64 0 0 0 672 395.904V384h64V224a32 32 0 1 0-64 0v160h37.12zm74.88 0a92.928 92.928 0 0 1 91.328 110.08l-60.672 323.584A96 96 0 0 1 720.32 896H303.68a96 96 0 0 1-94.336-78.336L148.672 494.08A92.928 92.928 0 0 1 240 384h-16V224a96 96 0 0 1 188.608-25.28A95.744 95.744 0 0 1 480 197.44V160a96 96 0 0 1 188.608-25.28A96 96 0 0 1 800 224v160h-16zM670.784 512a128 128 0 0 1-99.904 48H453.12a128 128 0 0 1-99.84-48H352v-1.536a128.128 128.128 0 0 1-9.984-14.976L314.88 448H240a28.928 28.928 0 0 0-28.48 34.304L241.088 640h541.824l29.568-157.696A28.928 28.928 0 0 0 784 448h-74.88l-27.136 47.488A132.405 132.405 0 0 1 672 510.464V512h-1.216zM480 288a32 32 0 0 0-64 0v196.096A64 64 0 0 0 453.12 496H480V288zm-128 96V224a32 32 0 0 0-64 0v160h64-37.12A64 64 0 0 1 352 395.904zm-98.88 320 19.072 101.888A32 32 0 0 0 303.68 832h416.64a32 32 0 0 0 31.488-26.112L770.88 704H253.12z\"},null,-1),iS=[sS];function cS(e,t,n,o,l,u){return b(),F(\"svg\",rS,iS)}var dS=V(aS,[[\"render\",cS],[\"__file\",\"fries.vue\"]]),fS={name:\"FullScreen\"},pS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vS=f(\"path\",{fill:\"currentColor\",d:\"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64v.064zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64l-192 .192zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64v-.064z\"},null,-1),hS=[vS];function _S(e,t,n,o,l,u){return b(),F(\"svg\",pS,hS)}var mS=V(fS,[[\"render\",_S],[\"__file\",\"full-screen.vue\"]]),gS={name:\"GobletFull\"},bS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yS=f(\"path\",{fill:\"currentColor\",d:\"M256 320h512c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320zm503.936 64H264.064a256.128 256.128 0 0 0 495.872 0zM544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4z\"},null,-1),wS=[yS];function CS(e,t,n,o,l,u){return b(),F(\"svg\",bS,wS)}var ES=V(gS,[[\"render\",CS],[\"__file\",\"goblet-full.vue\"]]),FS={name:\"GobletSquareFull\"},AS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DS=f(\"path\",{fill:\"currentColor\",d:\"M256 270.912c10.048 6.72 22.464 14.912 28.992 18.624a220.16 220.16 0 0 0 114.752 30.72c30.592 0 49.408-9.472 91.072-41.152l.64-.448c52.928-40.32 82.368-55.04 132.288-54.656 55.552.448 99.584 20.8 142.72 57.408l1.536 1.28V128H256v142.912zm.96 76.288C266.368 482.176 346.88 575.872 512 576c157.44.064 237.952-85.056 253.248-209.984a952.32 952.32 0 0 1-40.192-35.712c-32.704-27.776-63.36-41.92-101.888-42.24-31.552-.256-50.624 9.28-93.12 41.6l-.576.448c-52.096 39.616-81.024 54.208-129.792 54.208-54.784 0-100.48-13.376-142.784-37.056zM480 638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848z\"},null,-1),BS=[DS];function xS(e,t,n,o,l,u){return b(),F(\"svg\",AS,BS)}var $S=V(FS,[[\"render\",xS],[\"__file\",\"goblet-square-full.vue\"]]),SS={name:\"GobletSquare\"},kS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PS=f(\"path\",{fill:\"currentColor\",d:\"M544 638.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912zM256 319.68c0 149.568 80 256.192 256 256.256C688.128 576 768 469.568 768 320V128H256v191.68z\"},null,-1),LS=[PS];function TS(e,t,n,o,l,u){return b(),F(\"svg\",kS,LS)}var zS=V(SS,[[\"render\",TS],[\"__file\",\"goblet-square.vue\"]]),MS={name:\"Goblet\"},VS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IS=f(\"path\",{fill:\"currentColor\",d:\"M544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4zM256 320a256 256 0 1 0 512 0c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320z\"},null,-1),HS=[IS];function RS(e,t,n,o,l,u){return b(),F(\"svg\",VS,HS)}var NS=V(MS,[[\"render\",RS],[\"__file\",\"goblet.vue\"]]),OS={name:\"GoldMedal\"},US={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},WS=f(\"path\",{d:\"m772.13 452.84 53.86-351.81c1.32-10.01-1.17-18.68-7.49-26.02S804.35 64 795.01 64H228.99v-.01h-.06c-9.33 0-17.15 3.67-23.49 11.01s-8.83 16.01-7.49 26.02l53.87 351.89C213.54 505.73 193.59 568.09 192 640c2 90.67 33.17 166.17 93.5 226.5S421.33 957.99 512 960c90.67-2 166.17-33.17 226.5-93.5 60.33-60.34 91.49-135.83 93.5-226.5-1.59-71.94-21.56-134.32-59.87-187.16zM640.01 128h117.02l-39.01 254.02c-20.75-10.64-40.74-19.73-59.94-27.28-5.92-3-11.95-5.8-18.08-8.41V128h.01zM576 128v198.76c-13.18-2.58-26.74-4.43-40.67-5.55-8.07-.8-15.85-1.2-23.33-1.2-10.54 0-21.09.66-31.64 1.96a359.844 359.844 0 0 0-32.36 4.79V128h128zm-192 0h.04v218.3c-6.22 2.66-12.34 5.5-18.36 8.56-19.13 7.54-39.02 16.6-59.66 27.16L267.01 128H384zm308.99 692.99c-48 48-108.33 73-180.99 75.01-72.66-2.01-132.99-27.01-180.99-75.01S258.01 712.66 256 640c2.01-72.66 27.01-132.99 75.01-180.99 19.67-19.67 41.41-35.47 65.22-47.41 38.33-15.04 71.15-23.92 98.44-26.65 5.07-.41 10.2-.7 15.39-.88.63-.01 1.28-.03 1.91-.03.66 0 1.35.03 2.02.04 5.11.17 10.15.46 15.13.86 27.4 2.71 60.37 11.65 98.91 26.79 23.71 11.93 45.36 27.69 64.96 47.29 48 48 73 108.33 75.01 180.99-2.01 72.65-27.01 132.98-75.01 180.98z\",fill:\"currentColor\"},null,-1),qS=f(\"path\",{d:\"M544 480H416v64h64v192h-64v64h192v-64h-64z\",fill:\"currentColor\"},null,-1),jS=[WS,qS];function KS(e,t,n,o,l,u){return b(),F(\"svg\",US,jS)}var GS=V(OS,[[\"render\",KS],[\"__file\",\"gold-medal.vue\"]]),YS={name:\"GoodsFilled\"},XS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JS=f(\"path\",{fill:\"currentColor\",d:\"M192 352h640l64 544H128l64-544zm128 224h64V448h-64v128zm320 0h64V448h-64v128zM384 288h-64a192 192 0 1 1 384 0h-64a128 128 0 1 0-256 0z\"},null,-1),QS=[JS];function ZS(e,t,n,o,l,u){return b(),F(\"svg\",XS,QS)}var ek=V(YS,[[\"render\",ZS],[\"__file\",\"goods-filled.vue\"]]),tk={name:\"Goods\"},nk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ok=f(\"path\",{fill:\"currentColor\",d:\"M320 288v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4h131.072a32 32 0 0 1 31.808 28.8l57.6 576a32 32 0 0 1-31.808 35.2H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320zm64 0h256v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4zm-64 64H217.92l-51.2 512h690.56l-51.264-512H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96z\"},null,-1),lk=[ok];function uk(e,t,n,o,l,u){return b(),F(\"svg\",nk,lk)}var ak=V(tk,[[\"render\",uk],[\"__file\",\"goods.vue\"]]),rk={name:\"Grape\"},sk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ik=f(\"path\",{fill:\"currentColor\",d:\"M544 195.2a160 160 0 0 1 96 60.8 160 160 0 1 1 146.24 254.976 160 160 0 0 1-128 224 160 160 0 1 1-292.48 0 160 160 0 0 1-128-224A160 160 0 1 1 384 256a160 160 0 0 1 96-60.8V128h-64a32 32 0 0 1 0-64h192a32 32 0 0 1 0 64h-64v67.2zM512 448a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm-256 0a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"},null,-1),ck=[ik];function dk(e,t,n,o,l,u){return b(),F(\"svg\",sk,ck)}var fk=V(rk,[[\"render\",dk],[\"__file\",\"grape.vue\"]]),pk={name:\"Grid\"},vk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hk=f(\"path\",{fill:\"currentColor\",d:\"M640 384v256H384V384h256zm64 0h192v256H704V384zm-64 512H384V704h256v192zm64 0V704h192v192H704zm-64-768v192H384V128h256zm64 0h192v192H704V128zM320 384v256H128V384h192zm0 512H128V704h192v192zm0-768v192H128V128h192z\"},null,-1),_k=[hk];function mk(e,t,n,o,l,u){return b(),F(\"svg\",vk,_k)}var gk=V(pk,[[\"render\",mk],[\"__file\",\"grid.vue\"]]),bk={name:\"Guide\"},yk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wk=f(\"path\",{fill:\"currentColor\",d:\"M640 608h-64V416h64v192zm0 160v160a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V768h64v128h128V768h64zM384 608V416h64v192h-64zm256-352h-64V128H448v128h-64V96a32 32 0 0 1 32-32h192a32 32 0 0 1 32 32v160z\"},null,-1),Ck=f(\"path\",{fill:\"currentColor\",d:\"m220.8 256-71.232 80 71.168 80H768V256H220.8zm-14.4-64H800a32 32 0 0 1 32 32v224a32 32 0 0 1-32 32H206.4a32 32 0 0 1-23.936-10.752l-99.584-112a32 32 0 0 1 0-42.496l99.584-112A32 32 0 0 1 206.4 192zm678.784 496-71.104 80H266.816V608h547.2l71.168 80zm-56.768-144H234.88a32 32 0 0 0-32 32v224a32 32 0 0 0 32 32h593.6a32 32 0 0 0 23.936-10.752l99.584-112a32 32 0 0 0 0-42.496l-99.584-112A32 32 0 0 0 828.48 544z\"},null,-1),Ek=[wk,Ck];function Fk(e,t,n,o,l,u){return b(),F(\"svg\",yk,Ek)}var Ak=V(bk,[[\"render\",Fk],[\"__file\",\"guide.vue\"]]),Dk={name:\"Handbag\"},Bk={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},xk=f(\"path\",{d:\"M887.01 264.99c-6-5.99-13.67-8.99-23.01-8.99H704c-1.34-54.68-20.01-100.01-56-136s-81.32-54.66-136-56c-54.68 1.34-100.01 20.01-136 56s-54.66 81.32-56 136H160c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.67-8.99 23.01v640c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V288c0-9.35-2.99-17.02-8.99-23.01zM421.5 165.5c24.32-24.34 54.49-36.84 90.5-37.5 35.99.68 66.16 13.18 90.5 37.5s36.84 54.49 37.5 90.5H384c.68-35.99 13.18-66.16 37.5-90.5zM832 896H192V320h128v128h64V320h256v128h64V320h128v576z\",fill:\"currentColor\"},null,-1),$k=[xk];function Sk(e,t,n,o,l,u){return b(),F(\"svg\",Bk,$k)}var kk=V(Dk,[[\"render\",Sk],[\"__file\",\"handbag.vue\"]]),Pk={name:\"Headset\"},Lk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Tk=f(\"path\",{fill:\"currentColor\",d:\"M896 529.152V512a384 384 0 1 0-768 0v17.152A128 128 0 0 1 320 640v128a128 128 0 1 1-256 0V512a448 448 0 1 1 896 0v256a128 128 0 1 1-256 0V640a128 128 0 0 1 192-110.848zM896 640a64 64 0 0 0-128 0v128a64 64 0 0 0 128 0V640zm-768 0v128a64 64 0 0 0 128 0V640a64 64 0 1 0-128 0z\"},null,-1),zk=[Tk];function Mk(e,t,n,o,l,u){return b(),F(\"svg\",Lk,zk)}var Vk=V(Pk,[[\"render\",Mk],[\"__file\",\"headset.vue\"]]),Ik={name:\"HelpFilled\"},Hk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Rk=f(\"path\",{fill:\"currentColor\",d:\"M926.784 480H701.312A192.512 192.512 0 0 0 544 322.688V97.216A416.064 416.064 0 0 1 926.784 480zm0 64A416.064 416.064 0 0 1 544 926.784V701.312A192.512 192.512 0 0 0 701.312 544h225.472zM97.28 544h225.472A192.512 192.512 0 0 0 480 701.312v225.472A416.064 416.064 0 0 1 97.216 544zm0-64A416.064 416.064 0 0 1 480 97.216v225.472A192.512 192.512 0 0 0 322.688 480H97.216z\"},null,-1),Nk=[Rk];function Ok(e,t,n,o,l,u){return b(),F(\"svg\",Hk,Nk)}var Uk=V(Ik,[[\"render\",Ok],[\"__file\",\"help-filled.vue\"]]),Wk={name:\"Help\"},qk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jk=f(\"path\",{fill:\"currentColor\",d:\"m759.936 805.248-90.944-91.008A254.912 254.912 0 0 1 512 768a254.912 254.912 0 0 1-156.992-53.76l-90.944 91.008A382.464 382.464 0 0 0 512 896c94.528 0 181.12-34.176 247.936-90.752zm45.312-45.312A382.464 382.464 0 0 0 896 512c0-94.528-34.176-181.12-90.752-247.936l-91.008 90.944C747.904 398.4 768 452.864 768 512c0 59.136-20.096 113.6-53.76 156.992l91.008 90.944zm-45.312-541.184A382.464 382.464 0 0 0 512 128c-94.528 0-181.12 34.176-247.936 90.752l90.944 91.008A254.912 254.912 0 0 1 512 256c59.136 0 113.6 20.096 156.992 53.76l90.944-91.008zm-541.184 45.312A382.464 382.464 0 0 0 128 512c0 94.528 34.176 181.12 90.752 247.936l91.008-90.944A254.912 254.912 0 0 1 256 512c0-59.136 20.096-113.6 53.76-156.992l-91.008-90.944zm417.28 394.496a194.56 194.56 0 0 0 22.528-22.528C686.912 602.56 704 559.232 704 512a191.232 191.232 0 0 0-67.968-146.56A191.296 191.296 0 0 0 512 320a191.232 191.232 0 0 0-146.56 67.968C337.088 421.44 320 464.768 320 512a191.232 191.232 0 0 0 67.968 146.56C421.44 686.912 464.768 704 512 704c47.296 0 90.56-17.088 124.032-45.44zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),Kk=[jk];function Gk(e,t,n,o,l,u){return b(),F(\"svg\",qk,Kk)}var Yk=V(Wk,[[\"render\",Gk],[\"__file\",\"help.vue\"]]),Xk={name:\"Hide\"},Jk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Qk=f(\"path\",{d:\"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z\",fill:\"currentColor\"},null,-1),Zk=f(\"path\",{d:\"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z\",fill:\"currentColor\"},null,-1),eP=[Qk,Zk];function tP(e,t,n,o,l,u){return b(),F(\"svg\",Jk,eP)}var Mf=V(Xk,[[\"render\",tP],[\"__file\",\"hide.vue\"]]),nP={name:\"Histogram\"},oP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lP=f(\"path\",{fill:\"currentColor\",d:\"M416 896V128h192v768H416zm-288 0V448h192v448H128zm576 0V320h192v576H704z\"},null,-1),uP=[lP];function aP(e,t,n,o,l,u){return b(),F(\"svg\",oP,uP)}var rP=V(nP,[[\"render\",aP],[\"__file\",\"histogram.vue\"]]),sP={name:\"HomeFilled\"},iP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cP=f(\"path\",{fill:\"currentColor\",d:\"M512 128 128 447.936V896h255.936V640H640v256h255.936V447.936z\"},null,-1),dP=[cP];function fP(e,t,n,o,l,u){return b(),F(\"svg\",iP,dP)}var pP=V(sP,[[\"render\",fP],[\"__file\",\"home-filled.vue\"]]),vP={name:\"HotWater\"},hP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_P=f(\"path\",{fill:\"currentColor\",d:\"M273.067 477.867h477.866V409.6H273.067v68.267zm0 68.266v51.2A187.733 187.733 0 0 0 460.8 785.067h102.4a187.733 187.733 0 0 0 187.733-187.734v-51.2H273.067zm-34.134-204.8h546.134a34.133 34.133 0 0 1 34.133 34.134v221.866a256 256 0 0 1-256 256H460.8a256 256 0 0 1-256-256V375.467a34.133 34.133 0 0 1 34.133-34.134zM512 34.133a34.133 34.133 0 0 1 34.133 34.134v170.666a34.133 34.133 0 0 1-68.266 0V68.267A34.133 34.133 0 0 1 512 34.133zM375.467 102.4a34.133 34.133 0 0 1 34.133 34.133v102.4a34.133 34.133 0 0 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.134-34.133zm273.066 0a34.133 34.133 0 0 1 34.134 34.133v102.4a34.133 34.133 0 1 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.133-34.133zM170.667 921.668h682.666a34.133 34.133 0 1 1 0 68.267H170.667a34.133 34.133 0 1 1 0-68.267z\"},null,-1),mP=[_P];function gP(e,t,n,o,l,u){return b(),F(\"svg\",hP,mP)}var bP=V(vP,[[\"render\",gP],[\"__file\",\"hot-water.vue\"]]),yP={name:\"House\"},wP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},CP=f(\"path\",{fill:\"currentColor\",d:\"M192 413.952V896h640V413.952L512 147.328 192 413.952zM139.52 374.4l352-293.312a32 32 0 0 1 40.96 0l352 293.312A32 32 0 0 1 896 398.976V928a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V398.976a32 32 0 0 1 11.52-24.576z\"},null,-1),EP=[CP];function FP(e,t,n,o,l,u){return b(),F(\"svg\",wP,EP)}var AP=V(yP,[[\"render\",FP],[\"__file\",\"house.vue\"]]),DP={name:\"IceCreamRound\"},BP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},xP=f(\"path\",{fill:\"currentColor\",d:\"m308.352 489.344 226.304 226.304a32 32 0 0 0 45.248 0L783.552 512A192 192 0 1 0 512 240.448L308.352 444.16a32 32 0 0 0 0 45.248zm135.744 226.304L308.352 851.392a96 96 0 0 1-135.744-135.744l135.744-135.744-45.248-45.248a96 96 0 0 1 0-135.808L466.752 195.2A256 256 0 0 1 828.8 557.248L625.152 760.96a96 96 0 0 1-135.808 0l-45.248-45.248zM398.848 670.4 353.6 625.152 217.856 760.896a32 32 0 0 0 45.248 45.248L398.848 670.4zm248.96-384.64a32 32 0 0 1 0 45.248L466.624 512a32 32 0 1 1-45.184-45.248l180.992-181.056a32 32 0 0 1 45.248 0zm90.496 90.496a32 32 0 0 1 0 45.248L557.248 602.496A32 32 0 1 1 512 557.248l180.992-180.992a32 32 0 0 1 45.312 0z\"},null,-1),$P=[xP];function SP(e,t,n,o,l,u){return b(),F(\"svg\",BP,$P)}var kP=V(DP,[[\"render\",SP],[\"__file\",\"ice-cream-round.vue\"]]),PP={name:\"IceCreamSquare\"},LP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TP=f(\"path\",{fill:\"currentColor\",d:\"M416 640h256a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h64zm192 64v160a96 96 0 0 1-192 0V704h-64a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h320a96 96 0 0 1 96 96v448a96 96 0 0 1-96 96h-64zm-64 0h-64v160a32 32 0 1 0 64 0V704z\"},null,-1),zP=[TP];function MP(e,t,n,o,l,u){return b(),F(\"svg\",LP,zP)}var VP=V(PP,[[\"render\",MP],[\"__file\",\"ice-cream-square.vue\"]]),IP={name:\"IceCream\"},HP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RP=f(\"path\",{fill:\"currentColor\",d:\"M128.64 448a208 208 0 0 1 193.536-191.552 224 224 0 0 1 445.248 15.488A208.128 208.128 0 0 1 894.784 448H896L548.8 983.68a32 32 0 0 1-53.248.704L128 448h.64zm64.256 0h286.208a144 144 0 0 0-286.208 0zm351.36 0h286.272a144 144 0 0 0-286.272 0zm-294.848 64 271.808 396.608L778.24 512H249.408zM511.68 352.64a207.872 207.872 0 0 1 189.184-96.192 160 160 0 0 0-314.752 5.632c52.608 12.992 97.28 46.08 125.568 90.56z\"},null,-1),NP=[RP];function OP(e,t,n,o,l,u){return b(),F(\"svg\",HP,NP)}var UP=V(IP,[[\"render\",OP],[\"__file\",\"ice-cream.vue\"]]),WP={name:\"IceDrink\"},qP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jP=f(\"path\",{fill:\"currentColor\",d:\"M512 448v128h239.68l16.064-128H512zm-64 0H256.256l16.064 128H448V448zm64-255.36V384h247.744A256.128 256.128 0 0 0 512 192.64zm-64 8.064A256.448 256.448 0 0 0 264.256 384H448V200.704zm64-72.064A320.128 320.128 0 0 1 825.472 384H896a32 32 0 1 1 0 64h-64v1.92l-56.96 454.016A64 64 0 0 1 711.552 960H312.448a64 64 0 0 1-63.488-56.064L192 449.92V448h-64a32 32 0 0 1 0-64h70.528A320.384 320.384 0 0 1 448 135.04V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H544a32 32 0 0 0-32 32v32.64zM743.68 640H280.32l32.128 256h399.104l32.128-256z\"},null,-1),KP=[jP];function GP(e,t,n,o,l,u){return b(),F(\"svg\",qP,KP)}var YP=V(WP,[[\"render\",GP],[\"__file\",\"ice-drink.vue\"]]),XP={name:\"IceTea\"},JP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QP=f(\"path\",{fill:\"currentColor\",d:\"M197.696 259.648a320.128 320.128 0 0 1 628.608 0A96 96 0 0 1 896 352v64a96 96 0 0 1-71.616 92.864l-49.408 395.072A64 64 0 0 1 711.488 960H312.512a64 64 0 0 1-63.488-56.064l-49.408-395.072A96 96 0 0 1 128 416v-64a96 96 0 0 1 69.696-92.352zM264.064 256h495.872a256.128 256.128 0 0 0-495.872 0zm495.424 256H264.512l48 384h398.976l48-384zM224 448h576a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32zm160 192h64v64h-64v-64zm192 64h64v64h-64v-64zm-128 64h64v64h-64v-64zm64-192h64v64h-64v-64z\"},null,-1),ZP=[QP];function eL(e,t,n,o,l,u){return b(),F(\"svg\",JP,ZP)}var tL=V(XP,[[\"render\",eL],[\"__file\",\"ice-tea.vue\"]]),nL={name:\"InfoFilled\"},oL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lL=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z\"},null,-1),uL=[lL];function aL(e,t,n,o,l,u){return b(),F(\"svg\",oL,uL)}var _c=V(nL,[[\"render\",aL],[\"__file\",\"info-filled.vue\"]]),rL={name:\"Iphone\"},sL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iL=f(\"path\",{fill:\"currentColor\",d:\"M224 768v96.064a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V768H224zm0-64h576V160a64 64 0 0 0-64-64H288a64 64 0 0 0-64 64v544zm32 288a96 96 0 0 1-96-96V128a96 96 0 0 1 96-96h512a96 96 0 0 1 96 96v768a96 96 0 0 1-96 96H256zm304-144a48 48 0 1 1-96 0 48 48 0 0 1 96 0z\"},null,-1),cL=[iL];function dL(e,t,n,o,l,u){return b(),F(\"svg\",sL,cL)}var fL=V(rL,[[\"render\",dL],[\"__file\",\"iphone.vue\"]]),pL={name:\"Key\"},vL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hL=f(\"path\",{fill:\"currentColor\",d:\"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064zM512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384z\"},null,-1),_L=[hL];function mL(e,t,n,o,l,u){return b(),F(\"svg\",vL,_L)}var gL=V(pL,[[\"render\",mL],[\"__file\",\"key.vue\"]]),bL={name:\"KnifeFork\"},yL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wL=f(\"path\",{fill:\"currentColor\",d:\"M256 410.56V96a32 32 0 0 1 64 0v314.56A96 96 0 0 0 384 320V96a32 32 0 0 1 64 0v224a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.8A160 160 0 0 1 128 320V96a32 32 0 0 1 64 0v224a96 96 0 0 0 64 90.56zm384-250.24V544h126.72c-3.328-78.72-12.928-147.968-28.608-207.744-14.336-54.528-46.848-113.344-98.112-175.872zM640 608v320a32 32 0 1 1-64 0V64h64c85.312 89.472 138.688 174.848 160 256 21.312 81.152 32 177.152 32 288H640z\"},null,-1),CL=[wL];function EL(e,t,n,o,l,u){return b(),F(\"svg\",yL,CL)}var FL=V(bL,[[\"render\",EL],[\"__file\",\"knife-fork.vue\"]]),AL={name:\"Lightning\"},DL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BL=f(\"path\",{fill:\"currentColor\",d:\"M288 671.36v64.128A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 736 734.016v-64.768a192 192 0 0 0 3.328-377.92l-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 91.968 70.464 167.36 160.256 175.232z\"},null,-1),xL=f(\"path\",{fill:\"currentColor\",d:\"M416 736a32 32 0 0 1-27.776-47.872l128-224a32 32 0 1 1 55.552 31.744L471.168 672H608a32 32 0 0 1 27.776 47.872l-128 224a32 32 0 1 1-55.68-31.744L552.96 736H416z\"},null,-1),$L=[BL,xL];function SL(e,t,n,o,l,u){return b(),F(\"svg\",DL,$L)}var kL=V(AL,[[\"render\",SL],[\"__file\",\"lightning.vue\"]]),PL={name:\"Link\"},LL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TL=f(\"path\",{fill:\"currentColor\",d:\"M715.648 625.152 670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248 90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656 87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496 45.248 45.248-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896 62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496 45.248 45.248zm0-362.048 45.248 45.248L398.848 670.4 353.6 625.152 625.152 353.6z\"},null,-1),zL=[TL];function ML(e,t,n,o,l,u){return b(),F(\"svg\",LL,zL)}var VL=V(PL,[[\"render\",ML],[\"__file\",\"link.vue\"]]),IL={name:\"List\"},HL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RL=f(\"path\",{fill:\"currentColor\",d:\"M704 192h160v736H160V192h160v64h384v-64zM288 512h448v-64H288v64zm0 256h448v-64H288v64zm96-576V96h256v96H384z\"},null,-1),NL=[RL];function OL(e,t,n,o,l,u){return b(),F(\"svg\",HL,NL)}var UL=V(IL,[[\"render\",OL],[\"__file\",\"list.vue\"]]),WL={name:\"Loading\"},qL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jL=f(\"path\",{fill:\"currentColor\",d:\"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z\"},null,-1),KL=[jL];function GL(e,t,n,o,l,u){return b(),F(\"svg\",qL,KL)}var ha=V(WL,[[\"render\",GL],[\"__file\",\"loading.vue\"]]),YL={name:\"LocationFilled\"},XL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JL=f(\"path\",{fill:\"currentColor\",d:\"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928zm0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6z\"},null,-1),QL=[JL];function ZL(e,t,n,o,l,u){return b(),F(\"svg\",XL,QL)}var eT=V(YL,[[\"render\",ZL],[\"__file\",\"location-filled.vue\"]]),tT={name:\"LocationInformation\"},nT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oT=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),lT=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),uT=f(\"path\",{fill:\"currentColor\",d:\"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z\"},null,-1),aT=[oT,lT,uT];function rT(e,t,n,o,l,u){return b(),F(\"svg\",nT,aT)}var sT=V(tT,[[\"render\",rT],[\"__file\",\"location-information.vue\"]]),iT={name:\"Location\"},cT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dT=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),fT=f(\"path\",{fill:\"currentColor\",d:\"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z\"},null,-1),pT=[dT,fT];function vT(e,t,n,o,l,u){return b(),F(\"svg\",cT,pT)}var hT=V(iT,[[\"render\",vT],[\"__file\",\"location.vue\"]]),_T={name:\"Lock\"},mT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gT=f(\"path\",{fill:\"currentColor\",d:\"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z\"},null,-1),bT=f(\"path\",{fill:\"currentColor\",d:\"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z\"},null,-1),yT=[gT,bT];function wT(e,t,n,o,l,u){return b(),F(\"svg\",mT,yT)}var CT=V(_T,[[\"render\",wT],[\"__file\",\"lock.vue\"]]),ET={name:\"Lollipop\"},FT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},AT=f(\"path\",{fill:\"currentColor\",d:\"M513.28 448a64 64 0 1 1 76.544 49.728A96 96 0 0 0 768 448h64a160 160 0 0 1-320 0h1.28zm-126.976-29.696a256 256 0 1 0 43.52-180.48A256 256 0 0 1 832 448h-64a192 192 0 0 0-381.696-29.696zm105.664 249.472L285.696 874.048a96 96 0 0 1-135.68-135.744l206.208-206.272a320 320 0 1 1 135.744 135.744zm-54.464-36.032a321.92 321.92 0 0 1-45.248-45.248L195.2 783.552a32 32 0 1 0 45.248 45.248l197.056-197.12z\"},null,-1),DT=[AT];function BT(e,t,n,o,l,u){return b(),F(\"svg\",FT,DT)}var xT=V(ET,[[\"render\",BT],[\"__file\",\"lollipop.vue\"]]),$T={name:\"MagicStick\"},ST={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kT=f(\"path\",{fill:\"currentColor\",d:\"M512 64h64v192h-64V64zm0 576h64v192h-64V640zM160 480v-64h192v64H160zm576 0v-64h192v64H736zM249.856 199.04l45.248-45.184L430.848 289.6 385.6 334.848 249.856 199.104zM657.152 606.4l45.248-45.248 135.744 135.744-45.248 45.248L657.152 606.4zM114.048 923.2 68.8 877.952l316.8-316.8 45.248 45.248-316.8 316.8zM702.4 334.848 657.152 289.6l135.744-135.744 45.248 45.248L702.4 334.848z\"},null,-1),PT=[kT];function LT(e,t,n,o,l,u){return b(),F(\"svg\",ST,PT)}var TT=V($T,[[\"render\",LT],[\"__file\",\"magic-stick.vue\"]]),zT={name:\"Magnet\"},MT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},VT=f(\"path\",{fill:\"currentColor\",d:\"M832 320V192H704v320a192 192 0 1 1-384 0V192H192v128h128v64H192v128a320 320 0 0 0 640 0V384H704v-64h128zM640 512V128h256v384a384 384 0 1 1-768 0V128h256v384a128 128 0 1 0 256 0z\"},null,-1),IT=[VT];function HT(e,t,n,o,l,u){return b(),F(\"svg\",MT,IT)}var RT=V(zT,[[\"render\",HT],[\"__file\",\"magnet.vue\"]]),NT={name:\"Male\"},OT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},UT=f(\"path\",{fill:\"currentColor\",d:\"M399.5 849.5a225 225 0 1 0 0-450 225 225 0 0 0 0 450zm0 56.25a281.25 281.25 0 1 1 0-562.5 281.25 281.25 0 0 1 0 562.5zm253.125-787.5h225q28.125 0 28.125 28.125T877.625 174.5h-225q-28.125 0-28.125-28.125t28.125-28.125z\"},null,-1),WT=f(\"path\",{fill:\"currentColor\",d:\"M877.625 118.25q28.125 0 28.125 28.125v225q0 28.125-28.125 28.125T849.5 371.375v-225q0-28.125 28.125-28.125z\"},null,-1),qT=f(\"path\",{fill:\"currentColor\",d:\"M604.813 458.9 565.1 419.131l292.613-292.668 39.825 39.824z\"},null,-1),jT=[UT,WT,qT];function KT(e,t,n,o,l,u){return b(),F(\"svg\",OT,jT)}var GT=V(NT,[[\"render\",KT],[\"__file\",\"male.vue\"]]),YT={name:\"Management\"},XT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JT=f(\"path\",{fill:\"currentColor\",d:\"M576 128v288l96-96 96 96V128h128v768H320V128h256zm-448 0h128v768H128V128z\"},null,-1),QT=[JT];function ZT(e,t,n,o,l,u){return b(),F(\"svg\",XT,QT)}var ez=V(YT,[[\"render\",ZT],[\"__file\",\"management.vue\"]]),tz={name:\"MapLocation\"},nz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oz=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),lz=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256zm345.6 192L960 960H672v-64H352v64H64l102.4-256h691.2zm-68.928 0H235.328l-76.8 192h706.944l-76.8-192z\"},null,-1),uz=[oz,lz];function az(e,t,n,o,l,u){return b(),F(\"svg\",nz,uz)}var rz=V(tz,[[\"render\",az],[\"__file\",\"map-location.vue\"]]),sz={name:\"Medal\"},iz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cz=f(\"path\",{fill:\"currentColor\",d:\"M512 896a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),dz=f(\"path\",{fill:\"currentColor\",d:\"M576 128H448v200a286.72 286.72 0 0 1 64-8c19.52 0 40.832 2.688 64 8V128zm64 0v219.648c24.448 9.088 50.56 20.416 78.4 33.92L757.44 128H640zm-256 0H266.624l39.04 253.568c27.84-13.504 53.888-24.832 78.336-33.92V128zM229.312 64h565.376a32 32 0 0 1 31.616 36.864L768 480c-113.792-64-199.104-96-256-96-56.896 0-142.208 32-256 96l-58.304-379.136A32 32 0 0 1 229.312 64z\"},null,-1),fz=[cz,dz];function pz(e,t,n,o,l,u){return b(),F(\"svg\",iz,fz)}var vz=V(sz,[[\"render\",pz],[\"__file\",\"medal.vue\"]]),hz={name:\"Memo\"},_z={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},mz=f(\"path\",{d:\"M480 320h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z\",fill:\"currentColor\"},null,-1),gz=f(\"path\",{d:\"M887.01 72.99C881.01 67 873.34 64 864 64H160c-9.35 0-17.02 3-23.01 8.99C131 78.99 128 86.66 128 96v832c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V96c0-9.35-3-17.02-8.99-23.01zM192 896V128h96v768h-96zm640 0H352V128h480v768z\",fill:\"currentColor\"},null,-1),bz=f(\"path\",{d:\"M480 512h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32zm0 192h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z\",fill:\"currentColor\"},null,-1),yz=[mz,gz,bz];function wz(e,t,n,o,l,u){return b(),F(\"svg\",_z,yz)}var Cz=V(hz,[[\"render\",wz],[\"__file\",\"memo.vue\"]]),Ez={name:\"Menu\"},Fz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Az=f(\"path\",{fill:\"currentColor\",d:\"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H608zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H608z\"},null,-1),Dz=[Az];function Bz(e,t,n,o,l,u){return b(),F(\"svg\",Fz,Dz)}var xz=V(Ez,[[\"render\",Bz],[\"__file\",\"menu.vue\"]]),$z={name:\"MessageBox\"},Sz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kz=f(\"path\",{fill:\"currentColor\",d:\"M288 384h448v64H288v-64zm96-128h256v64H384v-64zM131.456 512H384v128h256V512h252.544L721.856 192H302.144L131.456 512zM896 576H704v128H320V576H128v256h768V576zM275.776 128h472.448a32 32 0 0 1 28.608 17.664l179.84 359.552A32 32 0 0 1 960 519.552V864a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V519.552a32 32 0 0 1 3.392-14.336l179.776-359.552A32 32 0 0 1 275.776 128z\"},null,-1),Pz=[kz];function Lz(e,t,n,o,l,u){return b(),F(\"svg\",Sz,Pz)}var Tz=V($z,[[\"render\",Lz],[\"__file\",\"message-box.vue\"]]),zz={name:\"Message\"},Mz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Vz=f(\"path\",{fill:\"currentColor\",d:\"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z\"},null,-1),Iz=f(\"path\",{fill:\"currentColor\",d:\"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z\"},null,-1),Hz=[Vz,Iz];function Rz(e,t,n,o,l,u){return b(),F(\"svg\",Mz,Hz)}var Nz=V(zz,[[\"render\",Rz],[\"__file\",\"message.vue\"]]),Oz={name:\"Mic\"},Uz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Wz=f(\"path\",{fill:\"currentColor\",d:\"M480 704h160a64 64 0 0 0 64-64v-32h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-32a64 64 0 0 0-64-64H384a64 64 0 0 0-64 64v32h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v32a64 64 0 0 0 64 64h96zm64 64v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768h-96a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64h256a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128h-96z\"},null,-1),qz=[Wz];function jz(e,t,n,o,l,u){return b(),F(\"svg\",Uz,qz)}var Kz=V(Oz,[[\"render\",jz],[\"__file\",\"mic.vue\"]]),Gz={name:\"Microphone\"},Yz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Xz=f(\"path\",{fill:\"currentColor\",d:\"M512 128a128 128 0 0 0-128 128v256a128 128 0 1 0 256 0V256a128 128 0 0 0-128-128zm0-64a192 192 0 0 1 192 192v256a192 192 0 1 1-384 0V256A192 192 0 0 1 512 64zm-32 832v-64a288 288 0 0 1-288-288v-32a32 32 0 0 1 64 0v32a224 224 0 0 0 224 224h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64z\"},null,-1),Jz=[Xz];function Qz(e,t,n,o,l,u){return b(),F(\"svg\",Yz,Jz)}var Zz=V(Gz,[[\"render\",Qz],[\"__file\",\"microphone.vue\"]]),eM={name:\"MilkTea\"},tM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nM=f(\"path\",{fill:\"currentColor\",d:\"M416 128V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H512a32 32 0 0 0-32 32v32h320a96 96 0 0 1 11.712 191.296l-39.68 581.056A64 64 0 0 1 708.224 960H315.776a64 64 0 0 1-63.872-59.648l-39.616-581.056A96 96 0 0 1 224 128h192zM276.48 320l39.296 576h392.448l4.8-70.784a224.064 224.064 0 0 1 30.016-439.808L747.52 320H276.48zM224 256h576a32 32 0 1 0 0-64H224a32 32 0 0 0 0 64zm493.44 503.872 21.12-309.12a160 160 0 0 0-21.12 309.12z\"},null,-1),oM=[nM];function lM(e,t,n,o,l,u){return b(),F(\"svg\",tM,oM)}var uM=V(eM,[[\"render\",lM],[\"__file\",\"milk-tea.vue\"]]),aM={name:\"Minus\"},rM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sM=f(\"path\",{fill:\"currentColor\",d:\"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64z\"},null,-1),iM=[sM];function cM(e,t,n,o,l,u){return b(),F(\"svg\",rM,iM)}var Vf=V(aM,[[\"render\",cM],[\"__file\",\"minus.vue\"]]),dM={name:\"Money\"},fM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pM=f(\"path\",{fill:\"currentColor\",d:\"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z\"},null,-1),vM=f(\"path\",{fill:\"currentColor\",d:\"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z\"},null,-1),hM=f(\"path\",{fill:\"currentColor\",d:\"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"},null,-1),_M=[pM,vM,hM];function mM(e,t,n,o,l,u){return b(),F(\"svg\",fM,_M)}var gM=V(dM,[[\"render\",mM],[\"__file\",\"money.vue\"]]),bM={name:\"Monitor\"},yM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wM=f(\"path\",{fill:\"currentColor\",d:\"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H544zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H192z\"},null,-1),CM=[wM];function EM(e,t,n,o,l,u){return b(),F(\"svg\",yM,CM)}var FM=V(bM,[[\"render\",EM],[\"__file\",\"monitor.vue\"]]),AM={name:\"MoonNight\"},DM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BM=f(\"path\",{fill:\"currentColor\",d:\"M384 512a448 448 0 0 1 215.872-383.296A384 384 0 0 0 213.76 640h188.8A448.256 448.256 0 0 1 384 512zM171.136 704a448 448 0 0 1 636.992-575.296A384 384 0 0 0 499.328 704h-328.32z\"},null,-1),xM=f(\"path\",{fill:\"currentColor\",d:\"M32 640h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm128 128h384a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm160 127.68 224 .256a32 32 0 0 1 32 32V928a32 32 0 0 1-32 32l-224-.384a32 32 0 0 1-32-32v-.064a32 32 0 0 1 32-32z\"},null,-1),$M=[BM,xM];function SM(e,t,n,o,l,u){return b(),F(\"svg\",DM,$M)}var kM=V(AM,[[\"render\",SM],[\"__file\",\"moon-night.vue\"]]),PM={name:\"Moon\"},LM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TM=f(\"path\",{fill:\"currentColor\",d:\"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 390.592 390.592 0 0 0-17.408 16.384zm181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696z\"},null,-1),zM=[TM];function MM(e,t,n,o,l,u){return b(),F(\"svg\",LM,zM)}var VM=V(PM,[[\"render\",MM],[\"__file\",\"moon.vue\"]]),IM={name:\"MoreFilled\"},HM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RM=f(\"path\",{fill:\"currentColor\",d:\"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224z\"},null,-1),NM=[RM];function OM(e,t,n,o,l,u){return b(),F(\"svg\",HM,NM)}var ti=V(IM,[[\"render\",OM],[\"__file\",\"more-filled.vue\"]]),UM={name:\"More\"},WM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qM=f(\"path\",{fill:\"currentColor\",d:\"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z\"},null,-1),jM=[qM];function KM(e,t,n,o,l,u){return b(),F(\"svg\",WM,jM)}var If=V(UM,[[\"render\",KM],[\"__file\",\"more.vue\"]]),GM={name:\"MostlyCloudy\"},YM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XM=f(\"path\",{fill:\"currentColor\",d:\"M737.216 357.952 704 349.824l-11.776-32a192.064 192.064 0 0 0-367.424 23.04l-8.96 39.04-39.04 8.96A192.064 192.064 0 0 0 320 768h368a207.808 207.808 0 0 0 207.808-208 208.32 208.32 0 0 0-158.592-202.048zm15.168-62.208A272.32 272.32 0 0 1 959.744 560a271.808 271.808 0 0 1-271.552 272H320a256 256 0 0 1-57.536-505.536 256.128 256.128 0 0 1 489.92-30.72z\"},null,-1),JM=[XM];function QM(e,t,n,o,l,u){return b(),F(\"svg\",YM,JM)}var ZM=V(GM,[[\"render\",QM],[\"__file\",\"mostly-cloudy.vue\"]]),eV={name:\"Mouse\"},tV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nV=f(\"path\",{fill:\"currentColor\",d:\"M438.144 256c-68.352 0-92.736 4.672-117.76 18.112-20.096 10.752-35.52 26.176-46.272 46.272C260.672 345.408 256 369.792 256 438.144v275.712c0 68.352 4.672 92.736 18.112 117.76 10.752 20.096 26.176 35.52 46.272 46.272C345.408 891.328 369.792 896 438.144 896h147.712c68.352 0 92.736-4.672 117.76-18.112 20.096-10.752 35.52-26.176 46.272-46.272C763.328 806.592 768 782.208 768 713.856V438.144c0-68.352-4.672-92.736-18.112-117.76a110.464 110.464 0 0 0-46.272-46.272C678.592 260.672 654.208 256 585.856 256H438.144zm0-64h147.712c85.568 0 116.608 8.96 147.904 25.6 31.36 16.768 55.872 41.344 72.576 72.64C823.104 321.536 832 352.576 832 438.08v275.84c0 85.504-8.96 116.544-25.6 147.84a174.464 174.464 0 0 1-72.64 72.576C702.464 951.104 671.424 960 585.92 960H438.08c-85.504 0-116.544-8.96-147.84-25.6a174.464 174.464 0 0 1-72.64-72.704c-16.768-31.296-25.664-62.336-25.664-147.84v-275.84c0-85.504 8.96-116.544 25.6-147.84a174.464 174.464 0 0 1 72.768-72.576c31.232-16.704 62.272-25.6 147.776-25.6z\"},null,-1),oV=f(\"path\",{fill:\"currentColor\",d:\"M512 320q32 0 32 32v128q0 32-32 32t-32-32V352q0-32 32-32zm32-96a32 32 0 0 1-64 0v-64a32 32 0 0 0-32-32h-96a32 32 0 0 1 0-64h96a96 96 0 0 1 96 96v64z\"},null,-1),lV=[nV,oV];function uV(e,t,n,o,l,u){return b(),F(\"svg\",tV,lV)}var aV=V(eV,[[\"render\",uV],[\"__file\",\"mouse.vue\"]]),rV={name:\"Mug\"},sV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iV=f(\"path\",{fill:\"currentColor\",d:\"M736 800V160H160v640a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64zm64-544h63.552a96 96 0 0 1 96 96v224a96 96 0 0 1-96 96H800v128a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V128a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 64v288h63.552a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32H800z\"},null,-1),cV=[iV];function dV(e,t,n,o,l,u){return b(),F(\"svg\",sV,cV)}var fV=V(rV,[[\"render\",dV],[\"__file\",\"mug.vue\"]]),pV={name:\"MuteNotification\"},vV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hV=f(\"path\",{fill:\"currentColor\",d:\"m241.216 832 63.616-64H768V448c0-42.368-10.24-82.304-28.48-117.504l46.912-47.232C815.36 331.392 832 387.84 832 448v320h96a32 32 0 1 1 0 64H241.216zm-90.24 0H96a32 32 0 1 1 0-64h96V448a320.128 320.128 0 0 1 256-313.6V128a64 64 0 1 1 128 0v6.4a319.552 319.552 0 0 1 171.648 97.088l-45.184 45.44A256 256 0 0 0 256 448v278.336L151.04 832zM448 896h128a64 64 0 0 1-128 0z\"},null,-1),_V=f(\"path\",{fill:\"currentColor\",d:\"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z\"},null,-1),mV=[hV,_V];function gV(e,t,n,o,l,u){return b(),F(\"svg\",vV,mV)}var bV=V(pV,[[\"render\",gV],[\"__file\",\"mute-notification.vue\"]]),yV={name:\"Mute\"},wV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},CV=f(\"path\",{fill:\"currentColor\",d:\"m412.16 592.128-45.44 45.44A191.232 191.232 0 0 1 320 512V256a192 192 0 1 1 384 0v44.352l-64 64V256a128 128 0 1 0-256 0v256c0 30.336 10.56 58.24 28.16 80.128zm51.968 38.592A128 128 0 0 0 640 512v-57.152l64-64V512a192 192 0 0 1-287.68 166.528l47.808-47.808zM314.88 779.968l46.144-46.08A222.976 222.976 0 0 0 480 768h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64v-64c-61.44 0-118.4-19.2-165.12-52.032zM266.752 737.6A286.976 286.976 0 0 1 192 544v-32a32 32 0 0 1 64 0v32c0 56.832 21.184 108.8 56.064 148.288L266.752 737.6z\"},null,-1),EV=f(\"path\",{fill:\"currentColor\",d:\"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z\"},null,-1),FV=[CV,EV];function AV(e,t,n,o,l,u){return b(),F(\"svg\",wV,FV)}var DV=V(yV,[[\"render\",AV],[\"__file\",\"mute.vue\"]]),BV={name:\"NoSmoking\"},xV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$V=f(\"path\",{fill:\"currentColor\",d:\"M440.256 576H256v128h56.256l-64 64H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32h280.256l-64 64zm143.488 128H704V583.744L775.744 512H928a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H519.744l64-64zM768 576v128h128V576H768zm-29.696-207.552 45.248 45.248-497.856 497.856-45.248-45.248zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z\"},null,-1),SV=[$V];function kV(e,t,n,o,l,u){return b(),F(\"svg\",xV,SV)}var PV=V(BV,[[\"render\",kV],[\"__file\",\"no-smoking.vue\"]]),LV={name:\"Notebook\"},TV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zV=f(\"path\",{fill:\"currentColor\",d:\"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),MV=f(\"path\",{fill:\"currentColor\",d:\"M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32z\"},null,-1),VV=[zV,MV];function IV(e,t,n,o,l,u){return b(),F(\"svg\",TV,VV)}var HV=V(LV,[[\"render\",IV],[\"__file\",\"notebook.vue\"]]),RV={name:\"Notification\"},NV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OV=f(\"path\",{fill:\"currentColor\",d:\"M512 128v64H256a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V512h64v256a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V256a128 128 0 0 1 128-128h256z\"},null,-1),UV=f(\"path\",{fill:\"currentColor\",d:\"M768 384a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"},null,-1),WV=[OV,UV];function qV(e,t,n,o,l,u){return b(),F(\"svg\",NV,WV)}var jV=V(RV,[[\"render\",qV],[\"__file\",\"notification.vue\"]]),KV={name:\"Odometer\"},GV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},YV=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),XV=f(\"path\",{fill:\"currentColor\",d:\"M192 512a320 320 0 1 1 640 0 32 32 0 1 1-64 0 256 256 0 1 0-512 0 32 32 0 0 1-64 0z\"},null,-1),JV=f(\"path\",{fill:\"currentColor\",d:\"M570.432 627.84A96 96 0 1 1 509.568 608l60.992-187.776A32 32 0 1 1 631.424 440l-60.992 187.776zM502.08 734.464a32 32 0 1 0 19.84-60.928 32 32 0 0 0-19.84 60.928z\"},null,-1),QV=[YV,XV,JV];function ZV(e,t,n,o,l,u){return b(),F(\"svg\",GV,QV)}var eI=V(KV,[[\"render\",ZV],[\"__file\",\"odometer.vue\"]]),tI={name:\"OfficeBuilding\"},nI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oI=f(\"path\",{fill:\"currentColor\",d:\"M192 128v704h384V128H192zm-32-64h448a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),lI=f(\"path\",{fill:\"currentColor\",d:\"M256 256h256v64H256v-64zm0 192h256v64H256v-64zm0 192h256v64H256v-64zm384-128h128v64H640v-64zm0 128h128v64H640v-64zM64 832h896v64H64v-64z\"},null,-1),uI=f(\"path\",{fill:\"currentColor\",d:\"M640 384v448h192V384H640zm-32-64h256a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H608a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z\"},null,-1),aI=[oI,lI,uI];function rI(e,t,n,o,l,u){return b(),F(\"svg\",nI,aI)}var sI=V(tI,[[\"render\",rI],[\"__file\",\"office-building.vue\"]]),iI={name:\"Open\"},cI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dI=f(\"path\",{fill:\"currentColor\",d:\"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z\"},null,-1),fI=f(\"path\",{fill:\"currentColor\",d:\"M694.044 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z\"},null,-1),pI=[dI,fI];function vI(e,t,n,o,l,u){return b(),F(\"svg\",cI,pI)}var hI=V(iI,[[\"render\",vI],[\"__file\",\"open.vue\"]]),_I={name:\"Operation\"},mI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gI=f(\"path\",{fill:\"currentColor\",d:\"M389.44 768a96.064 96.064 0 0 1 181.12 0H896v64H570.56a96.064 96.064 0 0 1-181.12 0H128v-64h261.44zm192-288a96.064 96.064 0 0 1 181.12 0H896v64H762.56a96.064 96.064 0 0 1-181.12 0H128v-64h453.44zm-320-288a96.064 96.064 0 0 1 181.12 0H896v64H442.56a96.064 96.064 0 0 1-181.12 0H128v-64h133.44z\"},null,-1),bI=[gI];function yI(e,t,n,o,l,u){return b(),F(\"svg\",mI,bI)}var wI=V(_I,[[\"render\",yI],[\"__file\",\"operation.vue\"]]),CI={name:\"Opportunity\"},EI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FI=f(\"path\",{fill:\"currentColor\",d:\"M384 960v-64h192.064v64H384zm448-544a350.656 350.656 0 0 1-128.32 271.424C665.344 719.04 640 763.776 640 813.504V832H320v-14.336c0-48-19.392-95.36-57.216-124.992a351.552 351.552 0 0 1-128.448-344.256c25.344-136.448 133.888-248.128 269.76-276.48A352.384 352.384 0 0 1 832 416zm-544 32c0-132.288 75.904-224 192-224v-64c-154.432 0-256 122.752-256 288h64z\"},null,-1),AI=[FI];function DI(e,t,n,o,l,u){return b(),F(\"svg\",EI,AI)}var BI=V(CI,[[\"render\",DI],[\"__file\",\"opportunity.vue\"]]),xI={name:\"Orange\"},$I={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SI=f(\"path\",{fill:\"currentColor\",d:\"M544 894.72a382.336 382.336 0 0 0 215.936-89.472L577.024 622.272c-10.24 6.016-21.248 10.688-33.024 13.696v258.688zm261.248-134.784A382.336 382.336 0 0 0 894.656 544H635.968c-3.008 11.776-7.68 22.848-13.696 33.024l182.976 182.912zM894.656 480a382.336 382.336 0 0 0-89.408-215.936L622.272 446.976c6.016 10.24 10.688 21.248 13.696 33.024h258.688zm-134.72-261.248A382.336 382.336 0 0 0 544 129.344v258.688c11.776 3.008 22.848 7.68 33.024 13.696l182.912-182.976zM480 129.344a382.336 382.336 0 0 0-215.936 89.408l182.912 182.976c10.24-6.016 21.248-10.688 33.024-13.696V129.344zm-261.248 134.72A382.336 382.336 0 0 0 129.344 480h258.688c3.008-11.776 7.68-22.848 13.696-33.024L218.752 264.064zM129.344 544a382.336 382.336 0 0 0 89.408 215.936l182.976-182.912A127.232 127.232 0 0 1 388.032 544H129.344zm134.72 261.248A382.336 382.336 0 0 0 480 894.656V635.968a127.232 127.232 0 0 1-33.024-13.696L264.064 805.248zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-384a64 64 0 1 0 0-128 64 64 0 0 0 0 128z\"},null,-1),kI=[SI];function PI(e,t,n,o,l,u){return b(),F(\"svg\",$I,kI)}var LI=V(xI,[[\"render\",PI],[\"__file\",\"orange.vue\"]]),TI={name:\"Paperclip\"},zI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MI=f(\"path\",{fill:\"currentColor\",d:\"M602.496 240.448A192 192 0 1 1 874.048 512l-316.8 316.8A256 256 0 0 1 195.2 466.752L602.496 59.456l45.248 45.248L240.448 512A192 192 0 0 0 512 783.552l316.8-316.8a128 128 0 1 0-181.056-181.056L353.6 579.904a32 32 0 1 0 45.248 45.248l294.144-294.144 45.312 45.248L444.096 670.4a96 96 0 1 1-135.744-135.744l294.144-294.208z\"},null,-1),VI=[MI];function II(e,t,n,o,l,u){return b(),F(\"svg\",zI,VI)}var HI=V(TI,[[\"render\",II],[\"__file\",\"paperclip.vue\"]]),RI={name:\"PartlyCloudy\"},NI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OI=f(\"path\",{fill:\"currentColor\",d:\"M598.4 895.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 895.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 445.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z\"},null,-1),UI=f(\"path\",{fill:\"currentColor\",d:\"M139.84 501.888a256 256 0 1 1 417.856-277.12c-17.728 2.176-38.208 8.448-61.504 18.816A192 192 0 1 0 189.12 460.48a6003.84 6003.84 0 0 0-49.28 41.408z\"},null,-1),WI=[OI,UI];function qI(e,t,n,o,l,u){return b(),F(\"svg\",NI,WI)}var jI=V(RI,[[\"render\",qI],[\"__file\",\"partly-cloudy.vue\"]]),KI={name:\"Pear\"},GI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},YI=f(\"path\",{fill:\"currentColor\",d:\"M542.336 258.816a443.255 443.255 0 0 0-9.024 25.088 32 32 0 1 1-60.8-20.032l1.088-3.328a162.688 162.688 0 0 0-122.048 131.392l-17.088 102.72-20.736 15.36C256.192 552.704 224 610.88 224 672c0 120.576 126.4 224 288 224s288-103.424 288-224c0-61.12-32.192-119.296-89.728-161.92l-20.736-15.424-17.088-102.72a162.688 162.688 0 0 0-130.112-133.12zm-40.128-66.56c7.936-15.552 16.576-30.08 25.92-43.776 23.296-33.92 49.408-59.776 78.528-77.12a32 32 0 1 1 32.704 55.04c-20.544 12.224-40.064 31.552-58.432 58.304a316.608 316.608 0 0 0-9.792 15.104 226.688 226.688 0 0 1 164.48 181.568l12.8 77.248C819.456 511.36 864 587.392 864 672c0 159.04-157.568 288-352 288S160 831.04 160 672c0-84.608 44.608-160.64 115.584-213.376l12.8-77.248a226.624 226.624 0 0 1 213.76-189.184z\"},null,-1),XI=[YI];function JI(e,t,n,o,l,u){return b(),F(\"svg\",GI,XI)}var QI=V(KI,[[\"render\",JI],[\"__file\",\"pear.vue\"]]),ZI={name:\"PhoneFilled\"},eH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tH=f(\"path\",{fill:\"currentColor\",d:\"M199.232 125.568 90.624 379.008a32 32 0 0 0 6.784 35.2l512.384 512.384a32 32 0 0 0 35.2 6.784l253.44-108.608a32 32 0 0 0 10.048-52.032L769.6 633.92a32 32 0 0 0-36.928-5.952l-130.176 65.088-271.488-271.552 65.024-130.176a32 32 0 0 0-5.952-36.928L251.2 115.52a32 32 0 0 0-51.968 10.048z\"},null,-1),nH=[tH];function oH(e,t,n,o,l,u){return b(),F(\"svg\",eH,nH)}var lH=V(ZI,[[\"render\",oH],[\"__file\",\"phone-filled.vue\"]]),uH={name:\"Phone\"},aH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rH=f(\"path\",{fill:\"currentColor\",d:\"M79.36 432.256 591.744 944.64a32 32 0 0 0 35.2 6.784l253.44-108.544a32 32 0 0 0 9.984-52.032l-153.856-153.92a32 32 0 0 0-36.928-6.016l-69.888 34.944L358.08 394.24l35.008-69.888a32 32 0 0 0-5.952-36.928L233.152 133.568a32 32 0 0 0-52.032 10.048L72.512 397.056a32 32 0 0 0 6.784 35.2zm60.48-29.952 81.536-190.08L325.568 316.48l-24.64 49.216-20.608 41.216 32.576 32.64 271.552 271.552 32.64 32.64 41.216-20.672 49.28-24.576 104.192 104.128-190.08 81.472L139.84 402.304zM512 320v-64a256 256 0 0 1 256 256h-64a192 192 0 0 0-192-192zm0-192V64a448 448 0 0 1 448 448h-64a384 384 0 0 0-384-384z\"},null,-1),sH=[rH];function iH(e,t,n,o,l,u){return b(),F(\"svg\",aH,sH)}var cH=V(uH,[[\"render\",iH],[\"__file\",\"phone.vue\"]]),dH={name:\"PictureFilled\"},fH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pH=f(\"path\",{fill:\"currentColor\",d:\"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32H96zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112zM256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384z\"},null,-1),vH=[pH];function hH(e,t,n,o,l,u){return b(),F(\"svg\",fH,vH)}var _H=V(dH,[[\"render\",hH],[\"__file\",\"picture-filled.vue\"]]),mH={name:\"PictureRounded\"},gH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bH=f(\"path\",{fill:\"currentColor\",d:\"M512 128a384 384 0 1 0 0 768 384 384 0 0 0 0-768zm0-64a448 448 0 1 1 0 896 448 448 0 0 1 0-896z\"},null,-1),yH=f(\"path\",{fill:\"currentColor\",d:\"M640 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM214.656 790.656l-45.312-45.312 185.664-185.6a96 96 0 0 1 123.712-10.24l138.24 98.688a32 32 0 0 0 39.872-2.176L906.688 422.4l42.624 47.744L699.52 693.696a96 96 0 0 1-119.808 6.592l-138.24-98.752a32 32 0 0 0-41.152 3.456l-185.664 185.6z\"},null,-1),wH=[bH,yH];function CH(e,t,n,o,l,u){return b(),F(\"svg\",gH,wH)}var EH=V(mH,[[\"render\",CH],[\"__file\",\"picture-rounded.vue\"]]),FH={name:\"Picture\"},AH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DH=f(\"path\",{fill:\"currentColor\",d:\"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z\"},null,-1),BH=f(\"path\",{fill:\"currentColor\",d:\"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z\"},null,-1),xH=[DH,BH];function $H(e,t,n,o,l,u){return b(),F(\"svg\",AH,xH)}var SH=V(FH,[[\"render\",$H],[\"__file\",\"picture.vue\"]]),kH={name:\"PieChart\"},PH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LH=f(\"path\",{fill:\"currentColor\",d:\"M448 68.48v64.832A384.128 384.128 0 0 0 512 896a384.128 384.128 0 0 0 378.688-320h64.768A448.128 448.128 0 0 1 64 512 448.128 448.128 0 0 1 448 68.48z\"},null,-1),TH=f(\"path\",{fill:\"currentColor\",d:\"M576 97.28V448h350.72A384.064 384.064 0 0 0 576 97.28zM512 64V33.152A448 448 0 0 1 990.848 512H512V64z\"},null,-1),zH=[LH,TH];function MH(e,t,n,o,l,u){return b(),F(\"svg\",PH,zH)}var VH=V(kH,[[\"render\",MH],[\"__file\",\"pie-chart.vue\"]]),IH={name:\"Place\"},HH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RH=f(\"path\",{fill:\"currentColor\",d:\"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),NH=f(\"path\",{fill:\"currentColor\",d:\"M512 512a32 32 0 0 1 32 32v256a32 32 0 1 1-64 0V544a32 32 0 0 1 32-32z\"},null,-1),OH=f(\"path\",{fill:\"currentColor\",d:\"M384 649.088v64.96C269.76 732.352 192 771.904 192 800c0 37.696 139.904 96 320 96s320-58.304 320-96c0-28.16-77.76-67.648-192-85.952v-64.96C789.12 671.04 896 730.368 896 800c0 88.32-171.904 160-384 160s-384-71.68-384-160c0-69.696 106.88-128.96 256-150.912z\"},null,-1),UH=[RH,NH,OH];function WH(e,t,n,o,l,u){return b(),F(\"svg\",HH,UH)}var qH=V(IH,[[\"render\",WH],[\"__file\",\"place.vue\"]]),jH={name:\"Platform\"},KH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GH=f(\"path\",{fill:\"currentColor\",d:\"M448 832v-64h128v64h192v64H256v-64h192zM128 704V128h768v576H128z\"},null,-1),YH=[GH];function XH(e,t,n,o,l,u){return b(),F(\"svg\",KH,YH)}var JH=V(jH,[[\"render\",XH],[\"__file\",\"platform.vue\"]]),QH={name:\"Plus\"},ZH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eR=f(\"path\",{fill:\"currentColor\",d:\"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z\"},null,-1),tR=[eR];function nR(e,t,n,o,l,u){return b(),F(\"svg\",ZH,tR)}var Hf=V(QH,[[\"render\",nR],[\"__file\",\"plus.vue\"]]),oR={name:\"Pointer\"},lR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uR=f(\"path\",{fill:\"currentColor\",d:\"M511.552 128c-35.584 0-64.384 28.8-64.384 64.448v516.48L274.048 570.88a94.272 94.272 0 0 0-112.896-3.456 44.416 44.416 0 0 0-8.96 62.208L332.8 870.4A64 64 0 0 0 384 896h512V575.232a64 64 0 0 0-45.632-61.312l-205.952-61.76A96 96 0 0 1 576 360.192V192.448C576 156.8 547.2 128 511.552 128zM359.04 556.8l24.128 19.2V192.448a128.448 128.448 0 1 1 256.832 0v167.744a32 32 0 0 0 22.784 30.656l206.016 61.76A128 128 0 0 1 960 575.232V896a64 64 0 0 1-64 64H384a128 128 0 0 1-102.4-51.2L101.056 668.032A108.416 108.416 0 0 1 128 512.512a158.272 158.272 0 0 1 185.984 8.32L359.04 556.8z\"},null,-1),aR=[uR];function rR(e,t,n,o,l,u){return b(),F(\"svg\",lR,aR)}var sR=V(oR,[[\"render\",rR],[\"__file\",\"pointer.vue\"]]),iR={name:\"Position\"},cR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dR=f(\"path\",{fill:\"currentColor\",d:\"m249.6 417.088 319.744 43.072 39.168 310.272L845.12 178.88 249.6 417.088zm-129.024 47.168a32 32 0 0 1-7.68-61.44l777.792-311.04a32 32 0 0 1 41.6 41.6l-310.336 775.68a32 32 0 0 1-61.44-7.808L512 516.992l-391.424-52.736z\"},null,-1),fR=[dR];function pR(e,t,n,o,l,u){return b(),F(\"svg\",cR,fR)}var vR=V(iR,[[\"render\",pR],[\"__file\",\"position.vue\"]]),hR={name:\"Postcard\"},_R={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mR=f(\"path\",{fill:\"currentColor\",d:\"M160 224a32 32 0 0 0-32 32v512a32 32 0 0 0 32 32h704a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32H160zm0-64h704a96 96 0 0 1 96 96v512a96 96 0 0 1-96 96H160a96 96 0 0 1-96-96V256a96 96 0 0 1 96-96z\"},null,-1),gR=f(\"path\",{fill:\"currentColor\",d:\"M704 320a64 64 0 1 1 0 128 64 64 0 0 1 0-128zM288 448h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32zm0 128h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),bR=[mR,gR];function yR(e,t,n,o,l,u){return b(),F(\"svg\",_R,bR)}var wR=V(hR,[[\"render\",yR],[\"__file\",\"postcard.vue\"]]),CR={name:\"Pouring\"},ER={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FR=f(\"path\",{fill:\"currentColor\",d:\"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM224 800a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32z\"},null,-1),AR=[FR];function DR(e,t,n,o,l,u){return b(),F(\"svg\",ER,AR)}var BR=V(CR,[[\"render\",DR],[\"__file\",\"pouring.vue\"]]),xR={name:\"Present\"},$R={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SR=f(\"path\",{fill:\"currentColor\",d:\"M480 896V640H192v-64h288V320H192v576h288zm64 0h288V320H544v256h288v64H544v256zM128 256h768v672a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V256z\"},null,-1),kR=f(\"path\",{fill:\"currentColor\",d:\"M96 256h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z\"},null,-1),PR=f(\"path\",{fill:\"currentColor\",d:\"M416 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),LR=f(\"path\",{fill:\"currentColor\",d:\"M608 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),TR=[SR,kR,PR,LR];function zR(e,t,n,o,l,u){return b(),F(\"svg\",$R,TR)}var MR=V(xR,[[\"render\",zR],[\"__file\",\"present.vue\"]]),VR={name:\"PriceTag\"},IR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HR=f(\"path\",{fill:\"currentColor\",d:\"M224 318.336V896h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z\"},null,-1),RR=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),NR=[HR,RR];function OR(e,t,n,o,l,u){return b(),F(\"svg\",IR,NR)}var UR=V(VR,[[\"render\",OR],[\"__file\",\"price-tag.vue\"]]),WR={name:\"Printer\"},qR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jR=f(\"path\",{fill:\"currentColor\",d:\"M256 768H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 746.432 64 741.248 64 727.04V379.072c0-42.816 4.48-58.304 12.8-73.984 8.384-15.616 20.672-27.904 36.288-36.288 15.68-8.32 31.168-12.8 73.984-12.8H256V64h512v192h68.928c42.816 0 58.304 4.48 73.984 12.8 15.616 8.384 27.904 20.672 36.288 36.288 8.32 15.68 12.8 31.168 12.8 73.984v347.904c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H768v192H256V768zm64-192v320h384V576H320zm-64 128V512h512v192h128V379.072c0-29.376-1.408-36.48-5.248-43.776a23.296 23.296 0 0 0-10.048-10.048c-7.232-3.84-14.4-5.248-43.776-5.248H187.072c-29.376 0-36.48 1.408-43.776 5.248a23.296 23.296 0 0 0-10.048 10.048c-3.84 7.232-5.248 14.4-5.248 43.776V704h128zm64-448h384V128H320v128zm-64 128h64v64h-64v-64zm128 0h64v64h-64v-64z\"},null,-1),KR=[jR];function GR(e,t,n,o,l,u){return b(),F(\"svg\",qR,KR)}var YR=V(WR,[[\"render\",GR],[\"__file\",\"printer.vue\"]]),XR={name:\"Promotion\"},JR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QR=f(\"path\",{fill:\"currentColor\",d:\"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z\"},null,-1),ZR=[QR];function eN(e,t,n,o,l,u){return b(),F(\"svg\",JR,ZR)}var tN=V(XR,[[\"render\",eN],[\"__file\",\"promotion.vue\"]]),nN={name:\"QuartzWatch\"},oN={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},lN=f(\"path\",{d:\"M422.02 602.01v-.03c-6.68-5.99-14.35-8.83-23.01-8.51-8.67.32-16.17 3.66-22.5 10.02-6.33 6.36-9.5 13.7-9.5 22.02s3 15.82 8.99 22.5c8.68 8.68 19.02 11.35 31.01 8s19.49-10.85 22.5-22.5c3.01-11.65.51-22.15-7.49-31.49v-.01zM384 512c0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.67 8.99-23.01zm6.53-82.49c11.65 3.01 22.15.51 31.49-7.49h.04c5.99-6.68 8.83-14.34 8.51-23.01-.32-8.67-3.66-16.16-10.02-22.5-6.36-6.33-13.7-9.5-22.02-9.5s-15.82 3-22.5 8.99c-8.68 8.69-11.35 19.02-8 31.01 3.35 11.99 10.85 19.49 22.5 22.5zm242.94 0c11.67-3.03 19.01-10.37 22.02-22.02 3.01-11.65.51-22.15-7.49-31.49h.01c-6.68-5.99-14.18-8.99-22.5-8.99s-15.66 3.16-22.02 9.5c-6.36 6.34-9.7 13.84-10.02 22.5-.32 8.66 2.52 16.33 8.51 23.01 9.32 8.02 19.82 10.52 31.49 7.49zM512 640c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01s-3-17.02-8.99-23.01c-6-5.99-13.66-8.99-23.01-8.99zm183.01-151.01c-6-5.99-13.66-8.99-23.01-8.99s-17.02 3-23.01 8.99c-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99s17.02-3 23.01-8.99c5.99-6 8.99-13.67 8.99-23.01 0-9.35-3-17.02-8.99-23.01z\",fill:\"currentColor\"},null,-1),uN=f(\"path\",{d:\"M832 512c-2-90.67-33.17-166.17-93.5-226.5-20.43-20.42-42.6-37.49-66.5-51.23V64H352v170.26c-23.9 13.74-46.07 30.81-66.5 51.24-60.33 60.33-91.49 135.83-93.5 226.5 2 90.67 33.17 166.17 93.5 226.5 20.43 20.43 42.6 37.5 66.5 51.24V960h320V789.74c23.9-13.74 46.07-30.81 66.5-51.24 60.33-60.34 91.49-135.83 93.5-226.5zM416 128h192v78.69c-29.85-9.03-61.85-13.93-96-14.69-34.15.75-66.15 5.65-96 14.68V128zm192 768H416v-78.68c29.85 9.03 61.85 13.93 96 14.68 34.15-.75 66.15-5.65 96-14.68V896zm-96-128c-72.66-2.01-132.99-27.01-180.99-75.01S258.01 584.66 256 512c2.01-72.66 27.01-132.99 75.01-180.99S439.34 258.01 512 256c72.66 2.01 132.99 27.01 180.99 75.01S765.99 439.34 768 512c-2.01 72.66-27.01 132.99-75.01 180.99S584.66 765.99 512 768z\",fill:\"currentColor\"},null,-1),aN=f(\"path\",{d:\"M512 320c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01 0 9.35 3 17.02 8.99 23.01 6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01 0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99zm112.99 273.5c-8.66-.32-16.33 2.52-23.01 8.51-7.98 9.32-10.48 19.82-7.49 31.49s10.49 19.17 22.5 22.5 22.35.66 31.01-8v.04c5.99-6.68 8.99-14.18 8.99-22.5s-3.16-15.66-9.5-22.02-13.84-9.7-22.5-10.02z\",fill:\"currentColor\"},null,-1),rN=[lN,uN,aN];function sN(e,t,n,o,l,u){return b(),F(\"svg\",oN,rN)}var iN=V(nN,[[\"render\",sN],[\"__file\",\"quartz-watch.vue\"]]),cN={name:\"QuestionFilled\"},dN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fN=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z\"},null,-1),pN=[fN];function vN(e,t,n,o,l,u){return b(),F(\"svg\",dN,pN)}var hN=V(cN,[[\"render\",vN],[\"__file\",\"question-filled.vue\"]]),_N={name:\"Rank\"},mN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gN=f(\"path\",{fill:\"currentColor\",d:\"m186.496 544 41.408 41.344a32 32 0 1 1-45.248 45.312l-96-96a32 32 0 0 1 0-45.312l96-96a32 32 0 1 1 45.248 45.312L186.496 480h290.816V186.432l-41.472 41.472a32 32 0 1 1-45.248-45.184l96-96.128a32 32 0 0 1 45.312 0l96 96.064a32 32 0 0 1-45.248 45.184l-41.344-41.28V480H832l-41.344-41.344a32 32 0 0 1 45.248-45.312l96 96a32 32 0 0 1 0 45.312l-96 96a32 32 0 0 1-45.248-45.312L832 544H541.312v293.44l41.344-41.28a32 32 0 1 1 45.248 45.248l-96 96a32 32 0 0 1-45.312 0l-96-96a32 32 0 1 1 45.312-45.248l41.408 41.408V544H186.496z\"},null,-1),bN=[gN];function yN(e,t,n,o,l,u){return b(),F(\"svg\",mN,bN)}var wN=V(_N,[[\"render\",yN],[\"__file\",\"rank.vue\"]]),CN={name:\"ReadingLamp\"},EN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FN=f(\"path\",{fill:\"currentColor\",d:\"M352 896h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm-44.672-768-99.52 448h608.384l-99.52-448H307.328zm-25.6-64h460.608a32 32 0 0 1 31.232 25.088l113.792 512A32 32 0 0 1 856.128 640H167.872a32 32 0 0 1-31.232-38.912l113.792-512A32 32 0 0 1 281.664 64z\"},null,-1),AN=f(\"path\",{fill:\"currentColor\",d:\"M672 576q32 0 32 32v128q0 32-32 32t-32-32V608q0-32 32-32zm-192-.064h64V960h-64z\"},null,-1),DN=[FN,AN];function BN(e,t,n,o,l,u){return b(),F(\"svg\",EN,DN)}var xN=V(CN,[[\"render\",BN],[\"__file\",\"reading-lamp.vue\"]]),$N={name:\"Reading\"},SN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kN=f(\"path\",{fill:\"currentColor\",d:\"m512 863.36 384-54.848v-638.72L525.568 222.72a96 96 0 0 1-27.136 0L128 169.792v638.72l384 54.848zM137.024 106.432l370.432 52.928a32 32 0 0 0 9.088 0l370.432-52.928A64 64 0 0 1 960 169.792v638.72a64 64 0 0 1-54.976 63.36l-388.48 55.488a32 32 0 0 1-9.088 0l-388.48-55.488A64 64 0 0 1 64 808.512v-638.72a64 64 0 0 1 73.024-63.36z\"},null,-1),PN=f(\"path\",{fill:\"currentColor\",d:\"M480 192h64v704h-64z\"},null,-1),LN=[kN,PN];function TN(e,t,n,o,l,u){return b(),F(\"svg\",SN,LN)}var zN=V($N,[[\"render\",TN],[\"__file\",\"reading.vue\"]]),MN={name:\"RefreshLeft\"},VN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IN=f(\"path\",{fill:\"currentColor\",d:\"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z\"},null,-1),HN=[IN];function RN(e,t,n,o,l,u){return b(),F(\"svg\",VN,HN)}var NN=V(MN,[[\"render\",RN],[\"__file\",\"refresh-left.vue\"]]),ON={name:\"RefreshRight\"},UN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WN=f(\"path\",{fill:\"currentColor\",d:\"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z\"},null,-1),qN=[WN];function jN(e,t,n,o,l,u){return b(),F(\"svg\",UN,qN)}var KN=V(ON,[[\"render\",jN],[\"__file\",\"refresh-right.vue\"]]),GN={name:\"Refresh\"},YN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XN=f(\"path\",{fill:\"currentColor\",d:\"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z\"},null,-1),JN=[XN];function QN(e,t,n,o,l,u){return b(),F(\"svg\",YN,JN)}var ZN=V(GN,[[\"render\",QN],[\"__file\",\"refresh.vue\"]]),eO={name:\"Refrigerator\"},tO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nO=f(\"path\",{fill:\"currentColor\",d:\"M256 448h512V160a32 32 0 0 0-32-32H288a32 32 0 0 0-32 32v288zm0 64v352a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V512H256zm32-448h448a96 96 0 0 1 96 96v704a96 96 0 0 1-96 96H288a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96zm32 224h64v96h-64v-96zm0 288h64v96h-64v-96z\"},null,-1),oO=[nO];function lO(e,t,n,o,l,u){return b(),F(\"svg\",tO,oO)}var uO=V(eO,[[\"render\",lO],[\"__file\",\"refrigerator.vue\"]]),aO={name:\"RemoveFilled\"},rO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sO=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zM288 512a38.4 38.4 0 0 0 38.4 38.4h371.2a38.4 38.4 0 0 0 0-76.8H326.4A38.4 38.4 0 0 0 288 512z\"},null,-1),iO=[sO];function cO(e,t,n,o,l,u){return b(),F(\"svg\",rO,iO)}var dO=V(aO,[[\"render\",cO],[\"__file\",\"remove-filled.vue\"]]),fO={name:\"Remove\"},pO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vO=f(\"path\",{fill:\"currentColor\",d:\"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),hO=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),_O=[vO,hO];function mO(e,t,n,o,l,u){return b(),F(\"svg\",pO,_O)}var gO=V(fO,[[\"render\",mO],[\"__file\",\"remove.vue\"]]),bO={name:\"Right\"},yO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wO=f(\"path\",{fill:\"currentColor\",d:\"M754.752 480H160a32 32 0 1 0 0 64h594.752L521.344 777.344a32 32 0 0 0 45.312 45.312l288-288a32 32 0 0 0 0-45.312l-288-288a32 32 0 1 0-45.312 45.312L754.752 480z\"},null,-1),CO=[wO];function EO(e,t,n,o,l,u){return b(),F(\"svg\",yO,CO)}var FO=V(bO,[[\"render\",EO],[\"__file\",\"right.vue\"]]),AO={name:\"ScaleToOriginal\"},DO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BO=f(\"path\",{fill:\"currentColor\",d:\"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zM512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412zM512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512z\"},null,-1),xO=[BO];function $O(e,t,n,o,l,u){return b(),F(\"svg\",DO,xO)}var SO=V(AO,[[\"render\",$O],[\"__file\",\"scale-to-original.vue\"]]),kO={name:\"School\"},PO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LO=f(\"path\",{fill:\"currentColor\",d:\"M224 128v704h576V128H224zm-32-64h640a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),TO=f(\"path\",{fill:\"currentColor\",d:\"M64 832h896v64H64zm256-640h128v96H320z\"},null,-1),zO=f(\"path\",{fill:\"currentColor\",d:\"M384 832h256v-64a128 128 0 1 0-256 0v64zm128-256a192 192 0 0 1 192 192v128H320V768a192 192 0 0 1 192-192zM320 384h128v96H320zm256-192h128v96H576zm0 192h128v96H576z\"},null,-1),MO=[LO,TO,zO];function VO(e,t,n,o,l,u){return b(),F(\"svg\",PO,MO)}var IO=V(kO,[[\"render\",VO],[\"__file\",\"school.vue\"]]),HO={name:\"Scissor\"},RO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NO=f(\"path\",{fill:\"currentColor\",d:\"m512.064 578.368-106.88 152.768a160 160 0 1 1-23.36-78.208L472.96 522.56 196.864 128.256a32 32 0 1 1 52.48-36.736l393.024 561.344a160 160 0 1 1-23.36 78.208l-106.88-152.704zm54.4-189.248 208.384-297.6a32 32 0 0 1 52.48 36.736l-221.76 316.672-39.04-55.808zm-376.32 425.856a96 96 0 1 0 110.144-157.248 96 96 0 0 0-110.08 157.248zm643.84 0a96 96 0 1 0-110.08-157.248 96 96 0 0 0 110.08 157.248z\"},null,-1),OO=[NO];function UO(e,t,n,o,l,u){return b(),F(\"svg\",RO,OO)}var WO=V(HO,[[\"render\",UO],[\"__file\",\"scissor.vue\"]]),qO={name:\"Search\"},jO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KO=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704z\"},null,-1),GO=[KO];function YO(e,t,n,o,l,u){return b(),F(\"svg\",jO,GO)}var XO=V(qO,[[\"render\",YO],[\"__file\",\"search.vue\"]]),JO={name:\"Select\"},QO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ZO=f(\"path\",{fill:\"currentColor\",d:\"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z\"},null,-1),eU=[ZO];function tU(e,t,n,o,l,u){return b(),F(\"svg\",QO,eU)}var nU=V(JO,[[\"render\",tU],[\"__file\",\"select.vue\"]]),oU={name:\"Sell\"},lU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uU=f(\"path\",{fill:\"currentColor\",d:\"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 483.84L768 698.496V928a32 32 0 1 1-64 0V698.496l-73.344 73.344a32 32 0 1 1-45.248-45.248l128-128a32 32 0 0 1 45.248 0l128 128a32 32 0 1 1-45.248 45.248z\"},null,-1),aU=[uU];function rU(e,t,n,o,l,u){return b(),F(\"svg\",lU,aU)}var sU=V(oU,[[\"render\",rU],[\"__file\",\"sell.vue\"]]),iU={name:\"SemiSelect\"},cU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dU=f(\"path\",{fill:\"currentColor\",d:\"M128 448h768q64 0 64 64t-64 64H128q-64 0-64-64t64-64z\"},null,-1),fU=[dU];function pU(e,t,n,o,l,u){return b(),F(\"svg\",cU,fU)}var vU=V(iU,[[\"render\",pU],[\"__file\",\"semi-select.vue\"]]),hU={name:\"Service\"},_U={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mU=f(\"path\",{fill:\"currentColor\",d:\"M864 409.6a192 192 0 0 1-37.888 349.44A256.064 256.064 0 0 1 576 960h-96a32 32 0 1 1 0-64h96a192.064 192.064 0 0 0 181.12-128H736a32 32 0 0 1-32-32V416a32 32 0 0 1 32-32h32c10.368 0 20.544.832 30.528 2.432a288 288 0 0 0-573.056 0A193.235 193.235 0 0 1 256 384h32a32 32 0 0 1 32 32v320a32 32 0 0 1-32 32h-32a192 192 0 0 1-96-358.4 352 352 0 0 1 704 0zM256 448a128 128 0 1 0 0 256V448zm640 128a128 128 0 0 0-128-128v256a128 128 0 0 0 128-128z\"},null,-1),gU=[mU];function bU(e,t,n,o,l,u){return b(),F(\"svg\",_U,gU)}var yU=V(hU,[[\"render\",bU],[\"__file\",\"service.vue\"]]),wU={name:\"SetUp\"},CU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EU=f(\"path\",{fill:\"currentColor\",d:\"M224 160a64 64 0 0 0-64 64v576a64 64 0 0 0 64 64h576a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64H224zm0-64h576a128 128 0 0 1 128 128v576a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V224A128 128 0 0 1 224 96z\"},null,-1),FU=f(\"path\",{fill:\"currentColor\",d:\"M384 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),AU=f(\"path\",{fill:\"currentColor\",d:\"M480 320h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm160 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),DU=f(\"path\",{fill:\"currentColor\",d:\"M288 640h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),BU=[EU,FU,AU,DU];function xU(e,t,n,o,l,u){return b(),F(\"svg\",CU,BU)}var $U=V(wU,[[\"render\",xU],[\"__file\",\"set-up.vue\"]]),SU={name:\"Setting\"},kU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PU=f(\"path\",{fill:\"currentColor\",d:\"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z\"},null,-1),LU=[PU];function TU(e,t,n,o,l,u){return b(),F(\"svg\",kU,LU)}var zU=V(SU,[[\"render\",TU],[\"__file\",\"setting.vue\"]]),MU={name:\"Share\"},VU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IU=f(\"path\",{fill:\"currentColor\",d:\"m679.872 348.8-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z\"},null,-1),HU=[IU];function RU(e,t,n,o,l,u){return b(),F(\"svg\",VU,HU)}var NU=V(MU,[[\"render\",RU],[\"__file\",\"share.vue\"]]),OU={name:\"Ship\"},UU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WU=f(\"path\",{fill:\"currentColor\",d:\"M512 386.88V448h405.568a32 32 0 0 1 30.72 40.768l-76.48 267.968A192 192 0 0 1 687.168 896H336.832a192 192 0 0 1-184.64-139.264L75.648 488.768A32 32 0 0 1 106.368 448H448V117.888a32 32 0 0 1 47.36-28.096l13.888 7.616L512 96v2.88l231.68 126.4a32 32 0 0 1-2.048 57.216L512 386.88zm0-70.272 144.768-65.792L512 171.84v144.768zM512 512H148.864l18.24 64H856.96l18.24-64H512zM185.408 640l28.352 99.2A128 128 0 0 0 336.832 832h350.336a128 128 0 0 0 123.072-92.8l28.352-99.2H185.408z\"},null,-1),qU=[WU];function jU(e,t,n,o,l,u){return b(),F(\"svg\",UU,qU)}var KU=V(OU,[[\"render\",jU],[\"__file\",\"ship.vue\"]]),GU={name:\"Shop\"},YU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XU=f(\"path\",{fill:\"currentColor\",d:\"M704 704h64v192H256V704h64v64h384v-64zm188.544-152.192C894.528 559.616 896 567.616 896 576a96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0c0-8.384 1.408-16.384 3.392-24.192L192 128h640l60.544 423.808z\"},null,-1),JU=[XU];function QU(e,t,n,o,l,u){return b(),F(\"svg\",YU,JU)}var ZU=V(GU,[[\"render\",QU],[\"__file\",\"shop.vue\"]]),eW={name:\"ShoppingBag\"},tW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nW=f(\"path\",{fill:\"currentColor\",d:\"M704 320v96a32 32 0 0 1-32 32h-32V320H384v128h-32a32 32 0 0 1-32-32v-96H192v576h640V320H704zm-384-64a192 192 0 1 1 384 0h160a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32h160zm64 0h256a128 128 0 1 0-256 0z\"},null,-1),oW=f(\"path\",{fill:\"currentColor\",d:\"M192 704h640v64H192z\"},null,-1),lW=[nW,oW];function uW(e,t,n,o,l,u){return b(),F(\"svg\",tW,lW)}var aW=V(eW,[[\"render\",uW],[\"__file\",\"shopping-bag.vue\"]]),rW={name:\"ShoppingCartFull\"},sW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iW=f(\"path\",{fill:\"currentColor\",d:\"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z\"},null,-1),cW=f(\"path\",{fill:\"currentColor\",d:\"M699.648 256 608 145.984 516.352 256h183.296zm-140.8-151.04a64 64 0 0 1 98.304 0L836.352 320H379.648l179.2-215.04z\"},null,-1),dW=[iW,cW];function fW(e,t,n,o,l,u){return b(),F(\"svg\",sW,dW)}var pW=V(rW,[[\"render\",fW],[\"__file\",\"shopping-cart-full.vue\"]]),vW={name:\"ShoppingCart\"},hW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_W=f(\"path\",{fill:\"currentColor\",d:\"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z\"},null,-1),mW=[_W];function gW(e,t,n,o,l,u){return b(),F(\"svg\",hW,mW)}var bW=V(vW,[[\"render\",gW],[\"__file\",\"shopping-cart.vue\"]]),yW={name:\"ShoppingTrolley\"},wW={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},CW=f(\"path\",{d:\"M368 833c-13.3 0-24.5 4.5-33.5 13.5S321 866.7 321 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S415 893.3 415 880s-4.5-24.5-13.5-33.5S381.3 833 368 833zm439-193c7.4 0 13.8-2.2 19.5-6.5S836 623.3 838 616l112-448c2-10-.2-19.2-6.5-27.5S929 128 919 128H96c-9.3 0-17 3-23 9s-9 13.7-9 23 3 17 9 23 13.7 9 23 9h96v576h672c9.3 0 17-3 23-9s9-13.7 9-23-3-17-9-23-13.7-9-23-9H256v-64h551zM256 192h622l-96 384H256V192zm432 641c-13.3 0-24.5 4.5-33.5 13.5S641 866.7 641 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S735 893.3 735 880s-4.5-24.5-13.5-33.5S701.3 833 688 833z\",fill:\"currentColor\"},null,-1),EW=[CW];function FW(e,t,n,o,l,u){return b(),F(\"svg\",wW,EW)}var AW=V(yW,[[\"render\",FW],[\"__file\",\"shopping-trolley.vue\"]]),DW={name:\"Smoking\"},BW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},xW=f(\"path\",{fill:\"currentColor\",d:\"M256 576v128h640V576H256zm-32-64h704a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32z\"},null,-1),$W=f(\"path\",{fill:\"currentColor\",d:\"M704 576h64v128h-64zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z\"},null,-1),SW=[xW,$W];function kW(e,t,n,o,l,u){return b(),F(\"svg\",BW,SW)}var PW=V(DW,[[\"render\",kW],[\"__file\",\"smoking.vue\"]]),LW={name:\"Soccer\"},TW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zW=f(\"path\",{fill:\"currentColor\",d:\"M418.496 871.04 152.256 604.8c-16.512 94.016-2.368 178.624 42.944 224 44.928 44.928 129.344 58.752 223.296 42.24zm72.32-18.176a573.056 573.056 0 0 0 224.832-137.216 573.12 573.12 0 0 0 137.216-224.832L533.888 171.84a578.56 578.56 0 0 0-227.52 138.496A567.68 567.68 0 0 0 170.432 532.48l320.384 320.384zM871.04 418.496c16.512-93.952 2.688-178.368-42.24-223.296-44.544-44.544-128.704-58.048-222.592-41.536L871.04 418.496zM149.952 874.048c-112.96-112.96-88.832-408.96 111.168-608.96C461.056 65.152 760.96 36.928 874.048 149.952c113.024 113.024 86.784 411.008-113.152 610.944-199.936 199.936-497.92 226.112-610.944 113.152zm452.544-497.792 22.656-22.656a32 32 0 0 1 45.248 45.248l-22.656 22.656 45.248 45.248A32 32 0 1 1 647.744 512l-45.248-45.248L557.248 512l45.248 45.248a32 32 0 1 1-45.248 45.248L512 557.248l-45.248 45.248L512 647.744a32 32 0 1 1-45.248 45.248l-45.248-45.248-22.656 22.656a32 32 0 1 1-45.248-45.248l22.656-22.656-45.248-45.248A32 32 0 1 1 376.256 512l45.248 45.248L466.752 512l-45.248-45.248a32 32 0 1 1 45.248-45.248L512 466.752l45.248-45.248L512 376.256a32 32 0 0 1 45.248-45.248l45.248 45.248z\"},null,-1),MW=[zW];function VW(e,t,n,o,l,u){return b(),F(\"svg\",TW,MW)}var IW=V(LW,[[\"render\",VW],[\"__file\",\"soccer.vue\"]]),HW={name:\"SoldOut\"},RW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NW=f(\"path\",{fill:\"currentColor\",d:\"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 476.16a32 32 0 1 1 45.248 45.184l-128 128a32 32 0 0 1-45.248 0l-128-128a32 32 0 1 1 45.248-45.248L704 837.504V608a32 32 0 1 1 64 0v229.504l73.408-73.408z\"},null,-1),OW=[NW];function UW(e,t,n,o,l,u){return b(),F(\"svg\",RW,OW)}var WW=V(HW,[[\"render\",UW],[\"__file\",\"sold-out.vue\"]]),qW={name:\"SortDown\"},jW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KW=f(\"path\",{fill:\"currentColor\",d:\"M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0z\"},null,-1),GW=[KW];function YW(e,t,n,o,l,u){return b(),F(\"svg\",jW,GW)}var XW=V(qW,[[\"render\",YW],[\"__file\",\"sort-down.vue\"]]),JW={name:\"SortUp\"},QW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ZW=f(\"path\",{fill:\"currentColor\",d:\"M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248z\"},null,-1),eq=[ZW];function tq(e,t,n,o,l,u){return b(),F(\"svg\",QW,eq)}var nq=V(JW,[[\"render\",tq],[\"__file\",\"sort-up.vue\"]]),oq={name:\"Sort\"},lq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uq=f(\"path\",{fill:\"currentColor\",d:\"M384 96a32 32 0 0 1 64 0v786.752a32 32 0 0 1-54.592 22.656L95.936 608a32 32 0 0 1 0-45.312h.128a32 32 0 0 1 45.184 0L384 805.632V96zm192 45.248a32 32 0 0 1 54.592-22.592L928.064 416a32 32 0 0 1 0 45.312h-.128a32 32 0 0 1-45.184 0L640 218.496V928a32 32 0 1 1-64 0V141.248z\"},null,-1),aq=[uq];function rq(e,t,n,o,l,u){return b(),F(\"svg\",lq,aq)}var sq=V(oq,[[\"render\",rq],[\"__file\",\"sort.vue\"]]),iq={name:\"Stamp\"},cq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dq=f(\"path\",{fill:\"currentColor\",d:\"M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0zM128 896v-64h768v64H128z\"},null,-1),fq=[dq];function pq(e,t,n,o,l,u){return b(),F(\"svg\",cq,fq)}var vq=V(iq,[[\"render\",pq],[\"__file\",\"stamp.vue\"]]),hq={name:\"StarFilled\"},_q={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mq=f(\"path\",{fill:\"currentColor\",d:\"M283.84 867.84 512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z\"},null,-1),gq=[mq];function bq(e,t,n,o,l,u){return b(),F(\"svg\",_q,gq)}var yq=V(hq,[[\"render\",bq],[\"__file\",\"star-filled.vue\"]]),wq={name:\"Star\"},Cq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Eq=f(\"path\",{fill:\"currentColor\",d:\"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z\"},null,-1),Fq=[Eq];function Aq(e,t,n,o,l,u){return b(),F(\"svg\",Cq,Fq)}var Dq=V(wq,[[\"render\",Aq],[\"__file\",\"star.vue\"]]),Bq={name:\"Stopwatch\"},xq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$q=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),Sq=f(\"path\",{fill:\"currentColor\",d:\"M672 234.88c-39.168 174.464-80 298.624-122.688 372.48-64 110.848-202.624 30.848-138.624-80C453.376 453.44 540.48 355.968 672 234.816z\"},null,-1),kq=[$q,Sq];function Pq(e,t,n,o,l,u){return b(),F(\"svg\",xq,kq)}var Lq=V(Bq,[[\"render\",Pq],[\"__file\",\"stopwatch.vue\"]]),Tq={name:\"SuccessFilled\"},zq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Mq=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z\"},null,-1),Vq=[Mq];function Iq(e,t,n,o,l,u){return b(),F(\"svg\",zq,Vq)}var mc=V(Tq,[[\"render\",Iq],[\"__file\",\"success-filled.vue\"]]),Hq={name:\"Sugar\"},Rq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Nq=f(\"path\",{fill:\"currentColor\",d:\"m801.728 349.184 4.48 4.48a128 128 0 0 1 0 180.992L534.656 806.144a128 128 0 0 1-181.056 0l-4.48-4.48-19.392 109.696a64 64 0 0 1-108.288 34.176L78.464 802.56a64 64 0 0 1 34.176-108.288l109.76-19.328-4.544-4.544a128 128 0 0 1 0-181.056l271.488-271.488a128 128 0 0 1 181.056 0l4.48 4.48 19.392-109.504a64 64 0 0 1 108.352-34.048l142.592 143.04a64 64 0 0 1-34.24 108.16l-109.248 19.2zm-548.8 198.72h447.168v2.24l60.8-60.8a63.808 63.808 0 0 0 18.752-44.416h-426.88l-89.664 89.728a64.064 64.064 0 0 0-10.24 13.248zm0 64c2.752 4.736 6.144 9.152 10.176 13.248l135.744 135.744a64 64 0 0 0 90.496 0L638.4 611.904H252.928zm490.048-230.976L625.152 263.104a64 64 0 0 0-90.496 0L416.768 380.928h326.208zM123.712 757.312l142.976 142.976 24.32-137.6a25.6 25.6 0 0 0-29.696-29.632l-137.6 24.256zm633.6-633.344-24.32 137.472a25.6 25.6 0 0 0 29.632 29.632l137.28-24.064-142.656-143.04z\"},null,-1),Oq=[Nq];function Uq(e,t,n,o,l,u){return b(),F(\"svg\",Rq,Oq)}var Wq=V(Hq,[[\"render\",Uq],[\"__file\",\"sugar.vue\"]]),qq={name:\"SuitcaseLine\"},jq={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},Kq=f(\"path\",{d:\"M922.5 229.5c-24.32-24.34-54.49-36.84-90.5-37.5H704v-64c-.68-17.98-7.02-32.98-19.01-44.99S658.01 64.66 640 64H384c-17.98.68-32.98 7.02-44.99 19.01S320.66 110 320 128v64H192c-35.99.68-66.16 13.18-90.5 37.5C77.16 253.82 64.66 283.99 64 320v448c.68 35.99 13.18 66.16 37.5 90.5s54.49 36.84 90.5 37.5h640c35.99-.68 66.16-13.18 90.5-37.5s36.84-54.49 37.5-90.5V320c-.68-35.99-13.18-66.16-37.5-90.5zM384 128h256v64H384v-64zM256 832h-64c-17.98-.68-32.98-7.02-44.99-19.01S128.66 786.01 128 768V448h128v384zm448 0H320V448h384v384zm192-64c-.68 17.98-7.02 32.98-19.01 44.99S850.01 831.34 832 832h-64V448h128v320zm0-384H128v-64c.69-17.98 7.02-32.98 19.01-44.99S173.99 256.66 192 256h640c17.98.69 32.98 7.02 44.99 19.01S895.34 301.99 896 320v64z\",fill:\"currentColor\"},null,-1),Gq=[Kq];function Yq(e,t,n,o,l,u){return b(),F(\"svg\",jq,Gq)}var Xq=V(qq,[[\"render\",Yq],[\"__file\",\"suitcase-line.vue\"]]),Jq={name:\"Suitcase\"},Qq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Zq=f(\"path\",{fill:\"currentColor\",d:\"M128 384h768v-64a64 64 0 0 0-64-64H192a64 64 0 0 0-64 64v64zm0 64v320a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V448H128zm64-256h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z\"},null,-1),ej=f(\"path\",{fill:\"currentColor\",d:\"M384 128v64h256v-64H384zm0-64h256a64 64 0 0 1 64 64v64a64 64 0 0 1-64 64H384a64 64 0 0 1-64-64v-64a64 64 0 0 1 64-64z\"},null,-1),tj=[Zq,ej];function nj(e,t,n,o,l,u){return b(),F(\"svg\",Qq,tj)}var oj=V(Jq,[[\"render\",nj],[\"__file\",\"suitcase.vue\"]]),lj={name:\"Sunny\"},uj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aj=f(\"path\",{fill:\"currentColor\",d:\"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32zM195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248zM64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32zm768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32zM195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0zm543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0z\"},null,-1),rj=[aj];function sj(e,t,n,o,l,u){return b(),F(\"svg\",uj,rj)}var ij=V(lj,[[\"render\",sj],[\"__file\",\"sunny.vue\"]]),cj={name:\"Sunrise\"},dj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fj=f(\"path\",{fill:\"currentColor\",d:\"M32 768h960a32 32 0 1 1 0 64H32a32 32 0 1 1 0-64zm129.408-96a352 352 0 0 1 701.184 0h-64.32a288 288 0 0 0-572.544 0h-64.32zM512 128a32 32 0 0 1 32 32v96a32 32 0 0 1-64 0v-96a32 32 0 0 1 32-32zm407.296 168.704a32 32 0 0 1 0 45.248l-67.84 67.84a32 32 0 1 1-45.248-45.248l67.84-67.84a32 32 0 0 1 45.248 0zm-814.592 0a32 32 0 0 1 45.248 0l67.84 67.84a32 32 0 1 1-45.248 45.248l-67.84-67.84a32 32 0 0 1 0-45.248z\"},null,-1),pj=[fj];function vj(e,t,n,o,l,u){return b(),F(\"svg\",dj,pj)}var hj=V(cj,[[\"render\",vj],[\"__file\",\"sunrise.vue\"]]),_j={name:\"Sunset\"},mj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gj=f(\"path\",{fill:\"currentColor\",d:\"M82.56 640a448 448 0 1 1 858.88 0h-67.2a384 384 0 1 0-724.288 0H82.56zM32 704h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm256 128h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),bj=[gj];function yj(e,t,n,o,l,u){return b(),F(\"svg\",mj,bj)}var wj=V(_j,[[\"render\",yj],[\"__file\",\"sunset.vue\"]]),Cj={name:\"SwitchButton\"},Ej={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Fj=f(\"path\",{fill:\"currentColor\",d:\"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128z\"},null,-1),Aj=f(\"path\",{fill:\"currentColor\",d:\"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32z\"},null,-1),Dj=[Fj,Aj];function Bj(e,t,n,o,l,u){return b(),F(\"svg\",Ej,Dj)}var xj=V(Cj,[[\"render\",Bj],[\"__file\",\"switch-button.vue\"]]),$j={name:\"SwitchFilled\"},Sj={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},kj=f(\"path\",{d:\"M247.47 358.4v.04c.07 19.17 7.72 37.53 21.27 51.09s31.92 21.2 51.09 21.27c39.86 0 72.41-32.6 72.41-72.4s-32.6-72.36-72.41-72.36-72.36 32.55-72.36 72.36z\",fill:\"currentColor\"},null,-1),Pj=f(\"path\",{d:\"M492.38 128H324.7c-52.16 0-102.19 20.73-139.08 57.61a196.655 196.655 0 0 0-57.61 139.08V698.7c-.01 25.84 5.08 51.42 14.96 75.29s24.36 45.56 42.63 63.83 39.95 32.76 63.82 42.65a196.67 196.67 0 0 0 75.28 14.98h167.68c3.03 0 5.46-2.43 5.46-5.42V133.42c.6-2.99-1.83-5.42-5.46-5.42zm-56.11 705.88H324.7c-17.76.13-35.36-3.33-51.75-10.18s-31.22-16.94-43.61-29.67c-25.3-25.35-39.81-59.1-39.81-95.32V324.69c-.13-17.75 3.33-35.35 10.17-51.74a131.695 131.695 0 0 1 29.64-43.62c25.39-25.3 59.14-39.81 95.36-39.81h111.57v644.36zm402.12-647.67a196.655 196.655 0 0 0-139.08-57.61H580.48c-3.03 0-4.82 2.43-4.82 4.82v757.16c-.6 2.99 1.79 5.42 5.42 5.42h118.23a196.69 196.69 0 0 0 139.08-57.61A196.655 196.655 0 0 0 896 699.31V325.29a196.69 196.69 0 0 0-57.61-139.08zm-111.3 441.92c-42.83 0-77.82-34.99-77.82-77.82s34.98-77.82 77.82-77.82c42.83 0 77.82 34.99 77.82 77.82s-34.99 77.82-77.82 77.82z\",fill:\"currentColor\"},null,-1),Lj=[kj,Pj];function Tj(e,t,n,o,l,u){return b(),F(\"svg\",Sj,Lj)}var zj=V($j,[[\"render\",Tj],[\"__file\",\"switch-filled.vue\"]]),Mj={name:\"Switch\"},Vj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ij=f(\"path\",{fill:\"currentColor\",d:\"M118.656 438.656a32 32 0 0 1 0-45.248L416 96l4.48-3.776A32 32 0 0 1 461.248 96l3.712 4.48a32.064 32.064 0 0 1-3.712 40.832L218.56 384H928a32 32 0 1 1 0 64H141.248a32 32 0 0 1-22.592-9.344zM64 608a32 32 0 0 1 32-32h786.752a32 32 0 0 1 22.656 54.592L608 928l-4.48 3.776a32.064 32.064 0 0 1-40.832-49.024L805.632 640H96a32 32 0 0 1-32-32z\"},null,-1),Hj=[Ij];function Rj(e,t,n,o,l,u){return b(),F(\"svg\",Vj,Hj)}var Nj=V(Mj,[[\"render\",Rj],[\"__file\",\"switch.vue\"]]),Oj={name:\"TakeawayBox\"},Uj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Wj=f(\"path\",{fill:\"currentColor\",d:\"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z\"},null,-1),qj=[Wj];function jj(e,t,n,o,l,u){return b(),F(\"svg\",Uj,qj)}var Kj=V(Oj,[[\"render\",jj],[\"__file\",\"takeaway-box.vue\"]]),Gj={name:\"Ticket\"},Yj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Xj=f(\"path\",{fill:\"currentColor\",d:\"M640 832H64V640a128 128 0 1 0 0-256V192h576v160h64V192h256v192a128 128 0 1 0 0 256v192H704V672h-64v160zm0-416v192h64V416h-64z\"},null,-1),Jj=[Xj];function Qj(e,t,n,o,l,u){return b(),F(\"svg\",Yj,Jj)}var Zj=V(Gj,[[\"render\",Qj],[\"__file\",\"ticket.vue\"]]),eK={name:\"Tickets\"},tK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nK=f(\"path\",{fill:\"currentColor\",d:\"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z\"},null,-1),oK=[nK];function lK(e,t,n,o,l,u){return b(),F(\"svg\",tK,oK)}var uK=V(eK,[[\"render\",lK],[\"__file\",\"tickets.vue\"]]),aK={name:\"Timer\"},rK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sK=f(\"path\",{fill:\"currentColor\",d:\"M512 896a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z\"},null,-1),iK=f(\"path\",{fill:\"currentColor\",d:\"M512 320a32 32 0 0 1 32 32l-.512 224a32 32 0 1 1-64 0L480 352a32 32 0 0 1 32-32z\"},null,-1),cK=f(\"path\",{fill:\"currentColor\",d:\"M448 576a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96-448v128h-64V128h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96z\"},null,-1),dK=[sK,iK,cK];function fK(e,t,n,o,l,u){return b(),F(\"svg\",rK,dK)}var pK=V(aK,[[\"render\",fK],[\"__file\",\"timer.vue\"]]),vK={name:\"ToiletPaper\"},hK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_K=f(\"path\",{fill:\"currentColor\",d:\"M595.2 128H320a192 192 0 0 0-192 192v576h384V352c0-90.496 32.448-171.2 83.2-224zM736 64c123.712 0 224 128.96 224 288S859.712 640 736 640H576v320H64V320A256 256 0 0 1 320 64h416zM576 352v224h160c84.352 0 160-97.28 160-224s-75.648-224-160-224-160 97.28-160 224z\"},null,-1),mK=f(\"path\",{fill:\"currentColor\",d:\"M736 448c-35.328 0-64-43.008-64-96s28.672-96 64-96 64 43.008 64 96-28.672 96-64 96z\"},null,-1),gK=[_K,mK];function bK(e,t,n,o,l,u){return b(),F(\"svg\",hK,gK)}var yK=V(vK,[[\"render\",bK],[\"__file\",\"toilet-paper.vue\"]]),wK={name:\"Tools\"},CK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EK=f(\"path\",{fill:\"currentColor\",d:\"M764.416 254.72a351.68 351.68 0 0 1 86.336 149.184H960v192.064H850.752a351.68 351.68 0 0 1-86.336 149.312l54.72 94.72-166.272 96-54.592-94.72a352.64 352.64 0 0 1-172.48 0L371.136 936l-166.272-96 54.72-94.72a351.68 351.68 0 0 1-86.336-149.312H64v-192h109.248a351.68 351.68 0 0 1 86.336-149.312L204.8 160l166.208-96h.192l54.656 94.592a352.64 352.64 0 0 1 172.48 0L652.8 64h.128L819.2 160l-54.72 94.72zM704 499.968a192 192 0 1 0-384 0 192 192 0 0 0 384 0z\"},null,-1),FK=[EK];function AK(e,t,n,o,l,u){return b(),F(\"svg\",CK,FK)}var DK=V(wK,[[\"render\",AK],[\"__file\",\"tools.vue\"]]),BK={name:\"TopLeft\"},xK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$K=f(\"path\",{fill:\"currentColor\",d:\"M256 256h416a32 32 0 1 0 0-64H224a32 32 0 0 0-32 32v448a32 32 0 0 0 64 0V256z\"},null,-1),SK=f(\"path\",{fill:\"currentColor\",d:\"M246.656 201.344a32 32 0 0 0-45.312 45.312l544 544a32 32 0 0 0 45.312-45.312l-544-544z\"},null,-1),kK=[$K,SK];function PK(e,t,n,o,l,u){return b(),F(\"svg\",xK,kK)}var LK=V(BK,[[\"render\",PK],[\"__file\",\"top-left.vue\"]]),TK={name:\"TopRight\"},zK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MK=f(\"path\",{fill:\"currentColor\",d:\"M768 256H353.6a32 32 0 1 1 0-64H800a32 32 0 0 1 32 32v448a32 32 0 0 1-64 0V256z\"},null,-1),VK=f(\"path\",{fill:\"currentColor\",d:\"M777.344 201.344a32 32 0 0 1 45.312 45.312l-544 544a32 32 0 0 1-45.312-45.312l544-544z\"},null,-1),IK=[MK,VK];function HK(e,t,n,o,l,u){return b(),F(\"svg\",zK,IK)}var RK=V(TK,[[\"render\",HK],[\"__file\",\"top-right.vue\"]]),NK={name:\"Top\"},OK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},UK=f(\"path\",{fill:\"currentColor\",d:\"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z\"},null,-1),WK=[UK];function qK(e,t,n,o,l,u){return b(),F(\"svg\",OK,WK)}var jK=V(NK,[[\"render\",qK],[\"__file\",\"top.vue\"]]),KK={name:\"TrendCharts\"},GK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},YK=f(\"path\",{fill:\"currentColor\",d:\"M128 896V128h768v768H128zm291.712-327.296 128 102.4 180.16-201.792-47.744-42.624-139.84 156.608-128-102.4-180.16 201.792 47.744 42.624 139.84-156.608zM816 352a48 48 0 1 0-96 0 48 48 0 0 0 96 0z\"},null,-1),XK=[YK];function JK(e,t,n,o,l,u){return b(),F(\"svg\",GK,XK)}var QK=V(KK,[[\"render\",JK],[\"__file\",\"trend-charts.vue\"]]),ZK={name:\"TrophyBase\"},eG={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},tG=f(\"path\",{d:\"M918.4 201.6c-6.4-6.4-12.8-9.6-22.4-9.6H768V96c0-9.6-3.2-16-9.6-22.4C752 67.2 745.6 64 736 64H288c-9.6 0-16 3.2-22.4 9.6C259.2 80 256 86.4 256 96v96H128c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 16-9.6 22.4 3.2 108.8 25.6 185.6 64 224 34.4 34.4 77.56 55.65 127.65 61.99 10.91 20.44 24.78 39.25 41.95 56.41 40.86 40.86 91 65.47 150.4 71.9V768h-96c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h256c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6h-96V637.26c59.4-7.71 109.54-30.01 150.4-70.86 17.2-17.2 31.51-36.06 42.81-56.55 48.93-6.51 90.02-27.7 126.79-61.85 38.4-38.4 60.8-112 64-224 0-6.4-3.2-16-9.6-22.4zM256 438.4c-19.2-6.4-35.2-19.2-51.2-35.2-22.4-22.4-35.2-70.4-41.6-147.2H256v182.4zm390.4 80C608 553.6 566.4 576 512 576s-99.2-19.2-134.4-57.6C342.4 480 320 438.4 320 384V128h384v256c0 54.4-19.2 99.2-57.6 134.4zm172.8-115.2c-16 16-32 25.6-51.2 35.2V256h92.8c-6.4 76.8-19.2 124.8-41.6 147.2zM768 896H256c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h512c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6z\",fill:\"currentColor\"},null,-1),nG=[tG];function oG(e,t,n,o,l,u){return b(),F(\"svg\",eG,nG)}var lG=V(ZK,[[\"render\",oG],[\"__file\",\"trophy-base.vue\"]]),uG={name:\"Trophy\"},aG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rG=f(\"path\",{fill:\"currentColor\",d:\"M480 896V702.08A256.256 256.256 0 0 1 264.064 512h-32.64a96 96 0 0 1-91.968-68.416L93.632 290.88a76.8 76.8 0 0 1 73.6-98.88H256V96a32 32 0 0 1 32-32h448a32 32 0 0 1 32 32v96h88.768a76.8 76.8 0 0 1 73.6 98.88L884.48 443.52A96 96 0 0 1 792.576 512h-32.64A256.256 256.256 0 0 1 544 702.08V896h128a32 32 0 1 1 0 64H352a32 32 0 1 1 0-64h128zm224-448V128H320v320a192 192 0 1 0 384 0zm64 0h24.576a32 32 0 0 0 30.656-22.784l45.824-152.768A12.8 12.8 0 0 0 856.768 256H768v192zm-512 0V256h-88.768a12.8 12.8 0 0 0-12.288 16.448l45.824 152.768A32 32 0 0 0 231.424 448H256z\"},null,-1),sG=[rG];function iG(e,t,n,o,l,u){return b(),F(\"svg\",aG,sG)}var cG=V(uG,[[\"render\",iG],[\"__file\",\"trophy.vue\"]]),dG={name:\"TurnOff\"},fG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pG=f(\"path\",{fill:\"currentColor\",d:\"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z\"},null,-1),vG=f(\"path\",{fill:\"currentColor\",d:\"M329.956 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z\"},null,-1),hG=[pG,vG];function _G(e,t,n,o,l,u){return b(),F(\"svg\",fG,hG)}var mG=V(dG,[[\"render\",_G],[\"__file\",\"turn-off.vue\"]]),gG={name:\"Umbrella\"},bG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yG=f(\"path\",{fill:\"currentColor\",d:\"M320 768a32 32 0 1 1 64 0 64 64 0 0 0 128 0V512H64a448 448 0 1 1 896 0H576v256a128 128 0 1 1-256 0zm570.688-320a384.128 384.128 0 0 0-757.376 0h757.376z\"},null,-1),wG=[yG];function CG(e,t,n,o,l,u){return b(),F(\"svg\",bG,wG)}var EG=V(gG,[[\"render\",CG],[\"__file\",\"umbrella.vue\"]]),FG={name:\"Unlock\"},AG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DG=f(\"path\",{fill:\"currentColor\",d:\"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z\"},null,-1),BG=f(\"path\",{fill:\"currentColor\",d:\"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm178.304-295.296A192.064 192.064 0 0 0 320 320v64h352l96 38.4V448H256V320a256 256 0 0 1 493.76-95.104l-59.456 23.808z\"},null,-1),xG=[DG,BG];function $G(e,t,n,o,l,u){return b(),F(\"svg\",AG,xG)}var SG=V(FG,[[\"render\",$G],[\"__file\",\"unlock.vue\"]]),kG={name:\"UploadFilled\"},PG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LG=f(\"path\",{fill:\"currentColor\",d:\"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z\"},null,-1),TG=[LG];function zG(e,t,n,o,l,u){return b(),F(\"svg\",PG,TG)}var MG=V(kG,[[\"render\",zG],[\"__file\",\"upload-filled.vue\"]]),VG={name:\"Upload\"},IG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HG=f(\"path\",{fill:\"currentColor\",d:\"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248L544 253.696z\"},null,-1),RG=[HG];function NG(e,t,n,o,l,u){return b(),F(\"svg\",IG,RG)}var OG=V(VG,[[\"render\",NG],[\"__file\",\"upload.vue\"]]),UG={name:\"UserFilled\"},WG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qG=f(\"path\",{fill:\"currentColor\",d:\"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z\"},null,-1),jG=[qG];function KG(e,t,n,o,l,u){return b(),F(\"svg\",WG,jG)}var GG=V(UG,[[\"render\",KG],[\"__file\",\"user-filled.vue\"]]),YG={name:\"User\"},XG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JG=f(\"path\",{fill:\"currentColor\",d:\"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0z\"},null,-1),QG=[JG];function ZG(e,t,n,o,l,u){return b(),F(\"svg\",XG,QG)}var eY=V(YG,[[\"render\",ZG],[\"__file\",\"user.vue\"]]),tY={name:\"Van\"},nY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oY=f(\"path\",{fill:\"currentColor\",d:\"M128.896 736H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v96h164.544a32 32 0 0 1 31.616 27.136l54.144 352A32 32 0 0 1 922.688 736h-91.52a144 144 0 1 1-286.272 0H415.104a144 144 0 1 1-286.272 0zm23.36-64a143.872 143.872 0 0 1 239.488 0H568.32c17.088-25.6 42.24-45.376 71.744-55.808V256H128v416h24.256zm655.488 0h77.632l-19.648-128H704v64.896A144 144 0 0 1 807.744 672zm48.128-192-14.72-96H704v96h151.872zM688 832a80 80 0 1 0 0-160 80 80 0 0 0 0 160zm-416 0a80 80 0 1 0 0-160 80 80 0 0 0 0 160z\"},null,-1),lY=[oY];function uY(e,t,n,o,l,u){return b(),F(\"svg\",nY,lY)}var aY=V(tY,[[\"render\",uY],[\"__file\",\"van.vue\"]]),rY={name:\"VideoCameraFilled\"},sY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iY=f(\"path\",{fill:\"currentColor\",d:\"m768 576 192-64v320l-192-64v96a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V480a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v96zM192 768v64h384v-64H192zm192-480a160 160 0 0 1 320 0 160 160 0 0 1-320 0zm64 0a96 96 0 1 0 192.064-.064A96 96 0 0 0 448 288zm-320 32a128 128 0 1 1 256.064.064A128 128 0 0 1 128 320zm64 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z\"},null,-1),cY=[iY];function dY(e,t,n,o,l,u){return b(),F(\"svg\",sY,cY)}var fY=V(rY,[[\"render\",dY],[\"__file\",\"video-camera-filled.vue\"]]),pY={name:\"VideoCamera\"},vY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hY=f(\"path\",{fill:\"currentColor\",d:\"M704 768V256H128v512h576zm64-416 192-96v512l-192-96v128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 71.552v176.896l128 64V359.552l-128 64zM192 320h192v64H192v-64z\"},null,-1),_Y=[hY];function mY(e,t,n,o,l,u){return b(),F(\"svg\",vY,_Y)}var gY=V(pY,[[\"render\",mY],[\"__file\",\"video-camera.vue\"]]),bY={name:\"VideoPause\"},yY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wY=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-96-544q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32zm192 0q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32z\"},null,-1),CY=[wY];function EY(e,t,n,o,l,u){return b(),F(\"svg\",yY,CY)}var FY=V(bY,[[\"render\",EY],[\"__file\",\"video-pause.vue\"]]),AY={name:\"VideoPlay\"},DY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BY=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-48-247.616L668.608 512 464 375.616v272.768zm10.624-342.656 249.472 166.336a48 48 0 0 1 0 79.872L474.624 718.272A48 48 0 0 1 400 678.336V345.6a48 48 0 0 1 74.624-39.936z\"},null,-1),xY=[BY];function $Y(e,t,n,o,l,u){return b(),F(\"svg\",DY,xY)}var SY=V(AY,[[\"render\",$Y],[\"__file\",\"video-play.vue\"]]),kY={name:\"View\"},PY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LY=f(\"path\",{fill:\"currentColor\",d:\"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z\"},null,-1),TY=[LY];function zY(e,t,n,o,l,u){return b(),F(\"svg\",PY,TY)}var Rf=V(kY,[[\"render\",zY],[\"__file\",\"view.vue\"]]),MY={name:\"WalletFilled\"},VY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IY=f(\"path\",{fill:\"currentColor\",d:\"M688 512a112 112 0 1 0 0 224h208v160H128V352h768v160H688zm32 160h-32a48 48 0 0 1 0-96h32a48 48 0 0 1 0 96zm-80-544 128 160H384l256-160z\"},null,-1),HY=[IY];function RY(e,t,n,o,l,u){return b(),F(\"svg\",VY,HY)}var NY=V(MY,[[\"render\",RY],[\"__file\",\"wallet-filled.vue\"]]),OY={name:\"Wallet\"},UY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WY=f(\"path\",{fill:\"currentColor\",d:\"M640 288h-64V128H128v704h384v32a32 32 0 0 0 32 32H96a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32v192z\"},null,-1),qY=f(\"path\",{fill:\"currentColor\",d:\"M128 320v512h768V320H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32z\"},null,-1),jY=f(\"path\",{fill:\"currentColor\",d:\"M704 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z\"},null,-1),KY=[WY,qY,jY];function GY(e,t,n,o,l,u){return b(),F(\"svg\",UY,KY)}var YY=V(OY,[[\"render\",GY],[\"__file\",\"wallet.vue\"]]),XY={name:\"WarnTriangleFilled\"},JY={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},QY=f(\"path\",{d:\"M928.99 755.83 574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z\",fill:\"currentColor\"},null,-1),ZY=[QY];function eX(e,t,n,o,l,u){return b(),F(\"svg\",JY,ZY)}var tX=V(XY,[[\"render\",eX],[\"__file\",\"warn-triangle-filled.vue\"]]),nX={name:\"WarningFilled\"},oX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lX=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z\"},null,-1),uX=[lX];function aX(e,t,n,o,l,u){return b(),F(\"svg\",oX,uX)}var Xr=V(nX,[[\"render\",aX],[\"__file\",\"warning-filled.vue\"]]),rX={name:\"Warning\"},sX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iX=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"},null,-1),cX=[iX];function dX(e,t,n,o,l,u){return b(),F(\"svg\",sX,cX)}var fX=V(rX,[[\"render\",dX],[\"__file\",\"warning.vue\"]]),pX={name:\"Watch\"},vX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hX=f(\"path\",{fill:\"currentColor\",d:\"M512 768a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),_X=f(\"path\",{fill:\"currentColor\",d:\"M480 352a32 32 0 0 1 32 32v160a32 32 0 0 1-64 0V384a32 32 0 0 1 32-32z\"},null,-1),mX=f(\"path\",{fill:\"currentColor\",d:\"M480 512h128q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm128-256V128H416v128h-64V64h320v192h-64zM416 768v128h192V768h64v192H352V768h64z\"},null,-1),gX=[hX,_X,mX];function bX(e,t,n,o,l,u){return b(),F(\"svg\",vX,gX)}var yX=V(pX,[[\"render\",bX],[\"__file\",\"watch.vue\"]]),wX={name:\"Watermelon\"},CX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EX=f(\"path\",{fill:\"currentColor\",d:\"m683.072 600.32-43.648 162.816-61.824-16.512 53.248-198.528L576 493.248l-158.4 158.4-45.248-45.248 158.4-158.4-55.616-55.616-198.528 53.248-16.512-61.824 162.816-43.648L282.752 200A384 384 0 0 0 824 741.248L683.072 600.32zm231.552 141.056a448 448 0 1 1-632-632l632 632z\"},null,-1),FX=[EX];function AX(e,t,n,o,l,u){return b(),F(\"svg\",CX,FX)}var DX=V(wX,[[\"render\",AX],[\"__file\",\"watermelon.vue\"]]),BX={name:\"WindPower\"},xX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$X=f(\"path\",{fill:\"currentColor\",d:\"M160 64q32 0 32 32v832q0 32-32 32t-32-32V96q0-32 32-32zm416 354.624 128-11.584V168.96l-128-11.52v261.12zm-64 5.824V151.552L320 134.08V160h-64V64l616.704 56.064A96 96 0 0 1 960 215.68v144.64a96 96 0 0 1-87.296 95.616L256 512V224h64v217.92l192-17.472zm256-23.232 98.88-8.96A32 32 0 0 0 896 360.32V215.68a32 32 0 0 0-29.12-31.872l-98.88-8.96v226.368z\"},null,-1),SX=[$X];function kX(e,t,n,o,l,u){return b(),F(\"svg\",xX,SX)}var PX=V(BX,[[\"render\",kX],[\"__file\",\"wind-power.vue\"]]),LX={name:\"ZoomIn\"},TX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zX=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zm-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96z\"},null,-1),MX=[zX];function VX(e,t,n,o,l,u){return b(),F(\"svg\",TX,MX)}var Nf=V(LX,[[\"render\",VX],[\"__file\",\"zoom-in.vue\"]]),IX={name:\"ZoomOut\"},HX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RX=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zM352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),NX=[RX];function OX(e,t,n,o,l,u){return b(),F(\"svg\",HX,NX)}var UX=V(IX,[[\"render\",OX],[\"__file\",\"zoom-out.vue\"]]),B0=Object.freeze(Object.defineProperty({__proto__:null,AddLocation:N9,Aim:G9,AlarmClock:tg,Apple:rg,ArrowDown:pa,ArrowDownBold:pg,ArrowLeft:kf,ArrowLeftBold:Fg,ArrowRight:wu,ArrowRightBold:zg,ArrowUp:pc,ArrowUpBold:jg,Avatar:o7,Back:c7,Baseball:m7,Basketball:E7,Bell:V7,BellFilled:$7,Bicycle:U7,Bottom:ib,BottomLeft:X7,BottomRight:ob,Bowl:hb,Box:Eb,Briefcase:$b,Brush:Nb,BrushFilled:zb,Burger:Kb,Calendar:Zb,Camera:dy,CameraFilled:uy,CaretBottom:my,CaretLeft:Ey,CaretRight:$y,CaretTop:zy,Cellphone:Ny,ChatDotRound:Gy,ChatDotSquare:tw,ChatLineRound:sw,ChatLineSquare:hw,ChatRound:ww,ChatSquare:Bw,Check:vc,Checked:Iw,Cherry:Ww,Chicken:Xw,ChromeFilled:lC,CircleCheck:Yr,CircleCheckFilled:cC,CircleClose:va,CircleCloseFilled:hc,CirclePlus:NC,CirclePlusFilled:LC,Clock:YC,Close:$l,CloseBold:tE,Cloudy:fE,Coffee:FE,CoffeeCup:gE,Coin:PE,ColdDrink:IE,Collection:JE,CollectionTag:WE,Comment:oF,Compass:cF,Connection:mF,Coordinate:FF,CopyDocument:kF,Cpu:IF,CreditCard:qF,Crop:QF,DArrowLeft:Pf,DArrowRight:Lf,DCaret:vA,DataAnalysis:yA,DataBoard:xA,DataLine:TA,Delete:Tf,DeleteFilled:RA,DeleteLocation:GA,Dessert:uD,Discount:fD,Dish:FD,DishDot:gD,Document:zf,DocumentAdd:SD,DocumentChecked:MD,DocumentCopy:OD,DocumentDelete:GD,DocumentRemove:eB,Download:dB,Drizzling:mB,Edit:SB,EditPen:EB,Eleme:OB,ElemeFilled:MB,ElementPlus:GB,Expand:ex,Failed:ax,Female:vx,Files:yx,Film:Bx,Filter:Lx,Finished:Hx,FirstAidKit:jx,Flag:Qx,Fold:l$,Folder:R$,FolderAdd:c$,FolderChecked:_$,FolderDelete:C$,FolderOpened:x$,FolderRemove:T$,Food:j$,Football:Z$,ForkSpoon:uS,Fries:dS,FullScreen:mS,Goblet:NS,GobletFull:ES,GobletSquare:zS,GobletSquareFull:$S,GoldMedal:GS,Goods:ak,GoodsFilled:ek,Grape:fk,Grid:gk,Guide:Ak,Handbag:kk,Headset:Vk,Help:Yk,HelpFilled:Uk,Hide:Mf,Histogram:rP,HomeFilled:pP,HotWater:bP,House:AP,IceCream:UP,IceCreamRound:kP,IceCreamSquare:VP,IceDrink:YP,IceTea:tL,InfoFilled:_c,Iphone:fL,Key:gL,KnifeFork:FL,Lightning:kL,Link:VL,List:UL,Loading:ha,Location:hT,LocationFilled:eT,LocationInformation:sT,Lock:CT,Lollipop:xT,MagicStick:TT,Magnet:RT,Male:GT,Management:ez,MapLocation:rz,Medal:vz,Memo:Cz,Menu:xz,Message:Nz,MessageBox:Tz,Mic:Kz,Microphone:Zz,MilkTea:uM,Minus:Vf,Money:gM,Monitor:FM,Moon:VM,MoonNight:kM,More:If,MoreFilled:ti,MostlyCloudy:ZM,Mouse:aV,Mug:fV,Mute:DV,MuteNotification:bV,NoSmoking:PV,Notebook:HV,Notification:jV,Odometer:eI,OfficeBuilding:sI,Open:hI,Operation:wI,Opportunity:BI,Orange:LI,Paperclip:HI,PartlyCloudy:jI,Pear:QI,Phone:cH,PhoneFilled:lH,Picture:SH,PictureFilled:_H,PictureRounded:EH,PieChart:VH,Place:qH,Platform:JH,Plus:Hf,Pointer:sR,Position:vR,Postcard:wR,Pouring:BR,Present:MR,PriceTag:UR,Printer:YR,Promotion:tN,QuartzWatch:iN,QuestionFilled:hN,Rank:wN,Reading:zN,ReadingLamp:xN,Refresh:ZN,RefreshLeft:NN,RefreshRight:KN,Refrigerator:uO,Remove:gO,RemoveFilled:dO,Right:FO,ScaleToOriginal:SO,School:IO,Scissor:WO,Search:XO,Select:nU,Sell:sU,SemiSelect:vU,Service:yU,SetUp:$U,Setting:zU,Share:NU,Ship:KU,Shop:ZU,ShoppingBag:aW,ShoppingCart:bW,ShoppingCartFull:pW,ShoppingTrolley:AW,Smoking:PW,Soccer:IW,SoldOut:WW,Sort:sq,SortDown:XW,SortUp:nq,Stamp:vq,Star:Dq,StarFilled:yq,Stopwatch:Lq,SuccessFilled:mc,Sugar:Wq,Suitcase:oj,SuitcaseLine:Xq,Sunny:ij,Sunrise:hj,Sunset:wj,Switch:Nj,SwitchButton:xj,SwitchFilled:zj,TakeawayBox:Kj,Ticket:Zj,Tickets:uK,Timer:pK,ToiletPaper:yK,Tools:DK,Top:jK,TopLeft:LK,TopRight:RK,TrendCharts:QK,Trophy:cG,TrophyBase:lG,TurnOff:mG,Umbrella:EG,Unlock:SG,Upload:OG,UploadFilled:MG,User:eY,UserFilled:GG,Van:aY,VideoCamera:gY,VideoCameraFilled:fY,VideoPause:FY,VideoPlay:SY,View:Rf,Wallet:YY,WalletFilled:NY,WarnTriangleFilled:tX,Warning:fX,WarningFilled:Xr,Watch:yX,Watermelon:DX,WindPower:PX,ZoomIn:Nf,ZoomOut:UX},Symbol.toStringTag,{value:\"Module\"}));const Of=\"__epPropKey\",He=e=>e,WX=e=>dt(e)&&!!e[Of],Jr=(e,t)=>{if(!dt(e)||WX(e))return e;const{values:n,required:o,default:l,type:u,validator:a}=e,s={type:u,required:!!o,validator:n||a?i=>{let p=!1,m=[];if(n&&(m=Array.from(n),st(e,\"default\")&&m.push(l),p||(p=m.includes(i))),a&&(p||(p=a(i))),!p&&m.length>0){const v=[...new Set(m)].map(_=>JSON.stringify(_)).join(\", \");Jp(`Invalid prop: validation failed${t?` for prop \"${t}\"`:\"\"}. Expected one of [${v}], got value ${JSON.stringify(i)}.`)}return p}:void 0,[Of]:!0};return st(e,\"default\")&&(s.default=l),s},et=e=>xf(Object.entries(e).map(([t,n])=>[t,Jr(n,t)])),Tt=He([String,Object,Function]),Uf={Close:$l},Wf={Close:$l,SuccessFilled:mc,InfoFilled:_c,WarningFilled:Xr,CircleCloseFilled:hc},au={success:mc,warning:Xr,error:hc,info:_c},qX={validating:ha,success:Yr,error:va},Ft=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t!=null?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},qf=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Nt=e=>(e.install=vt,e),jX=(...e)=>t=>{e.forEach(n=>{Ge(n)?n(t):n.value=t})},Lt={tab:\"Tab\",enter:\"Enter\",space:\"Space\",left:\"ArrowLeft\",up:\"ArrowUp\",right:\"ArrowRight\",down:\"ArrowDown\",esc:\"Escape\",delete:\"Delete\",backspace:\"Backspace\",numpadEnter:\"NumpadEnter\",pageUp:\"PageUp\",pageDown:\"PageDown\",home:\"Home\",end:\"End\"},bt=\"update:modelValue\",Jn=\"change\",Dl=\"input\",Cu=[\"\",\"default\",\"small\",\"large\"],KX={large:40,default:32,small:24},GX=e=>KX[e||\"default\"],gc=e=>[\"\",...Cu].includes(e);var er=(e=>(e[e.TEXT=1]=\"TEXT\",e[e.CLASS=2]=\"CLASS\",e[e.STYLE=4]=\"STYLE\",e[e.PROPS=8]=\"PROPS\",e[e.FULL_PROPS=16]=\"FULL_PROPS\",e[e.HYDRATE_EVENTS=32]=\"HYDRATE_EVENTS\",e[e.STABLE_FRAGMENT=64]=\"STABLE_FRAGMENT\",e[e.KEYED_FRAGMENT=128]=\"KEYED_FRAGMENT\",e[e.UNKEYED_FRAGMENT=256]=\"UNKEYED_FRAGMENT\",e[e.NEED_PATCH=512]=\"NEED_PATCH\",e[e.DYNAMIC_SLOTS=1024]=\"DYNAMIC_SLOTS\",e[e.HOISTED=-1]=\"HOISTED\",e[e.BAIL=-2]=\"BAIL\",e))(er||{});const YX=e=>{if(!cn(e))return{};const t=e.props||{},n=(cn(e.type)?e.type.props:void 0)||{},o={};return Object.keys(n).forEach(l=>{st(n[l],\"default\")&&(o[l]=n[l].default)}),Object.keys(t).forEach(l=>{o[Ln(l)]=t[l]}),o},Fr=e=>{const t=qe(e)?e:[e],n=[];return t.forEach(o=>{qe(o)?n.push(...Fr(o)):cn(o)&&qe(o.children)?n.push(...Fr(o.children)):n.push(o)}),n},jf=e=>/([(\\uAC00-\\uD7AF)|(\\u3130-\\u318F)])+/gi.test(e),bc=()=>Math.floor(Math.random()*1e4),So=e=>e,XX=[\"class\",\"style\"],JX=/^on[A-Z]/,QX=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=U(()=>((n==null?void 0:n.value)||[]).concat(XX)),l=pt();return U(l?()=>{var u;return xf(Object.entries((u=l.proxy)==null?void 0:u.$attrs).filter(([a])=>!o.value.includes(a)&&!(t&&JX.test(a))))}:()=>({}))},Kf=Symbol(\"buttonGroupContextKey\"),Eu=Symbol(\"checkboxGroupContextKey\"),Gf=Symbol(\"collapseContextKey\"),Yf=Symbol(),Xf=Symbol(\"dialogInjectionKey\"),Fu=Symbol(\"formContextKey\"),Sl=Symbol(\"formItemContextKey\"),Jf=Symbol(\"elPaginationKey\"),Qf=Symbol(\"radioGroupKey\"),Zf=Symbol(\"scrollbarContextKey\"),e4=Symbol(\"uploadContextKey\"),yc=Symbol(\"popper\"),t4=Symbol(\"popperContent\"),wc=Symbol(\"elTooltip\"),n4=e=>{const t=pt();return U(()=>{var n,o;return(o=((n=t.proxy)==null?void 0:n.$props)[e])!=null?o:void 0})},Ar=L();function Vo(e,t=void 0){const n=pt()?Xe(Yf,Ar):Ar;return e?U(()=>{var o,l;return(l=(o=n.value)==null?void 0:o[e])!=null?l:t}):n}const ZX=(e,t,n=!1)=>{var o;const l=!!pt(),u=l?Vo():void 0,a=(o=t==null?void 0:t.provide)!=null?o:l?Dt:void 0;if(!a)return;const r=U(()=>{const s=h(e);return u!=null&&u.value?eJ(u.value,s):s});return a(Yf,r),(n||!Ar.value)&&(Ar.value=r.value),r},eJ=(e,t)=>{var n;const o=[...new Set([...D0(e),...D0(t)])],l={};for(const u of o)l[u]=(n=t[u])!=null?n:e[u];return l},Io=Jr({type:String,values:Cu,required:!1}),dn=(e,t={})=>{const n=L(void 0),o=t.prop?n:n4(\"size\"),l=t.global?n:Vo(\"size\"),u=t.form?{size:void 0}:Xe(Fu,void 0),a=t.formItem?{size:void 0}:Xe(Sl,void 0);return U(()=>o.value||h(e)||(a==null?void 0:a.size)||(u==null?void 0:u.size)||l.value||\"\")},ul=e=>{const t=n4(\"disabled\"),n=Xe(Fu,void 0);return U(()=>t.value||h(e)||(n==null?void 0:n.disabled)||!1)},ua=({from:e,replacement:t,scope:n,version:o,ref:l,type:u=\"API\"},a)=>{Me(()=>h(a),r=>{},{immediate:!0})},o4=(e,t,n)=>{let o={offsetX:0,offsetY:0};const l=r=>{const s=r.clientX,i=r.clientY,{offsetX:p,offsetY:m}=o,v=e.value.getBoundingClientRect(),_=v.left,g=v.top,y=v.width,w=v.height,E=document.documentElement.clientWidth,D=document.documentElement.clientHeight,C=-_+p,B=-g+m,$=E-_-y+p,k=D-g-w+m,P=H=>{const j=Math.min(Math.max(p+H.clientX-s,C),$),X=Math.min(Math.max(m+H.clientY-i,B),k);o={offsetX:j,offsetY:X},e.value.style.transform=`translate(${Xn(j)}, ${Xn(X)})`},T=()=>{document.removeEventListener(\"mousemove\",P),document.removeEventListener(\"mouseup\",T)};document.addEventListener(\"mousemove\",P),document.addEventListener(\"mouseup\",T)},u=()=>{t.value&&e.value&&t.value.addEventListener(\"mousedown\",l)},a=()=>{t.value&&e.value&&t.value.removeEventListener(\"mousedown\",l)};ot(()=>{Do(()=>{n.value?u():a()})}),Mt(()=>{a()})},tJ=e=>({focus:()=>{var t,n;(n=(t=e.value)==null?void 0:t.focus)==null||n.call(t)}}),Qr=\"el\",nJ=\"is-\",dl=(e,t,n,o,l)=>{let u=`${e}-${t}`;return n&&(u+=`-${n}`),o&&(u+=`__${o}`),l&&(u+=`--${l}`),u},Ve=e=>{const t=Vo(\"namespace\",Qr);return{namespace:t,b:(g=\"\")=>dl(t.value,e,g,\"\",\"\"),e:g=>g?dl(t.value,e,\"\",g,\"\"):\"\",m:g=>g?dl(t.value,e,\"\",\"\",g):\"\",be:(g,y)=>g&&y?dl(t.value,e,g,y,\"\"):\"\",em:(g,y)=>g&&y?dl(t.value,e,\"\",g,y):\"\",bm:(g,y)=>g&&y?dl(t.value,e,g,\"\",y):\"\",bem:(g,y,w)=>g&&y&&w?dl(t.value,e,g,y,w):\"\",is:(g,...y)=>{const w=y.length>=1?y[0]:!0;return g&&w?`${nJ}${g}`:\"\"},cssVar:g=>{const y={};for(const w in g)g[w]&&(y[`--${t.value}-${w}`]=g[w]);return y},cssVarName:g=>`--${t.value}-${g}`,cssVarBlock:g=>{const y={};for(const w in g)g[w]&&(y[`--${t.value}-${e}-${w}`]=g[w]);return y},cssVarBlockName:g=>`--${t.value}-${e}-${g}`}},oJ={prefix:Math.floor(Math.random()*1e4),current:0},lJ=Symbol(\"elIdInjection\"),ol=e=>{const t=Xe(lJ,oJ),n=Vo(\"namespace\",Qr);return U(()=>h(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Ho=()=>{const e=Xe(Fu,void 0),t=Xe(Sl,void 0);return{form:e,formItem:t}},_a=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=L(!1)),o||(o=L(!1));const l=L();let u;const a=U(()=>{var r;return!!(!e.label&&t&&t.inputIds&&((r=t.inputIds)==null?void 0:r.length)<=1)});return ot(()=>{u=Me([Tn(e,\"id\"),n],([r,s])=>{const i=r!=null?r:s?void 0:ol().value;i!==l.value&&(t!=null&&t.removeInputId&&(l.value&&t.removeInputId(l.value),!(o!=null&&o.value)&&!s&&i&&t.addInputId(i)),l.value=i)},{immediate:!0})}),In(()=>{u&&u(),t!=null&&t.removeInputId&&l.value&&t.removeInputId(l.value)}),{isLabeledByFormItem:a,inputId:l}};var uJ={name:\"en\",el:{colorpicker:{confirm:\"OK\",clear:\"Clear\",defaultLabel:\"color picker\",description:\"current color is {color}. press enter to select a new color.\"},datepicker:{now:\"Now\",today:\"Today\",cancel:\"Cancel\",clear:\"Clear\",confirm:\"OK\",dateTablePrompt:\"Use the arrow keys and enter to select the day of the month\",monthTablePrompt:\"Use the arrow keys and enter to select the month\",yearTablePrompt:\"Use the arrow keys and enter to select the year\",selectedDate:\"Selected date\",selectDate:\"Select date\",selectTime:\"Select time\",startDate:\"Start Date\",startTime:\"Start Time\",endDate:\"End Date\",endTime:\"End Time\",prevYear:\"Previous Year\",nextYear:\"Next Year\",prevMonth:\"Previous Month\",nextMonth:\"Next Month\",year:\"\",month1:\"January\",month2:\"February\",month3:\"March\",month4:\"April\",month5:\"May\",month6:\"June\",month7:\"July\",month8:\"August\",month9:\"September\",month10:\"October\",month11:\"November\",month12:\"December\",week:\"week\",weeks:{sun:\"Sun\",mon:\"Mon\",tue:\"Tue\",wed:\"Wed\",thu:\"Thu\",fri:\"Fri\",sat:\"Sat\"},weeksFull:{sun:\"Sunday\",mon:\"Monday\",tue:\"Tuesday\",wed:\"Wednesday\",thu:\"Thursday\",fri:\"Friday\",sat:\"Saturday\"},months:{jan:\"Jan\",feb:\"Feb\",mar:\"Mar\",apr:\"Apr\",may:\"May\",jun:\"Jun\",jul:\"Jul\",aug:\"Aug\",sep:\"Sep\",oct:\"Oct\",nov:\"Nov\",dec:\"Dec\"}},inputNumber:{decrease:\"decrease number\",increase:\"increase number\"},select:{loading:\"Loading\",noMatch:\"No matching data\",noData:\"No data\",placeholder:\"Select\"},dropdown:{toggleDropdown:\"Toggle Dropdown\"},cascader:{noMatch:\"No matching data\",loading:\"Loading\",placeholder:\"Select\",noData:\"No data\"},pagination:{goto:\"Go to\",pagesize:\"/page\",total:\"Total {total}\",pageClassifier:\"\",deprecationWarning:\"Deprecated usages detected, please refer to the el-pagination documentation for more details\"},dialog:{close:\"Close this dialog\"},drawer:{close:\"Close this dialog\"},messagebox:{title:\"Message\",confirm:\"OK\",cancel:\"Cancel\",error:\"Illegal input\",close:\"Close this dialog\"},upload:{deleteTip:\"press delete to remove\",delete:\"Delete\",preview:\"Preview\",continue:\"Continue\"},slider:{defaultLabel:\"slider between {min} and {max}\",defaultRangeStartLabel:\"pick start value\",defaultRangeEndLabel:\"pick end value\"},table:{emptyText:\"No Data\",confirmFilter:\"Confirm\",resetFilter:\"Reset\",clearFilter:\"All\",sumText:\"Sum\"},tree:{emptyText:\"No Data\"},transfer:{noMatch:\"No matching data\",noData:\"No data\",titles:[\"List 1\",\"List 2\"],filterPlaceholder:\"Enter keyword\",noCheckedFormat:\"{total} items\",hasCheckedFormat:\"{checked}/{total} checked\"},image:{error:\"FAILED\"},pageHeader:{title:\"Back\"},popconfirm:{confirmButtonText:\"Yes\",cancelButtonText:\"No\"}}};const aJ=e=>(t,n)=>rJ(t,n,h(e)),rJ=(e,t,n)=>en(n,e,e).replace(/\\{(\\w+)\\}/g,(o,l)=>{var u;return`${(u=t==null?void 0:t[l])!=null?u:`{${l}}`}`}),sJ=e=>{const t=U(()=>h(e).name),n=yt(e)?e:L(e);return{lang:t,locale:n,t:aJ(e)}},Dn=()=>{const e=Vo(\"locale\");return sJ(U(()=>e.value||uJ))},l4=e=>{yt(e)||An(\"[useLockscreen]\",\"You need to pass a ref param to this function\");const t=Ve(\"popup\"),n=h1(()=>t.bm(\"parent\",\"hidden\"));if(!_t||Al(document.body,n.value))return;let o=0,l=!1,u=\"0\";const a=()=>{setTimeout(()=>{Gn(document.body,n.value),l&&(document.body.style.width=u)},200)};Me(e,r=>{if(!r){a();return}l=!Al(document.body,n.value),l&&(u=document.body.style.width),o=P9(t.namespace.value);const s=document.documentElement.clientHeight<document.body.scrollHeight,i=Eo(document.body,\"overflowY\");o>0&&(s||i===\"scroll\")&&l&&(document.body.style.width=`calc(100% - ${o}px)`),Fo(document.body,n.value)}),Jd(()=>a())},iJ=Jr({type:He(Boolean),default:null}),cJ=Jr({type:He(Function)}),dJ=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],l={[e]:iJ,[n]:cJ};return{useModelToggle:({indicator:a,toggleReason:r,shouldHideWhenRouteChanges:s,shouldProceed:i,onShow:p,onHide:m})=>{const v=pt(),{emit:_}=v,g=v.props,y=U(()=>Ge(g[n])),w=U(()=>g[e]===null),E=P=>{a.value!==!0&&(a.value=!0,r&&(r.value=P),Ge(p)&&p(P))},D=P=>{a.value!==!1&&(a.value=!1,r&&(r.value=P),Ge(m)&&m(P))},C=P=>{if(g.disabled===!0||Ge(i)&&!i())return;const T=y.value&&_t;T&&_(t,!0),(w.value||!T)&&E(P)},B=P=>{if(g.disabled===!0||!_t)return;const T=y.value&&_t;T&&_(t,!1),(w.value||!T)&&D(P)},$=P=>{!Ut(P)||(g.disabled&&P?y.value&&_(t,!1):a.value!==P&&(P?E():D()))},k=()=>{a.value?B():C()};return Me(()=>g[e],$),s&&v.appContext.config.globalProperties.$route!==void 0&&Me(()=>({...v.proxy.$route}),()=>{s.value&&a.value&&B()}),ot(()=>{$(g[e])}),{hide:B,show:C,toggle:k,hasUpdateHandler:y}},useModelToggleProps:l,useModelToggleEmits:o}},fJ=(e,t)=>{let n;Me(()=>e.value,o=>{var l,u;o?(n=document.activeElement,yt(t)&&((u=(l=t.value).focus)==null||u.call(l))):n.focus()})},Cc=e=>{if(!e)return{onClick:vt,onMousedown:vt,onMouseup:vt};let t=!1,n=!1;return{onClick:a=>{t&&n&&e(a),t=n=!1},onMousedown:a=>{t=a.target===a.currentTarget},onMouseup:a=>{n=a.target===a.currentTarget}}};function pJ(){let e;const t=(o,l)=>{n(),e=window.setTimeout(o,l)},n=()=>window.clearTimeout(e);return Kr(()=>n()),{registerTimeout:t,cancelTimeout:n}}let Wl=[];const x0=e=>{const t=e;t.key===Lt.esc&&Wl.forEach(n=>n(t))},vJ=e=>{ot(()=>{Wl.length===0&&document.addEventListener(\"keydown\",x0),_t&&Wl.push(e)}),Mt(()=>{Wl=Wl.filter(t=>t!==e),Wl.length===0&&_t&&document.removeEventListener(\"keydown\",x0)})};let $0;const hJ=Vo(\"namespace\",Qr),u4=`${hJ.value}-popper-container-${bc()}`,a4=`#${u4}`,_J=()=>{const e=document.createElement(\"div\");return e.id=u4,document.body.appendChild(e),e},mJ=()=>{Hr(()=>{!_t||(!$0||!document.body.querySelector(a4))&&($0=_J())})},gJ=et({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),bJ=({showAfter:e,hideAfter:t,open:n,close:o})=>{const{registerTimeout:l}=pJ();return{onOpen:r=>{l(()=>{n(r)},h(e))},onClose:r=>{l(()=>{o(r)},h(t))}}},r4=Symbol(\"elForwardRef\"),yJ=e=>{Dt(r4,{setForwardRef:n=>{e.value=n}})},wJ=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),S0=L(0),Ml=()=>{const e=Vo(\"zIndex\",2e3),t=U(()=>e.value+S0.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(S0.value++,t.value)}};function CJ(e){const t=L();function n(){if(e.value==null)return;const{selectionStart:l,selectionEnd:u,value:a}=e.value;if(l==null||u==null)return;const r=a.slice(0,Math.max(0,l)),s=a.slice(Math.max(0,u));t.value={selectionStart:l,selectionEnd:u,value:a,beforeTxt:r,afterTxt:s}}function o(){if(e.value==null||t.value==null)return;const{value:l}=e.value,{beforeTxt:u,afterTxt:a,selectionStart:r}=t.value;if(u==null||a==null||r==null)return;let s=l.length;if(l.endsWith(a))s=l.length-a.length;else if(l.startsWith(u))s=u.length;else{const i=u[r-1],p=l.indexOf(i,r-1);p!==-1&&(s=p+1)}e.value.setSelectionRange(s,s)}return[n,o]}const EJ=et({zIndex:{type:He([Number,String]),default:100},target:{type:String,default:\"\"},offset:{type:Number,default:0},position:{type:String,values:[\"top\",\"bottom\"],default:\"top\"}}),FJ={scroll:({scrollTop:e,fixed:t})=>gt(e)&&Ut(t),[Jn]:e=>Ut(e)};var We=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const s4=\"ElAffix\",AJ=le({name:s4}),DJ=le({...AJ,props:EJ,emits:FJ,setup(e,{expose:t,emit:n}){const o=e,l=Ve(\"affix\"),u=Kn(),a=Kn(),r=Kn(),{height:s}=D9(),{height:i,width:p,top:m,bottom:v,update:_}=C0(a,{windowScroll:!1}),g=C0(u),y=L(!1),w=L(0),E=L(0),D=U(()=>({height:y.value?`${i.value}px`:\"\",width:y.value?`${p.value}px`:\"\"})),C=U(()=>{if(!y.value)return{};const k=o.offset?`${o.offset}px`:0;return{height:`${i.value}px`,width:`${p.value}px`,top:o.position===\"top\"?k:\"\",bottom:o.position===\"bottom\"?k:\"\",transform:E.value?`translateY(${E.value}px)`:\"\",zIndex:o.zIndex}}),B=()=>{if(!!r.value)if(w.value=r.value instanceof Window?document.documentElement.scrollTop:r.value.scrollTop||0,o.position===\"top\")if(o.target){const k=g.bottom.value-o.offset-i.value;y.value=o.offset>m.value&&g.bottom.value>0,E.value=k<0?k:0}else y.value=o.offset>m.value;else if(o.target){const k=s.value-g.top.value-o.offset-i.value;y.value=s.value-o.offset<v.value&&s.value>g.top.value,E.value=k<0?-k:0}else y.value=s.value-o.offset<v.value},$=()=>{_(),n(\"scroll\",{scrollTop:w.value,fixed:y.value})};return Me(y,k=>n(\"change\",k)),ot(()=>{var k;o.target?(u.value=(k=document.querySelector(o.target))!=null?k:void 0,u.value||An(s4,`Target is not existed: ${o.target}`)):u.value=document.documentElement,r.value=k9(a.value,!0),_()}),Gt(r,\"scroll\",$),Do(B),t({update:B,updateRoot:_}),(k,P)=>(b(),F(\"div\",{ref_key:\"root\",ref:a,class:K(h(l).b()),style:ut(h(D))},[f(\"div\",{class:K({[h(l).m(\"fixed\")]:y.value}),style:ut(h(C))},[ze(k.$slots,\"default\")],6)],6))}});var BJ=We(DJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/affix/src/affix.vue\"]]);const Vl=Ft(BJ),xJ=et({size:{type:He([Number,String])},color:{type:String}}),$J=le({name:\"ElIcon\",inheritAttrs:!1}),SJ=le({...$J,props:xJ,setup(e){const t=e,n=Ve(\"icon\"),o=U(()=>{const{size:l,color:u}=t;return!l&&!u?{}:{fontSize:jn(l)?void 0:Xn(l),\"--color\":u}});return(l,u)=>(b(),F(\"i\",kn({class:h(n).b(),style:h(o)},l.$attrs),[ze(l.$slots,\"default\")],16))}});var kJ=We(SJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue\"]]);const rt=Ft(kJ);let Nn;const PJ=`\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important;\n`,LJ=[\"letter-spacing\",\"line-height\",\"padding-top\",\"padding-bottom\",\"font-family\",\"font-weight\",\"font-size\",\"text-rendering\",\"text-transform\",\"width\",\"text-indent\",\"padding-left\",\"padding-right\",\"border-width\",\"box-sizing\"];function TJ(e){const t=window.getComputedStyle(e),n=t.getPropertyValue(\"box-sizing\"),o=Number.parseFloat(t.getPropertyValue(\"padding-bottom\"))+Number.parseFloat(t.getPropertyValue(\"padding-top\")),l=Number.parseFloat(t.getPropertyValue(\"border-bottom-width\"))+Number.parseFloat(t.getPropertyValue(\"border-top-width\"));return{contextStyle:LJ.map(a=>`${a}:${t.getPropertyValue(a)}`).join(\";\"),paddingSize:o,borderSize:l,boxSizing:n}}function k0(e,t=1,n){var o;Nn||(Nn=document.createElement(\"textarea\"),document.body.appendChild(Nn));const{paddingSize:l,borderSize:u,boxSizing:a,contextStyle:r}=TJ(e);Nn.setAttribute(\"style\",`${r};${PJ}`),Nn.value=e.value||e.placeholder||\"\";let s=Nn.scrollHeight;const i={};a===\"border-box\"?s=s+u:a===\"content-box\"&&(s=s-l),Nn.value=\"\";const p=Nn.scrollHeight-l;if(gt(t)){let m=p*t;a===\"border-box\"&&(m=m+l+u),s=Math.max(m,s),i.minHeight=`${m}px`}if(gt(n)){let m=p*n;a===\"border-box\"&&(m=m+l+u),s=Math.min(m,s)}return i.height=`${s}px`,(o=Nn.parentNode)==null||o.removeChild(Nn),Nn=void 0,i}const zJ=et({id:{type:String,default:void 0},size:Io,disabled:Boolean,modelValue:{type:He([String,Number,Object]),default:\"\"},type:{type:String,default:\"text\"},resize:{type:String,values:[\"none\",\"both\",\"horizontal\",\"vertical\"]},autosize:{type:He([Boolean,Object]),default:!1},autocomplete:{type:String,default:\"off\"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String,default:\"\"},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Tt},prefixIcon:{type:Tt},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:He([Object,Array,String]),default:()=>So({})}}),MJ={[bt]:e=>tt(e),input:e=>tt(e),change:e=>tt(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},VJ=[\"role\"],IJ=[\"id\",\"type\",\"disabled\",\"formatter\",\"parser\",\"readonly\",\"autocomplete\",\"tabindex\",\"aria-label\",\"placeholder\"],HJ=[\"id\",\"tabindex\",\"disabled\",\"readonly\",\"autocomplete\",\"aria-label\",\"placeholder\"],RJ=le({name:\"ElInput\",inheritAttrs:!1}),NJ=le({...RJ,props:zJ,emits:MJ,setup(e,{expose:t,emit:n}){const o=e,l={suffix:\"append\",prefix:\"prepend\"},u=pt(),a=o8(),r=To(),s=U(()=>{const ee={};return o.containerRole===\"combobox\"&&(ee[\"aria-haspopup\"]=a[\"aria-haspopup\"],ee[\"aria-owns\"]=a[\"aria-owns\"],ee[\"aria-expanded\"]=a[\"aria-expanded\"]),ee}),i=QX({excludeKeys:U(()=>Object.keys(s.value))}),{form:p,formItem:m}=Ho(),{inputId:v}=_a(o,{formItemContext:m}),_=dn(),g=ul(),y=Ve(\"input\"),w=Ve(\"textarea\"),E=Kn(),D=Kn(),C=L(!1),B=L(!1),$=L(!1),k=L(!1),P=L(),T=Kn(o.inputStyle),H=U(()=>E.value||D.value),j=U(()=>{var ee;return(ee=p==null?void 0:p.statusIcon)!=null?ee:!1}),X=U(()=>(m==null?void 0:m.validateState)||\"\"),W=U(()=>X.value&&qX[X.value]),N=U(()=>k.value?Rf:Mf),J=U(()=>[a.style,o.inputStyle]),be=U(()=>[o.inputStyle,T.value,{resize:o.resize}]),ve=U(()=>io(o.modelValue)?\"\":String(o.modelValue)),Ee=U(()=>o.clearable&&!g.value&&!o.readonly&&!!ve.value&&(C.value||B.value)),te=U(()=>o.showPassword&&!g.value&&!o.readonly&&!!ve.value&&(!!ve.value||C.value)),Z=U(()=>o.showWordLimit&&!!i.value.maxlength&&(o.type===\"text\"||o.type===\"textarea\")&&!g.value&&!o.readonly&&!o.showPassword),De=U(()=>Array.from(ve.value).length),Be=U(()=>!!Z.value&&De.value>Number(i.value.maxlength)),x=U(()=>!!r.suffix||!!o.suffixIcon||Ee.value||o.showPassword||Z.value||!!X.value&&j.value),[O,ye]=CJ(E);po(D,ee=>{if(!Z.value||o.resize!==\"both\")return;const Se=ee[0],{width:Ke}=Se.contentRect;P.value={right:`calc(100% - ${Ke+15+6}px)`}});const xe=()=>{const{type:ee,autosize:Se}=o;if(!(!_t||ee!==\"textarea\"))if(Se){const Ke=dt(Se)?Se.minRows:void 0,nt=dt(Se)?Se.maxRows:void 0;T.value={...k0(D.value,Ke,nt)}}else T.value={minHeight:k0(D.value).minHeight}},Pe=()=>{const ee=H.value;!ee||ee.value===ve.value||(ee.value=ve.value)},he=ee=>{const{el:Se}=u.vnode;if(!Se)return;const nt=Array.from(Se.querySelectorAll(`.${y.e(ee)}`)).find(Le=>Le.parentNode===Se);if(!nt)return;const we=l[ee];r[we]?nt.style.transform=`translateX(${ee===\"suffix\"?\"-\":\"\"}${Se.querySelector(`.${y.be(\"group\",we)}`).offsetWidth}px)`:nt.removeAttribute(\"style\")},Te=()=>{he(\"prefix\"),he(\"suffix\")},je=async ee=>{O();let{value:Se}=ee.target;if(o.formatter&&(Se=o.parser?o.parser(Se):Se,Se=o.formatter(Se)),!$.value){if(Se===ve.value){Pe();return}n(bt,Se),n(\"input\",Se),await at(),Pe(),ye()}},de=ee=>{n(\"change\",ee.target.value)},se=ee=>{n(\"compositionstart\",ee),$.value=!0},z=ee=>{var Se;n(\"compositionupdate\",ee);const Ke=(Se=ee.target)==null?void 0:Se.value,nt=Ke[Ke.length-1]||\"\";$.value=!jf(nt)},q=ee=>{n(\"compositionend\",ee),$.value&&($.value=!1,je(ee))},R=()=>{k.value=!k.value,I()},I=async()=>{var ee;await at(),(ee=H.value)==null||ee.focus()},Y=()=>{var ee;return(ee=H.value)==null?void 0:ee.blur()},pe=ee=>{C.value=!0,n(\"focus\",ee)},Fe=ee=>{var Se;C.value=!1,n(\"blur\",ee),o.validateEvent&&((Se=m==null?void 0:m.validate)==null||Se.call(m,\"blur\").catch(Ke=>void 0))},ce=ee=>{B.value=!1,n(\"mouseleave\",ee)},Ae=ee=>{B.value=!0,n(\"mouseenter\",ee)},ue=ee=>{n(\"keydown\",ee)},me=()=>{var ee;(ee=H.value)==null||ee.select()},Ie=()=>{n(bt,\"\"),n(\"change\",\"\"),n(\"clear\"),n(\"input\",\"\")};return Me(()=>o.modelValue,()=>{var ee;at(()=>xe()),o.validateEvent&&((ee=m==null?void 0:m.validate)==null||ee.call(m,\"change\").catch(Se=>void 0))}),Me(ve,()=>Pe()),Me(()=>o.type,async()=>{await at(),Pe(),xe(),Te()}),ot(()=>{!o.formatter&&o.parser,Pe(),Te(),at(xe)}),Ll(()=>{at(Te)}),t({input:E,textarea:D,ref:H,textareaStyle:be,autosize:Tn(o,\"autosize\"),focus:I,blur:Y,select:me,clear:Ie,resizeTextarea:xe}),(ee,Se)=>fe((b(),F(\"div\",kn(h(s),{class:[ee.type===\"textarea\"?h(w).b():h(y).b(),h(y).m(h(_)),h(y).is(\"disabled\",h(g)),h(y).is(\"exceed\",h(Be)),{[h(y).b(\"group\")]:ee.$slots.prepend||ee.$slots.append,[h(y).bm(\"group\",\"append\")]:ee.$slots.append,[h(y).bm(\"group\",\"prepend\")]:ee.$slots.prepend,[h(y).m(\"prefix\")]:ee.$slots.prefix||ee.prefixIcon,[h(y).m(\"suffix\")]:ee.$slots.suffix||ee.suffixIcon||ee.clearable||ee.showPassword,[h(y).bm(\"suffix\",\"password-clear\")]:h(Ee)&&h(te)},ee.$attrs.class],style:h(J),role:ee.containerRole,onMouseenter:Ae,onMouseleave:ce}),[oe(\" input \"),ee.type!==\"textarea\"?(b(),F(Oe,{key:0},[oe(\" prepend slot \"),ee.$slots.prepend?(b(),F(\"div\",{key:0,class:K(h(y).be(\"group\",\"prepend\"))},[ze(ee.$slots,\"prepend\")],2)):oe(\"v-if\",!0),f(\"div\",{class:K([h(y).e(\"wrapper\"),h(y).is(\"focus\",C.value)])},[oe(\" prefix slot \"),ee.$slots.prefix||ee.prefixIcon?(b(),F(\"span\",{key:0,class:K(h(y).e(\"prefix\"))},[f(\"span\",{class:K(h(y).e(\"prefix-inner\"))},[ze(ee.$slots,\"prefix\"),ee.prefixIcon?(b(),ae(h(rt),{key:0,class:K(h(y).e(\"icon\"))},{default:d(()=>[(b(),ae(Ct(ee.prefixIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],2)):oe(\"v-if\",!0),f(\"input\",kn({id:h(v),ref_key:\"input\",ref:E,class:h(y).e(\"inner\")},h(i),{type:ee.showPassword?k.value?\"text\":\"password\":ee.type,disabled:h(g),formatter:ee.formatter,parser:ee.parser,readonly:ee.readonly,autocomplete:ee.autocomplete,tabindex:ee.tabindex,\"aria-label\":ee.label,placeholder:ee.placeholder,style:ee.inputStyle,onCompositionstart:se,onCompositionupdate:z,onCompositionend:q,onInput:je,onFocus:pe,onBlur:Fe,onChange:de,onKeydown:ue}),null,16,IJ),oe(\" suffix slot \"),h(x)?(b(),F(\"span\",{key:1,class:K(h(y).e(\"suffix\"))},[f(\"span\",{class:K(h(y).e(\"suffix-inner\"))},[!h(Ee)||!h(te)||!h(Z)?(b(),F(Oe,{key:0},[ze(ee.$slots,\"suffix\"),ee.suffixIcon?(b(),ae(h(rt),{key:0,class:K(h(y).e(\"icon\"))},{default:d(()=>[(b(),ae(Ct(ee.suffixIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],64)):oe(\"v-if\",!0),h(Ee)?(b(),ae(h(rt),{key:1,class:K([h(y).e(\"icon\"),h(y).e(\"clear\")]),onMousedown:mt(h(vt),[\"prevent\"]),onClick:Ie},{default:d(()=>[c(h(va))]),_:1},8,[\"class\",\"onMousedown\"])):oe(\"v-if\",!0),h(te)?(b(),ae(h(rt),{key:2,class:K([h(y).e(\"icon\"),h(y).e(\"password\")]),onClick:R},{default:d(()=>[(b(),ae(Ct(h(N))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),h(Z)?(b(),F(\"span\",{key:3,class:K(h(y).e(\"count\"))},[f(\"span\",{class:K(h(y).e(\"count-inner\"))},re(h(De))+\" / \"+re(h(i).maxlength),3)],2)):oe(\"v-if\",!0),h(X)&&h(W)&&h(j)?(b(),ae(h(rt),{key:4,class:K([h(y).e(\"icon\"),h(y).e(\"validateIcon\"),h(y).is(\"loading\",h(X)===\"validating\")])},{default:d(()=>[(b(),ae(Ct(h(W))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],2)):oe(\"v-if\",!0)],2),oe(\" append slot \"),ee.$slots.append?(b(),F(\"div\",{key:1,class:K(h(y).be(\"group\",\"append\"))},[ze(ee.$slots,\"append\")],2)):oe(\"v-if\",!0)],64)):(b(),F(Oe,{key:1},[oe(\" textarea \"),f(\"textarea\",kn({id:h(v),ref_key:\"textarea\",ref:D,class:h(w).e(\"inner\")},h(i),{tabindex:ee.tabindex,disabled:h(g),readonly:ee.readonly,autocomplete:ee.autocomplete,style:h(be),\"aria-label\":ee.label,placeholder:ee.placeholder,onCompositionstart:se,onCompositionupdate:z,onCompositionend:q,onInput:je,onFocus:pe,onBlur:Fe,onChange:de,onKeydown:ue}),null,16,HJ),h(Z)?(b(),F(\"span\",{key:0,style:ut(P.value),class:K(h(y).e(\"count\"))},re(h(De))+\" / \"+re(h(i).maxlength),7)):oe(\"v-if\",!0)],64))],16,VJ)),[[ge,ee.type!==\"hidden\"]])}});var OJ=We(NJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue\"]]);const nn=Ft(OJ),jl=4,UJ={vertical:{offset:\"offsetHeight\",scroll:\"scrollTop\",scrollSize:\"scrollHeight\",size:\"height\",key:\"vertical\",axis:\"Y\",client:\"clientY\",direction:\"top\"},horizontal:{offset:\"offsetWidth\",scroll:\"scrollLeft\",scrollSize:\"scrollWidth\",size:\"width\",key:\"horizontal\",axis:\"X\",client:\"clientX\",direction:\"left\"}},WJ=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),qJ=et({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),jJ=\"Thumb\",KJ=le({__name:\"thumb\",props:qJ,setup(e){const t=e,n=Xe(Zf),o=Ve(\"scrollbar\");n||An(jJ,\"can not inject scrollbar context\");const l=L(),u=L(),a=L({}),r=L(!1);let s=!1,i=!1,p=_t?document.onselectstart:null;const m=U(()=>UJ[t.vertical?\"vertical\":\"horizontal\"]),v=U(()=>WJ({size:t.size,move:t.move,bar:m.value})),_=U(()=>l.value[m.value.offset]**2/n.wrapElement[m.value.scrollSize]/t.ratio/u.value[m.value.offset]),g=k=>{var P;if(k.stopPropagation(),k.ctrlKey||[1,2].includes(k.button))return;(P=window.getSelection())==null||P.removeAllRanges(),w(k);const T=k.currentTarget;!T||(a.value[m.value.axis]=T[m.value.offset]-(k[m.value.client]-T.getBoundingClientRect()[m.value.direction]))},y=k=>{if(!u.value||!l.value||!n.wrapElement)return;const P=Math.abs(k.target.getBoundingClientRect()[m.value.direction]-k[m.value.client]),T=u.value[m.value.offset]/2,H=(P-T)*100*_.value/l.value[m.value.offset];n.wrapElement[m.value.scroll]=H*n.wrapElement[m.value.scrollSize]/100},w=k=>{k.stopImmediatePropagation(),s=!0,document.addEventListener(\"mousemove\",E),document.addEventListener(\"mouseup\",D),p=document.onselectstart,document.onselectstart=()=>!1},E=k=>{if(!l.value||!u.value||s===!1)return;const P=a.value[m.value.axis];if(!P)return;const T=(l.value.getBoundingClientRect()[m.value.direction]-k[m.value.client])*-1,H=u.value[m.value.offset]-P,j=(T-H)*100*_.value/l.value[m.value.offset];n.wrapElement[m.value.scroll]=j*n.wrapElement[m.value.scrollSize]/100},D=()=>{s=!1,a.value[m.value.axis]=0,document.removeEventListener(\"mousemove\",E),document.removeEventListener(\"mouseup\",D),$(),i&&(r.value=!1)},C=()=>{i=!1,r.value=!!t.size},B=()=>{i=!0,r.value=s};Mt(()=>{$(),document.removeEventListener(\"mouseup\",D)});const $=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return Gt(Tn(n,\"scrollbarElement\"),\"mousemove\",C),Gt(Tn(n,\"scrollbarElement\"),\"mouseleave\",B),(k,P)=>(b(),ae(tn,{name:h(o).b(\"fade\"),persisted:\"\"},{default:d(()=>[fe(f(\"div\",{ref_key:\"instance\",ref:l,class:K([h(o).e(\"bar\"),h(o).is(h(m).key)]),onMousedown:y},[f(\"div\",{ref_key:\"thumb\",ref:u,class:K(h(o).e(\"thumb\")),style:ut(h(v)),onMousedown:g},null,38)],34),[[ge,k.always||r.value]])]),_:1},8,[\"name\"]))}});var P0=We(KJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue\"]]);const GJ=et({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),YJ=le({__name:\"bar\",props:GJ,setup(e,{expose:t}){const n=e,o=L(0),l=L(0);return t({handleScroll:a=>{if(a){const r=a.offsetHeight-jl,s=a.offsetWidth-jl;l.value=a.scrollTop*100/r*n.ratioY,o.value=a.scrollLeft*100/s*n.ratioX}}}),(a,r)=>(b(),F(Oe,null,[c(P0,{move:o.value,ratio:a.ratioX,size:a.width,always:a.always},null,8,[\"move\",\"ratio\",\"size\",\"always\"]),c(P0,{move:l.value,ratio:a.ratioY,size:a.height,vertical:\"\",always:a.always},null,8,[\"move\",\"ratio\",\"size\",\"always\"])],64))}});var XJ=We(YJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue\"]]);const JJ=et({height:{type:[String,Number],default:\"\"},maxHeight:{type:[String,Number],default:\"\"},native:Boolean,wrapStyle:{type:He([String,Object,Array]),default:\"\"},wrapClass:{type:[String,Array],default:\"\"},viewClass:{type:[String,Array],default:\"\"},viewStyle:{type:[String,Array,Object],default:\"\"},noresize:Boolean,tag:{type:String,default:\"div\"},always:Boolean,minSize:{type:Number,default:20}}),QJ={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(gt)},ZJ=le({name:\"ElScrollbar\"}),eQ=le({...ZJ,props:JJ,emits:QJ,setup(e,{expose:t,emit:n}){const o=e,l=Ve(\"scrollbar\");let u,a;const r=L(),s=L(),i=L(),p=L(\"0\"),m=L(\"0\"),v=L(),_=L(1),g=L(1),y=U(()=>{const $={};return o.height&&($.height=Xn(o.height)),o.maxHeight&&($.maxHeight=Xn(o.maxHeight)),[o.wrapStyle,$]}),w=()=>{var $;s.value&&(($=v.value)==null||$.handleScroll(s.value),n(\"scroll\",{scrollTop:s.value.scrollTop,scrollLeft:s.value.scrollLeft}))};function E($,k){dt($)?s.value.scrollTo($):gt($)&&gt(k)&&s.value.scrollTo($,k)}const D=$=>{!gt($)||(s.value.scrollTop=$)},C=$=>{!gt($)||(s.value.scrollLeft=$)},B=()=>{if(!s.value)return;const $=s.value.offsetHeight-jl,k=s.value.offsetWidth-jl,P=$**2/s.value.scrollHeight,T=k**2/s.value.scrollWidth,H=Math.max(P,o.minSize),j=Math.max(T,o.minSize);_.value=P/($-P)/(H/($-H)),g.value=T/(k-T)/(j/(k-j)),m.value=H+jl<$?`${H}px`:\"\",p.value=j+jl<k?`${j}px`:\"\"};return Me(()=>o.noresize,$=>{$?(u==null||u(),a==null||a()):({stop:u}=po(i,B),a=Gt(\"resize\",B))},{immediate:!0}),Me(()=>[o.maxHeight,o.height],()=>{o.native||at(()=>{var $;B(),s.value&&(($=v.value)==null||$.handleScroll(s.value))})}),Dt(Zf,Rt({scrollbarElement:r,wrapElement:s})),ot(()=>{o.native||at(()=>{B()})}),Ll(()=>B()),t({wrap$:s,update:B,scrollTo:E,setScrollTop:D,setScrollLeft:C,handleScroll:w}),($,k)=>(b(),F(\"div\",{ref_key:\"scrollbar$\",ref:r,class:K(h(l).b())},[f(\"div\",{ref_key:\"wrap$\",ref:s,class:K([$.wrapClass,h(l).e(\"wrap\"),{[h(l).em(\"wrap\",\"hidden-default\")]:!$.native}]),style:ut(h(y)),onScroll:w},[(b(),ae(Ct($.tag),{ref_key:\"resize$\",ref:i,class:K([h(l).e(\"view\"),$.viewClass]),style:ut($.viewStyle)},{default:d(()=>[ze($.$slots,\"default\")]),_:3},8,[\"class\",\"style\"]))],38),$.native?oe(\"v-if\",!0):(b(),ae(XJ,{key:0,ref_key:\"barRef\",ref:v,height:m.value,width:p.value,always:$.always,\"ratio-x\":g.value,\"ratio-y\":_.value},null,8,[\"height\",\"width\",\"always\",\"ratio-x\",\"ratio-y\"]))],2))}});var tQ=We(eQ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue\"]]);const Yt=Ft(tQ),nQ={LIGHT:\"light\",DARK:\"dark\"},oQ=[\"dialog\",\"grid\",\"group\",\"listbox\",\"menu\",\"navigation\",\"tooltip\",\"tree\"],i4=et({role:{type:String,values:oQ,default:\"tooltip\"}}),lQ=le({name:\"ElPopperRoot\",inheritAttrs:!1}),uQ=le({...lQ,props:i4,setup(e,{expose:t}){const n=e,o=L(),l=L(),u=L(),a=L(),r=U(()=>n.role),s={triggerRef:o,popperInstanceRef:l,contentRef:u,referenceRef:a,role:r};return t(s),Dt(yc,s),(i,p)=>ze(i.$slots,\"default\")}});var aQ=We(uQ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue\"]]);const c4=et({arrowOffset:{type:Number,default:5}}),rQ=le({name:\"ElPopperArrow\",inheritAttrs:!1}),sQ=le({...rQ,props:c4,setup(e,{expose:t}){const n=e,o=Ve(\"popper\"),{arrowOffset:l,arrowRef:u}=Xe(t4,void 0);return Me(()=>n.arrowOffset,a=>{l.value=a}),Mt(()=>{u.value=void 0}),t({arrowRef:u}),(a,r)=>(b(),F(\"span\",{ref_key:\"arrowRef\",ref:u,class:K(h(o).e(\"arrow\")),\"data-popper-arrow\":\"\"},null,2))}});var iQ=We(sQ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue\"]]);const cQ=\"ElOnlyChild\",dQ=le({name:cQ,setup(e,{slots:t,attrs:n}){var o;const l=Xe(r4),u=wJ((o=l==null?void 0:l.setForwardRef)!=null?o:vt);return()=>{var a;const r=(a=t.default)==null?void 0:a.call(t,n);if(!r||r.length>1)return null;const s=d4(r);return s?fe($o(s,n),[[u]]):null}}});function d4(e){if(!e)return null;const t=e;for(const n of t){if(dt(n))switch(n.type){case an:continue;case fa:case\"svg\":return L0(n);case Oe:return d4(n.children);default:return n}return L0(n)}return null}function L0(e){const t=Ve(\"only-child\");return c(\"span\",{class:t.e(\"content\")},[e])}const f4=et({virtualRef:{type:He(Object)},virtualTriggering:Boolean,onMouseenter:{type:He(Function)},onMouseleave:{type:He(Function)},onClick:{type:He(Function)},onKeydown:{type:He(Function)},onFocus:{type:He(Function)},onBlur:{type:He(Function)},onContextmenu:{type:He(Function)},id:String,open:Boolean}),fQ=le({name:\"ElPopperTrigger\",inheritAttrs:!1}),pQ=le({...fQ,props:f4,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=Xe(yc,void 0);yJ(l);const u=U(()=>r.value?n.id:void 0),a=U(()=>{if(o&&o.value===\"tooltip\")return n.open&&n.id?n.id:void 0}),r=U(()=>{if(o&&o.value!==\"tooltip\")return o.value}),s=U(()=>r.value?`${n.open}`:void 0);let i;return ot(()=>{Me(()=>n.virtualRef,p=>{p&&(l.value=ao(p))},{immediate:!0}),Me(l,(p,m)=>{i==null||i(),i=void 0,nl(p)&&([\"onMouseenter\",\"onMouseleave\",\"onClick\",\"onKeydown\",\"onFocus\",\"onBlur\",\"onContextmenu\"].forEach(v=>{var _;const g=n[v];g&&(p.addEventListener(v.slice(2).toLowerCase(),g),(_=m==null?void 0:m.removeEventListener)==null||_.call(m,v.slice(2).toLowerCase(),g))}),i=Me([u,a,r,s],v=>{[\"aria-controls\",\"aria-describedby\",\"aria-haspopup\",\"aria-expanded\"].forEach((_,g)=>{io(v[g])?p.removeAttribute(_):p.setAttribute(_,v[g])})},{immediate:!0})),nl(m)&&[\"aria-controls\",\"aria-describedby\",\"aria-haspopup\",\"aria-expanded\"].forEach(v=>m.removeAttribute(v))},{immediate:!0})}),Mt(()=>{i==null||i(),i=void 0}),t({triggerRef:l}),(p,m)=>p.virtualTriggering?oe(\"v-if\",!0):(b(),ae(h(dQ),kn({key:0},p.$attrs,{\"aria-controls\":h(u),\"aria-describedby\":h(a),\"aria-expanded\":h(s),\"aria-haspopup\":h(r)}),{default:d(()=>[ze(p.$slots,\"default\")]),_:3},16,[\"aria-controls\",\"aria-describedby\",\"aria-expanded\",\"aria-haspopup\"]))}});var vQ=We(pQ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue\"]]),rn=\"top\",Mn=\"bottom\",Vn=\"right\",sn=\"left\",Ec=\"auto\",ma=[rn,Mn,Vn,sn],ru=\"start\",aa=\"end\",hQ=\"clippingParents\",p4=\"viewport\",Pu=\"popper\",_Q=\"reference\",T0=ma.reduce(function(e,t){return e.concat([t+\"-\"+ru,t+\"-\"+aa])},[]),Zr=[].concat(ma,[Ec]).reduce(function(e,t){return e.concat([t,t+\"-\"+ru,t+\"-\"+aa])},[]),mQ=\"beforeRead\",gQ=\"read\",bQ=\"afterRead\",yQ=\"beforeMain\",wQ=\"main\",CQ=\"afterMain\",EQ=\"beforeWrite\",FQ=\"write\",AQ=\"afterWrite\",DQ=[mQ,gQ,bQ,yQ,wQ,CQ,EQ,FQ,AQ];function vo(e){return e?(e.nodeName||\"\").toLowerCase():null}function Zn(e){if(e==null)return window;if(e.toString()!==\"[object Window]\"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function su(e){var t=Zn(e).Element;return e instanceof t||e instanceof Element}function Pn(e){var t=Zn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Fc(e){if(typeof ShadowRoot==\"undefined\")return!1;var t=Zn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function BQ(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},l=t.attributes[n]||{},u=t.elements[n];!Pn(u)||!vo(u)||(Object.assign(u.style,o),Object.keys(l).forEach(function(a){var r=l[a];r===!1?u.removeAttribute(a):u.setAttribute(a,r===!0?\"\":r)}))})}function xQ(e){var t=e.state,n={popper:{position:t.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var l=t.elements[o],u=t.attributes[o]||{},a=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),r=a.reduce(function(s,i){return s[i]=\"\",s},{});!Pn(l)||!vo(l)||(Object.assign(l.style,r),Object.keys(u).forEach(function(s){l.removeAttribute(s)}))})}}var v4={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:BQ,effect:xQ,requires:[\"computeStyles\"]};function co(e){return e.split(\"-\")[0]}var Bl=Math.max,Dr=Math.min,iu=Math.round;function cu(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Pn(e)&&t){var u=e.offsetHeight,a=e.offsetWidth;a>0&&(o=iu(n.width)/a||1),u>0&&(l=iu(n.height)/u||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function Ac(e){var t=cu(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function h4(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Fc(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ko(e){return Zn(e).getComputedStyle(e)}function $Q(e){return[\"table\",\"td\",\"th\"].indexOf(vo(e))>=0}function al(e){return((su(e)?e.ownerDocument:e.document)||window.document).documentElement}function es(e){return vo(e)===\"html\"?e:e.assignedSlot||e.parentNode||(Fc(e)?e.host:null)||al(e)}function z0(e){return!Pn(e)||ko(e).position===\"fixed\"?null:e.offsetParent}function SQ(e){var t=navigator.userAgent.toLowerCase().indexOf(\"firefox\")!==-1,n=navigator.userAgent.indexOf(\"Trident\")!==-1;if(n&&Pn(e)){var o=ko(e);if(o.position===\"fixed\")return null}var l=es(e);for(Fc(l)&&(l=l.host);Pn(l)&&[\"html\",\"body\"].indexOf(vo(l))<0;){var u=ko(l);if(u.transform!==\"none\"||u.perspective!==\"none\"||u.contain===\"paint\"||[\"transform\",\"perspective\"].indexOf(u.willChange)!==-1||t&&u.willChange===\"filter\"||t&&u.filter&&u.filter!==\"none\")return l;l=l.parentNode}return null}function ga(e){for(var t=Zn(e),n=z0(e);n&&$Q(n)&&ko(n).position===\"static\";)n=z0(n);return n&&(vo(n)===\"html\"||vo(n)===\"body\"&&ko(n).position===\"static\")?t:n||SQ(e)||t}function Dc(e){return[\"top\",\"bottom\"].indexOf(e)>=0?\"x\":\"y\"}function Ou(e,t,n){return Bl(e,Dr(t,n))}function kQ(e,t,n){var o=Ou(e,t,n);return o>n?n:o}function _4(){return{top:0,right:0,bottom:0,left:0}}function m4(e){return Object.assign({},_4(),e)}function g4(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var PQ=function(e,t){return e=typeof e==\"function\"?e(Object.assign({},t.rects,{placement:t.placement})):e,m4(typeof e!=\"number\"?e:g4(e,ma))};function LQ(e){var t,n=e.state,o=e.name,l=e.options,u=n.elements.arrow,a=n.modifiersData.popperOffsets,r=co(n.placement),s=Dc(r),i=[sn,Vn].indexOf(r)>=0,p=i?\"height\":\"width\";if(!(!u||!a)){var m=PQ(l.padding,n),v=Ac(u),_=s===\"y\"?rn:sn,g=s===\"y\"?Mn:Vn,y=n.rects.reference[p]+n.rects.reference[s]-a[s]-n.rects.popper[p],w=a[s]-n.rects.reference[s],E=ga(u),D=E?s===\"y\"?E.clientHeight||0:E.clientWidth||0:0,C=y/2-w/2,B=m[_],$=D-v[p]-m[g],k=D/2-v[p]/2+C,P=Ou(B,k,$),T=s;n.modifiersData[o]=(t={},t[T]=P,t.centerOffset=P-k,t)}}function TQ(e){var t=e.state,n=e.options,o=n.element,l=o===void 0?\"[data-popper-arrow]\":o;l!=null&&(typeof l==\"string\"&&(l=t.elements.popper.querySelector(l),!l)||!h4(t.elements.popper,l)||(t.elements.arrow=l))}var zQ={name:\"arrow\",enabled:!0,phase:\"main\",fn:LQ,effect:TQ,requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function du(e){return e.split(\"-\")[1]}var MQ={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function VQ(e){var t=e.x,n=e.y,o=window,l=o.devicePixelRatio||1;return{x:iu(t*l)/l||0,y:iu(n*l)/l||0}}function M0(e){var t,n=e.popper,o=e.popperRect,l=e.placement,u=e.variation,a=e.offsets,r=e.position,s=e.gpuAcceleration,i=e.adaptive,p=e.roundOffsets,m=e.isFixed,v=a.x,_=v===void 0?0:v,g=a.y,y=g===void 0?0:g,w=typeof p==\"function\"?p({x:_,y}):{x:_,y};_=w.x,y=w.y;var E=a.hasOwnProperty(\"x\"),D=a.hasOwnProperty(\"y\"),C=sn,B=rn,$=window;if(i){var k=ga(n),P=\"clientHeight\",T=\"clientWidth\";if(k===Zn(n)&&(k=al(n),ko(k).position!==\"static\"&&r===\"absolute\"&&(P=\"scrollHeight\",T=\"scrollWidth\")),k=k,l===rn||(l===sn||l===Vn)&&u===aa){B=Mn;var H=m&&k===$&&$.visualViewport?$.visualViewport.height:k[P];y-=H-o.height,y*=s?1:-1}if(l===sn||(l===rn||l===Mn)&&u===aa){C=Vn;var j=m&&k===$&&$.visualViewport?$.visualViewport.width:k[T];_-=j-o.width,_*=s?1:-1}}var X=Object.assign({position:r},i&&MQ),W=p===!0?VQ({x:_,y}):{x:_,y};if(_=W.x,y=W.y,s){var N;return Object.assign({},X,(N={},N[B]=D?\"0\":\"\",N[C]=E?\"0\":\"\",N.transform=($.devicePixelRatio||1)<=1?\"translate(\"+_+\"px, \"+y+\"px)\":\"translate3d(\"+_+\"px, \"+y+\"px, 0)\",N))}return Object.assign({},X,(t={},t[B]=D?y+\"px\":\"\",t[C]=E?_+\"px\":\"\",t.transform=\"\",t))}function IQ(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=o===void 0?!0:o,u=n.adaptive,a=u===void 0?!0:u,r=n.roundOffsets,s=r===void 0?!0:r,i={placement:co(t.placement),variation:du(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:t.options.strategy===\"fixed\"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,M0(Object.assign({},i,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:s})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,M0(Object.assign({},i,{offsets:t.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-placement\":t.placement})}var b4={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:IQ,data:{}},Ta={passive:!0};function HQ(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,u=l===void 0?!0:l,a=o.resize,r=a===void 0?!0:a,s=Zn(t.elements.popper),i=[].concat(t.scrollParents.reference,t.scrollParents.popper);return u&&i.forEach(function(p){p.addEventListener(\"scroll\",n.update,Ta)}),r&&s.addEventListener(\"resize\",n.update,Ta),function(){u&&i.forEach(function(p){p.removeEventListener(\"scroll\",n.update,Ta)}),r&&s.removeEventListener(\"resize\",n.update,Ta)}}var y4={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:HQ,data:{}},RQ={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function tr(e){return e.replace(/left|right|bottom|top/g,function(t){return RQ[t]})}var NQ={start:\"end\",end:\"start\"};function V0(e){return e.replace(/start|end/g,function(t){return NQ[t]})}function Bc(e){var t=Zn(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function xc(e){return cu(al(e)).left+Bc(e).scrollLeft}function OQ(e){var t=Zn(e),n=al(e),o=t.visualViewport,l=n.clientWidth,u=n.clientHeight,a=0,r=0;return o&&(l=o.width,u=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=o.offsetLeft,r=o.offsetTop)),{width:l,height:u,x:a+xc(e),y:r}}function UQ(e){var t,n=al(e),o=Bc(e),l=(t=e.ownerDocument)==null?void 0:t.body,u=Bl(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),a=Bl(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),r=-o.scrollLeft+xc(e),s=-o.scrollTop;return ko(l||n).direction===\"rtl\"&&(r+=Bl(n.clientWidth,l?l.clientWidth:0)-u),{width:u,height:a,x:r,y:s}}function $c(e){var t=ko(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function w4(e){return[\"html\",\"body\",\"#document\"].indexOf(vo(e))>=0?e.ownerDocument.body:Pn(e)&&$c(e)?e:w4(es(e))}function Uu(e,t){var n;t===void 0&&(t=[]);var o=w4(e),l=o===((n=e.ownerDocument)==null?void 0:n.body),u=Zn(o),a=l?[u].concat(u.visualViewport||[],$c(o)?o:[]):o,r=t.concat(a);return l?r:r.concat(Uu(es(a)))}function ni(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function WQ(e){var t=cu(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function I0(e,t){return t===p4?ni(OQ(e)):su(t)?WQ(t):ni(UQ(al(e)))}function qQ(e){var t=Uu(es(e)),n=[\"absolute\",\"fixed\"].indexOf(ko(e).position)>=0,o=n&&Pn(e)?ga(e):e;return su(o)?t.filter(function(l){return su(l)&&h4(l,o)&&vo(l)!==\"body\"}):[]}function jQ(e,t,n){var o=t===\"clippingParents\"?qQ(e):[].concat(t),l=[].concat(o,[n]),u=l[0],a=l.reduce(function(r,s){var i=I0(e,s);return r.top=Bl(i.top,r.top),r.right=Dr(i.right,r.right),r.bottom=Dr(i.bottom,r.bottom),r.left=Bl(i.left,r.left),r},I0(e,u));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function C4(e){var t=e.reference,n=e.element,o=e.placement,l=o?co(o):null,u=o?du(o):null,a=t.x+t.width/2-n.width/2,r=t.y+t.height/2-n.height/2,s;switch(l){case rn:s={x:a,y:t.y-n.height};break;case Mn:s={x:a,y:t.y+t.height};break;case Vn:s={x:t.x+t.width,y:r};break;case sn:s={x:t.x-n.width,y:r};break;default:s={x:t.x,y:t.y}}var i=l?Dc(l):null;if(i!=null){var p=i===\"y\"?\"height\":\"width\";switch(u){case ru:s[i]=s[i]-(t[p]/2-n[p]/2);break;case aa:s[i]=s[i]+(t[p]/2-n[p]/2);break}}return s}function ra(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=o===void 0?e.placement:o,u=n.boundary,a=u===void 0?hQ:u,r=n.rootBoundary,s=r===void 0?p4:r,i=n.elementContext,p=i===void 0?Pu:i,m=n.altBoundary,v=m===void 0?!1:m,_=n.padding,g=_===void 0?0:_,y=m4(typeof g!=\"number\"?g:g4(g,ma)),w=p===Pu?_Q:Pu,E=e.rects.popper,D=e.elements[v?w:p],C=jQ(su(D)?D:D.contextElement||al(e.elements.popper),a,s),B=cu(e.elements.reference),$=C4({reference:B,element:E,strategy:\"absolute\",placement:l}),k=ni(Object.assign({},E,$)),P=p===Pu?k:B,T={top:C.top-P.top+y.top,bottom:P.bottom-C.bottom+y.bottom,left:C.left-P.left+y.left,right:P.right-C.right+y.right},H=e.modifiersData.offset;if(p===Pu&&H){var j=H[l];Object.keys(T).forEach(function(X){var W=[Vn,Mn].indexOf(X)>=0?1:-1,N=[rn,Mn].indexOf(X)>=0?\"y\":\"x\";T[X]+=j[N]*W})}return T}function KQ(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=n.boundary,u=n.rootBoundary,a=n.padding,r=n.flipVariations,s=n.allowedAutoPlacements,i=s===void 0?Zr:s,p=du(o),m=p?r?T0:T0.filter(function(g){return du(g)===p}):ma,v=m.filter(function(g){return i.indexOf(g)>=0});v.length===0&&(v=m);var _=v.reduce(function(g,y){return g[y]=ra(e,{placement:y,boundary:l,rootBoundary:u,padding:a})[co(y)],g},{});return Object.keys(_).sort(function(g,y){return _[g]-_[y]})}function GQ(e){if(co(e)===Ec)return[];var t=tr(e);return[V0(e),t,V0(t)]}function YQ(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,u=l===void 0?!0:l,a=n.altAxis,r=a===void 0?!0:a,s=n.fallbackPlacements,i=n.padding,p=n.boundary,m=n.rootBoundary,v=n.altBoundary,_=n.flipVariations,g=_===void 0?!0:_,y=n.allowedAutoPlacements,w=t.options.placement,E=co(w),D=E===w,C=s||(D||!g?[tr(w)]:GQ(w)),B=[w].concat(C).reduce(function(ye,xe){return ye.concat(co(xe)===Ec?KQ(t,{placement:xe,boundary:p,rootBoundary:m,padding:i,flipVariations:g,allowedAutoPlacements:y}):xe)},[]),$=t.rects.reference,k=t.rects.popper,P=new Map,T=!0,H=B[0],j=0;j<B.length;j++){var X=B[j],W=co(X),N=du(X)===ru,J=[rn,Mn].indexOf(W)>=0,be=J?\"width\":\"height\",ve=ra(t,{placement:X,boundary:p,rootBoundary:m,altBoundary:v,padding:i}),Ee=J?N?Vn:sn:N?Mn:rn;$[be]>k[be]&&(Ee=tr(Ee));var te=tr(Ee),Z=[];if(u&&Z.push(ve[W]<=0),r&&Z.push(ve[Ee]<=0,ve[te]<=0),Z.every(function(ye){return ye})){H=X,T=!1;break}P.set(X,Z)}if(T)for(var De=g?3:1,Be=function(ye){var xe=B.find(function(Pe){var he=P.get(Pe);if(he)return he.slice(0,ye).every(function(Te){return Te})});if(xe)return H=xe,\"break\"},x=De;x>0;x--){var O=Be(x);if(O===\"break\")break}t.placement!==H&&(t.modifiersData[o]._skip=!0,t.placement=H,t.reset=!0)}}var XQ={name:\"flip\",enabled:!0,phase:\"main\",fn:YQ,requiresIfExists:[\"offset\"],data:{_skip:!1}};function H0(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function R0(e){return[rn,Vn,Mn,sn].some(function(t){return e[t]>=0})}function JQ(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,u=t.modifiersData.preventOverflow,a=ra(t,{elementContext:\"reference\"}),r=ra(t,{altBoundary:!0}),s=H0(a,o),i=H0(r,l,u),p=R0(s),m=R0(i);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:i,isReferenceHidden:p,hasPopperEscaped:m},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":p,\"data-popper-escaped\":m})}var QQ={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:JQ};function ZQ(e,t,n){var o=co(e),l=[sn,rn].indexOf(o)>=0?-1:1,u=typeof n==\"function\"?n(Object.assign({},t,{placement:e})):n,a=u[0],r=u[1];return a=a||0,r=(r||0)*l,[sn,Vn].indexOf(o)>=0?{x:r,y:a}:{x:a,y:r}}function eZ(e){var t=e.state,n=e.options,o=e.name,l=n.offset,u=l===void 0?[0,0]:l,a=Zr.reduce(function(p,m){return p[m]=ZQ(m,t.rects,u),p},{}),r=a[t.placement],s=r.x,i=r.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=i),t.modifiersData[o]=a}var tZ={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:eZ};function nZ(e){var t=e.state,n=e.name;t.modifiersData[n]=C4({reference:t.rects.reference,element:t.rects.popper,strategy:\"absolute\",placement:t.placement})}var E4={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:nZ,data:{}};function oZ(e){return e===\"x\"?\"y\":\"x\"}function lZ(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,u=l===void 0?!0:l,a=n.altAxis,r=a===void 0?!1:a,s=n.boundary,i=n.rootBoundary,p=n.altBoundary,m=n.padding,v=n.tether,_=v===void 0?!0:v,g=n.tetherOffset,y=g===void 0?0:g,w=ra(t,{boundary:s,rootBoundary:i,padding:m,altBoundary:p}),E=co(t.placement),D=du(t.placement),C=!D,B=Dc(E),$=oZ(B),k=t.modifiersData.popperOffsets,P=t.rects.reference,T=t.rects.popper,H=typeof y==\"function\"?y(Object.assign({},t.rects,{placement:t.placement})):y,j=typeof H==\"number\"?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),X=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(k){if(u){var N,J=B===\"y\"?rn:sn,be=B===\"y\"?Mn:Vn,ve=B===\"y\"?\"height\":\"width\",Ee=k[B],te=Ee+w[J],Z=Ee-w[be],De=_?-T[ve]/2:0,Be=D===ru?P[ve]:T[ve],x=D===ru?-T[ve]:-P[ve],O=t.elements.arrow,ye=_&&O?Ac(O):{width:0,height:0},xe=t.modifiersData[\"arrow#persistent\"]?t.modifiersData[\"arrow#persistent\"].padding:_4(),Pe=xe[J],he=xe[be],Te=Ou(0,P[ve],ye[ve]),je=C?P[ve]/2-De-Te-Pe-j.mainAxis:Be-Te-Pe-j.mainAxis,de=C?-P[ve]/2+De+Te+he+j.mainAxis:x+Te+he+j.mainAxis,se=t.elements.arrow&&ga(t.elements.arrow),z=se?B===\"y\"?se.clientTop||0:se.clientLeft||0:0,q=(N=X==null?void 0:X[B])!=null?N:0,R=Ee+je-q-z,I=Ee+de-q,Y=Ou(_?Dr(te,R):te,Ee,_?Bl(Z,I):Z);k[B]=Y,W[B]=Y-Ee}if(r){var pe,Fe=B===\"x\"?rn:sn,ce=B===\"x\"?Mn:Vn,Ae=k[$],ue=$===\"y\"?\"height\":\"width\",me=Ae+w[Fe],Ie=Ae-w[ce],ee=[rn,sn].indexOf(E)!==-1,Se=(pe=X==null?void 0:X[$])!=null?pe:0,Ke=ee?me:Ae-P[ue]-T[ue]-Se+j.altAxis,nt=ee?Ae+P[ue]+T[ue]-Se-j.altAxis:Ie,we=_&&ee?kQ(Ke,Ae,nt):Ou(_?Ke:me,Ae,_?nt:Ie);k[$]=we,W[$]=we-Ae}t.modifiersData[o]=W}}var uZ={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:lZ,requiresIfExists:[\"offset\"]};function aZ(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function rZ(e){return e===Zn(e)||!Pn(e)?Bc(e):aZ(e)}function sZ(e){var t=e.getBoundingClientRect(),n=iu(t.width)/e.offsetWidth||1,o=iu(t.height)/e.offsetHeight||1;return n!==1||o!==1}function iZ(e,t,n){n===void 0&&(n=!1);var o=Pn(t),l=Pn(t)&&sZ(t),u=al(t),a=cu(e,l),r={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(o||!o&&!n)&&((vo(t)!==\"body\"||$c(u))&&(r=rZ(t)),Pn(t)?(s=cu(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):u&&(s.x=xc(u))),{x:a.left+r.scrollLeft-s.x,y:a.top+r.scrollTop-s.y,width:a.width,height:a.height}}function cZ(e){var t=new Map,n=new Set,o=[];e.forEach(function(u){t.set(u.name,u)});function l(u){n.add(u.name);var a=[].concat(u.requires||[],u.requiresIfExists||[]);a.forEach(function(r){if(!n.has(r)){var s=t.get(r);s&&l(s)}}),o.push(u)}return e.forEach(function(u){n.has(u.name)||l(u)}),o}function dZ(e){var t=cZ(e);return DQ.reduce(function(n,o){return n.concat(t.filter(function(l){return l.phase===o}))},[])}function fZ(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function pZ(e){var t=e.reduce(function(n,o){var l=n[o.name];return n[o.name]=l?Object.assign({},l,o,{options:Object.assign({},l.options,o.options),data:Object.assign({},l.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var N0={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function O0(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(o){return!(o&&typeof o.getBoundingClientRect==\"function\")})}function Sc(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,o=n===void 0?[]:n,l=t.defaultOptions,u=l===void 0?N0:l;return function(a,r,s){s===void 0&&(s=u);var i={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},N0,u),modifiersData:{},elements:{reference:a,popper:r},attributes:{},styles:{}},p=[],m=!1,v={state:i,setOptions:function(y){var w=typeof y==\"function\"?y(i.options):y;g(),i.options=Object.assign({},u,i.options,w),i.scrollParents={reference:su(a)?Uu(a):a.contextElement?Uu(a.contextElement):[],popper:Uu(r)};var E=dZ(pZ([].concat(o,i.options.modifiers)));return i.orderedModifiers=E.filter(function(D){return D.enabled}),_(),v.update()},forceUpdate:function(){if(!m){var y=i.elements,w=y.reference,E=y.popper;if(O0(w,E)){i.rects={reference:iZ(w,ga(E),i.options.strategy===\"fixed\"),popper:Ac(E)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(T){return i.modifiersData[T.name]=Object.assign({},T.data)});for(var D=0;D<i.orderedModifiers.length;D++){if(i.reset===!0){i.reset=!1,D=-1;continue}var C=i.orderedModifiers[D],B=C.fn,$=C.options,k=$===void 0?{}:$,P=C.name;typeof B==\"function\"&&(i=B({state:i,options:k,name:P,instance:v})||i)}}}},update:fZ(function(){return new Promise(function(y){v.forceUpdate(),y(i)})}),destroy:function(){g(),m=!0}};if(!O0(a,r))return v;v.setOptions(s).then(function(y){!m&&s.onFirstUpdate&&s.onFirstUpdate(y)});function _(){i.orderedModifiers.forEach(function(y){var w=y.name,E=y.options,D=E===void 0?{}:E,C=y.effect;if(typeof C==\"function\"){var B=C({state:i,name:w,instance:v,options:D}),$=function(){};p.push(B||$)}})}function g(){p.forEach(function(y){return y()}),p=[]}return v}}Sc();var vZ=[y4,E4,b4,v4];Sc({defaultModifiers:vZ});var hZ=[y4,E4,b4,v4,tZ,XQ,uZ,zQ,QQ],F4=Sc({defaultModifiers:hZ});const bs=\"focus-trap.focus-after-trapped\",ys=\"focus-trap.focus-after-released\",_Z=\"focus-trap.focusout-prevented\",U0={cancelable:!0,bubbles:!1},mZ={cancelable:!0,bubbles:!1},W0=\"focusAfterTrapped\",q0=\"focusAfterReleased\",A4=Symbol(\"elFocusTrap\"),kc=L(),ts=L(0),Pc=L(0);let za=0;const D4=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const l=o.tagName===\"INPUT\"&&o.type===\"hidden\";return o.disabled||o.hidden||l?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},j0=(e,t)=>{for(const n of e)if(!gZ(n,t))return n},gZ=(e,t)=>{if(getComputedStyle(e).visibility===\"hidden\")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display===\"none\")return!0;e=e.parentElement}return!1},bZ=e=>{const t=D4(e),n=j0(t,e),o=j0(t.reverse(),e);return[n,o]},yZ=e=>e instanceof HTMLInputElement&&\"select\"in e,Wo=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),Pc.value=window.performance.now(),e!==n&&yZ(e)&&t&&e.select()}};function K0(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const wZ=()=>{let e=[];return{push:o=>{const l=e[0];l&&o!==l&&l.pause(),e=K0(e,o),e.unshift(o)},remove:o=>{var l,u;e=K0(e,o),(u=(l=e[0])==null?void 0:l.resume)==null||u.call(l)}}},CZ=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(Wo(o,t),document.activeElement!==n)return},G0=wZ(),EZ=()=>ts.value>Pc.value,Ma=()=>{kc.value=\"pointer\",ts.value=window.performance.now()},Y0=()=>{kc.value=\"keyboard\",ts.value=window.performance.now()},FZ=()=>(ot(()=>{za===0&&(document.addEventListener(\"mousedown\",Ma),document.addEventListener(\"touchstart\",Ma),document.addEventListener(\"keydown\",Y0)),za++}),Mt(()=>{za--,za<=0&&(document.removeEventListener(\"mousedown\",Ma),document.removeEventListener(\"touchstart\",Ma),document.removeEventListener(\"keydown\",Y0))}),{focusReason:kc,lastUserFocusTimestamp:ts,lastAutomatedFocusTimestamp:Pc}),Va=e=>new CustomEvent(_Z,{...mZ,detail:e}),AZ=le({name:\"ElFocusTrap\",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:\"first\"}},emits:[W0,q0,\"focusin\",\"focusout\",\"focusout-prevented\",\"release-requested\"],setup(e,{emit:t}){const n=L();let o,l;const{focusReason:u}=FZ();vJ(g=>{e.trapped&&!a.paused&&t(\"release-requested\",g)});const a={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},r=g=>{if(!e.loop&&!e.trapped||a.paused)return;const{key:y,altKey:w,ctrlKey:E,metaKey:D,currentTarget:C,shiftKey:B}=g,{loop:$}=e,k=y===Lt.tab&&!w&&!E&&!D,P=document.activeElement;if(k&&P){const T=C,[H,j]=bZ(T);if(H&&j){if(!B&&P===j){const W=Va({focusReason:u.value});t(\"focusout-prevented\",W),W.defaultPrevented||(g.preventDefault(),$&&Wo(H,!0))}else if(B&&[H,T].includes(P)){const W=Va({focusReason:u.value});t(\"focusout-prevented\",W),W.defaultPrevented||(g.preventDefault(),$&&Wo(j,!0))}}else if(P===T){const W=Va({focusReason:u.value});t(\"focusout-prevented\",W),W.defaultPrevented||g.preventDefault()}}};Dt(A4,{focusTrapRef:n,onKeydown:r}),Me(()=>e.focusTrapEl,g=>{g&&(n.value=g)},{immediate:!0}),Me([n],([g],[y])=>{g&&(g.addEventListener(\"keydown\",r),g.addEventListener(\"focusin\",p),g.addEventListener(\"focusout\",m)),y&&(y.removeEventListener(\"keydown\",r),y.removeEventListener(\"focusin\",p),y.removeEventListener(\"focusout\",m))});const s=g=>{t(W0,g)},i=g=>t(q0,g),p=g=>{const y=h(n);if(!y)return;const w=g.target,E=g.relatedTarget,D=w&&y.contains(w);e.trapped||E&&y.contains(E)||(o=E),D&&t(\"focusin\",g),!a.paused&&e.trapped&&(D?l=w:Wo(l,!0))},m=g=>{const y=h(n);if(!(a.paused||!y))if(e.trapped){const w=g.relatedTarget;!io(w)&&!y.contains(w)&&setTimeout(()=>{if(!a.paused&&e.trapped){const E=Va({focusReason:u.value});t(\"focusout-prevented\",E),E.defaultPrevented||Wo(l,!0)}},0)}else{const w=g.target;w&&y.contains(w)||t(\"focusout\",g)}};async function v(){await at();const g=h(n);if(g){G0.push(a);const y=g.contains(document.activeElement)?o:document.activeElement;if(o=y,!g.contains(y)){const E=new Event(bs,U0);g.addEventListener(bs,s),g.dispatchEvent(E),E.defaultPrevented||at(()=>{let D=e.focusStartEl;tt(D)||(Wo(D),document.activeElement!==D&&(D=\"first\")),D===\"first\"&&CZ(D4(g),!0),(document.activeElement===y||D===\"container\")&&Wo(g)})}}}function _(){const g=h(n);if(g){g.removeEventListener(bs,s);const y=new CustomEvent(ys,{...U0,detail:{focusReason:u.value}});g.addEventListener(ys,i),g.dispatchEvent(y),!y.defaultPrevented&&(u.value==\"keyboard\"||!EZ())&&Wo(o!=null?o:document.body,!0),g.removeEventListener(ys,s),G0.remove(a)}}return ot(()=>{e.trapped&&v(),Me(()=>e.trapped,g=>{g?v():_()})}),Mt(()=>{e.trapped&&_()}),{onKeydown:r}}});function DZ(e,t,n,o,l,u){return ze(e.$slots,\"default\",{handleKeydown:e.onKeydown})}var Lc=We(AZ,[[\"render\",DZ],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue\"]]);const BZ=[\"fixed\",\"absolute\"],xZ=et({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:He(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Zr,default:\"bottom\"},popperOptions:{type:He(Object),default:()=>({})},strategy:{type:String,values:BZ,default:\"absolute\"}}),B4=et({...xZ,id:String,style:{type:He([String,Array,Object])},className:{type:He([String,Array,Object])},effect:{type:String,default:\"dark\"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:He([String,Array,Object])},popperStyle:{type:He([String,Array,Object])},referenceEl:{type:He(Object)},triggerTargetEl:{type:He(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),$Z={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},X0=(e,t)=>{const{placement:n,strategy:o,popperOptions:l}=e,u={placement:n,strategy:o,...l,modifiers:kZ(e)};return PZ(u,t),LZ(u,l==null?void 0:l.modifiers),u},SZ=e=>{if(!!_t)return ao(e)};function kZ(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:\"offset\",options:{offset:[0,t!=null?t:12]}},{name:\"preventOverflow\",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:\"flip\",options:{padding:5,fallbackPlacements:o}},{name:\"computeStyles\",options:{gpuAcceleration:n,adaptive:n}}]}function PZ(e,{arrowEl:t,arrowOffset:n}){e.modifiers.push({name:\"arrow\",options:{element:t,padding:n!=null?n:5}})}function LZ(e,t){t&&(e.modifiers=[...e.modifiers,...t!=null?t:[]])}const TZ=le({name:\"ElPopperContent\"}),zZ=le({...TZ,props:B4,emits:$Z,setup(e,{expose:t,emit:n}){const o=e,{popperInstanceRef:l,contentRef:u,triggerRef:a,role:r}=Xe(yc,void 0),s=Xe(Sl,void 0),{nextZIndex:i}=Ml(),p=Ve(\"popper\"),m=L(),v=L(\"first\"),_=L(),g=L();Dt(t4,{arrowRef:_,arrowOffset:g}),s&&(s.addInputId||s.removeInputId)&&Dt(Sl,{...s,addInputId:vt,removeInputId:vt});const y=L(o.zIndex||i()),w=L(!1);let E;const D=U(()=>SZ(o.referenceEl)||h(a)),C=U(()=>[{zIndex:h(y)},o.popperStyle]),B=U(()=>[p.b(),p.is(\"pure\",o.pure),p.is(o.effect),o.popperClass]),$=U(()=>r&&r.value===\"dialog\"?\"false\":void 0),k=({referenceEl:J,popperContentEl:be,arrowEl:ve})=>{const Ee=X0(o,{arrowEl:ve,arrowOffset:h(g)});return F4(J,be,Ee)},P=(J=!0)=>{var be;(be=h(l))==null||be.update(),J&&(y.value=o.zIndex||i())},T=()=>{var J,be;const ve={name:\"eventListeners\",enabled:o.visible};(be=(J=h(l))==null?void 0:J.setOptions)==null||be.call(J,Ee=>({...Ee,modifiers:[...Ee.modifiers||[],ve]})),P(!1),o.visible&&o.focusOnShow?w.value=!0:o.visible===!1&&(w.value=!1)},H=()=>{n(\"focus\")},j=J=>{var be;((be=J.detail)==null?void 0:be.focusReason)!==\"pointer\"&&(v.value=\"first\",n(\"blur\"))},X=J=>{o.visible&&!w.value&&(J.target&&(v.value=J.target),w.value=!0)},W=J=>{o.trapping||(J.detail.focusReason===\"pointer\"&&J.preventDefault(),w.value=!1)},N=()=>{w.value=!1,n(\"close\")};return ot(()=>{let J;Me(D,be=>{var ve;J==null||J();const Ee=h(l);if((ve=Ee==null?void 0:Ee.destroy)==null||ve.call(Ee),be){const te=h(m);u.value=te,l.value=k({referenceEl:be,popperContentEl:te,arrowEl:h(_)}),J=Me(()=>be.getBoundingClientRect(),()=>P(),{immediate:!0})}else l.value=void 0},{immediate:!0}),Me(()=>o.triggerTargetEl,(be,ve)=>{E==null||E(),E=void 0;const Ee=h(be||m.value),te=h(ve||m.value);nl(Ee)&&(E=Me([r,()=>o.ariaLabel,$,()=>o.id],Z=>{[\"role\",\"aria-label\",\"aria-modal\",\"id\"].forEach((De,Be)=>{io(Z[Be])?Ee.removeAttribute(De):Ee.setAttribute(De,Z[Be])})},{immediate:!0})),te!==Ee&&nl(te)&&[\"role\",\"aria-label\",\"aria-modal\",\"id\"].forEach(Z=>{te.removeAttribute(Z)})},{immediate:!0}),Me(()=>o.visible,T,{immediate:!0}),Me(()=>X0(o,{arrowEl:h(_),arrowOffset:h(g)}),be=>{var ve;return(ve=l.value)==null?void 0:ve.setOptions(be)})}),Mt(()=>{E==null||E(),E=void 0}),t({popperContentRef:m,popperInstanceRef:l,updatePopper:P,contentStyle:C}),(J,be)=>(b(),F(\"div\",{ref_key:\"popperContentRef\",ref:m,style:ut(h(C)),class:K(h(B)),tabindex:\"-1\",onMouseenter:be[0]||(be[0]=ve=>J.$emit(\"mouseenter\",ve)),onMouseleave:be[1]||(be[1]=ve=>J.$emit(\"mouseleave\",ve))},[c(h(Lc),{trapped:w.value,\"trap-on-focus-in\":!0,\"focus-trap-el\":m.value,\"focus-start-el\":v.value,onFocusAfterTrapped:H,onFocusAfterReleased:j,onFocusin:X,onFocusoutPrevented:W,onReleaseRequested:N},{default:d(()=>[ze(J.$slots,\"default\")]),_:3},8,[\"trapped\",\"focus-trap-el\",\"focus-start-el\"])],38))}});var MZ=We(zZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue\"]]);const VZ=Ft(aQ),IZ=Ve(\"tooltip\"),Tc=et({...gJ,...B4,appendTo:{type:He([String,Object]),default:a4},content:{type:String,default:\"\"},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:He(Boolean),default:null},transition:{type:String,default:`${IZ.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),x4=et({...f4,disabled:Boolean,trigger:{type:He([String,Array]),default:\"hover\"},triggerKeys:{type:He(Array),default:()=>[Lt.enter,Lt.space]}}),{useModelToggleProps:HZ,useModelToggleEmits:RZ,useModelToggle:NZ}=dJ(\"visible\"),OZ=et({...i4,...HZ,...Tc,...x4,...c4,openDelay:{type:Number},visibleArrow:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:!0}}),UZ=[...RZ,\"before-show\",\"before-hide\",\"show\",\"hide\",\"open\",\"close\"],WZ=(e,t)=>qe(e)?e.includes(t):e===t,Rl=(e,t,n)=>o=>{WZ(h(e),t)&&n(o)},qZ=le({name:\"ElTooltipTrigger\"}),jZ=le({...qZ,props:x4,setup(e,{expose:t}){const n=e,o=Ve(\"tooltip\"),{controlled:l,id:u,open:a,onOpen:r,onClose:s,onToggle:i}=Xe(wc,void 0),p=L(null),m=()=>{if(h(l)||n.disabled)return!0},v=Tn(n,\"trigger\"),_=Co(m,Rl(v,\"hover\",r)),g=Co(m,Rl(v,\"hover\",s)),y=Co(m,Rl(v,\"click\",B=>{B.button===0&&i(B)})),w=Co(m,Rl(v,\"focus\",r)),E=Co(m,Rl(v,\"focus\",s)),D=Co(m,Rl(v,\"contextmenu\",B=>{B.preventDefault(),i(B)})),C=Co(m,B=>{const{code:$}=B;n.triggerKeys.includes($)&&(B.preventDefault(),i(B))});return t({triggerRef:p}),(B,$)=>(b(),ae(h(vQ),{id:h(u),\"virtual-ref\":B.virtualRef,open:h(a),\"virtual-triggering\":B.virtualTriggering,class:K(h(o).e(\"trigger\")),onBlur:h(E),onClick:h(y),onContextmenu:h(D),onFocus:h(w),onMouseenter:h(_),onMouseleave:h(g),onKeydown:h(C)},{default:d(()=>[ze(B.$slots,\"default\")]),_:3},8,[\"id\",\"virtual-ref\",\"open\",\"virtual-triggering\",\"class\",\"onBlur\",\"onClick\",\"onContextmenu\",\"onFocus\",\"onMouseenter\",\"onMouseleave\",\"onKeydown\"]))}});var KZ=We(jZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue\"]]);const GZ=le({name:\"ElTooltipContent\",inheritAttrs:!1}),YZ=le({...GZ,props:Tc,setup(e,{expose:t}){const n=e,o=L(null),l=L(!1),{controlled:u,id:a,open:r,trigger:s,onClose:i,onOpen:p,onShow:m,onHide:v,onBeforeShow:_,onBeforeHide:g}=Xe(wc,void 0),y=U(()=>n.persistent);Mt(()=>{l.value=!0});const w=U(()=>h(y)?!0:h(r)),E=U(()=>n.disabled?!1:h(r)),D=U(()=>{var N;return(N=n.style)!=null?N:{}}),C=U(()=>!h(r)),B=()=>{v()},$=()=>{if(h(u))return!0},k=Co($,()=>{n.enterable&&h(s)===\"hover\"&&p()}),P=Co($,()=>{h(s)===\"hover\"&&i()}),T=()=>{var N,J;(J=(N=o.value)==null?void 0:N.updatePopper)==null||J.call(N),_==null||_()},H=()=>{g==null||g()},j=()=>{m(),W=v9(U(()=>{var N;return(N=o.value)==null?void 0:N.popperContentRef}),()=>{if(h(u))return;h(s)!==\"hover\"&&i()})},X=()=>{n.virtualTriggering||i()};let W;return Me(()=>h(r),N=>{N||W==null||W()},{flush:\"post\"}),Me(()=>n.content,()=>{var N,J;(J=(N=o.value)==null?void 0:N.updatePopper)==null||J.call(N)}),t({contentRef:o}),(N,J)=>(b(),ae(V1,{disabled:!N.teleported,to:N.appendTo},[c(tn,{name:N.transition,onAfterLeave:B,onBeforeEnter:T,onAfterEnter:j,onBeforeLeave:H},{default:d(()=>[h(w)?fe((b(),ae(h(MZ),kn({key:0,id:h(a),ref_key:\"contentRef\",ref:o},N.$attrs,{\"aria-label\":N.ariaLabel,\"aria-hidden\":h(C),\"boundaries-padding\":N.boundariesPadding,\"fallback-placements\":N.fallbackPlacements,\"gpu-acceleration\":N.gpuAcceleration,offset:N.offset,placement:N.placement,\"popper-options\":N.popperOptions,strategy:N.strategy,effect:N.effect,enterable:N.enterable,pure:N.pure,\"popper-class\":N.popperClass,\"popper-style\":[N.popperStyle,h(D)],\"reference-el\":N.referenceEl,\"trigger-target-el\":N.triggerTargetEl,visible:h(E),\"z-index\":N.zIndex,onMouseenter:h(k),onMouseleave:h(P),onBlur:X,onClose:h(i)}),{default:d(()=>[oe(\" Workaround bug #6378 \"),l.value?oe(\"v-if\",!0):ze(N.$slots,\"default\",{key:0})]),_:3},16,[\"id\",\"aria-label\",\"aria-hidden\",\"boundaries-padding\",\"fallback-placements\",\"gpu-acceleration\",\"offset\",\"placement\",\"popper-options\",\"strategy\",\"effect\",\"enterable\",\"pure\",\"popper-class\",\"popper-style\",\"reference-el\",\"trigger-target-el\",\"visible\",\"z-index\",\"onMouseenter\",\"onMouseleave\",\"onClose\"])),[[ge,h(E)]]):oe(\"v-if\",!0)]),_:3},8,[\"name\"])],8,[\"disabled\",\"to\"]))}});var XZ=We(YZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue\"]]);const JZ=[\"innerHTML\"],QZ={key:1},ZZ=le({name:\"ElTooltip\"}),eee=le({...ZZ,props:OZ,emits:UZ,setup(e,{expose:t,emit:n}){const o=e;mJ();const l=U(()=>(jn(o.openDelay),o.openDelay||o.showAfter)),u=U(()=>(jn(o.visibleArrow),Ut(o.visibleArrow)?o.visibleArrow:o.showArrow)),a=ol(),r=L(),s=L(),i=()=>{var C;const B=h(r);B&&((C=B.popperInstanceRef)==null||C.update())},p=L(!1),m=L(),{show:v,hide:_,hasUpdateHandler:g}=NZ({indicator:p,toggleReason:m}),{onOpen:y,onClose:w}=bJ({showAfter:l,hideAfter:Tn(o,\"hideAfter\"),open:v,close:_}),E=U(()=>Ut(o.visible)&&!g.value);Dt(wc,{controlled:E,id:a,open:Vi(p),trigger:Tn(o,\"trigger\"),onOpen:C=>{y(C)},onClose:C=>{w(C)},onToggle:C=>{h(p)?w(C):y(C)},onShow:()=>{n(\"show\",m.value)},onHide:()=>{n(\"hide\",m.value)},onBeforeShow:()=>{n(\"before-show\",m.value)},onBeforeHide:()=>{n(\"before-hide\",m.value)},updatePopper:i}),Me(()=>o.disabled,C=>{C&&p.value&&(p.value=!1)});const D=()=>{var C,B;const $=(B=(C=s.value)==null?void 0:C.contentRef)==null?void 0:B.popperContentRef;return $&&$.contains(document.activeElement)};return D1(()=>p.value&&_()),t({popperRef:r,contentRef:s,isFocusInsideContent:D,updatePopper:i,onOpen:y,onClose:w,hide:_}),(C,B)=>(b(),ae(h(VZ),{ref_key:\"popperRef\",ref:r,role:C.role},{default:d(()=>[c(KZ,{disabled:C.disabled,trigger:C.trigger,\"trigger-keys\":C.triggerKeys,\"virtual-ref\":C.virtualRef,\"virtual-triggering\":C.virtualTriggering},{default:d(()=>[C.$slots.default?ze(C.$slots,\"default\",{key:0}):oe(\"v-if\",!0)]),_:3},8,[\"disabled\",\"trigger\",\"trigger-keys\",\"virtual-ref\",\"virtual-triggering\"]),c(XZ,{ref_key:\"contentRef\",ref:s,\"aria-label\":C.ariaLabel,\"boundaries-padding\":C.boundariesPadding,content:C.content,disabled:C.disabled,effect:C.effect,enterable:C.enterable,\"fallback-placements\":C.fallbackPlacements,\"hide-after\":C.hideAfter,\"gpu-acceleration\":C.gpuAcceleration,offset:C.offset,persistent:C.persistent,\"popper-class\":C.popperClass,\"popper-style\":C.popperStyle,placement:C.placement,\"popper-options\":C.popperOptions,pure:C.pure,\"raw-content\":C.rawContent,\"reference-el\":C.referenceEl,\"trigger-target-el\":C.triggerTargetEl,\"show-after\":h(l),strategy:C.strategy,teleported:C.teleported,transition:C.transition,\"virtual-triggering\":C.virtualTriggering,\"z-index\":C.zIndex,\"append-to\":C.appendTo},{default:d(()=>[ze(C.$slots,\"content\",{},()=>[C.rawContent?(b(),F(\"span\",{key:0,innerHTML:C.content},null,8,JZ)):(b(),F(\"span\",QZ,re(C.content),1))]),h(u)?(b(),ae(h(iQ),{key:0,\"arrow-offset\":C.arrowOffset},null,8,[\"arrow-offset\"])):oe(\"v-if\",!0)]),_:3},8,[\"aria-label\",\"boundaries-padding\",\"content\",\"disabled\",\"effect\",\"enterable\",\"fallback-placements\",\"hide-after\",\"gpu-acceleration\",\"offset\",\"persistent\",\"popper-class\",\"popper-style\",\"placement\",\"popper-options\",\"pure\",\"raw-content\",\"reference-el\",\"trigger-target-el\",\"show-after\",\"strategy\",\"teleported\",\"transition\",\"virtual-triggering\",\"z-index\",\"append-to\"])]),_:3},8,[\"role\"]))}});var tee=We(eee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue\"]]);const pn=Ft(tee),nee=et({value:{type:[String,Number],default:\"\"},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:[\"primary\",\"success\",\"warning\",\"info\",\"danger\"],default:\"danger\"}}),oee=[\"textContent\"],lee=le({name:\"ElBadge\"}),uee=le({...lee,props:nee,setup(e,{expose:t}){const n=e,o=Ve(\"badge\"),l=U(()=>n.isDot?\"\":gt(n.value)&&gt(n.max)?n.max<n.value?`${n.max}+`:`${n.value}`:`${n.value}`);return t({content:l}),(u,a)=>(b(),F(\"div\",{class:K(h(o).b())},[ze(u.$slots,\"default\"),c(tn,{name:`${h(o).namespace.value}-zoom-in-center`,persisted:\"\"},{default:d(()=>[fe(f(\"sup\",{class:K([h(o).e(\"content\"),h(o).em(\"content\",u.type),h(o).is(\"fixed\",!!u.$slots.default),h(o).is(\"dot\",u.isDot)]),textContent:re(h(l))},null,10,oee),[[ge,!u.hidden&&(h(l)||u.isDot)]])]),_:1},8,[\"name\"])],2))}});var aee=We(uee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue\"]]);const ree=Ft(aee),see=[\"default\",\"primary\",\"success\",\"warning\",\"info\",\"danger\",\"text\",\"\"],iee=[\"button\",\"submit\",\"reset\"],oi=et({size:Io,disabled:Boolean,type:{type:String,values:see,default:\"\"},icon:{type:Tt},nativeType:{type:String,values:iee,default:\"button\"},loading:Boolean,loadingIcon:{type:Tt,default:()=>ha},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),cee={click:e=>e instanceof MouseEvent};function Wt(e,t){dee(e)&&(e=\"100%\");var n=fee(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Ia(e){return Math.min(1,Math.max(0,e))}function dee(e){return typeof e==\"string\"&&e.indexOf(\".\")!==-1&&parseFloat(e)===1}function fee(e){return typeof e==\"string\"&&e.indexOf(\"%\")!==-1}function $4(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Ha(e){return e<=1?\"\".concat(Number(e)*100,\"%\"):e}function bl(e){return e.length===1?\"0\"+e:String(e)}function pee(e,t,n){return{r:Wt(e,255)*255,g:Wt(t,255)*255,b:Wt(n,255)*255}}function J0(e,t,n){e=Wt(e,255),t=Wt(t,255),n=Wt(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),u=0,a=0,r=(o+l)/2;if(o===l)a=0,u=0;else{var s=o-l;switch(a=r>.5?s/(2-o-l):s/(o+l),o){case e:u=(t-n)/s+(t<n?6:0);break;case t:u=(n-e)/s+2;break;case n:u=(e-t)/s+4;break}u/=6}return{h:u,s:a,l:r}}function ws(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function vee(e,t,n){var o,l,u;if(e=Wt(e,360),t=Wt(t,100),n=Wt(n,100),t===0)l=n,u=n,o=n;else{var a=n<.5?n*(1+t):n+t-n*t,r=2*n-a;o=ws(r,a,e+1/3),l=ws(r,a,e),u=ws(r,a,e-1/3)}return{r:o*255,g:l*255,b:u*255}}function Q0(e,t,n){e=Wt(e,255),t=Wt(t,255),n=Wt(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),u=0,a=o,r=o-l,s=o===0?0:r/o;if(o===l)u=0;else{switch(o){case e:u=(t-n)/r+(t<n?6:0);break;case t:u=(n-e)/r+2;break;case n:u=(e-t)/r+4;break}u/=6}return{h:u,s,v:a}}function hee(e,t,n){e=Wt(e,360)*6,t=Wt(t,100),n=Wt(n,100);var o=Math.floor(e),l=e-o,u=n*(1-t),a=n*(1-l*t),r=n*(1-(1-l)*t),s=o%6,i=[n,a,u,u,r,n][s],p=[r,n,n,a,u,u][s],m=[u,u,r,n,n,a][s];return{r:i*255,g:p*255,b:m*255}}function Z0(e,t,n,o){var l=[bl(Math.round(e).toString(16)),bl(Math.round(t).toString(16)),bl(Math.round(n).toString(16))];return o&&l[0].startsWith(l[0].charAt(1))&&l[1].startsWith(l[1].charAt(1))&&l[2].startsWith(l[2].charAt(1))?l[0].charAt(0)+l[1].charAt(0)+l[2].charAt(0):l.join(\"\")}function _ee(e,t,n,o,l){var u=[bl(Math.round(e).toString(16)),bl(Math.round(t).toString(16)),bl(Math.round(n).toString(16)),bl(mee(o))];return l&&u[0].startsWith(u[0].charAt(1))&&u[1].startsWith(u[1].charAt(1))&&u[2].startsWith(u[2].charAt(1))&&u[3].startsWith(u[3].charAt(1))?u[0].charAt(0)+u[1].charAt(0)+u[2].charAt(0)+u[3].charAt(0):u.join(\"\")}function mee(e){return Math.round(parseFloat(e)*255).toString(16)}function ed(e){return bn(e)/255}function bn(e){return parseInt(e,16)}function gee(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var li={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",goldenrod:\"#daa520\",gold:\"#ffd700\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavenderblush:\"#fff0f5\",lavender:\"#e6e6fa\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",rebeccapurple:\"#663399\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};function bee(e){var t={r:0,g:0,b:0},n=1,o=null,l=null,u=null,a=!1,r=!1;return typeof e==\"string\"&&(e=Cee(e)),typeof e==\"object\"&&(mo(e.r)&&mo(e.g)&&mo(e.b)?(t=pee(e.r,e.g,e.b),a=!0,r=String(e.r).substr(-1)===\"%\"?\"prgb\":\"rgb\"):mo(e.h)&&mo(e.s)&&mo(e.v)?(o=Ha(e.s),l=Ha(e.v),t=hee(e.h,o,l),a=!0,r=\"hsv\"):mo(e.h)&&mo(e.s)&&mo(e.l)&&(o=Ha(e.s),u=Ha(e.l),t=vee(e.h,o,u),a=!0,r=\"hsl\"),Object.prototype.hasOwnProperty.call(e,\"a\")&&(n=e.a)),n=$4(n),{ok:a,format:e.format||r,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var yee=\"[-\\\\+]?\\\\d+%?\",wee=\"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\",Jo=\"(?:\".concat(wee,\")|(?:\").concat(yee,\")\"),Cs=\"[\\\\s|\\\\(]+(\".concat(Jo,\")[,|\\\\s]+(\").concat(Jo,\")[,|\\\\s]+(\").concat(Jo,\")\\\\s*\\\\)?\"),Es=\"[\\\\s|\\\\(]+(\".concat(Jo,\")[,|\\\\s]+(\").concat(Jo,\")[,|\\\\s]+(\").concat(Jo,\")[,|\\\\s]+(\").concat(Jo,\")\\\\s*\\\\)?\"),Un={CSS_UNIT:new RegExp(Jo),rgb:new RegExp(\"rgb\"+Cs),rgba:new RegExp(\"rgba\"+Es),hsl:new RegExp(\"hsl\"+Cs),hsla:new RegExp(\"hsla\"+Es),hsv:new RegExp(\"hsv\"+Cs),hsva:new RegExp(\"hsva\"+Es),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Cee(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(li[e])e=li[e],t=!0;else if(e===\"transparent\")return{r:0,g:0,b:0,a:0,format:\"name\"};var n=Un.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Un.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Un.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Un.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Un.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Un.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Un.hex8.exec(e),n?{r:bn(n[1]),g:bn(n[2]),b:bn(n[3]),a:ed(n[4]),format:t?\"name\":\"hex8\"}:(n=Un.hex6.exec(e),n?{r:bn(n[1]),g:bn(n[2]),b:bn(n[3]),format:t?\"name\":\"hex\"}:(n=Un.hex4.exec(e),n?{r:bn(n[1]+n[1]),g:bn(n[2]+n[2]),b:bn(n[3]+n[3]),a:ed(n[4]+n[4]),format:t?\"name\":\"hex8\"}:(n=Un.hex3.exec(e),n?{r:bn(n[1]+n[1]),g:bn(n[2]+n[2]),b:bn(n[3]+n[3]),format:t?\"name\":\"hex\"}:!1)))))))))}function mo(e){return Boolean(Un.CSS_UNIT.exec(String(e)))}var S4=function(){function e(t,n){t===void 0&&(t=\"\"),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t==\"number\"&&(t=gee(t)),this.originalInput=t;var l=bee(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,l,u=t.r/255,a=t.g/255,r=t.b/255;return u<=.03928?n=u/12.92:n=Math.pow((u+.055)/1.055,2.4),a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),r<=.03928?l=r/12.92:l=Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*o+.0722*l},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=$4(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.toHsv=function(){var t=Q0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Q0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.v*100);return this.a===1?\"hsv(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%)\"):\"hsva(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%, \").concat(this.roundA,\")\")},e.prototype.toHsl=function(){var t=J0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=J0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.l*100);return this.a===1?\"hsl(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%)\"):\"hsla(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%, \").concat(this.roundA,\")\")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Z0(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),\"#\"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),_ee(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),\"#\"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?\"rgb(\".concat(t,\", \").concat(n,\", \").concat(o,\")\"):\"rgba(\".concat(t,\", \").concat(n,\", \").concat(o,\", \").concat(this.roundA,\")\")},e.prototype.toPercentageRgb=function(){var t=function(n){return\"\".concat(Math.round(Wt(n,255)*100),\"%\")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Wt(n,255)*100)};return this.a===1?\"rgb(\".concat(t(this.r),\"%, \").concat(t(this.g),\"%, \").concat(t(this.b),\"%)\"):\"rgba(\".concat(t(this.r),\"%, \").concat(t(this.g),\"%, \").concat(t(this.b),\"%, \").concat(this.roundA,\")\")},e.prototype.toName=function(){if(this.a===0)return\"transparent\";if(this.a<1)return!1;for(var t=\"#\"+Z0(this.r,this.g,this.b,!1),n=0,o=Object.entries(li);n<o.length;n++){var l=o[n],u=l[0],a=l[1];if(t===a)return u}return!1},e.prototype.toString=function(t){var n=Boolean(t);t=t!=null?t:this.format;var o=!1,l=this.a<1&&this.a>=0,u=!n&&l&&(t.startsWith(\"hex\")||t===\"name\");return u?t===\"name\"&&this.a===0?this.toName():this.toRgbString():(t===\"rgb\"&&(o=this.toRgbString()),t===\"prgb\"&&(o=this.toPercentageRgbString()),(t===\"hex\"||t===\"hex6\")&&(o=this.toHexString()),t===\"hex3\"&&(o=this.toHexString(!0)),t===\"hex4\"&&(o=this.toHex8String(!0)),t===\"hex8\"&&(o=this.toHex8String()),t===\"name\"&&(o=this.toName()),t===\"hsl\"&&(o=this.toHslString()),t===\"hsv\"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Ia(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Ia(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix(\"white\",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix(\"black\",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Ia(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Ia(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),u=n/100,a={r:(l.r-o.r)*u+o.r,g:(l.g-o.g)*u+o.g,b:(l.b-o.b)*u+o.b,a:(l.a-o.a)*u+o.a};return new e(a)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),l=360/n,u=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,u.push(new e(o));return u},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,u=n.v,a=[],r=1/t;t--;)a.push(new e({h:o,s:l,v:u})),u=(u+r)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],u=360/t,a=1;a<t;a++)l.push(new e({h:(o+a*u)%360,s:n.s,l:n.l}));return l},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function Oo(e,t=20){return e.mix(\"#141414\",t).toString()}function Eee(e){const t=ul(),n=Ve(\"button\");return U(()=>{let o={};const l=e.color;if(l){const u=new S4(l),a=e.dark?u.tint(20).toString():Oo(u,20);if(e.plain)o=n.cssVarBlock({\"bg-color\":e.dark?Oo(u,90):u.tint(90).toString(),\"text-color\":l,\"border-color\":e.dark?Oo(u,50):u.tint(50).toString(),\"hover-text-color\":`var(${n.cssVarName(\"color-white\")})`,\"hover-bg-color\":l,\"hover-border-color\":l,\"active-bg-color\":a,\"active-text-color\":`var(${n.cssVarName(\"color-white\")})`,\"active-border-color\":a}),t.value&&(o[n.cssVarBlockName(\"disabled-bg-color\")]=e.dark?Oo(u,90):u.tint(90).toString(),o[n.cssVarBlockName(\"disabled-text-color\")]=e.dark?Oo(u,50):u.tint(50).toString(),o[n.cssVarBlockName(\"disabled-border-color\")]=e.dark?Oo(u,80):u.tint(80).toString());else{const r=e.dark?Oo(u,30):u.tint(30).toString(),s=u.isDark()?`var(${n.cssVarName(\"color-white\")})`:`var(${n.cssVarName(\"color-black\")})`;if(o=n.cssVarBlock({\"bg-color\":l,\"text-color\":s,\"border-color\":l,\"hover-bg-color\":r,\"hover-text-color\":s,\"hover-border-color\":r,\"active-bg-color\":a,\"active-border-color\":a}),t.value){const i=e.dark?Oo(u,50):u.tint(50).toString();o[n.cssVarBlockName(\"disabled-bg-color\")]=i,o[n.cssVarBlockName(\"disabled-text-color\")]=e.dark?\"rgba(255, 255, 255, 0.5)\":`var(${n.cssVarName(\"color-white\")})`,o[n.cssVarBlockName(\"disabled-border-color\")]=i}}}return o})}const Fee=[\"aria-disabled\",\"disabled\",\"autofocus\",\"type\"],Aee=le({name:\"ElButton\"}),Dee=le({...Aee,props:oi,emits:cee,setup(e,{expose:t,emit:n}){const o=e,l=To();ua({from:\"type.text\",replacement:\"link\",version:\"3.0.0\",scope:\"props\",ref:\"https://element-plus.org/en-US/component/button.html#button-attributes\"},U(()=>o.type===\"text\"));const u=Xe(Kf,void 0),a=Vo(\"button\"),r=Ve(\"button\"),{form:s}=Ho(),i=dn(U(()=>u==null?void 0:u.size)),p=ul(),m=L(),v=U(()=>o.type||(u==null?void 0:u.type)||\"\"),_=U(()=>{var E,D,C;return(C=(D=o.autoInsertSpace)!=null?D:(E=a.value)==null?void 0:E.autoInsertSpace)!=null?C:!1}),g=U(()=>{var E;const D=(E=l.default)==null?void 0:E.call(l);if(_.value&&(D==null?void 0:D.length)===1){const C=D[0];if((C==null?void 0:C.type)===fa){const B=C.children;return/^\\p{Unified_Ideograph}{2}$/u.test(B.trim())}}return!1}),y=Eee(o),w=E=>{o.nativeType===\"reset\"&&(s==null||s.resetFields()),n(\"click\",E)};return t({ref:m,size:i,type:v,disabled:p,shouldAddSpace:g}),(E,D)=>(b(),F(\"button\",{ref_key:\"_ref\",ref:m,class:K([h(r).b(),h(r).m(h(v)),h(r).m(h(i)),h(r).is(\"disabled\",h(p)),h(r).is(\"loading\",E.loading),h(r).is(\"plain\",E.plain),h(r).is(\"round\",E.round),h(r).is(\"circle\",E.circle),h(r).is(\"text\",E.text),h(r).is(\"link\",E.link),h(r).is(\"has-bg\",E.bg)]),\"aria-disabled\":h(p)||E.loading,disabled:h(p)||E.loading,autofocus:E.autofocus,type:E.nativeType,style:ut(h(y)),onClick:w},[E.loading?(b(),F(Oe,{key:0},[E.$slots.loading?ze(E.$slots,\"loading\",{key:0}):(b(),ae(h(rt),{key:1,class:K(h(r).is(\"loading\"))},{default:d(()=>[(b(),ae(Ct(E.loadingIcon)))]),_:1},8,[\"class\"]))],64)):E.icon||E.$slots.icon?(b(),ae(h(rt),{key:1},{default:d(()=>[E.icon?(b(),ae(Ct(E.icon),{key:0})):ze(E.$slots,\"icon\",{key:1})]),_:3})):oe(\"v-if\",!0),E.$slots.default?(b(),F(\"span\",{key:2,class:K({[h(r).em(\"text\",\"expand\")]:h(g)})},[ze(E.$slots,\"default\")],2)):oe(\"v-if\",!0)],14,Fee))}});var Bee=We(Dee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue\"]]);const xee={size:oi.size,type:oi.type},$ee=le({name:\"ElButtonGroup\"}),See=le({...$ee,props:xee,setup(e){const t=e;Dt(Kf,Rt({size:Tn(t,\"size\"),type:Tn(t,\"type\")}));const n=Ve(\"button\");return(o,l)=>(b(),F(\"div\",{class:K(`${h(n).b(\"group\")}`)},[ze(o.$slots,\"default\")],2))}});var k4=We(See,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue\"]]);const vn=Ft(Bee,{ButtonGroup:k4});Nt(k4);var ql=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:{};function kee(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}const qo=new Map;let td;_t&&(document.addEventListener(\"mousedown\",e=>td=e),document.addEventListener(\"mouseup\",e=>{for(const t of qo.values())for(const{documentHandler:n}of t)n(e,td)}));function nd(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:nl(t.arg)&&n.push(t.arg),function(o,l){const u=t.instance.popperRef,a=o.target,r=l==null?void 0:l.target,s=!t||!t.instance,i=!a||!r,p=e.contains(a)||e.contains(r),m=e===a,v=n.length&&n.some(g=>g==null?void 0:g.contains(a))||n.length&&n.includes(r),_=u&&(u.contains(a)||u.contains(r));s||i||p||m||v||_||t.value(o,l)}}const P4={beforeMount(e,t){qo.has(e)||qo.set(e,[]),qo.get(e).push({documentHandler:nd(e,t),bindingFn:t.value})},updated(e,t){qo.has(e)||qo.set(e,[]);const n=qo.get(e),o=n.findIndex(u=>u.bindingFn===t.oldValue),l={documentHandler:nd(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){qo.delete(e)}},Pee=100,Lee=600,od={beforeMount(e,t){const n=t.value,{interval:o=Pee,delay:l=Lee}=Ge(n)?{}:n;let u,a;const r=()=>Ge(n)?n():n.handler(),s=()=>{a&&(clearTimeout(a),a=void 0),u&&(clearInterval(u),u=void 0)};e.addEventListener(\"mousedown\",i=>{i.button===0&&(s(),r(),document.addEventListener(\"mouseup\",()=>s(),{once:!0}),a=setTimeout(()=>{u=setInterval(()=>{r()},o)},l))})}},ui=\"_trap-focus-children\",yl=[],ld=e=>{if(yl.length===0)return;const t=yl[yl.length-1][ui];if(t.length>0&&e.code===Lt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,o=e.target===t[0],l=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),l&&!n&&(e.preventDefault(),t[0].focus())}},Tee={beforeMount(e){e[ui]=b0(e),yl.push(e),yl.length<=1&&document.addEventListener(\"keydown\",ld)},updated(e){at(()=>{e[ui]=b0(e)})},unmounted(){yl.shift(),yl.length===0&&document.removeEventListener(\"keydown\",ld)}};var ud=!1,ml,ai,ri,nr,or,L4,lr,si,ii,ci,T4,di,fi,z4,M4;function on(){if(!ud){ud=!0;var e=navigator.userAgent,t=/(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(di=/\\b(iPhone|iP[ao]d)/.exec(e),fi=/\\b(iP[ao]d)/.exec(e),ci=/Android/i.exec(e),z4=/FBAN\\/\\w+;/i.exec(e),M4=/Mobile/i.exec(e),T4=!!/Win64/.exec(e),t){ml=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,ml&&document&&document.documentMode&&(ml=document.documentMode);var o=/(?:Trident\\/(\\d+.\\d+))/.exec(e);L4=o?parseFloat(o[1])+4:ml,ai=t[2]?parseFloat(t[2]):NaN,ri=t[3]?parseFloat(t[3]):NaN,nr=t[4]?parseFloat(t[4]):NaN,nr?(t=/(?:Chrome\\/(\\d+\\.\\d+))/.exec(e),or=t&&t[1]?parseFloat(t[1]):NaN):or=NaN}else ml=ai=ri=or=nr=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(e);lr=l?parseFloat(l[1].replace(\"_\",\".\")):!0}else lr=!1;si=!!n[2],ii=!!n[3]}else lr=si=ii=!1}}var pi={ie:function(){return on()||ml},ieCompatibilityMode:function(){return on()||L4>ml},ie64:function(){return pi.ie()&&T4},firefox:function(){return on()||ai},opera:function(){return on()||ri},webkit:function(){return on()||nr},safari:function(){return pi.webkit()},chrome:function(){return on()||or},windows:function(){return on()||si},osx:function(){return on()||lr},linux:function(){return on()||ii},iphone:function(){return on()||di},mobile:function(){return on()||di||fi||ci||M4},nativeApp:function(){return on()||z4},android:function(){return on()||ci},ipad:function(){return on()||fi}},zee=pi,Ra=!!(typeof window<\"u\"&&window.document&&window.document.createElement),Mee={canUseDOM:Ra,canUseWorkers:typeof Worker<\"u\",canUseEventListeners:Ra&&!!(window.addEventListener||window.attachEvent),canUseViewport:Ra&&!!window.screen,isInWorker:!Ra},V4=Mee,I4;V4.canUseDOM&&(I4=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(\"\",\"\")!==!0);function Vee(e,t){if(!V4.canUseDOM||t&&!(\"addEventListener\"in document))return!1;var n=\"on\"+e,o=n in document;if(!o){var l=document.createElement(\"div\");l.setAttribute(n,\"return;\"),o=typeof l[n]==\"function\"}return!o&&I4&&e===\"wheel\"&&(o=document.implementation.hasFeature(\"Events.wheel\",\"3.0\")),o}var Iee=Vee,ad=10,rd=40,sd=800;function H4(e){var t=0,n=0,o=0,l=0;return\"detail\"in e&&(n=e.detail),\"wheelDelta\"in e&&(n=-e.wheelDelta/120),\"wheelDeltaY\"in e&&(n=-e.wheelDeltaY/120),\"wheelDeltaX\"in e&&(t=-e.wheelDeltaX/120),\"axis\"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=t*ad,l=n*ad,\"deltaY\"in e&&(l=e.deltaY),\"deltaX\"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(e.deltaMode==1?(o*=rd,l*=rd):(o*=sd,l*=sd)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}H4.getEventType=function(){return zee.firefox()?\"DOMMouseScroll\":Iee(\"wheel\")?\"wheel\":\"mousewheel\"};var Hee=H4;/**\n* Checks if an event is supported in the current execution environment.\n*\n* NOTE: This will not work correctly for non-generic events such as `change`,\n* `reset`, `load`, `error`, and `select`.\n*\n* Borrows from Modernizr.\n*\n* @param {string} eventNameSuffix Event name, e.g. \"click\".\n* @param {?boolean} capture Check if the capture phase is supported.\n* @return {boolean} True if the event is supported.\n* @internal\n* @license Modernizr 3.0.0pre (Custom Build) | MIT\n*/const Ree=function(e,t){if(e&&e.addEventListener){const n=function(o){const l=Hee(o);t&&Reflect.apply(t,this,[o,l])};e.addEventListener(\"wheel\",n,{passive:!0})}},Nee={beforeMount(e,t){Ree(e,t.value)}},R4={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Io,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},N4={[bt]:e=>tt(e)||gt(e)||Ut(e),change:e=>tt(e)||gt(e)||Ut(e)},Oee=({model:e,isChecked:t})=>{const n=Xe(Eu,void 0),o=U(()=>{var u,a;const r=(u=n==null?void 0:n.max)==null?void 0:u.value,s=(a=n==null?void 0:n.min)==null?void 0:a.value;return!jn(r)&&e.value.length>=r&&!t.value||!jn(s)&&e.value.length<=s&&t.value});return{isDisabled:ul(U(()=>(n==null?void 0:n.disabled.value)||o.value)),isLimitDisabled:o}},Uee=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:u})=>{const a=Xe(Eu,void 0),{formItem:r}=Ho(),{emit:s}=pt();function i(g){var y,w;return g===e.trueLabel||g===!0?(y=e.trueLabel)!=null?y:!0:(w=e.falseLabel)!=null?w:!1}function p(g,y){s(\"change\",i(g),y)}function m(g){if(n.value)return;const y=g.target;s(\"change\",i(y.checked),g)}async function v(g){n.value||!o.value&&!l.value&&u.value&&(g.composedPath().some(E=>E.tagName===\"LABEL\")||(t.value=i([!1,e.falseLabel].includes(t.value)),await at(),p(t.value,g)))}const _=U(()=>(a==null?void 0:a.validateEvent)||e.validateEvent);return Me(()=>e.modelValue,()=>{_.value&&(r==null||r.validate(\"change\").catch(g=>void 0))}),{handleChange:m,onClickRoot:v}},Wee=e=>{const t=L(!1),{emit:n}=pt(),o=Xe(Eu,void 0),l=U(()=>jn(o)===!1),u=L(!1);return{model:U({get(){var r,s;return l.value?(r=o==null?void 0:o.modelValue)==null?void 0:r.value:(s=e.modelValue)!=null?s:t.value},set(r){var s,i;l.value&&qe(r)?(u.value=((s=o==null?void 0:o.max)==null?void 0:s.value)!==void 0&&r.length>(o==null?void 0:o.max.value),u.value===!1&&((i=o==null?void 0:o.changeEvent)==null||i.call(o,r))):(n(bt,r),t.value=r)}}),isGroup:l,isLimitExceeded:u}},qee=(e,t,{model:n})=>{const o=Xe(Eu,void 0),l=L(!1),u=U(()=>{const i=n.value;return Ut(i)?i:qe(i)?i.map(ct).includes(e.label):i!=null?i===e.trueLabel:!!i}),a=dn(U(()=>{var i;return(i=o==null?void 0:o.size)==null?void 0:i.value}),{prop:!0}),r=dn(U(()=>{var i;return(i=o==null?void 0:o.size)==null?void 0:i.value})),s=U(()=>!!(t.default||e.label));return{checkboxButtonSize:a,isChecked:u,isFocused:l,checkboxSize:r,hasOwnLabel:s}},jee=(e,{model:t})=>{function n(){qe(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},O4=(e,t)=>{const{formItem:n}=Ho(),{model:o,isGroup:l,isLimitExceeded:u}=Wee(e),{isFocused:a,isChecked:r,checkboxButtonSize:s,checkboxSize:i,hasOwnLabel:p}=qee(e,t,{model:o}),{isDisabled:m}=Oee({model:o,isChecked:r}),{inputId:v,isLabeledByFormItem:_}=_a(e,{formItemContext:n,disableIdGeneration:p,disableIdManagement:l}),{handleChange:g,onClickRoot:y}=Uee(e,{model:o,isLimitExceeded:u,hasOwnLabel:p,isDisabled:m,isLabeledByFormItem:_});return jee(e,{model:o}),{inputId:v,isLabeledByFormItem:_,isChecked:r,isDisabled:m,isFocused:a,checkboxButtonSize:s,checkboxSize:i,hasOwnLabel:p,model:o,handleChange:g,onClickRoot:y}},Kee=[\"tabindex\",\"role\",\"aria-checked\"],Gee=[\"id\",\"aria-hidden\",\"name\",\"tabindex\",\"disabled\",\"true-value\",\"false-value\"],Yee=[\"id\",\"aria-hidden\",\"disabled\",\"value\",\"name\",\"tabindex\"],Xee=le({name:\"ElCheckbox\"}),Jee=le({...Xee,props:R4,emits:N4,setup(e){const t=e,n=To(),{inputId:o,isLabeledByFormItem:l,isChecked:u,isDisabled:a,isFocused:r,checkboxSize:s,hasOwnLabel:i,model:p,handleChange:m,onClickRoot:v}=O4(t,n),_=Ve(\"checkbox\");return(g,y)=>(b(),ae(Ct(!h(i)&&h(l)?\"span\":\"label\"),{class:K([h(_).b(),h(_).m(h(s)),h(_).is(\"disabled\",h(a)),h(_).is(\"bordered\",g.border),h(_).is(\"checked\",h(u))]),\"aria-controls\":g.indeterminate?g.controls:null,onClick:h(v)},{default:d(()=>[f(\"span\",{class:K([h(_).e(\"input\"),h(_).is(\"disabled\",h(a)),h(_).is(\"checked\",h(u)),h(_).is(\"indeterminate\",g.indeterminate),h(_).is(\"focus\",h(r))]),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?\"checkbox\":void 0,\"aria-checked\":g.indeterminate?\"mixed\":void 0},[g.trueLabel||g.falseLabel?fe((b(),F(\"input\",{key:0,id:h(o),\"onUpdate:modelValue\":y[0]||(y[0]=w=>yt(p)?p.value=w:null),class:K(h(_).e(\"original\")),type:\"checkbox\",\"aria-hidden\":g.indeterminate?\"true\":\"false\",name:g.name,tabindex:g.tabindex,disabled:h(a),\"true-value\":g.trueLabel,\"false-value\":g.falseLabel,onChange:y[1]||(y[1]=(...w)=>h(m)&&h(m)(...w)),onFocus:y[2]||(y[2]=w=>r.value=!0),onBlur:y[3]||(y[3]=w=>r.value=!1)},null,42,Gee)),[[gr,h(p)]]):fe((b(),F(\"input\",{key:1,id:h(o),\"onUpdate:modelValue\":y[4]||(y[4]=w=>yt(p)?p.value=w:null),class:K(h(_).e(\"original\")),type:\"checkbox\",\"aria-hidden\":g.indeterminate?\"true\":\"false\",disabled:h(a),value:g.label,name:g.name,tabindex:g.tabindex,onChange:y[5]||(y[5]=(...w)=>h(m)&&h(m)(...w)),onFocus:y[6]||(y[6]=w=>r.value=!0),onBlur:y[7]||(y[7]=w=>r.value=!1)},null,42,Yee)),[[gr,h(p)]]),f(\"span\",{class:K(h(_).e(\"inner\"))},null,2)],10,Kee),h(i)?(b(),F(\"span\",{key:0,class:K(h(_).e(\"label\"))},[ze(g.$slots,\"default\"),g.$slots.default?oe(\"v-if\",!0):(b(),F(Oe,{key:0},[A(re(g.label),1)],64))],2)):oe(\"v-if\",!0)]),_:3},8,[\"class\",\"aria-controls\",\"onClick\"]))}});var Qee=We(Jee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue\"]]);const Zee=[\"name\",\"tabindex\",\"disabled\",\"true-value\",\"false-value\"],ete=[\"name\",\"tabindex\",\"disabled\",\"value\"],tte=le({name:\"ElCheckboxButton\"}),nte=le({...tte,props:R4,emits:N4,setup(e){const t=e,n=To(),{isFocused:o,isChecked:l,isDisabled:u,checkboxButtonSize:a,model:r,handleChange:s}=O4(t,n),i=Xe(Eu,void 0),p=Ve(\"checkbox\"),m=U(()=>{var v,_,g,y;const w=(_=(v=i==null?void 0:i.fill)==null?void 0:v.value)!=null?_:\"\";return{backgroundColor:w,borderColor:w,color:(y=(g=i==null?void 0:i.textColor)==null?void 0:g.value)!=null?y:\"\",boxShadow:w?`-1px 0 0 0 ${w}`:void 0}});return(v,_)=>(b(),F(\"label\",{class:K([h(p).b(\"button\"),h(p).bm(\"button\",h(a)),h(p).is(\"disabled\",h(u)),h(p).is(\"checked\",h(l)),h(p).is(\"focus\",h(o))])},[v.trueLabel||v.falseLabel?fe((b(),F(\"input\",{key:0,\"onUpdate:modelValue\":_[0]||(_[0]=g=>yt(r)?r.value=g:null),class:K(h(p).be(\"button\",\"original\")),type:\"checkbox\",name:v.name,tabindex:v.tabindex,disabled:h(u),\"true-value\":v.trueLabel,\"false-value\":v.falseLabel,onChange:_[1]||(_[1]=(...g)=>h(s)&&h(s)(...g)),onFocus:_[2]||(_[2]=g=>o.value=!0),onBlur:_[3]||(_[3]=g=>o.value=!1)},null,42,Zee)),[[gr,h(r)]]):fe((b(),F(\"input\",{key:1,\"onUpdate:modelValue\":_[4]||(_[4]=g=>yt(r)?r.value=g:null),class:K(h(p).be(\"button\",\"original\")),type:\"checkbox\",name:v.name,tabindex:v.tabindex,disabled:h(u),value:v.label,onChange:_[5]||(_[5]=(...g)=>h(s)&&h(s)(...g)),onFocus:_[6]||(_[6]=g=>o.value=!0),onBlur:_[7]||(_[7]=g=>o.value=!1)},null,42,ete)),[[gr,h(r)]]),v.$slots.default||v.label?(b(),F(\"span\",{key:2,class:K(h(p).be(\"button\",\"inner\")),style:ut(h(l)?h(m):void 0)},[ze(v.$slots,\"default\",{},()=>[A(re(v.label),1)])],6)):oe(\"v-if\",!0)],2))}});var U4=We(nte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue\"]]);const ote=et({modelValue:{type:He(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Io,label:String,fill:String,textColor:String,tag:{type:String,default:\"div\"},validateEvent:{type:Boolean,default:!0}}),lte={[bt]:e=>qe(e),change:e=>qe(e)},ute=le({name:\"ElCheckboxGroup\"}),ate=le({...ute,props:ote,emits:lte,setup(e,{emit:t}){const n=e,o=Ve(\"checkbox\"),{formItem:l}=Ho(),{inputId:u,isLabeledByFormItem:a}=_a(n,{formItemContext:l}),r=async i=>{t(bt,i),await at(),t(\"change\",i)},s=U({get(){return n.modelValue},set(i){r(i)}});return Dt(Eu,{...t9(ho(n),[\"size\",\"min\",\"max\",\"disabled\",\"validateEvent\",\"fill\",\"textColor\"]),modelValue:s,changeEvent:r}),Me(()=>n.modelValue,()=>{n.validateEvent&&(l==null||l.validate(\"change\").catch(i=>void 0))}),(i,p)=>{var m;return b(),ae(Ct(i.tag),{id:h(u),class:K(h(o).b(\"group\")),role:\"group\",\"aria-label\":h(a)?void 0:i.label||\"checkbox-group\",\"aria-labelledby\":h(a)?(m=h(l))==null?void 0:m.labelId:void 0},{default:d(()=>[ze(i.$slots,\"default\")]),_:3},8,[\"id\",\"class\",\"aria-label\",\"aria-labelledby\"])}}});var W4=We(ate,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue\"]]);const Po=Ft(Qee,{CheckboxButton:U4,CheckboxGroup:W4});Nt(U4);const q4=Nt(W4),j4=et({size:Io,disabled:Boolean,label:{type:[String,Number,Boolean],default:\"\"}}),rte=et({...j4,modelValue:{type:[String,Number,Boolean],default:\"\"},name:{type:String,default:\"\"},border:Boolean}),K4={[bt]:e=>tt(e)||gt(e)||Ut(e),[Jn]:e=>tt(e)||gt(e)||Ut(e)},G4=(e,t)=>{const n=L(),o=Xe(Qf,void 0),l=U(()=>!!o),u=U({get(){return l.value?o.modelValue:e.modelValue},set(p){l.value?o.changeEvent(p):t&&t(bt,p),n.value.checked=e.modelValue===e.label}}),a=dn(U(()=>o==null?void 0:o.size)),r=ul(U(()=>o==null?void 0:o.disabled)),s=L(!1),i=U(()=>r.value||l.value&&u.value!==e.label?-1:0);return{radioRef:n,isGroup:l,radioGroup:o,focus:s,size:a,disabled:r,tabIndex:i,modelValue:u}},ste=[\"value\",\"name\",\"disabled\"],ite=le({name:\"ElRadio\"}),cte=le({...ite,props:rte,emits:K4,setup(e,{emit:t}){const n=e,o=Ve(\"radio\"),{radioRef:l,radioGroup:u,focus:a,size:r,disabled:s,modelValue:i}=G4(n,t);function p(){at(()=>t(\"change\",i.value))}return(m,v)=>{var _;return b(),F(\"label\",{class:K([h(o).b(),h(o).is(\"disabled\",h(s)),h(o).is(\"focus\",h(a)),h(o).is(\"bordered\",m.border),h(o).is(\"checked\",h(i)===m.label),h(o).m(h(r))])},[f(\"span\",{class:K([h(o).e(\"input\"),h(o).is(\"disabled\",h(s)),h(o).is(\"checked\",h(i)===m.label)])},[fe(f(\"input\",{ref_key:\"radioRef\",ref:l,\"onUpdate:modelValue\":v[0]||(v[0]=g=>yt(i)?i.value=g:null),class:K(h(o).e(\"original\")),value:m.label,name:m.name||((_=h(u))==null?void 0:_.name),disabled:h(s),type:\"radio\",onFocus:v[1]||(v[1]=g=>a.value=!0),onBlur:v[2]||(v[2]=g=>a.value=!1),onChange:p},null,42,ste),[[Q1,h(i)]]),f(\"span\",{class:K(h(o).e(\"inner\"))},null,2)],2),f(\"span\",{class:K(h(o).e(\"label\")),onKeydown:v[3]||(v[3]=mt(()=>{},[\"stop\"]))},[ze(m.$slots,\"default\",{},()=>[A(re(m.label),1)])],34)],2)}}});var dte=We(cte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue\"]]);const fte=et({...j4,name:{type:String,default:\"\"}}),pte=[\"value\",\"name\",\"disabled\"],vte=le({name:\"ElRadioButton\"}),hte=le({...vte,props:fte,setup(e){const t=e,n=Ve(\"radio\"),{radioRef:o,focus:l,size:u,disabled:a,modelValue:r,radioGroup:s}=G4(t),i=U(()=>({backgroundColor:(s==null?void 0:s.fill)||\"\",borderColor:(s==null?void 0:s.fill)||\"\",boxShadow:s!=null&&s.fill?`-1px 0 0 0 ${s.fill}`:\"\",color:(s==null?void 0:s.textColor)||\"\"}));return(p,m)=>{var v;return b(),F(\"label\",{class:K([h(n).b(\"button\"),h(n).is(\"active\",h(r)===p.label),h(n).is(\"disabled\",h(a)),h(n).is(\"focus\",h(l)),h(n).bm(\"button\",h(u))])},[fe(f(\"input\",{ref_key:\"radioRef\",ref:o,\"onUpdate:modelValue\":m[0]||(m[0]=_=>yt(r)?r.value=_:null),class:K(h(n).be(\"button\",\"original-radio\")),value:p.label,type:\"radio\",name:p.name||((v=h(s))==null?void 0:v.name),disabled:h(a),onFocus:m[1]||(m[1]=_=>l.value=!0),onBlur:m[2]||(m[2]=_=>l.value=!1)},null,42,pte),[[Q1,h(r)]]),f(\"span\",{class:K(h(n).be(\"button\",\"inner\")),style:ut(h(r)===p.label?h(i):{}),onKeydown:m[3]||(m[3]=mt(()=>{},[\"stop\"]))},[ze(p.$slots,\"default\",{},()=>[A(re(p.label),1)])],38)],2)}}});var Y4=We(hte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue\"]]);const _te=et({id:{type:String,default:void 0},size:Io,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:\"\"},fill:{type:String,default:\"\"},label:{type:String,default:void 0},textColor:{type:String,default:\"\"},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),mte=K4,gte=[\"id\",\"aria-label\",\"aria-labelledby\"],bte=le({name:\"ElRadioGroup\"}),yte=le({...bte,props:_te,emits:mte,setup(e,{emit:t}){const n=e,o=Ve(\"radio\"),l=ol(),u=L(),{formItem:a}=Ho(),{inputId:r,isLabeledByFormItem:s}=_a(n,{formItemContext:a}),i=m=>{t(bt,m),at(()=>t(\"change\",m))};ot(()=>{const m=u.value.querySelectorAll(\"[type=radio]\"),v=m[0];!Array.from(m).some(_=>_.checked)&&v&&(v.tabIndex=0)});const p=U(()=>n.name||l.value);return Dt(Qf,Rt({...ho(n),changeEvent:i,name:p})),Me(()=>n.modelValue,()=>{n.validateEvent&&(a==null||a.validate(\"change\").catch(m=>void 0))}),(m,v)=>(b(),F(\"div\",{id:h(r),ref_key:\"radioGroupRef\",ref:u,class:K(h(o).b(\"group\")),role:\"radiogroup\",\"aria-label\":h(s)?void 0:m.label||\"radio-group\",\"aria-labelledby\":h(s)?h(a).labelId:void 0},[ze(m.$slots,\"default\")],10,gte))}});var X4=We(yte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue\"]]);const zc=Ft(dte,{RadioButton:Y4,RadioGroup:X4}),Mc=Nt(X4);Nt(Y4);const J4=et({closable:Boolean,type:{type:String,values:[\"success\",\"info\",\"warning\",\"danger\",\"\"],default:\"\"},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:\"\"},size:{type:String,values:Cu,default:\"\"},effect:{type:String,values:[\"dark\",\"light\",\"plain\"],default:\"light\"},round:Boolean}),wte={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},Cte=le({name:\"ElTag\"}),Ete=le({...Cte,props:J4,emits:wte,setup(e,{emit:t}){const n=e,o=dn(),l=Ve(\"tag\"),u=U(()=>{const{type:s,hit:i,effect:p,closable:m,round:v}=n;return[l.b(),l.is(\"closable\",m),l.m(s),l.m(o.value),l.m(p),l.is(\"hit\",i),l.is(\"round\",v)]}),a=s=>{t(\"close\",s)},r=s=>{t(\"click\",s)};return(s,i)=>s.disableTransitions?(b(),F(\"span\",{key:0,class:K(h(u)),style:ut({backgroundColor:s.color}),onClick:r},[f(\"span\",{class:K(h(l).e(\"content\"))},[ze(s.$slots,\"default\")],2),s.closable?(b(),ae(h(rt),{key:0,class:K(h(l).e(\"close\")),onClick:mt(a,[\"stop\"])},{default:d(()=>[c(h($l))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],6)):(b(),ae(tn,{key:1,name:`${h(l).namespace.value}-zoom-in-center`,appear:\"\"},{default:d(()=>[f(\"span\",{class:K(h(u)),style:ut({backgroundColor:s.color}),onClick:r},[f(\"span\",{class:K(h(l).e(\"content\"))},[ze(s.$slots,\"default\")],2),s.closable?(b(),ae(h(rt),{key:0,class:K(h(l).e(\"close\")),onClick:mt(a,[\"stop\"])},{default:d(()=>[c(h($l))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],6)]),_:3},8,[\"name\"]))}});var Fte=We(Ete,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue\"]]);const Ate=Ft(Fte),id=e=>typeof gt(e),Dte=et({accordion:Boolean,modelValue:{type:He([Array,String,Number]),default:()=>So([])}}),Bte={[bt]:id,[Jn]:id},xte=le({name:\"ElCollapse\"}),$te=le({...xte,props:Dte,emits:Bte,setup(e,{expose:t,emit:n}){const o=e,l=Ve(\"collapse\"),u=L(oa(o.modelValue)),a=s=>{u.value=s;const i=o.accordion?u.value[0]:u.value;n(bt,i),n(Jn,i)},r=s=>{if(o.accordion)a([(u.value[0]||u.value[0]===0)&&u.value[0]===s?\"\":s]);else{const i=[...u.value],p=i.indexOf(s);p>-1?i.splice(p,1):i.push(s),a(i)}};return Me(()=>o.modelValue,()=>u.value=oa(o.modelValue),{deep:!0}),Dt(Gf,{activeNames:u,handleItemClick:r}),t({activeNames:u,setActiveNames:a}),(s,i)=>(b(),F(\"div\",{class:K(h(l).b()),role:\"tablist\",\"aria-multiselectable\":\"true\"},[ze(s.$slots,\"default\")],2))}});var Ste=We($te,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse.vue\"]]);const kte=le({name:\"ElCollapseTransition\"}),Pte=le({...kte,setup(e){const t=Ve(\"collapse-transition\"),n={beforeEnter(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0},enter(o){o.dataset.oldOverflow=o.style.overflow,o.scrollHeight!==0?(o.style.maxHeight=`${o.scrollHeight}px`,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom):(o.style.maxHeight=0,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom),o.style.overflow=\"hidden\"},afterEnter(o){o.style.maxHeight=\"\",o.style.overflow=o.dataset.oldOverflow},beforeLeave(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.dataset.oldOverflow=o.style.overflow,o.style.maxHeight=`${o.scrollHeight}px`,o.style.overflow=\"hidden\"},leave(o){o.scrollHeight!==0&&(o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0)},afterLeave(o){o.style.maxHeight=\"\",o.style.overflow=o.dataset.oldOverflow,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom}};return(o,l)=>(b(),ae(tn,kn({name:h(t).b()},F3(n)),{default:d(()=>[ze(o.$slots,\"default\")]),_:3},16,[\"name\"]))}});var ur=We(Pte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue\"]]);ur.install=e=>{e.component(ur.name,ur)};const Q4=ur,Lte=et({title:{type:String,default:\"\"},name:{type:He([String,Number]),default:()=>bc()},disabled:Boolean}),Tte=[\"aria-expanded\",\"aria-controls\",\"aria-describedby\"],zte=[\"id\",\"tabindex\",\"onKeypress\"],Mte=[\"id\",\"aria-hidden\",\"aria-labelledby\"],Vte=le({name:\"ElCollapseItem\"}),Ite=le({...Vte,props:Lte,setup(e,{expose:t}){const n=e,o=Xe(Gf),l=Ve(\"collapse\"),u=L(!1),a=L(!1),r=L(bc()),s=U(()=>o==null?void 0:o.activeNames.value.includes(n.name)),i=()=>{setTimeout(()=>{a.value?a.value=!1:u.value=!0},50)},p=()=>{n.disabled||(o==null||o.handleItemClick(n.name),u.value=!1,a.value=!0)},m=()=>{o==null||o.handleItemClick(n.name)};return t({isActive:s}),(v,_)=>(b(),F(\"div\",{class:K([h(l).b(\"item\"),h(l).is(\"active\",h(s)),h(l).is(\"disabled\",v.disabled)])},[f(\"div\",{role:\"tab\",\"aria-expanded\":h(s),\"aria-controls\":h(l).b(`content-${r.value}`),\"aria-describedby\":h(l).b(`content-${r.value}`)},[f(\"div\",{id:h(l).b(`head-${r.value}`),class:K([h(l).be(\"item\",\"header\"),h(l).is(\"active\",h(s)),{focusing:u.value&&!v.disabled}]),role:\"button\",tabindex:v.disabled?-1:0,onClick:p,onKeypress:Bt(mt(m,[\"stop\",\"prevent\"]),[\"space\",\"enter\"]),onFocus:i,onBlur:_[0]||(_[0]=g=>u.value=!1)},[ze(v.$slots,\"title\",{},()=>[A(re(v.title),1)]),c(h(rt),{class:K([h(l).be(\"item\",\"arrow\"),h(l).is(\"active\",h(s))])},{default:d(()=>[c(h(wu))]),_:1},8,[\"class\"])],42,zte)],8,Tte),c(h(Q4),null,{default:d(()=>[fe(f(\"div\",{id:h(l).b(`content-${r.value}`),class:K(h(l).be(\"item\",\"wrap\")),role:\"tabpanel\",\"aria-hidden\":!h(s),\"aria-labelledby\":h(l).b(`head-${r.value}`)},[f(\"div\",{class:K(h(l).be(\"item\",\"content\"))},[ze(v.$slots,\"default\")],2)],10,Mte),[[ge,h(s)]])]),_:3})],2))}});var Z4=We(Ite,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse-item.vue\"]]);const Hte=Ft(Ste,{CollapseItem:Z4}),Rte=Nt(Z4),vi={},Nte=et({a11y:{type:Boolean,default:!0},locale:{type:He(Object)},size:Io,button:{type:He(Object)},experimentalFeatures:{type:He(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:He(Object)},zIndex:Number,namespace:{type:String,default:\"el\"}});le({name:\"ElConfigProvider\",props:Nte,setup(e,{slots:t}){Me(()=>e.message,o=>{Object.assign(vi,o!=null?o:{})},{immediate:!0,deep:!0});const n=ZX(e);return()=>ze(t,\"default\",{config:n==null?void 0:n.value})}});const Ote=le({name:\"ElContainer\"}),Ute=le({...Ote,props:{direction:{type:String}},setup(e){const t=e,n=To(),o=Ve(\"container\"),l=U(()=>t.direction===\"vertical\"?!0:t.direction===\"horizontal\"?!1:n&&n.default?n.default().some(a=>{const r=a.type.name;return r===\"ElHeader\"||r===\"ElFooter\"}):!1);return(u,a)=>(b(),F(\"section\",{class:K([h(o).b(),h(o).is(\"vertical\",h(l))])},[ze(u.$slots,\"default\")],2))}});var Wte=We(Ute,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/container.vue\"]]);const qte=le({name:\"ElAside\"}),jte=le({...qte,props:{width:{type:String,default:null}},setup(e){const t=e,n=Ve(\"aside\"),o=U(()=>t.width?n.cssVarBlock({width:t.width}):{});return(l,u)=>(b(),F(\"aside\",{class:K(h(n).b()),style:ut(h(o))},[ze(l.$slots,\"default\")],6))}});var e6=We(jte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/aside.vue\"]]);const Kte=le({name:\"ElFooter\"}),Gte=le({...Kte,props:{height:{type:String,default:null}},setup(e){const t=e,n=Ve(\"footer\"),o=U(()=>t.height?n.cssVarBlock({height:t.height}):{});return(l,u)=>(b(),F(\"footer\",{class:K(h(n).b()),style:ut(h(o))},[ze(l.$slots,\"default\")],6))}});var t6=We(Gte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/footer.vue\"]]);const Yte=le({name:\"ElHeader\"}),Xte=le({...Yte,props:{height:{type:String,default:null}},setup(e){const t=e,n=Ve(\"header\"),o=U(()=>t.height?n.cssVarBlock({height:t.height}):{});return(l,u)=>(b(),F(\"header\",{class:K(h(n).b()),style:ut(h(o))},[ze(l.$slots,\"default\")],6))}});var n6=We(Xte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/header.vue\"]]);const Jte=le({name:\"ElMain\"}),Qte=le({...Jte,setup(e){const t=Ve(\"main\");return(n,o)=>(b(),F(\"main\",{class:K(h(t).b())},[ze(n.$slots,\"default\")],2))}});var o6=We(Qte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/main.vue\"]]);const Zte=Ft(Wte,{Aside:e6,Footer:t6,Header:n6,Main:o6});Nt(e6);Nt(t6);const ene=Nt(n6),tne=Nt(o6),Vc=\"elDescriptions\";var Lu=le({name:\"ElDescriptionsCell\",props:{cell:{type:Object},tag:{type:String},type:{type:String}},setup(){return{descriptions:Xe(Vc,{})}},render(){var e,t,n,o,l,u;const a=YX(this.cell),{border:r,direction:s}=this.descriptions,i=s===\"vertical\",p=((n=(t=(e=this.cell)==null?void 0:e.children)==null?void 0:t.label)==null?void 0:n.call(t))||a.label,m=(u=(l=(o=this.cell)==null?void 0:o.children)==null?void 0:l.default)==null?void 0:u.call(l),v=a.span,_=a.align?`is-${a.align}`:\"\",g=a.labelAlign?`is-${a.labelAlign}`:_,y=a.className,w=a.labelClassName,E={width:Xn(a.width),minWidth:Xn(a.minWidth)},D=Ve(\"descriptions\");switch(this.type){case\"label\":return Re(this.tag,{style:E,class:[D.e(\"cell\"),D.e(\"label\"),D.is(\"bordered-label\",r),D.is(\"vertical-label\",i),g,w],colSpan:i?v:1},p);case\"content\":return Re(this.tag,{style:E,class:[D.e(\"cell\"),D.e(\"content\"),D.is(\"bordered-content\",r),D.is(\"vertical-content\",i),_,y],colSpan:i?v:v*2-1},m);default:return Re(\"td\",{style:E,class:[D.e(\"cell\"),_],colSpan:v},[Re(\"span\",{class:[D.e(\"label\"),w]},p),Re(\"span\",{class:[D.e(\"content\"),y]},m)])}}});const nne=et({row:{type:Array,default:()=>[]}}),one={key:1},lne=le({name:\"ElDescriptionsRow\"}),une=le({...lne,props:nne,setup(e){const t=Xe(Vc,{});return(n,o)=>h(t).direction===\"vertical\"?(b(),F(Oe,{key:0},[f(\"tr\",null,[(b(!0),F(Oe,null,it(n.row,(l,u)=>(b(),ae(h(Lu),{key:`tr1-${u}`,cell:l,tag:\"th\",type:\"label\"},null,8,[\"cell\"]))),128))]),f(\"tr\",null,[(b(!0),F(Oe,null,it(n.row,(l,u)=>(b(),ae(h(Lu),{key:`tr2-${u}`,cell:l,tag:\"td\",type:\"content\"},null,8,[\"cell\"]))),128))])],64)):(b(),F(\"tr\",one,[(b(!0),F(Oe,null,it(n.row,(l,u)=>(b(),F(Oe,{key:`tr3-${u}`},[h(t).border?(b(),F(Oe,{key:0},[c(h(Lu),{cell:l,tag:\"td\",type:\"label\"},null,8,[\"cell\"]),c(h(Lu),{cell:l,tag:\"td\",type:\"content\"},null,8,[\"cell\"])],64)):(b(),ae(h(Lu),{key:1,cell:l,tag:\"td\",type:\"both\"},null,8,[\"cell\"]))],64))),128))]))}});var ane=We(une,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/descriptions-row.vue\"]]);const rne=et({border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,values:[\"horizontal\",\"vertical\"],default:\"horizontal\"},size:Io,title:{type:String,default:\"\"},extra:{type:String,default:\"\"}}),sne=le({name:\"ElDescriptions\"}),ine=le({...sne,props:rne,setup(e){const t=e,n=Ve(\"descriptions\"),o=dn(),l=To();Dt(Vc,t);const u=U(()=>[n.b(),n.m(o.value)]),a=(s,i,p,m=!1)=>(s.props||(s.props={}),i>p&&(s.props.span=p),m&&(s.props.span=i),s),r=()=>{var s;const i=Fr((s=l.default)==null?void 0:s.call(l)).filter(g=>{var y;return((y=g==null?void 0:g.type)==null?void 0:y.name)===\"ElDescriptionsItem\"}),p=[];let m=[],v=t.column,_=0;return i.forEach((g,y)=>{var w;const E=((w=g.props)==null?void 0:w.span)||1;if(y<i.length-1&&(_+=E>v?v:E),y===i.length-1){const D=t.column-_%t.column;m.push(a(g,D,v,!0)),p.push(m);return}E<v?(v-=E,m.push(g)):(m.push(a(g,E,v)),p.push(m),v=t.column,m=[])}),p};return(s,i)=>(b(),F(\"div\",{class:K(h(u))},[s.title||s.extra||s.$slots.title||s.$slots.extra?(b(),F(\"div\",{key:0,class:K(h(n).e(\"header\"))},[f(\"div\",{class:K(h(n).e(\"title\"))},[ze(s.$slots,\"title\",{},()=>[A(re(s.title),1)])],2),f(\"div\",{class:K(h(n).e(\"extra\"))},[ze(s.$slots,\"extra\",{},()=>[A(re(s.extra),1)])],2)],2)):oe(\"v-if\",!0),f(\"div\",{class:K(h(n).e(\"body\"))},[f(\"table\",{class:K([h(n).e(\"table\"),h(n).is(\"bordered\",s.border)])},[f(\"tbody\",null,[(b(!0),F(Oe,null,it(r(),(p,m)=>(b(),ae(ane,{key:m,row:p},null,8,[\"row\"]))),128))])],2)],2)],2))}});var cne=We(ine,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/description.vue\"]]),l6=le({name:\"ElDescriptionsItem\",props:{label:{type:String,default:\"\"},span:{type:Number,default:1},width:{type:[String,Number],default:\"\"},minWidth:{type:[String,Number],default:\"\"},align:{type:String,default:\"left\"},labelAlign:{type:String,default:\"\"},className:{type:String,default:\"\"},labelClassName:{type:String,default:\"\"}}});const ba=Ft(cne,{DescriptionsItem:l6}),ya=Nt(l6),dne=et({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:He([String,Array,Object])},zIndex:{type:He([String,Number])}}),fne={click:e=>e instanceof MouseEvent};var pne=le({name:\"ElOverlay\",props:dne,emits:fne,setup(e,{slots:t,emit:n}){const o=Ve(\"overlay\"),l=s=>{n(\"click\",s)},{onClick:u,onMousedown:a,onMouseup:r}=Cc(e.customMaskEvent?void 0:l);return()=>e.mask?c(\"div\",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:u,onMousedown:a,onMouseup:r},[ze(t,\"default\")],er.STYLE|er.CLASS|er.PROPS,[\"onClick\",\"onMouseup\",\"onMousedown\"]):Re(\"div\",{class:e.overlayClass,style:{zIndex:e.zIndex,position:\"fixed\",top:\"0px\",right:\"0px\",bottom:\"0px\",left:\"0px\"}},[ze(t,\"default\")])}});const u6=pne,a6=et({center:{type:Boolean,default:!1},alignCenter:{type:Boolean,default:!1},closeIcon:{type:Tt},customClass:{type:String,default:\"\"},draggable:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},title:{type:String,default:\"\"}}),vne={close:()=>!0},hne=[\"aria-label\"],_ne=[\"id\"],mne=le({name:\"ElDialogContent\"}),gne=le({...mne,props:a6,emits:vne,setup(e){const t=e,{t:n}=Dn(),{Close:o}=Uf,{dialogRef:l,headerRef:u,bodyId:a,ns:r,style:s}=Xe(Xf),{focusTrapRef:i}=Xe(A4),p=jX(i,l),m=U(()=>t.draggable);return o4(l,u,m),(v,_)=>(b(),F(\"div\",{ref:h(p),class:K([h(r).b(),h(r).is(\"fullscreen\",v.fullscreen),h(r).is(\"draggable\",h(m)),h(r).is(\"align-center\",v.alignCenter),{[h(r).m(\"center\")]:v.center},v.customClass]),style:ut(h(s)),tabindex:\"-1\"},[f(\"header\",{ref_key:\"headerRef\",ref:u,class:K(h(r).e(\"header\"))},[ze(v.$slots,\"header\",{},()=>[f(\"span\",{role:\"heading\",class:K(h(r).e(\"title\"))},re(v.title),3)]),v.showClose?(b(),F(\"button\",{key:0,\"aria-label\":h(n)(\"el.dialog.close\"),class:K(h(r).e(\"headerbtn\")),type:\"button\",onClick:_[0]||(_[0]=g=>v.$emit(\"close\"))},[c(h(rt),{class:K(h(r).e(\"close\"))},{default:d(()=>[(b(),ae(Ct(v.closeIcon||h(o))))]),_:1},8,[\"class\"])],10,hne)):oe(\"v-if\",!0)],2),f(\"div\",{id:h(a),class:K(h(r).e(\"body\"))},[ze(v.$slots,\"default\")],10,_ne),v.$slots.footer?(b(),F(\"footer\",{key:0,class:K(h(r).e(\"footer\"))},[ze(v.$slots,\"footer\")],2)):oe(\"v-if\",!0)],6))}});var bne=We(gne,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue\"]]);const yne=et({...a6,appendToBody:{type:Boolean,default:!1},beforeClose:{type:He(Function)},destroyOnClose:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:{type:Boolean,default:!1},modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1}}),wne={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[bt]:e=>Ut(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},Cne=(e,t)=>{const o=pt().emit,{nextZIndex:l}=Ml();let u=\"\";const a=ol(),r=ol(),s=L(!1),i=L(!1),p=L(!1),m=L(e.zIndex||l());let v,_;const g=Vo(\"namespace\",Qr),y=U(()=>{const N={},J=`--${g.value}-dialog`;return e.fullscreen||(e.top&&(N[`${J}-margin-top`]=e.top),e.width&&(N[`${J}-width`]=Xn(e.width))),N}),w=U(()=>e.alignCenter?{display:\"flex\"}:{});function E(){o(\"opened\")}function D(){o(\"closed\"),o(bt,!1),e.destroyOnClose&&(p.value=!1)}function C(){o(\"close\")}function B(){_==null||_(),v==null||v(),e.openDelay&&e.openDelay>0?{stop:v}=uu(()=>T(),e.openDelay):T()}function $(){v==null||v(),_==null||_(),e.closeDelay&&e.closeDelay>0?{stop:_}=uu(()=>H(),e.closeDelay):H()}function k(){function N(J){J||(i.value=!0,s.value=!1)}e.beforeClose?e.beforeClose(N):$()}function P(){e.closeOnClickModal&&k()}function T(){!_t||(s.value=!0)}function H(){s.value=!1}function j(){o(\"openAutoFocus\")}function X(){o(\"closeAutoFocus\")}e.lockScroll&&l4(s);function W(){e.closeOnPressEscape&&k()}return Me(()=>e.modelValue,N=>{N?(i.value=!1,B(),p.value=!0,m.value=e.zIndex?m.value++:l(),at(()=>{o(\"open\"),t.value&&(t.value.scrollTop=0)})):s.value&&$()}),Me(()=>e.fullscreen,N=>{!t.value||(N?(u=t.value.style.transform,t.value.style.transform=\"\"):t.value.style.transform=u)}),ot(()=>{e.modelValue&&(s.value=!0,p.value=!0,B())}),{afterEnter:E,afterLeave:D,beforeLeave:C,handleClose:k,onModalClick:P,close:$,doClose:H,onOpenAutoFocus:j,onCloseAutoFocus:X,onCloseRequested:W,titleId:a,bodyId:r,closed:i,style:y,overlayDialogStyle:w,rendered:p,visible:s,zIndex:m}},Ene=[\"aria-label\",\"aria-labelledby\",\"aria-describedby\"],Fne=le({name:\"ElDialog\",inheritAttrs:!1}),Ane=le({...Fne,props:yne,emits:wne,setup(e,{expose:t}){const n=e,o=To();ua({scope:\"el-dialog\",from:\"the title slot\",replacement:\"the header slot\",version:\"3.0.0\",ref:\"https://element-plus.org/en-US/component/dialog.html#slots\"},U(()=>!!o.title)),ua({scope:\"el-dialog\",from:\"custom-class\",replacement:\"class\",version:\"2.3.0\",ref:\"https://element-plus.org/en-US/component/dialog.html#attributes\",type:\"Attribute\"},U(()=>!!n.customClass));const l=Ve(\"dialog\"),u=L(),a=L(),r=L(),{visible:s,titleId:i,bodyId:p,style:m,overlayDialogStyle:v,rendered:_,zIndex:g,afterEnter:y,afterLeave:w,beforeLeave:E,handleClose:D,onModalClick:C,onOpenAutoFocus:B,onCloseAutoFocus:$,onCloseRequested:k}=Cne(n,u);Dt(Xf,{dialogRef:u,headerRef:a,bodyId:p,ns:l,rendered:_,style:m});const P=Cc(C),T=U(()=>n.draggable&&!n.fullscreen);return t({visible:s,dialogContentRef:r}),(H,j)=>(b(),ae(V1,{to:\"body\",disabled:!H.appendToBody},[c(tn,{name:\"dialog-fade\",onAfterEnter:h(y),onAfterLeave:h(w),onBeforeLeave:h(E),persisted:\"\"},{default:d(()=>[fe(c(h(u6),{\"custom-mask-event\":\"\",mask:H.modal,\"overlay-class\":H.modalClass,\"z-index\":h(g)},{default:d(()=>[f(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":H.title||void 0,\"aria-labelledby\":H.title?void 0:h(i),\"aria-describedby\":h(p),class:K(`${h(l).namespace.value}-overlay-dialog`),style:ut(h(v)),onClick:j[0]||(j[0]=(...X)=>h(P).onClick&&h(P).onClick(...X)),onMousedown:j[1]||(j[1]=(...X)=>h(P).onMousedown&&h(P).onMousedown(...X)),onMouseup:j[2]||(j[2]=(...X)=>h(P).onMouseup&&h(P).onMouseup(...X))},[c(h(Lc),{loop:\"\",trapped:h(s),\"focus-start-el\":\"container\",onFocusAfterTrapped:h(B),onFocusAfterReleased:h($),onReleaseRequested:h(k)},{default:d(()=>[h(_)?(b(),ae(bne,kn({key:0,ref_key:\"dialogContentRef\",ref:r},H.$attrs,{\"custom-class\":H.customClass,center:H.center,\"align-center\":H.alignCenter,\"close-icon\":H.closeIcon,draggable:h(T),fullscreen:H.fullscreen,\"show-close\":H.showClose,title:H.title,onClose:h(D)}),Zl({header:d(()=>[H.$slots.title?ze(H.$slots,\"title\",{key:1}):ze(H.$slots,\"header\",{key:0,close:h(D),titleId:h(i),titleClass:h(l).e(\"title\")})]),default:d(()=>[ze(H.$slots,\"default\")]),_:2},[H.$slots.footer?{name:\"footer\",fn:d(()=>[ze(H.$slots,\"footer\")])}:void 0]),1040,[\"custom-class\",\"center\",\"align-center\",\"close-icon\",\"draggable\",\"fullscreen\",\"show-close\",\"title\",\"onClose\"])):oe(\"v-if\",!0)]),_:3},8,[\"trapped\",\"onFocusAfterTrapped\",\"onFocusAfterReleased\",\"onReleaseRequested\"])],46,Ene)]),_:3},8,[\"mask\",\"overlay-class\",\"z-index\"]),[[ge,h(s)]])]),_:3},8,[\"onAfterEnter\",\"onAfterLeave\",\"onBeforeLeave\"])],8,[\"disabled\"]))}});var Dne=We(Ane,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue\"]]);const Il=Ft(Dne),Bne=et({direction:{type:String,values:[\"horizontal\",\"vertical\"],default:\"horizontal\"},contentPosition:{type:String,values:[\"left\",\"center\",\"right\"],default:\"center\"},borderStyle:{type:He(String),default:\"solid\"}}),xne=le({name:\"ElDivider\"}),$ne=le({...xne,props:Bne,setup(e){const t=e,n=Ve(\"divider\"),o=U(()=>n.cssVar({\"border-style\":t.borderStyle}));return(l,u)=>(b(),F(\"div\",{class:K([h(n).b(),h(n).m(l.direction)]),style:ut(h(o)),role:\"separator\"},[l.$slots.default&&l.direction!==\"vertical\"?(b(),F(\"div\",{key:0,class:K([h(n).e(\"text\"),h(n).is(l.contentPosition)])},[ze(l.$slots,\"default\")],2)):oe(\"v-if\",!0)],6))}});var Sne=We($ne,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue\"]]);const Ic=Ft(Sne),kne=et({model:Object,rules:{type:He(Object)},labelPosition:{type:String,values:[\"left\",\"right\",\"top\"],default:\"right\"},requireAsteriskPosition:{type:String,values:[\"left\",\"right\"],default:\"left\"},labelWidth:{type:[String,Number],default:\"\"},labelSuffix:{type:String,default:\"\"},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:Cu},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),Pne={validate:(e,t,n)=>(qe(e)||tt(e))&&Ut(t)&&tt(n)};function Lne(){const e=L([]),t=U(()=>{if(!e.value.length)return\"0\";const u=Math.max(...e.value);return u?`${u}px`:\"\"});function n(u){const a=e.value.indexOf(u);return a===-1&&t.value,a}function o(u,a){if(u&&a){const r=n(a);e.value.splice(r,1,u)}else u&&e.value.push(u)}function l(u){const a=n(u);a>-1&&e.value.splice(a,1)}return{autoLabelWidth:t,registerLabelWidth:o,deregisterLabelWidth:l}}const Na=(e,t)=>{const n=oa(t);return n.length>0?e.filter(o=>o.prop&&n.includes(o.prop)):e},Tne=\"ElForm\",zne=le({name:Tne}),Mne=le({...zne,props:kne,emits:Pne,setup(e,{expose:t,emit:n}){const o=e,l=[],u=dn(),a=Ve(\"form\"),r=U(()=>{const{labelPosition:D,inline:C}=o;return[a.b(),a.m(u.value||\"default\"),{[a.m(`label-${D}`)]:D,[a.m(\"inline\")]:C}]}),s=D=>{l.push(D)},i=D=>{D.prop&&l.splice(l.indexOf(D),1)},p=(D=[])=>{!o.model||Na(l,D).forEach(C=>C.resetField())},m=(D=[])=>{Na(l,D).forEach(C=>C.clearValidate())},v=U(()=>!!o.model),_=D=>{if(l.length===0)return[];const C=Na(l,D);return C.length?C:[]},g=async D=>w(void 0,D),y=async(D=[])=>{if(!v.value)return!1;const C=_(D);if(C.length===0)return!0;let B={};for(const $ of C)try{await $.validate(\"\")}catch(k){B={...B,...k}}return Object.keys(B).length===0?!0:Promise.reject(B)},w=async(D=[],C)=>{const B=!Ge(C);try{const $=await y(D);return $===!0&&(C==null||C($)),$}catch($){const k=$;return o.scrollToError&&E(Object.keys(k)[0]),C==null||C(!1,k),B&&Promise.reject(k)}},E=D=>{var C;const B=Na(l,D)[0];B&&((C=B.$el)==null||C.scrollIntoView())};return Me(()=>o.rules,()=>{o.validateOnRuleChange&&g().catch(D=>void 0)},{deep:!0}),Dt(Fu,Rt({...ho(o),emit:n,resetFields:p,clearValidate:m,validateField:w,addField:s,removeField:i,...Lne()})),t({validate:g,validateField:w,resetFields:p,clearValidate:m,scrollToField:E}),(D,C)=>(b(),F(\"form\",{class:K(h(r))},[ze(D.$slots,\"default\")],2))}});var Vne=We(Mne,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue\"]]);function wl(){return wl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},wl.apply(this,arguments)}function Ine(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,sa(e,t)}function hi(e){return hi=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},hi(e)}function sa(e,t){return sa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,l){return o.__proto__=l,o},sa(e,t)}function Hne(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ar(e,t,n){return Hne()?ar=Reflect.construct.bind():ar=function(l,u,a){var r=[null];r.push.apply(r,u);var s=Function.bind.apply(l,r),i=new s;return a&&sa(i,a.prototype),i},ar.apply(null,arguments)}function Rne(e){return Function.toString.call(e).indexOf(\"[native code]\")!==-1}function _i(e){var t=typeof Map==\"function\"?new Map:void 0;return _i=function(o){if(o===null||!Rne(o))return o;if(typeof o!=\"function\")throw new TypeError(\"Super expression must either be null or a function\");if(typeof t!=\"undefined\"){if(t.has(o))return t.get(o);t.set(o,l)}function l(){return ar(o,arguments,hi(this).constructor)}return l.prototype=Object.create(o.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),sa(l,o)},_i(e)}var Nne=/%[sdj%]/g,One=function(){};typeof process!=\"undefined\"&&process.env;function mi(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var o=n.field;t[o]=t[o]||[],t[o].push(n)}),t}function wn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var l=0,u=n.length;if(typeof e==\"function\")return e.apply(null,n);if(typeof e==\"string\"){var a=e.replace(Nne,function(r){if(r===\"%%\")return\"%\";if(l>=u)return r;switch(r){case\"%s\":return String(n[l++]);case\"%d\":return Number(n[l++]);case\"%j\":try{return JSON.stringify(n[l++])}catch{return\"[Circular]\"}break;default:return r}});return a}return e}function Une(e){return e===\"string\"||e===\"url\"||e===\"hex\"||e===\"email\"||e===\"date\"||e===\"pattern\"}function zt(e,t){return!!(e==null||t===\"array\"&&Array.isArray(e)&&!e.length||Une(t)&&typeof e==\"string\"&&!e)}function Wne(e,t,n){var o=[],l=0,u=e.length;function a(r){o.push.apply(o,r||[]),l++,l===u&&n(o)}e.forEach(function(r){t(r,a)})}function cd(e,t,n){var o=0,l=e.length;function u(a){if(a&&a.length){n(a);return}var r=o;o=o+1,r<l?t(e[r],u):n([])}u([])}function qne(e){var t=[];return Object.keys(e).forEach(function(n){t.push.apply(t,e[n]||[])}),t}var dd=function(e){Ine(t,e);function t(n,o){var l;return l=e.call(this,\"Async Validation Error\")||this,l.errors=n,l.fields=o,l}return t}(_i(Error));function jne(e,t,n,o,l){if(t.first){var u=new Promise(function(v,_){var g=function(E){return o(E),E.length?_(new dd(E,mi(E))):v(l)},y=qne(e);cd(y,n,g)});return u.catch(function(v){return v}),u}var a=t.firstFields===!0?Object.keys(e):t.firstFields||[],r=Object.keys(e),s=r.length,i=0,p=[],m=new Promise(function(v,_){var g=function(w){if(p.push.apply(p,w),i++,i===s)return o(p),p.length?_(new dd(p,mi(p))):v(l)};r.length||(o(p),v(l)),r.forEach(function(y){var w=e[y];a.indexOf(y)!==-1?cd(w,n,g):Wne(w,n,g)})});return m.catch(function(v){return v}),m}function Kne(e){return!!(e&&e.message!==void 0)}function Gne(e,t){for(var n=e,o=0;o<t.length;o++){if(n==null)return n;n=n[t[o]]}return n}function fd(e,t){return function(n){var o;return e.fullFields?o=Gne(t,e.fullFields):o=t[n.field||e.fullField],Kne(n)?(n.field=n.field||e.fullField,n.fieldValue=o,n):{message:typeof n==\"function\"?n():n,fieldValue:o,field:n.field||e.fullField}}}function pd(e,t){if(t){for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];typeof o==\"object\"&&typeof e[n]==\"object\"?e[n]=wl({},e[n],o):e[n]=o}}return e}var r6=function(t,n,o,l,u,a){t.required&&(!o.hasOwnProperty(t.field)||zt(n,a||t.type))&&l.push(wn(u.messages.required,t.fullField))},Yne=function(t,n,o,l,u){(/^\\s+$/.test(n)||n===\"\")&&l.push(wn(u.messages.whitespace,t.fullField))},Oa,Xne=function(){if(Oa)return Oa;var e=\"[a-fA-F\\\\d:]\",t=function(B){return B&&B.includeBoundaries?\"(?:(?<=\\\\s|^)(?=\"+e+\")|(?<=\"+e+\")(?=\\\\s|$))\":\"\"},n=\"(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}\",o=\"[a-fA-F\\\\d]{1,4}\",l=(`\n(?:\n(?:`+o+\":){7}(?:\"+o+`|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n(?:`+o+\":){6}(?:\"+n+\"|:\"+o+`|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\n(?:`+o+\":){5}(?::\"+n+\"|(?::\"+o+`){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\n(?:`+o+\":){4}(?:(?::\"+o+\"){0,1}:\"+n+\"|(?::\"+o+`){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\n(?:`+o+\":){3}(?:(?::\"+o+\"){0,2}:\"+n+\"|(?::\"+o+`){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\n(?:`+o+\":){2}(?:(?::\"+o+\"){0,3}:\"+n+\"|(?::\"+o+`){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\n(?:`+o+\":){1}(?:(?::\"+o+\"){0,4}:\"+n+\"|(?::\"+o+`){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::`+o+\"){0,5}:\"+n+\"|(?::\"+o+`){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\n`).replace(/\\s*\\/\\/.*$/gm,\"\").replace(/\\n/g,\"\").trim(),u=new RegExp(\"(?:^\"+n+\"$)|(?:^\"+l+\"$)\"),a=new RegExp(\"^\"+n+\"$\"),r=new RegExp(\"^\"+l+\"$\"),s=function(B){return B&&B.exact?u:new RegExp(\"(?:\"+t(B)+n+t(B)+\")|(?:\"+t(B)+l+t(B)+\")\",\"g\")};s.v4=function(C){return C&&C.exact?a:new RegExp(\"\"+t(C)+n+t(C),\"g\")},s.v6=function(C){return C&&C.exact?r:new RegExp(\"\"+t(C)+l+t(C),\"g\")};var i=\"(?:(?:[a-z]+:)?//)\",p=\"(?:\\\\S+(?::\\\\S*)?@)?\",m=s.v4().source,v=s.v6().source,_=\"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\",g=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\",y=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\",w=\"(?::\\\\d{2,5})?\",E='(?:[/?#][^\\\\s\"]*)?',D=\"(?:\"+i+\"|www\\\\.)\"+p+\"(?:localhost|\"+m+\"|\"+v+\"|\"+_+g+y+\")\"+w+E;return Oa=new RegExp(\"(?:^\"+D+\"$)\",\"i\"),Oa},vd={email:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Mu={integer:function(t){return Mu.number(t)&&parseInt(t,10)===t},float:function(t){return Mu.number(t)&&!Mu.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime==\"function\"&&typeof t.getMonth==\"function\"&&typeof t.getYear==\"function\"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t==\"number\"},object:function(t){return typeof t==\"object\"&&!Mu.array(t)},method:function(t){return typeof t==\"function\"},email:function(t){return typeof t==\"string\"&&t.length<=320&&!!t.match(vd.email)},url:function(t){return typeof t==\"string\"&&t.length<=2048&&!!t.match(Xne())},hex:function(t){return typeof t==\"string\"&&!!t.match(vd.hex)}},Jne=function(t,n,o,l,u){if(t.required&&n===void 0){r6(t,n,o,l,u);return}var a=[\"integer\",\"float\",\"array\",\"regexp\",\"object\",\"method\",\"email\",\"number\",\"date\",\"url\",\"hex\"],r=t.type;a.indexOf(r)>-1?Mu[r](n)||l.push(wn(u.messages.types[r],t.fullField,t.type)):r&&typeof n!==t.type&&l.push(wn(u.messages.types[r],t.fullField,t.type))},Qne=function(t,n,o,l,u){var a=typeof t.len==\"number\",r=typeof t.min==\"number\",s=typeof t.max==\"number\",i=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,p=n,m=null,v=typeof n==\"number\",_=typeof n==\"string\",g=Array.isArray(n);if(v?m=\"number\":_?m=\"string\":g&&(m=\"array\"),!m)return!1;g&&(p=n.length),_&&(p=n.replace(i,\"_\").length),a?p!==t.len&&l.push(wn(u.messages[m].len,t.fullField,t.len)):r&&!s&&p<t.min?l.push(wn(u.messages[m].min,t.fullField,t.min)):s&&!r&&p>t.max?l.push(wn(u.messages[m].max,t.fullField,t.max)):r&&s&&(p<t.min||p>t.max)&&l.push(wn(u.messages[m].range,t.fullField,t.min,t.max))},Nl=\"enum\",Zne=function(t,n,o,l,u){t[Nl]=Array.isArray(t[Nl])?t[Nl]:[],t[Nl].indexOf(n)===-1&&l.push(wn(u.messages[Nl],t.fullField,t[Nl].join(\", \")))},eoe=function(t,n,o,l,u){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(n)||l.push(wn(u.messages.pattern.mismatch,t.fullField,n,t.pattern));else if(typeof t.pattern==\"string\"){var a=new RegExp(t.pattern);a.test(n)||l.push(wn(u.messages.pattern.mismatch,t.fullField,n,t.pattern))}}},ft={required:r6,whitespace:Yne,type:Jne,range:Qne,enum:Zne,pattern:eoe},toe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n,\"string\")&&!t.required)return o();ft.required(t,n,l,a,u,\"string\"),zt(n,\"string\")||(ft.type(t,n,l,a,u),ft.range(t,n,l,a,u),ft.pattern(t,n,l,a,u),t.whitespace===!0&&ft.whitespace(t,n,l,a,u))}o(a)},noe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&ft.type(t,n,l,a,u)}o(a)},ooe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(n===\"\"&&(n=void 0),zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&(ft.type(t,n,l,a,u),ft.range(t,n,l,a,u))}o(a)},loe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&ft.type(t,n,l,a,u)}o(a)},uoe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),zt(n)||ft.type(t,n,l,a,u)}o(a)},aoe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&(ft.type(t,n,l,a,u),ft.range(t,n,l,a,u))}o(a)},roe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&(ft.type(t,n,l,a,u),ft.range(t,n,l,a,u))}o(a)},soe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(n==null&&!t.required)return o();ft.required(t,n,l,a,u,\"array\"),n!=null&&(ft.type(t,n,l,a,u),ft.range(t,n,l,a,u))}o(a)},ioe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&ft.type(t,n,l,a,u)}o(a)},coe=\"enum\",doe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u),n!==void 0&&ft[coe](t,n,l,a,u)}o(a)},foe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n,\"string\")&&!t.required)return o();ft.required(t,n,l,a,u),zt(n,\"string\")||ft.pattern(t,n,l,a,u)}o(a)},poe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n,\"date\")&&!t.required)return o();if(ft.required(t,n,l,a,u),!zt(n,\"date\")){var s;n instanceof Date?s=n:s=new Date(n),ft.type(t,s,l,a,u),s&&ft.range(t,s.getTime(),l,a,u)}}o(a)},voe=function(t,n,o,l,u){var a=[],r=Array.isArray(n)?\"array\":typeof n;ft.required(t,n,l,a,u,r),o(a)},Fs=function(t,n,o,l,u){var a=t.type,r=[],s=t.required||!t.required&&l.hasOwnProperty(t.field);if(s){if(zt(n,a)&&!t.required)return o();ft.required(t,n,l,r,u,a),zt(n,a)||ft.type(t,n,l,r,u)}o(r)},hoe=function(t,n,o,l,u){var a=[],r=t.required||!t.required&&l.hasOwnProperty(t.field);if(r){if(zt(n)&&!t.required)return o();ft.required(t,n,l,a,u)}o(a)},Wu={string:toe,method:noe,number:ooe,boolean:loe,regexp:uoe,integer:aoe,float:roe,array:soe,object:ioe,enum:doe,pattern:foe,date:poe,url:Fs,hex:Fs,email:Fs,required:voe,any:hoe};function gi(){return{default:\"Validation error on field %s\",required:\"%s is required\",enum:\"%s must be one of %s\",whitespace:\"%s cannot be empty\",date:{format:\"%s date %s is invalid for format %s\",parse:\"%s date could not be parsed, %s is invalid \",invalid:\"%s date %s is invalid\"},types:{string:\"%s is not a %s\",method:\"%s is not a %s (function)\",array:\"%s is not an %s\",object:\"%s is not an %s\",number:\"%s is not a %s\",date:\"%s is not a %s\",boolean:\"%s is not a %s\",integer:\"%s is not an %s\",float:\"%s is not a %s\",regexp:\"%s is not a valid %s\",email:\"%s is not a valid %s\",url:\"%s is not a valid %s\",hex:\"%s is not a valid %s\"},string:{len:\"%s must be exactly %s characters\",min:\"%s must be at least %s characters\",max:\"%s cannot be longer than %s characters\",range:\"%s must be between %s and %s characters\"},number:{len:\"%s must equal %s\",min:\"%s cannot be less than %s\",max:\"%s cannot be greater than %s\",range:\"%s must be between %s and %s\"},array:{len:\"%s must be exactly %s in length\",min:\"%s cannot be less than %s in length\",max:\"%s cannot be greater than %s in length\",range:\"%s must be between %s and %s in length\"},pattern:{mismatch:\"%s value %s does not match pattern %s\"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var bi=gi(),wa=function(){function e(n){this.rules=null,this._messages=bi,this.define(n)}var t=e.prototype;return t.define=function(o){var l=this;if(!o)throw new Error(\"Cannot configure a schema with no rules\");if(typeof o!=\"object\"||Array.isArray(o))throw new Error(\"Rules must be an object\");this.rules={},Object.keys(o).forEach(function(u){var a=o[u];l.rules[u]=Array.isArray(a)?a:[a]})},t.messages=function(o){return o&&(this._messages=pd(gi(),o)),this._messages},t.validate=function(o,l,u){var a=this;l===void 0&&(l={}),u===void 0&&(u=function(){});var r=o,s=l,i=u;if(typeof s==\"function\"&&(i=s,s={}),!this.rules||Object.keys(this.rules).length===0)return i&&i(null,r),Promise.resolve(r);function p(y){var w=[],E={};function D(B){if(Array.isArray(B)){var $;w=($=w).concat.apply($,B)}else w.push(B)}for(var C=0;C<y.length;C++)D(y[C]);w.length?(E=mi(w),i(w,E)):i(null,r)}if(s.messages){var m=this.messages();m===bi&&(m=gi()),pd(m,s.messages),s.messages=m}else s.messages=this.messages();var v={},_=s.keys||Object.keys(this.rules);_.forEach(function(y){var w=a.rules[y],E=r[y];w.forEach(function(D){var C=D;typeof C.transform==\"function\"&&(r===o&&(r=wl({},r)),E=r[y]=C.transform(E)),typeof C==\"function\"?C={validator:C}:C=wl({},C),C.validator=a.getValidationMethod(C),C.validator&&(C.field=y,C.fullField=C.fullField||y,C.type=a.getType(C),v[y]=v[y]||[],v[y].push({rule:C,value:E,source:r,field:y}))})});var g={};return jne(v,s,function(y,w){var E=y.rule,D=(E.type===\"object\"||E.type===\"array\")&&(typeof E.fields==\"object\"||typeof E.defaultField==\"object\");D=D&&(E.required||!E.required&&y.value),E.field=y.field;function C(k,P){return wl({},P,{fullField:E.fullField+\".\"+k,fullFields:E.fullFields?[].concat(E.fullFields,[k]):[k]})}function B(k){k===void 0&&(k=[]);var P=Array.isArray(k)?k:[k];!s.suppressWarning&&P.length&&e.warning(\"async-validator:\",P),P.length&&E.message!==void 0&&(P=[].concat(E.message));var T=P.map(fd(E,r));if(s.first&&T.length)return g[E.field]=1,w(T);if(!D)w(T);else{if(E.required&&!y.value)return E.message!==void 0?T=[].concat(E.message).map(fd(E,r)):s.error&&(T=[s.error(E,wn(s.messages.required,E.field))]),w(T);var H={};E.defaultField&&Object.keys(y.value).map(function(W){H[W]=E.defaultField}),H=wl({},H,y.rule.fields);var j={};Object.keys(H).forEach(function(W){var N=H[W],J=Array.isArray(N)?N:[N];j[W]=J.map(C.bind(null,W))});var X=new e(j);X.messages(s.messages),y.rule.options&&(y.rule.options.messages=s.messages,y.rule.options.error=s.error),X.validate(y.value,y.rule.options||s,function(W){var N=[];T&&T.length&&N.push.apply(N,T),W&&W.length&&N.push.apply(N,W),w(N.length?N:null)})}}var $;if(E.asyncValidator)$=E.asyncValidator(E,y.value,B,y.source,s);else if(E.validator){try{$=E.validator(E,y.value,B,y.source,s)}catch(k){console.error==null||console.error(k),s.suppressValidatorError||setTimeout(function(){throw k},0),B(k.message)}$===!0?B():$===!1?B(typeof E.message==\"function\"?E.message(E.fullField||E.field):E.message||(E.fullField||E.field)+\" fails\"):$ instanceof Array?B($):$ instanceof Error&&B($.message)}$&&$.then&&$.then(function(){return B()},function(k){return B(k)})},function(y){p(y)},r)},t.getType=function(o){if(o.type===void 0&&o.pattern instanceof RegExp&&(o.type=\"pattern\"),typeof o.validator!=\"function\"&&o.type&&!Wu.hasOwnProperty(o.type))throw new Error(wn(\"Unknown rule type %s\",o.type));return o.type||\"string\"},t.getValidationMethod=function(o){if(typeof o.validator==\"function\")return o.validator;var l=Object.keys(o),u=l.indexOf(\"message\");return u!==-1&&l.splice(u,1),l.length===1&&l[0]===\"required\"?Wu.required:Wu[this.getType(o)]||void 0},e}();wa.register=function(t,n){if(typeof n!=\"function\")throw new Error(\"Cannot register a validator by type, validator is not a function\");Wu[t]=n};wa.warning=One;wa.messages=bi;wa.validators=Wu;const _oe=[\"\",\"error\",\"validating\",\"success\"],moe=et({label:String,labelWidth:{type:[String,Number],default:\"\"},prop:{type:He([String,Array])},required:{type:Boolean,default:void 0},rules:{type:He([Object,Array])},error:String,validateStatus:{type:String,values:_oe},for:String,inlineMessage:{type:[String,Boolean],default:\"\"},showMessage:{type:Boolean,default:!0},size:{type:String,values:Cu}}),hd=\"ElLabelWrap\";var goe=le({name:hd,props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:t}){const n=Xe(Fu,void 0),o=Xe(Sl);o||An(hd,\"usage: <el-form-item><label-wrap /></el-form-item>\");const l=Ve(\"form\"),u=L(),a=L(0),r=()=>{var p;if((p=u.value)!=null&&p.firstElementChild){const m=window.getComputedStyle(u.value.firstElementChild).width;return Math.ceil(Number.parseFloat(m))}else return 0},s=(p=\"update\")=>{at(()=>{t.default&&e.isAutoWidth&&(p===\"update\"?a.value=r():p===\"remove\"&&(n==null||n.deregisterLabelWidth(a.value)))})},i=()=>s(\"update\");return ot(()=>{i()}),Mt(()=>{s(\"remove\")}),Ll(()=>i()),Me(a,(p,m)=>{e.updateAll&&(n==null||n.registerLabelWidth(p,m))}),po(U(()=>{var p,m;return(m=(p=u.value)==null?void 0:p.firstElementChild)!=null?m:null}),i),()=>{var p,m;if(!t)return null;const{isAutoWidth:v}=e;if(v){const _=n==null?void 0:n.autoLabelWidth,g=o==null?void 0:o.hasLabel,y={};if(g&&_&&_!==\"auto\"){const w=Math.max(0,Number.parseInt(_,10)-a.value),E=n.labelPosition===\"left\"?\"marginRight\":\"marginLeft\";w&&(y[E]=`${w}px`)}return c(\"div\",{ref:u,class:[l.be(\"item\",\"label-wrap\")],style:y},[(p=t.default)==null?void 0:p.call(t)])}else return c(Oe,{ref:u},[(m=t.default)==null?void 0:m.call(t)])}}});const boe=[\"role\",\"aria-labelledby\"],yoe=le({name:\"ElFormItem\"}),woe=le({...yoe,props:moe,setup(e,{expose:t}){const n=e,o=To(),l=Xe(Fu,void 0),u=Xe(Sl,void 0),a=dn(void 0,{formItem:!1}),r=Ve(\"form-item\"),s=ol().value,i=L([]),p=L(\"\"),m=p9(p,100),v=L(\"\"),_=L();let g,y=!1;const w=U(()=>{if((l==null?void 0:l.labelPosition)===\"top\")return{};const he=Xn(n.labelWidth||(l==null?void 0:l.labelWidth)||\"\");return he?{width:he}:{}}),E=U(()=>{if((l==null?void 0:l.labelPosition)===\"top\"||(l==null?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&H)return{};const he=Xn(n.labelWidth||(l==null?void 0:l.labelWidth)||\"\");return!n.label&&!o.label?{marginLeft:he}:{}}),D=U(()=>[r.b(),r.m(a.value),r.is(\"error\",p.value===\"error\"),r.is(\"validating\",p.value===\"validating\"),r.is(\"success\",p.value===\"success\"),r.is(\"required\",J.value||n.required),r.is(\"no-asterisk\",l==null?void 0:l.hideRequiredAsterisk),(l==null?void 0:l.requireAsteriskPosition)===\"right\"?\"asterisk-right\":\"asterisk-left\",{[r.m(\"feedback\")]:l==null?void 0:l.statusIcon}]),C=U(()=>Ut(n.inlineMessage)?n.inlineMessage:(l==null?void 0:l.inlineMessage)||!1),B=U(()=>[r.e(\"error\"),{[r.em(\"error\",\"inline\")]:C.value}]),$=U(()=>n.prop?tt(n.prop)?n.prop:n.prop.join(\".\"):\"\"),k=U(()=>!!(n.label||o.label)),P=U(()=>n.for||i.value.length===1?i.value[0]:void 0),T=U(()=>!P.value&&k.value),H=!!u,j=U(()=>{const he=l==null?void 0:l.model;if(!(!he||!n.prop))return Za(he,n.prop).value}),X=U(()=>{const{required:he}=n,Te=[];n.rules&&Te.push(...oa(n.rules));const je=l==null?void 0:l.rules;if(je&&n.prop){const de=Za(je,n.prop).value;de&&Te.push(...oa(de))}if(he!==void 0){const de=Te.map((se,z)=>[se,z]).filter(([se])=>Object.keys(se).includes(\"required\"));if(de.length>0)for(const[se,z]of de)se.required!==he&&(Te[z]={...se,required:he});else Te.push({required:he})}return Te}),W=U(()=>X.value.length>0),N=he=>X.value.filter(je=>!je.trigger||!he?!0:Array.isArray(je.trigger)?je.trigger.includes(he):je.trigger===he).map(({trigger:je,...de})=>de),J=U(()=>X.value.some(he=>he.required)),be=U(()=>{var he;return m.value===\"error\"&&n.showMessage&&((he=l==null?void 0:l.showMessage)!=null?he:!0)}),ve=U(()=>`${n.label||\"\"}${(l==null?void 0:l.labelSuffix)||\"\"}`),Ee=he=>{p.value=he},te=he=>{var Te,je;const{errors:de,fields:se}=he;(!de||!se)&&console.error(he),Ee(\"error\"),v.value=de?(je=(Te=de==null?void 0:de[0])==null?void 0:Te.message)!=null?je:`${n.prop} is required`:\"\",l==null||l.emit(\"validate\",n.prop,!1,v.value)},Z=()=>{Ee(\"success\"),l==null||l.emit(\"validate\",n.prop,!0,\"\")},De=async he=>{const Te=$.value;return new wa({[Te]:he}).validate({[Te]:j.value},{firstFields:!0}).then(()=>(Z(),!0)).catch(de=>(te(de),Promise.reject(de)))},Be=async(he,Te)=>{if(y||!n.prop)return!1;const je=Ge(Te);if(!W.value)return Te==null||Te(!1),!1;const de=N(he);return de.length===0?(Te==null||Te(!0),!0):(Ee(\"validating\"),De(de).then(()=>(Te==null||Te(!0),!0)).catch(se=>{const{fields:z}=se;return Te==null||Te(!1,z),je?!1:Promise.reject(z)}))},x=()=>{Ee(\"\"),v.value=\"\",y=!1},O=async()=>{const he=l==null?void 0:l.model;if(!he||!n.prop)return;const Te=Za(he,n.prop);y=!0,Te.value=v0(g),await at(),x(),y=!1},ye=he=>{i.value.includes(he)||i.value.push(he)},xe=he=>{i.value=i.value.filter(Te=>Te!==he)};Me(()=>n.error,he=>{v.value=he||\"\",Ee(he?\"error\":\"\")},{immediate:!0}),Me(()=>n.validateStatus,he=>Ee(he||\"\"));const Pe=Rt({...ho(n),$el:_,size:a,validateState:p,labelId:s,inputIds:i,isGroup:T,hasLabel:k,addInputId:ye,removeInputId:xe,resetField:O,clearValidate:x,validate:Be});return Dt(Sl,Pe),ot(()=>{n.prop&&(l==null||l.addField(Pe),g=v0(j.value))}),Mt(()=>{l==null||l.removeField(Pe)}),t({size:a,validateMessage:v,validateState:p,validate:Be,clearValidate:x,resetField:O}),(he,Te)=>{var je;return b(),F(\"div\",{ref_key:\"formItemRef\",ref:_,class:K(h(D)),role:h(T)?\"group\":void 0,\"aria-labelledby\":h(T)?h(s):void 0},[c(h(goe),{\"is-auto-width\":h(w).width===\"auto\",\"update-all\":((je=h(l))==null?void 0:je.labelWidth)===\"auto\"},{default:d(()=>[h(k)?(b(),ae(Ct(h(P)?\"label\":\"div\"),{key:0,id:h(s),for:h(P),class:K(h(r).e(\"label\")),style:ut(h(w))},{default:d(()=>[ze(he.$slots,\"label\",{label:h(ve)},()=>[A(re(h(ve)),1)])]),_:3},8,[\"id\",\"for\",\"class\",\"style\"])):oe(\"v-if\",!0)]),_:3},8,[\"is-auto-width\",\"update-all\"]),f(\"div\",{class:K(h(r).e(\"content\")),style:ut(h(E))},[ze(he.$slots,\"default\"),c(tn,{name:`${h(r).namespace.value}-zoom-in-top`},{default:d(()=>[h(be)?ze(he.$slots,\"error\",{key:0,error:v.value},()=>[f(\"div\",{class:K(h(B))},re(v.value),3)]):oe(\"v-if\",!0)]),_:3},8,[\"name\"])],6)],10,boe)}}});var s6=We(woe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue\"]]);const Hn=Ft(Vne,{FormItem:s6}),Bn=Nt(s6),Coe=et({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:Io,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:\"\",values:[\"\",\"right\"]},valueOnClear:{type:[String,Number,null],validator:e=>e===null||gt(e)||[\"min\",\"max\"].includes(e),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===Number.parseInt(`${e}`,10)},validateEvent:{type:Boolean,default:!0}}),Eoe={[Jn]:(e,t)=>e!==t,blur:e=>e instanceof FocusEvent,focus:e=>e instanceof FocusEvent,[Dl]:e=>gt(e)||io(e),[bt]:e=>gt(e)||io(e)},Foe=[\"aria-label\",\"onKeydown\"],Aoe=[\"aria-label\",\"onKeydown\"],Doe=le({name:\"ElInputNumber\"}),Boe=le({...Doe,props:Coe,emits:Eoe,setup(e,{expose:t,emit:n}){const o=e,{t:l}=Dn(),u=Ve(\"input-number\"),a=L(),r=Rt({currentValue:o.modelValue,userInput:null}),{formItem:s}=Ho(),i=U(()=>gt(o.modelValue)&&D(o.modelValue,-1)<o.min),p=U(()=>gt(o.modelValue)&&D(o.modelValue)>o.max),m=U(()=>{const N=E(o.step);return jn(o.precision)?Math.max(E(o.modelValue),N):(N>o.precision,o.precision)}),v=U(()=>o.controls&&o.controlsPosition===\"right\"),_=dn(),g=ul(),y=U(()=>{if(r.userInput!==null)return r.userInput;let N=r.currentValue;if(io(N))return\"\";if(gt(N)){if(Number.isNaN(N))return\"\";jn(o.precision)||(N=N.toFixed(o.precision))}return N}),w=(N,J)=>{if(jn(J)&&(J=m.value),J===0)return Math.round(N);let be=String(N);const ve=be.indexOf(\".\");if(ve===-1||!be.replace(\".\",\"\").split(\"\")[ve+J])return N;const Z=be.length;return be.charAt(Z-1)===\"5\"&&(be=`${be.slice(0,Math.max(0,Z-1))}6`),Number.parseFloat(Number(be).toFixed(J))},E=N=>{if(io(N))return 0;const J=N.toString(),be=J.indexOf(\".\");let ve=0;return be!==-1&&(ve=J.length-be-1),ve},D=(N,J=1)=>gt(N)?w(N+o.step*J):r.currentValue,C=()=>{if(o.readonly||g.value||p.value)return;const N=o.modelValue||0,J=D(N);k(J),n(Dl,r.currentValue)},B=()=>{if(o.readonly||g.value||i.value)return;const N=o.modelValue||0,J=D(N,-1);k(J),n(Dl,r.currentValue)},$=(N,J)=>{const{max:be,min:ve,step:Ee,precision:te,stepStrictly:Z,valueOnClear:De}=o;let Be=Number(N);if(io(N)||Number.isNaN(Be))return null;if(N===\"\"){if(De===null)return null;Be=tt(De)?{min:ve,max:be}[De]:De}return Z&&(Be=w(Math.round(Be/Ee)*Ee,te)),jn(te)||(Be=w(Be,te)),(Be>be||Be<ve)&&(Be=Be>be?be:ve,J&&n(bt,Be)),Be},k=N=>{var J;const be=r.currentValue,ve=$(N);be!==ve&&(r.userInput=null,n(bt,ve),n(Jn,ve,be),o.validateEvent&&((J=s==null?void 0:s.validate)==null||J.call(s,\"change\").catch(Ee=>void 0)),r.currentValue=ve)},P=N=>{r.userInput=N,n(Dl,N===\"\"?null:Number(N))},T=N=>{const J=N!==\"\"?Number(N):\"\";(gt(J)&&!Number.isNaN(J)||N===\"\")&&k(J),r.userInput=null},H=()=>{var N,J;(J=(N=a.value)==null?void 0:N.focus)==null||J.call(N)},j=()=>{var N,J;(J=(N=a.value)==null?void 0:N.blur)==null||J.call(N)},X=N=>{n(\"focus\",N)},W=N=>{var J;n(\"blur\",N),o.validateEvent&&((J=s==null?void 0:s.validate)==null||J.call(s,\"blur\").catch(be=>void 0))};return Me(()=>o.modelValue,N=>{r.currentValue=$(N,!0),r.userInput=null},{immediate:!0}),ot(()=>{var N;const{min:J,max:be,modelValue:ve}=o,Ee=(N=a.value)==null?void 0:N.input;if(Ee.setAttribute(\"role\",\"spinbutton\"),Number.isFinite(be)?Ee.setAttribute(\"aria-valuemax\",String(be)):Ee.removeAttribute(\"aria-valuemax\"),Number.isFinite(J)?Ee.setAttribute(\"aria-valuemin\",String(J)):Ee.removeAttribute(\"aria-valuemin\"),Ee.setAttribute(\"aria-valuenow\",String(r.currentValue)),Ee.setAttribute(\"aria-disabled\",String(g.value)),!gt(ve)&&ve!=null){let te=Number(ve);Number.isNaN(te)&&(te=null),n(bt,te)}}),Ll(()=>{var N;const J=(N=a.value)==null?void 0:N.input;J==null||J.setAttribute(\"aria-valuenow\",`${r.currentValue}`)}),t({focus:H,blur:j}),(N,J)=>(b(),F(\"div\",{class:K([h(u).b(),h(u).m(h(_)),h(u).is(\"disabled\",h(g)),h(u).is(\"without-controls\",!N.controls),h(u).is(\"controls-right\",h(v))]),onDragstart:J[0]||(J[0]=mt(()=>{},[\"prevent\"]))},[N.controls?fe((b(),F(\"span\",{key:0,role:\"button\",\"aria-label\":h(l)(\"el.inputNumber.decrease\"),class:K([h(u).e(\"decrease\"),h(u).is(\"disabled\",h(i))]),onKeydown:Bt(B,[\"enter\"])},[c(h(rt),null,{default:d(()=>[h(v)?(b(),ae(h(pa),{key:0})):(b(),ae(h(Vf),{key:1}))]),_:1})],42,Foe)),[[h(od),B]]):oe(\"v-if\",!0),N.controls?fe((b(),F(\"span\",{key:1,role:\"button\",\"aria-label\":h(l)(\"el.inputNumber.increase\"),class:K([h(u).e(\"increase\"),h(u).is(\"disabled\",h(p))]),onKeydown:Bt(C,[\"enter\"])},[c(h(rt),null,{default:d(()=>[h(v)?(b(),ae(h(pc),{key:0})):(b(),ae(h(Hf),{key:1}))]),_:1})],42,Aoe)),[[h(od),C]]):oe(\"v-if\",!0),c(h(nn),{id:N.id,ref_key:\"input\",ref:a,type:\"number\",step:N.step,\"model-value\":h(y),placeholder:N.placeholder,readonly:N.readonly,disabled:h(g),size:h(_),max:N.max,min:N.min,name:N.name,label:N.label,\"validate-event\":!1,onKeydown:[Bt(mt(C,[\"prevent\"]),[\"up\"]),Bt(mt(B,[\"prevent\"]),[\"down\"])],onBlur:W,onFocus:X,onInput:P,onChange:T},null,8,[\"id\",\"step\",\"model-value\",\"placeholder\",\"readonly\",\"disabled\",\"size\",\"max\",\"min\",\"name\",\"label\",\"onKeydown\"])],34))}});var xoe=We(Boe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue\"]]);const eo=Ft(xoe),$oe=et({type:{type:String,values:[\"primary\",\"success\",\"warning\",\"info\",\"danger\",\"default\"],default:\"default\"},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:\"\"},icon:{type:Tt}}),Soe={click:e=>e instanceof MouseEvent},koe=[\"href\"],Poe=le({name:\"ElLink\"}),Loe=le({...Poe,props:$oe,emits:Soe,setup(e,{emit:t}){const n=e,o=Ve(\"link\");function l(u){n.disabled||t(\"click\",u)}return(u,a)=>(b(),F(\"a\",{class:K([h(o).b(),h(o).m(u.type),h(o).is(\"disabled\",u.disabled),h(o).is(\"underline\",u.underline&&!u.disabled)]),href:u.disabled||!u.href?void 0:u.href,onClick:l},[u.icon?(b(),ae(h(rt),{key:0},{default:d(()=>[(b(),ae(Ct(u.icon)))]),_:1})):oe(\"v-if\",!0),u.$slots.default?(b(),F(\"span\",{key:1,class:K(h(o).e(\"inner\"))},[ze(u.$slots,\"default\")],2)):oe(\"v-if\",!0),u.$slots.icon?ze(u.$slots,\"icon\",{key:2}):oe(\"v-if\",!0)],10,koe))}});var Toe=We(Loe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/link/src/link.vue\"]]);const i6=Ft(Toe);class zoe{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll(\"li\"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener(\"keydown\",o=>{let l=!1;switch(o.code){case Lt.down:{this.gotoSubIndex(this.subIndex+1),l=!0;break}case Lt.up:{this.gotoSubIndex(this.subIndex-1),l=!0;break}case Lt.tab:{Qa(t,\"mouseleave\");break}case Lt.enter:case Lt.space:{l=!0,o.currentTarget.click();break}}return l&&(o.preventDefault(),o.stopPropagation()),!1})})}}class Moe{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute(\"tabindex\",\"0\");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new zoe(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener(\"keydown\",t=>{let n=!1;switch(t.code){case Lt.down:{Qa(t.currentTarget,\"mouseenter\"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case Lt.up:{Qa(t.currentTarget,\"mouseenter\"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case Lt.tab:{Qa(t.currentTarget,\"mouseleave\");break}case Lt.enter:case Lt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}}class Voe{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(o=>{o.nodeType===1&&new Moe(o,t)})}}const Ioe=le({name:\"ElMenuCollapseTransition\",setup(){const e=Ve(\"menu\");return{listeners:{onBeforeEnter:n=>n.style.opacity=\"0.2\",onEnter(n,o){Fo(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=\"1\",o()},onAfterEnter(n){Gn(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=\"\"},onBeforeLeave(n){n.dataset||(n.dataset={}),Al(n,e.m(\"collapse\"))?(Gn(n,e.m(\"collapse\")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),Fo(n,e.m(\"collapse\"))):(Fo(n,e.m(\"collapse\")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),Gn(n,e.m(\"collapse\"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow=\"hidden\"},onLeave(n){Fo(n,\"horizontal-collapse-transition\"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function Hoe(e,t,n,o,l,u){return b(),ae(tn,kn({mode:\"out-in\"},e.listeners),{default:d(()=>[ze(e.$slots,\"default\")]),_:3},16)}var Roe=We(Ioe,[[\"render\",Hoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue\"]]);function c6(e,t){const n=U(()=>{let l=e.parent;const u=[t.value];for(;l.type.name!==\"ElMenu\";)l.props.index&&u.unshift(l.props.index),l=l.parent;return u});return{parentMenu:U(()=>{let l=e.parent;for(;l&&![\"ElMenu\",\"ElSubMenu\"].includes(l.type.name);)l=l.parent;return l}),indexPath:n}}function Noe(e){return U(()=>{const n=e.backgroundColor;return n?new S4(n).shade(20).toString():\"\"})}const d6=(e,t)=>{const n=Ve(\"menu\");return U(()=>n.cssVarBlock({\"text-color\":e.textColor||\"\",\"hover-text-color\":e.textColor||\"\",\"bg-color\":e.backgroundColor||\"\",\"hover-bg-color\":Noe(e).value||\"\",\"active-color\":e.activeTextColor||\"\",level:`${t}`}))},Ooe=et({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Tt},expandOpenIcon:{type:Tt},collapseCloseIcon:{type:Tt},collapseOpenIcon:{type:Tt}}),As=\"ElSubMenu\";var Hc=le({name:As,props:Ooe,setup(e,{slots:t,expose:n}){const o=pt(),{indexPath:l,parentMenu:u}=c6(o,U(()=>e.index)),a=Ve(\"menu\"),r=Ve(\"sub-menu\"),s=Xe(\"rootMenu\");s||An(As,\"can not inject root menu\");const i=Xe(`subMenu:${u.value.uid}`);i||An(As,\"can not inject sub menu\");const p=L({}),m=L({});let v;const _=L(!1),g=L(),y=L(null),w=U(()=>X.value===\"horizontal\"&&D.value?\"bottom-start\":\"right-start\"),E=U(()=>X.value===\"horizontal\"&&D.value||X.value===\"vertical\"&&!s.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?k.value?e.expandOpenIcon:e.expandCloseIcon:pa:e.collapseCloseIcon&&e.collapseOpenIcon?k.value?e.collapseOpenIcon:e.collapseCloseIcon:wu),D=U(()=>i.level===0),C=U(()=>e.popperAppendToBody===void 0?D.value:Boolean(e.popperAppendToBody)),B=U(()=>s.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),$=U(()=>X.value===\"horizontal\"&&D.value?[\"bottom-start\",\"bottom-end\",\"top-start\",\"top-end\",\"right-start\",\"left-start\"]:[\"right-start\",\"left-start\",\"bottom-start\",\"bottom-end\",\"top-start\",\"top-end\"]),k=U(()=>s.openedMenus.includes(e.index)),P=U(()=>{let Z=!1;return Object.values(p.value).forEach(De=>{De.active&&(Z=!0)}),Object.values(m.value).forEach(De=>{De.active&&(Z=!0)}),Z}),T=U(()=>s.props.backgroundColor||\"\"),H=U(()=>s.props.activeTextColor||\"\"),j=U(()=>s.props.textColor||\"\"),X=U(()=>s.props.mode),W=Rt({index:e.index,indexPath:l,active:P}),N=U(()=>X.value!==\"horizontal\"?{color:j.value}:{borderBottomColor:P.value?s.props.activeTextColor?H.value:\"\":\"transparent\",color:P.value?H.value:j.value}),J=()=>{var Z,De,Be;return(Be=(De=(Z=y.value)==null?void 0:Z.popperRef)==null?void 0:De.popperInstanceRef)==null?void 0:Be.destroy()},be=Z=>{Z||J()},ve=()=>{s.props.menuTrigger===\"hover\"&&s.props.mode===\"horizontal\"||s.props.collapse&&s.props.mode===\"vertical\"||e.disabled||s.handleSubMenuClick({index:e.index,indexPath:l.value,active:P.value})},Ee=(Z,De=e.showTimeout)=>{var Be;Z.type!==\"focus\"&&(s.props.menuTrigger===\"click\"&&s.props.mode===\"horizontal\"||!s.props.collapse&&s.props.mode===\"vertical\"||e.disabled||(i.mouseInChild.value=!0,v==null||v(),{stop:v}=uu(()=>{s.openMenu(e.index,l.value)},De),C.value&&((Be=u.value.vnode.el)==null||Be.dispatchEvent(new MouseEvent(\"mouseenter\")))))},te=(Z=!1)=>{var De,Be;s.props.menuTrigger===\"click\"&&s.props.mode===\"horizontal\"||!s.props.collapse&&s.props.mode===\"vertical\"||(v==null||v(),i.mouseInChild.value=!1,{stop:v}=uu(()=>!_.value&&s.closeMenu(e.index,l.value),e.hideTimeout),C.value&&Z&&((De=o.parent)==null?void 0:De.type.name)===\"ElSubMenu\"&&((Be=i.handleMouseleave)==null||Be.call(i,!0)))};Me(()=>s.props.collapse,Z=>be(Boolean(Z)));{const Z=Be=>{m.value[Be.index]=Be},De=Be=>{delete m.value[Be.index]};Dt(`subMenu:${o.uid}`,{addSubMenu:Z,removeSubMenu:De,handleMouseleave:te,mouseInChild:_,level:i.level+1})}return n({opened:k}),ot(()=>{s.addSubMenu(W),i.addSubMenu(W)}),Mt(()=>{i.removeSubMenu(W),s.removeSubMenu(W)}),()=>{var Z;const De=[(Z=t.title)==null?void 0:Z.call(t),Re(rt,{class:r.e(\"icon-arrow\"),style:{transform:k.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&s.props.collapse?\"none\":\"rotateZ(180deg)\":\"none\"}},{default:()=>tt(E.value)?Re(o.appContext.components[E.value]):Re(E.value)})],Be=d6(s.props,i.level+1),x=s.isMenuPopup?Re(pn,{ref:y,visible:k.value,effect:\"light\",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:w.value,teleported:C.value,fallbackPlacements:$.value,transition:B.value,gpuAcceleration:!1},{content:()=>{var O;return Re(\"div\",{class:[a.m(X.value),a.m(\"popup-container\"),e.popperClass],onMouseenter:ye=>Ee(ye,100),onMouseleave:()=>te(!0),onFocus:ye=>Ee(ye,100)},[Re(\"ul\",{class:[a.b(),a.m(\"popup\"),a.m(`popup-${w.value}`)],style:Be.value},[(O=t.default)==null?void 0:O.call(t)])])},default:()=>Re(\"div\",{class:r.e(\"title\"),style:[N.value,{backgroundColor:T.value}],onClick:ve},De)}):Re(Oe,{},[Re(\"div\",{class:r.e(\"title\"),style:[N.value,{backgroundColor:T.value}],ref:g,onClick:ve},De),Re(Q4,{},{default:()=>{var O;return fe(Re(\"ul\",{role:\"menu\",class:[a.b(),a.m(\"inline\")],style:Be.value},[(O=t.default)==null?void 0:O.call(t)]),[[ge,k.value]])}})]);return Re(\"li\",{class:[r.b(),r.is(\"active\",P.value),r.is(\"opened\",k.value),r.is(\"disabled\",e.disabled)],role:\"menuitem\",ariaHaspopup:!0,ariaExpanded:k.value,onMouseenter:Ee,onMouseleave:()=>te(!0),onFocus:Ee},[x])}}});const Uoe=et({mode:{type:String,values:[\"horizontal\",\"vertical\"],default:\"vertical\"},defaultActive:{type:String,default:\"\"},defaultOpeneds:{type:He(Array),default:()=>So([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:[\"hover\",\"click\"],default:\"hover\"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0}}),Ds=e=>Array.isArray(e)&&e.every(t=>tt(t)),Woe={close:(e,t)=>tt(e)&&Ds(t),open:(e,t)=>tt(e)&&Ds(t),select:(e,t,n,o)=>tt(e)&&Ds(t)&&dt(n)&&(o===void 0||o instanceof Promise)};var qoe=le({name:\"ElMenu\",props:Uoe,emits:Woe,setup(e,{emit:t,slots:n,expose:o}){const l=pt(),u=l.appContext.config.globalProperties.$router,a=L(),r=Ve(\"menu\"),s=Ve(\"sub-menu\"),i=L(-1),p=L(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),m=L(e.defaultActive),v=L({}),_=L({}),g=U(()=>e.mode===\"horizontal\"||e.mode===\"vertical\"&&e.collapse),y=()=>{const j=m.value&&v.value[m.value];if(!j||e.mode===\"horizontal\"||e.collapse)return;j.indexPath.forEach(W=>{const N=_.value[W];N&&w(W,N.indexPath)})},w=(j,X)=>{p.value.includes(j)||(e.uniqueOpened&&(p.value=p.value.filter(W=>X.includes(W))),p.value.push(j),t(\"open\",j,X))},E=(j,X)=>{const W=p.value.indexOf(j);W!==-1&&p.value.splice(W,1),t(\"close\",j,X)},D=({index:j,indexPath:X})=>{p.value.includes(j)?E(j,X):w(j,X)},C=j=>{(e.mode===\"horizontal\"||e.collapse)&&(p.value=[]);const{index:X,indexPath:W}=j;if(!(X===void 0||W===void 0))if(e.router&&u){const N=j.route||X,J=u.push(N).then(be=>(be||(m.value=X),be));t(\"select\",X,W,{index:X,indexPath:W,route:N},J)}else m.value=X,t(\"select\",X,W,{index:X,indexPath:W})},B=j=>{const X=v.value,W=X[j]||m.value&&X[m.value]||X[e.defaultActive];W?m.value=W.index:m.value=j},$=()=>{var j,X;if(!a.value)return-1;const W=Array.from((X=(j=a.value)==null?void 0:j.childNodes)!=null?X:[]).filter(Z=>Z.nodeName!==\"#text\"||Z.nodeValue),N=64,J=Number.parseInt(getComputedStyle(a.value).paddingLeft,10),be=Number.parseInt(getComputedStyle(a.value).paddingRight,10),ve=a.value.clientWidth-J-be;let Ee=0,te=0;return W.forEach((Z,De)=>{Ee+=Z.offsetWidth||0,Ee<=ve-N&&(te=De+1)}),te===W.length?-1:te},k=(j,X=33.34)=>{let W;return()=>{W&&clearTimeout(W),W=setTimeout(()=>{j()},X)}};let P=!0;const T=()=>{const j=()=>{i.value=-1,at(()=>{i.value=$()})};P?j():k(j)(),P=!1};Me(()=>e.defaultActive,j=>{v.value[j]||(m.value=\"\"),B(j)}),Me(()=>e.collapse,j=>{j&&(p.value=[])}),Me(v.value,y);let H;Do(()=>{e.mode===\"horizontal\"&&e.ellipsis?H=po(a,T).stop:H==null||H()});{const j=J=>{_.value[J.index]=J},X=J=>{delete _.value[J.index]};Dt(\"rootMenu\",Rt({props:e,openedMenus:p,items:v,subMenus:_,activeIndex:m,isMenuPopup:g,addMenuItem:J=>{v.value[J.index]=J},removeMenuItem:J=>{delete v.value[J.index]},addSubMenu:j,removeSubMenu:X,openMenu:w,closeMenu:E,handleMenuItemClick:C,handleSubMenuClick:D})),Dt(`subMenu:${l.uid}`,{addSubMenu:j,removeSubMenu:X,mouseInChild:L(!1),level:0})}return ot(()=>{e.mode===\"horizontal\"&&new Voe(l.vnode.el,r.namespace.value)}),o({open:X=>{const{indexPath:W}=_.value[X];W.forEach(N=>w(N,W))},close:E,handleResize:T}),()=>{var j,X;let W=(X=(j=n.default)==null?void 0:j.call(n))!=null?X:[];const N=[];if(e.mode===\"horizontal\"&&a.value){const ve=Fr(W),Ee=i.value===-1?ve:ve.slice(0,i.value),te=i.value===-1?[]:ve.slice(i.value);(te==null?void 0:te.length)&&e.ellipsis&&(W=Ee,N.push(Re(Hc,{index:\"sub-menu-more\",class:s.e(\"hide-arrow\")},{title:()=>Re(rt,{class:s.e(\"icon-more\")},{default:()=>Re(If)}),default:()=>te})))}const J=d6(e,0),be=Re(\"ul\",{key:String(e.collapse),role:\"menubar\",ref:a,style:J.value,class:{[r.b()]:!0,[r.m(e.mode)]:!0,[r.m(\"collapse\")]:e.collapse}},[...W,...N]);return e.collapseTransition&&e.mode===\"vertical\"?Re(Roe,()=>be):be}}});const joe=et({index:{type:He([String,null]),default:null},route:{type:He([String,Object])},disabled:Boolean}),Koe={click:e=>tt(e.index)&&Array.isArray(e.indexPath)},Bs=\"ElMenuItem\",Goe=le({name:Bs,components:{ElTooltip:pn},props:joe,emits:Koe,setup(e,{emit:t}){const n=pt(),o=Xe(\"rootMenu\"),l=Ve(\"menu\"),u=Ve(\"menu-item\");o||An(Bs,\"can not inject root menu\");const{parentMenu:a,indexPath:r}=c6(n,Tn(e,\"index\")),s=Xe(`subMenu:${a.value.uid}`);s||An(Bs,\"can not inject sub menu\");const i=U(()=>e.index===o.activeIndex),p=Rt({index:e.index,indexPath:r,active:i}),m=()=>{e.disabled||(o.handleMenuItemClick({index:e.index,indexPath:r.value,route:e.route}),t(\"click\",p))};return ot(()=>{s.addSubMenu(p),o.addMenuItem(p)}),Mt(()=>{s.removeSubMenu(p),o.removeMenuItem(p)}),{Effect:nQ,parentMenu:a,rootMenu:o,active:i,nsMenu:l,nsMenuItem:u,handleClick:m}}});function Yoe(e,t,n,o,l,u){const a=lt(\"el-tooltip\");return b(),F(\"li\",{class:K([e.nsMenuItem.b(),e.nsMenuItem.is(\"active\",e.active),e.nsMenuItem.is(\"disabled\",e.disabled)]),role:\"menuitem\",tabindex:\"-1\",onClick:t[0]||(t[0]=(...r)=>e.handleClick&&e.handleClick(...r))},[e.parentMenu.type.name===\"ElMenu\"&&e.rootMenu.props.collapse&&e.$slots.title?(b(),ae(a,{key:0,effect:e.Effect.DARK,placement:\"right\",\"fallback-placements\":[\"left\"],persistent:\"\"},{content:d(()=>[ze(e.$slots,\"title\")]),default:d(()=>[f(\"div\",{class:K(e.nsMenu.be(\"tooltip\",\"trigger\"))},[ze(e.$slots,\"default\")],2)]),_:3},8,[\"effect\"])):(b(),F(Oe,{key:1},[ze(e.$slots,\"default\"),ze(e.$slots,\"title\")],64))],2)}var f6=We(Goe,[[\"render\",Yoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue\"]]);const Xoe={title:String},Joe=\"ElMenuItemGroup\",Qoe=le({name:Joe,props:Xoe,setup(){return{ns:Ve(\"menu-item-group\")}}});function Zoe(e,t,n,o,l,u){return b(),F(\"li\",{class:K(e.ns.b())},[f(\"div\",{class:K(e.ns.e(\"title\"))},[e.$slots.title?ze(e.$slots,\"title\",{key:1}):(b(),F(Oe,{key:0},[A(re(e.title),1)],64))],2),f(\"ul\",null,[ze(e.$slots,\"default\")])],2)}var p6=We(Qoe,[[\"render\",Zoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue\"]]);const ele=Ft(qoe,{MenuItem:f6,MenuItemGroup:p6,SubMenu:Hc}),tle=Nt(f6);Nt(p6);const nle=Nt(Hc),ole=et({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:Tt}}),lle={click:e=>e instanceof MouseEvent},ule=[\"disabled\",\"aria-disabled\"],ale={key:0},rle=le({name:\"ElPaginationPrev\"}),sle=le({...rle,props:ole,emits:lle,setup(e){const t=e,n=U(()=>t.disabled||t.currentPage<=1);return(o,l)=>(b(),F(\"button\",{type:\"button\",class:\"btn-prev\",disabled:h(n),\"aria-disabled\":h(n),onClick:l[0]||(l[0]=u=>o.$emit(\"click\",u))},[o.prevText?(b(),F(\"span\",ale,re(o.prevText),1)):(b(),ae(h(rt),{key:1},{default:d(()=>[(b(),ae(Ct(o.prevIcon)))]),_:1}))],8,ule))}});var ile=We(sle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/prev.vue\"]]);const cle=et({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:Tt}}),dle=[\"disabled\",\"aria-disabled\"],fle={key:0},ple=le({name:\"ElPaginationNext\"}),vle=le({...ple,props:cle,emits:[\"click\"],setup(e){const t=e,n=U(()=>t.disabled||t.currentPage===t.pageCount||t.pageCount===0);return(o,l)=>(b(),F(\"button\",{type:\"button\",class:\"btn-next\",disabled:h(n),\"aria-disabled\":h(n),onClick:l[0]||(l[0]=u=>o.$emit(\"click\",u))},[o.nextText?(b(),F(\"span\",fle,re(o.nextText),1)):(b(),ae(h(rt),{key:1},{default:d(()=>[(b(),ae(Ct(o.nextIcon)))]),_:1}))],8,dle))}});var hle=We(vle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/next.vue\"]]);const v6=\"ElSelectGroup\",ns=\"ElSelect\";function _le(e,t){const n=Xe(ns),o=Xe(v6,{disabled:!1}),l=U(()=>Object.prototype.toString.call(e.value).toLowerCase()===\"[object object]\"),u=U(()=>n.props.multiple?m(n.props.modelValue,e.value):v(e.value,n.props.modelValue)),a=U(()=>{if(n.props.multiple){const y=n.props.modelValue||[];return!u.value&&y.length>=n.props.multipleLimit&&n.props.multipleLimit>0}else return!1}),r=U(()=>e.label||(l.value?\"\":e.value)),s=U(()=>e.value||e.label||\"\"),i=U(()=>e.disabled||t.groupDisabled||a.value),p=pt(),m=(y=[],w)=>{if(l.value){const E=n.props.valueKey;return y&&y.some(D=>ct(en(D,E))===en(w,E))}else return y&&y.includes(w)},v=(y,w)=>{if(l.value){const{valueKey:E}=n.props;return en(y,E)===en(w,E)}else return y===w},_=()=>{!e.disabled&&!o.disabled&&(n.hoverIndex=n.optionsArray.indexOf(p.proxy))};Me(()=>r.value,()=>{!e.created&&!n.props.remote&&n.setSelected()}),Me(()=>e.value,(y,w)=>{const{remote:E,valueKey:D}=n.props;if(Object.is(y,w)||(n.onOptionDestroy(w,p.proxy),n.onOptionCreate(p.proxy)),!e.created&&!E){if(D&&typeof y==\"object\"&&typeof w==\"object\"&&y[D]===w[D])return;n.setSelected()}}),Me(()=>o.disabled,()=>{t.groupDisabled=o.disabled},{immediate:!0});const{queryChange:g}=ct(n);return Me(g,y=>{const{query:w}=h(y),E=new RegExp(B9(w),\"i\");t.visible=E.test(r.value)||e.created,t.visible||n.filteredOptionsCount--}),{select:n,currentLabel:r,currentValue:s,itemSelected:u,isDisabled:i,hoverItem:_}}const mle=le({name:\"ElOption\",componentName:\"ElOption\",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=Ve(\"select\"),n=Rt({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:o,itemSelected:l,isDisabled:u,select:a,hoverItem:r}=_le(e,n),{visible:s,hover:i}=ho(n),p=pt().proxy;a.onOptionCreate(p),Mt(()=>{const v=p.value,{selected:_}=a,y=(a.props.multiple?_:[_]).some(w=>w.value===p.value);at(()=>{a.cachedOptions.get(v)===p&&!y&&a.cachedOptions.delete(v)}),a.onOptionDestroy(v,p)});function m(){e.disabled!==!0&&n.groupDisabled!==!0&&a.handleOptionSelect(p,!0)}return{ns:t,currentLabel:o,itemSelected:l,isDisabled:u,select:a,hoverItem:r,visible:s,hover:i,selectOptionClick:m,states:n}}});function gle(e,t,n,o,l,u){return fe((b(),F(\"li\",{class:K([e.ns.be(\"dropdown\",\"item\"),e.ns.is(\"disabled\",e.isDisabled),{selected:e.itemSelected,hover:e.hover}]),onMouseenter:t[0]||(t[0]=(...a)=>e.hoverItem&&e.hoverItem(...a)),onClick:t[1]||(t[1]=mt((...a)=>e.selectOptionClick&&e.selectOptionClick(...a),[\"stop\"]))},[ze(e.$slots,\"default\",{},()=>[f(\"span\",null,re(e.currentLabel),1)])],34)),[[ge,e.visible]])}var Rc=We(mle,[[\"render\",gle],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/option.vue\"]]);const ble=le({name:\"ElSelectDropdown\",componentName:\"ElSelectDropdown\",setup(){const e=Xe(ns),t=Ve(\"select\"),n=U(()=>e.props.popperClass),o=U(()=>e.props.multiple),l=U(()=>e.props.fitInputWidth),u=L(\"\");function a(){var r;u.value=`${(r=e.selectWrapper)==null?void 0:r.offsetWidth}px`}return ot(()=>{a(),po(e.selectWrapper,a)}),{ns:t,minWidth:u,popperClass:n,isMultiple:o,isFitInputWidth:l}}});function yle(e,t,n,o,l,u){return b(),F(\"div\",{class:K([e.ns.b(\"dropdown\"),e.ns.is(\"multiple\",e.isMultiple),e.popperClass]),style:ut({[e.isFitInputWidth?\"width\":\"minWidth\"]:e.minWidth})},[ze(e.$slots,\"default\")],6)}var wle=We(ble,[[\"render\",yle],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/select-dropdown.vue\"]]);function Cle(e){const{t}=Dn();return Rt({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:\"\",hoverIndex:-1,query:\"\",previousQuery:null,inputHovering:!1,cachedPlaceHolder:\"\",currentPlaceholder:t(\"el.select.placeholder\"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,prefixWidth:11,tagInMultiLine:!1,mouseEnter:!1})}const Ele=(e,t,n)=>{const{t:o}=Dn(),l=Ve(\"select\");ua({from:\"suffixTransition\",replacement:\"override style scheme\",version:\"2.3.0\",scope:\"props\",ref:\"https://element-plus.org/en-US/component/select.html#select-attributes\"},U(()=>e.suffixTransition===!1));const u=L(null),a=L(null),r=L(null),s=L(null),i=L(null),p=L(null),m=L(-1),v=Kn({query:\"\"}),_=Kn(\"\"),{form:g,formItem:y}=Ho(),w=U(()=>!e.filterable||e.multiple||!t.visible),E=U(()=>e.disabled||(g==null?void 0:g.disabled)),D=U(()=>{const M=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:e.modelValue!==void 0&&e.modelValue!==null&&e.modelValue!==\"\";return e.clearable&&!E.value&&t.inputHovering&&M}),C=U(()=>e.remote&&e.filterable&&!e.remoteShowSuffix?\"\":e.suffixIcon),B=U(()=>l.is(\"reverse\",C.value&&t.visible&&e.suffixTransition)),$=U(()=>e.remote?300:0),k=U(()=>e.loading?e.loadingText||o(\"el.select.loading\"):e.remote&&t.query===\"\"&&t.options.size===0?!1:e.filterable&&t.query&&t.options.size>0&&t.filteredOptionsCount===0?e.noMatchText||o(\"el.select.noMatch\"):t.options.size===0?e.noDataText||o(\"el.select.noData\"):null),P=U(()=>Array.from(t.options.values())),T=U(()=>Array.from(t.cachedOptions.values())),H=U(()=>{const M=P.value.filter(S=>!S.created).some(S=>S.currentLabel===t.query);return e.filterable&&e.allowCreate&&t.query!==\"\"&&!M}),j=dn(),X=U(()=>[\"small\"].includes(j.value)?\"small\":\"default\"),W=U({get(){return t.visible&&k.value!==!1},set(M){t.visible=M}});Me([()=>E.value,()=>j.value,()=>g==null?void 0:g.size],()=>{at(()=>{N()})}),Me(()=>e.placeholder,M=>{t.cachedPlaceHolder=t.currentPlaceholder=M}),Me(()=>e.modelValue,(M,S)=>{e.multiple&&(N(),M&&M.length>0||a.value&&t.query!==\"\"?t.currentPlaceholder=\"\":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query=\"\",J(t.query))),Ee(),e.filterable&&!e.multiple&&(t.inputLength=20),!Qs(M,S)&&e.validateEvent&&(y==null||y.validate(\"change\").catch(_e=>void 0))},{flush:\"post\",deep:!0}),Me(()=>t.visible,M=>{var S,_e,G;M?((_e=(S=r.value)==null?void 0:S.updatePopper)==null||_e.call(S),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?\"\":t.selectedLabel,e.multiple?(G=a.value)==null||G.focus():t.selectedLabel&&(t.currentPlaceholder=`${t.selectedLabel}`,t.selectedLabel=\"\"),J(t.query),!e.multiple&&!e.remote&&(v.value.query=\"\",xu(v),xu(_)))):(e.filterable&&(Ge(e.filterMethod)&&e.filterMethod(),Ge(e.remoteMethod)&&e.remoteMethod()),a.value&&a.value.blur(),t.query=\"\",t.previousQuery=null,t.selectedLabel=\"\",t.inputLength=20,t.menuVisibleOnFocus=!1,Z(),at(()=>{a.value&&a.value.value===\"\"&&t.selected.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)}),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit(\"visible-change\",M)}),Me(()=>t.options.entries(),()=>{var M,S,_e;if(!_t)return;(S=(M=r.value)==null?void 0:M.updatePopper)==null||S.call(M),e.multiple&&N();const G=((_e=i.value)==null?void 0:_e.querySelectorAll(\"input\"))||[];Array.from(G).includes(document.activeElement)||Ee(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&ve()},{flush:\"post\"}),Me(()=>t.hoverIndex,M=>{typeof M==\"number\"&&M>-1?m.value=P.value[M]||{}:m.value={},P.value.forEach(S=>{S.hover=m.value===S})});const N=()=>{e.collapseTags&&!e.filterable||at(()=>{var M,S;if(!u.value)return;const _e=u.value.$el.querySelector(\"input\"),G=s.value,ie=GX(j.value||(g==null?void 0:g.size));_e.style.height=`${(t.selected.length===0?ie:Math.max(G?G.clientHeight+(G.clientHeight>ie?6:0):0,ie))-2}px`,t.tagInMultiLine=Number.parseFloat(_e.style.height)>=ie,t.visible&&k.value!==!1&&((S=(M=r.value)==null?void 0:M.updatePopper)==null||S.call(M))})},J=async M=>{if(!(t.previousQuery===M||t.isOnComposition)){if(t.previousQuery===null&&(typeof e.filterMethod==\"function\"||typeof e.remoteMethod==\"function\")){t.previousQuery=M;return}t.previousQuery=M,at(()=>{var S,_e;t.visible&&((_e=(S=r.value)==null?void 0:S.updatePopper)==null||_e.call(S))}),t.hoverIndex=-1,e.multiple&&e.filterable&&at(()=>{const S=a.value.value.length*15+20;t.inputLength=e.collapseTags?Math.min(50,S):S,be(),N()}),e.remote&&typeof e.remoteMethod==\"function\"?(t.hoverIndex=-1,e.remoteMethod(M)):typeof e.filterMethod==\"function\"?(e.filterMethod(M),xu(_)):(t.filteredOptionsCount=t.optionsCount,v.value.query=M,xu(v),xu(_)),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&(await at(),ve())}},be=()=>{t.currentPlaceholder!==\"\"&&(t.currentPlaceholder=a.value.value?\"\":t.cachedPlaceHolder)},ve=()=>{const M=P.value.filter(G=>G.visible&&!G.disabled&&!G.states.groupDisabled),S=M.find(G=>G.created),_e=M[0];t.hoverIndex=de(P.value,S||_e)},Ee=()=>{var M;if(e.multiple)t.selectedLabel=\"\";else{const _e=te(e.modelValue);(M=_e.props)!=null&&M.created?(t.createdLabel=_e.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=_e.currentLabel,t.selected=_e,e.filterable&&(t.query=t.selectedLabel);return}const S=[];Array.isArray(e.modelValue)&&e.modelValue.forEach(_e=>{S.push(te(_e))}),t.selected=S,at(()=>{N()})},te=M=>{let S;const _e=qa(M).toLowerCase()===\"object\",G=qa(M).toLowerCase()===\"null\",ie=qa(M).toLowerCase()===\"undefined\";for(let Xt=t.cachedOptions.size-1;Xt>=0;Xt--){const Ce=T.value[Xt];if(_e?en(Ce.value,e.valueKey)===en(M,e.valueKey):Ce.value===M){S={value:M,currentLabel:Ce.currentLabel,isDisabled:Ce.isDisabled};break}}if(S)return S;const $e=_e?M.label:!G&&!ie?M:\"\",St={value:M,currentLabel:$e};return e.multiple&&(St.hitState=!1),St},Z=()=>{setTimeout(()=>{const M=e.valueKey;e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map(S=>P.value.findIndex(_e=>en(_e,M)===en(S,M)))):t.hoverIndex=-1:t.hoverIndex=P.value.findIndex(S=>nt(S)===nt(t.selected))},300)},De=()=>{var M,S;Be(),(S=(M=r.value)==null?void 0:M.updatePopper)==null||S.call(M),e.multiple&&!e.filterable&&N()},Be=()=>{var M;t.inputWidth=(M=u.value)==null?void 0:M.$el.getBoundingClientRect().width},x=()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,J(t.query))},O=lu(()=>{x()},$.value),ye=lu(M=>{J(M.target.value)},$.value),xe=M=>{Qs(e.modelValue,M)||n.emit(Jn,M)},Pe=M=>{if(M.target.value.length<=0&&!Y()){const S=e.modelValue.slice();S.pop(),n.emit(bt,S),xe(S)}M.target.value.length===1&&e.modelValue.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)},he=(M,S)=>{const _e=t.selected.indexOf(S);if(_e>-1&&!E.value){const G=e.modelValue.slice();G.splice(_e,1),n.emit(bt,G),xe(G),n.emit(\"remove-tag\",S.value)}M.stopPropagation()},Te=M=>{M.stopPropagation();const S=e.multiple?[]:\"\";if(typeof S!=\"string\")for(const _e of t.selected)_e.isDisabled&&S.push(_e.value);n.emit(bt,S),xe(S),t.hoverIndex=-1,t.visible=!1,n.emit(\"clear\")},je=(M,S)=>{var _e;if(e.multiple){const G=(e.modelValue||[]).slice(),ie=de(G,M.value);ie>-1?G.splice(ie,1):(e.multipleLimit<=0||G.length<e.multipleLimit)&&G.push(M.value),n.emit(bt,G),xe(G),M.created&&(t.query=\"\",J(\"\"),t.inputLength=20),e.filterable&&((_e=a.value)==null||_e.focus())}else n.emit(bt,M.value),xe(M.value),t.visible=!1;t.isSilentBlur=S,se(),!t.visible&&at(()=>{z(M)})},de=(M=[],S)=>{if(!dt(S))return M.indexOf(S);const _e=e.valueKey;let G=-1;return M.some((ie,$e)=>ct(en(ie,_e))===en(S,_e)?(G=$e,!0):!1),G},se=()=>{t.softFocus=!0;const M=a.value||u.value;M&&(M==null||M.focus())},z=M=>{var S,_e,G,ie,$e;const St=Array.isArray(M)?M[0]:M;let Xt=null;if(St!=null&&St.value){const Ce=P.value.filter(Jt=>Jt.value===St.value);Ce.length>0&&(Xt=Ce[0].$el)}if(r.value&&Xt){const Ce=(ie=(G=(_e=(S=r.value)==null?void 0:S.popperRef)==null?void 0:_e.contentRef)==null?void 0:G.querySelector)==null?void 0:ie.call(G,`.${l.be(\"dropdown\",\"wrap\")}`);Ce&&L9(Ce,Xt)}($e=p.value)==null||$e.handleScroll()},q=M=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(M.value,M),t.cachedOptions.set(M.value,M)},R=(M,S)=>{t.options.get(M)===S&&(t.optionsCount--,t.filteredOptionsCount--,t.options.delete(M))},I=M=>{M.code!==Lt.backspace&&Y(!1),t.inputLength=a.value.value.length*15+20,N()},Y=M=>{if(!Array.isArray(t.selected))return;const S=t.selected[t.selected.length-1];if(!!S)return M===!0||M===!1?(S.hitState=M,M):(S.hitState=!S.hitState,S.hitState)},pe=M=>{const S=M.target.value;if(M.type===\"compositionend\")t.isOnComposition=!1,at(()=>J(S));else{const _e=S[S.length-1]||\"\";t.isOnComposition=!jf(_e)}},Fe=()=>{at(()=>z(t.selected))},ce=M=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(e.filterable&&!t.visible&&(t.menuVisibleOnFocus=!0),t.visible=!0),n.emit(\"focus\",M))},Ae=()=>{var M;t.visible=!1,(M=u.value)==null||M.blur()},ue=M=>{at(()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit(\"blur\",M)}),t.softFocus=!1},me=M=>{Te(M)},Ie=()=>{t.visible=!1},ee=M=>{t.visible&&(M.preventDefault(),M.stopPropagation(),t.visible=!1)},Se=M=>{var S;M&&!t.mouseEnter||E.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:(!r.value||!r.value.isFocusInsideContent())&&(t.visible=!t.visible),t.visible&&((S=a.value||u.value)==null||S.focus()))},Ke=()=>{t.visible?P.value[t.hoverIndex]&&je(P.value[t.hoverIndex],void 0):Se()},nt=M=>dt(M.value)?en(M.value,e.valueKey):M.value,we=U(()=>P.value.filter(M=>M.visible).every(M=>M.disabled)),Le=M=>{if(!t.visible){t.visible=!0;return}if(!(t.options.size===0||t.filteredOptionsCount===0)&&!t.isOnComposition&&!we.value){M===\"next\"?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):M===\"prev\"&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const S=P.value[t.hoverIndex];(S.disabled===!0||S.states.groupDisabled===!0||!S.visible)&&Le(M),at(()=>z(m.value))}};return{optionsArray:P,selectSize:j,handleResize:De,debouncedOnInputChange:O,debouncedQueryChange:ye,deletePrevTag:Pe,deleteTag:he,deleteSelected:Te,handleOptionSelect:je,scrollToOption:z,readonly:w,resetInputHeight:N,showClose:D,iconComponent:C,iconReverse:B,showNewOption:H,collapseTagSize:X,setSelected:Ee,managePlaceholder:be,selectDisabled:E,emptyText:k,toggleLastOptionHitState:Y,resetInputState:I,handleComposition:pe,onOptionCreate:q,onOptionDestroy:R,handleMenuEnter:Fe,handleFocus:ce,blur:Ae,handleBlur:ue,handleClearClick:me,handleClose:Ie,handleKeydownEscape:ee,toggleMenu:Se,selectOption:Ke,getValueKey:nt,navigateOptions:Le,dropMenuVisible:W,queryChange:v,groupQueryChange:_,reference:u,input:a,tooltipRef:r,tags:s,selectWrapper:i,scrollbar:p,handleMouseEnter:()=>{t.mouseEnter=!0},handleMouseLeave:()=>{t.mouseEnter=!1}}},_d=\"ElSelect\",Fle=le({name:_d,componentName:_d,components:{ElInput:nn,ElSelectMenu:wle,ElOption:Rc,ElTag:Ate,ElScrollbar:Yt,ElTooltip:pn,ElIcon:rt},directives:{ClickOutside:P4},props:{name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:\"off\"},automaticDropdown:Boolean,size:{type:String,validator:gc},effect:{type:String,default:\"light\"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:\"\"},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:\"value\"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},teleported:Tc.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:Tt,default:va},fitInputWidth:{type:Boolean,default:!1},suffixIcon:{type:Tt,default:pa},tagType:{...J4.type,default:\"info\"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:{type:Boolean,default:!1},suffixTransition:{type:Boolean,default:!0},placement:{type:String,values:Zr,default:\"bottom-start\"}},emits:[bt,Jn,\"remove-tag\",\"clear\",\"visible-change\",\"focus\",\"blur\"],setup(e,t){const n=Ve(\"select\"),o=Ve(\"input\"),{t:l}=Dn(),u=Cle(e),{optionsArray:a,selectSize:r,readonly:s,handleResize:i,collapseTagSize:p,debouncedOnInputChange:m,debouncedQueryChange:v,deletePrevTag:_,deleteTag:g,deleteSelected:y,handleOptionSelect:w,scrollToOption:E,setSelected:D,resetInputHeight:C,managePlaceholder:B,showClose:$,selectDisabled:k,iconComponent:P,iconReverse:T,showNewOption:H,emptyText:j,toggleLastOptionHitState:X,resetInputState:W,handleComposition:N,onOptionCreate:J,onOptionDestroy:be,handleMenuEnter:ve,handleFocus:Ee,blur:te,handleBlur:Z,handleClearClick:De,handleClose:Be,handleKeydownEscape:x,toggleMenu:O,selectOption:ye,getValueKey:xe,navigateOptions:Pe,dropMenuVisible:he,reference:Te,input:je,tooltipRef:de,tags:se,selectWrapper:z,scrollbar:q,queryChange:R,groupQueryChange:I,handleMouseEnter:Y,handleMouseLeave:pe}=Ele(e,u,t),{focus:Fe}=tJ(Te),{inputWidth:ce,selected:Ae,inputLength:ue,filteredOptionsCount:me,visible:Ie,softFocus:ee,selectedLabel:Se,hoverIndex:Ke,query:nt,inputHovering:we,currentPlaceholder:Le,menuVisibleOnFocus:Qe,isOnComposition:Ze,isSilentBlur:M,options:S,cachedOptions:_e,optionsCount:G,prefixWidth:ie,tagInMultiLine:$e}=ho(u),St=U(()=>{const _n=[n.b()],ht=h(r);return ht&&_n.push(n.m(ht)),e.disabled&&_n.push(n.m(\"disabled\")),_n}),Xt=U(()=>({maxWidth:`${h(ce)-32}px`,width:\"100%\"})),Ce=U(()=>({maxWidth:`${h(ce)>123?h(ce)-123:h(ce)-75}px`}));Dt(ns,Rt({props:e,options:S,optionsArray:a,cachedOptions:_e,optionsCount:G,filteredOptionsCount:me,hoverIndex:Ke,handleOptionSelect:w,onOptionCreate:J,onOptionDestroy:be,selectWrapper:z,selected:Ae,setSelected:D,queryChange:R,groupQueryChange:I})),ot(()=>{u.cachedPlaceHolder=Le.value=e.placeholder||l(\"el.select.placeholder\"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(Le.value=\"\"),po(z,i),e.remote&&e.multiple&&C(),at(()=>{const _n=Te.value&&Te.value.$el;if(!!_n&&(ce.value=_n.getBoundingClientRect().width,t.slots.prefix)){const ht=_n.querySelector(`.${o.e(\"prefix\")}`);ie.value=Math.max(ht.getBoundingClientRect().width+5,30)}}),D()}),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(bt,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(bt,\"\");const Jt=U(()=>{var _n,ht;return(ht=(_n=de.value)==null?void 0:_n.popperRef)==null?void 0:ht.contentRef});return{tagInMultiLine:$e,prefixWidth:ie,selectSize:r,readonly:s,handleResize:i,collapseTagSize:p,debouncedOnInputChange:m,debouncedQueryChange:v,deletePrevTag:_,deleteTag:g,deleteSelected:y,handleOptionSelect:w,scrollToOption:E,inputWidth:ce,selected:Ae,inputLength:ue,filteredOptionsCount:me,visible:Ie,softFocus:ee,selectedLabel:Se,hoverIndex:Ke,query:nt,inputHovering:we,currentPlaceholder:Le,menuVisibleOnFocus:Qe,isOnComposition:Ze,isSilentBlur:M,options:S,resetInputHeight:C,managePlaceholder:B,showClose:$,selectDisabled:k,iconComponent:P,iconReverse:T,showNewOption:H,emptyText:j,toggleLastOptionHitState:X,resetInputState:W,handleComposition:N,handleMenuEnter:ve,handleFocus:Ee,blur:te,handleBlur:Z,handleClearClick:De,handleClose:Be,handleKeydownEscape:x,toggleMenu:O,selectOption:ye,getValueKey:xe,navigateOptions:Pe,dropMenuVisible:he,focus:Fe,reference:Te,input:je,tooltipRef:de,popperPaneRef:Jt,tags:se,selectWrapper:z,scrollbar:q,wrapperKls:St,selectTagsStyle:Xt,nsSelect:n,tagTextStyle:Ce,handleMouseEnter:Y,handleMouseLeave:pe}}}),Ale=[\"disabled\",\"autocomplete\"],Dle={style:{height:\"100%\",display:\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\"}};function Ble(e,t,n,o,l,u){const a=lt(\"el-tag\"),r=lt(\"el-tooltip\"),s=lt(\"el-icon\"),i=lt(\"el-input\"),p=lt(\"el-option\"),m=lt(\"el-scrollbar\"),v=lt(\"el-select-menu\"),_=ji(\"click-outside\");return fe((b(),F(\"div\",{ref:\"selectWrapper\",class:K(e.wrapperKls),onMouseenter:t[22]||(t[22]=(...g)=>e.handleMouseEnter&&e.handleMouseEnter(...g)),onMouseleave:t[23]||(t[23]=(...g)=>e.handleMouseLeave&&e.handleMouseLeave(...g)),onClick:t[24]||(t[24]=mt((...g)=>e.toggleMenu&&e.toggleMenu(...g),[\"stop\"]))},[c(r,{ref:\"tooltipRef\",visible:e.dropMenuVisible,placement:e.placement,teleported:e.teleported,\"popper-class\":[e.nsSelect.e(\"popper\"),e.popperClass],\"fallback-placements\":[\"bottom-start\",\"top-start\",\"right\",\"left\"],effect:e.effect,pure:\"\",trigger:\"click\",transition:`${e.nsSelect.namespace.value}-zoom-in-top`,\"stop-popper-mouse-event\":!1,\"gpu-acceleration\":!1,persistent:e.persistent,onShow:e.handleMenuEnter},{default:d(()=>[f(\"div\",{class:\"select-trigger\",onMouseenter:t[20]||(t[20]=g=>e.inputHovering=!0),onMouseleave:t[21]||(t[21]=g=>e.inputHovering=!1)},[e.multiple?(b(),F(\"div\",{key:0,ref:\"tags\",class:K(e.nsSelect.e(\"tags\")),style:ut(e.selectTagsStyle)},[e.collapseTags&&e.selected.length?(b(),F(\"span\",{key:0,class:K([e.nsSelect.b(\"tags-wrapper\"),{\"has-prefix\":e.prefixWidth&&e.selected.length}])},[c(a,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:e.tagType,\"disable-transitions\":\"\",onClose:t[0]||(t[0]=g=>e.deleteTag(g,e.selected[0]))},{default:d(()=>[f(\"span\",{class:K(e.nsSelect.e(\"tags-text\")),style:ut(e.tagTextStyle)},re(e.selected[0].currentLabel),7)]),_:1},8,[\"closable\",\"size\",\"hit\",\"type\"]),e.selected.length>1?(b(),ae(a,{key:0,closable:!1,size:e.collapseTagSize,type:e.tagType,\"disable-transitions\":\"\"},{default:d(()=>[e.collapseTagsTooltip?(b(),ae(r,{key:0,disabled:e.dropMenuVisible,\"fallback-placements\":[\"bottom\",\"top\",\"right\",\"left\"],effect:e.effect,placement:\"bottom\",teleported:e.teleported},{default:d(()=>[f(\"span\",{class:K(e.nsSelect.e(\"tags-text\"))},\"+ \"+re(e.selected.length-1),3)]),content:d(()=>[f(\"div\",{class:K(e.nsSelect.e(\"collapse-tags\"))},[(b(!0),F(Oe,null,it(e.selected.slice(1),(g,y)=>(b(),F(\"div\",{key:y,class:K(e.nsSelect.e(\"collapse-tag\"))},[(b(),ae(a,{key:e.getValueKey(g),class:\"in-tooltip\",closable:!e.selectDisabled&&!g.isDisabled,size:e.collapseTagSize,hit:g.hitState,type:e.tagType,\"disable-transitions\":\"\",style:{margin:\"2px\"},onClose:w=>e.deleteTag(w,g)},{default:d(()=>[f(\"span\",{class:K(e.nsSelect.e(\"tags-text\")),style:ut({maxWidth:e.inputWidth-75+\"px\"})},re(g.currentLabel),7)]),_:2},1032,[\"closable\",\"size\",\"hit\",\"type\",\"onClose\"]))],2))),128))],2)]),_:1},8,[\"disabled\",\"effect\",\"teleported\"])):(b(),F(\"span\",{key:1,class:K(e.nsSelect.e(\"tags-text\"))},\"+ \"+re(e.selected.length-1),3))]),_:1},8,[\"size\",\"type\"])):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),oe(\" <div> \"),e.collapseTags?oe(\"v-if\",!0):(b(),ae(tn,{key:1,onAfterLeave:e.resetInputHeight},{default:d(()=>[f(\"span\",{class:K([e.nsSelect.b(\"tags-wrapper\"),{\"has-prefix\":e.prefixWidth&&e.selected.length}])},[(b(!0),F(Oe,null,it(e.selected,g=>(b(),ae(a,{key:e.getValueKey(g),closable:!e.selectDisabled&&!g.isDisabled,size:e.collapseTagSize,hit:g.hitState,type:e.tagType,\"disable-transitions\":\"\",onClose:y=>e.deleteTag(y,g)},{default:d(()=>[f(\"span\",{class:K(e.nsSelect.e(\"tags-text\")),style:ut({maxWidth:e.inputWidth-75+\"px\"})},re(g.currentLabel),7)]),_:2},1032,[\"closable\",\"size\",\"hit\",\"type\",\"onClose\"]))),128))],2)]),_:1},8,[\"onAfterLeave\"])),oe(\" </div> \"),e.filterable?fe((b(),F(\"input\",{key:2,ref:\"input\",\"onUpdate:modelValue\":t[1]||(t[1]=g=>e.query=g),type:\"text\",class:K([e.nsSelect.e(\"input\"),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,autocomplete:e.autocomplete,style:ut({marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?`${e.prefixWidth}px`:\"\",flexGrow:1,width:`${e.inputLength/(e.inputWidth-32)}%`,maxWidth:`${e.inputWidth-42}px`}),onFocus:t[2]||(t[2]=(...g)=>e.handleFocus&&e.handleFocus(...g)),onBlur:t[3]||(t[3]=(...g)=>e.handleBlur&&e.handleBlur(...g)),onKeyup:t[4]||(t[4]=(...g)=>e.managePlaceholder&&e.managePlaceholder(...g)),onKeydown:[t[5]||(t[5]=(...g)=>e.resetInputState&&e.resetInputState(...g)),t[6]||(t[6]=Bt(mt(g=>e.navigateOptions(\"next\"),[\"prevent\"]),[\"down\"])),t[7]||(t[7]=Bt(mt(g=>e.navigateOptions(\"prev\"),[\"prevent\"]),[\"up\"])),t[8]||(t[8]=Bt((...g)=>e.handleKeydownEscape&&e.handleKeydownEscape(...g),[\"esc\"])),t[9]||(t[9]=Bt(mt((...g)=>e.selectOption&&e.selectOption(...g),[\"stop\",\"prevent\"]),[\"enter\"])),t[10]||(t[10]=Bt((...g)=>e.deletePrevTag&&e.deletePrevTag(...g),[\"delete\"])),t[11]||(t[11]=Bt(g=>e.visible=!1,[\"tab\"]))],onCompositionstart:t[12]||(t[12]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionupdate:t[13]||(t[13]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionend:t[14]||(t[14]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onInput:t[15]||(t[15]=(...g)=>e.debouncedQueryChange&&e.debouncedQueryChange(...g))},null,46,Ale)),[[k8,e.query]]):oe(\"v-if\",!0)],6)):oe(\"v-if\",!0),c(i,{id:e.id,ref:\"reference\",modelValue:e.selectedLabel,\"onUpdate:modelValue\":t[16]||(t[16]=g=>e.selectedLabel=g),type:\"text\",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,\"validate-event\":!1,class:K([e.nsSelect.is(\"focus\",e.visible)]),tabindex:e.multiple&&e.filterable?-1:void 0,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onCompositionstart:e.handleComposition,onCompositionupdate:e.handleComposition,onCompositionend:e.handleComposition,onKeydown:[t[17]||(t[17]=Bt(mt(g=>e.navigateOptions(\"next\"),[\"stop\",\"prevent\"]),[\"down\"])),t[18]||(t[18]=Bt(mt(g=>e.navigateOptions(\"prev\"),[\"stop\",\"prevent\"]),[\"up\"])),Bt(mt(e.selectOption,[\"stop\",\"prevent\"]),[\"enter\"]),Bt(e.handleKeydownEscape,[\"esc\"]),t[19]||(t[19]=Bt(g=>e.visible=!1,[\"tab\"]))]},Zl({suffix:d(()=>[e.iconComponent&&!e.showClose?(b(),ae(s,{key:0,class:K([e.nsSelect.e(\"caret\"),e.nsSelect.e(\"icon\"),e.iconReverse])},{default:d(()=>[(b(),ae(Ct(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),e.showClose&&e.clearIcon?(b(),ae(s,{key:1,class:K([e.nsSelect.e(\"caret\"),e.nsSelect.e(\"icon\")]),onClick:e.handleClearClick},{default:d(()=>[(b(),ae(Ct(e.clearIcon)))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)]),_:2},[e.$slots.prefix?{name:\"prefix\",fn:d(()=>[f(\"div\",Dle,[ze(e.$slots,\"prefix\")])])}:void 0]),1032,[\"id\",\"modelValue\",\"placeholder\",\"name\",\"autocomplete\",\"size\",\"disabled\",\"readonly\",\"class\",\"tabindex\",\"onFocus\",\"onBlur\",\"onInput\",\"onPaste\",\"onCompositionstart\",\"onCompositionupdate\",\"onCompositionend\",\"onKeydown\"])],32)]),content:d(()=>[c(v,null,{default:d(()=>[fe(c(m,{ref:\"scrollbar\",tag:\"ul\",\"wrap-class\":e.nsSelect.be(\"dropdown\",\"wrap\"),\"view-class\":e.nsSelect.be(\"dropdown\",\"list\"),class:K([e.nsSelect.is(\"empty\",!e.allowCreate&&Boolean(e.query)&&e.filteredOptionsCount===0)])},{default:d(()=>[e.showNewOption?(b(),ae(p,{key:0,value:e.query,created:!0},null,8,[\"value\"])):oe(\"v-if\",!0),ze(e.$slots,\"default\")]),_:3},8,[\"wrap-class\",\"view-class\",\"class\"]),[[ge,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&e.options.size===0)?(b(),F(Oe,{key:0},[e.$slots.empty?ze(e.$slots,\"empty\",{key:0}):(b(),F(\"p\",{key:1,class:K(e.nsSelect.be(\"dropdown\",\"empty\"))},re(e.emptyText),3))],64)):oe(\"v-if\",!0)]),_:3})]),_:3},8,[\"visible\",\"placement\",\"teleported\",\"popper-class\",\"effect\",\"transition\",\"persistent\",\"onShow\"])],34)),[[_,e.handleClose,e.popperPaneRef]])}var xle=We(Fle,[[\"render\",Ble],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/select.vue\"]]);const $le=le({name:\"ElOptionGroup\",componentName:\"ElOptionGroup\",props:{label:String,disabled:{type:Boolean,default:!1}},setup(e){const t=Ve(\"select\"),n=L(!0),o=pt(),l=L([]);Dt(v6,Rt({...ho(e)}));const u=Xe(ns);ot(()=>{l.value=a(o.subTree)});const a=s=>{const i=[];return Array.isArray(s.children)&&s.children.forEach(p=>{var m;p.type&&p.type.name===\"ElOption\"&&p.component&&p.component.proxy?i.push(p.component.proxy):(m=p.children)!=null&&m.length&&i.push(...a(p))}),i},{groupQueryChange:r}=ct(u);return Me(r,()=>{n.value=l.value.some(s=>s.visible===!0)},{flush:\"post\"}),{visible:n,ns:t}}});function Sle(e,t,n,o,l,u){return fe((b(),F(\"ul\",{class:K(e.ns.be(\"group\",\"wrap\"))},[f(\"li\",{class:K(e.ns.be(\"group\",\"title\"))},re(e.label),3),f(\"li\",null,[f(\"ul\",{class:K(e.ns.b(\"group\"))},[ze(e.$slots,\"default\")],2)])],2)),[[ge,e.visible]])}var h6=We($le,[[\"render\",Sle],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/option-group.vue\"]]);const Ca=Ft(xle,{Option:Rc,OptionGroup:h6}),Ea=Nt(Rc);Nt(h6);const Nc=()=>Xe(Jf,{}),kle=et({pageSize:{type:Number,required:!0},pageSizes:{type:He(Array),default:()=>So([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,size:{type:String,values:Cu}}),Ple=le({name:\"ElPaginationSizes\"}),Lle=le({...Ple,props:kle,emits:[\"page-size-change\"],setup(e,{emit:t}){const n=e,{t:o}=Dn(),l=Ve(\"pagination\"),u=Nc(),a=L(n.pageSize);Me(()=>n.pageSizes,(i,p)=>{if(!Qs(i,p)&&Array.isArray(i)){const m=i.includes(n.pageSize)?n.pageSize:n.pageSizes[0];t(\"page-size-change\",m)}}),Me(()=>n.pageSize,i=>{a.value=i});const r=U(()=>n.pageSizes);function s(i){var p;i!==a.value&&(a.value=i,(p=u.handleSizeChange)==null||p.call(u,Number(i)))}return(i,p)=>(b(),F(\"span\",{class:K(h(l).e(\"sizes\"))},[c(h(Ca),{\"model-value\":a.value,disabled:i.disabled,\"popper-class\":i.popperClass,size:i.size,\"validate-event\":!1,onChange:s},{default:d(()=>[(b(!0),F(Oe,null,it(h(r),m=>(b(),ae(h(Ea),{key:m,value:m,label:m+h(o)(\"el.pagination.pagesize\")},null,8,[\"value\",\"label\"]))),128))]),_:1},8,[\"model-value\",\"disabled\",\"popper-class\",\"size\"])],2))}});var Tle=We(Lle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/sizes.vue\"]]);const zle=[\"disabled\"],Mle=le({name:\"ElPaginationJumper\"}),Vle=le({...Mle,setup(e){const{t}=Dn(),n=Ve(\"pagination\"),{pageCount:o,disabled:l,currentPage:u,changeEvent:a}=Nc(),r=L(),s=U(()=>{var m;return(m=r.value)!=null?m:u==null?void 0:u.value});function i(m){r.value=+m}function p(m){m=Math.trunc(+m),a==null||a(+m),r.value=void 0}return(m,v)=>(b(),F(\"span\",{class:K(h(n).e(\"jump\")),disabled:h(l)},[A(re(h(t)(\"el.pagination.goto\"))+\" \",1),c(h(nn),{size:\"small\",class:K([h(n).e(\"editor\"),h(n).is(\"in-pagination\")]),min:1,max:h(o),disabled:h(l),\"model-value\":h(s),\"validate-event\":!1,type:\"number\",\"onUpdate:modelValue\":i,onChange:p},null,8,[\"class\",\"max\",\"disabled\",\"model-value\"]),A(\" \"+re(h(t)(\"el.pagination.pageClassifier\")),1)],10,zle))}});var Ile=We(Vle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/jumper.vue\"]]);const Hle=et({total:{type:Number,default:1e3}}),Rle=[\"disabled\"],Nle=le({name:\"ElPaginationTotal\"}),Ole=le({...Nle,props:Hle,setup(e){const{t}=Dn(),n=Ve(\"pagination\"),{disabled:o}=Nc();return(l,u)=>(b(),F(\"span\",{class:K(h(n).e(\"total\")),disabled:h(o)},re(h(t)(\"el.pagination.total\",{total:l.total})),11,Rle))}});var Ule=We(Ole,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/total.vue\"]]);const Wle=et({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),qle=[\"onKeyup\"],jle=[\"aria-current\",\"tabindex\"],Kle=[\"tabindex\"],Gle=[\"aria-current\",\"tabindex\"],Yle=[\"tabindex\"],Xle=[\"aria-current\",\"tabindex\"],Jle=le({name:\"ElPaginationPager\"}),Qle=le({...Jle,props:Wle,emits:[\"change\"],setup(e,{emit:t}){const n=e,o=Ve(\"pager\"),l=Ve(\"icon\"),u=L(!1),a=L(!1),r=L(!1),s=L(!1),i=L(!1),p=L(!1),m=U(()=>{const E=n.pagerCount,D=(E-1)/2,C=Number(n.currentPage),B=Number(n.pageCount);let $=!1,k=!1;B>E&&(C>E-D&&($=!0),C<B-D&&(k=!0));const P=[];if($&&!k){const T=B-(E-2);for(let H=T;H<B;H++)P.push(H)}else if(!$&&k)for(let T=2;T<E;T++)P.push(T);else if($&&k){const T=Math.floor(E/2)-1;for(let H=C-T;H<=C+T;H++)P.push(H)}else for(let T=2;T<B;T++)P.push(T);return P}),v=U(()=>n.disabled?-1:0);Do(()=>{const E=(n.pagerCount-1)/2;u.value=!1,a.value=!1,n.pageCount>n.pagerCount&&(n.currentPage>n.pagerCount-E&&(u.value=!0),n.currentPage<n.pageCount-E&&(a.value=!0))});function _(E=!1){n.disabled||(E?r.value=!0:s.value=!0)}function g(E=!1){E?i.value=!0:p.value=!0}function y(E){const D=E.target;if(D.tagName.toLowerCase()===\"li\"&&Array.from(D.classList).includes(\"number\")){const C=Number(D.textContent);C!==n.currentPage&&t(\"change\",C)}else D.tagName.toLowerCase()===\"li\"&&Array.from(D.classList).includes(\"more\")&&w(E)}function w(E){const D=E.target;if(D.tagName.toLowerCase()===\"ul\"||n.disabled)return;let C=Number(D.textContent);const B=n.pageCount,$=n.currentPage,k=n.pagerCount-2;D.className.includes(\"more\")&&(D.className.includes(\"quickprev\")?C=$-k:D.className.includes(\"quicknext\")&&(C=$+k)),Number.isNaN(+C)||(C<1&&(C=1),C>B&&(C=B)),C!==$&&t(\"change\",C)}return(E,D)=>(b(),F(\"ul\",{class:K(h(o).b()),onClick:w,onKeyup:Bt(y,[\"enter\"])},[E.pageCount>0?(b(),F(\"li\",{key:0,class:K([[h(o).is(\"active\",E.currentPage===1),h(o).is(\"disabled\",E.disabled)],\"number\"]),\"aria-current\":E.currentPage===1,tabindex:h(v)},\" 1 \",10,jle)):oe(\"v-if\",!0),u.value?(b(),F(\"li\",{key:1,class:K([\"more\",\"btn-quickprev\",h(l).b(),h(o).is(\"disabled\",E.disabled)]),tabindex:h(v),onMouseenter:D[0]||(D[0]=C=>_(!0)),onMouseleave:D[1]||(D[1]=C=>r.value=!1),onFocus:D[2]||(D[2]=C=>g(!0)),onBlur:D[3]||(D[3]=C=>i.value=!1)},[r.value||i.value?(b(),ae(h(Pf),{key:0})):(b(),ae(h(ti),{key:1}))],42,Kle)):oe(\"v-if\",!0),(b(!0),F(Oe,null,it(h(m),C=>(b(),F(\"li\",{key:C,class:K([[h(o).is(\"active\",E.currentPage===C),h(o).is(\"disabled\",E.disabled)],\"number\"]),\"aria-current\":E.currentPage===C,tabindex:h(v)},re(C),11,Gle))),128)),a.value?(b(),F(\"li\",{key:2,class:K([\"more\",\"btn-quicknext\",h(l).b(),h(o).is(\"disabled\",E.disabled)]),tabindex:h(v),onMouseenter:D[4]||(D[4]=C=>_()),onMouseleave:D[5]||(D[5]=C=>s.value=!1),onFocus:D[6]||(D[6]=C=>g()),onBlur:D[7]||(D[7]=C=>p.value=!1)},[s.value||p.value?(b(),ae(h(Lf),{key:0})):(b(),ae(h(ti),{key:1}))],42,Yle)):oe(\"v-if\",!0),E.pageCount>1?(b(),F(\"li\",{key:3,class:K([[h(o).is(\"active\",E.currentPage===E.pageCount),h(o).is(\"disabled\",E.disabled)],\"number\"]),\"aria-current\":E.currentPage===E.pageCount,tabindex:h(v)},re(E.pageCount),11,Xle)):oe(\"v-if\",!0)],42,qle))}});var Zle=We(Qle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/pager.vue\"]]);const Qt=e=>typeof e!=\"number\",eue=et({total:Number,pageSize:Number,defaultPageSize:Number,currentPage:Number,defaultCurrentPage:Number,pageCount:Number,pagerCount:{type:Number,validator:e=>typeof e==\"number\"&&Math.trunc(e)===e&&e>4&&e<22&&e%2===1,default:7},layout:{type:String,default:[\"prev\",\"pager\",\"next\",\"jumper\",\"->\",\"total\"].join(\", \")},pageSizes:{type:He(Array),default:()=>So([10,20,30,40,50,100])},popperClass:{type:String,default:\"\"},prevText:{type:String,default:\"\"},prevIcon:{type:Tt,default:()=>kf},nextText:{type:String,default:\"\"},nextIcon:{type:Tt,default:()=>wu},small:Boolean,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean}),tue={\"update:current-page\":e=>typeof e==\"number\",\"update:page-size\":e=>typeof e==\"number\",\"size-change\":e=>typeof e==\"number\",\"current-change\":e=>typeof e==\"number\",\"prev-click\":e=>typeof e==\"number\",\"next-click\":e=>typeof e==\"number\"},md=\"ElPagination\";var nue=le({name:md,props:eue,emits:tue,setup(e,{emit:t,slots:n}){const{t:o}=Dn(),l=Ve(\"pagination\"),u=pt().vnode.props||{},a=\"onUpdate:currentPage\"in u||\"onUpdate:current-page\"in u||\"onCurrentChange\"in u,r=\"onUpdate:pageSize\"in u||\"onUpdate:page-size\"in u||\"onSizeChange\"in u,s=U(()=>{if(Qt(e.total)&&Qt(e.pageCount)||!Qt(e.currentPage)&&!a)return!1;if(e.layout.includes(\"sizes\")){if(Qt(e.pageCount)){if(!Qt(e.total)&&!Qt(e.pageSize)&&!r)return!1}else if(!r)return!1}return!0}),i=L(Qt(e.defaultPageSize)?10:e.defaultPageSize),p=L(Qt(e.defaultCurrentPage)?1:e.defaultCurrentPage),m=U({get(){return Qt(e.pageSize)?i.value:e.pageSize},set(C){Qt(e.pageSize)&&(i.value=C),r&&(t(\"update:page-size\",C),t(\"size-change\",C))}}),v=U(()=>{let C=0;return Qt(e.pageCount)?Qt(e.total)||(C=Math.max(1,Math.ceil(e.total/m.value))):C=e.pageCount,C}),_=U({get(){return Qt(e.currentPage)?p.value:e.currentPage},set(C){let B=C;C<1?B=1:C>v.value&&(B=v.value),Qt(e.currentPage)&&(p.value=B),a&&(t(\"update:current-page\",B),t(\"current-change\",B))}});Me(v,C=>{_.value>C&&(_.value=C)});function g(C){_.value=C}function y(C){m.value=C;const B=v.value;_.value>B&&(_.value=B)}function w(){e.disabled||(_.value-=1,t(\"prev-click\",_.value))}function E(){e.disabled||(_.value+=1,t(\"next-click\",_.value))}function D(C,B){C&&(C.props||(C.props={}),C.props.class=[C.props.class,B].join(\" \"))}return Dt(Jf,{pageCount:v,disabled:U(()=>e.disabled),currentPage:_,changeEvent:g,handleSizeChange:y}),()=>{var C,B;if(!s.value)return o(\"el.pagination.deprecationWarning\"),null;if(!e.layout||e.hideOnSinglePage&&v.value<=1)return null;const $=[],k=[],P=Re(\"div\",{class:l.e(\"rightwrapper\")},k),T={prev:Re(ile,{disabled:e.disabled,currentPage:_.value,prevText:e.prevText,prevIcon:e.prevIcon,onClick:w}),jumper:Re(Ile),pager:Re(Zle,{currentPage:_.value,pageCount:v.value,pagerCount:e.pagerCount,onChange:g,disabled:e.disabled}),next:Re(hle,{disabled:e.disabled,currentPage:_.value,pageCount:v.value,nextText:e.nextText,nextIcon:e.nextIcon,onClick:E}),sizes:Re(Tle,{pageSize:m.value,pageSizes:e.pageSizes,popperClass:e.popperClass,disabled:e.disabled,size:e.small?\"small\":\"default\"}),slot:(B=(C=n==null?void 0:n.default)==null?void 0:C.call(n))!=null?B:null,total:Re(Ule,{total:Qt(e.total)?0:e.total})},H=e.layout.split(\",\").map(X=>X.trim());let j=!1;return H.forEach(X=>{if(X===\"->\"){j=!0;return}j?k.push(T[X]):$.push(T[X])}),D($[0],l.is(\"first\")),D($[$.length-1],l.is(\"last\")),j&&k.length>0&&(D(k[0],l.is(\"first\")),D(k[k.length-1],l.is(\"last\")),$.push(P)),Re(\"div\",{role:\"pagination\",\"aria-label\":\"pagination\",class:[l.b(),l.is(\"background\",e.background),{[l.m(\"small\")]:e.small}]},$)}}});const _6=Ft(nue),oue=et({type:{type:String,default:\"line\",values:[\"line\",\"circle\",\"dashboard\"]},percentage:{type:Number,default:0,validator:e=>e>=0&&e<=100},status:{type:String,default:\"\",values:[\"\",\"success\",\"exception\",\"warning\"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:He(String),default:\"round\"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:He([String,Array,Function]),default:\"\"},format:{type:He(Function),default:e=>`${e}%`}}),lue=[\"aria-valuenow\"],uue={viewBox:\"0 0 100 100\"},aue=[\"d\",\"stroke\",\"stroke-width\"],rue=[\"d\",\"stroke\",\"opacity\",\"stroke-linecap\",\"stroke-width\"],sue={key:0},iue=le({name:\"ElProgress\"}),cue=le({...iue,props:oue,setup(e){const t=e,n={success:\"#13ce66\",exception:\"#ff4949\",warning:\"#e6a23c\",default:\"#20a0ff\"},o=Ve(\"progress\"),l=U(()=>({width:`${t.percentage}%`,animationDuration:`${t.duration}s`,backgroundColor:D(t.percentage)})),u=U(()=>(t.strokeWidth/t.width*100).toFixed(1)),a=U(()=>[\"circle\",\"dashboard\"].includes(t.type)?Number.parseInt(`${50-Number.parseFloat(u.value)/2}`,10):0),r=U(()=>{const C=a.value,B=t.type===\"dashboard\";return`\n          M 50 50\n          m 0 ${B?\"\":\"-\"}${C}\n          a ${C} ${C} 0 1 1 0 ${B?\"-\":\"\"}${C*2}\n          a ${C} ${C} 0 1 1 0 ${B?\"\":\"-\"}${C*2}\n          `}),s=U(()=>2*Math.PI*a.value),i=U(()=>t.type===\"dashboard\"?.75:1),p=U(()=>`${-1*s.value*(1-i.value)/2}px`),m=U(()=>({strokeDasharray:`${s.value*i.value}px, ${s.value}px`,strokeDashoffset:p.value})),v=U(()=>({strokeDasharray:`${s.value*i.value*(t.percentage/100)}px, ${s.value}px`,strokeDashoffset:p.value,transition:\"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s\"})),_=U(()=>{let C;return t.color?C=D(t.percentage):C=n[t.status]||n.default,C}),g=U(()=>t.status===\"warning\"?Xr:t.type===\"line\"?t.status===\"success\"?Yr:va:t.status===\"success\"?vc:$l),y=U(()=>t.type===\"line\"?12+t.strokeWidth*.4:t.width*.111111+2),w=U(()=>t.format(t.percentage));function E(C){const B=100/C.length;return C.map((k,P)=>tt(k)?{color:k,percentage:(P+1)*B}:k).sort((k,P)=>k.percentage-P.percentage)}const D=C=>{var B;const{color:$}=t;if(Ge($))return $(C);if(tt($))return $;{const k=E($);for(const P of k)if(P.percentage>C)return P.color;return(B=k[k.length-1])==null?void 0:B.color}};return(C,B)=>(b(),F(\"div\",{class:K([h(o).b(),h(o).m(C.type),h(o).is(C.status),{[h(o).m(\"without-text\")]:!C.showText,[h(o).m(\"text-inside\")]:C.textInside}]),role:\"progressbar\",\"aria-valuenow\":C.percentage,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},[C.type===\"line\"?(b(),F(\"div\",{key:0,class:K(h(o).b(\"bar\"))},[f(\"div\",{class:K(h(o).be(\"bar\",\"outer\")),style:ut({height:`${C.strokeWidth}px`})},[f(\"div\",{class:K([h(o).be(\"bar\",\"inner\"),{[h(o).bem(\"bar\",\"inner\",\"indeterminate\")]:C.indeterminate}]),style:ut(h(l))},[(C.showText||C.$slots.default)&&C.textInside?(b(),F(\"div\",{key:0,class:K(h(o).be(\"bar\",\"innerText\"))},[ze(C.$slots,\"default\",{percentage:C.percentage},()=>[f(\"span\",null,re(h(w)),1)])],2)):oe(\"v-if\",!0)],6)],6)],2)):(b(),F(\"div\",{key:1,class:K(h(o).b(\"circle\")),style:ut({height:`${C.width}px`,width:`${C.width}px`})},[(b(),F(\"svg\",uue,[f(\"path\",{class:K(h(o).be(\"circle\",\"track\")),d:h(r),stroke:`var(${h(o).cssVarName(\"fill-color-light\")}, #e5e9f2)`,\"stroke-width\":h(u),fill:\"none\",style:ut(h(m))},null,14,aue),f(\"path\",{class:K(h(o).be(\"circle\",\"path\")),d:h(r),stroke:h(_),fill:\"none\",opacity:C.percentage?1:0,\"stroke-linecap\":C.strokeLinecap,\"stroke-width\":h(u),style:ut(h(v))},null,14,rue)]))],6)),(C.showText||C.$slots.default)&&!C.textInside?(b(),F(\"div\",{key:2,class:K(h(o).e(\"text\")),style:ut({fontSize:`${h(y)}px`})},[ze(C.$slots,\"default\",{percentage:C.percentage},()=>[C.status?(b(),ae(h(rt),{key:1},{default:d(()=>[(b(),ae(Ct(h(g))))]),_:1})):(b(),F(\"span\",sue,re(h(w)),1))])],6)):oe(\"v-if\",!0)],10,lue))}});var due=We(cue,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/progress/src/progress.vue\"]]);const fue=Ft(due),pue=et({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:\"\"},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Tt},inactiveIcon:{type:Tt},activeText:{type:String,default:\"\"},inactiveText:{type:String,default:\"\"},activeColor:{type:String,default:\"\"},inactiveColor:{type:String,default:\"\"},borderColor:{type:String,default:\"\"},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:\"\"},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:He(Function)},size:{type:String,validator:gc},tabindex:{type:[String,Number]}}),vue={[bt]:e=>Ut(e)||tt(e)||gt(e),[Jn]:e=>Ut(e)||tt(e)||gt(e),[Dl]:e=>Ut(e)||tt(e)||gt(e)},hue=[\"onClick\"],_ue=[\"id\",\"aria-checked\",\"aria-disabled\",\"name\",\"true-value\",\"false-value\",\"disabled\",\"tabindex\",\"onKeydown\"],mue=[\"aria-hidden\"],gue=[\"aria-hidden\"],bue=[\"aria-hidden\"],yue=[\"aria-hidden\"],yi=\"ElSwitch\",wue=le({name:yi}),Cue=le({...wue,props:pue,emits:vue,setup(e,{expose:t,emit:n}){const o=e,l=pt(),{formItem:u}=Ho(),a=dn(),r=Ve(\"switch\");ua({from:'\"value\"',replacement:'\"model-value\" or \"v-model\"',scope:yi,version:\"2.3.0\",ref:\"https://element-plus.org/en-US/component/switch.html#attributes\",type:\"Attribute\"},U(()=>{var $;return!!(($=l.vnode.props)!=null&&$.value)}));const{inputId:s}=_a(o,{formItemContext:u}),i=ul(U(()=>o.loading)),p=L(o.modelValue!==!1),m=L(),v=L(),_=U(()=>[r.b(),r.m(a.value),r.is(\"disabled\",i.value),r.is(\"checked\",w.value)]),g=U(()=>({width:Xn(o.width)}));Me(()=>o.modelValue,()=>{p.value=!0}),Me(()=>o.value,()=>{p.value=!1});const y=U(()=>p.value?o.modelValue:o.value),w=U(()=>y.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(y.value)||(n(bt,o.inactiveValue),n(Jn,o.inactiveValue),n(Dl,o.inactiveValue)),Me(w,$=>{var k;m.value.checked=$,o.validateEvent&&((k=u==null?void 0:u.validate)==null||k.call(u,\"change\").catch(P=>void 0))});const E=()=>{const $=w.value?o.inactiveValue:o.activeValue;n(bt,$),n(Jn,$),n(Dl,$),at(()=>{m.value.checked=w.value})},D=()=>{if(i.value)return;const{beforeChange:$}=o;if(!$){E();return}const k=$();[dr(k),Ut(k)].includes(!0)||An(yi,\"beforeChange must return type `Promise<boolean>` or `boolean`\"),dr(k)?k.then(T=>{T&&E()}).catch(T=>{}):k&&E()},C=U(()=>r.cssVarBlock({...o.activeColor?{\"on-color\":o.activeColor}:null,...o.inactiveColor?{\"off-color\":o.inactiveColor}:null,...o.borderColor?{\"border-color\":o.borderColor}:null})),B=()=>{var $,k;(k=($=m.value)==null?void 0:$.focus)==null||k.call($)};return ot(()=>{m.value.checked=w.value}),t({focus:B,checked:w}),($,k)=>(b(),F(\"div\",{class:K(h(_)),style:ut(h(C)),onClick:mt(D,[\"prevent\"])},[f(\"input\",{id:h(s),ref_key:\"input\",ref:m,class:K(h(r).e(\"input\")),type:\"checkbox\",role:\"switch\",\"aria-checked\":h(w),\"aria-disabled\":h(i),name:$.name,\"true-value\":$.activeValue,\"false-value\":$.inactiveValue,disabled:h(i),tabindex:$.tabindex,onChange:E,onKeydown:Bt(D,[\"enter\"])},null,42,_ue),!$.inlinePrompt&&($.inactiveIcon||$.inactiveText)?(b(),F(\"span\",{key:0,class:K([h(r).e(\"label\"),h(r).em(\"label\",\"left\"),h(r).is(\"active\",!h(w))])},[$.inactiveIcon?(b(),ae(h(rt),{key:0},{default:d(()=>[(b(),ae(Ct($.inactiveIcon)))]),_:1})):oe(\"v-if\",!0),!$.inactiveIcon&&$.inactiveText?(b(),F(\"span\",{key:1,\"aria-hidden\":h(w)},re($.inactiveText),9,mue)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"span\",{ref_key:\"core\",ref:v,class:K(h(r).e(\"core\")),style:ut(h(g))},[$.inlinePrompt?(b(),F(\"div\",{key:0,class:K(h(r).e(\"inner\"))},[$.activeIcon||$.inactiveIcon?(b(),F(Oe,{key:0},[$.activeIcon?(b(),ae(h(rt),{key:0,class:K([h(r).is(\"icon\"),h(w)?h(r).is(\"show\"):h(r).is(\"hide\")])},{default:d(()=>[(b(),ae(Ct($.activeIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),$.inactiveIcon?(b(),ae(h(rt),{key:1,class:K([h(r).is(\"icon\"),h(w)?h(r).is(\"hide\"):h(r).is(\"show\")])},{default:d(()=>[(b(),ae(Ct($.inactiveIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],64)):$.activeText||$.inactiveIcon?(b(),F(Oe,{key:1},[$.activeText?(b(),F(\"span\",{key:0,class:K([h(r).is(\"text\"),h(w)?h(r).is(\"show\"):h(r).is(\"hide\")]),\"aria-hidden\":!h(w)},re($.activeText.substring(0,3)),11,gue)):oe(\"v-if\",!0),$.inactiveText?(b(),F(\"span\",{key:1,class:K([h(r).is(\"text\"),h(w)?h(r).is(\"hide\"):h(r).is(\"show\")]),\"aria-hidden\":h(w)},re($.inactiveText.substring(0,3)),11,bue)):oe(\"v-if\",!0)],64)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"div\",{class:K(h(r).e(\"action\"))},[$.loading?(b(),ae(h(rt),{key:0,class:K(h(r).is(\"loading\"))},{default:d(()=>[c(h(ha))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],6),!$.inlinePrompt&&($.activeIcon||$.activeText)?(b(),F(\"span\",{key:1,class:K([h(r).e(\"label\"),h(r).em(\"label\",\"right\"),h(r).is(\"active\",h(w))])},[$.activeIcon?(b(),ae(h(rt),{key:0},{default:d(()=>[(b(),ae(Ct($.activeIcon)))]),_:1})):oe(\"v-if\",!0),!$.activeIcon&&$.activeText?(b(),F(\"span\",{key:1,\"aria-hidden\":!h(w)},re($.activeText),9,yue)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0)],14,hue))}});var Eue=We(Cue,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue\"]]);const rl=Ft(Eue);/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */var Fue=/[\"'&<>]/,Aue=Due;function Due(e){var t=\"\"+e,n=Fue.exec(t);if(!n)return t;var o,l=\"\",u=0,a=0;for(u=n.index;u<t.length;u++){switch(t.charCodeAt(u)){case 34:o=\"&quot;\";break;case 38:o=\"&amp;\";break;case 39:o=\"&#39;\";break;case 60:o=\"&lt;\";break;case 62:o=\"&gt;\";break;default:continue}a!==u&&(l+=t.substring(a,u)),a=u+1,l+=o}return a!==u?l+t.substring(a,u):l}const xs=function(e){var t;return(t=e.target)==null?void 0:t.closest(\"td\")},gd=function(e){return e!==null&&typeof e==\"object\"},Bue=function(e,t,n,o,l){if(!t&&!o&&(!l||Array.isArray(l)&&!l.length))return e;typeof n==\"string\"?n=n===\"descending\"?-1:1:n=n&&n<0?-1:1;const u=o?null:function(r,s){return l?(Array.isArray(l)||(l=[l]),l.map(i=>typeof i==\"string\"?en(r,i):i(r,s,e))):(t!==\"$key\"&&gd(r)&&\"$value\"in r&&(r=r.$value),[gd(r)?en(r,t):r])},a=function(r,s){if(o)return o(r.value,s.value);for(let i=0,p=r.key.length;i<p;i++){if(r.key[i]<s.key[i])return-1;if(r.key[i]>s.key[i])return 1}return 0};return e.map((r,s)=>({value:r,index:s,key:u?u(r,s):null})).sort((r,s)=>{let i=a(r,s);return i||(i=r.index-s.index),i*+n}).map(r=>r.value)},m6=function(e,t){let n=null;return e.columns.forEach(o=>{o.id===t&&(n=o)}),n},xue=function(e,t){let n=null;for(let o=0;o<e.columns.length;o++){const l=e.columns[o];if(l.columnKey===t){n=l;break}}return n||An(\"ElTable\",`No column matching with column-key: ${t}`),n},bd=function(e,t,n){const o=(t.className||\"\").match(new RegExp(`${n}-table_[^\\\\s]+`,\"gm\"));return o?m6(e,o[0]):null},Ot=(e,t)=>{if(!e)throw new Error(\"Row is required when get row identity\");if(typeof t==\"string\"){if(!t.includes(\".\"))return`${e[t]}`;const n=t.split(\".\");let o=e;for(const l of n)o=o[l];return`${o}`}else if(typeof t==\"function\")return t.call(null,e)},Cl=function(e,t){const n={};return(e||[]).forEach((o,l)=>{n[Ot(o,t)]={row:o,index:l}}),n};function $ue(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(st(t,o)){const l=t[o];typeof l!=\"undefined\"&&(n[o]=l)}return n}function Oc(e){return e===\"\"||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e=\"\")),e}function g6(e){return e===\"\"||e!==void 0&&(e=Oc(e),Number.isNaN(e)&&(e=80)),e}function Sue(e){return typeof e==\"number\"?e:typeof e==\"string\"?/^\\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function kue(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...o)=>t(n(...o)))}function rr(e,t,n){let o=!1;const l=e.indexOf(t),u=l!==-1,a=()=>{e.push(t),o=!0},r=()=>{e.splice(l,1),o=!0};return typeof n==\"boolean\"?n&&!u?a():!n&&u&&r():u?r():a(),o}function Pue(e,t,n=\"children\",o=\"hasChildren\"){const l=a=>!(Array.isArray(a)&&a.length);function u(a,r,s){t(a,r,s),r.forEach(i=>{if(i[o]){t(i,null,s+1);return}const p=i[n];l(p)||u(i,p,s+1)})}e.forEach(a=>{if(a[o]){t(a,null,0);return}const r=a[n];l(r)||u(a,r,0)})}let yo;function Lue(e,t,n,o,l){const{nextZIndex:u}=Ml(),a=e==null?void 0:e.dataset.prefix,r=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function s(){const g=l===\"light\",y=document.createElement(\"div\");return y.className=`${a}-popper ${g?\"is-light\":\"is-dark\"}`,n=Aue(n),y.innerHTML=n,y.style.zIndex=String(u()),e==null||e.appendChild(y),y}function i(){const g=document.createElement(\"div\");return g.className=`${a}-popper__arrow`,g}function p(){m&&m.update()}yo==null||yo(),yo=()=>{try{m&&m.destroy(),v&&(e==null||e.removeChild(v)),t.removeEventListener(\"mouseenter\",p),t.removeEventListener(\"mouseleave\",yo),r==null||r.removeEventListener(\"scroll\",yo),yo=void 0}catch{}};let m=null;const v=s(),_=i();return v.appendChild(_),m=F4(t,v,{strategy:\"absolute\",modifiers:[{name:\"offset\",options:{offset:[0,8]}},{name:\"arrow\",options:{element:_,padding:10}}],...o}),t.addEventListener(\"mouseenter\",p),t.addEventListener(\"mouseleave\",yo),r==null||r.addEventListener(\"scroll\",yo),m}const b6=(e,t,n,o)=>{let l=0,u=e;if(o){if(o[e].colSpan>1)return{};for(let s=0;s<e;s++)l+=o[s].colSpan;u=l+o[e].colSpan-1}else l=e;let a;const r=n.states.columns;switch(t){case\"left\":u<n.states.fixedLeafColumnsLength.value&&(a=\"left\");break;case\"right\":l>=r.value.length-n.states.rightFixedLeafColumnsLength.value&&(a=\"right\");break;default:u<n.states.fixedLeafColumnsLength.value?a=\"left\":l>=r.value.length-n.states.rightFixedLeafColumnsLength.value&&(a=\"right\")}return a?{direction:a,start:l,after:u}:{}},Uc=(e,t,n,o,l)=>{const u=[],{direction:a,start:r}=b6(t,n,o,l);if(a){const s=a===\"left\";u.push(`${e}-fixed-column--${a}`),s&&r===o.states.fixedLeafColumnsLength.value-1?u.push(\"is-last-column\"):!s&&r===o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value&&u.push(\"is-first-column\")}return u};function yd(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Wc=(e,t,n,o)=>{const{direction:l,start:u=0}=b6(e,t,n,o);if(!l)return;const a={},r=l===\"left\",s=n.states.columns.value;return r?a.left=s.slice(0,e).reduce(yd,0):a.right=s.slice(u+1).reverse().reduce(yd,0),a},fu=(e,t)=>{!e||Number.isNaN(e[t])||(e[t]=`${e[t]}px`)};function Tue(e){const t=pt(),n=L(!1),o=L([]);return{updateExpandRows:()=>{const s=e.data.value||[],i=e.rowKey.value;if(n.value)o.value=s.slice();else if(i){const p=Cl(o.value,i);o.value=s.reduce((m,v)=>{const _=Ot(v,i);return p[_]&&m.push(v),m},[])}else o.value=[]},toggleRowExpansion:(s,i)=>{rr(o.value,s,i)&&t.emit(\"expand-change\",s,o.value.slice())},setExpandRowKeys:s=>{t.store.assertRowKey();const i=e.data.value||[],p=e.rowKey.value,m=Cl(i,p);o.value=s.reduce((v,_)=>{const g=m[_];return g&&v.push(g.row),v},[])},isRowExpanded:s=>{const i=e.rowKey.value;return i?!!Cl(o.value,i)[Ot(s,i)]:o.value.includes(s)},states:{expandRows:o,defaultExpandAll:n}}}function zue(e){const t=pt(),n=L(null),o=L(null),l=i=>{t.store.assertRowKey(),n.value=i,a(i)},u=()=>{n.value=null},a=i=>{const{data:p,rowKey:m}=e;let v=null;m.value&&(v=(h(p)||[]).find(_=>Ot(_,m.value)===i)),o.value=v,t.emit(\"current-change\",o.value,null)};return{setCurrentRowKey:l,restoreCurrentRowKey:u,setCurrentRowByKey:a,updateCurrentRow:i=>{const p=o.value;if(i&&i!==p){o.value=i,t.emit(\"current-change\",o.value,p);return}!i&&p&&(o.value=null,t.emit(\"current-change\",null,p))},updateCurrentRowData:()=>{const i=e.rowKey.value,p=e.data.value||[],m=o.value;if(!p.includes(m)&&m){if(i){const v=Ot(m,i);a(v)}else o.value=null;o.value===null&&t.emit(\"current-change\",null,m)}else n.value&&(a(n.value),u())},states:{_currentRowKey:n,currentRow:o}}}function Mue(e){const t=L([]),n=L({}),o=L(16),l=L(!1),u=L({}),a=L(\"hasChildren\"),r=L(\"children\"),s=pt(),i=U(()=>{if(!e.rowKey.value)return{};const E=e.data.value||[];return m(E)}),p=U(()=>{const E=e.rowKey.value,D=Object.keys(u.value),C={};return D.length&&D.forEach(B=>{if(u.value[B].length){const $={children:[]};u.value[B].forEach(k=>{const P=Ot(k,E);$.children.push(P),k[a.value]&&!C[P]&&(C[P]={children:[]})}),C[B]=$}}),C}),m=E=>{const D=e.rowKey.value,C={};return Pue(E,(B,$,k)=>{const P=Ot(B,D);Array.isArray($)?C[P]={children:$.map(T=>Ot(T,D)),level:k}:l.value&&(C[P]={children:[],lazy:!0,level:k})},r.value,a.value),C},v=(E=!1,D=(C=>(C=s.store)==null?void 0:C.states.defaultExpandAll.value)())=>{var C;const B=i.value,$=p.value,k=Object.keys(B),P={};if(k.length){const T=h(n),H=[],j=(W,N)=>{if(E)return t.value?D||t.value.includes(N):!!(D||(W==null?void 0:W.expanded));{const J=D||t.value&&t.value.includes(N);return!!((W==null?void 0:W.expanded)||J)}};k.forEach(W=>{const N=T[W],J={...B[W]};if(J.expanded=j(N,W),J.lazy){const{loaded:be=!1,loading:ve=!1}=N||{};J.loaded=!!be,J.loading=!!ve,H.push(W)}P[W]=J});const X=Object.keys($);l.value&&X.length&&H.length&&X.forEach(W=>{const N=T[W],J=$[W].children;if(H.includes(W)){if(P[W].children.length!==0)throw new Error(\"[ElTable]children must be an empty array.\");P[W].children=J}else{const{loaded:be=!1,loading:ve=!1}=N||{};P[W]={lazy:!0,loaded:!!be,loading:!!ve,expanded:j(N,W),children:J,level:\"\"}}})}n.value=P,(C=s.store)==null||C.updateTableScrollY()};Me(()=>t.value,()=>{v(!0)}),Me(()=>i.value,()=>{v()}),Me(()=>p.value,()=>{v()});const _=E=>{t.value=E,v()},g=(E,D)=>{s.store.assertRowKey();const C=e.rowKey.value,B=Ot(E,C),$=B&&n.value[B];if(B&&$&&\"expanded\"in $){const k=$.expanded;D=typeof D==\"undefined\"?!$.expanded:D,n.value[B].expanded=D,k!==D&&s.emit(\"expand-change\",E,D),s.store.updateTableScrollY()}},y=E=>{s.store.assertRowKey();const D=e.rowKey.value,C=Ot(E,D),B=n.value[C];l.value&&B&&\"loaded\"in B&&!B.loaded?w(E,C,B):g(E,void 0)},w=(E,D,C)=>{const{load:B}=s.props;B&&!n.value[D].loaded&&(n.value[D].loading=!0,B(E,C,$=>{if(!Array.isArray($))throw new TypeError(\"[ElTable] data must be an array\");n.value[D].loading=!1,n.value[D].loaded=!0,n.value[D].expanded=!0,$.length&&(u.value[D]=$),s.emit(\"expand-change\",E,!0)}))};return{loadData:w,loadOrToggle:y,toggleTreeExpansion:g,updateTreeExpandKeys:_,updateTreeData:v,normalize:m,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:u,lazyColumnIdentifier:a,childrenColumnName:r}}}const Vue=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable==\"string\"?e:Bue(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},sr=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,sr(n.children)):t.push(n)}),t};function Iue(){var e;const t=pt(),{size:n}=ho((e=t.proxy)==null?void 0:e.$props),o=L(null),l=L([]),u=L([]),a=L(!1),r=L([]),s=L([]),i=L([]),p=L([]),m=L([]),v=L([]),_=L([]),g=L([]),y=L(0),w=L(0),E=L(0),D=L(!1),C=L([]),B=L(!1),$=L(!1),k=L(null),P=L({}),T=L(null),H=L(null),j=L(null),X=L(null),W=L(null);Me(l,()=>t.state&&be(!1),{deep:!0});const N=()=>{if(!o.value)throw new Error(\"[ElTable] prop row-key is required\")},J=()=>{p.value=r.value.filter(M=>M.fixed===!0||M.fixed===\"left\"),m.value=r.value.filter(M=>M.fixed===\"right\"),p.value.length>0&&r.value[0]&&r.value[0].type===\"selection\"&&!r.value[0].fixed&&(r.value[0].fixed=!0,p.value.unshift(r.value[0]));const we=r.value.filter(M=>!M.fixed);s.value=[].concat(p.value).concat(we).concat(m.value);const Le=sr(we),Qe=sr(p.value),Ze=sr(m.value);y.value=Le.length,w.value=Qe.length,E.value=Ze.length,i.value=[].concat(Qe).concat(Le).concat(Ze),a.value=p.value.length>0||m.value.length>0},be=(we,Le=!1)=>{we&&J(),Le?t.state.doLayout():t.state.debouncedUpdateLayout()},ve=we=>C.value.includes(we),Ee=()=>{D.value=!1,C.value.length&&(C.value=[],t.emit(\"selection-change\",[]))},te=()=>{let we;if(o.value){we=[];const Le=Cl(C.value,o.value),Qe=Cl(l.value,o.value);for(const Ze in Le)st(Le,Ze)&&!Qe[Ze]&&we.push(Le[Ze].row)}else we=C.value.filter(Le=>!l.value.includes(Le));if(we.length){const Le=C.value.filter(Qe=>!we.includes(Qe));C.value=Le,t.emit(\"selection-change\",Le.slice())}},Z=()=>(C.value||[]).slice(),De=(we,Le=void 0,Qe=!0)=>{if(rr(C.value,we,Le)){const M=(C.value||[]).slice();Qe&&t.emit(\"select\",M,we),t.emit(\"selection-change\",M)}},Be=()=>{var we,Le;const Qe=$.value?!D.value:!(D.value||C.value.length);D.value=Qe;let Ze=!1,M=0;const S=(Le=(we=t==null?void 0:t.store)==null?void 0:we.states)==null?void 0:Le.rowKey.value;l.value.forEach((_e,G)=>{const ie=G+M;k.value?k.value.call(null,_e,ie)&&rr(C.value,_e,Qe)&&(Ze=!0):rr(C.value,_e,Qe)&&(Ze=!0),M+=ye(Ot(_e,S))}),Ze&&t.emit(\"selection-change\",C.value?C.value.slice():[]),t.emit(\"select-all\",C.value)},x=()=>{const we=Cl(C.value,o.value);l.value.forEach(Le=>{const Qe=Ot(Le,o.value),Ze=we[Qe];Ze&&(C.value[Ze.index]=Le)})},O=()=>{var we,Le,Qe;if(((we=l.value)==null?void 0:we.length)===0){D.value=!1;return}let Ze;o.value&&(Ze=Cl(C.value,o.value));const M=function(ie){return Ze?!!Ze[Ot(ie,o.value)]:C.value.includes(ie)};let S=!0,_e=0,G=0;for(let ie=0,$e=(l.value||[]).length;ie<$e;ie++){const St=(Qe=(Le=t==null?void 0:t.store)==null?void 0:Le.states)==null?void 0:Qe.rowKey.value,Xt=ie+G,Ce=l.value[ie],Jt=k.value&&k.value.call(null,Ce,Xt);if(M(Ce))_e++;else if(!k.value||Jt){S=!1;break}G+=ye(Ot(Ce,St))}_e===0&&(S=!1),D.value=S},ye=we=>{var Le;if(!t||!t.store)return 0;const{treeData:Qe}=t.store.states;let Ze=0;const M=(Le=Qe.value[we])==null?void 0:Le.children;return M&&(Ze+=M.length,M.forEach(S=>{Ze+=ye(S)})),Ze},xe=(we,Le)=>{Array.isArray(we)||(we=[we]);const Qe={};return we.forEach(Ze=>{P.value[Ze.id]=Le,Qe[Ze.columnKey||Ze.id]=Le}),Qe},Pe=(we,Le,Qe)=>{H.value&&H.value!==we&&(H.value.order=null),H.value=we,j.value=Le,X.value=Qe},he=()=>{let we=h(u);Object.keys(P.value).forEach(Le=>{const Qe=P.value[Le];if(!Qe||Qe.length===0)return;const Ze=m6({columns:i.value},Le);Ze&&Ze.filterMethod&&(we=we.filter(M=>Qe.some(S=>Ze.filterMethod.call(null,S,M,Ze))))}),T.value=we},Te=()=>{l.value=Vue(T.value,{sortingColumn:H.value,sortProp:j.value,sortOrder:X.value})},je=(we=void 0)=>{we&&we.filter||he(),Te()},de=we=>{const{tableHeaderRef:Le}=t.refs;if(!Le)return;const Qe=Object.assign({},Le.filterPanels),Ze=Object.keys(Qe);if(!!Ze.length)if(typeof we==\"string\"&&(we=[we]),Array.isArray(we)){const M=we.map(S=>xue({columns:i.value},S));Ze.forEach(S=>{const _e=M.find(G=>G.id===S);_e&&(_e.filteredValue=[])}),t.store.commit(\"filterChange\",{column:M,values:[],silent:!0,multi:!0})}else Ze.forEach(M=>{const S=i.value.find(_e=>_e.id===M);S&&(S.filteredValue=[])}),P.value={},t.store.commit(\"filterChange\",{column:{},values:[],silent:!0})},se=()=>{!H.value||(Pe(null,null,null),t.store.commit(\"changeSortCondition\",{silent:!0}))},{setExpandRowKeys:z,toggleRowExpansion:q,updateExpandRows:R,states:I,isRowExpanded:Y}=Tue({data:l,rowKey:o}),{updateTreeExpandKeys:pe,toggleTreeExpansion:Fe,updateTreeData:ce,loadOrToggle:Ae,states:ue}=Mue({data:l,rowKey:o}),{updateCurrentRowData:me,updateCurrentRow:Ie,setCurrentRowKey:ee,states:Se}=zue({data:l,rowKey:o});return{assertRowKey:N,updateColumns:J,scheduleLayout:be,isSelected:ve,clearSelection:Ee,cleanSelection:te,getSelectionRows:Z,toggleRowSelection:De,_toggleAllSelection:Be,toggleAllSelection:null,updateSelectionByRowKey:x,updateAllSelected:O,updateFilters:xe,updateCurrentRow:Ie,updateSort:Pe,execFilter:he,execSort:Te,execQuery:je,clearFilter:de,clearSort:se,toggleRowExpansion:q,setExpandRowKeysAdapter:we=>{z(we),pe(we)},setCurrentRowKey:ee,toggleRowExpansionAdapter:(we,Le)=>{i.value.some(({type:Ze})=>Ze===\"expand\")?q(we,Le):Fe(we,Le)},isRowExpanded:Y,updateExpandRows:R,updateCurrentRowData:me,loadOrToggle:Ae,updateTreeData:ce,states:{tableSize:n,rowKey:o,data:l,_data:u,isComplex:a,_columns:r,originColumns:s,columns:i,fixedColumns:p,rightFixedColumns:m,leafColumns:v,fixedLeafColumns:_,rightFixedLeafColumns:g,leafColumnsLength:y,fixedLeafColumnsLength:w,rightFixedLeafColumnsLength:E,isAllSelected:D,selection:C,reserveSelection:B,selectOnIndeterminate:$,selectable:k,filters:P,filteredData:T,sortingColumn:H,sortProp:j,sortOrder:X,hoverRow:W,...I,...ue,...Se}}}function wi(e,t){return e.map(n=>{var o;return n.id===t.id?t:((o=n.children)!=null&&o.length&&(n.children=wi(n.children,t)),n)})}function y6(e){e.forEach(t=>{var n,o;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(o=t.children)!=null&&o.length&&y6(t.children)}),e.sort((t,n)=>t.no-n.no)}function Hue(){const e=pt(),t=Iue();return{ns:Ve(\"table\"),...t,mutations:{setData(a,r){const s=h(a._data)!==r;a.data.value=r,a._data.value=r,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),h(a.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):s?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(a,r,s){const i=h(a._columns);let p=[];s?(s&&!s.children&&(s.children=[]),s.children.push(r),p=wi(i,s)):(i.push(r),p=i),y6(p),a._columns.value=p,r.type===\"selection\"&&(a.selectable.value=r.selectable,a.reserveSelection.value=r.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(a,r,s){const i=h(a._columns)||[];if(s)s.children.splice(s.children.findIndex(p=>p.id===r.id),1),s.children.length===0&&delete s.children,a._columns.value=wi(i,s);else{const p=i.indexOf(r);p>-1&&(i.splice(p,1),a._columns.value=i)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(a,r){const{prop:s,order:i,init:p}=r;if(s){const m=h(a.columns).find(v=>v.property===s);m&&(m.order=i,e.store.updateSort(m,s,i),e.store.commit(\"changeSortCondition\",{init:p}))}},changeSortCondition(a,r){const{sortingColumn:s,sortProp:i,sortOrder:p}=a,m=h(s),v=h(i),_=h(p);_===null&&(a.sortingColumn.value=null,a.sortProp.value=null);const g={filter:!0};e.store.execQuery(g),(!r||!(r.silent||r.init))&&e.emit(\"sort-change\",{column:m,prop:v,order:_}),e.store.updateTableScrollY()},filterChange(a,r){const{column:s,values:i,silent:p}=r,m=e.store.updateFilters(s,i);e.store.execQuery(),p||e.emit(\"filter-change\",m),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(a,r){e.store.toggleRowSelection(r),e.store.updateAllSelected()},setHoverRow(a,r){a.hoverRow.value=r},setCurrentRow(a,r){e.store.updateCurrentRow(r)}},commit:function(a,...r){const s=e.store.mutations;if(s[a])s[a].apply(e,[e.store.states].concat(r));else throw new Error(`Action not found: ${a}`)},updateTableScrollY:function(){at(()=>e.layout.updateScrollY.apply(e.layout))}}}const qu={rowKey:\"rowKey\",defaultExpandAll:\"defaultExpandAll\",selectOnIndeterminate:\"selectOnIndeterminate\",indent:\"indent\",lazy:\"lazy\",data:\"data\",[\"treeProps.hasChildren\"]:{key:\"lazyColumnIdentifier\",default:\"hasChildren\"},[\"treeProps.children\"]:{key:\"childrenColumnName\",default:\"children\"}};function Rue(e,t){if(!e)throw new Error(\"Table is required.\");const n=Hue();return n.toggleAllSelection=lu(n._toggleAllSelection,10),Object.keys(qu).forEach(o=>{w6(C6(t,o),o,n)}),Nue(n,t),n}function Nue(e,t){Object.keys(qu).forEach(n=>{Me(()=>C6(t,n),o=>{w6(o,n,e)})})}function w6(e,t,n){let o=e,l=qu[t];typeof qu[t]==\"object\"&&(l=l.key,o=o||qu[t].default),n.states[l].value=o}function C6(e,t){if(t.includes(\".\")){const n=t.split(\".\");let o=e;return n.forEach(l=>{o=o[l]}),o}else return e[t]}class Oue{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=L(null),this.scrollX=L(!1),this.scrollY=L(!1),this.bodyWidth=L(null),this.fixedWidth=L(null),this.rightFixedWidth=L(null),this.gutterWidth=0;for(const n in t)st(t,n)&&(yt(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error(\"Table is required for Table Layout\");if(!this.store)throw new Error(\"Store is required for Table Layout\")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&n){let o=!0;const l=this.scrollY.value;return o=n.wrap$.scrollHeight>n.wrap$.clientHeight,this.scrollY.value=o,l!==o}return!1}setHeight(t,n=\"height\"){if(!_t)return;const o=this.table.vnode.el;if(t=Sue(t),this.height.value=Number(t),!o&&(t||t===0))return at(()=>this.setHeight(t,n));typeof t==\"number\"?(o.style[n]=`${t}px`,this.updateElsHeight()):typeof t==\"string\"&&(o.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,\"max-height\")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(o=>{o.isColumnGroup?t.push.apply(t,o.columns):t.push(o)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers(\"scrollable\")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!==\"DIV\";){if(getComputedStyle(n).display===\"none\")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!_t)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let o=0;const l=this.getFlattenColumns(),u=l.filter(s=>typeof s.width!=\"number\");if(l.forEach(s=>{typeof s.width==\"number\"&&s.realWidth&&(s.realWidth=null)}),u.length>0&&t){if(l.forEach(s=>{o+=Number(s.width||s.minWidth||80)}),o<=n){this.scrollX.value=!1;const s=n-o;if(u.length===1)u[0].realWidth=Number(u[0].minWidth||80)+s;else{const i=u.reduce((v,_)=>v+Number(_.minWidth||80),0),p=s/i;let m=0;u.forEach((v,_)=>{if(_===0)return;const g=Math.floor(Number(v.minWidth||80)*p);m+=g,v.realWidth=Number(v.minWidth||80)+g}),u[0].realWidth=Number(u[0].minWidth||80)+s-m}}else this.scrollX.value=!0,u.forEach(s=>{s.realWidth=Number(s.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(s=>{!s.width&&!s.minWidth?s.realWidth=80:s.realWidth=Number(s.width||s.minWidth),o+=s.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const a=this.store.states.fixedColumns.value;if(a.length>0){let s=0;a.forEach(i=>{s+=Number(i.realWidth||i.width)}),this.fixedWidth.value=s}const r=this.store.states.rightFixedColumns.value;if(r.length>0){let s=0;r.forEach(i=>{s+=Number(i.realWidth||i.width)}),this.rightFixedWidth.value=s}this.notifyObservers(\"columns\")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(o=>{var l,u;switch(t){case\"columns\":(l=o.state)==null||l.onColumnsChange(this);break;case\"scrollable\":(u=o.state)==null||u.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:Uue}=Po,Wue=le({name:\"ElTableFilterPanel\",components:{ElCheckbox:Po,ElCheckboxGroup:Uue,ElScrollbar:Yt,ElTooltip:pn,ElIcon:rt,ArrowDown:pa,ArrowUp:pc},directives:{ClickOutside:P4},props:{placement:{type:String,default:\"bottom-start\"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=pt(),{t:n}=Dn(),o=Ve(\"table-filter\"),l=t==null?void 0:t.parent;l.filterPanels.value[e.column.id]||(l.filterPanels.value[e.column.id]=t);const u=L(!1),a=L(null),r=U(()=>e.column&&e.column.filters),s=U({get:()=>{var B;return(((B=e.column)==null?void 0:B.filteredValue)||[])[0]},set:B=>{i.value&&(typeof B!=\"undefined\"&&B!==null?i.value.splice(0,1,B):i.value.splice(0,1))}}),i=U({get(){return e.column?e.column.filteredValue||[]:[]},set(B){e.column&&e.upDataColumn(\"filteredValue\",B)}}),p=U(()=>e.column?e.column.filterMultiple:!0),m=B=>B.value===s.value,v=()=>{u.value=!1},_=B=>{B.stopPropagation(),u.value=!u.value},g=()=>{u.value=!1},y=()=>{D(i.value),v()},w=()=>{i.value=[],D(i.value),v()},E=B=>{s.value=B,D(typeof B!=\"undefined\"&&B!==null?i.value:[]),v()},D=B=>{e.store.commit(\"filterChange\",{column:e.column,values:B}),e.store.updateAllSelected()};Me(u,B=>{e.column&&e.upDataColumn(\"filterOpened\",B)},{immediate:!0});const C=U(()=>{var B,$;return($=(B=a.value)==null?void 0:B.popperRef)==null?void 0:$.contentRef});return{tooltipVisible:u,multiple:p,filteredValue:i,filterValue:s,filters:r,handleConfirm:y,handleReset:w,handleSelect:E,isActive:m,t:n,ns:o,showFilterPanel:_,hideFilterPanel:g,popperPaneRef:C,tooltip:a}}}),que={key:0},jue=[\"disabled\"],Kue=[\"label\",\"onClick\"];function Gue(e,t,n,o,l,u){const a=lt(\"el-checkbox\"),r=lt(\"el-checkbox-group\"),s=lt(\"el-scrollbar\"),i=lt(\"arrow-up\"),p=lt(\"arrow-down\"),m=lt(\"el-icon\"),v=lt(\"el-tooltip\"),_=ji(\"click-outside\");return b(),ae(v,{ref:\"tooltip\",visible:e.tooltipVisible,offset:0,placement:e.placement,\"show-arrow\":!1,\"stop-popper-mouse-event\":!1,teleported:\"\",effect:\"light\",pure:\"\",\"popper-class\":e.ns.b(),persistent:\"\"},{content:d(()=>[e.multiple?(b(),F(\"div\",que,[f(\"div\",{class:K(e.ns.e(\"content\"))},[c(s,{\"wrap-class\":e.ns.e(\"wrap\")},{default:d(()=>[c(r,{modelValue:e.filteredValue,\"onUpdate:modelValue\":t[0]||(t[0]=g=>e.filteredValue=g),class:K(e.ns.e(\"checkbox-group\"))},{default:d(()=>[(b(!0),F(Oe,null,it(e.filters,g=>(b(),ae(a,{key:g.value,label:g.value},{default:d(()=>[A(re(g.text),1)]),_:2},1032,[\"label\"]))),128))]),_:1},8,[\"modelValue\",\"class\"])]),_:1},8,[\"wrap-class\"])],2),f(\"div\",{class:K(e.ns.e(\"bottom\"))},[f(\"button\",{class:K({[e.ns.is(\"disabled\")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:\"button\",onClick:t[1]||(t[1]=(...g)=>e.handleConfirm&&e.handleConfirm(...g))},re(e.t(\"el.table.confirmFilter\")),11,jue),f(\"button\",{type:\"button\",onClick:t[2]||(t[2]=(...g)=>e.handleReset&&e.handleReset(...g))},re(e.t(\"el.table.resetFilter\")),1)],2)])):(b(),F(\"ul\",{key:1,class:K(e.ns.e(\"list\"))},[f(\"li\",{class:K([e.ns.e(\"list-item\"),{[e.ns.is(\"active\")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=g=>e.handleSelect(null))},re(e.t(\"el.table.clearFilter\")),3),(b(!0),F(Oe,null,it(e.filters,g=>(b(),F(\"li\",{key:g.value,class:K([e.ns.e(\"list-item\"),e.ns.is(\"active\",e.isActive(g))]),label:g.value,onClick:y=>e.handleSelect(g.value)},re(g.text),11,Kue))),128))],2))]),default:d(()=>[fe((b(),F(\"span\",{class:K([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...g)=>e.showFilterPanel&&e.showFilterPanel(...g))},[c(m,null,{default:d(()=>[e.column.filterOpened?(b(),ae(i,{key:0})):(b(),ae(p,{key:1}))]),_:1})],2)),[[_,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,[\"visible\",\"placement\",\"popper-class\"])}var Yue=We(Wue,[[\"render\",Gue],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue\"]]);function E6(e){const t=pt();Hr(()=>{n.value.addObserver(t)}),ot(()=>{o(n.value),l(n.value)}),Ll(()=>{o(n.value),l(n.value)}),In(()=>{n.value.removeObserver(t)});const n=U(()=>{const u=e.layout;if(!u)throw new Error(\"Can not find table layout.\");return u}),o=u=>{var a;const r=((a=e.vnode.el)==null?void 0:a.querySelectorAll(\"colgroup > col\"))||[];if(!r.length)return;const s=u.getFlattenColumns(),i={};s.forEach(p=>{i[p.id]=p});for(let p=0,m=r.length;p<m;p++){const v=r[p],_=v.getAttribute(\"name\"),g=i[_];g&&v.setAttribute(\"width\",g.realWidth||g.width)}},l=u=>{var a,r;const s=((a=e.vnode.el)==null?void 0:a.querySelectorAll(\"colgroup > col[name=gutter]\"))||[];for(let p=0,m=s.length;p<m;p++)s[p].setAttribute(\"width\",u.scrollY.value?u.gutterWidth:\"0\");const i=((r=e.vnode.el)==null?void 0:r.querySelectorAll(\"th.gutter\"))||[];for(let p=0,m=i.length;p<m;p++){const v=i[p];v.style.width=u.scrollY.value?`${u.gutterWidth}px`:\"0\",v.style.display=u.scrollY.value?\"\":\"none\"}};return{tableLayout:n.value,onColumnsChange:o,onScrollableChange:l}}const _o=Symbol(\"ElTable\");function Xue(e,t){const n=pt(),o=Xe(_o),l=y=>{y.stopPropagation()},u=(y,w)=>{!w.filters&&w.sortable?g(y,w,!1):w.filterable&&!w.sortable&&l(y),o==null||o.emit(\"header-click\",w,y)},a=(y,w)=>{o==null||o.emit(\"header-contextmenu\",w,y)},r=L(null),s=L(!1),i=L({}),p=(y,w)=>{if(!!_t&&!(w.children&&w.children.length>0)&&r.value&&e.border){s.value=!0;const E=o;t(\"set-drag-visible\",!0);const C=(E==null?void 0:E.vnode.el).getBoundingClientRect().left,B=n.vnode.el.querySelector(`th.${w.id}`),$=B.getBoundingClientRect(),k=$.left-C+30;Fo(B,\"noclick\"),i.value={startMouseLeft:y.clientX,startLeft:$.right-C,startColumnLeft:$.left-C,tableLeft:C};const P=E==null?void 0:E.refs.resizeProxy;P.style.left=`${i.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const T=j=>{const X=j.clientX-i.value.startMouseLeft,W=i.value.startLeft+X;P.style.left=`${Math.max(k,W)}px`},H=()=>{if(s.value){const{startColumnLeft:j,startLeft:X}=i.value,N=Number.parseInt(P.style.left,10)-j;w.width=w.realWidth=N,E==null||E.emit(\"header-dragend\",w.width,X-j,w,y),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor=\"\",s.value=!1,r.value=null,i.value={},t(\"set-drag-visible\",!1)}document.removeEventListener(\"mousemove\",T),document.removeEventListener(\"mouseup\",H),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{Gn(B,\"noclick\")},0)};document.addEventListener(\"mousemove\",T),document.addEventListener(\"mouseup\",H)}},m=(y,w)=>{var E;if(w.children&&w.children.length>0)return;const D=(E=y.target)==null?void 0:E.closest(\"th\");if(!(!w||!w.resizable)&&!s.value&&e.border){const C=D.getBoundingClientRect(),B=document.body.style;C.width>12&&C.right-y.pageX<8?(B.cursor=\"col-resize\",Al(D,\"is-sortable\")&&(D.style.cursor=\"col-resize\"),r.value=w):s.value||(B.cursor=\"\",Al(D,\"is-sortable\")&&(D.style.cursor=\"pointer\"),r.value=null)}},v=()=>{!_t||(document.body.style.cursor=\"\")},_=({order:y,sortOrders:w})=>{if(y===\"\")return w[0];const E=w.indexOf(y||null);return w[E>w.length-2?0:E+1]},g=(y,w,E)=>{var D;y.stopPropagation();const C=w.order===E?null:E||_(w),B=(D=y.target)==null?void 0:D.closest(\"th\");if(B&&Al(B,\"noclick\")){Gn(B,\"noclick\");return}if(!w.sortable)return;const $=e.store.states;let k=$.sortProp.value,P;const T=$.sortingColumn.value;(T!==w||T===w&&T.order===null)&&(T&&(T.order=null),$.sortingColumn.value=w,k=w.property),C?P=w.order=C:P=w.order=null,$.sortProp.value=k,$.sortOrder.value=P,o==null||o.store.commit(\"changeSortCondition\")};return{handleHeaderClick:u,handleHeaderContextMenu:a,handleMouseDown:p,handleMouseMove:m,handleMouseOut:v,handleSortClick:g,handleFilterClick:l}}function Jue(e){const t=Xe(_o),n=Ve(\"table\");return{getHeaderRowStyle:r=>{const s=t==null?void 0:t.props.headerRowStyle;return typeof s==\"function\"?s.call(null,{rowIndex:r}):s},getHeaderRowClass:r=>{const s=[],i=t==null?void 0:t.props.headerRowClassName;return typeof i==\"string\"?s.push(i):typeof i==\"function\"&&s.push(i.call(null,{rowIndex:r})),s.join(\" \")},getHeaderCellStyle:(r,s,i,p)=>{var m;let v=(m=t==null?void 0:t.props.headerCellStyle)!=null?m:{};typeof v==\"function\"&&(v=v.call(null,{rowIndex:r,columnIndex:s,row:i,column:p}));const _=p.isSubColumn?null:Wc(s,p.fixed,e.store,i);return fu(_,\"left\"),fu(_,\"right\"),Object.assign({},v,_)},getHeaderCellClass:(r,s,i,p)=>{const m=p.isSubColumn?[]:Uc(n.b(),s,p.fixed,e.store,i),v=[p.id,p.order,p.headerAlign,p.className,p.labelClassName,...m];p.children||v.push(\"is-leaf\"),p.sortable&&v.push(\"is-sortable\");const _=t==null?void 0:t.props.headerCellClassName;return typeof _==\"string\"?v.push(_):typeof _==\"function\"&&v.push(_.call(null,{rowIndex:r,columnIndex:s,row:i,column:p})),v.push(n.e(\"cell\")),v.filter(g=>Boolean(g)).join(\" \")}}}const F6=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,F6(n.children))):t.push(n)}),t},Que=e=>{let t=1;const n=(u,a)=>{if(a&&(u.level=a.level+1,t<u.level&&(t=u.level)),u.children){let r=0;u.children.forEach(s=>{n(s,u),r+=s.colSpan}),u.colSpan=r}else u.colSpan=1};e.forEach(u=>{u.level=1,n(u,void 0)});const o=[];for(let u=0;u<t;u++)o.push([]);return F6(e).forEach(u=>{u.children?(u.rowSpan=1,u.children.forEach(a=>a.isSubColumn=!0)):u.rowSpan=t-u.level+1,o[u.level-1].push(u)}),o};function Zue(e){const t=Xe(_o),n=U(()=>Que(e.store.states.originColumns.value));return{isGroup:U(()=>{const u=n.value.length>1;return u&&t&&(t.state.isGroup.value=!0),u}),toggleAllSelection:u=>{u.stopPropagation(),t==null||t.store.commit(\"toggleAllSelection\")},columnRows:n}}var eae=le({name:\"ElTableHeader\",components:{ElCheckbox:Po},props:{fixed:{type:String,default:\"\"},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:\"\",order:\"\"})}},setup(e,{emit:t}){const n=pt(),o=Xe(_o),l=Ve(\"table\"),u=L({}),{onColumnsChange:a,onScrollableChange:r}=E6(o);ot(async()=>{await at(),await at();const{prop:k,order:P}=e.defaultSort;o==null||o.store.commit(\"sort\",{prop:k,order:P,init:!0})});const{handleHeaderClick:s,handleHeaderContextMenu:i,handleMouseDown:p,handleMouseMove:m,handleMouseOut:v,handleSortClick:_,handleFilterClick:g}=Xue(e,t),{getHeaderRowStyle:y,getHeaderRowClass:w,getHeaderCellStyle:E,getHeaderCellClass:D}=Jue(e),{isGroup:C,toggleAllSelection:B,columnRows:$}=Zue(e);return n.state={onColumnsChange:a,onScrollableChange:r},n.filterPanels=u,{ns:l,filterPanels:u,onColumnsChange:a,onScrollableChange:r,columnRows:$,getHeaderRowClass:w,getHeaderRowStyle:y,getHeaderCellClass:D,getHeaderCellStyle:E,handleHeaderClick:s,handleHeaderContextMenu:i,handleMouseDown:p,handleMouseMove:m,handleMouseOut:v,handleSortClick:_,handleFilterClick:g,isGroup:C,toggleAllSelection:B}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:o,getHeaderCellClass:l,getHeaderRowClass:u,getHeaderRowStyle:a,handleHeaderClick:r,handleHeaderContextMenu:s,handleMouseDown:i,handleMouseMove:p,handleSortClick:m,handleMouseOut:v,store:_,$parent:g}=this;let y=1;return Re(\"thead\",{class:{[e.is(\"group\")]:t}},n.map((w,E)=>Re(\"tr\",{class:u(E),key:E,style:a(E)},w.map((D,C)=>(D.rowSpan>y&&(y=D.rowSpan),Re(\"th\",{class:l(E,C,w,D),colspan:D.colSpan,key:`${D.id}-thead`,rowspan:D.rowSpan,style:o(E,C,w,D),onClick:B=>r(B,D),onContextmenu:B=>s(B,D),onMousedown:B=>i(B,D),onMousemove:B=>p(B,D),onMouseout:v},[Re(\"div\",{class:[\"cell\",D.filteredValue&&D.filteredValue.length>0?\"highlight\":\"\"]},[D.renderHeader?D.renderHeader({column:D,$index:C,store:_,_self:g}):D.label,D.sortable&&Re(\"span\",{onClick:B=>m(B,D),class:\"caret-wrapper\"},[Re(\"i\",{onClick:B=>m(B,D,\"ascending\"),class:\"sort-caret ascending\"}),Re(\"i\",{onClick:B=>m(B,D,\"descending\"),class:\"sort-caret descending\"})]),D.filterable&&Re(Yue,{store:_,placement:D.filterPlacement||\"bottom-start\",column:D,upDataColumn:(B,$)=>{D[B]=$}})])]))))))}});function tae(e){const t=Xe(_o),n=L(\"\"),o=L(Re(\"div\")),l=(v,_,g)=>{var y;const w=t,E=xs(v);let D;const C=(y=w==null?void 0:w.vnode.el)==null?void 0:y.dataset.prefix;E&&(D=bd({columns:e.store.states.columns.value},E,C),D&&(w==null||w.emit(`cell-${g}`,_,D,E,v))),w==null||w.emit(`row-${g}`,_,D,v)},u=(v,_)=>{l(v,_,\"dblclick\")},a=(v,_)=>{e.store.commit(\"setCurrentRow\",_),l(v,_,\"click\")},r=(v,_)=>{l(v,_,\"contextmenu\")},s=lu(v=>{e.store.commit(\"setHoverRow\",v)},30),i=lu(()=>{e.store.commit(\"setHoverRow\",null)},30);return{handleDoubleClick:u,handleClick:a,handleContextMenu:r,handleMouseEnter:s,handleMouseLeave:i,handleCellMouseEnter:(v,_,g)=>{var y;const w=t,E=xs(v),D=(y=w==null?void 0:w.vnode.el)==null?void 0:y.dataset.prefix;if(E){const P=bd({columns:e.store.states.columns.value},E,D),T=w.hoverState={cell:E,column:P,row:_};w==null||w.emit(\"cell-mouse-enter\",T.row,T.column,T.cell,v)}const C=v.target.querySelector(\".cell\");if(!(Al(C,`${D}-tooltip`)&&C.childNodes.length))return;const B=document.createRange();B.setStart(C,0),B.setEnd(C,C.childNodes.length);const $=B.getBoundingClientRect().width,k=(Number.parseInt(Eo(C,\"paddingLeft\"),10)||0)+(Number.parseInt(Eo(C,\"paddingRight\"),10)||0);($+k>C.offsetWidth||C.scrollWidth>C.offsetWidth)&&Lue(t==null?void 0:t.refs.tableWrapper,E,E.innerText||E.textContent,{placement:\"top\",strategy:\"fixed\"},g)},handleCellMouseLeave:v=>{if(!xs(v))return;const g=t==null?void 0:t.hoverState;t==null||t.emit(\"cell-mouse-leave\",g==null?void 0:g.row,g==null?void 0:g.column,g==null?void 0:g.cell,v)},tooltipContent:n,tooltipTrigger:o}}function nae(e){const t=Xe(_o),n=Ve(\"table\");return{getRowStyle:(i,p)=>{const m=t==null?void 0:t.props.rowStyle;return typeof m==\"function\"?m.call(null,{row:i,rowIndex:p}):m||null},getRowClass:(i,p)=>{const m=[n.e(\"row\")];(t==null?void 0:t.props.highlightCurrentRow)&&i===e.store.states.currentRow.value&&m.push(\"current-row\"),e.stripe&&p%2===1&&m.push(n.em(\"row\",\"striped\"));const v=t==null?void 0:t.props.rowClassName;return typeof v==\"string\"?m.push(v):typeof v==\"function\"&&m.push(v.call(null,{row:i,rowIndex:p})),m},getCellStyle:(i,p,m,v)=>{const _=t==null?void 0:t.props.cellStyle;let g=_!=null?_:{};typeof _==\"function\"&&(g=_.call(null,{rowIndex:i,columnIndex:p,row:m,column:v}));const y=v.isSubColumn?null:Wc(p,e==null?void 0:e.fixed,e.store);return fu(y,\"left\"),fu(y,\"right\"),Object.assign({},g,y)},getCellClass:(i,p,m,v)=>{const _=v.isSubColumn?[]:Uc(n.b(),p,e==null?void 0:e.fixed,e.store),g=[v.id,v.align,v.className,..._],y=t==null?void 0:t.props.cellClassName;return typeof y==\"string\"?g.push(y):typeof y==\"function\"&&g.push(y.call(null,{rowIndex:i,columnIndex:p,row:m,column:v})),g.push(n.e(\"cell\")),g.filter(w=>Boolean(w)).join(\" \")},getSpan:(i,p,m,v)=>{let _=1,g=1;const y=t==null?void 0:t.props.spanMethod;if(typeof y==\"function\"){const w=y({row:i,column:p,rowIndex:m,columnIndex:v});Array.isArray(w)?(_=w[0],g=w[1]):typeof w==\"object\"&&(_=w.rowspan,g=w.colspan)}return{rowspan:_,colspan:g}},getColspanRealWidth:(i,p,m)=>{if(p<1)return i[m].realWidth;const v=i.map(({realWidth:_,width:g})=>_||g).slice(m,m+p);return Number(v.reduce((_,g)=>Number(_)+Number(g),-1))}}}function oae(e){const t=Xe(_o),n=Ve(\"table\"),{handleDoubleClick:o,handleClick:l,handleContextMenu:u,handleMouseEnter:a,handleMouseLeave:r,handleCellMouseEnter:s,handleCellMouseLeave:i,tooltipContent:p,tooltipTrigger:m}=tae(e),{getRowStyle:v,getRowClass:_,getCellStyle:g,getCellClass:y,getSpan:w,getColspanRealWidth:E}=nae(e),D=U(()=>e.store.states.columns.value.findIndex(({type:P})=>P===\"default\")),C=(P,T)=>{const H=t.props.rowKey;return H?Ot(P,H):T},B=(P,T,H,j=!1)=>{const{tooltipEffect:X,store:W}=e,{indent:N,columns:J}=W.states,be=_(P,T);let ve=!0;return H&&(be.push(n.em(\"row\",`level-${H.level}`)),ve=H.display),Re(\"tr\",{style:[ve?null:{display:\"none\"},v(P,T)],class:be,key:C(P,T),onDblclick:te=>o(te,P),onClick:te=>l(te,P),onContextmenu:te=>u(te,P),onMouseenter:()=>a(T),onMouseleave:r},J.value.map((te,Z)=>{const{rowspan:De,colspan:Be}=w(P,te,T,Z);if(!De||!Be)return null;const x={...te};x.realWidth=E(J.value,Be,Z);const O={store:e.store,_self:e.context||t,column:x,row:P,$index:T,cellIndex:Z,expanded:j};Z===D.value&&H&&(O.treeNode={indent:H.level*N.value,level:H.level},typeof H.expanded==\"boolean\"&&(O.treeNode.expanded=H.expanded,\"loading\"in H&&(O.treeNode.loading=H.loading),\"noLazyChildren\"in H&&(O.treeNode.noLazyChildren=H.noLazyChildren)));const ye=`${T},${Z}`,xe=x.columnKey||x.rawColumnKey||\"\",Pe=$(Z,te,O);return Re(\"td\",{style:g(T,Z,P,te),class:y(T,Z,P,te),key:`${xe}${ye}`,rowspan:De,colspan:Be,onMouseenter:he=>s(he,P,X),onMouseleave:i},[Pe])}))},$=(P,T,H)=>T.renderCell(H);return{wrappedRowRender:(P,T)=>{const H=e.store,{isRowExpanded:j,assertRowKey:X}=H,{treeData:W,lazyTreeNodeMap:N,childrenColumnName:J,rowKey:be}=H.states,ve=H.states.columns.value;if(ve.some(({type:te})=>te===\"expand\")){const te=j(P),Z=B(P,T,void 0,te),De=t.renderExpanded;return te?De?[[Z,Re(\"tr\",{key:`expanded-row__${Z.key}`},[Re(\"td\",{colspan:ve.length,class:`${n.e(\"cell\")} ${n.e(\"expanded-cell\")}`},[De({row:P,$index:T,store:H,expanded:te})])])]]:(console.error(\"[Element Error]renderExpanded is required.\"),Z):[[Z]]}else if(Object.keys(W.value).length){X();const te=Ot(P,be.value);let Z=W.value[te],De=null;Z&&(De={expanded:Z.expanded,level:Z.level,display:!0},typeof Z.lazy==\"boolean\"&&(typeof Z.loaded==\"boolean\"&&Z.loaded&&(De.noLazyChildren=!(Z.children&&Z.children.length)),De.loading=Z.loading));const Be=[B(P,T,De)];if(Z){let x=0;const O=(xe,Pe)=>{!(xe&&xe.length&&Pe)||xe.forEach(he=>{const Te={display:Pe.display&&Pe.expanded,level:Pe.level+1,expanded:!1,noLazyChildren:!1,loading:!1},je=Ot(he,be.value);if(je==null)throw new Error(\"For nested data item, row-key is required.\");if(Z={...W.value[je]},Z&&(Te.expanded=Z.expanded,Z.level=Z.level||Te.level,Z.display=!!(Z.expanded&&Te.display),typeof Z.lazy==\"boolean\"&&(typeof Z.loaded==\"boolean\"&&Z.loaded&&(Te.noLazyChildren=!(Z.children&&Z.children.length)),Te.loading=Z.loading)),x++,Be.push(B(he,T+x,Te)),Z){const de=N.value[je]||he[J.value];O(de,Z)}})};Z.display=!0;const ye=N.value[te]||P[J.value];O(ye,Z)}return Be}else return B(P,T,void 0)},tooltipContent:p,tooltipTrigger:m}}const lae={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:\"\"},highlight:Boolean};var uae=le({name:\"ElTableBody\",props:lae,setup(e){const t=pt(),n=Xe(_o),o=Ve(\"table\"),{wrappedRowRender:l,tooltipContent:u,tooltipTrigger:a}=oae(e),{onColumnsChange:r,onScrollableChange:s}=E6(n);return Me(e.store.states.hoverRow,(i,p)=>{if(!e.store.states.isComplex.value||!_t)return;let m=window.requestAnimationFrame;m||(m=v=>window.setTimeout(v,16)),m(()=>{const v=t==null?void 0:t.vnode.el,_=Array.from((v==null?void 0:v.children)||[]).filter(w=>w==null?void 0:w.classList.contains(`${o.e(\"row\")}`)),g=_[p],y=_[i];g&&Gn(g,\"hover-row\"),y&&Fo(y,\"hover-row\")})}),In(()=>{var i;(i=yo)==null||i()}),{ns:o,onColumnsChange:r,onScrollableChange:s,wrappedRowRender:l,tooltipContent:u,tooltipTrigger:a}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return Re(\"tbody\",{},[n.reduce((o,l)=>o.concat(e(l,o.length)),[])])}});function qc(e){const t=e.tableLayout===\"auto\";let n=e.columns||[];t&&n.every(l=>l.width===void 0)&&(n=[]);const o=l=>{const u={key:`${e.tableLayout}_${l.id}`,style:{},name:void 0};return t?u.style={width:`${l.width}px`}:u.name=l.id,u};return Re(\"colgroup\",{},n.map(l=>Re(\"col\",o(l))))}qc.props=[\"columns\",\"tableLayout\"];function aae(){const e=Xe(_o),t=e==null?void 0:e.store,n=U(()=>t.states.fixedLeafColumnsLength.value),o=U(()=>t.states.rightFixedColumns.value.length),l=U(()=>t.states.columns.value.length),u=U(()=>t.states.fixedColumns.value.length),a=U(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:o,columnsCount:l,leftFixedCount:u,rightFixedCount:a,columns:t.states.columns}}function rae(e){const{columns:t}=aae(),n=Ve(\"table\");return{getCellClasses:(u,a)=>{const r=u[a],s=[n.e(\"cell\"),r.id,r.align,r.labelClassName,...Uc(n.b(),a,r.fixed,e.store)];return r.className&&s.push(r.className),r.children||s.push(n.is(\"leaf\")),s},getCellStyles:(u,a)=>{const r=Wc(a,u.fixed,e.store);return fu(r,\"left\"),fu(r,\"right\"),r},columns:t}}var sae=le({name:\"ElTableFooter\",props:{fixed:{type:String,default:\"\"},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:\"\",order:\"\"})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:o}=rae(e);return{ns:Ve(\"table\"),getCellClasses:t,getCellStyles:n,columns:o}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l,ns:u}=this,a=this.store.states.data.value;let r=[];return o?r=o({columns:e,data:a}):e.forEach((s,i)=>{if(i===0){r[i]=l;return}const p=a.map(g=>Number(g[s.property])),m=[];let v=!0;p.forEach(g=>{if(!Number.isNaN(+g)){v=!1;const y=`${g}`.split(\".\")[1];m.push(y?y.length:0)}});const _=Math.max.apply(null,m);v?r[i]=\"\":r[i]=p.reduce((g,y)=>{const w=Number(y);return Number.isNaN(+w)?g:Number.parseFloat((g+y).toFixed(Math.min(_,20)))},0)}),Re(\"table\",{class:u.e(\"footer\"),cellspacing:\"0\",cellpadding:\"0\",border:\"0\"},[qc({columns:e}),Re(\"tbody\",[Re(\"tr\",{},[...e.map((s,i)=>Re(\"td\",{key:i,colspan:s.colSpan,rowspan:s.rowSpan,class:n(e,i),style:t(s,i)},[Re(\"div\",{class:[\"cell\",s.labelClassName]},[r[i]])]))])])])}});function iae(e){return{setCurrentRow:p=>{e.commit(\"setCurrentRow\",p)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(p,m)=>{e.toggleRowSelection(p,m,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:p=>{e.clearFilter(p)},toggleAllSelection:()=>{e.commit(\"toggleAllSelection\")},toggleRowExpansion:(p,m)=>{e.toggleRowExpansionAdapter(p,m)},clearSort:()=>{e.clearSort()},sort:(p,m)=>{e.commit(\"sort\",{prop:p,order:m})}}}function cae(e,t,n,o){const l=L(!1),u=L(null),a=L(!1),r=te=>{a.value=te},s=L({width:null,height:null,headerHeight:null}),i=L(!1),p={display:\"inline-block\",verticalAlign:\"middle\"},m=L(),v=L(0),_=L(0),g=L(0),y=L(0);Do(()=>{t.setHeight(e.height)}),Do(()=>{t.setMaxHeight(e.maxHeight)}),Me(()=>[e.currentRowKey,n.states.rowKey],([te,Z])=>{!h(Z)||n.setCurrentRowKey(`${te}`)},{immediate:!0}),Me(()=>e.data,te=>{o.store.commit(\"setData\",te)},{immediate:!0,deep:!0}),Do(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const w=()=>{o.store.commit(\"setHoverRow\",null),o.hoverState&&(o.hoverState=null)},E=(te,Z)=>{const{pixelX:De,pixelY:Be}=Z;Math.abs(De)>=Math.abs(Be)&&(o.refs.bodyWrapper.scrollLeft+=Z.pixelX/5)},D=U(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),C=U(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:\"\"})),B=()=>{D.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(T)};ot(async()=>{await at(),n.updateColumns(),H(),requestAnimationFrame(B);const te=o.vnode.el,Z=o.refs.headerWrapper;e.flexible&&te&&te.parentElement&&(te.parentElement.style.minWidth=\"0\"),s.value={width:m.value=te.offsetWidth,height:te.offsetHeight,headerHeight:e.showHeader&&Z?Z.offsetHeight:null},n.states.columns.value.forEach(De=>{De.filteredValue&&De.filteredValue.length&&o.store.commit(\"filterChange\",{column:De,values:De.filteredValue,silent:!0})}),o.$ready=!0});const $=(te,Z)=>{if(!te)return;const De=Array.from(te.classList).filter(Be=>!Be.startsWith(\"is-scrolling-\"));De.push(t.scrollX.value?Z:\"is-scrolling-none\"),te.className=De.join(\" \")},k=te=>{const{tableWrapper:Z}=o.refs;$(Z,te)},P=te=>{const{tableWrapper:Z}=o.refs;return!!(Z&&Z.classList.contains(te))},T=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const xe=\"is-scrolling-none\";P(xe)||k(xe);return}const te=o.refs.scrollBarRef.wrap$;if(!te)return;const{scrollLeft:Z,offsetWidth:De,scrollWidth:Be}=te,{headerWrapper:x,footerWrapper:O}=o.refs;x&&(x.scrollLeft=Z),O&&(O.scrollLeft=Z);const ye=Be-De-1;Z>=ye?k(\"is-scrolling-right\"):k(Z===0?\"is-scrolling-left\":\"is-scrolling-middle\")},H=()=>{!o.refs.scrollBarRef||(o.refs.scrollBarRef.wrap$&&Gt(o.refs.scrollBarRef.wrap$,\"scroll\",T,{passive:!0}),e.fit?po(o.vnode.el,j):Gt(window,\"resize\",j),po(o.refs.bodyWrapper,()=>{var te,Z;j(),(Z=(te=o.refs)==null?void 0:te.scrollBarRef)==null||Z.update()}))},j=()=>{var te,Z,De;const Be=o.vnode.el;if(!o.$ready||!Be)return;let x=!1;const{width:O,height:ye,headerHeight:xe}=s.value,Pe=m.value=Be.offsetWidth;O!==Pe&&(x=!0);const he=Be.offsetHeight;(e.height||D.value)&&ye!==he&&(x=!0);const Te=e.tableLayout===\"fixed\"?o.refs.headerWrapper:(te=o.refs.tableHeaderRef)==null?void 0:te.$el;e.showHeader&&(Te==null?void 0:Te.offsetHeight)!==xe&&(x=!0),v.value=((Z=o.refs.tableWrapper)==null?void 0:Z.scrollHeight)||0,g.value=(Te==null?void 0:Te.scrollHeight)||0,y.value=((De=o.refs.footerWrapper)==null?void 0:De.offsetHeight)||0,_.value=v.value-g.value-y.value,x&&(s.value={width:Pe,height:he,headerHeight:e.showHeader&&(Te==null?void 0:Te.offsetHeight)||0},B())},X=dn(),W=U(()=>{const{bodyWidth:te,scrollY:Z,gutterWidth:De}=t;return te.value?`${te.value-(Z.value?De:0)}px`:\"\"}),N=U(()=>e.maxHeight?\"fixed\":e.tableLayout),J=U(()=>{if(e.data&&e.data.length)return null;let te=\"100%\";e.height&&_.value&&(te=`${_.value}px`);const Z=m.value;return{width:Z?`${Z}px`:\"\",height:te}}),be=U(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),ve=U(()=>{if(e.height)return{height:\"100%\"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${g.value+y.value}px)`};{const te=e.maxHeight;if(v.value>=Number(te))return{maxHeight:`${v.value-g.value-y.value}px`}}}return{}});return{isHidden:l,renderExpanded:u,setDragVisible:r,isGroup:i,handleMouseLeave:w,handleHeaderFooterMousewheel:E,tableSize:X,emptyBlockStyle:J,handleFixedMousewheel:(te,Z)=>{const De=o.refs.bodyWrapper;if(Math.abs(Z.spinY)>0){const Be=De.scrollTop;Z.pixelY<0&&Be!==0&&te.preventDefault(),Z.pixelY>0&&De.scrollHeight-De.clientHeight>Be&&te.preventDefault(),De.scrollTop+=Math.ceil(Z.pixelY/5)}else De.scrollLeft+=Math.ceil(Z.pixelX/5)},resizeProxyVisible:a,bodyWidth:W,resizeState:s,doLayout:B,tableBodyStyles:C,tableLayout:N,scrollbarViewStyle:p,tableInnerStyle:be,scrollbarStyle:ve}}var dae={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:\"hasChildren\",children:\"children\"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:\"\"},tableLayout:{type:String,default:\"fixed\"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const fae=()=>{const e=L(),t=(u,a)=>{const r=e.value;r&&r.scrollTo(u,a)},n=(u,a)=>{const r=e.value;r&&gt(a)&&[\"Top\",\"Left\"].includes(u)&&r[`setScroll${u}`](a)};return{scrollBarRef:e,scrollTo:t,setScrollTop:u=>n(\"Top\",u),setScrollLeft:u=>n(\"Left\",u)}};let pae=1;const vae=le({name:\"ElTable\",directives:{Mousewheel:Nee},components:{TableHeader:eae,TableBody:uae,TableFooter:sae,ElScrollbar:Yt,hColgroup:qc},props:dae,emits:[\"select\",\"select-all\",\"selection-change\",\"cell-mouse-enter\",\"cell-mouse-leave\",\"cell-contextmenu\",\"cell-click\",\"cell-dblclick\",\"row-click\",\"row-contextmenu\",\"row-dblclick\",\"header-click\",\"header-contextmenu\",\"sort-change\",\"filter-change\",\"current-change\",\"header-dragend\",\"expand-change\"],setup(e){const{t}=Dn(),n=Ve(\"table\"),o=pt();Dt(_o,o);const l=Rue(o,e);o.store=l;const u=new Oue({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=u;const a=U(()=>(l.states.data.value||[]).length===0),{setCurrentRow:r,getSelectionRows:s,toggleRowSelection:i,clearSelection:p,clearFilter:m,toggleAllSelection:v,toggleRowExpansion:_,clearSort:g,sort:y}=iae(l),{isHidden:w,renderExpanded:E,setDragVisible:D,isGroup:C,handleMouseLeave:B,handleHeaderFooterMousewheel:$,tableSize:k,emptyBlockStyle:P,handleFixedMousewheel:T,resizeProxyVisible:H,bodyWidth:j,resizeState:X,doLayout:W,tableBodyStyles:N,tableLayout:J,scrollbarViewStyle:be,tableInnerStyle:ve,scrollbarStyle:Ee}=cae(e,u,l,o),{scrollBarRef:te,scrollTo:Z,setScrollLeft:De,setScrollTop:Be}=fae(),x=lu(W,50),O=`${n.namespace.value}-table_${pae++}`;o.tableId=O,o.state={isGroup:C,resizeState:X,doLayout:W,debouncedUpdateLayout:x};const ye=U(()=>e.sumText||t(\"el.table.sumText\")),xe=U(()=>e.emptyText||t(\"el.table.emptyText\"));return{ns:n,layout:u,store:l,handleHeaderFooterMousewheel:$,handleMouseLeave:B,tableId:O,tableSize:k,isHidden:w,isEmpty:a,renderExpanded:E,resizeProxyVisible:H,resizeState:X,isGroup:C,bodyWidth:j,tableBodyStyles:N,emptyBlockStyle:P,debouncedUpdateLayout:x,handleFixedMousewheel:T,setCurrentRow:r,getSelectionRows:s,toggleRowSelection:i,clearSelection:p,clearFilter:m,toggleAllSelection:v,toggleRowExpansion:_,clearSort:g,doLayout:W,sort:y,t,setDragVisible:D,context:o,computedSumText:ye,computedEmptyText:xe,tableLayout:J,scrollbarViewStyle:be,tableInnerStyle:ve,scrollbarStyle:Ee,scrollBarRef:te,scrollTo:Z,setScrollLeft:De,setScrollTop:Be}}}),hae=[\"data-prefix\"],_ae={ref:\"hiddenColumns\",class:\"hidden-columns\"};function mae(e,t,n,o,l,u){const a=lt(\"hColgroup\"),r=lt(\"table-header\"),s=lt(\"table-body\"),i=lt(\"el-scrollbar\"),p=lt(\"table-footer\"),m=ji(\"mousewheel\");return b(),F(\"div\",{ref:\"tableWrapper\",class:K([{[e.ns.m(\"fit\")]:e.fit,[e.ns.m(\"striped\")]:e.stripe,[e.ns.m(\"border\")]:e.border||e.isGroup,[e.ns.m(\"hidden\")]:e.isHidden,[e.ns.m(\"group\")]:e.isGroup,[e.ns.m(\"fluid-height\")]:e.maxHeight,[e.ns.m(\"scrollable-x\")]:e.layout.scrollX.value,[e.ns.m(\"scrollable-y\")]:e.layout.scrollY.value,[e.ns.m(\"enable-row-hover\")]:!e.store.states.isComplex.value,[e.ns.m(\"enable-row-transition\")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,\"has-footer\":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:ut(e.style),\"data-prefix\":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=v=>e.handleMouseLeave())},[f(\"div\",{class:K(e.ns.e(\"inner-wrapper\")),style:ut(e.tableInnerStyle)},[f(\"div\",_ae,[ze(e.$slots,\"default\")],512),e.showHeader&&e.tableLayout===\"fixed\"?fe((b(),F(\"div\",{key:0,ref:\"headerWrapper\",class:K(e.ns.e(\"header-wrapper\"))},[f(\"table\",{ref:\"tableHeader\",class:K(e.ns.e(\"header\")),style:ut(e.tableBodyStyles),border:\"0\",cellpadding:\"0\",cellspacing:\"0\"},[c(a,{columns:e.store.states.columns.value,\"table-layout\":e.tableLayout},null,8,[\"columns\",\"table-layout\"]),c(r,{ref:\"tableHeaderRef\",border:e.border,\"default-sort\":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,[\"border\",\"default-sort\",\"store\",\"onSetDragVisible\"])],6)],2)),[[m,e.handleHeaderFooterMousewheel]]):oe(\"v-if\",!0),f(\"div\",{ref:\"bodyWrapper\",class:K(e.ns.e(\"body-wrapper\"))},[c(i,{ref:\"scrollBarRef\",\"view-style\":e.scrollbarViewStyle,\"wrap-style\":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:d(()=>[f(\"table\",{ref:\"tableBody\",class:K(e.ns.e(\"body\")),cellspacing:\"0\",cellpadding:\"0\",border:\"0\",style:ut({width:e.bodyWidth,tableLayout:e.tableLayout})},[c(a,{columns:e.store.states.columns.value,\"table-layout\":e.tableLayout},null,8,[\"columns\",\"table-layout\"]),e.showHeader&&e.tableLayout===\"auto\"?(b(),ae(r,{key:0,ref:\"tableHeaderRef\",border:e.border,\"default-sort\":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,[\"border\",\"default-sort\",\"store\",\"onSetDragVisible\"])):oe(\"v-if\",!0),c(s,{context:e.context,highlight:e.highlightCurrentRow,\"row-class-name\":e.rowClassName,\"tooltip-effect\":e.tooltipEffect,\"row-style\":e.rowStyle,store:e.store,stripe:e.stripe},null,8,[\"context\",\"highlight\",\"row-class-name\",\"tooltip-effect\",\"row-style\",\"store\",\"stripe\"])],6),e.isEmpty?(b(),F(\"div\",{key:0,ref:\"emptyBlock\",style:ut(e.emptyBlockStyle),class:K(e.ns.e(\"empty-block\"))},[f(\"span\",{class:K(e.ns.e(\"empty-text\"))},[ze(e.$slots,\"empty\",{},()=>[A(re(e.computedEmptyText),1)])],2)],6)):oe(\"v-if\",!0),e.$slots.append?(b(),F(\"div\",{key:1,ref:\"appendWrapper\",class:K(e.ns.e(\"append-wrapper\"))},[ze(e.$slots,\"append\")],2)):oe(\"v-if\",!0)]),_:3},8,[\"view-style\",\"wrap-style\",\"always\"])],2),e.showSummary?fe((b(),F(\"div\",{key:1,ref:\"footerWrapper\",class:K(e.ns.e(\"footer-wrapper\"))},[c(p,{border:e.border,\"default-sort\":e.defaultSort,store:e.store,style:ut(e.tableBodyStyles),\"sum-text\":e.computedSumText,\"summary-method\":e.summaryMethod},null,8,[\"border\",\"default-sort\",\"store\",\"style\",\"sum-text\",\"summary-method\"])],2)),[[ge,!e.isEmpty],[m,e.handleHeaderFooterMousewheel]]):oe(\"v-if\",!0),e.border||e.isGroup?(b(),F(\"div\",{key:2,class:K(e.ns.e(\"border-left-patch\"))},null,2)):oe(\"v-if\",!0)],6),fe(f(\"div\",{ref:\"resizeProxy\",class:K(e.ns.e(\"column-resize-proxy\"))},null,2),[[ge,e.resizeProxyVisible]])],46,hae)}var gae=We(vae,[[\"render\",mae],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue\"]]);const bae={selection:\"table-column--selection\",expand:\"table__expand-column\"},yae={default:{order:\"\"},selection:{width:48,minWidth:48,realWidth:48,order:\"\"},expand:{width:48,minWidth:48,realWidth:48,order:\"\"},index:{width:48,minWidth:48,realWidth:48,order:\"\"}},wae=e=>bae[e]||\"\",Cae={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Re(Po,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,\"onUpdate:modelValue\":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:o}){return Re(Po,{disabled:t.selectable?!t.selectable.call(null,e,o):!1,size:n.states.tableSize.value,onChange:()=>{n.commit(\"rowSelectedChanged\",e)},onClick:l=>l.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||\"#\"},renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return typeof o==\"number\"?n=t+o:typeof o==\"function\"&&(n=o(t)),Re(\"div\",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||\"\"},renderCell({row:e,store:t,expanded:n}){const{ns:o}=t,l=[o.e(\"expand-icon\")];return n&&l.push(o.em(\"expand-icon\",\"expanded\")),Re(\"div\",{class:l,onClick:function(a){a.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Re(rt,null,{default:()=>[Re(wu)]})]})},sortable:!1,resizable:!1}};function Eae({row:e,column:t,$index:n}){var o;const l=t.property,u=l&&Za(e,l).value;return t&&t.formatter?t.formatter(e,t,u,n):((o=u==null?void 0:u.toString)==null?void 0:o.call(u))||\"\"}function Fae({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[Re(\"span\",{class:l.e(\"placeholder\")})]:null;const u=[],a=function(r){r.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&u.push(Re(\"span\",{class:l.e(\"indent\"),style:{\"padding-left\":`${t.indent}px`}})),typeof t.expanded==\"boolean\"&&!t.noLazyChildren){const r=[l.e(\"expand-icon\"),t.expanded?l.em(\"expand-icon\",\"expanded\"):\"\"];let s=wu;t.loading&&(s=ha),u.push(Re(\"div\",{class:r,onClick:a},{default:()=>[Re(rt,{class:{[l.is(\"loading\")]:t.loading}},{default:()=>[Re(s)]})]}))}else u.push(Re(\"span\",{class:l.e(\"placeholder\")}));return u}function wd(e,t){return e.reduce((n,o)=>(n[o]=o,n),t)}function Aae(e,t){const n=pt();return{registerComplexWatchers:()=>{const u=[\"fixed\"],a={realWidth:\"width\",realMinWidth:\"minWidth\"},r=wd(u,a);Object.keys(r).forEach(s=>{const i=a[s];st(t,i)&&Me(()=>t[i],p=>{let m=p;i===\"width\"&&s===\"realWidth\"&&(m=Oc(p)),i===\"minWidth\"&&s===\"realMinWidth\"&&(m=g6(p)),n.columnConfig.value[i]=m,n.columnConfig.value[s]=m;const v=i===\"fixed\";e.value.store.scheduleLayout(v)})})},registerNormalWatchers:()=>{const u=[\"label\",\"filters\",\"filterMultiple\",\"sortable\",\"index\",\"formatter\",\"className\",\"labelClassName\",\"showOverflowTooltip\"],a={property:\"prop\",align:\"realAlign\",headerAlign:\"realHeaderAlign\"},r=wd(u,a);Object.keys(r).forEach(s=>{const i=a[s];st(t,i)&&Me(()=>t[i],p=>{n.columnConfig.value[s]=p})})}}}function Dae(e,t,n){const o=pt(),l=L(\"\"),u=L(!1),a=L(),r=L(),s=Ve(\"table\");Do(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),Do(()=>{r.value=e.headerAlign?`is-${e.headerAlign}`:a.value,r.value});const i=U(()=>{let C=o.vnode.vParent||o.parent;for(;C&&!C.tableId&&!C.columnId;)C=C.vnode.vParent||C.parent;return C}),p=U(()=>{const{store:C}=o.parent;if(!C)return!1;const{treeData:B}=C.states,$=B.value;return $&&Object.keys($).length>0}),m=L(Oc(e.width)),v=L(g6(e.minWidth)),_=C=>(m.value&&(C.width=m.value),v.value&&(C.minWidth=v.value),!m.value&&v.value&&(C.width=void 0),C.minWidth||(C.minWidth=80),C.realWidth=Number(C.width===void 0?C.minWidth:C.width),C),g=C=>{const B=C.type,$=Cae[B]||{};Object.keys($).forEach(P=>{const T=$[P];P!==\"className\"&&T!==void 0&&(C[P]=T)});const k=wae(B);if(k){const P=`${h(s.namespace)}-${k}`;C.className=C.className?`${C.className} ${P}`:P}return C},y=C=>{Array.isArray(C)?C.forEach($=>B($)):B(C);function B($){var k;((k=$==null?void 0:$.type)==null?void 0:k.name)===\"ElTableColumn\"&&($.vParent=o)}};return{columnId:l,realAlign:a,isSubColumn:u,realHeaderAlign:r,columnOrTableParent:i,setColumnWidth:_,setColumnForcedProps:g,setColumnRenders:C=>{e.renderHeader||C.type!==\"selection\"&&(C.renderHeader=$=>{o.columnConfig.value.label;const k=t.header;return k?k($):C.label});let B=C.renderCell;return C.type===\"expand\"?(C.renderCell=$=>Re(\"div\",{class:\"cell\"},[B($)]),n.value.renderExpanded=$=>t.default?t.default($):t.default):(B=B||Eae,C.renderCell=$=>{let k=null;if(t.default){const j=t.default($);k=j.some(X=>X.type!==an)?j:B($)}else k=B($);const P=p.value&&$.cellIndex===0&&$.column.type!==\"selection\",T=Fae($,P),H={class:\"cell\",style:{}};return C.showOverflowTooltip&&(H.class=`${H.class} ${h(s.namespace)}-tooltip`,H.style={width:`${($.column.realWidth||Number($.column.width))-1}px`}),y(k),Re(\"div\",H,[T,k])}),C},getPropsData:(...C)=>C.reduce((B,$)=>(Array.isArray($)&&$.forEach(k=>{B[k]=e[k]}),B),{}),getColumnElIndex:(C,B)=>Array.prototype.indexOf.call(C,B)}}var Bae={type:{type:String,default:\"default\"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:\"\"},minWidth:{type:[String,Number],default:\"\"},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>[\"ascending\",\"descending\",null],validator:e=>e.every(t=>[\"ascending\",\"descending\",null].includes(t))}};let xae=1;var A6=le({name:\"ElTableColumn\",components:{ElCheckbox:Po},props:Bae,setup(e,{slots:t}){const n=pt(),o=L({}),l=U(()=>{let D=n.parent;for(;D&&!D.tableId;)D=D.parent;return D}),{registerNormalWatchers:u,registerComplexWatchers:a}=Aae(l,e),{columnId:r,isSubColumn:s,realHeaderAlign:i,columnOrTableParent:p,setColumnWidth:m,setColumnForcedProps:v,setColumnRenders:_,getPropsData:g,getColumnElIndex:y,realAlign:w}=Dae(e,t,l),E=p.value;r.value=`${E.tableId||E.columnId}_column_${xae++}`,Hr(()=>{s.value=l.value!==E;const D=e.type||\"default\",C=e.sortable===\"\"?!0:e.sortable,B={...yae[D],id:r.value,type:D,property:e.prop||e.property,align:w,headerAlign:i,showOverflowTooltip:e.showOverflowTooltip||e.showTooltipWhenOverflow,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:\"\",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:C,index:e.index,rawColumnKey:n.vnode.key};let H=g([\"columnKey\",\"label\",\"className\",\"labelClassName\",\"type\",\"renderHeader\",\"formatter\",\"fixed\",\"resizable\"],[\"sortMethod\",\"sortBy\",\"sortOrders\"],[\"selectable\",\"reserveSelection\"],[\"filterMethod\",\"filters\",\"filterMultiple\",\"filterOpened\",\"filteredValue\",\"filterPlacement\"]);H=$ue(B,H),H=kue(_,m,v)(H),o.value=H,u(),a()}),ot(()=>{var D;const C=p.value,B=s.value?C.vnode.el.children:(D=C.refs.hiddenColumns)==null?void 0:D.children,$=()=>y(B||[],n.vnode.el);o.value.getColumnIndex=$,$()>-1&&l.value.store.commit(\"insertColumn\",o.value,s.value?C.columnConfig.value:null)}),Mt(()=>{l.value.store.commit(\"removeColumn\",o.value,s.value?E.columnConfig.value:null)}),n.columnId=r.value,n.columnConfig=o},render(){var e,t,n;try{const o=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(Array.isArray(o))for(const a of o)((n=a.type)==null?void 0:n.name)===\"ElTableColumn\"||a.shapeFlag&2?l.push(a):a.type===Oe&&Array.isArray(a.children)&&a.children.forEach(r=>{(r==null?void 0:r.patchFlag)!==1024&&!tt(r==null?void 0:r.children)&&l.push(r)});return Re(\"div\",l)}catch{return Re(\"div\",[])}}});const D6=Ft(gae,{TableColumn:A6}),B6=Nt(A6),$ae=\"ElUpload\";class Sae extends Error{constructor(t,n,o,l){super(t),this.name=\"UploadAjaxError\",this.status=n,this.method=o,this.url=l}}function Cd(e,t,n){let o;return n.response?o=`${n.response.error||n.response}`:n.responseText?o=`${n.responseText}`:o=`fail to ${t.method} ${e} ${n.status}`,new Sae(o,n.status,t.method,e)}function kae(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}const Pae=e=>{typeof XMLHttpRequest==\"undefined\"&&An($ae,\"XMLHttpRequest is undefined\");const t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener(\"progress\",u=>{const a=u;a.percent=u.total>0?u.loaded/u.total*100:0,e.onProgress(a)});const o=new FormData;if(e.data)for(const[u,a]of Object.entries(e.data))Array.isArray(a)?o.append(u,...a):o.append(u,a);o.append(e.filename,e.file,e.file.name),t.addEventListener(\"error\",()=>{e.onError(Cd(n,e,t))}),t.addEventListener(\"load\",()=>{if(t.status<200||t.status>=300)return e.onError(Cd(n,e,t));e.onSuccess(kae(t))}),t.open(e.method,n,!0),e.withCredentials&&\"withCredentials\"in t&&(t.withCredentials=!0);const l=e.headers||{};if(l instanceof Headers)l.forEach((u,a)=>t.setRequestHeader(a,u));else for(const[u,a]of Object.entries(l))io(a)||t.setRequestHeader(u,String(a));return t.send(o),t},x6=[\"text\",\"picture\",\"picture-card\"];let Lae=1;const $6=()=>Date.now()+Lae++,S6=et({action:{type:String,default:\"#\"},headers:{type:He(Object)},method:{type:String,default:\"post\"},data:{type:Object,default:()=>So({})},multiple:{type:Boolean,default:!1},name:{type:String,default:\"file\"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:\"\"},type:{type:String,default:\"select\"},fileList:{type:He(Array),default:()=>So([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:x6,default:\"text\"},httpRequest:{type:He(Function),default:Pae},disabled:Boolean,limit:Number}),Tae=et({...S6,beforeUpload:{type:He(Function),default:vt},beforeRemove:{type:He(Function)},onRemove:{type:He(Function),default:vt},onChange:{type:He(Function),default:vt},onPreview:{type:He(Function),default:vt},onSuccess:{type:He(Function),default:vt},onProgress:{type:He(Function),default:vt},onError:{type:He(Function),default:vt},onExceed:{type:He(Function),default:vt}}),zae=et({files:{type:He(Array),default:()=>So([])},disabled:{type:Boolean,default:!1},handlePreview:{type:He(Function),default:vt},listType:{type:String,values:x6,default:\"text\"}}),Mae={remove:e=>!!e},Vae=[\"onKeydown\"],Iae=[\"src\"],Hae=[\"onClick\"],Rae=[\"onClick\"],Nae=[\"onClick\"],Oae=le({name:\"ElUploadList\"}),Uae=le({...Oae,props:zae,emits:Mae,setup(e,{emit:t}){const{t:n}=Dn(),o=Ve(\"upload\"),l=Ve(\"icon\"),u=Ve(\"list\"),a=L(!1),r=s=>{t(\"remove\",s)};return(s,i)=>(b(),ae(A8,{tag:\"ul\",class:K([h(o).b(\"list\"),h(o).bm(\"list\",s.listType),h(o).is(\"disabled\",s.disabled)]),name:h(u).b()},{default:d(()=>[(b(!0),F(Oe,null,it(s.files,p=>(b(),F(\"li\",{key:p.uid||p.name,class:K([h(o).be(\"list\",\"item\"),h(o).is(p.status),{focusing:a.value}]),tabindex:\"0\",onKeydown:Bt(m=>!s.disabled&&r(p),[\"delete\"]),onFocus:i[0]||(i[0]=m=>a.value=!0),onBlur:i[1]||(i[1]=m=>a.value=!1),onClick:i[2]||(i[2]=m=>a.value=!1)},[ze(s.$slots,\"default\",{file:p},()=>[s.listType===\"picture\"||p.status!==\"uploading\"&&s.listType===\"picture-card\"?(b(),F(\"img\",{key:0,class:K(h(o).be(\"list\",\"item-thumbnail\")),src:p.url,alt:\"\"},null,10,Iae)):oe(\"v-if\",!0),p.status===\"uploading\"||s.listType!==\"picture-card\"?(b(),F(\"div\",{key:1,class:K(h(o).be(\"list\",\"item-info\"))},[f(\"a\",{class:K(h(o).be(\"list\",\"item-name\")),onClick:mt(m=>s.handlePreview(p),[\"prevent\"])},[c(h(rt),{class:K(h(l).m(\"document\"))},{default:d(()=>[c(h(zf))]),_:1},8,[\"class\"]),f(\"span\",{class:K(h(o).be(\"list\",\"item-file-name\"))},re(p.name),3)],10,Hae),p.status===\"uploading\"?(b(),ae(h(fue),{key:0,type:s.listType===\"picture-card\"?\"circle\":\"line\",\"stroke-width\":s.listType===\"picture-card\"?6:2,percentage:Number(p.percentage),style:ut(s.listType===\"picture-card\"?\"\":\"margin-top: 0.5rem\")},null,8,[\"type\",\"stroke-width\",\"percentage\",\"style\"])):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"label\",{class:K(h(o).be(\"list\",\"item-status-label\"))},[s.listType===\"text\"?(b(),ae(h(rt),{key:0,class:K([h(l).m(\"upload-success\"),h(l).m(\"circle-check\")])},{default:d(()=>[c(h(Yr))]),_:1},8,[\"class\"])):[\"picture-card\",\"picture\"].includes(s.listType)?(b(),ae(h(rt),{key:1,class:K([h(l).m(\"upload-success\"),h(l).m(\"check\")])},{default:d(()=>[c(h(vc))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2),s.disabled?oe(\"v-if\",!0):(b(),ae(h(rt),{key:2,class:K(h(l).m(\"close\")),onClick:m=>r(p)},{default:d(()=>[c(h($l))]),_:2},1032,[\"class\",\"onClick\"])),oe(\" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn\"),oe(\" This is a bug which needs to be fixed \"),oe(\" TODO: Fix the incorrect navigation interaction \"),s.disabled?oe(\"v-if\",!0):(b(),F(\"i\",{key:3,class:K(h(l).m(\"close-tip\"))},re(h(n)(\"el.upload.deleteTip\")),3)),s.listType===\"picture-card\"?(b(),F(\"span\",{key:4,class:K(h(o).be(\"list\",\"item-actions\"))},[f(\"span\",{class:K(h(o).be(\"list\",\"item-preview\")),onClick:m=>s.handlePreview(p)},[c(h(rt),{class:K(h(l).m(\"zoom-in\"))},{default:d(()=>[c(h(Nf))]),_:1},8,[\"class\"])],10,Rae),s.disabled?oe(\"v-if\",!0):(b(),F(\"span\",{key:0,class:K(h(o).be(\"list\",\"item-delete\")),onClick:m=>r(p)},[c(h(rt),{class:K(h(l).m(\"delete\"))},{default:d(()=>[c(h(Tf))]),_:1},8,[\"class\"])],10,Nae))],2)):oe(\"v-if\",!0)])],42,Vae))),128)),ze(s.$slots,\"append\")]),_:3},8,[\"class\",\"name\"]))}});var Ed=We(Uae,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-list.vue\"]]);const Wae=et({disabled:{type:Boolean,default:!1}}),qae={file:e=>qe(e)},jae=[\"onDrop\",\"onDragover\"],k6=\"ElUploadDrag\",Kae=le({name:k6}),Gae=le({...Kae,props:Wae,emits:qae,setup(e,{emit:t}){const n=e,o=Xe(e4);o||An(k6,\"usage: <el-upload><el-upload-dragger /></el-upload>\");const l=Ve(\"upload\"),u=L(!1),a=s=>{if(n.disabled)return;u.value=!1;const i=Array.from(s.dataTransfer.files),p=o.accept.value;if(!p){t(\"file\",i);return}const m=i.filter(v=>{const{type:_,name:g}=v,y=g.includes(\".\")?`.${g.split(\".\").pop()}`:\"\",w=_.replace(/\\/.*$/,\"\");return p.split(\",\").map(E=>E.trim()).filter(E=>E).some(E=>E.startsWith(\".\")?y===E:/\\/\\*$/.test(E)?w===E.replace(/\\/\\*$/,\"\"):/^[^/]+\\/[^/]+$/.test(E)?_===E:!1)});t(\"file\",m)},r=()=>{n.disabled||(u.value=!0)};return(s,i)=>(b(),F(\"div\",{class:K([h(l).b(\"dragger\"),h(l).is(\"dragover\",u.value)]),onDrop:mt(a,[\"prevent\"]),onDragover:mt(r,[\"prevent\"]),onDragleave:i[0]||(i[0]=mt(p=>u.value=!1,[\"prevent\"]))},[ze(s.$slots,\"default\")],42,jae))}});var Yae=We(Gae,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue\"]]);const Xae=et({...S6,beforeUpload:{type:He(Function),default:vt},onRemove:{type:He(Function),default:vt},onStart:{type:He(Function),default:vt},onSuccess:{type:He(Function),default:vt},onProgress:{type:He(Function),default:vt},onError:{type:He(Function),default:vt},onExceed:{type:He(Function),default:vt}}),Jae=[\"onKeydown\"],Qae=[\"name\",\"multiple\",\"accept\"],Zae=le({name:\"ElUploadContent\",inheritAttrs:!1}),ere=le({...Zae,props:Xae,setup(e,{expose:t}){const n=e,o=Ve(\"upload\"),l=Kn({}),u=Kn(),a=_=>{if(_.length===0)return;const{autoUpload:g,limit:y,fileList:w,multiple:E,onStart:D,onExceed:C}=n;if(y&&w.length+_.length>y){C(_,w);return}E||(_=_.slice(0,1));for(const B of _){const $=B;$.uid=$6(),D($),g&&r($)}},r=async _=>{if(u.value.value=\"\",!n.beforeUpload)return s(_);let g;try{g=await n.beforeUpload(_)}catch{g=!1}if(g===!1){n.onRemove(_);return}let y=_;g instanceof Blob&&(g instanceof File?y=g:y=new File([g],_.name,{type:_.type})),s(Object.assign(y,{uid:_.uid}))},s=_=>{const{headers:g,data:y,method:w,withCredentials:E,name:D,action:C,onProgress:B,onSuccess:$,onError:k,httpRequest:P}=n,{uid:T}=_,H={headers:g||{},withCredentials:E,file:_,data:y,method:w,filename:D,action:C,onProgress:X=>{B(X,_)},onSuccess:X=>{$(X,_),delete l.value[T]},onError:X=>{k(X,_),delete l.value[T]}},j=P(H);l.value[T]=j,j instanceof Promise&&j.then(H.onSuccess,H.onError)},i=_=>{const g=_.target.files;!g||a(Array.from(g))},p=()=>{n.disabled||(u.value.value=\"\",u.value.click())},m=()=>{p()};return t({abort:_=>{x9(l.value).filter(_?([y])=>String(_.uid)===y:()=>!0).forEach(([y,w])=>{w instanceof XMLHttpRequest&&w.abort(),delete l.value[y]})},upload:r}),(_,g)=>(b(),F(\"div\",{class:K([h(o).b(),h(o).m(_.listType),h(o).is(\"drag\",_.drag)]),tabindex:\"0\",onClick:p,onKeydown:Bt(mt(m,[\"self\"]),[\"enter\",\"space\"])},[_.drag?(b(),ae(Yae,{key:0,disabled:_.disabled,onFile:a},{default:d(()=>[ze(_.$slots,\"default\")]),_:3},8,[\"disabled\"])):ze(_.$slots,\"default\",{key:1}),f(\"input\",{ref_key:\"inputRef\",ref:u,class:K(h(o).e(\"input\")),name:_.name,multiple:_.multiple,accept:_.accept,type:\"file\",onChange:i,onClick:g[0]||(g[0]=mt(()=>{},[\"stop\"]))},null,42,Qae)],42,Jae))}});var Fd=We(ere,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-content.vue\"]]);const Ad=\"ElUpload\",tre=e=>{var t;(t=e.url)!=null&&t.startsWith(\"blob:\")&&URL.revokeObjectURL(e.url)},nre=(e,t)=>{const n=A9(e,\"fileList\",void 0,{passive:!0}),o=v=>n.value.find(_=>_.uid===v.uid);function l(v){var _;(_=t.value)==null||_.abort(v)}function u(v=[\"ready\",\"uploading\",\"success\",\"fail\"]){n.value=n.value.filter(_=>!v.includes(_.status))}const a=(v,_)=>{const g=o(_);!g||(console.error(v),g.status=\"fail\",n.value.splice(n.value.indexOf(g),1),e.onError(v,g,n.value),e.onChange(g,n.value))},r=(v,_)=>{const g=o(_);!g||(e.onProgress(v,g,n.value),g.status=\"uploading\",g.percentage=Math.round(v.percent))},s=(v,_)=>{const g=o(_);!g||(g.status=\"success\",g.response=v,e.onSuccess(v,g,n.value),e.onChange(g,n.value))},i=v=>{const _={name:v.name,percentage:0,status:\"ready\",size:v.size,raw:v,uid:v.uid};if(e.listType===\"picture-card\"||e.listType===\"picture\")try{_.url=URL.createObjectURL(v)}catch(g){g.message,e.onError(g,_,n.value)}n.value=[...n.value,_],e.onChange(_,n.value)},p=async v=>{const _=v instanceof File?o(v):v;_||An(Ad,\"file to be removed not found\");const g=y=>{l(y);const w=n.value;w.splice(w.indexOf(y),1),e.onRemove(y,w),tre(y)};e.beforeRemove?await e.beforeRemove(_,n.value)!==!1&&g(_):g(_)};function m(){n.value.filter(({status:v})=>v===\"ready\").forEach(({raw:v})=>{var _;return v&&((_=t.value)==null?void 0:_.upload(v))})}return Me(()=>e.listType,v=>{v!==\"picture-card\"&&v!==\"picture\"||(n.value=n.value.map(_=>{const{raw:g,url:y}=_;if(!y&&g)try{_.url=URL.createObjectURL(g)}catch(w){e.onError(w,_,n.value)}return _}))}),Me(n,v=>{for(const _ of v)_.uid||(_.uid=$6()),_.status||(_.status=\"success\")},{immediate:!0,deep:!0}),{uploadFiles:n,abort:l,clearFiles:u,handleError:a,handleProgress:r,handleStart:i,handleSuccess:s,handleRemove:p,submit:m}},ore=le({name:\"ElUpload\"}),lre=le({...ore,props:Tae,setup(e,{expose:t}){const n=e,o=To(),l=ul(),u=Kn(),{abort:a,submit:r,clearFiles:s,uploadFiles:i,handleStart:p,handleError:m,handleRemove:v,handleSuccess:_,handleProgress:g}=nre(n,u),y=U(()=>n.listType===\"picture-card\"),w=U(()=>({...n,fileList:i.value,onStart:p,onProgress:g,onSuccess:_,onError:m,onRemove:v}));return Mt(()=>{i.value.forEach(({url:E})=>{E!=null&&E.startsWith(\"blob:\")&&URL.revokeObjectURL(E)})}),Dt(e4,{accept:Tn(n,\"accept\")}),t({abort:a,submit:r,clearFiles:s,handleStart:p,handleRemove:v}),(E,D)=>(b(),F(\"div\",null,[h(y)&&E.showFileList?(b(),ae(Ed,{key:0,disabled:h(l),\"list-type\":E.listType,files:h(i),\"handle-preview\":E.onPreview,onRemove:h(v)},Zl({append:d(()=>[c(Fd,kn({ref_key:\"uploadRef\",ref:u},h(w)),{default:d(()=>[h(o).trigger?ze(E.$slots,\"trigger\",{key:0}):oe(\"v-if\",!0),!h(o).trigger&&h(o).default?ze(E.$slots,\"default\",{key:1}):oe(\"v-if\",!0)]),_:3},16)]),_:2},[E.$slots.file?{name:\"default\",fn:d(({file:C})=>[ze(E.$slots,\"file\",{file:C})])}:void 0]),1032,[\"disabled\",\"list-type\",\"files\",\"handle-preview\",\"onRemove\"])):oe(\"v-if\",!0),!h(y)||h(y)&&!E.showFileList?(b(),ae(Fd,kn({key:1,ref_key:\"uploadRef\",ref:u},h(w)),{default:d(()=>[h(o).trigger?ze(E.$slots,\"trigger\",{key:0}):oe(\"v-if\",!0),!h(o).trigger&&h(o).default?ze(E.$slots,\"default\",{key:1}):oe(\"v-if\",!0)]),_:3},16)):oe(\"v-if\",!0),E.$slots.trigger?ze(E.$slots,\"default\",{key:2}):oe(\"v-if\",!0),ze(E.$slots,\"tip\"),!h(y)&&E.showFileList?(b(),ae(Ed,{key:3,disabled:h(l),\"list-type\":E.listType,files:h(i),\"handle-preview\":E.onPreview,onRemove:h(v)},Zl({_:2},[E.$slots.file?{name:\"default\",fn:d(({file:C})=>[ze(E.$slots,\"file\",{file:C})])}:void 0]),1032,[\"disabled\",\"list-type\",\"files\",\"handle-preview\",\"onRemove\"])):oe(\"v-if\",!0)]))}});var ure=We(lre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload.vue\"]]);const P6=Ft(ure);function are(e){let t;const n=Ve(\"loading\"),o=L(!1),l=Rt({...e,originalPosition:\"\",originalOverflow:\"\",visible:!1});function u(_){l.text=_}function a(){const _=l.parent;if(!_.vLoadingAddClassList){let g=_.getAttribute(\"loading-number\");g=Number.parseInt(g)-1,g?_.setAttribute(\"loading-number\",g.toString()):(Gn(_,n.bm(\"parent\",\"relative\")),_.removeAttribute(\"loading-number\")),Gn(_,n.bm(\"parent\",\"hidden\"))}r(),m.unmount()}function r(){var _,g;(g=(_=v.$el)==null?void 0:_.parentNode)==null||g.removeChild(v.$el)}function s(){var _;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(t),t=window.setTimeout(i,400),l.visible=!1,(_=e.closed)==null||_.call(e))}function i(){if(!o.value)return;const _=l.parent;o.value=!1,_.vLoadingAddClassList=void 0,a()}const m=nf({name:\"ElLoading\",setup(){return()=>{const _=l.spinner||l.svg,g=Re(\"svg\",{class:\"circular\",viewBox:l.svgViewBox?l.svgViewBox:\"0 0 50 50\",..._?{innerHTML:_}:{}},[Re(\"circle\",{class:\"path\",cx:\"25\",cy:\"25\",r:\"20\",fill:\"none\"})]),y=l.text?Re(\"p\",{class:n.b(\"text\")},[l.text]):void 0;return Re(tn,{name:n.b(\"fade\"),onAfterLeave:i},{default:d(()=>[fe(c(\"div\",{style:{backgroundColor:l.background||\"\"},class:[n.b(\"mask\"),l.customClass,l.fullscreen?\"is-fullscreen\":\"\"]},[Re(\"div\",{class:n.b(\"spinner\")},[g,y])]),[[ge,l.visible]])])})}}}),v=m.mount(document.createElement(\"div\"));return{...ho(l),setText:u,removeElLoadingChild:r,close:s,handleAfterLeave:i,vm:v,get $el(){return v.$el}}}let Ua;const rre=function(e={}){if(!_t)return;const t=sre(e);if(t.fullscreen&&Ua)return Ua;const n=are({...t,closed:()=>{var l;(l=t.closed)==null||l.call(t),t.fullscreen&&(Ua=void 0)}});ire(t,t.parent,n),Dd(t,t.parent,n),t.parent.vLoadingAddClassList=()=>Dd(t,t.parent,n);let o=t.parent.getAttribute(\"loading-number\");return o?o=`${Number.parseInt(o)+1}`:o=\"1\",t.parent.setAttribute(\"loading-number\",o),t.parent.appendChild(n.$el),at(()=>n.visible.value=t.visible),t.fullscreen&&(Ua=n),n},sre=e=>{var t,n,o,l;let u;return tt(e.target)?u=(t=document.querySelector(e.target))!=null?t:document.body:u=e.target||document.body,{parent:u===document.body||e.body?document.body:u,background:e.background||\"\",svg:e.svg||\"\",svgViewBox:e.svgViewBox||\"\",spinner:e.spinner||!1,text:e.text||\"\",fullscreen:u===document.body&&((n=e.fullscreen)!=null?n:!0),lock:(o=e.lock)!=null?o:!1,customClass:e.customClass||\"\",visible:(l=e.visible)!=null?l:!0,target:u}},ire=async(e,t,n)=>{const{nextZIndex:o}=Ml(),l={};if(e.fullscreen)n.originalPosition.value=Eo(document.body,\"position\"),n.originalOverflow.value=Eo(document.body,\"overflow\"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=Eo(document.body,\"position\"),await at();for(const u of[\"top\",\"left\"]){const a=u===\"top\"?\"scrollTop\":\"scrollLeft\";l[u]=`${e.target.getBoundingClientRect()[u]+document.body[a]+document.documentElement[a]-Number.parseInt(Eo(document.body,`margin-${u}`),10)}px`}for(const u of[\"height\",\"width\"])l[u]=`${e.target.getBoundingClientRect()[u]}px`}else n.originalPosition.value=Eo(t,\"position\");for(const[u,a]of Object.entries(l))n.$el.style[u]=a},Dd=(e,t,n)=>{const o=Ve(\"loading\");[\"absolute\",\"fixed\",\"sticky\"].includes(n.originalPosition.value)?Gn(t,o.bm(\"parent\",\"relative\")):Fo(t,o.bm(\"parent\",\"relative\")),e.fullscreen&&e.lock?Fo(t,o.bm(\"parent\",\"hidden\")):Gn(t,o.bm(\"parent\",\"hidden\"))},Ci=Symbol(\"ElLoading\"),Bd=(e,t)=>{var n,o,l,u;const a=t.instance,r=v=>dt(t.value)?t.value[v]:void 0,s=v=>{const _=tt(v)&&(a==null?void 0:a[v])||v;return _&&L(_)},i=v=>s(r(v)||e.getAttribute(`element-loading-${ll(v)}`)),p=(n=r(\"fullscreen\"))!=null?n:t.modifiers.fullscreen,m={text:i(\"text\"),svg:i(\"svg\"),svgViewBox:i(\"svgViewBox\"),spinner:i(\"spinner\"),background:i(\"background\"),customClass:i(\"customClass\"),fullscreen:p,target:(o=r(\"target\"))!=null?o:p?void 0:e,body:(l=r(\"body\"))!=null?l:t.modifiers.body,lock:(u=r(\"lock\"))!=null?u:t.modifiers.lock};e[Ci]={options:m,instance:rre(m)}},cre=(e,t)=>{for(const n of Object.keys(t))yt(t[n])&&(t[n].value=e[n])},os={mounted(e,t){t.value&&Bd(e,t)},updated(e,t){const n=e[Ci];t.oldValue!==t.value&&(t.value&&!t.oldValue?Bd(e,t):t.value&&t.oldValue?dt(t.value)&&cre(t.value,n.options):n==null||n.instance.close())},unmounted(e){var t;(t=e[Ci])==null||t.instance.close()}},L6=[\"success\",\"info\",\"warning\",\"error\"],ln=So({customClass:\"\",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:\"\",message:\"\",onClose:void 0,showClose:!1,type:\"info\",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:_t?document.body:void 0}),dre=et({customClass:{type:String,default:ln.customClass},center:{type:Boolean,default:ln.center},dangerouslyUseHTMLString:{type:Boolean,default:ln.dangerouslyUseHTMLString},duration:{type:Number,default:ln.duration},icon:{type:Tt,default:ln.icon},id:{type:String,default:ln.id},message:{type:He([String,Object,Function]),default:ln.message},onClose:{type:He(Function),required:!1},showClose:{type:Boolean,default:ln.showClose},type:{type:String,values:L6,default:ln.type},offset:{type:Number,default:ln.offset},zIndex:{type:Number,default:ln.zIndex},grouping:{type:Boolean,default:ln.grouping},repeatNum:{type:Number,default:ln.repeatNum}}),fre={destroy:()=>!0},ro=s1([]),pre=e=>{const t=ro.findIndex(l=>l.id===e),n=ro[t];let o;return t>0&&(o=ro[t-1]),{current:n,prev:o}},vre=e=>{const{prev:t}=pre(e);return t?t.vm.exposed.bottom.value:0},hre=[\"id\"],_re=[\"innerHTML\"],mre=le({name:\"ElMessage\"}),gre=le({...mre,props:dre,emits:fre,setup(e,{expose:t}){const n=e,{Close:o}=Wf,l=Ve(\"message\"),u=L(),a=L(!1),r=L(0);let s;const i=U(()=>n.type?n.type===\"error\"?\"danger\":n.type:\"info\"),p=U(()=>{const B=n.type;return{[l.bm(\"icon\",B)]:B&&au[B]}}),m=U(()=>n.icon||au[n.type]||\"\"),v=U(()=>vre(n.id)),_=U(()=>n.offset+v.value),g=U(()=>r.value+_.value),y=U(()=>({top:`${_.value}px`,zIndex:n.zIndex}));function w(){n.duration!==0&&({stop:s}=uu(()=>{D()},n.duration))}function E(){s==null||s()}function D(){a.value=!1}function C({code:B}){B===Lt.esc&&D()}return ot(()=>{w(),a.value=!0}),Me(()=>n.repeatNum,()=>{E(),w()}),Gt(document,\"keydown\",C),po(u,()=>{r.value=u.value.getBoundingClientRect().height}),t({visible:a,bottom:g,close:D}),(B,$)=>(b(),ae(tn,{name:h(l).b(\"fade\"),onBeforeLeave:B.onClose,onAfterLeave:$[0]||($[0]=k=>B.$emit(\"destroy\")),persisted:\"\"},{default:d(()=>[fe(f(\"div\",{id:B.id,ref_key:\"messageRef\",ref:u,class:K([h(l).b(),{[h(l).m(B.type)]:B.type&&!B.icon},h(l).is(\"center\",B.center),h(l).is(\"closable\",B.showClose),B.customClass]),style:ut(h(y)),role:\"alert\",onMouseenter:E,onMouseleave:w},[B.repeatNum>1?(b(),ae(h(ree),{key:0,value:B.repeatNum,type:h(i),class:K(h(l).e(\"badge\"))},null,8,[\"value\",\"type\",\"class\"])):oe(\"v-if\",!0),h(m)?(b(),ae(h(rt),{key:1,class:K([h(l).e(\"icon\"),h(p)])},{default:d(()=>[(b(),ae(Ct(h(m))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),ze(B.$slots,\"default\",{},()=>[B.dangerouslyUseHTMLString?(b(),F(Oe,{key:1},[oe(\" Caution here, message could've been compromised, never use user's input as message \"),f(\"p\",{class:K(h(l).e(\"content\")),innerHTML:B.message},null,10,_re)],2112)):(b(),F(\"p\",{key:0,class:K(h(l).e(\"content\"))},re(B.message),3))]),B.showClose?(b(),ae(h(rt),{key:2,class:K(h(l).e(\"closeBtn\")),onClick:mt(D,[\"stop\"])},{default:d(()=>[c(h(o))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],46,hre),[[ge,a.value]])]),_:3},8,[\"name\",\"onBeforeLeave\"]))}});var bre=We(gre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue\"]]);let yre=1;const T6=e=>{const t=!e||tt(e)||cn(e)||Ge(e)?{message:e}:e,n={...ln,...t};if(!n.appendTo)n.appendTo=document.body;else if(tt(n.appendTo)){let o=document.querySelector(n.appendTo);nl(o)||(o=document.body),n.appendTo=o}return n},wre=e=>{const t=ro.indexOf(e);if(t===-1)return;ro.splice(t,1);const{handler:n}=e;n.close()},Cre=({appendTo:e,...t},n)=>{const{nextZIndex:o}=Ml(),l=`message_${yre++}`,u=t.onClose,a=document.createElement(\"div\"),r={...t,zIndex:o()+t.zIndex,id:l,onClose:()=>{u==null||u(),wre(m)},onDestroy:()=>{nu(null,a)}},s=c(bre,r,Ge(r.message)||cn(r.message)?{default:Ge(r.message)?r.message:()=>r.message}:null);s.appContext=n||pu._context,nu(s,a),e.appendChild(a.firstElementChild);const i=s.component,m={id:l,vnode:s,vm:i,handler:{close:()=>{i.exposed.visible.value=!1}},props:s.component.props};return m},pu=(e={},t)=>{if(!_t)return{close:()=>{}};if(gt(vi.max)&&ro.length>=vi.max)return{close:()=>{}};const n=T6(e);if(n.grouping&&ro.length){const l=ro.find(({vnode:u})=>{var a;return((a=u.props)==null?void 0:a.message)===n.message});if(l)return l.props.repeatNum+=1,l.props.type=n.type,l.handler}const o=Cre(n,t);return ro.push(o),o.handler};L6.forEach(e=>{pu[e]=(t={},n)=>{const o=T6(t);return pu({...o,type:e},n)}});function Ere(e){for(const t of ro)(!e||e===t.props.type)&&t.handler.close()}pu.closeAll=Ere;pu._context=null;const Fre=qf(pu,\"$message\"),Are=le({name:\"ElMessageBox\",directives:{TrapFocus:Tee},components:{ElButton:vn,ElFocusTrap:Lc,ElInput:nn,ElOverlay:u6,ElIcon:rt,...Wf},inheritAttrs:!1,props:{buttonSize:{type:String,validator:gc},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:\"body\"},boxType:{type:String,default:\"\"}},emits:[\"vanish\",\"action\"],setup(e,{emit:t}){const{t:n}=Dn(),o=Ve(\"message-box\"),l=L(!1),{nextZIndex:u}=Ml(),a=Rt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:\"\",cancelButtonClass:\"\",confirmButtonText:\"\",confirmButtonClass:\"\",customClass:\"\",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:\"\",inputPattern:null,inputPlaceholder:\"\",inputType:\"text\",inputValue:null,inputValidator:null,inputErrorMessage:\"\",message:null,modalFade:!0,modalClass:\"\",showCancelButton:!1,showConfirmButton:!0,type:\"\",title:void 0,showInput:!1,action:\"\",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:\"\",validateError:!1,zIndex:u()}),r=U(()=>{const N=a.type;return{[o.bm(\"icon\",N)]:N&&au[N]}}),s=ol(),i=ol(),p=dn(U(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),m=U(()=>a.icon||au[a.type]||\"\"),v=U(()=>!!a.message),_=L(),g=L(),y=L(),w=L(),E=L(),D=U(()=>a.confirmButtonClass);Me(()=>a.inputValue,async N=>{await at(),e.boxType===\"prompt\"&&N!==null&&H()},{immediate:!0}),Me(()=>l.value,N=>{var J,be;N&&(e.boxType!==\"prompt\"&&(a.autofocus?y.value=(be=(J=E.value)==null?void 0:J.$el)!=null?be:_.value:y.value=_.value),a.zIndex=u()),e.boxType===\"prompt\"&&(N?at().then(()=>{var ve;w.value&&w.value.$el&&(a.autofocus?y.value=(ve=j())!=null?ve:_.value:y.value=_.value)}):(a.editorErrorMessage=\"\",a.validateError=!1))});const C=U(()=>e.draggable);o4(_,g,C),ot(async()=>{await at(),e.closeOnHashChange&&window.addEventListener(\"hashchange\",B)}),Mt(()=>{e.closeOnHashChange&&window.removeEventListener(\"hashchange\",B)});function B(){!l.value||(l.value=!1,at(()=>{a.action&&t(\"action\",a.action)}))}const $=()=>{e.closeOnClickModal&&T(a.distinguishCancelAndClose?\"close\":\"cancel\")},k=Cc($),P=N=>{if(a.inputType!==\"textarea\")return N.preventDefault(),T(\"confirm\")},T=N=>{var J;e.boxType===\"prompt\"&&N===\"confirm\"&&!H()||(a.action=N,a.beforeClose?(J=a.beforeClose)==null||J.call(a,N,a,B):B())},H=()=>{if(e.boxType===\"prompt\"){const N=a.inputPattern;if(N&&!N.test(a.inputValue||\"\"))return a.editorErrorMessage=a.inputErrorMessage||n(\"el.messagebox.error\"),a.validateError=!0,!1;const J=a.inputValidator;if(typeof J==\"function\"){const be=J(a.inputValue);if(be===!1)return a.editorErrorMessage=a.inputErrorMessage||n(\"el.messagebox.error\"),a.validateError=!0,!1;if(typeof be==\"string\")return a.editorErrorMessage=be,a.validateError=!0,!1}}return a.editorErrorMessage=\"\",a.validateError=!1,!0},j=()=>{const N=w.value.$refs;return N.input||N.textarea},X=()=>{T(\"close\")},W=()=>{e.closeOnPressEscape&&X()};return e.lockScroll&&l4(l),fJ(l),{...ho(a),ns:o,overlayEvent:k,visible:l,hasMessage:v,typeClass:r,contentId:s,inputId:i,btnSize:p,iconComponent:m,confirmButtonClasses:D,rootRef:_,focusStartRef:y,headerRef:g,inputRef:w,confirmRef:E,doClose:B,handleClose:X,onCloseRequested:W,handleWrapperClick:$,handleInputEnter:P,handleAction:T,t:n}}}),Dre=[\"aria-label\",\"aria-describedby\"],Bre=[\"aria-label\"],xre=[\"id\"];function $re(e,t,n,o,l,u){const a=lt(\"el-icon\"),r=lt(\"close\"),s=lt(\"el-input\"),i=lt(\"el-button\"),p=lt(\"el-focus-trap\"),m=lt(\"el-overlay\");return b(),ae(tn,{name:\"fade-in-linear\",onAfterLeave:t[11]||(t[11]=v=>e.$emit(\"vanish\")),persisted:\"\"},{default:d(()=>[fe(c(m,{\"z-index\":e.zIndex,\"overlay-class\":[e.ns.is(\"message-box\"),e.modalClass],mask:e.modal},{default:d(()=>[f(\"div\",{role:\"dialog\",\"aria-label\":e.title,\"aria-modal\":\"true\",\"aria-describedby\":e.showInput?void 0:e.contentId,class:K(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...v)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...v)),onMousedown:t[9]||(t[9]=(...v)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...v)),onMouseup:t[10]||(t[10]=(...v)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...v))},[c(p,{loop:\"\",trapped:e.visible,\"focus-trap-el\":e.rootRef,\"focus-start-el\":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:d(()=>[f(\"div\",{ref:\"rootRef\",class:K([e.ns.b(),e.customClass,e.ns.is(\"draggable\",e.draggable),{[e.ns.m(\"center\")]:e.center}]),style:ut(e.customStyle),tabindex:\"-1\",onClick:t[7]||(t[7]=mt(()=>{},[\"stop\"]))},[e.title!==null&&e.title!==void 0?(b(),F(\"div\",{key:0,ref:\"headerRef\",class:K(e.ns.e(\"header\"))},[f(\"div\",{class:K(e.ns.e(\"title\"))},[e.iconComponent&&e.center?(b(),ae(a,{key:0,class:K([e.ns.e(\"status\"),e.typeClass])},{default:d(()=>[(b(),ae(Ct(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),f(\"span\",null,re(e.title),1)],2),e.showClose?(b(),F(\"button\",{key:0,type:\"button\",class:K(e.ns.e(\"headerbtn\")),\"aria-label\":e.t(\"el.messagebox.close\"),onClick:t[0]||(t[0]=v=>e.handleAction(e.distinguishCancelAndClose?\"close\":\"cancel\")),onKeydown:t[1]||(t[1]=Bt(mt(v=>e.handleAction(e.distinguishCancelAndClose?\"close\":\"cancel\"),[\"prevent\"]),[\"enter\"]))},[c(a,{class:K(e.ns.e(\"close\"))},{default:d(()=>[c(r)]),_:1},8,[\"class\"])],42,Bre)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"div\",{id:e.contentId,class:K(e.ns.e(\"content\"))},[f(\"div\",{class:K(e.ns.e(\"container\"))},[e.iconComponent&&!e.center&&e.hasMessage?(b(),ae(a,{key:0,class:K([e.ns.e(\"status\"),e.typeClass])},{default:d(()=>[(b(),ae(Ct(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),e.hasMessage?(b(),F(\"div\",{key:1,class:K(e.ns.e(\"message\"))},[ze(e.$slots,\"default\",{},()=>[e.dangerouslyUseHTMLString?(b(),ae(Ct(e.showInput?\"label\":\"p\"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,[\"for\",\"innerHTML\"])):(b(),ae(Ct(e.showInput?\"label\":\"p\"),{key:0,for:e.showInput?e.inputId:void 0},{default:d(()=>[A(re(e.dangerouslyUseHTMLString?\"\":e.message),1)]),_:1},8,[\"for\"]))])],2)):oe(\"v-if\",!0)],2),fe(f(\"div\",{class:K(e.ns.e(\"input\"))},[c(s,{id:e.inputId,ref:\"inputRef\",modelValue:e.inputValue,\"onUpdate:modelValue\":t[2]||(t[2]=v=>e.inputValue=v),type:e.inputType,placeholder:e.inputPlaceholder,\"aria-invalid\":e.validateError,class:K({invalid:e.validateError}),onKeydown:Bt(e.handleInputEnter,[\"enter\"])},null,8,[\"id\",\"modelValue\",\"type\",\"placeholder\",\"aria-invalid\",\"class\",\"onKeydown\"]),f(\"div\",{class:K(e.ns.e(\"errormsg\")),style:ut({visibility:e.editorErrorMessage?\"visible\":\"hidden\"})},re(e.editorErrorMessage),7)],2),[[ge,e.showInput]])],10,xre),f(\"div\",{class:K(e.ns.e(\"btns\"))},[e.showCancelButton?(b(),ae(i,{key:0,loading:e.cancelButtonLoading,class:K([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=v=>e.handleAction(\"cancel\")),onKeydown:t[4]||(t[4]=Bt(mt(v=>e.handleAction(\"cancel\"),[\"prevent\"]),[\"enter\"]))},{default:d(()=>[A(re(e.cancelButtonText||e.t(\"el.messagebox.cancel\")),1)]),_:1},8,[\"loading\",\"class\",\"round\",\"size\"])):oe(\"v-if\",!0),fe(c(i,{ref:\"confirmRef\",type:\"primary\",loading:e.confirmButtonLoading,class:K([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=v=>e.handleAction(\"confirm\")),onKeydown:t[6]||(t[6]=Bt(mt(v=>e.handleAction(\"confirm\"),[\"prevent\"]),[\"enter\"]))},{default:d(()=>[A(re(e.confirmButtonText||e.t(\"el.messagebox.confirm\")),1)]),_:1},8,[\"loading\",\"class\",\"round\",\"disabled\",\"size\"]),[[ge,e.showConfirmButton]])],2)],6)]),_:3},8,[\"trapped\",\"focus-trap-el\",\"focus-start-el\",\"onReleaseRequested\"])],42,Dre)]),_:3},8,[\"z-index\",\"overlay-class\",\"mask\"]),[[ge,e.visible]])]),_:3})}var Sre=We(Are,[[\"render\",$re],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue\"]]);const ia=new Map,kre=(e,t,n=null)=>{const o=c(Sre,e,Ge(e.message)||cn(e.message)?{default:Ge(e.message)?e.message:()=>e.message}:null);return o.appContext=n,nu(o,t),document.body.appendChild(t.firstElementChild),o.component},Pre=()=>document.createElement(\"div\"),Lre=(e,t)=>{const n=Pre();e.onVanish=()=>{nu(null,n),ia.delete(l)},e.onAction=u=>{const a=ia.get(l);let r;e.showInput?r={value:l.inputValue,action:u}:r=u,e.callback?e.callback(r,o.proxy):u===\"cancel\"||u===\"close\"?e.distinguishCancelAndClose&&u!==\"cancel\"?a.reject(\"close\"):a.reject(\"cancel\"):a.resolve(r)};const o=kre(e,n,t),l=o.proxy;for(const u in e)st(e,u)&&!st(l.$props,u)&&(l[u]=e[u]);return l.visible=!0,l};function Au(e,t=null){if(!_t)return Promise.reject();let n;return tt(e)||cn(e)?e={message:e}:n=e.callback,new Promise((o,l)=>{const u=Lre(e,t!=null?t:Au._context);ia.set(u,{options:e,callback:n,resolve:o,reject:l})})}const Tre=[\"alert\",\"confirm\",\"prompt\"],zre={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};Tre.forEach(e=>{Au[e]=Mre(e)});function Mre(e){return(t,n,o,l)=>{let u=\"\";return dt(n)?(o=n,u=\"\"):jn(n)?u=\"\":u=n,Au(Object.assign({title:u,message:t,type:\"\",...zre[e]},o,{boxType:e}),l)}}Au.close=()=>{ia.forEach((e,t)=>{t.doClose()}),ia.clear()};Au._context=null;const jo=Au;jo.install=e=>{jo._context=e._context,e.config.globalProperties.$msgbox=jo,e.config.globalProperties.$messageBox=jo,e.config.globalProperties.$alert=jo.alert,e.config.globalProperties.$confirm=jo.confirm,e.config.globalProperties.$prompt=jo.prompt};const $t=jo,z6=[\"success\",\"info\",\"warning\",\"error\"],Vre=et({customClass:{type:String,default:\"\"},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},icon:{type:Tt},id:{type:String,default:\"\"},message:{type:He([String,Object]),default:\"\"},offset:{type:Number,default:0},onClick:{type:He(Function),default:()=>{}},onClose:{type:He(Function),required:!0},position:{type:String,values:[\"top-right\",\"top-left\",\"bottom-right\",\"bottom-left\"],default:\"top-right\"},showClose:{type:Boolean,default:!0},title:{type:String,default:\"\"},type:{type:String,values:[...z6,\"\"],default:\"\"},zIndex:{type:Number,default:0}}),Ire={destroy:()=>!0},Hre=[\"id\"],Rre=[\"textContent\"],Nre={key:0},Ore=[\"innerHTML\"],Ure=le({name:\"ElNotification\"}),Wre=le({...Ure,props:Vre,emits:Ire,setup(e,{expose:t}){const n=e,o=Ve(\"notification\"),{Close:l}=Uf,u=L(!1);let a;const r=U(()=>{const w=n.type;return w&&au[n.type]?o.m(w):\"\"}),s=U(()=>n.type&&au[n.type]||n.icon),i=U(()=>n.position.endsWith(\"right\")?\"right\":\"left\"),p=U(()=>n.position.startsWith(\"top\")?\"top\":\"bottom\"),m=U(()=>({[p.value]:`${n.offset}px`,zIndex:n.zIndex}));function v(){n.duration>0&&({stop:a}=uu(()=>{u.value&&g()},n.duration))}function _(){a==null||a()}function g(){u.value=!1}function y({code:w}){w===Lt.delete||w===Lt.backspace?_():w===Lt.esc?u.value&&g():v()}return ot(()=>{v(),u.value=!0}),Gt(document,\"keydown\",y),t({visible:u,close:g}),(w,E)=>(b(),ae(tn,{name:h(o).b(\"fade\"),onBeforeLeave:w.onClose,onAfterLeave:E[1]||(E[1]=D=>w.$emit(\"destroy\")),persisted:\"\"},{default:d(()=>[fe(f(\"div\",{id:w.id,class:K([h(o).b(),w.customClass,h(i)]),style:ut(h(m)),role:\"alert\",onMouseenter:_,onMouseleave:v,onClick:E[0]||(E[0]=(...D)=>w.onClick&&w.onClick(...D))},[h(s)?(b(),ae(h(rt),{key:0,class:K([h(o).e(\"icon\"),h(r)])},{default:d(()=>[(b(),ae(Ct(h(s))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),f(\"div\",{class:K(h(o).e(\"group\"))},[f(\"h2\",{class:K(h(o).e(\"title\")),textContent:re(w.title)},null,10,Rre),fe(f(\"div\",{class:K(h(o).e(\"content\")),style:ut(w.title?void 0:{margin:0})},[ze(w.$slots,\"default\",{},()=>[w.dangerouslyUseHTMLString?(b(),F(Oe,{key:1},[oe(\" Caution here, message could've been compromised, never use user's input as message \"),f(\"p\",{innerHTML:w.message},null,8,Ore)],2112)):(b(),F(\"p\",Nre,re(w.message),1))])],6),[[ge,w.message]]),w.showClose?(b(),ae(h(rt),{key:0,class:K(h(o).e(\"closeBtn\")),onClick:mt(g,[\"stop\"])},{default:d(()=>[c(h(l))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],2)],46,Hre),[[ge,u.value]])]),_:3},8,[\"name\",\"onBeforeLeave\"]))}});var qre=We(Wre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/notification/src/notification.vue\"]]);const Br={\"top-left\":[],\"top-right\":[],\"bottom-left\":[],\"bottom-right\":[]},Ei=16;let jre=1;const vu=function(e={},t=null){if(!_t)return{close:()=>{}};(typeof e==\"string\"||cn(e))&&(e={message:e});const n=e.position||\"top-right\";let o=e.offset||0;Br[n].forEach(({vm:m})=>{var v;o+=(((v=m.el)==null?void 0:v.offsetHeight)||0)+Ei}),o+=Ei;const{nextZIndex:l}=Ml(),u=`notification_${jre++}`,a=e.onClose,r={...e,zIndex:l(),offset:o,id:u,onClose:()=>{Kre(u,n,a)}};let s=document.body;nl(e.appendTo)?s=e.appendTo:tt(e.appendTo)&&(s=document.querySelector(e.appendTo)),nl(s)||(s=document.body);const i=document.createElement(\"div\"),p=c(qre,r,cn(r.message)?{default:()=>r.message}:null);return p.appContext=t!=null?t:vu._context,p.props.onDestroy=()=>{nu(null,i)},nu(p,i),Br[n].push({vm:p}),s.appendChild(i.firstElementChild),{close:()=>{p.component.exposed.visible.value=!1}}};z6.forEach(e=>{vu[e]=(t={})=>((typeof t==\"string\"||cn(t))&&(t={message:t}),vu({...t,type:e}))});function Kre(e,t,n){const o=Br[t],l=o.findIndex(({vm:i})=>{var p;return((p=i.component)==null?void 0:p.props.id)===e});if(l===-1)return;const{vm:u}=o[l];if(!u)return;n==null||n(u);const a=u.el.offsetHeight,r=t.split(\"-\")[0];o.splice(l,1);const s=o.length;if(!(s<1))for(let i=l;i<s;i++){const{el:p,component:m}=o[i].vm,v=Number.parseInt(p.style[r],10)-a-Ei;m.props.offset=v}}function Gre(){for(const e of Object.values(Br))e.forEach(({vm:t})=>{t.component.exposed.visible.value=!1})}vu.closeAll=Gre;vu._context=null;const Yre=qf(vu,\"$notify\");var jc={exports:{}},M6=function(t,n){return function(){for(var l=new Array(arguments.length),u=0;u<l.length;u++)l[u]=arguments[u];return t.apply(n,l)}},Xre=M6,Kc=Object.prototype.toString,Gc=function(e){return function(t){var n=Kc.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())}}(Object.create(null));function Hl(e){return e=e.toLowerCase(),function(n){return Gc(n)===e}}function Yc(e){return Array.isArray(e)}function xr(e){return typeof e==\"undefined\"}function Jre(e){return e!==null&&!xr(e)&&e.constructor!==null&&!xr(e.constructor)&&typeof e.constructor.isBuffer==\"function\"&&e.constructor.isBuffer(e)}var V6=Hl(\"ArrayBuffer\");function Qre(e){var t;return typeof ArrayBuffer!=\"undefined\"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&V6(e.buffer),t}function Zre(e){return typeof e==\"string\"}function ese(e){return typeof e==\"number\"}function I6(e){return e!==null&&typeof e==\"object\"}function ir(e){if(Gc(e)!==\"object\")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}var tse=Hl(\"Date\"),nse=Hl(\"File\"),ose=Hl(\"Blob\"),lse=Hl(\"FileList\");function Xc(e){return Kc.call(e)===\"[object Function]\"}function use(e){return I6(e)&&Xc(e.pipe)}function ase(e){var t=\"[object FormData]\";return e&&(typeof FormData==\"function\"&&e instanceof FormData||Kc.call(e)===t||Xc(e.toString)&&e.toString()===t)}var rse=Hl(\"URLSearchParams\");function sse(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function ise(){return typeof navigator!=\"undefined\"&&(navigator.product===\"ReactNative\"||navigator.product===\"NativeScript\"||navigator.product===\"NS\")?!1:typeof window!=\"undefined\"&&typeof document!=\"undefined\"}function Jc(e,t){if(!(e===null||typeof e==\"undefined\"))if(typeof e!=\"object\"&&(e=[e]),Yc(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&t.call(null,e[l],l,e)}function Fi(){var e={};function t(l,u){ir(e[u])&&ir(l)?e[u]=Fi(e[u],l):ir(l)?e[u]=Fi({},l):Yc(l)?e[u]=l.slice():e[u]=l}for(var n=0,o=arguments.length;n<o;n++)Jc(arguments[n],t);return e}function cse(e,t,n){return Jc(t,function(l,u){n&&typeof l==\"function\"?e[u]=Xre(l,n):e[u]=l}),e}function dse(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}function fse(e,t,n,o){e.prototype=Object.create(t.prototype,o),e.prototype.constructor=e,n&&Object.assign(e.prototype,n)}function pse(e,t,n){var o,l,u,a={};t=t||{};do{for(o=Object.getOwnPropertyNames(e),l=o.length;l-- >0;)u=o[l],a[u]||(t[u]=e[u],a[u]=!0);e=Object.getPrototypeOf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t}function vse(e,t,n){e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;var o=e.indexOf(t,n);return o!==-1&&o===n}function hse(e){if(!e)return null;var t=e.length;if(xr(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n}var _se=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array!=\"undefined\"&&Object.getPrototypeOf(Uint8Array)),qt={isArray:Yc,isArrayBuffer:V6,isBuffer:Jre,isFormData:ase,isArrayBufferView:Qre,isString:Zre,isNumber:ese,isObject:I6,isPlainObject:ir,isUndefined:xr,isDate:tse,isFile:nse,isBlob:ose,isFunction:Xc,isStream:use,isURLSearchParams:rse,isStandardBrowserEnv:ise,forEach:Jc,merge:Fi,extend:cse,trim:sse,stripBOM:dse,inherits:fse,toFlatObject:pse,kindOf:Gc,kindOfTest:Hl,endsWith:vse,toArray:hse,isTypedArray:_se,isFileList:lse},Ol=qt;function xd(e){return encodeURIComponent(e).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}var H6=function(t,n,o){if(!n)return t;var l;if(o)l=o(n);else if(Ol.isURLSearchParams(n))l=n.toString();else{var u=[];Ol.forEach(n,function(s,i){s===null||typeof s==\"undefined\"||(Ol.isArray(s)?i=i+\"[]\":s=[s],Ol.forEach(s,function(m){Ol.isDate(m)?m=m.toISOString():Ol.isObject(m)&&(m=JSON.stringify(m)),u.push(xd(i)+\"=\"+xd(m))}))}),l=u.join(\"&\")}if(l){var a=t.indexOf(\"#\");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf(\"?\")===-1?\"?\":\"&\")+l}return t},mse=qt;function ls(){this.handlers=[]}ls.prototype.use=function(t,n,o){return this.handlers.push({fulfilled:t,rejected:n,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1};ls.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};ls.prototype.forEach=function(t){mse.forEach(this.handlers,function(o){o!==null&&t(o)})};var gse=ls,bse=qt,yse=function(t,n){bse.forEach(t,function(l,u){u!==n&&u.toUpperCase()===n.toUpperCase()&&(t[n]=l,delete t[u])})},R6=qt;function hu(e,t,n,o,l){Error.call(this),this.message=e,this.name=\"AxiosError\",t&&(this.code=t),n&&(this.config=n),o&&(this.request=o),l&&(this.response=l)}R6.inherits(hu,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var N6=hu.prototype,O6={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\"].forEach(function(e){O6[e]={value:e}});Object.defineProperties(hu,O6);Object.defineProperty(N6,\"isAxiosError\",{value:!0});hu.from=function(e,t,n,o,l,u){var a=Object.create(N6);return R6.toFlatObject(e,a,function(s){return s!==Error.prototype}),hu.call(a,e.message,t,n,o,l),a.name=e.name,u&&Object.assign(a,u),a};var Du=hu,U6={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},On=qt;function wse(e,t){t=t||new FormData;var n=[];function o(u){return u===null?\"\":On.isDate(u)?u.toISOString():On.isArrayBuffer(u)||On.isTypedArray(u)?typeof Blob==\"function\"?new Blob([u]):Buffer.from(u):u}function l(u,a){if(On.isPlainObject(u)||On.isArray(u)){if(n.indexOf(u)!==-1)throw Error(\"Circular reference detected in \"+a);n.push(u),On.forEach(u,function(s,i){if(!On.isUndefined(s)){var p=a?a+\".\"+i:i,m;if(s&&!a&&typeof s==\"object\"){if(On.endsWith(i,\"{}\"))s=JSON.stringify(s);else if(On.endsWith(i,\"[]\")&&(m=On.toArray(s))){m.forEach(function(v){!On.isUndefined(v)&&t.append(p,o(v))});return}}l(s,p)}}),n.pop()}else t.append(a,o(u))}return l(e),t}var W6=wse,$s=Du,Cse=function(t,n,o){var l=o.config.validateStatus;!o.status||!l||l(o.status)?t(o):n(new $s(\"Request failed with status code \"+o.status,[$s.ERR_BAD_REQUEST,$s.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o))},Wa=qt,Ese=Wa.isStandardBrowserEnv()?function(){return{write:function(n,o,l,u,a,r){var s=[];s.push(n+\"=\"+encodeURIComponent(o)),Wa.isNumber(l)&&s.push(\"expires=\"+new Date(l).toGMTString()),Wa.isString(u)&&s.push(\"path=\"+u),Wa.isString(a)&&s.push(\"domain=\"+a),r===!0&&s.push(\"secure\"),document.cookie=s.join(\"; \")},read:function(n){var o=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+n+\")=([^;]*)\"));return o?decodeURIComponent(o[3]):null},remove:function(n){this.write(n,\"\",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),Fse=function(t){return/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t)},Ase=function(t,n){return n?t.replace(/\\/+$/,\"\")+\"/\"+n.replace(/^\\/+/,\"\"):t},Dse=Fse,Bse=Ase,q6=function(t,n){return t&&!Dse(n)?Bse(t,n):n},Ss=qt,xse=[\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"],$se=function(t){var n={},o,l,u;return t&&Ss.forEach(t.split(`\n`),function(r){if(u=r.indexOf(\":\"),o=Ss.trim(r.substr(0,u)).toLowerCase(),l=Ss.trim(r.substr(u+1)),o){if(n[o]&&xse.indexOf(o)>=0)return;o===\"set-cookie\"?n[o]=(n[o]?n[o]:[]).concat([l]):n[o]=n[o]?n[o]+\", \"+l:l}}),n},$d=qt,Sse=$d.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement(\"a\"),o;function l(u){var a=u;return t&&(n.setAttribute(\"href\",a),a=n.href),n.setAttribute(\"href\",a),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,\"\"):\"\",host:n.host,search:n.search?n.search.replace(/^\\?/,\"\"):\"\",hash:n.hash?n.hash.replace(/^#/,\"\"):\"\",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)===\"/\"?n.pathname:\"/\"+n.pathname}}return o=l(window.location.href),function(a){var r=$d.isString(a)?l(a):a;return r.protocol===o.protocol&&r.host===o.host}}():function(){return function(){return!0}}(),Ai=Du,kse=qt;function j6(e){Ai.call(this,e==null?\"canceled\":e,Ai.ERR_CANCELED),this.name=\"CanceledError\"}kse.inherits(j6,Ai,{__CANCEL__:!0});var us=j6,Pse=function(t){var n=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(t);return n&&n[1]||\"\"},Tu=qt,Lse=Cse,Tse=Ese,zse=H6,Mse=q6,Vse=$se,Ise=Sse,Hse=U6,go=Du,Rse=us,Nse=Pse,Sd=function(t){return new Promise(function(o,l){var u=t.data,a=t.headers,r=t.responseType,s;function i(){t.cancelToken&&t.cancelToken.unsubscribe(s),t.signal&&t.signal.removeEventListener(\"abort\",s)}Tu.isFormData(u)&&Tu.isStandardBrowserEnv()&&delete a[\"Content-Type\"];var p=new XMLHttpRequest;if(t.auth){var m=t.auth.username||\"\",v=t.auth.password?unescape(encodeURIComponent(t.auth.password)):\"\";a.Authorization=\"Basic \"+btoa(m+\":\"+v)}var _=Mse(t.baseURL,t.url);p.open(t.method.toUpperCase(),zse(_,t.params,t.paramsSerializer),!0),p.timeout=t.timeout;function g(){if(!!p){var E=\"getAllResponseHeaders\"in p?Vse(p.getAllResponseHeaders()):null,D=!r||r===\"text\"||r===\"json\"?p.responseText:p.response,C={data:D,status:p.status,statusText:p.statusText,headers:E,config:t,request:p};Lse(function($){o($),i()},function($){l($),i()},C),p=null}}if(\"onloadend\"in p?p.onloadend=g:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf(\"file:\")===0)||setTimeout(g)},p.onabort=function(){!p||(l(new go(\"Request aborted\",go.ECONNABORTED,t,p)),p=null)},p.onerror=function(){l(new go(\"Network Error\",go.ERR_NETWORK,t,p,p)),p=null},p.ontimeout=function(){var D=t.timeout?\"timeout of \"+t.timeout+\"ms exceeded\":\"timeout exceeded\",C=t.transitional||Hse;t.timeoutErrorMessage&&(D=t.timeoutErrorMessage),l(new go(D,C.clarifyTimeoutError?go.ETIMEDOUT:go.ECONNABORTED,t,p)),p=null},Tu.isStandardBrowserEnv()){var y=(t.withCredentials||Ise(_))&&t.xsrfCookieName?Tse.read(t.xsrfCookieName):void 0;y&&(a[t.xsrfHeaderName]=y)}\"setRequestHeader\"in p&&Tu.forEach(a,function(D,C){typeof u==\"undefined\"&&C.toLowerCase()===\"content-type\"?delete a[C]:p.setRequestHeader(C,D)}),Tu.isUndefined(t.withCredentials)||(p.withCredentials=!!t.withCredentials),r&&r!==\"json\"&&(p.responseType=t.responseType),typeof t.onDownloadProgress==\"function\"&&p.addEventListener(\"progress\",t.onDownloadProgress),typeof t.onUploadProgress==\"function\"&&p.upload&&p.upload.addEventListener(\"progress\",t.onUploadProgress),(t.cancelToken||t.signal)&&(s=function(E){!p||(l(!E||E&&E.type?new Rse:E),p.abort(),p=null)},t.cancelToken&&t.cancelToken.subscribe(s),t.signal&&(t.signal.aborted?s():t.signal.addEventListener(\"abort\",s))),u||(u=null);var w=Nse(_);if(w&&[\"http\",\"https\",\"file\"].indexOf(w)===-1){l(new go(\"Unsupported protocol \"+w+\":\",go.ERR_BAD_REQUEST,t));return}p.send(u)})},Ose=null,Vt=qt,kd=yse,Pd=Du,Use=U6,Wse=W6,qse={\"Content-Type\":\"application/x-www-form-urlencoded\"};function Ld(e,t){!Vt.isUndefined(e)&&Vt.isUndefined(e[\"Content-Type\"])&&(e[\"Content-Type\"]=t)}function jse(){var e;return(typeof XMLHttpRequest!=\"undefined\"||typeof process!=\"undefined\"&&Object.prototype.toString.call(process)===\"[object process]\")&&(e=Sd),e}function Kse(e,t,n){if(Vt.isString(e))try{return(t||JSON.parse)(e),Vt.trim(e)}catch(o){if(o.name!==\"SyntaxError\")throw o}return(n||JSON.stringify)(e)}var as={transitional:Use,adapter:jse(),transformRequest:[function(t,n){if(kd(n,\"Accept\"),kd(n,\"Content-Type\"),Vt.isFormData(t)||Vt.isArrayBuffer(t)||Vt.isBuffer(t)||Vt.isStream(t)||Vt.isFile(t)||Vt.isBlob(t))return t;if(Vt.isArrayBufferView(t))return t.buffer;if(Vt.isURLSearchParams(t))return Ld(n,\"application/x-www-form-urlencoded;charset=utf-8\"),t.toString();var o=Vt.isObject(t),l=n&&n[\"Content-Type\"],u;if((u=Vt.isFileList(t))||o&&l===\"multipart/form-data\"){var a=this.env&&this.env.FormData;return Wse(u?{\"files[]\":t}:t,a&&new a)}else if(o||l===\"application/json\")return Ld(n,\"application/json\"),Kse(t);return t}],transformResponse:[function(t){var n=this.transitional||as.transitional,o=n&&n.silentJSONParsing,l=n&&n.forcedJSONParsing,u=!o&&this.responseType===\"json\";if(u||l&&Vt.isString(t)&&t.length)try{return JSON.parse(t)}catch(a){if(u)throw a.name===\"SyntaxError\"?Pd.from(a,Pd.ERR_BAD_RESPONSE,this,null,this.response):a}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ose},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\"}}};Vt.forEach([\"delete\",\"get\",\"head\"],function(t){as.headers[t]={}});Vt.forEach([\"post\",\"put\",\"patch\"],function(t){as.headers[t]=Vt.merge(qse)});var Qc=as,Gse=qt,Yse=Qc,Xse=function(t,n,o){var l=this||Yse;return Gse.forEach(o,function(a){t=a.call(l,t,n)}),t},K6=function(t){return!!(t&&t.__CANCEL__)},Td=qt,ks=Xse,Jse=K6,Qse=Qc,Zse=us;function Ps(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Zse}var eie=function(t){Ps(t),t.headers=t.headers||{},t.data=ks.call(t,t.data,t.headers,t.transformRequest),t.headers=Td.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),Td.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],function(l){delete t.headers[l]});var n=t.adapter||Qse.adapter;return n(t).then(function(l){return Ps(t),l.data=ks.call(t,l.data,l.headers,t.transformResponse),l},function(l){return Jse(l)||(Ps(t),l&&l.response&&(l.response.data=ks.call(t,l.response.data,l.response.headers,t.transformResponse))),Promise.reject(l)})},gn=qt,G6=function(t,n){n=n||{};var o={};function l(p,m){return gn.isPlainObject(p)&&gn.isPlainObject(m)?gn.merge(p,m):gn.isPlainObject(m)?gn.merge({},m):gn.isArray(m)?m.slice():m}function u(p){if(gn.isUndefined(n[p])){if(!gn.isUndefined(t[p]))return l(void 0,t[p])}else return l(t[p],n[p])}function a(p){if(!gn.isUndefined(n[p]))return l(void 0,n[p])}function r(p){if(gn.isUndefined(n[p])){if(!gn.isUndefined(t[p]))return l(void 0,t[p])}else return l(void 0,n[p])}function s(p){if(p in n)return l(t[p],n[p]);if(p in t)return l(void 0,t[p])}var i={url:a,method:a,data:a,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:s};return gn.forEach(Object.keys(t).concat(Object.keys(n)),function(m){var v=i[m]||u,_=v(m);gn.isUndefined(_)&&v!==s||(o[m]=_)}),o},Y6={version:\"0.27.2\"},tie=Y6.version,Go=Du,Zc={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach(function(e,t){Zc[e]=function(o){return typeof o===e||\"a\"+(t<1?\"n \":\" \")+e}});var zd={};Zc.transitional=function(t,n,o){function l(u,a){return\"[Axios v\"+tie+\"] Transitional option '\"+u+\"'\"+a+(o?\". \"+o:\"\")}return function(u,a,r){if(t===!1)throw new Go(l(a,\" has been removed\"+(n?\" in \"+n:\"\")),Go.ERR_DEPRECATED);return n&&!zd[a]&&(zd[a]=!0,console.warn(l(a,\" has been deprecated since v\"+n+\" and will be removed in the near future\"))),t?t(u,a,r):!0}};function nie(e,t,n){if(typeof e!=\"object\")throw new Go(\"options must be an object\",Go.ERR_BAD_OPTION_VALUE);for(var o=Object.keys(e),l=o.length;l-- >0;){var u=o[l],a=t[u];if(a){var r=e[u],s=r===void 0||a(r,u,e);if(s!==!0)throw new Go(\"option \"+u+\" must be \"+s,Go.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Go(\"Unknown option \"+u,Go.ERR_BAD_OPTION)}}var oie={assertOptions:nie,validators:Zc},X6=qt,lie=H6,Md=gse,Vd=eie,rs=G6,uie=q6,J6=oie,Ul=J6.validators;function _u(e){this.defaults=e,this.interceptors={request:new Md,response:new Md}}_u.prototype.request=function(t,n){typeof t==\"string\"?(n=n||{},n.url=t):n=t||{},n=rs(this.defaults,n),n.method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method=\"get\";var o=n.transitional;o!==void 0&&J6.assertOptions(o,{silentJSONParsing:Ul.transitional(Ul.boolean),forcedJSONParsing:Ul.transitional(Ul.boolean),clarifyTimeoutError:Ul.transitional(Ul.boolean)},!1);var l=[],u=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen==\"function\"&&_.runWhen(n)===!1||(u=u&&_.synchronous,l.unshift(_.fulfilled,_.rejected))});var a=[];this.interceptors.response.forEach(function(_){a.push(_.fulfilled,_.rejected)});var r;if(!u){var s=[Vd,void 0];for(Array.prototype.unshift.apply(s,l),s=s.concat(a),r=Promise.resolve(n);s.length;)r=r.then(s.shift(),s.shift());return r}for(var i=n;l.length;){var p=l.shift(),m=l.shift();try{i=p(i)}catch(v){m(v);break}}try{r=Vd(i)}catch(v){return Promise.reject(v)}for(;a.length;)r=r.then(a.shift(),a.shift());return r};_u.prototype.getUri=function(t){t=rs(this.defaults,t);var n=uie(t.baseURL,t.url);return lie(n,t.params,t.paramsSerializer)};X6.forEach([\"delete\",\"get\",\"head\",\"options\"],function(t){_u.prototype[t]=function(n,o){return this.request(rs(o||{},{method:t,url:n,data:(o||{}).data}))}});X6.forEach([\"post\",\"put\",\"patch\"],function(t){function n(o){return function(u,a,r){return this.request(rs(r||{},{method:t,headers:o?{\"Content-Type\":\"multipart/form-data\"}:{},url:u,data:a}))}}_u.prototype[t]=n(),_u.prototype[t+\"Form\"]=n(!0)});var aie=_u,rie=us;function mu(e){if(typeof e!=\"function\")throw new TypeError(\"executor must be a function.\");var t;this.promise=new Promise(function(l){t=l});var n=this;this.promise.then(function(o){if(!!n._listeners){var l,u=n._listeners.length;for(l=0;l<u;l++)n._listeners[l](o);n._listeners=null}}),this.promise.then=function(o){var l,u=new Promise(function(a){n.subscribe(a),l=a}).then(o);return u.cancel=function(){n.unsubscribe(l)},u},e(function(l){n.reason||(n.reason=new rie(l),t(n.reason))})}mu.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};mu.prototype.subscribe=function(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]};mu.prototype.unsubscribe=function(t){if(!!this._listeners){var n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}};mu.source=function(){var t,n=new mu(function(l){t=l});return{token:n,cancel:t}};var sie=mu,iie=function(t){return function(o){return t.apply(null,o)}},cie=qt,die=function(t){return cie.isObject(t)&&t.isAxiosError===!0},Id=qt,fie=M6,cr=aie,pie=G6,vie=Qc;function Q6(e){var t=new cr(e),n=fie(cr.prototype.request,t);return Id.extend(n,cr.prototype,t),Id.extend(n,t),n.create=function(l){return Q6(pie(e,l))},n}var fn=Q6(vie);fn.Axios=cr;fn.CanceledError=us;fn.CancelToken=sie;fn.isCancel=K6;fn.VERSION=Y6.version;fn.toFormData=W6;fn.AxiosError=Du;fn.Cancel=fn.CanceledError;fn.all=function(t){return Promise.all(t)};fn.spread=iie;fn.isAxiosError=die;jc.exports=fn;jc.exports.default=fn;var hie=jc.exports;console.log(\"vue run mode production\");var _ie=\"/\";const Ye=hie.create({baseURL:_ie,timeout:5e3,withCredentials:!1,headers:{\"Content-Type\":\"application/json\"}});Ye.interceptors.request.use(function(e){return e},function(e){return console.log(e),Promise.reject(e)});Ye.interceptors.response.use(function(e){const t=e.data;return t.reset,t.ret!=null&&t.ret==-1&&(console.log(\"\\u767B\\u5F55\\u5931\\u6548\"),location.hash=\"#login\"),t},function(e){return console.log(e),Promise.reject(e)});var ca={getStorage(){return JSON.parse(window.localStorage.getItem(\"lucky\")||\"{}\")},setItem(e,t){let n=this.getStorage();n[e]=t,window.localStorage.setItem(\"lucky\",JSON.stringify(n))},getItem(e){return this.getStorage()[e]},clearItem(e){let t=this.getStorage();delete t[e],window.localStorage.setItem(config.namespace,JSON.stringify(t))},clearAll(){window.localStorage.clear()}};function Hd(e){location.hash=e}function Je(){return ca.getItem(\"token\")==null?\"\":ca.getItem(\"token\")}function mie(){return Ye({url:\"/api/status\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function gie(e){return Ye({url:\"/api/logs\",method:\"get\",headers:{Authorization:Je()},params:{pre:e,_:new Date().valueOf()}})}function bie(e){return Ye({url:\"/api/ddns\",method:\"post\",headers:{Authorization:Je()},data:e})}function yie(e,t){return Ye({url:\"/api/ddns\",method:\"put\",headers:{Authorization:Je()},data:t,params:{key:e}})}function wie(e){return Ye({url:\"/api/ddns\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function Cie(){return Ye({url:\"/api/ddnstasklist\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Eie(e,t){return Ye({url:\"/api/ddns/enable\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),enable:t,key:e}})}function Fie(){return Ye({url:\"/api/baseconfigure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Aie(){return Ye({url:\"/api/ddns/configure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Die(e){return Ye({url:\"/api/baseconfigure\",method:\"put\",headers:{Authorization:Je()},data:e})}function Bie(e){return Ye({url:\"/api/ddns/configure\",method:\"put\",headers:{Authorization:Je()},data:e})}function xie(e){return Ye({url:\"/api/login\",method:\"post\",data:e})}function $ie(){return Ye({url:\"/api/reboot_program\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Sie(e){return Ye({url:\"/api/whitelist/configure\",method:\"put\",headers:{Authorization:Je()},data:e})}function kie(e){return Ye({url:\"/api/whitelist/configure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Pie(e){return Ye({url:\"/api/whitelist\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Rd(e,t){return Ye({url:\"/api/whitelist/flush\",method:\"put\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),ip:e,life:t}})}function Lie(e,t){return Ye({url:\"/api/whitelist\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),ip:e}})}function Tie(e){return Ye({url:\"/api/blacklist\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Nd(e,t){return Ye({url:\"/api/blacklist/flush\",method:\"put\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),ip:e,life:t}})}function zie(e,t){return Ye({url:\"/api/blacklist\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),ip:e}})}function Mie(){return Ye({url:\"/version\",method:\"get\",params:{_:new Date().valueOf()}})}function Vie(){return Ye({url:\"/api/logout\",method:\"put\",headers:{Authorization:Je()}})}function Iie(){return Ye({url:\"/api/netinterfaces\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Hie(e,t,n){return Ye({url:\"/api/ipregtest\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),iptype:e,netinterface:t,ipreg:n}})}function Rie(e,t){return Ye({url:\"api/webhooktest\",headers:{Authorization:Je()},method:\"post\",data:t,params:{key:e}})}function Nie(){return Ye({url:\"/api/info\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Oie(e){return Ye({url:\"/api/restoreconfigureconfirm\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function Uie(){return Ye({url:\"/api/configure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Wie(e){return Ye({url:\"/api/ssl\",method:\"delete\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function qie(e){return Ye({url:\"/api/ssl\",method:\"post\",headers:{Authorization:Je()},data:e})}function Od(e,t,n){return Ye({url:\"/api/ssl\",method:\"put\",headers:{Authorization:Je()},params:{key:e,field:t,value:n}})}function jie(e){return Ye({url:\"/api/ssl\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Kie(e){return Ye({url:\"/api/reverseproxyrule\",method:\"post\",headers:{Authorization:Je()},data:e})}function Gie(){return Ye({url:\"/api/reverseproxyrules\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Yie(e){return Ye({url:\"/api/reverseproxyrule\",method:\"put\",headers:{Authorization:Je()},data:e,params:{_:new Date().valueOf()}})}function Xie(e){return Ye({url:\"/api/reverseproxyrule\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function Ud(e,t,n){return Ye({url:\"/api/reverseproxyrule/enable\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),enable:n,ruleKey:e,proxyKey:t}})}function Ls(e,t,n,o){return Ye({url:\"/api/reverseproxyrule/logs\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),ruleKey:e,proxyKey:t,pageSize:n,page:o}})}function Jie(){return Ye({url:\"/api/portforwards\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function Qie(e){return Ye({url:\"/api/portforward\",method:\"post\",headers:{Authorization:Je()},data:e})}function Zie(e){return Ye({url:\"/api/portforward\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function ece(e){return Ye({url:\"/api/portforward\",method:\"put\",headers:{Authorization:Je()},data:e})}function tce(e,t){return Ye({url:\"/api/portforward/enable\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),enable:t,key:e}})}function nce(){return Ye({url:\"/api/portforward/configure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function oce(e){return Ye({url:\"/api/portforward/configure\",method:\"put\",headers:{Authorization:Je()},data:e})}function Ts(e,t,n){return Ye({url:\"/api/portforward/logs\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e,pageSize:t,page:n}})}function lce(){return Ye({url:\"/api/wol/devices\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function uce(e){return Ye({url:\"/api/wol/device\",method:\"post\",headers:{Authorization:Je()},data:e})}function ace(e){return Ye({url:\"/api/wol/device\",method:\"delete\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function rce(e){return Ye({url:\"/api/wol/device/wakeup\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function sce(e){return Ye({url:\"/api/wol/device/shutdown\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),key:e}})}function ice(e){return Ye({url:\"/api/wol/device\",method:\"put\",headers:{Authorization:Je()},data:e})}function cce(){return Ye({url:\"/api/wol/service/configure\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function dce(e){return Ye({url:\"/api/wol/service/configure\",method:\"put\",headers:{Authorization:Je()},data:e,params:{_:new Date().valueOf()}})}function fce(){return Ye({url:\"api/wol/service/getipv4interface\",method:\"get\",headers:{Authorization:Je()},params:{_:new Date().valueOf()}})}function pce(e){return Ye({url:\"/api/lucky/service\",method:\"put\",headers:{Authorization:Je()},params:{_:new Date().valueOf(),option:e}})}var Z6={exports:{}};/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */(function(e,t){(function(o,l){e.exports=l()})(ql,function(){return function(){var n={686:function(u,a,r){r.d(a,{default:function(){return Be}});var s=r(279),i=r.n(s),p=r(370),m=r.n(p),v=r(817),_=r.n(v);function g(x){try{return document.execCommand(x)}catch{return!1}}var y=function(O){var ye=_()(O);return g(\"cut\"),ye},w=y;function E(x){var O=document.documentElement.getAttribute(\"dir\")===\"rtl\",ye=document.createElement(\"textarea\");ye.style.fontSize=\"12pt\",ye.style.border=\"0\",ye.style.padding=\"0\",ye.style.margin=\"0\",ye.style.position=\"absolute\",ye.style[O?\"right\":\"left\"]=\"-9999px\";var xe=window.pageYOffset||document.documentElement.scrollTop;return ye.style.top=\"\".concat(xe,\"px\"),ye.setAttribute(\"readonly\",\"\"),ye.value=x,ye}var D=function(O,ye){var xe=E(O);ye.container.appendChild(xe);var Pe=_()(xe);return g(\"copy\"),xe.remove(),Pe},C=function(O){var ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},xe=\"\";return typeof O==\"string\"?xe=D(O,ye):O instanceof HTMLInputElement&&![\"text\",\"search\",\"url\",\"tel\",\"password\"].includes(O==null?void 0:O.type)?xe=D(O.value,ye):(xe=_()(O),g(\"copy\")),xe},B=C;function $(x){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?$=function(ye){return typeof ye}:$=function(ye){return ye&&typeof Symbol==\"function\"&&ye.constructor===Symbol&&ye!==Symbol.prototype?\"symbol\":typeof ye},$(x)}var k=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ye=O.action,xe=ye===void 0?\"copy\":ye,Pe=O.container,he=O.target,Te=O.text;if(xe!==\"copy\"&&xe!==\"cut\")throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');if(he!==void 0)if(he&&$(he)===\"object\"&&he.nodeType===1){if(xe===\"copy\"&&he.hasAttribute(\"disabled\"))throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');if(xe===\"cut\"&&(he.hasAttribute(\"readonly\")||he.hasAttribute(\"disabled\")))throw new Error(`Invalid \"target\" attribute. You can't cut text from elements with \"readonly\" or \"disabled\" attributes`)}else throw new Error('Invalid \"target\" value, use a valid Element');if(Te)return B(Te,{container:Pe});if(he)return xe===\"cut\"?w(he):B(he,{container:Pe})},P=k;function T(x){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?T=function(ye){return typeof ye}:T=function(ye){return ye&&typeof Symbol==\"function\"&&ye.constructor===Symbol&&ye!==Symbol.prototype?\"symbol\":typeof ye},T(x)}function H(x,O){if(!(x instanceof O))throw new TypeError(\"Cannot call a class as a function\")}function j(x,O){for(var ye=0;ye<O.length;ye++){var xe=O[ye];xe.enumerable=xe.enumerable||!1,xe.configurable=!0,\"value\"in xe&&(xe.writable=!0),Object.defineProperty(x,xe.key,xe)}}function X(x,O,ye){return O&&j(x.prototype,O),ye&&j(x,ye),x}function W(x,O){if(typeof O!=\"function\"&&O!==null)throw new TypeError(\"Super expression must either be null or a function\");x.prototype=Object.create(O&&O.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),O&&N(x,O)}function N(x,O){return N=Object.setPrototypeOf||function(xe,Pe){return xe.__proto__=Pe,xe},N(x,O)}function J(x){var O=Ee();return function(){var xe=te(x),Pe;if(O){var he=te(this).constructor;Pe=Reflect.construct(xe,arguments,he)}else Pe=xe.apply(this,arguments);return be(this,Pe)}}function be(x,O){return O&&(T(O)===\"object\"||typeof O==\"function\")?O:ve(x)}function ve(x){if(x===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return x}function Ee(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function te(x){return te=Object.setPrototypeOf?Object.getPrototypeOf:function(ye){return ye.__proto__||Object.getPrototypeOf(ye)},te(x)}function Z(x,O){var ye=\"data-clipboard-\".concat(x);if(!!O.hasAttribute(ye))return O.getAttribute(ye)}var De=function(x){W(ye,x);var O=J(ye);function ye(xe,Pe){var he;return H(this,ye),he=O.call(this),he.resolveOptions(Pe),he.listenClick(xe),he}return X(ye,[{key:\"resolveOptions\",value:function(){var Pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof Pe.action==\"function\"?Pe.action:this.defaultAction,this.target=typeof Pe.target==\"function\"?Pe.target:this.defaultTarget,this.text=typeof Pe.text==\"function\"?Pe.text:this.defaultText,this.container=T(Pe.container)===\"object\"?Pe.container:document.body}},{key:\"listenClick\",value:function(Pe){var he=this;this.listener=m()(Pe,\"click\",function(Te){return he.onClick(Te)})}},{key:\"onClick\",value:function(Pe){var he=Pe.delegateTarget||Pe.currentTarget,Te=this.action(he)||\"copy\",je=P({action:Te,container:this.container,target:this.target(he),text:this.text(he)});this.emit(je?\"success\":\"error\",{action:Te,text:je,trigger:he,clearSelection:function(){he&&he.focus(),window.getSelection().removeAllRanges()}})}},{key:\"defaultAction\",value:function(Pe){return Z(\"action\",Pe)}},{key:\"defaultTarget\",value:function(Pe){var he=Z(\"target\",Pe);if(he)return document.querySelector(he)}},{key:\"defaultText\",value:function(Pe){return Z(\"text\",Pe)}},{key:\"destroy\",value:function(){this.listener.destroy()}}],[{key:\"copy\",value:function(Pe){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return B(Pe,he)}},{key:\"cut\",value:function(Pe){return w(Pe)}},{key:\"isSupported\",value:function(){var Pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[\"copy\",\"cut\"],he=typeof Pe==\"string\"?[Pe]:Pe,Te=!!document.queryCommandSupported;return he.forEach(function(je){Te=Te&&!!document.queryCommandSupported(je)}),Te}}]),ye}(i()),Be=De},828:function(u){var a=9;if(typeof Element!=\"undefined\"&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}function s(i,p){for(;i&&i.nodeType!==a;){if(typeof i.matches==\"function\"&&i.matches(p))return i;i=i.parentNode}}u.exports=s},438:function(u,a,r){var s=r(828);function i(v,_,g,y,w){var E=m.apply(this,arguments);return v.addEventListener(g,E,w),{destroy:function(){v.removeEventListener(g,E,w)}}}function p(v,_,g,y,w){return typeof v.addEventListener==\"function\"?i.apply(null,arguments):typeof g==\"function\"?i.bind(null,document).apply(null,arguments):(typeof v==\"string\"&&(v=document.querySelectorAll(v)),Array.prototype.map.call(v,function(E){return i(E,_,g,y,w)}))}function m(v,_,g,y){return function(w){w.delegateTarget=s(w.target,_),w.delegateTarget&&y.call(v,w)}}u.exports=p},879:function(u,a){a.node=function(r){return r!==void 0&&r instanceof HTMLElement&&r.nodeType===1},a.nodeList=function(r){var s=Object.prototype.toString.call(r);return r!==void 0&&(s===\"[object NodeList]\"||s===\"[object HTMLCollection]\")&&\"length\"in r&&(r.length===0||a.node(r[0]))},a.string=function(r){return typeof r==\"string\"||r instanceof String},a.fn=function(r){var s=Object.prototype.toString.call(r);return s===\"[object Function]\"}},370:function(u,a,r){var s=r(879),i=r(438);function p(g,y,w){if(!g&&!y&&!w)throw new Error(\"Missing required arguments\");if(!s.string(y))throw new TypeError(\"Second argument must be a String\");if(!s.fn(w))throw new TypeError(\"Third argument must be a Function\");if(s.node(g))return m(g,y,w);if(s.nodeList(g))return v(g,y,w);if(s.string(g))return _(g,y,w);throw new TypeError(\"First argument must be a String, HTMLElement, HTMLCollection, or NodeList\")}function m(g,y,w){return g.addEventListener(y,w),{destroy:function(){g.removeEventListener(y,w)}}}function v(g,y,w){return Array.prototype.forEach.call(g,function(E){E.addEventListener(y,w)}),{destroy:function(){Array.prototype.forEach.call(g,function(E){E.removeEventListener(y,w)})}}}function _(g,y,w){return i(document.body,g,y,w)}u.exports=p},817:function(u){function a(r){var s;if(r.nodeName===\"SELECT\")r.focus(),s=r.value;else if(r.nodeName===\"INPUT\"||r.nodeName===\"TEXTAREA\"){var i=r.hasAttribute(\"readonly\");i||r.setAttribute(\"readonly\",\"\"),r.select(),r.setSelectionRange(0,r.value.length),i||r.removeAttribute(\"readonly\"),s=r.value}else{r.hasAttribute(\"contenteditable\")&&r.focus();var p=window.getSelection(),m=document.createRange();m.selectNodeContents(r),p.removeAllRanges(),p.addRange(m),s=p.toString()}return s}u.exports=a},279:function(u){function a(){}a.prototype={on:function(r,s,i){var p=this.e||(this.e={});return(p[r]||(p[r]=[])).push({fn:s,ctx:i}),this},once:function(r,s,i){var p=this;function m(){p.off(r,m),s.apply(i,arguments)}return m._=s,this.on(r,m,i)},emit:function(r){var s=[].slice.call(arguments,1),i=((this.e||(this.e={}))[r]||[]).slice(),p=0,m=i.length;for(p;p<m;p++)i[p].fn.apply(i[p].ctx,s);return this},off:function(r,s){var i=this.e||(this.e={}),p=i[r],m=[];if(p&&s)for(var v=0,_=p.length;v<_;v++)p[v].fn!==s&&p[v].fn._!==s&&m.push(p[v]);return m.length?i[r]=m:delete i[r],this}},u.exports=a,u.exports.TinyEmitter=a}},o={};function l(u){if(o[u])return o[u].exports;var a=o[u]={exports:{}};return n[u](a,a.exports,l),a.exports}return function(){l.n=function(u){var a=u&&u.__esModule?function(){return u.default}:function(){return u};return l.d(a,{a}),a}}(),function(){l.d=function(u,a){for(var r in a)l.o(a,r)&&!l.o(u,r)&&Object.defineProperty(u,r,{enumerable:!0,get:a[r]})}}(),function(){l.o=function(u,a){return Object.prototype.hasOwnProperty.call(u,a)}}(),l(686)}().default})})(Z6);var vce=kee(Z6.exports),hce=e=>{const t=(e==null?void 0:e.appendToBody)===void 0?!0:e.appendToBody;return{toClipboard(n,o){return new Promise((l,u)=>{const a=document.createElement(\"button\"),r=new vce(a,{text:()=>n,action:()=>\"copy\",container:o!==void 0?o:document.body});r.on(\"success\",s=>{r.destroy(),l(s)}),r.on(\"error\",s=>{r.destroy(),u(s)}),t&&document.body.appendChild(a),a.click(),t&&document.body.removeChild(a)})}}};function Di(e){hce().toClipboard(e)}const _ce=/^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){6}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^::([\\da-fA-F]{1,4}:){0,4}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:):([\\da-fA-F]{1,4}:){0,3}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){2}:([\\da-fA-F]{1,4}:){0,2}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){3}:([\\da-fA-F]{1,4}:){0,1}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){4}:((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){7}[\\da-fA-F]{1,4}$|^:((:[\\da-fA-F]{1,4}){1,6}|:)$|^[\\da-fA-F]{1,4}:((:[\\da-fA-F]{1,4}){1,5}|:)$|^([\\da-fA-F]{1,4}:){2}((:[\\da-fA-F]{1,4}){1,4}|:)$|^([\\da-fA-F]{1,4}:){3}((:[\\da-fA-F]{1,4}){1,3}|:)$|^([\\da-fA-F]{1,4}:){4}((:[\\da-fA-F]{1,4}){1,2}|:)$|^([\\da-fA-F]{1,4}:){5}:([\\da-fA-F]{1,4})?$|^([\\da-fA-F]{1,4}:){6}:$/;function mce(e){return _ce.test(e)}const Wd=[\"#status\",\"#log\",\"#whitelistset\",\"#whitelists\",\"#blacklists\",\"#set\",\"#login\",\"#about\",\"#ddns\",\"#ddnstasklist\",\"#ddnsset\",\"#reverseproxylist\",\"#ssl\",\"#portforward\",\"#portforwardset\",\"#wol\",\"#wolserviceset\"];function ep(e){for(let t in Wd)if(Wd[t]==e)return!0;return!1}const gce=L(\"\");function xt(e){let t=e.split(`\n`),n=new Array;for(let o in t){let l=t[o].replace(/^\\s+|\\s+$/g,\"\").replace(/<\\/?.+?>/g,\"\").replace(/[\\r\\n]/g,\"\");l!=\"\"&&n.push(l)}return n}function Zo(e){var t=\"\";for(let n in e)t+=e[n]+\"<br />\";return t}function $n(e){var t=\"\";for(let n in e)n!=\"0\"&&(t+=`\n`),t+=e[n];return t}const Bi=[{value:2,label:\"Error\"},{value:3,label:\"Warn\"},{value:4,label:\"Info\"},{value:5,label:\"Debug\"},{value:6,label:\"Trace\"}],qd=e=>{if(e===0)return\"0 B\";var t=1e3,n=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],o=Math.floor(Math.log(e)/Math.log(t));return(e/Math.pow(t,o)).toPrecision(3)+\" \"+n[o]};function Yo(e){$t.alert(e,{confirmButtonText:\"\\u597D\\u7684\",callback:()=>{}})}function ne(e,t){Fre({message:t,type:e})}function so(e,t,n){Yre({title:e.substring(0,1).toUpperCase()+e.substring(1),message:t,type:e,duration:n})}var hn=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const kt=e=>(gu(\"data-v-a4c91d4e\"),e=e(),bu(),e),bce={class:\"PageRadius\",style:{borderRadius:\"base\"}},yce={class:\"formradius\",style:{borderRadius:\"base\"}},wce={class:\"AdminListenDivRadius\"},Cce=kt(()=>f(\"p\",null,\"\\u670D\\u52A1\\u7AEF\\u8BBE\\u7F6E\",-1)),Ece=kt(()=>f(\"br\",null,null,-1)),Fce=kt(()=>f(\"br\",null,null,-1)),Ace={class:\"AdminListenDivRadius\"},Dce=kt(()=>f(\"p\",null,\"\\u5BA2\\u6237\\u7AEF\\u8BBE\\u7F6E\",-1)),Bce=kt(()=>f(\"br\",null,null,-1)),xce=kt(()=>f(\"br\",null,null,-1)),$ce=kt(()=>f(\"br\",null,null,-1)),Sce=kt(()=>f(\"br\",null,null,-1)),kce=kt(()=>f(\"br\",null,null,-1)),Pce=kt(()=>f(\"br\",null,null,-1)),Lce=kt(()=>f(\"br\",null,null,-1)),Tce=kt(()=>f(\"br\",null,null,-1)),zce=[\"innerHTML\"],Mce=kt(()=>f(\"br\",null,null,-1)),Vce=kt(()=>f(\"br\",null,null,-1)),Ice=kt(()=>f(\"br\",null,null,-1)),Hce=kt(()=>f(\"br\",null,null,-1)),Rce=kt(()=>f(\"br\",null,null,-1)),Nce=kt(()=>f(\"br\",null,null,-1)),Oce=kt(()=>f(\"br\",null,null,-1)),Uce={class:\"AdminListenDivRadius\"},Wce=kt(()=>f(\"br\",null,null,-1)),qce=kt(()=>f(\"br\",null,null,-1)),jce=kt(()=>f(\"br\",null,null,-1)),Kce=le({__name:\"WOLServiceSet\",setup(e){console.log(\"window.location.href \"+window.location.href),console.log(\"window.location.port \"+window.location.port),console.log(\"window.location.host \"+window.location.host),console.log(\"window.location \"+JSON.stringify(window.location)),L(!1);const t=L([{IP:\"\",BroadcastIP:\"\"}]),n=L([{label:\"windows\\u5173\\u673A\\u6307\\u4EE4\",value:\"Shutdown /s /t 0\"},{label:\"Linux\\u5173\\u673A\\u6307\\u4EE4\",value:\"poweroff\"},{label:\"windows\\u4F11\\u7720\\u6307\\u4EE4\",value:\"rundll32.exe powrprof.dll,SetSuspendState 0,1,0\"},{label:\"\\u81EA\\u5B9A\\u4E49\",value:\"\"}]),o=L([{NetInterfaceName:\"\",HardwareAddr:\"\",AddressList:[{IP:\"\",BroadcastIP:\"\"}]}]),l=y=>{let w=new Array;for(let E in y)w.push(y[E].IP);return w},u=y=>{if(y!=\"\"){for(let w in o.value)if(o.value[w].HardwareAddr==y){t.value=o.value[w].AddressList;break}t.value.length<=0||(p.value.Client.BroadcastIP=t.value[0].BroadcastIP)}},a={Server:{Enable:!1,Token:\"\"},Client:{Enable:!1,ServerURL:\"\",Token:\"\",Relay:!1,Key:\"\",DeviceName:\"\",Mac:\"\",BroadcastIP:\"\",Port:9,Repeat:5,PowerOffCMD:\"\"}},r=L(\"\"),s=L(\"\"),i=L(-1),p=L(a);L(a);const m=()=>{fce().then(y=>{if(y.ret==0){o.value=y.list,u(p.value.Client.Mac);return}ne(\"error\",\"\\u83B7\\u53D6Ipv4\\u7F51\\u5361\\u4FE1\\u606F\\u5217\\u8868\\u51FA\\u9519\"+y.msg)}).catch(y=>{console.log(\"\\u83B7\\u53D6Ipv4\\u7F51\\u5361\\u4FE1\\u606F\\u5217\\u8868\\u51FA\\u9519:\"+y),ne(\"error\",\"\\u83B7\\u53D6Ipv4\\u7F51\\u5361\\u4FE1\\u606F\\u5217\\u8868\\u51FA\\u9519\")})},v=()=>{cce().then(y=>{if(y.ret==0){p.value=y.configure,r.value=y.ClientState,s.value=y.ClientStateMsg,i.value=y.serviceStatus;return}ne(\"error\",\"\\u83B7\\u53D6\\u5524\\u9192\\u670D\\u52A1\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(y=>{console.log(\"\\u83B7\\u53D6\\u5524\\u9192\\u670D\\u52A1\\u914D\\u7F6E\\u51FA\\u9519:\"+y),ne(\"error\",\"\\u83B7\\u53D6\\u5524\\u9192\\u670D\\u52A1\\u914D\\u7F6E\\u51FA\\u9519\")})},_=y=>{var w=\"\\u5B89\\u88C5Lucky\\u670D\\u52A1\";y==\"unstall\"?w=\"\\u5378\\u8F7DLucky\\u670D\\u52A1\":y==\"start\"?w=\"\\u542F\\u52A8Lucky\\u670D\\u52A1\":y==\"stop\"?w=\"\\u505C\\u6B62lucky\\u670D\\u52A1\":y==\"restart\"&&(w=\"\\u91CD\\u542Flucky\\u670D\\u52A1\");var E=\"\";y==\"install\"?E=`\n\\u5B89\\u88C5\\u6210\\u529F\\u540Elucky\\u4F1A\\u91CD\\u542F\\u5E76\\u4EE5windows\\u540E\\u53F0\\u670D\\u52A1\\u65B9\\u5F0F\\u542F\\u52A8,\\u5230\\u65F6\\u9700\\u91CD\\u65B0\\u767B\\u5F55\\u540E\\u53F0`:y==\"unstall\"&&(E=`\n\\u5378\\u8F7D\\u540Elucky\\u4E5F\\u4F1A\\u968F\\u4E4B\\u9000\\u51FA,\\u5982\\u6709\\u9700\\u8981\\u8BF7\\u624B\\u52A8\\u542F\\u52A8`),$t.confirm(\"\\u786E\\u8BA4\\u8981 \"+w+\" ?\"+E,\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{pce(y).then(D=>{if(D.ret==0){ne(\"success\",w+\"\\u6210\\u529F\"),y==1&&ne(\"success\",\"\\u8BF7\\u91CD\\u65B0\\u542F\\u52A8\\u7CFB\\u7EDF\\u540E\\u6267\\u884C\\u8F93\\u5165\\u540E\\u53F0\\u7F51\\u7AD9,\\u786E\\u8BA4lucky\\u670D\\u52A1\\u5DF2\\u6B63\\u5E38\\u81EA\\u542F.\"),D.msg!=\"\"&&ne(\"success\",D.msg),i.value=D.status;return}console.log(w+\" \\u51FA\\u9519:\"+D.msg),ne(\"error\",D.msg)}).catch(D=>{console.log(\"\\u670D\\u52A1\\u72B6\\u6001\\u4FEE\\u6539\\u51FA\\u9519,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+D),ne(\"error\",\"\\u670D\\u52A1\\u72B6\\u6001\\u4FEE\\u6539\\u51FA\\u9519,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},g=()=>{dce(p.value).then(y=>{if(y.ret==0){ne(\"success\",\"\\u4FEE\\u6539\\u6210\\u529F\"),p.value=y.configure,setTimeout(()=>{v()},2e3);return}console.log(\"\\u4FDD\\u5B58\\u914D\\u7F6E\\u51FA\\u9519:\"+y.msg),ne(\"error\",y.msg)}).catch(y=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+y),ne(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})};return ot(()=>{v(),m()}),In(()=>{}),(y,w)=>{const E=rl,D=Bn,C=pn,B=nn,$=Ic,k=vn,P=Ea,T=Ca,H=eo,j=Hn,X=Yt;return b(),F(\"div\",bce,[c(X,{height:\"100%\"},{default:d(()=>[f(\"div\",yce,[c(j,{model:p.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[f(\"div\",wce,[Cce,c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u88AB\\u63A7\\u5236\\u7AEF\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\"),Ece]),default:d(()=>[c(D,{label:\"\\u670D\\u52A1\\u7AEF\\u5F00\\u5173\"},{default:d(()=>[c(E,{modelValue:p.value.Server.Enable,\"onUpdate:modelValue\":w[0]||(w[0]=W=>p.value.Server.Enable=W),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5BA2\\u6237\\u7AEF\\u767B\\u5F55\\u9700\\u8981\\u586B\\u5199Token\\u4E00\\u81F4\"),Fce]),default:d(()=>[c(D,{label:\"\\u8BA4\\u8BC1Token\"},{default:d(()=>[c(B,{modelValue:p.value.Server.Token,\"onUpdate:modelValue\":w[1]||(w[1]=W=>p.value.Server.Token=W),placeholder:\"Token\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,p.value.Server.Enable]])]),f(\"div\",Ace,[Dce,c(D,{label:\"\\u5BA2\\u6237\\u7AEF\\u5F00\\u5173\"},{default:d(()=>[c(E,{modelValue:p.value.Client.Enable,\"onUpdate:modelValue\":w[2]||(w[2]=W=>p.value.Client.Enable=W),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"]),c($,{direction:\"vertical\"}),fe(c(k,{size:\"small\"},{default:d(()=>[A(re(r.value),1)]),_:1},512),[[ge,!0]]),fe(c($,{direction:\"vertical\"},null,512),[[ge,s.value!=\"\"]]),fe(c(k,{size:\"small\",type:\"danger\"},{default:d(()=>[A(re(s.value),1)]),_:1},512),[[ge,s.value!=\"\"]])]),_:1}),fe(f(\"div\",null,[c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8FD9\\u91CC\\u586B\\u4F60\\u7684lucky\\u540E\\u53F0\\u7BA1\\u7406\\u5730\\u5740\"),Bce,A(\" \\u6BD4\\u5982:\"),xce,A(\" http://192.168.31.1:16601\"),$ce,A(\" \\u6216\\u8005\"),Sce,A(\" https://192.168.31.1:16601\"),kce,A(\" \\u4FDD\\u5B58\\u914D\\u7F6E\\u540E\\u4F1A\\u81EA\\u52A8\\u8F6C\\u4E3Aws://\\u6216\\u8005wss://\\u5F00\\u5934\\u7684websocket\\u534F\\u8BAE\\u5730\\u5740.\"),Pce]),default:d(()=>[c(D,{label:\"\\u670D\\u52A1\\u7AEF\\u5730\\u5740\"},{default:d(()=>[c(B,{modelValue:p.value.Client.ServerURL,\"onUpdate:modelValue\":w[3]||(w[3]=W=>p.value.Client.ServerURL=W),placeholder:\"\\u670D\\u52A1\\u5668\\u5730\\u5740\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(D,{label:\"Token\"},{default:d(()=>[c(B,{modelValue:p.value.Client.Token,\"onUpdate:modelValue\":w[4]||(w[4]=W=>p.value.Client.Token=W),placeholder:\"Token\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5F53lucky\\u670D\\u52A1\\u7AEF\\u548C\\u5F85\\u5524\\u9192\\u8BBE\\u5907\\u4E0D\\u5728\\u540C\\u4E00\\u5C40\\u57DF\\u7F51\\u65F6,\\u53EF\\u4EE5\\u901A\\u8FC7\\u5177\\u5907\\u8F6C\\u53D1\\u7684\\u5BA2\\u6237\\u7AEF\\u8F6C\\u53D1\\u5524\\u9192\\u9B54\\u6CD5\\u5305\"),Lce]),default:d(()=>[c(D,{label:\"\\u8F6C\\u53D1\\u5524\\u9192\\u5305\"},{default:d(()=>[c(E,{modelValue:p.value.Client.Relay,\"onUpdate:modelValue\":w[5]||(w[5]=W=>p.value.Client.Relay=W),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5728lucky\\u670D\\u52A1\\u5668\\u7F51\\u7EDC\\u5524\\u9192\\u8BBE\\u5907\\u5217\\u8868\\u663E\\u793A\\u7684\\u8BBE\\u5907\\u540D\\u79F0,\\u4E0D\\u80FD\\u4E3A\\u7A7A\"),Tce]),default:d(()=>[c(D,{label:\"\\u8BBE\\u5907\\u540D\\u79F0\"},{default:d(()=>[c(B,{modelValue:p.value.Client.DeviceName,\"onUpdate:modelValue\":w[6]||(w[6]=W=>p.value.Client.DeviceName=W),placeholder:\"\\u8BBE\\u5907\\u540D\\u79F0\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(D,{label:\"\\u7F51\\u5361\\u7269\\u7406\\u5730\\u5740\"},{default:d(()=>[c(B,{modelValue:p.value.Client.Mac,\"onUpdate:modelValue\":w[8]||(w[8]=W=>p.value.Client.Mac=W),placeholder:\"\\u7F51\\u5361\\u7269\\u7406\\u5730\\u5740\",autocomplete:\"off\"},{append:d(()=>[c(T,{modelValue:p.value.Client.Mac,\"onUpdate:modelValue\":w[7]||(w[7]=W=>p.value.Client.Mac=W),placeholder:\"\\u7F51\\u5361\\u9009\\u62E9\",style:{width:\"auto\"},onChange:u},{default:d(()=>[(b(!0),F(Oe,null,it(o.value,W=>(b(),F(\"div\",null,[c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(l(W.AddressList))},null,8,zce)]),default:d(()=>[c(P,{label:W.NetInterfaceName,value:W.HardwareAddr},null,8,[\"label\",\"value\"])]),_:2},1024)]))),256))]),_:1},8,[\"modelValue\"])]),_:1},8,[\"modelValue\"])]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" 255.255.255.255\\u5728\\u591A\\u6570\\u73AF\\u5883\\u5931\\u6548,\\u4E0D\\u8981\\u4F7F\\u7528\"),Mce]),default:d(()=>[c(D,{label:\"\\u5E7F\\u64AD\\u5730\\u5740\"},{default:d(()=>[c(B,{modelValue:p.value.Client.BroadcastIP,\"onUpdate:modelValue\":w[10]||(w[10]=W=>p.value.Client.BroadcastIP=W),placeholder:\"\\u5E7F\\u64AD\\u5730\\u5740\",autocomplete:\"off\"},{append:d(()=>[c(T,{modelValue:p.value.Client.BroadcastIP,\"onUpdate:modelValue\":w[9]||(w[9]=W=>p.value.Client.BroadcastIP=W),placeholder:\"\\u5C40\\u57DF\\u7F51\\u9009\\u62E9\",style:{width:\"180px\"}},{default:d(()=>[(b(!0),F(Oe,null,it(t.value,W=>(b(),F(\"div\",null,[c(P,{label:W.IP,value:W.BroadcastIP},null,8,[\"label\",\"value\"])]))),256))]),_:1},8,[\"modelValue\"])]),_:1},8,[\"modelValue\"])]),_:1})]),_:1}),c(D,{label:\"\\u7AEF\\u53E3\"},{default:d(()=>[c(H,{modelValue:p.value.Client.Port,\"onUpdate:modelValue\":w[11]||(w[11]=W=>p.value.Client.Port=W),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5524\\u9192\\u9B54\\u65B9\\u5305\\u91CD\\u590D\\u53D1\\u9001\\u6B21\\u6570\"),Vce]),default:d(()=>[c(D,{label:\"\\u91CD\\u590D\\u6B21\\u6570\"},{default:d(()=>[c(H,{modelValue:p.value.Client.Repeat,\"onUpdate:modelValue\":w[12]||(w[12]=W=>p.value.Client.Repeat=W),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" windows\\u5173\\u673A\\u6307\\u4EE4: Shutdown /s /t 0 \"),Ice,A(\" linux\\u5173\\u673A\\u6307\\u4EE4: poweroff \"),Hce,A(\" \\u5982\\u679C\\u4F60\\u53D1\\u73B0\\u4F60\\u7684windows\\u5173\\u673A\\u540E\\u600E\\u4E48\\u4E5F\\u5524\\u4E0D\\u9192,\\u53EF\\u4EE5\\u8BD5\\u8BD5\\u4F7F\\u7528\\u4F11\\u7720/\\u7761\\u7720 \\u6307\\u4EE4: rundll32.exe powrprof.dll,SetSuspendState 0,1,0 \"),Rce,A(' \\u6CE8\\u610F\\u65B0\\u624B\\u6CE8\\u610F\\u522B\\u4F7F\\u7528\\u5176\\u5B83\\u672A\\u77E5\\u6307\\u4EE4,\\u6BD4\\u5982\"rm -rf\"...'),Nce,A(\" \\u6570\\u636E\\u4E22\\u5931\\u6982\\u4E0D\\u8D1F\\u8D23\"),Oce]),default:d(()=>[c(D,{label:\"\\u5173\\u673A\\u6307\\u4EE4\"},{default:d(()=>[c(B,{modelValue:p.value.Client.PowerOffCMD,\"onUpdate:modelValue\":w[14]||(w[14]=W=>p.value.Client.PowerOffCMD=W),placeholder:\"\\u5173\\u673A\\u6307\\u4EE4\",autocomplete:\"off\"},{append:d(()=>[c(T,{modelValue:p.value.Client.PowerOffCMD,\"onUpdate:modelValue\":w[13]||(w[13]=W=>p.value.Client.PowerOffCMD=W),placeholder:\"\\u5173\\u673A\\u6307\\u4EE4\",style:{width:\"160px\"}},{default:d(()=>[(b(!0),F(Oe,null,it(n.value,W=>(b(),F(\"div\",null,[c(P,{label:W.label,value:W.value},null,8,[\"label\",\"value\"])]))),256))]),_:1},8,[\"modelValue\"])]),_:1},8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,p.value.Client.Enable]])]),fe(f(\"div\",Uce,[c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5F53\\u524DLucky windows\\u670D\\u52A1\\u72B6\\u6001\"),Wce]),default:d(()=>[c(k,{type:\"info\",size:\"small\"},{default:d(()=>[A(re(i.value==0?\"lucky\\u670D\\u52A1\\u672A\\u5B89\\u88C5\":i.value==1?\"lucky\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\":i.value==2?\"luck\\u670D\\u52A1\\u5DF2\\u505C\\u6B62\":\"\\u672A\\u77E5\\u670D\\u52A1\\u72B6\\u6001\"),1)]),_:1})]),_:1}),c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5B89\\u88C5windows\\u670D\\u52A1,lukcy\\u53EF\\u80FD\\u9700\\u8981\\u4EE5\\u7BA1\\u7406\\u5458\\u8EAB\\u4EFD\\u8FD0\\u884C\\u624D\\u80FD\\u8BBE\\u7F6E\\u6210\\u529F\"),qce,A(\" \\u5B9E\\u73B0lucky\\u5F00\\u673A\\u81EA\\u542F\"),jce]),default:d(()=>[fe(c(k,{type:\"warning\",round:\"\",onClick:w[15]||(w[15]=W=>_(\"install\"))},{default:d(()=>[A(\"\\u5B89\\u88C5Lucky windows\\u670D\\u52A1\")]),_:1},512),[[ge,i.value==0]])]),_:1}),fe(c(k,{type:\"danger\",round:\"\",onClick:w[16]||(w[16]=W=>_(\"unstall\"))},{default:d(()=>[A(\"\\u5220\\u9664Lucky windows\\u670D\\u52A1 \")]),_:1},512),[[ge,i.value>0]]),fe(f(\"div\",null,[fe(c(k,{type:\"info\",size:\"small\",onClick:w[17]||(w[17]=W=>_(\"start\"))},{default:d(()=>[A(\" \\u542F\\u52A8lucky\\u670D\\u52A1 \")]),_:1},512),[[ge,i.value==2]]),fe(c(k,{type:\"info\",size:\"small\",onClick:w[18]||(w[18]=W=>_(\"stop\"))},{default:d(()=>[A(\" \\u505C\\u6B62lucky\\u670D\\u52A1 \")]),_:1},512),[[ge,i.value==1]]),c(k,{type:\"info\",size:\"small\",onClick:w[19]||(w[19]=W=>_(\"restart\"))},{default:d(()=>[A(\" \\u91CD\\u542Flucky\\u670D\\u52A1 \")]),_:1})],512),[[ge,i.value>0]])],512),[[ge,i.value>=0]])]),_:1},8,[\"model\"]),c(k,{type:\"primary\",round:\"\",onClick:g},{default:d(()=>[A(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1})])]),_:1})])}}});var Gce=hn(Kce,[[\"__scopeId\",\"data-v-a4c91d4e\"]]);const Yce={class:\"PageRadius\",style:{borderRadius:\"base\"}},Xce={class:\"itemradius\",style:{borderRadius:\"base\"}},Jce=[\"innerHTML\"],Qce=f(\"br\",null,null,-1),Zce=f(\"br\",null,null,-1),e2e=[\"innerHTML\"],t2e=f(\"br\",null,null,-1),n2e=f(\"br\",null,null,-1),o2e=[\"innerHTML\"],l2e=f(\"br\",null,null,-1),u2e=f(\"br\",null,null,-1),a2e=[\"innerHTML\"],r2e=[\"innerHTML\"],s2e=f(\"br\",null,null,-1),i2e=f(\"br\",null,null,-1),c2e=f(\"br\",null,null,-1),d2e=f(\"br\",null,null,-1),f2e=f(\"br\",null,null,-1),p2e=f(\"br\",null,null,-1),v2e=f(\"br\",null,null,-1),h2e=f(\"br\",null,null,-1),_2e=f(\"br\",null,null,-1),m2e=f(\"br\",null,null,-1),g2e=f(\"br\",null,null,-1),b2e=f(\"br\",null,null,-1),y2e=f(\"br\",null,null,-1),w2e=f(\"br\",null,null,-1),C2e={class:\"divRadius\"},E2e=f(\"p\",null,\"\\u7B2C\\u4E09\\u65B9\\u7269\\u8054\\u7F51\\u5E73\\u53F0\\u5BF9\\u63A5-\\u4EC5\\u652F\\u6301\\u8BED\\u97F3\\u52A9\\u624B\\u63A7\\u5236\",-1),F2e={class:\"divIOTRadius\"},A2e=f(\"br\",null,null,-1),D2e=f(\"br\",null,null,-1),B2e=f(\"br\",null,null,-1),x2e=f(\"br\",null,null,-1),$2e=f(\"br\",null,null,-1),S2e=f(\"br\",null,null,-1),k2e=f(\"br\",null,null,-1),P2e=f(\"br\",null,null,-1),L2e=f(\"br\",null,null,-1),T2e=f(\"br\",null,null,-1),z2e=f(\"br\",null,null,-1),M2e=f(\"br\",null,null,-1),V2e=f(\"br\",null,null,-1),I2e=f(\"br\",null,null,-1),H2e=f(\"br\",null,null,-1),R2e={class:\"divIOTRadius\"},N2e=f(\"br\",null,null,-1),O2e=f(\"br\",null,null,-1),U2e=f(\"br\",null,null,-1),W2e=f(\"br\",null,null,-1),q2e=f(\"br\",null,null,-1),j2e=f(\"br\",null,null,-1),K2e=f(\"br\",null,null,-1),G2e=f(\"br\",null,null,-1),Y2e=f(\"br\",null,null,-1),X2e=f(\"br\",null,null,-1),J2e=f(\"br\",null,null,-1),Q2e=f(\"br\",null,null,-1),Z2e=f(\"br\",null,null,-1),e0e=f(\"br\",null,null,-1),t0e={class:\"dialog-footer\"},n0e=le({__name:\"WOL\",setup(e){const t=L(!1),n=L(\"\"),o=L(\"\"),l=L(\"\"),u=L(\"\"),a=L(\"\"),r=P=>{var T=\"\";return P.DianDengClientState==\"\\u672A\\u8BBE\\u7F6E\"?(T=\"\\u672A\\u8BBE\\u7F6E\",T):(T+=\"\\u8BBE\\u5907\\u5BC6\\u94A5:\"+P.IOT_DianDeng_AUTHKEY+\"<br/>\",T+=\"\\u670D\\u52A1\\u5668\\u8FDE\\u63A5\\u72B6\\u6001:\"+P.DianDengClientState+\" <br/>\",P.DianDengClientState==\"\\u5DF2\\u8FDE\\u63A5\"&&(T+=\"\\u652F\\u6301\\u5C0F\\u7231\\u540C\\u5B66 \\u5C0F\\u5EA6 \\u5929\\u732B\\u7CBE\\u7075<br/>\"),T)},s=P=>{var T=\"\";return P.BemfaClientState==\"\\u672A\\u8BBE\\u7F6E\"?(T=\"\\u672A\\u8BBE\\u7F6E\",T):(T+=\"\\u79C1\\u94A5:\"+P.IOT_Bemfa_SecretKey+\"<br/>\",T+=\"\\u8BA2\\u9605\\u4E3B\\u9898:\"+P.IOT_Bemfa_Topic+\"<br/>\",T+=\"\\u670D\\u52A1\\u5668\\u8FDE\\u63A5\\u72B6\\u6001:\"+P.BemfaClientState+\" <br/>\",P.BemfaClientState==\"\\u5DF2\\u8FDE\\u63A5\"&&(T+=\"\\u652F\\u6301\\u5C0F\\u7231\\u540C\\u5B66 \\u5C0F\\u5EA6 \\u5929\\u732B\\u7CBE\\u7075 google\\u8BED\\u97F3 AmazonAlexa<br/>\"),T)},i=P=>P.DianDengClientState==\"\\u5DF2\\u8FDE\\u63A5\"?\"success\":\"info\",p=P=>P.BemfaClientState==\"\\u5DF2\\u8FDE\\u63A5\"?\"success\":\"info\",m=L([{Key:\"\",DeviceName:\"\",MacList:[\"\"],BroadcastIPs:[\"\"],Port:9,Relay:!0,Repeat:5,State:\"\",OnlineMacList:[\"\"],IOT_DianDeng_Enable:!1,IOT_DianDeng_AUTHKEY:\"\",DianDengClientState:\"\",IOT_Bemfa_Enable:!1,IOT_Bemfa_SecretKey:\"\",IOT_Bemfa_Topic:\"\",BemFaClientState:\"\"}]),v=L({Key:\"\",DeviceName:\"\",MacList:[\"\"],BroadcastIPs:[\"\"],Port:9,Relay:!0,Repeat:5,IOT_DianDeng_Enable:!1,IOT_DianDeng_AUTHKEY:\"\",IOT_Bemfa_SecretKey:\"\",IOT_Bemfa_Topic:\"\",IOT_Bemfa_Enable:!1}),_=P=>{if(P.OnlineMacList==null||P.OnlineMacList==null||P.OnlineMacList.length<=0)return\"\\u6CA1\\u6709\\u8BBE\\u5907\\u5728\\u7EBF\";var T=\"\\u5728\\u7EBF\\u8BBE\\u5907\\u5217\\u8868:<br />\";for(let H in P.OnlineMacList)T+=P.OnlineMacList[H]+\"<br />\";return T},g=P=>{const T=P.DeviceName==\"\"?P.MacList[0]:P.DeviceName,H=\"[\"+T+\"]\";$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664\\u5F85\\u5524\\u9192\\u8BBE\\u5907 \"+H+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{console.log(\"\\u786E\\u8BA4\\u5220\\u9664 \"+H),ace(P.Key).then(j=>{j.ret==0?($(),ne(\"success\",\"\\u5220\\u9664\\u6210\\u529F\")):ne(\"error\",j.msg)}).catch(j=>{console.log(\"\\u5220\\u9664\\u5524\\u9192\\u8BBE\\u5907\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+j),ne(\"error\",\"\\u5220\\u9664\\u5524\\u9192\\u8BBE\\u5907\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{})},y=P=>{const T=P.DeviceName==\"\"?P.MacList[0]:P.DeviceName,H=\"[\"+T+\"]\";$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5524\\u9192\\u8BBE\\u5907 \"+H+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{rce(P.Key).then(j=>{if(j.ret==0){ne(\"success\",\"\\u5524\\u9192\\u6307\\u4EE4\\u5DF2\\u53D1\\u9001\"),$();return}ne(\"error\",j.msg)}).catch(j=>{console.log(\"\\u5524\\u9192\\u6307\\u4EE4\\u53D1\\u9001\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+j),ne(\"error\",\"\\u5524\\u9192\\u6307\\u4EE4\\u53D1\\u9001\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},w=P=>{const T=P.DeviceName==\"\"?P.MacList[0]:P.DeviceName,H=\"[\"+T+\"]\";$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5411\\u8BBE\\u5907 \"+H+\" \\u53D1\\u9001\\u5173\\u673A\\u6307\\u4EE4?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{sce(P.Key).then(j=>{if(j.ret==0){ne(\"success\",\"\\u5DF2\\u5411\\u5728\\u7EBF\\u8BBE\\u5907\\u53D1\\u9001\\u5173\\u673A\\u6307\\u4EE4\"),$();return}ne(\"error\",j.msg)}).catch(j=>{console.log(\"\\u5173\\u673A\\u6307\\u4EE4\\u53D1\\u9001\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+j),ne(\"error\",\"\\u5173\\u673A\\u6307\\u4EE4\\u53D1\\u9001\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},E=P=>{let T=P.indexOf(\"\\u5728\\u7EBF\");return console.log(\"show: \"+T),!(T>=0)},D=()=>{switch(v.value.BroadcastIPs=xt(u.value),v.value.MacList=xt(l.value),a.value){case\"add\":uce(v.value).then(P=>{if(P.ret==0){t.value=!1,ne(\"success\",\"\\u8BBE\\u5907\\u6DFB\\u52A0\\u6210\\u529F\"),$();return}ne(\"error\",P.msg)}).catch(P=>{console.log(\"\\u5524\\u9192\\u8BBE\\u5907\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+P),ne(\"error\",\"\\u5524\\u9192\\u8BBE\\u5907\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;case\"alter\":ice(v.value).then(P=>{if(P.ret==0){t.value=!1,ne(\"success\",\"\\u8BBE\\u5907\\u4FEE\\u6539\\u6210\\u529F\"),$();return}ne(\"error\",P.msg)}).catch(P=>{console.log(\"\\u5524\\u9192\\u8BBE\\u5907\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+P),ne(\"error\",\"\\u5524\\u9192\\u8BBE\\u5907\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break}},C=P=>{o.value=\"\\u4FEE\\u6539\",v.value={Key:P.Key,DeviceName:P.DeviceName,MacList:P.MacList,BroadcastIPs:P.BroadcastIPs,Port:P.Port,Relay:P.Relay,Repeat:P.Repeat,IOT_DianDeng_Enable:P.IOT_DianDeng_Enable,IOT_DianDeng_AUTHKEY:P.IOT_DianDeng_AUTHKEY,IOT_Bemfa_SecretKey:P.IOT_Bemfa_SecretKey,IOT_Bemfa_Topic:P.IOT_Bemfa_Topic,IOT_Bemfa_Enable:P.IOT_Bemfa_Enable},a.value=\"alter\",l.value=$n(P.MacList),u.value=$n(P.BroadcastIPs),t.value=!0},B=()=>{o.value=\"\\u6DFB\\u52A0\",v.value={Key:\"\",DeviceName:\"\",MacList:[\"\"],BroadcastIPs:[\"\"],Port:9,Relay:!0,Repeat:5,IOT_DianDeng_Enable:!1,IOT_DianDeng_AUTHKEY:\"\",IOT_Bemfa_Enable:!1,IOT_Bemfa_SecretKey:\"\",IOT_Bemfa_Topic:\"\"},a.value=\"add\",l.value=\"\",u.value=\"\",t.value=!0},$=()=>{lce().then(P=>{m.value=P.list}).catch(P=>{console.log(\"\\u83B7\\u53D6\\u8BBE\\u5907\\u5217\\u8868\\u51FA\\u9519:\"+P),ne(\"error\",\"\\u83B7\\u83B7\\u53D6\\u8BBE\\u5907\\u5217\\u8868\\u51FA\\u9519\")})};var k;return ot(()=>{$(),k=setInterval(()=>{$()},2e3)}),In(()=>{clearInterval(k)}),(P,T)=>{const H=vn,j=pn,X=ya,W=Ic,N=ba,J=Yt,be=lt(\"Plus\"),ve=rt,Ee=Vl,te=nn,Z=Bn,De=eo,Be=rl,x=Il;return b(),F(\"div\",Yce,[c(J,{height:\"100%\"},{default:d(()=>[f(\"div\",Xce,[c(N,{column:4,border:\"\"},{default:d(()=>[(b(!0),F(Oe,null,it(m.value,O=>(b(),F(\"div\",null,[c(X,{label:\"\\u8BBE\\u5907\",\"label-class-name\":\"deviceNamelabelClass\",\"class-name\":\"deviceNamecontentClass\"},{default:d(()=>[fe(c(H,{size:\"small\"},{default:d(()=>[A(re(O.DeviceName==\"\"?\"\\u672A\\u547D\\u540D\\u8BBE\\u5907\":O.DeviceName),1)]),_:2},1536),[[ge,!0]]),c(j,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:_(O)},null,8,Jce)]),default:d(()=>[fe(c(H,{size:\"small\"},{default:d(()=>[A(re(O.State),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(X,{label:\"\\u64CD\\u4F5C\",\"label-class-name\":\"deviceOptlabelClass\",\"class-name\":\"deviceOptcontentClass\"},{default:d(()=>[c(H,{size:\"small\",type:\"success\",onClick:ye=>y(O)},{default:d(()=>[A(\" \\u5524\\u9192 \")]),_:2},1032,[\"onClick\"]),c(j,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5173\\u673A\"),Qce]),default:d(()=>[c(H,{size:\"small\",type:\"danger\",onClick:ye=>w(O),disabled:E(O.State)},{default:d(()=>[A(\" \\u5173\\u673A \")]),_:2},1032,[\"onClick\",\"disabled\"])]),_:2},1024),A(\" \\xA0 \\xA0 \"),c(W,{direction:\"vertical\"}),A(\" \\xA0 \\xA0 \"),c(H,{size:\"small\",type:\"primary\",onClick:ye=>C(O)},{default:d(()=>[A(\" \\u7F16\\u8F91 \")]),_:2},1032,[\"onClick\"]),c(H,{size:\"small\",type:\"danger\",onClick:ye=>g(O)},{default:d(()=>[A(\" \\u5220\\u9664 \")]),_:2},1032,[\"onClick\"])]),_:2},1024),c(X,{label:\"\\u7269\\u7406\\u7F51\\u5361\\u5730\\u5740\",\"label-class-name\":\"deviceMaclabelClass\",\"class-name\":\"deviceMaccontentClass\"},{default:d(()=>[c(j,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u2193\\u2193\\u2193\\u7269\\u7406\\u7F51\\u5361\\u5730\\u5740\\u2193\\u2193\\u2193\"),Zce,f(\"span\",{innerHTML:h(Zo)(O.MacList)},null,8,e2e),t2e,A(\" \\u2193\\u2193\\u2193\\u9B54\\u6CD5\\u5305\\u5730\\u5740\\u2193\\u2193\\u2193\"),n2e,f(\"span\",{innerHTML:h(Zo)(O.BroadcastIPs)},null,8,o2e),l2e,A(\" \\u7AEF\\u53E3: \"+re(O.Port)+\" \",1),u2e]),default:d(()=>[fe(c(H,{size:\"small\"},{default:d(()=>[A(re(O.MacList.length==1?O.MacList[0]:O.MacList[0]+\"...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(X,{label:\"\\u7269\\u8054\\u7F51\\u5E73\\u53F0\",\"label-class-name\":\"deviceIOTlabelClass\",\"class-name\":\"deviceIOTcontentClass\"},{default:d(()=>[c(j,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:r(O)},null,8,a2e)]),default:d(()=>[fe(c(H,{size:\"small\",type:i(O)},{default:d(()=>[A(\" \\u70B9\\u706F\\u79D1\\u6280 \")]),_:2},1032,[\"type\"]),[[ge,O.IOT_DianDeng_Enable]])]),_:2},1024),c(j,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:s(O)},null,8,r2e)]),default:d(()=>[fe(c(H,{size:\"small\",type:p(O)},{default:d(()=>[A(\" \\u5DF4\\u6CD5\\u4E91 \")]),_:2},1032,[\"type\"]),[[ge,O.IOT_Bemfa_Enable]])]),_:2},1024)]),_:2},1024)]))),256))]),_:1})])]),_:1}),c(Ee,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:d(()=>[c(H,{type:\"primary\",round:!0,onClick:B},{default:d(()=>[A(\"\\u6DFB\\u52A0\\u53EF\\u5524\\u9192\\u7684\\u8BBE\\u5907 \"),c(ve,{class:\"el-icon--right\"},{default:d(()=>[c(be)]),_:1})]),_:1})]),_:1}),t.value?(b(),ae(x,{key:0,modelValue:t.value,\"onUpdate:modelValue\":T[12]||(T[12]=O=>t.value=O),title:n.value,draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"400px\"},{footer:d(()=>[f(\"span\",t0e,[c(H,{onClick:T[11]||(T[11]=O=>t.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(H,{type:\"primary\",onClick:D},{default:d(()=>[A(re(o.value),1)]),_:1})])]),default:d(()=>[c(Z,{label:\"\\u8BBE\\u5907\\u540D\\u79F0\",\"label-width\":\"120px\"},{default:d(()=>[c(te,{modelValue:v.value.DeviceName,\"onUpdate:modelValue\":T[0]||(T[0]=O=>v.value.DeviceName=O),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2AMAC\"),s2e,A(\" \\u4E00\\u822C\\u60C5\\u51B5\\u586B\\u5199\\u4E00\\u4E2AMAC\\u5730\\u5740\\u5373\\u53EF\"),i2e]),default:d(()=>[c(Z,{\"label-width\":\"120px\",label:\"\\u8BBE\\u5907MAC\"},{default:d(()=>[c(te,{modelValue:l.value,\"onUpdate:modelValue\":T[1]||(T[1]=O=>l.value=O),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E0D\\u5EFA\\u8BAE\\u4F7F\\u7528255.255.255.255\"),c2e,A(\" \\u4E00\\u822C\\u5BB6\\u7528\\u60C5\\u51B5,\\u5982\\u679C\\u8DEF\\u7531\\u5668\\u7684\\u7BA1\\u7406\\u5730\\u5740\\u662F192.168.31.1,\\u5219\\u586B\\u5199192.168.31.255\\u4F5C\\u4E3A\\u5E7F\\u64AD\\u5730\\u5740\"),d2e,A(\" \\u83DC\\u9E1F\\u6CA1\\u6CD5\\u786E\\u5B9A\\u7684\\u8BDD\\u53EF\\u7559\\u7A7A,\\u7A0B\\u5E8F\\u4F1A\\u904D\\u5386\\u5168\\u90E8IPV4\\u5730\\u5740\\u53D1\\u9001\\u5E7F\\u64AD\"),f2e,A(\" \\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u5E7F\\u64AD\\u5730\\u5740\"),p2e,A(\" \\u4E00\\u822C\\u60C5\\u51B5\\u586B\\u5199\\u4E00\\u4E2A\\u5E7F\\u64AD\\u5730\\u5740\\u5373\\u53EF\"),v2e]),default:d(()=>[c(Z,{\"label-width\":\"120px\",label:\"\\u9B54\\u65B9\\u5305\\u5E7F\\u64AD\\u5730\\u5740\"},{default:d(()=>[c(te,{modelValue:u.value,\"onUpdate:modelValue\":T[2]||(T[2]=O=>u.value=O),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u9ED8\\u8BA4\\u7AEF\\u53E3\\u4E3A9\"),h2e,A(\" \\u6CA1\\u7279\\u6B8A\\u60C5\\u51B5\\u4E0D\\u8981\\u4FEE\\u6539\"),_2e]),default:d(()=>[c(Z,{label:\"\\u7AEF\\u53E3\",\"label-width\":\"120px\",min:1,max:65535},{default:d(()=>[c(De,{modelValue:v.value.Port,\"onUpdate:modelValue\":T[3]||(T[3]=O=>v.value.Port=O),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6BCF\\u6B21\\u6267\\u884C\\u5524\\u9192\\u65F6\\u91CD\\u590D\\u53D1\\u9001\\u9B54\\u65B9\\u5305\\u7684\\u6B21\\u6570\"),m2e,A(\" \\u53EF\\u8BBE\\u7F6E\\u8303\\u56F4(1-10)\"),g2e]),default:d(()=>[c(Z,{label:\"\\u91CD\\u590D\\u6B21\\u6570\",\"label-width\":\"120px\",min:1,max:10},{default:d(()=>[c(De,{modelValue:v.value.Repeat,\"onUpdate:modelValue\":T[4]||(T[4]=O=>v.value.Repeat=O),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E00\\u822C\\u60C5\\u51B5\\u5FFD\\u7565\\u5373\\u53EF\"),b2e,A(\" \\u76EE\\u6807\\u5524\\u9192\\u8BBE\\u5907\\u548Clucky\\u4E0D\\u5728\\u540C\\u4E00\\u5C40\\u57DF\\u7F51\\u65F6\\u624D\\u7528\\u5F97\\u4E0A\\u8FD9\\u4E2A\\u5F00\\u5173\"),y2e,A(\" \\u53D1\\u9001\\u5E7F\\u64AD\\u7684\\u540C\\u65F6\\u4EA4\\u7ED9\\u4E2D\\u7EE7\\u8BBE\\u5907\\u53D1\\u9001\"),w2e]),default:d(()=>[(b(),ae(Z,{key:0,label:\"\\u8F6C\\u64AD\\u5F00\\u5173\",\"label-width\":\"120px\"},{default:d(()=>[c(Be,{modelValue:v.value.Relay,\"onUpdate:modelValue\":T[5]||(T[5]=O=>v.value.Relay=O),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}))]),_:1}),f(\"div\",C2e,[E2e,f(\"div\",F2e,[(b(),ae(Z,{key:0,label:\"\\u70B9\\u706F\\u79D1\\u6280\",\"label-width\":\"120px\"},{default:d(()=>[c(Be,{modelValue:v.value.IOT_DianDeng_Enable,\"onUpdate:modelValue\":T[6]||(T[6]=O=>v.value.IOT_DianDeng_Enable=O),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})),fe(f(\"div\",null,[c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u7559\\u7A7A\\u8868\\u793A\\u4E0D\\u542F\\u7528\\u8BE5\\u5E73\\u53F0\\u5BF9\\u63A5\\u529F\\u80FD\"),A2e,D2e,A(\" \\u70B9\\u706F\\u79D1\\u6280\\u5B98\\u7F51:https://www.diandeng.tech/home\"),B2e,x2e,A(\" \\u5728\\u624B\\u673AAPP\\u7AEF\\u6CE8\\u518C\\u767B\\u5F55-\\u8BBE\\u5907\\u7BA1\\u7406\\u83DC\\u5355-\\u53F3\\u4E0A\\u65B9+\\u53F7\\u6309\\u94AE-\\u6DFB\\u52A0\\u70B9\\u706F\\u72EC\\u7ACB\\u8BBE\\u5907-\\u9009\\u62E9\\u7F51\\u7EDC\\u63A5\\u5165-\\u590D\\u5236\\u4FDD\\u5B58-secrte-key\\u5230\\u4E0B\\u65B9\"),$2e,A(\" \\u76EE\\u524D\\u4EC5\\u652F\\u6301\\u70B9\\u706F-\\u72EC\\u7ACB\\u8BBE\\u5907\\u7C7B\\u578B,\\u5728\\u8BBE\\u5907\\u7BA1\\u7406\\u4FEE\\u6539\\u8BBE\\u5907\\u540D,\\u8FD9\\u91CC\\u7684\\u8BBE\\u5907\\u540D\\u5C31\\u662F\\u4F60\\u4EE5\\u540E\\u7528\\u8BED\\u97F3\\u52A9\\u624B\\u63A7\\u5236\\u64CD\\u4F5C\\u8BBE\\u5907\\u65F6\\u7684\\u540D\\u79F0.\"),S2e,k2e,A(' \\u4EE5\\u5C0F\\u7231\\u540C\\u5B66\\u4E3A\\u4F8B,\\u5728\\u7C73\\u5BB6APP\\u53F3\\u4E0B\\u89D2\"\\u6211\\u7684\"-\"\\u5176\\u5B83\\u5E73\\u53F0\\u8BBE\\u5907\"-\\u53F3\\u4E0A\\u65B9\"\\u6DFB\\u52A0\"-\\u9009\\u62E9\"\\u70B9\\u706F\\u79D1\\u6280\"\\u767B\\u5F55\\u540C\\u6B65\\u540E\\u5373\\u53EF.'),P2e,A(\" \\u9700\\u8981\\u786E\\u4FDD\\u70B9\\u706Fsecrte-key\\u586B\\u5199\\u6B63\\u786E,\\u5728\\u70B9\\u706FAPP\\u5DF2\\u7ECF\\u663E\\u793A\\u8BBE\\u5907\\u5728\\u7EBF\\u518D\\u5728\\u7C73\\u5BB6\\u6267\\u884C\\u540C\\u6B65,\\u6BCF\\u6B21\\u4FEE\\u6539\\u5B8C\\u8BBE\\u5907\\u540D\\u90FD\\u8981\\u91CD\\u65B0\\u540C\\u6B65.\"),L2e,A(\" \\u5C0F\\u5EA6/\\u5929\\u732B\\u7CBE\\u7075\\u81EA\\u884C\\u53C2\\u8003\\u6587\\u6863:https://www.diandeng.tech/doc/voice-assistant \"),T2e,z2e,A(\" \\u591A\\u4E2A\\u8BBE\\u5907\\u53EF\\u4EE5\\u8BBE\\u7F6E\\u540C\\u4E00\\u4E2Asecrte-key,\\u8868\\u793A\\u591A\\u4E2A\\u5F85\\u5524\\u9192\\u8BBE\\u5907\\u4E0E\\u540C\\u4E00\\u4E2A\\u70B9\\u706F\\u8BBE\\u5907\\u7ED1\\u5B9A,\\u4E00\\u6B21\\u8BED\\u97F3\\u64CD\\u4F5C\\u540C\\u65F6\\u63A7\\u5236\\u591A\\u4E2A\\u8BBE\\u5907\\u7684\\u5F00\\u5173.\\u4E0D\\u5EFA\\u8BAE\\u8FD9\\u6837\\u505A.\"),M2e,A(\" \\u5EFA\\u8BAE\\u4E00\\u4E2A\\u5F85\\u5524\\u9192\\u8BBE\\u5907\\u5BF9\\u5E94\\u4E00\\u4E2A\\u70B9\\u706F\\u8BBE\\u5907\"),V2e,I2e,A(\" \\u7531\\u4E8E\\u70B9\\u706F\\u63A5\\u53E3\\u5076\\u5C14\\u53D1\\u751F\\u53D8\\u5316,\\u53C8\\u4E0D\\u63D0\\u4F9B\\u76F8\\u5173\\u6587\\u6863,\\u6240\\u4EE5\\u54EA\\u5929\\u7A81\\u7136\\u4E0D\\u80FD\\u4F7F\\u7528\\u4E86\\u4E5F\\u5F88\\u6B63\\u5E38.\"),H2e]),default:d(()=>[c(Z,{\"label-width\":\"120px\",label:\"\\u8BBE\\u5907\\u5BC6\\u94A5\"},{default:d(()=>[c(te,{modelValue:v.value.IOT_DianDeng_AUTHKEY,\"onUpdate:modelValue\":T[7]||(T[7]=O=>v.value.IOT_DianDeng_AUTHKEY=O),placeholder:\"\\u8BBE\\u5907\\u5BC6\\u94A5\",type:\"text\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,v.value.IOT_DianDeng_Enable]])]),f(\"div\",R2e,[(b(),ae(Z,{key:0,label:\"\\u5DF4\\u6CD5\\u4E91\",\"label-width\":\"120px\"},{default:d(()=>[c(Be,{modelValue:v.value.IOT_Bemfa_Enable,\"onUpdate:modelValue\":T[8]||(T[8]=O=>v.value.IOT_Bemfa_Enable=O),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})),fe(f(\"div\",null,[c(j,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u7559\\u7A7A\\u8868\\u793A\\u4E0D\\u542F\\u7528\\u8BE5\\u5E73\\u53F0\\u5BF9\\u63A5\\u529F\\u80FD\"),N2e,O2e,A(\" \\u5DF4\\u6CD5\\u4E91\\u5B98\\u7F51:https://cloud.bemfa.com/\"),U2e,W2e,A(\" \\u6CE8\\u518C\\u767B\\u5F55\\u540E,\\u5728\\u63A7\\u5236\\u53F0\\u53F3\\u4E0A\\u65B9\\u53EF\\u67E5\\u770B\\u79C1\\u94A5.\"),q2e,A(\" \\u76EE\\u524D\\u4EC5\\u652F\\u6301MQTT\\u8BBE\\u5907\\u4E91,\\u8BB0\\u5F97\\u521B\\u5EFA\\u7684\\u662FMQTT\\u8BBE\\u5907\\u4E91\\u4E3B\\u9898,\\u800C\\u4E0D\\u662FTCP\\u521B\\u5BA2\\u4E91\\u4E3B\\u9898.\\u4E3B\\u9898\\u540D\\u8981\\u4EE5001\\u7ED3\\u5C3E\\u8868\\u793A\\u63D2\\u5EA7\\u7C7B\\u578B.\"),j2e,K2e,A(' \\u4EE5\\u5C0F\\u7231\\u540C\\u5B66\\u4E3A\\u4F8B,\\u5728\\u7C73\\u5BB6APP\\u53F3\\u4E0B\\u89D2\"\\u6211\\u7684\"-\"\\u5176\\u5B83\\u5E73\\u53F0\\u8BBE\\u5907\"-\\u53F3\\u4E0A\\u65B9\"\\u6DFB\\u52A0\"-\\u9009\\u62E9\"\\u5DF4\\u6CD5\"\\u767B\\u5F55\\u540C\\u6B65\\u540E\\u5373\\u53EF.'),G2e,A(\" \\u9700\\u8981\\u786E\\u4FDD\\u79C1\\u94A5\\u548C\\u4E3B\\u9898\\u586B\\u5199\\u6B63\\u786E,\\u5728\\u63A7\\u5236\\u53F0\\u5DF2\\u7ECF\\u663E\\u793A\\u8BA2\\u9605\\u8BBE\\u5907\\u5728\\u7EBF\\u518D\\u5728\\u7C73\\u5BB6\\u6267\\u884C\\u540C\\u6B65,\\u4E3B\\u9898\\u66F4\\u591A\\u8BBE\\u7F6E\\u7684\\u53F3\\u4E0A\\u65B9\\u53EF\\u4FEE\\u6539\\u6635\\u79F0(\\u5728\\u7C73\\u5BB6\\u7B49\\u5E73\\u53F0\\u663E\\u793A\\u7684\\u540D\\u79F0),\\u6BCF\\u6B21\\u4FEE\\u6539\\u5B8C\\u8BBE\\u5907\\u540D\\u90FD\\u8981\\u91CD\\u65B0\\u540C\\u6B65.\"),Y2e,X2e,A(\" \\u591A\\u4E2A\\u8BBE\\u5907\\u53EF\\u4EE5\\u8BBE\\u7F6E\\u540C\\u4E00\\u4E2A\\u4E3B\\u9898,\\u8868\\u793A\\u591A\\u4E2A\\u5F85\\u5524\\u9192\\u8BBE\\u5907\\u4E0E\\u540C\\u4E00\\u4E2A\\u4E3B\\u9898\\u7ED1\\u5B9A,\\u4E00\\u6B21\\u8BED\\u97F3\\u64CD\\u4F5C\\u540C\\u65F6\\u63A7\\u5236\\u591A\\u4E2A\\u8BBE\\u5907\\u7684\\u5F00\\u5173.\\u4E0D\\u5EFA\\u8BAE\\u8FD9\\u6837\\u505A.\"),J2e,A(\" \\u5EFA\\u8BAE\\u4E00\\u4E2A\\u5F85\\u5524\\u9192\\u8BBE\\u5907\\u5BF9\\u5E94\\u4E00\\u4E2A\\u4E3B\\u9898\"),Q2e,Z2e,e0e]),default:d(()=>[c(Z,{\"label-width\":\"120px\",label:\"\\u79C1\\u94A5\"},{default:d(()=>[c(te,{modelValue:v.value.IOT_Bemfa_SecretKey,\"onUpdate:modelValue\":T[9]||(T[9]=O=>v.value.IOT_Bemfa_SecretKey=O),placeholder:\"\\u8BBE\\u5907\\u5BC6\\u94A5\",type:\"text\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Z,{\"label-width\":\"120px\",label:\"\\u4E3B\\u9898\"},{default:d(()=>[c(te,{modelValue:v.value.IOT_Bemfa_Topic,\"onUpdate:modelValue\":T[10]||(T[10]=O=>v.value.IOT_Bemfa_Topic=O),placeholder:\"\\u8BA2\\u9605\\u4E3B\\u9898\",type:\"text\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})],512),[[ge,v.value.IOT_Bemfa_Enable]])])])]),_:1},8,[\"modelValue\",\"title\"])):oe(\"\",!0)])}}}),o0e={class:\"PageRadius\",style:{borderRadius:\"base\"},\"element-loading-background\":\"transparent\"},l0e={class:\"formradius\",style:{borderRadius:\"base\"}},u0e={class:\"AdminListenDivRadius\"},a0e=le({__name:\"PortForwardSet\",setup(e){const t=L(!0),n={PortForwardsLimit:0,TCPPortforwardMaxConnections:0,UDPReadTargetDataMaxgoroutineCount:0},o=L(n),l=L(n),u=()=>{o.value.PortForwardsLimit=l.value.PortForwardsLimit,o.value.TCPPortforwardMaxConnections=l.value.TCPPortforwardMaxConnections},a=i=>{l.value.PortForwardsLimit=i.value.PortForwardsLimit,l.value.TCPPortforwardMaxConnections=i.TCPPortforwardMaxConnections},r=()=>{nce().then(i=>{if(i.ret==0){t.value=!1,o.value=i.configure,a(o);return}ne(\"error\",\"\\u83B7\\u53D6\\u7AEF\\u53E3\\u8F6C\\u53D1\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(i=>{ne(\"error\",\"\\u83B7\\u53D6\\u7AEF\\u53E3\\u8F6C\\u53D1\\u914D\\u7F6E\\u51FA\\u9519\")})},s=()=>{oce(o.value).then(i=>{if(i.ret==0){ne(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\"),r();return}u(),ne(\"error\",i.msg)}).catch(i=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ne(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\"),u()})};return ot(()=>{r()}),(i,p)=>{const m=eo,v=Bn,_=pn,g=Hn,y=vn,w=Yt,E=os;return fe((b(),F(\"div\",o0e,[c(w,{height:\"100%\"},{default:d(()=>[f(\"div\",l0e,[c(g,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[f(\"div\",u0e,[c(_,{content:\"\\u540C\\u4E00\\u7AEF\\u53E3tcp\\u548Cudp\\u7C7B\\u578B\\u5404\\u7B97\\u4E00\\u4E2A,(0-1024)\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u5168\\u5C40\\u7AEF\\u53E3\\u8F6C\\u53D1\\u6700\\u5927\\u6570\\u91CF\",\"label-width\":\"auto\",min:\"0\",max:\"1024\"},{default:d(()=>[c(m,{modelValue:o.value.PortForwardsLimit,\"onUpdate:modelValue\":p[0]||(p[0]=D=>o.value.PortForwardsLimit=D),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(_,{content:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40TCP\\u6700\\u5927\\u5E76\\u53D1\\u8FDE\\u63A5\\u6570,(0-4096)\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40TCP\\u6700\\u5927\\u5E76\\u53D1\\u8FDE\\u63A5\\u6570\",\"label-width\":\"auto\",min:\"0\",max:\"4096\"},{default:d(()=>[c(m,{modelValue:o.value.TCPPortforwardMaxConnections,\"onUpdate:modelValue\":p[1]||(p[1]=D=>o.value.TCPPortforwardMaxConnections=D),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(_,{content:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236,(0-4096)\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236\",\"label-width\":\"auto\",min:\"0\",max:\"4096\"},{default:d(()=>[c(m,{modelValue:o.value.UDPReadTargetDataMaxgoroutineCount,\"onUpdate:modelValue\":p[2]||(p[2]=D=>o.value.UDPReadTargetDataMaxgoroutineCount=D),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])]),_:1},8,[\"model\"]),c(y,{type:\"primary\",round:\"\",onClick:s},{default:d(()=>[A(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1})])]),_:1})])),[[E,t.value]])}}});var r0e=hn(a0e,[[\"__scopeId\",\"data-v-412f99dc\"]]);const Rn=e=>(gu(\"data-v-0d71713d\"),e=e(),bu(),e),s0e={class:\"PageRadius\",style:{borderRadius:\"base\"}},i0e={class:\"itemradius\",style:{borderRadius:\"base\"}},c0e=[\"innerHTML\"],d0e=[\"innerHTML\"],f0e=Rn(()=>f(\"br\",null,null,-1)),p0e=Rn(()=>f(\"br\",null,null,-1)),v0e=Rn(()=>f(\"br\",null,null,-1)),h0e=Rn(()=>f(\"br\",null,null,-1)),_0e=Rn(()=>f(\"br\",null,null,-1)),m0e=Rn(()=>f(\"br\",null,null,-1)),g0e=Rn(()=>f(\"br\",null,null,-1)),b0e=Rn(()=>f(\"br\",null,null,-1)),y0e={class:\"dialogRadius\"},w0e={class:\"dialogRadius\"},C0e=Rn(()=>f(\"br\",null,null,-1)),E0e=Rn(()=>f(\"br\",null,null,-1)),F0e=Rn(()=>f(\"br\",null,null,-1)),A0e=Rn(()=>f(\"br\",null,null,-1)),D0e={class:\"dialog-footer\"},B0e=le({__name:\"PortForward\",setup(e){const t=L(50),n=L(0),o=L([{ProxyKey:\"\",ClientIP:\"\",LogContent:\"\",LogTime:\"\"}]),l=L(\"\"),u=L(1),a=L(!1),r=L(\"\"),s=L(!1),i=L(!0),p=L([\"\"]),m=L(\"\"),v=L(!1),_=L(!1),g=[\"tcp4\",\"tcp6\",\"udp4\",\"udp6\"],y=R=>{O.value.ForwardTypes=R?[\"tcp\",\"udp\"]:[],p.value=R?[\"tcp4\",\"tcp6\",\"udp4\",\"udp6\"]:[],i.value=!1,te(),Z()},w=R=>{const I=R.length;s.value=I===g.length,i.value=I>0&&I<g.length,O.value.ForwardTypes=Ee(R),te(),Z()},E=R=>{let I=0;for(let Y in R.ProxyList)I+=R.ProxyList[Y].TrafficIn;return qd(I)},D=R=>{let I=0;for(let Y in R.ProxyList)I+=R.ProxyList[Y].TrafficOut;return qd(I)},C=R=>{for(let I in R.ForwardTypes)if(R.ForwardTypes[I].indexOf(\"tcp\")==0)return!0;return!1},B=R=>{for(let I in R.ForwardTypes)if(R.ForwardTypes[I].indexOf(\"udp\")==0)return!0;return!1},$=R=>{let I=0;for(let Y in R.ProxyList)R.ProxyList[Y].Proxy.indexOf(\"tcp\")==0&&(I+=R.ProxyList[Y].CurrentConnections);return I},k=R=>{let I=0;for(let Y in R.ProxyList)R.ProxyList[Y].Proxy.indexOf(\"udp\")==0&&(I+=R.ProxyList[Y].CurrentConnections);return I},P=R=>{var I=[\"\"];I.splice(0,1);for(let Y of R){if(Y==\"tcp\"){I.push(\"tcp4\"),I.push(\"tcp6\");continue}if(Y==\"udp\"){I.push(\"udp4\"),I.push(\"udp6\");continue}I.push(Y+\"\")}return I},T=R=>{for(let I in R.ForwardTypes)if(R.ForwardTypes[I].indexOf(\"udp\")!=-1)return!0;return!1},H=R=>{console.log(\"alterRule \"+R),ye.value=\"alter\",O.value={Name:R.Name,Key:R.Key,ListenAddress:R.ListenAddress,ListenPorts:R.ListenPorts,TargetAddressList:R.TargetAddressList,TargetPorts:R.TargetPorts,ForwardTypes:R.ForwardTypes,Enable:R.Enable,LogLevel:R.LogLevel,LogOutputToConsole:R.LogOutputToConsole,AccessLogMaxNum:R.AccessLogMaxNum,WebListShowLastLogMaxCount:R.WebListShowLastLogMaxCount,Options:{SingleProxyMaxUDPReadTargetDatagoroutineCount:R.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount,SingleProxyMaxTCPConnections:R.Options.SingleProxyMaxTCPConnections,UDPPackageSize:R.Options.UDPPackageSize,UDPShortMode:R.Options.UDPShortMode==!0,UDPProxyPerformanceMode:R.Options.UDPProxyPerformanceMode==!0,SafeMode:R.Options.SafeMode}},p.value=P(R.ForwardTypes),m.value=$n(R.TargetAddressList),te(),Z(),xe.value=\"\\u7F16\\u8F91\\u8F6C\\u53D1\\u89C4\\u5219\",Be.value=!0,Pe.value=\"\\u786E\\u8BA4\\u4FEE\\u6539\"},j=R=>{var I=\"\";if(R.LastLogs==null||R.LastLogs.length==0)return I=\"\\u6682\\u65E0\\u65E5\\u5FD7\",I;for(var Y in R.LastLogs){let pe=R.LastLogs[Y].LogTime,Fe=R.LastLogs[Y].LogContent;I+=pe+\"&nbsp;&nbsp;&nbsp;\"+Fe+\"<br />\"}return I==\"\"&&(I=\"\\u6682\\u65E0\\u65E5\\u5FD7\"),I},X=R=>{a.value=!0,u.value=1,n.value=0,t.value=25,l.value=R,Ts(R,t.value,u.value).then(I=>{if(I.ret==0){t.value=I.pageSize,n.value=I.total,o.value=I.logs,ve();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(I=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+I),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},W=R=>{u.value=R-1},N=R=>{u.value=R+1},J=R=>{t.value=R,u.value=1,Ts(l.value,t.value,u.value).then(I=>{if(I.ret==0){t.value=I.pageSize,n.value=I.total,o.value=I.logs,ve();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(I=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+I),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},be=R=>{u.value=R,Ts(l.value,t.value,u.value).then(I=>{if(I.ret==0){t.value=I.pageSize,n.value=I.total,o.value=I.logs,ve();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(I=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+I),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},ve=()=>{r.value=\"\";for(let R in o.value){let I=o.value[R];r.value+=I.LogTime+\"\t\"+I.LogContent+`\n`}},Ee=R=>{var I=[\"\"];I.splice(0,1);let Y=!1,pe=!1,Fe=!1,ce=!1,Ae=!1,ue=!1;for(let me of R)switch(me){case\"tcp4\":Y=!0;break;case\"tcp6\":pe=!0;break;case\"udp4\":Fe=!0;break;case\"udp6\":ce=!0;break}return Y&&pe&&(ue=!0),Fe&&ce&&(Ae=!0),ue?I.push(\"tcp\"):Y?I.push(\"tcp4\"):pe&&I.push(\"tcp6\"),Ae?I.push(\"udp\"):Fe?I.push(\"udp4\"):ce&&I.push(\"udp6\"),I};var te=()=>{for(let R of O.value.ForwardTypes)if(R==\"udp4\"||R==\"udp6\"||R==\"udp\"){v.value=!0;return}v.value=!1},Z=()=>{for(let R of O.value.ForwardTypes)if(R==\"tcp4\"||R==\"tcp6\"||R==\"tcp\"){_.value=!0;return}_.value=!1},De=L([{Name:\"\",Key:\"\",ForwardTypes:[\"\"],ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",Enable:!1,LogLevel:1,LogOutputToConsole:!1,AccessLogMaxNum:1024,WebListShowLastLogMaxCount:20,Options:{UDPPackageSize:1500,SingleProxyMaxUDPReadTargetDatagoroutineCount:64,SingleProxyMaxTCPConnections:128,UDPProxyPerformanceMode:!0,UDPShortMode:!0,SafeMode:\"blacklist\"}}]);De.value.splice(0,1);const Be=L(!1),x=\"160px\",O=L({Name:\"\",Key:\"\",ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",ForwardTypes:[\"\"],Enable:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:20,Options:{SingleProxyMaxTCPConnections:128,SingleProxyMaxUDPReadTargetDatagoroutineCount:32,UDPPackageSize:1500,UDPShortMode:!0,UDPProxyPerformanceMode:!0,SafeMode:\"blacklist\"}}),ye=L(\"\"),xe=L(\"\"),Pe=L(\"\"),he=()=>{ye.value=\"add\",O.value={Name:\"\",Key:\"\",ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",ForwardTypes:[\"tcp6\"],Enable:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1024,WebListShowLastLogMaxCount:20,Options:{SingleProxyMaxTCPConnections:256,SingleProxyMaxUDPReadTargetDatagoroutineCount:32,UDPPackageSize:1500,UDPShortMode:!1,UDPProxyPerformanceMode:!1,SafeMode:\"blacklist\"}},xe.value=\"\\u6DFB\\u52A0\\u8F6C\\u53D1\\u89C4\\u5219\",Be.value=!0,Pe.value=\"\\u6DFB\\u52A0\",p.value=[\"tcp6\"],te(),Z()},Te=()=>{if(O.value.TargetAddressList=xt(m.value),!!se())switch(ye.value){case\"add\":console.log(JSON.stringify(O.value)),Qie(O.value).then(R=>{if(R.ret==0){Be.value=!1,ne(\"success\",\"\\u89C4\\u5219\\u6DFB\\u52A0\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0\\u89C4\\u5219\\u5217\\u8868\"),z(),R.syncres!=null&&R.syncres!=\"\"&&so(\"warn\",R.syncres,0);return}ne(\"error\",R.msg)}).catch(R=>{console.log(\"\\u6DFB\\u52A0\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+R),ne(\"error\",\"\\u6DFB\\u52A0\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;case\"alter\":ece(O.value).then(R=>{if(R.ret==0){Be.value=!1,ne(\"success\",\"\\u89C4\\u5219\\u4FEE\\u6539\\u6210\\u529F\"),z(),R.syncres!=null&&R.syncres!=\"\"&&so(\"warn\",R.syncres,0);return}ne(\"error\",R.msg)}).catch(R=>{console.log(\"\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+R),ne(\"error\",\"\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break}},je=(R,I)=>{const Y=R==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",pe=\"[\"+I.Name+\"]\",Fe=\"[\"+I.Mainconfigure+\"]\";return new Promise((ce,Ae)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\"+Y+\"\\u89C4\\u5219 \"+pe+\" \"+Fe+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{tce(I.Key,!R).then(ue=>{if(ue.ret==0){ce(!0),ne(\"success\",\"\\u89C4\\u5219 \"+pe+\" \"+Fe+Y+\"\\u6210\\u529F\");return}ce(!1),ne(\"error\",\"\\u89C4\\u5219 \"+pe+\" \"+Fe+Y+\"\\u5931\\u8D25\"),ue.syncres!=null&&ue.syncres!=\"\"&&so(\"warn\",ue.syncres,0)}).catch(ue=>{ce(!1),console.log(\"\\u89C4\\u5219 \"+pe+\" \"+Fe+Y+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+ue),ne(\"error\",\"\\u89C4\\u5219 \"+pe+\" \"+Fe+Y+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{ce(!1)})})},de=R=>{const Y=\"[\"+R.Name+\"]\";$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664\\u8F6C\\u53D1\\u89C4\\u5219 \"+Y+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{console.log(\"\\u786E\\u8BA4\\u5220\\u9664 \"+Y),Zie(R.Key).then(pe=>{pe.ret==0?(z(),ne(\"success\",\"\\u5220\\u9664\\u6210\\u529F\"),pe.syncres!=null&&pe.syncres!=\"\"&&so(\"warn\",pe.syncres,0)):ne(\"error\",pe.msg)}).catch(pe=>{console.log(\"\\u5220\\u9664\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+pe),ne(\"error\",\"\\u5220\\u9664\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{})},se=()=>O.value.ForwardTypes.length<=0?(Yo(\"\\u8F6C\\u53D1\\u7C7B\\u578B\\u81F3\\u5C11\\u9009\\u62E9\\u4E00\\u7C7B\"),!1):O.value.ListenAddress.length!=0&&!mce(O.value.ListenAddress)?(Yo(\"\\u76D1\\u542C\\u5730\\u5740IP[\"+O.value.ListenAddress+\"]\\u683C\\u5F0F\\u6709\\u8BEF\"),!1):O.value.ListenPorts.length==0?(Yo(`\\u76D1\\u542C\\u7AEF\\u53E3\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u7AEF\\u53E3\\u548C\\u7AEF\\u53E3\\u6216\\u8005\\u7AEF\\u53E3\\u548C\\u7AEF\\u53E3\\u8303\\u56F4\\u4E4B\\u95F4\\u7528\\u82F1\\u6587\\u72B6\\u6001\\u9017\\u53F7,\\u5206\\u5F00\n\\u4F8B\\u5982 [22,80,443,2000-2010]`),!1):O.value.TargetAddressList.length==0?(Yo(\"\\u76EE\\u6807\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\"),!1):O.value.TargetPorts.length==0?(Yo(\"\\u76EE\\u6807\\u7AEF\\u53E3\\u4E0D\\u80FD\\u4E3A\\u7A7A\"),!1):O.value.WebListShowLastLogMaxCount>64||O.value.WebListShowLastLogMaxCount<=0?(Yo(\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570 \\u8303\\u56F41-64\"),!1):!0,z=()=>{Jie().then(R=>{De.value=R.list}).catch(R=>{console.log(\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+R),ne(\"error\",\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519\")})};var q;return ot(()=>{z(),q=setInterval(()=>{z()},2e3)}),In(()=>{clearInterval(q)}),(R,I)=>{const Y=vn,pe=ya,Fe=rl,ce=pn,Ae=lt(\"Download\"),ue=rt,me=lt(\"Upload\"),Ie=lt(\"Connection\"),ee=ba,Se=Yt,Ke=lt(\"Plus\"),nt=Vl,we=nn,Le=Bn,Qe=Po,Ze=q4,M=zc,S=Mc,_e=eo,G=Ea,ie=Ca,$e=Hn,St=Il,Xt=_6;return b(),F(\"div\",s0e,[c(Se,{height:\"100%\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(De),Ce=>(b(),F(\"div\",i0e,[c(ee,{column:4,border:\"\"},{default:d(()=>[c(pe,{label:\"\\u89C4\\u5219\\u540D\\u79F0\"},{default:d(()=>[fe(c(Y,{size:\"default\"},{default:d(()=>[A(re(Ce.Name==\"\"?\"\\u672A\\u547D\\u540D\\u89C4\\u5219\":Ce.Name),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(pe,{label:\"\\u8F6C\\u53D1\\u7C7B\\u578B\"},{default:d(()=>[(b(!0),F(Oe,null,it(Ce.ForwardTypes,Jt=>fe((b(),ae(Y,{color:\"#0059b3\",size:\"small\"},{default:d(()=>[A(re(Jt),1)]),_:2},1536)),[[ge,!0]])),256))]),_:2},1024),c(pe,{label:\"\\u64CD\\u4F5C\",span:2},{default:d(()=>[c(ce,{content:Ce.Enable==!0?\"\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:d(()=>[c(Fe,{modelValue:Ce.Enable,\"onUpdate:modelValue\":Jt=>Ce.Enable=Jt,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":je.bind(this,Ce.Enable,Ce),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),A(\" \\xA0\\xA0 \"),c(ce,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:j(Ce)},null,8,c0e)]),default:d(()=>[fe(c(Y,{type:\"info\",plain:\"\",size:\"small\",onClick:Jt=>X(Ce.Key)},{default:d(()=>[A(\" \\u65E5\\u5FD7 \")]),_:2},1032,[\"onClick\"]),[[ge,!0]])]),_:2},1024),c(Y,{type:\"primary\",onClick:Jt=>H(Ce)},{default:d(()=>[A(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),c(Y,{type:\"danger\",onClick:Jt=>de(Ce)},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),c(pe,{label:\"\\u76D1\\u542CIP\"},{default:d(()=>[fe(c(Y,{color:\"#D4D7DE\",size:\"small\"},{default:d(()=>[A(re(Ce.ListenAddress==\"\"?\"\\u6240\\u6709IP\":Ce.ListenAddress),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(pe,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\"},{default:d(()=>[fe(c(Y,{color:\"#D4D7DE\",size:\"small\"},{default:d(()=>[A(re(Ce.ListenPorts),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(pe,{label:\"\\u5176\\u5B83\\u53C2\\u6570\",span:2},{default:d(()=>[c(ce,{class:\"box-item\",effect:\"dark\",content:\"\\u5B89\\u5168\\u6A21\\u5F0F\",placement:\"bottom\"},{default:d(()=>[fe(c(Y,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(Ce.Options.SafeMode==\"whitelist\"?\"\\u767D\\u540D\\u5355\":\"\\u9ED1\\u540D\\u5355\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(ce,{class:\"box-item\",effect:\"dark\",content:\"\\u5355\\u7AEF\\u53E3TCP\\u6700\\u5927\\u8FDE\\u63A5\\u6570\",placement:\"bottom\"},{default:d(()=>[fe(c(Y,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(Ce.Options.SingleProxyMaxTCPConnections),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(ce,{class:\"box-item\",effect:\"dark\",content:\"UDP\\u5305\\u6700\\u5927\\u957F\\u5EA6\",placement:\"bottom\"},{default:d(()=>[fe(c(Y,{color:\"#626aef\",size:\"small\"},{default:d(()=>[A(re(Ce.Options.UDPPackageSize),1)]),_:2},1536),[[ge,T(Ce)]])]),_:2},1024),c(ce,{class:\"box-item\",effect:\"dark\",content:Ce.Options.UDPProxyPerformanceMode==!0?\"UDP\\u6027\\u80FD\\u6A21\\u5F0F\\u5F00\\u542F\":\"\\u6027\\u80FD\\u6A21\\u5F0F\\u5173\\u95ED\",placement:\"bottom\"},{default:d(()=>[fe(c(Y,{color:\"#626aef\",size:\"small\",disabled:Ce.Options.UDPProxyPerformanceMode!=!0},{default:d(()=>[A(\" \\u6027\\u80FD\\u6A21\\u5F0F \")]),_:2},1032,[\"disabled\"]),[[ge,T(Ce)]])]),_:2},1032,[\"content\"]),c(ce,{class:\"box-item\",effect:\"dark\",content:Ce.Options.UDPShortMode==!0?\"UDP\\u8F6C\\u53D1 shortMode\\u542F\\u7528\":\"UDP\\u8F6C\\u53D1 shortMode\\u7981\\u7528\",placement:\"bottom\"},{default:d(()=>[fe(c(Y,{color:\"#626aef\",size:\"small\",disabled:Ce.Options.UDPShortMode!=!0},{default:d(()=>[A(\" ShortMode \")]),_:2},1032,[\"disabled\"]),[[ge,T(Ce)]])]),_:2},1032,[\"content\"])]),_:2},1024),c(pe,{label:\"\\u76EE\\u6807\\u5730\\u5740\"},{default:d(()=>[c(ce,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(Ce.TargetAddressList)},null,8,d0e)]),default:d(()=>[fe(c(Y,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(Ce.TargetAddressList==null||Ce.TargetAddressList==null||Ce.TargetAddressList.length<=0?\"\\u672A\\u8BBE\\u7F6E\":Ce.TargetAddressList.length==1?Ce.TargetAddressList[0]:Ce.TargetAddressList[0]+\"...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(pe,{label:\"\\u76EE\\u6807\\u7AEF\\u53E3\"},{default:d(()=>[c(ce,{class:\"box-item oneLine\",effect:\"dark\",placement:\"bottom\",content:Ce.TargetPorts},{default:d(()=>[c(Y,{color:\"#D4D7DE\",size:\"small\"},{default:d(()=>[A(re(Ce.TargetPorts),1)]),_:2},1024)]),_:2},1032,[\"content\"])]),_:2},1024),c(pe,{label:\"\\u7EDF\\u8BA1\",span:2},{default:d(()=>[c(ce,{class:\"box-item\",effect:\"dark\",content:\"\\u5DF2\\u63A5\\u6536 \"+E(Ce),placement:\"bottom\"},{default:d(()=>[c(Y,{color:\"#F2F6FC\",size:\"small\"},{default:d(()=>[c(ue,null,{default:d(()=>[c(Ae)]),_:1}),A(\" \"+re(E(Ce)),1)]),_:2},1024)]),_:2},1032,[\"content\"]),c(ce,{class:\"box-item\",effect:\"dark\",content:\"\\u5DF2\\u53D1\\u9001 \"+D(Ce),placement:\"bottom\"},{default:d(()=>[c(Y,{color:\"#F2F6FC\",size:\"small\"},{default:d(()=>[c(ue,null,{default:d(()=>[c(me)]),_:1}),A(\" \"+re(D(Ce)),1)]),_:2},1024)]),_:2},1032,[\"content\"]),c(ce,{class:\"box-item\",effect:\"dark\",content:\"\\u5F53\\u524DTCP\\u8FDE\\u63A5\\u6570 \"+$(Ce),placement:\"bottom\"},{default:d(()=>[C(Ce)?(b(),ae(Y,{key:0,color:\"#F2F6FC\",size:\"small\"},{default:d(()=>[A(\" TCP\\xA0 \\xA0 \"),c(ue,null,{default:d(()=>[c(Ie)]),_:1}),A(\" \"+re($(Ce)),1)]),_:2},1024)):oe(\"\",!0)]),_:2},1032,[\"content\"]),c(ce,{class:\"box-item\",effect:\"dark\",content:\"UDP\\u8F6C\\u53D1\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570 \"+k(Ce),placement:\"bottom\"},{default:d(()=>[B(Ce)?(b(),ae(Y,{key:0,color:\"#F2F6FC\",size:\"small\"},{default:d(()=>[A(\" UDP\\xA0 \\xA0 \"),c(ue,null,{default:d(()=>[c(Ie)]),_:1}),A(\" \"+re(k(Ce)),1)]),_:2},1024)):oe(\"\",!0)]),_:2},1032,[\"content\"])]),_:2},1024)]),_:2},1024)]))),256))]),_:1}),c(nt,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:d(()=>[c(Y,{type:\"primary\",onClick:he},{default:d(()=>[A(\"\\u6DFB\\u52A0\\u8F6C\\u53D1\\u89C4\\u5219 \"),c(ue,null,{default:d(()=>[c(Ke)]),_:1})]),_:1})]),_:1}),c(St,{modelValue:Be.value,\"onUpdate:modelValue\":I[18]||(I[18]=Ce=>Be.value=Ce),title:xe.value,draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"650px\"},{footer:d(()=>[f(\"span\",D0e,[c(Y,{onClick:I[17]||(I[17]=Ce=>Be.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(Y,{type:\"primary\",onClick:Te},{default:d(()=>[A(re(Pe.value),1)]),_:1})])]),default:d(()=>[c($e,{model:O.value},{default:d(()=>[c(Le,{label:\"\\u540D\\u79F0\",\"label-width\":x},{default:d(()=>[c(we,{modelValue:O.value.Name,\"onUpdate:modelValue\":I[0]||(I[0]=Ce=>O.value.Name=Ce),placeholder:\"\\u8F6C\\u53D1\\u89C4\\u5219\\u540D\\u79F0\\uFF0C\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(Le,{label:\"\\u8F6C\\u53D1\\u7C7B\\u578B\",\"label-width\":x},{default:d(()=>[c(Qe,{modelValue:s.value,\"onUpdate:modelValue\":I[1]||(I[1]=Ce=>s.value=Ce),indeterminate:i.value,onChange:y},{default:d(()=>[A(\"\\u5168\\u9009 \\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\")]),_:1},8,[\"modelValue\",\"indeterminate\"]),f0e,c(Ze,{modelValue:p.value,\"onUpdate:modelValue\":I[2]||(I[2]=Ce=>p.value=Ce),onChange:w},{default:d(()=>[(b(),F(Oe,null,it(g,Ce=>c(Qe,{key:Ce,label:Ce},{default:d(()=>[A(re(Ce),1)]),_:2},1032,[\"label\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),c(Le,{label:\"\\u5B89\\u5168\\u6A21\\u5F0F\",\"label-width\":x},{default:d(()=>[c(S,{modelValue:O.value.Options.SafeMode,\"onUpdate:modelValue\":I[3]||(I[3]=Ce=>O.value.Options.SafeMode=Ce),class:\"ml-4\"},{default:d(()=>[c(M,{label:\"blacklist\"},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\")]),_:1}),c(M,{label:\"whitelist\"},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\\u6A21\\u5F0F\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),c(Le,{label:\"\\u76D1\\u542C\\u5730\\u5740\",\"label-width\":x},{default:d(()=>[c(we,{modelValue:O.value.ListenAddress,\"onUpdate:modelValue\":I[4]||(I[4]=Ce=>O.value.ListenAddress=Ce),autocomplete:\"off\",placeholder:\"\\u7559\\u7A7A\\u8868\\u793A\\u76D1\\u542C\\u4EFB\\u610F\\u5730\\u5740,\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u591A\\u6570\\u60C5\\u51B5\\u4E0B\\u7559\\u7A7A\\u5373\\u53EF\"},null,8,[\"modelValue\"])]),_:1}),c(Le,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",\"label-width\":x},{default:d(()=>[c(ce,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,2000-20010\"),p0e,A(\" \\u8868\\u793A\\u76D1\\u542C80\\u7AEF\\u53E3,22\\u7AEF\\u53E3,20000-20010\\u8303\\u56F4\\u5185\\u768411\\u4E2A\\u7AEF\\u53E3\"),v0e]),default:d(()=>[c(we,{modelValue:O.value.ListenPorts,\"onUpdate:modelValue\":I[5]||(I[5]=Ce=>O.value.ListenPorts=Ce),autocomplete:\"off\",placeholder:\"\\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,20000-20010\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Le,{label:\"\\u76EE\\u6807\\u5730\\u5740\",\"label-width\":x},{default:d(()=>[c(ce,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6CA1\\u7279\\u6B8A\\u9700\\u8981\\u586B\\u4E00\\u884C\\u5373\\u53EF\"),h0e,A(\" \\u591A\\u884C\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u6BCF\\u6B21\\u9009\\u62E9\\u4E0D\\u540C\\u7684\\u76EE\\u6807\\u5730\\u5740\"),_0e,A(\" \\u53EF\\u586B\\u5199IP\\u6216\\u8005\\u57DF\\u540D\"),m0e]),default:d(()=>[c(we,{modelValue:m.value,\"onUpdate:modelValue\":I[6]||(I[6]=Ce=>m.value=Ce),autosize:\"\",placeholder:\"\\u4E00\\u884C\\u586B\\u4E00\\u4E2A\\u5730\\u5740IP\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Le,{label:\"\\u76EE\\u6807\\u7AEF\\u53E3\",\"label-width\":x},{default:d(()=>[c(ce,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,2000-20010\"),g0e,A(\" \\u8868\\u793A\\u76D1\\u542C80\\u7AEF\\u53E3,22\\u7AEF\\u53E3,20000-20010\\u8303\\u56F4\\u5185\\u768411\\u4E2A\\u7AEF\\u53E3\"),b0e]),default:d(()=>[c(we,{modelValue:O.value.TargetPorts,\"onUpdate:modelValue\":I[7]||(I[7]=Ce=>O.value.TargetPorts=Ce),autocomplete:\"off\",placeholder:\"\\u76D1\\u542C\\u7AEF\\u53E3\\u7684\\u6570\\u91CF\\u548C\\u76EE\\u6807\\u7AEF\\u53E3\\u7684\\u6570\\u91CF\\u8981\\u4E00\\u81F4\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",y0e,[c(Le,{label:\"\\u5355\\u7AEF\\u53E3TCP\\u6700\\u5927\\u8FDE\\u63A5\\u6570\",\"label-width\":x},{default:d(()=>[c(_e,{modelValue:O.value.Options.SingleProxyMaxTCPConnections,\"onUpdate:modelValue\":I[8]||(I[8]=Ce=>O.value.Options.SingleProxyMaxTCPConnections=Ce),min:1,max:65535},null,8,[\"modelValue\"])]),_:1})],512),[[ge,_.value]]),fe(f(\"div\",w0e,[fe(c(Le,{label:\"\\u5355\\u7AEF\\u53E3UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236\",\"label-width\":\"auto\"},{default:d(()=>[c(_e,{modelValue:O.value.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount,\"onUpdate:modelValue\":I[9]||(I[9]=Ce=>O.value.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount=Ce),min:0,max:4096},null,8,[\"modelValue\"]),A(\" \\xA0\\xA0\\xA0 \")]),_:1},512),[[ge,v.value]]),fe(c(Le,{label:\"UDP\\u6700\\u5927\\u5305\\u957F\\u5EA6\",\"label-width\":x},{default:d(()=>[c(_e,{modelValue:O.value.Options.UDPPackageSize,\"onUpdate:modelValue\":I[10]||(I[10]=Ce=>O.value.Options.UDPPackageSize=Ce),min:1,max:99999},null,8,[\"modelValue\"]),A(\" \\xA0\\xA0\\xA0 \")]),_:1},512),[[ge,v.value]]),c(Le,{label:\"\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\"},{default:d(()=>[c(ce,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u901A\\u8FC7\\u589E\\u52A0\\u534F\\u7A0B\\u6570\\u81F3\\u4E0ECPU\\u6838\\u6570\\u4E00\\u81F4\\u63D0\\u9AD8udp\\u5C0F\\u5305\\u8F6C\\u53D1\\u6027\\u80FD\"),C0e,A(\" \\u4E00\\u822C\\u60C5\\u51B5\\u4E0D\\u8981\\u5F00\\u542F\"),E0e]),default:d(()=>[c(Qe,{label:\"UDP\\u8F6C\\u53D1\\u6027\\u80FD\\u6A21\\u5F0F\",modelValue:O.value.Options.UDPProxyPerformanceMode,\"onUpdate:modelValue\":I[11]||(I[11]=Ce=>O.value.Options.UDPProxyPerformanceMode=Ce)},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Le,{label:\"\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\"},{default:d(()=>[c(ce,{class:\"box-item\",effect:\"dark\",content:\"DNS\\u8F6C\\u53D1\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\\u4EE5\\u8282\\u7EA6\\u8D44\\u6E90,\\u5176\\u5B83\\u573A\\u666F\\u81EA\\u884C\\u6D4B\\u8BD5\"},{default:d(()=>[c(Qe,{label:\"UDP short mode\",modelValue:O.value.Options.UDPShortMode,\"onUpdate:modelValue\":I[12]||(I[12]=Ce=>O.value.Options.UDPShortMode=Ce)},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,v.value]]),c(Le,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":x},{default:d(()=>[c(ie,{modelValue:O.value.LogLevel,\"onUpdate:modelValue\":I[13]||(I[13]=Ce=>O.value.LogLevel=Ce),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(Bi),Ce=>(b(),ae(G,{key:Ce.value,label:Ce.label,value:Ce.value},null,8,[\"label\",\"value\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),c(Le,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":x},{default:d(()=>[c(Fe,{modelValue:O.value.LogOutputToConsole,\"onUpdate:modelValue\":I[14]||(I[14]=Ce=>O.value.LogOutputToConsole=Ce),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),c(ce,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),F0e]),default:d(()=>[c(Le,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":x,min:0,max:102400},{default:d(()=>[c(_e,{modelValue:O.value.AccessLogMaxNum,\"onUpdate:modelValue\":I[15]||(I[15]=Ce=>O.value.AccessLogMaxNum=Ce),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(ce,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(1-64)\"),A0e]),default:d(()=>[c(Le,{label:\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":x,min:1,max:64},{default:d(()=>[c(_e,{modelValue:O.value.WebListShowLastLogMaxCount,\"onUpdate:modelValue\":I[16]||(I[16]=Ce=>O.value.WebListShowLastLogMaxCount=Ce),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"]),a.value?(b(),ae(St,{key:0,modelValue:a.value,\"onUpdate:modelValue\":I[19]||(I[19]=Ce=>a.value=Ce),\"close-on-click-modal\":!1,width:\"1100px\"},{default:d(()=>[f(\"div\",null,[c(Se,{\"max-height\":\"95vh\",class:\"portforwardLogs\",\"element-loading-background\":\"transparent\"},{default:d(()=>[A(re(r.value),1)]),_:1}),c(Xt,{\"page-size\":t.value,\"page-sizes\":[10,25,50,100,200,300,400,500],small:!1,disabled:!1,background:!1,layout:\"total, sizes, prev, pager, next, jumper\",\"current-page\":u.value,total:n.value,onSizeChange:J,onCurrentChange:be,onPrevClick:W,onNextClick:N},null,8,[\"page-size\",\"current-page\",\"total\"])])]),_:1},8,[\"modelValue\"])):oe(\"\",!0)])}}});var x0e=hn(B0e,[[\"__scopeId\",\"data-v-0d71713d\"]]);const e2=e=>(gu(\"data-v-ff97a846\"),e=e(),bu(),e),$0e={class:\"PageRadius\",style:{borderRadius:\"base\"}},S0e={class:\"InfoDivRadius\"},k0e={class:\"line\"},P0e=e2(()=>f(\"div\",{class:\"line\"},null,-1)),L0e={class:\"line\"},T0e={class:\"line\"},z0e=e2(()=>f(\"div\",{class:\"line\"},\" Lukcy\\u4EA4\\u6D41 QQ\\u7FA4:\\xA0\\xA0602427029 \",-1)),M0e={class:\"line\"},V0e={class:\"line\"},I0e=e2(()=>f(\"div\",{class:\"line\"},null,-1)),H0e=le({__name:\"About\",setup(e){var t=L({AppName:\"Lucky\",Version:\"1.0.0\",OS:\"unknow\",ARCH:\"unknow\",Date:\"2022-07-25\",GoVersion:\"\"});const n=()=>{Nie().then(o=>{if(o.ret==0){t.value=o.info;return}ne(\"error\",\"\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519\")}).catch(o=>{console.log(\"\\u83B7\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519:\"+o),ne(\"error\",\"\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519\")})};return ot(()=>{n()}),(o,l)=>{const u=i6;return b(),F(\"div\",$0e,[f(\"div\",S0e,[f(\"div\",k0e,re(h(t).AppName)+\"\\xA0\\xA0\\xA0version:\"+re(h(t).Version)+\"\\xA0 \"+re(h(t).OS)+\"(\"+re(h(t).ARCH)+\") \",1),P0e,f(\"div\",L0e,\" \\u4F5C\\u8005:\\u53E4\\u5927\\u7F8A \\xA0\"+re(h(t).GoVersion)+\"\\xA0\\u7F16\\u8BD1\\u65F6\\u95F4:\"+re(h(t).Date),1),f(\"div\",T0e,[c(u,{type:\"primary\",href:\"tencent://message/?uin=272288813&Site=&Menu=yes\",target:\"_blank\"},{default:d(()=>[A(\"QQ\\u8054\\u7CFB\\u4F5C\\u8005\")]),_:1}),A(\" \\xA0\\xA0\\xA0\\u90AE\\u7BB1: 272288813@qq.com \")]),z0e,f(\"div\",M0e,[A(\" Github\\xA0\\xA0\"),c(u,{type:\"primary\",href:\"https://github.com/gdy666/lucky\",target:\"_blank\"},{default:d(()=>[A(\"https://github.com/gdy666/lucky\")]),_:1})]),f(\"div\",V0e,[A(\" Gitee\\xA0\\xA0\"),c(u,{type:\"primary\",href:\"https://gitee.com/gdy666/lucky\",target:\"_blank\"},{default:d(()=>[A(\"https://gitee.com/gdy666/lucky\")]),_:1})]),f(\"div\",null,[A(\" \\u672C\\u9879\\u76EE\\u501F\\u9274\\u5F15\\u7528\\u6216\\u53C2\\u8003\\u7684\\u7B2C\\u4E09\\u65B9\\u5F00\\u6E90\\u9879\\u76EE: \"),c(u,{type:\"primary\",href:\"https://github.com/fatedier/frp\",target:\"_blank\"},{default:d(()=>[A(\"frp\")]),_:1}),A(),c(u,{type:\"primary\",href:\"https://github.com/jeessy2/ddns-go\",target:\"_blank\"},{default:d(()=>[A(\"ddns-go\")]),_:1})]),I0e])])}}});var R0e=hn(H0e,[[\"__scopeId\",\"data-v-ff97a846\"]]);const N0e={id:\"status\",\"element-loading-background\":\"transparent\"},O0e={class:\"status\"},U0e={class:\"status\"},W0e={class:\"status\"},q0e={class:\"status\"},j0e={class:\"status\"},K0e={class:\"status\"},G0e={class:\"status\"},Y0e={class:\"status\"},X0e=le({__name:\"status\",setup(e){const t=Xe(\"global\");var n=L(!0),o=L({totleMem:\"0m\",usedMem:\"0m\",unusedMem:\"0m\",usedCPU:\"0%\",currentProcessUsedCPU:\"0%\",goroutine:\"0\",processUsedMem:\"0m\",currentTCPConnections:0,currentUDPConnections:0,maxTCPConnections:0,proxysStatus:\"\",runTime:\"\"}),l;function u(){t.currentPage.value==\"#status\"&&mie().then(a=>{n.value=!1,o.value=a.data})}return ot(()=>{u(),l=setInterval(()=>{u()},3e3)}),In(()=>{clearInterval(l)}),(a,r)=>{const s=os;return fe((b(),F(\"div\",N0e,[f(\"p\",O0e,\"\\u603B\\u5185\\u5B58:\"+re(h(o).totleMem)+\" \\u5DF2\\u7528:\"+re(h(o).usedMem)+\" \\u672A\\u7528:\"+re(h(o).unusedMem),1),f(\"p\",U0e,\"CPU\\u5168\\u5C40\\u4F7F\\u7528\\u7387:\"+re(h(o).usedCPU),1),f(\"p\",W0e,\"\\u5F53\\u524D\\u8FDB\\u7A0BCPU\\u4F7F\\u7528\\u7387:\"+re(h(o).currentProcessUsedCPU),1),f(\"p\",q0e,\"\\u8FDB\\u7A0B\\u534F\\u7A0B\\u6570:\"+re(h(o).goroutine)+\" \\u5360\\u7528\\u5185\\u5B58:\"+re(h(o).processUsedMem),1),f(\"p\",j0e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1TCP\\u603B\\u8FDE\\u63A5\\u6570:\"+re(h(o).currentTCPConnections),1),f(\"p\",K0e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570:\"+re(h(o).currentUDPConnections),1),f(\"p\",G0e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1TCP\\u5168\\u5C40\\u9650\\u5236\\u8FDE\\u63A5\\u6570:\"+re(h(o).maxTCPConnections),1),f(\"p\",Y0e,\"Lucky \\u542F\\u52A8\\u65F6\\u95F4:\"+re(h(o).runTime),1)])),[[s,h(n)]])}}}),J0e=f(\"br\",null,null,-1),Q0e=f(\"br\",null,null,-1),Z0e=f(\"br\",null,null,-1),ede=f(\"br\",null,null,-1),tde=f(\"br\",null,null,-1),nde=f(\"br\",null,null,-1),ode=le({__name:\"log\",setup(e){Xe(\"global\");var t=\"\",n=\"\";const o=L(\"\");var l=L(!0);function u(){gie(t).then(r=>{if(l.value=!1,n!=r.starttime&&(o.value=\"\",n=r.starttime),r.logs!=null&&r.logs.length>0){t=r.logs[r.logs.length-1].timestamp,console.log(\"fff \"+r.logs[r.logs.length-1].log),console.log(\"\\u8FFD\\u52A0\\u65E5\\u5FD7 \"+t);for(var s=0;s<r.logs.length;s++)o.value+=r.logs[s].log+`\n`}})}var a;return ot(()=>{u(),a=setInterval(()=>{u()},1e3)}),In(()=>{clearInterval(a)}),(r,s)=>{const i=Yt,p=os;return fe((b(),ae(i,{\"max-height\":\"95vh\",class:\"logtermv2\",\"element-loading-background\":\"transparent\"},{default:d(()=>[A(re(o.value)+\" \",1),J0e,Q0e,Z0e,ede,tde,nde]),_:1})),[[p,h(l)]])}}}),lde=f(\"span\",null,\"\\u83DC\\u5355\",-1),ude=f(\"span\",null,\"\\u7AEF\\u53E3\\u8F6C\\u53D1\",-1),ade=f(\"span\",null,\"\\u53CD\\u5411\\u4EE3\\u7406\",-1),rde=f(\"span\",null,\"\\u52A8\\u6001\\u57DF\\u540D\",-1),sde=f(\"span\",null,\"\\u7F51\\u7EDC\\u5524\\u9192\",-1),ide=f(\"span\",null,\"\\u5B89\\u5168\\u76F8\\u5173\",-1),cde=f(\"span\",null,\"IP\\u8FC7\\u6EE4\\u8BBE\\u7F6E\",-1),dde=f(\"div\",{class:\"flex-grow\"},null,-1),fde=le({__name:\"pmenu\",setup(e){const t=Xe(\"global\"),n=L(\"#set\"),o=L(\"\");console.log(\"currentPage[menu]:\"+t.currentPage.value);const l=()=>{Mie().then(a=>{if(a.ret==0){o.value=a.version;return}}).catch(a=>{})};function u(a,r,s,i){switch(a){case\"#logout\":$t.confirm(\"\\u786E\\u5B9A\\u8981\\u6CE8\\u9500\\u767B\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u70B9\\u9519\\u4E86\",type:\"warning\"}).then(()=>{Hd(a)}).catch(()=>{});break;case\"#logo\":location.hash=\"#about\";break;default:Hd(a);break}}return ot(()=>{l()}),(a,r)=>{const s=lt(\"Menu\"),i=rt,p=lt(\"DataAnalysis\"),m=tle,v=lt(\"document\"),_=Ic,g=lt(\"Position\"),y=lt(\"List\"),w=nle,E=lt(\"Connection\"),D=lt(\"Promotion\"),C=lt(\"Setting\"),B=lt(\"Bell\"),$=lt(\"setting\"),k=lt(\"Guide\"),P=lt(\"Lock\"),T=lt(\"Pointer\"),H=lt(\"Close\"),j=ele;return b(),ae(j,{\"default-active\":n.value,class:\"el-menu-demo menu\",mode:\"horizontal\",ellipsis:!1,onSelect:u},{default:d(()=>[h(t).currentPage.value!=\"#login\"?(b(),ae(w,{key:0,index:\"#menu\"},{title:d(()=>[c(i,null,{default:d(()=>[c(s)]),_:1}),lde]),default:d(()=>[c(m,{index:\"#status\"},{title:d(()=>[A(\"\\u603B\\u89C8\")]),default:d(()=>[c(i,null,{default:d(()=>[c(p)]),_:1})]),_:1}),c(m,{index:\"#log\"},{title:d(()=>[A(\"\\u7A0B\\u5E8F\\u65E5\\u5FD7\")]),default:d(()=>[c(i,null,{default:d(()=>[c(v)]),_:1})]),_:1}),c(_,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),c(w,{index:\"#relay\"},{title:d(()=>[c(i,null,{default:d(()=>[c(g)]),_:1}),ude]),default:d(()=>[c(m,{index:\"#portforward\"},{title:d(()=>[A(\"\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1}),c(m,{index:\"#portforwardset\"},{title:d(()=>[A(\"\\u8BBE\\u7F6E\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1})]),_:1}),c(w,{index:\"#reverseproxy\"},{title:d(()=>[c(i,null,{default:d(()=>[c(E)]),_:1}),ade]),default:d(()=>[c(m,{index:\"#reverseproxylist\"},{title:d(()=>[A(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1})]),_:1}),c(w,{index:\"#ddns\"},{title:d(()=>[c(i,null,{default:d(()=>[c(D)]),_:1}),rde]),default:d(()=>[c(m,{index:\"#ddnstasklist\"},{title:d(()=>[A(\"\\u52A8\\u6001\\u57DF\\u540D\\u4EFB\\u52A1\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1}),c(m,{index:\"#ddnsset\"},{title:d(()=>[A(\"\\u52A8\\u6001\\u57DF\\u540D\\u8BBE\\u7F6E\")]),default:d(()=>[c(i,null,{default:d(()=>[c(C)]),_:1})]),_:1})]),_:1}),c(w,{index:\"#wol\"},{title:d(()=>[c(i,null,{default:d(()=>[c(B)]),_:1}),sde]),default:d(()=>[c(m,{index:\"#wol\"},{title:d(()=>[A(\"\\u7F51\\u7EDC\\u5524\\u9192\\u8BBE\\u5907\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(B)]),_:1})]),_:1}),c(m,{index:\"#wolserviceset\"},{title:d(()=>[A(\"\\u5524\\u9192/\\u5173\\u673A\\u670D\\u52A1\\u8BBE\\u7F6E\")]),default:d(()=>[c(i,null,{default:d(()=>[c($)]),_:1})]),_:1})]),_:1}),c(_,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),c(w,{index:\"#safe\"},{title:d(()=>[c(i,null,{default:d(()=>[c(k)]),_:1}),ide]),default:d(()=>[c(w,{index:\"#safe\"},{title:d(()=>[c(i,null,{default:d(()=>[c(k)]),_:1}),cde]),default:d(()=>[c(m,{index:\"#whitelistset\"},{title:d(()=>[A(\"\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\")]),default:d(()=>[c(i,null,{default:d(()=>[c(C)]),_:1})]),_:1}),c(m,{index:\"#whitelists\"},{title:d(()=>[A(\"\\u767D\\u540D\\u5355\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1}),c(m,{index:\"#blacklists\"},{title:d(()=>[A(\"\\u9ED1\\u540D\\u5355\\u5217\\u8868\")]),default:d(()=>[c(i,null,{default:d(()=>[c(y)]),_:1})]),_:1})]),_:1}),c(m,{index:\"#ssl\"},{title:d(()=>[A(\"SSL\\u8BC1\\u4E66\")]),default:d(()=>[c(i,null,{default:d(()=>[c(P)]),_:1})]),_:1})]),_:1}),c(m,{index:\"#set\"},{title:d(()=>[A(\"\\u8BBE\\u7F6E\")]),default:d(()=>[c(i,null,{default:d(()=>[c($)]),_:1})]),_:1}),c(m,{index:\"#about\"},{title:d(()=>[A(\"\\u5173\\u4E8E\")]),default:d(()=>[c(i,null,{default:d(()=>[c(T)]),_:1})]),_:1}),c(_,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),c(m,{index:\"#logout\"},{title:d(()=>[A(\"\\u9000\\u51FA\\u767B\\u5F55\")]),default:d(()=>[c(i,null,{default:d(()=>[c(H)]),_:1})]),_:1})]),_:1})):oe(\"\",!0),dde,c(m,{index:\"#logo\"},{default:d(()=>[A(\"Lucky \"+re(o.value),1)]),_:1})]),_:1},8,[\"default-active\"])}}});var tp={exports:{}};(function(e,t){(function(n,o){o()})(ql,function(){function n(i,p){return typeof p==\"undefined\"?p={autoBom:!1}:typeof p!=\"object\"&&(console.warn(\"Deprecated: Expected third argument to be a object\"),p={autoBom:!p}),p.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(i.type)?new Blob([\"\\uFEFF\",i],{type:i.type}):i}function o(i,p,m){var v=new XMLHttpRequest;v.open(\"GET\",i),v.responseType=\"blob\",v.onload=function(){s(v.response,p,m)},v.onerror=function(){console.error(\"could not download file\")},v.send()}function l(i){var p=new XMLHttpRequest;p.open(\"HEAD\",i,!1);try{p.send()}catch{}return 200<=p.status&&299>=p.status}function u(i){try{i.dispatchEvent(new MouseEvent(\"click\"))}catch{var p=document.createEvent(\"MouseEvents\");p.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),i.dispatchEvent(p)}}var a=typeof window==\"object\"&&window.window===window?window:typeof self==\"object\"&&self.self===self?self:typeof ql==\"object\"&&ql.global===ql?ql:void 0,r=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=a.saveAs||(typeof window!=\"object\"||window!==a?function(){}:\"download\"in HTMLAnchorElement.prototype&&!r?function(i,p,m){var v=a.URL||a.webkitURL,_=document.createElement(\"a\");p=p||i.name||\"download\",_.download=p,_.rel=\"noopener\",typeof i==\"string\"?(_.href=i,_.origin===location.origin?u(_):l(_.href)?o(i,p,m):u(_,_.target=\"_blank\")):(_.href=v.createObjectURL(i),setTimeout(function(){v.revokeObjectURL(_.href)},4e4),setTimeout(function(){u(_)},0))}:\"msSaveOrOpenBlob\"in navigator?function(i,p,m){if(p=p||i.name||\"download\",typeof i!=\"string\")navigator.msSaveOrOpenBlob(n(i,m),p);else if(l(i))o(i,p,m);else{var v=document.createElement(\"a\");v.href=i,v.target=\"_blank\",setTimeout(function(){u(v)})}}:function(i,p,m,v){if(v=v||open(\"\",\"_blank\"),v&&(v.document.title=v.document.body.innerText=\"downloading...\"),typeof i==\"string\")return o(i,p,m);var _=i.type===\"application/octet-stream\",g=/constructor/i.test(a.HTMLElement)||a.safari,y=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((y||_&&g||r)&&typeof FileReader!=\"undefined\"){var w=new FileReader;w.onloadend=function(){var C=w.result;C=y?C:C.replace(/^data:[^;]*;/,\"data:attachment/file;\"),v?v.location.href=C:location=C,v=null},w.readAsDataURL(i)}else{var E=a.URL||a.webkitURL,D=E.createObjectURL(i);v?v.location=D:location.href=D,v=null,setTimeout(function(){E.revokeObjectURL(D)},4e4)}});a.saveAs=s.saveAs=s,e.exports=s})})(tp);var pde=tp.exports;const Fa=e=>(gu(\"data-v-80650a0a\"),e=e(),bu(),e),vde={class:\"PageRadius\",style:{borderRadius:\"base\"}},hde={class:\"formradius\",style:{borderRadius:\"base\"}},_de={class:\"AdminListenDivRadius\"},mde=Fa(()=>f(\"p\",null,\"\\u540E\\u53F0\\u7BA1\\u7406\\u5165\\u53E3\\u8BBE\\u7F6E\",-1)),gde=Fa(()=>f(\"br\",null,null,-1)),bde=Fa(()=>f(\"br\",null,null,-1)),yde=Fa(()=>f(\"br\",null,null,-1)),wde={class:\"AdminListenDivRadius\"},Cde={class:\"AdminListenDivRadius\"},Ede={class:\"AdminListenDivRadius\"},Fde=Fa(()=>f(\"p\",null,\"\\u5168\\u5C40\\u8BBE\\u7F6E\",-1)),Ade=le({__name:\"pset\",setup(e){console.log(\"window.location.href \"+window.location.href),console.log(\"window.location.port \"+window.location.port),console.log(\"window.location.host \"+window.location.host),console.log(\"window.location \"+JSON.stringify(window.location));const t=L(!1),n=()=>window.location.protocol+\"//\"+window.location.hostname+\":\"+r.value.AdminWebListenPort,o=()=>{var g=\"/\";return g+\"api/configure\"},l=(g,y,w)=>{if(g.ret!=0){ne(\"error\",g.msg);return}console.log(\"restoreKey: \"+g.restoreConfigureKey);let E=g.file;$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5C06[\"+E+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E?\\u66FF\\u6362\\u5B8C\\u6210\\u540ELucky\\u4F1A\\u81EA\\u52A8\\u91CD\\u542F\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Oie(g.restoreConfigureKey).then(D=>{if(D.ret!=0){ne(\"error\",\"\\u5C06[\"+E+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u51FA\\u9519:\"+D.msg);return}ne(\"success\",\"\\u5C06[\"+E+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u6210\\u529F\"),setTimeout(()=>{window.location.href=window.location.protocol+\"//\"+window.location.hostname+\":\"+D.port},2e3)}).catch(D=>{console.log(\"\\u7F51\\u7EDC\\u51FA\\u9519:\"+D),ne(\"error\",\"\\u5C06[\"+g.file+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u51FA\\u9519:\"+D)})}).catch(()=>{})},u={AdminWebListenPort:1,AdminWebListenTLS:!1,AdminWebListenHttpsPort:16626,AdminAccount:\"\",AdminPassword:\"\",AllowInternetaccess:!1,LogMaxSize:1024,HttpClientSecureVerify:!1,HttpClientTimeout:20},a=L(u),r=L(u),s=()=>{Uie().then(g=>{if(g.ret!=0){ne(\"error\",\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519\");return}let y=new Blob([g.configure],{type:\"application/json\"});pde.saveAs(y,\"lucky_\"+g.time+\".conf\")}).catch(g=>{console.log(\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519:\"+g),ne(\"error\",\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519\")})},i=()=>{a.value.AdminWebListenPort=r.value.AdminWebListenPort,a.value.AdminAccount=r.value.AdminAccount,a.value.AdminPassword=r.value.AdminPassword,a.value.AllowInternetaccess=r.value.AllowInternetaccess},p=g=>{r.value.AdminWebListenPort=g.value.AdminWebListenPort,r.value.AdminAccount=g.value.AdminAccount,r.value.AdminPassword=g.value.AdminPassword,r.value.AllowInternetaccess=g.value.AllowInternetaccess},m=()=>{t.value=!0,$t.confirm(\"\\u786E\\u5B9A\\u8981\\u91CD\\u542Flucky?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u70B9\\u9519\\u4E86\",type:\"warning\"}).then(()=>{$ie().then(g=>{ne(\"success\",\"\\u91CD\\u542F\\u6210\\u529F,3\\u79D2\\u540E\\u81EA\\u52A8\\u8DF3\\u8F6C\\u5230\\u65B0\\u767B\\u5F55\\u8FDE\\u63A5\"),setTimeout(()=>{window.location.href=n()},3e3)}).catch(g=>{t.value=!1,console.log(\"\\u91CD\\u542F\\u64CD\\u4F5C\\u51FA\\u9519:\"+g),ne(\"error\",\"\\u91CD\\u542F\\u64CD\\u4F5C\\u51FA\\u9519\")})}).catch(()=>{t.value=!1})},v=()=>{Fie().then(g=>{if(g.ret==0){a.value=g.baseconfigure,p(a);return}ne(\"error\",\"\\u83B7\\u53D6\\u57FA\\u672C\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(g=>{console.log(\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+g),ne(\"error\",\"\\u83B7\\u53D6\\u57FA\\u672C\\u914D\\u7F6E\\u51FA\\u9519\")})},_=()=>{Die(a.value).then(g=>{if(g.ret==0){ne(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\"),p(a);return}ne(\"error\",g.msg)}).catch(g=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+g),ne(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})};return ot(()=>{v()}),(g,y)=>{const w=rl,E=Bn,D=eo,C=pn,B=nn,$=Hn,k=vn,P=P6,T=Yt;return b(),F(\"div\",vde,[c(T,{height:\"100%\"},{default:d(()=>[f(\"div\",hde,[c($,{model:a.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[f(\"div\",_de,[mde,c(E,{label:\"\\u5916\\u7F51\\u8BBF\\u95EE\",id:\"adminListen\"},{default:d(()=>[c(w,{modelValue:a.value.AllowInternetaccess,\"onUpdate:modelValue\":y[0]||(y[0]=H=>a.value.AllowInternetaccess=H),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5141\\u8BB8\",\"inactive-text\":\"\\u7981\\u6B62\"},null,8,[\"modelValue\"])]),_:1}),c(E,{label:\"\\u7AEF\\u53E3(http)\",id:\"adminListen\"},{default:d(()=>[c(D,{modelValue:a.value.AdminWebListenPort,\"onUpdate:modelValue\":y[1]||(y[1]=H=>a.value.AdminWebListenPort=H),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(E,{label:\"TLS\\u7AEF\\u53E3(https)\",id:\"adminListen\"},{default:d(()=>[c(C,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5916\\u7F51\\u8BBF\\u95EE\\u65F6\\u5EFA\\u8BAE\\u4F7F\\u7528https\\u7AEF\\u53E3\\u8BBF\\u95EE\"),gde,A(\" \\u81EA\\u884C\\u786E\\u8BA4\\u542F\\u7528\\u524D\\u5148\\u6DFB\\u52A0\\u5BF9\\u5E94\\u57DF\\u540D\\u7684SSL\\u8BC1\\u4E66\"),bde,A(\" \\u4FDD\\u5B58\\u4FEE\\u6539\\u6216\\u589E\\u5220SSL\\u8BC1\\u4E66\\u540E\\u8BF7\\u624B\\u52A8\\u91CD\\u542F\\u7A0B\\u5E8F\\u4F7F\\u5F97\\u8BBE\\u7F6E\\u6216\\u8BC1\\u4E66\\u751F\\u6548\"),yde]),default:d(()=>[c(w,{modelValue:a.value.AdminWebListenTLS,\"onUpdate:modelValue\":y[2]||(y[2]=H=>a.value.AdminWebListenTLS=H),class:\"mb-1\",\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(c(E,{label:\"\\u7AEF\\u53E3(https)\",id:\"adminListen\"},{default:d(()=>[c(D,{modelValue:a.value.AdminWebListenHttpsPort,\"onUpdate:modelValue\":y[3]||(y[3]=H=>a.value.AdminWebListenHttpsPort=H),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},512),[[ge,a.value.AdminWebListenTLS]])]),f(\"div\",wde,[c(E,{label:\"\\u7BA1\\u7406\\u767B\\u5F55\\u8D26\\u53F7\",id:\"adminAccount\"},{default:d(()=>[c(B,{modelValue:a.value.AdminAccount,\"onUpdate:modelValue\":y[4]||(y[4]=H=>a.value.AdminAccount=H),placeholder:\"\\u7BA1\\u7406\\u767B\\u5F55\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),c(E,{label:\"\\u7BA1\\u7406\\u767B\\u5F55\\u5BC6\\u7801\",id:\"adminPassword\"},{default:d(()=>[c(B,{modelValue:a.value.AdminPassword,\"onUpdate:modelValue\":y[5]||(y[5]=H=>a.value.AdminPassword=H),placeholder:\"\\u7BA1\\u7406\\u767B\\u5F55\\u5BC6\\u7801\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),f(\"div\",Cde,[c(E,{label:\"\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",id:\"logMaxSize\"},{default:d(()=>[c(D,{modelValue:a.value.LogMaxSize,\"onUpdate:modelValue\":y[6]||(y[6]=H=>a.value.LogMaxSize=H),autocomplete:\"off\",min:1024,max:40960},null,8,[\"modelValue\"])]),_:1})]),f(\"div\",Ede,[Fde,c(E,{label:\"Http(s) \\u5BA2\\u6237\\u7AEF \\u5B89\\u5168\\u8BC1\\u4E66\\u9A8C\\u8BC1\",id:\"adminListen\"},{default:d(()=>[c(w,{modelValue:a.value.HttpClientSecureVerify,\"onUpdate:modelValue\":y[7]||(y[7]=H=>a.value.HttpClientSecureVerify=H),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}),c(E,{label:\"HttpClient timeout(\\u79D2)\"},{default:d(()=>[c(D,{modelValue:a.value.HttpClientTimeout,\"onUpdate:modelValue\":y[8]||(y[8]=H=>a.value.HttpClientTimeout=H),autocomplete:\"off\",min:1,max:60},null,8,[\"modelValue\"])]),_:1})])]),_:1},8,[\"model\"]),c(k,{type:\"primary\",round:\"\",onClick:_},{default:d(()=>[A(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1}),c(k,{type:\"info\",round:\"\",onClick:i},{default:d(()=>[A(\"\\u64A4\\u9500\\u6539\\u52A8\")]),_:1}),c(k,{type:\"danger\",round:\"\",onClick:m,disabled:t.value},{default:d(()=>[A(\"\\u91CD\\u542F\\u7A0B\\u5E8F\")]),_:1},8,[\"disabled\"]),c(k,{type:\"success\",round:\"\",onClick:s},{default:d(()=>[A(\"\\u5907\\u4EFD\\u914D\\u7F6E\")]),_:1}),c(P,{class:\"inline-block\",action:o(),\"show-file-list\":!1,headers:{Authorization:h(Je)()},limit:1,\"on-success\":l},{default:d(()=>[c(k,{round:\"\",class:\"margin-change\"},{default:d(()=>[A(\"\\u6062\\u590D\\u914D\\u7F6E\")]),_:1})]),_:1},8,[\"action\",\"headers\"])])]),_:1})])}}});var Dde=hn(Ade,[[\"__scopeId\",\"data-v-80650a0a\"]]);const Bde={class:\"PageRadius\",style:{borderRadius:\"base\"}},xde={class:\"formradius\",style:{borderRadius:\"base\"}},$de=le({__name:\"login\",setup(e){const t=L(!0),n=Xe(\"global\"),o=L({Account:\"\",Password:\"\"}),l=i=>{u(i)},u=i=>{if(n.storage.setItem(\"rememberPassword\",i),i){n.storage.setItem(\"loginAccount\",o.value.Account),n.storage.setItem(\"loginPassword\",o.value.Password);return}n.storage.setItem(\"loginAccount\",\"\"),n.storage.setItem(\"loginPassword\",\"\")},a=()=>{let i=n.storage.getItem(\"rememberPassword\");t.value=!(i==null||i==!1),i&&(o.value.Account=n.storage.getItem(\"loginAccount\")==null?\"\":n.storage.getItem(\"loginAccount\"),o.value.Password=n.storage.getItem(\"loginPassword\")==null?\"\":n.storage.getItem(\"loginPassword\"))},r=()=>{if(o.value.Account==\"\"||o.value.Password==\"\"){ne(\"error\",\"\\u8D26\\u53F7\\u6216\\u5BC6\\u7801\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}u(t.value),xie(o.value).then(i=>{if(i.ret==0){ne(\"success\",\"\\u767B\\u5F55\\u6210\\u529F\"),n.storage.setItem(\"token\",i.token),location.hash=\"#set\";return}ne(\"error\",i.msg)}).catch(i=>{console.log(\"\\u767B\\u5F55\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ne(\"error\",\"\\u767B\\u5F55\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})},s=i=>{if(i.keyCode==13&&n.currentPage.value==\"#login\"){r();return}};return ot(()=>{window.addEventListener(\"keydown\",s),a()}),(i,p)=>{const m=nn,v=Bn,_=Po,g=Hn,y=vn;return b(),F(\"div\",Bde,[f(\"div\",xde,[c(g,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[c(v,{label:\"\\u7BA1\\u7406\\u8D26\\u53F7\",id:\"account\"},{default:d(()=>[c(m,{modelValue:o.value.Account,\"onUpdate:modelValue\":p[0]||(p[0]=w=>o.value.Account=w),placeholder:\"\\u7BA1\\u7406\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),c(v,{label:\"\\u7BA1\\u7406\\u5BC6\\u7801\",id:\"account\"},{default:d(()=>[c(m,{\"show-password\":\"\",modelValue:o.value.Password,\"onUpdate:modelValue\":p[1]||(p[1]=w=>o.value.Password=w),placeholder:\"\\u7BA1\\u7406\\u5BC6\\u7801\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),c(v,null,{default:d(()=>[c(_,{modelValue:t.value,\"onUpdate:modelValue\":p[2]||(p[2]=w=>t.value=w),label:\"\\u8BB0\\u4F4F\\u5BC6\\u7801\",size:\"large\",onChange:l},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"]),c(y,{type:\"primary\",round:\"\",onClick:r},{default:d(()=>[A(\"\\u767B\\u5F55\")]),_:1})])])}}});var Sde=hn($de,[[\"__scopeId\",\"data-v-ee7bc046\"]]);const kde={class:\"PageRadius\",style:{borderRadius:\"base\"}},Pde={class:\"formradius\",style:{borderRadius:\"base\"}},Lde={class:\"whitelistConfigure\"},Tde=le({__name:\"WhiteListSet\",setup(e){const t=L({URL:\"\",ActivelifeDuration:36,BasicAccount:\"\",BasicPassword:\"\"}),n=L({URL:\"\",ActivelifeDuration:36,BasicAccount:\"\",BasicPassword:\"\"}),o=U(()=>n.value.URL==null||n.value.URL==\"\"?window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl\":window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl/\"+n.value.URL),l=U(()=>t.value.URL==null||t.value.URL==\"\"?window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl\":window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl/\"+t.value.URL),u=s=>{Di(s),ne(\"success\",\"\\u767D\\u540D\\u5355\\u8BA4\\u8BC1\\u5730\\u5740 \"+s+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\")},a=()=>{Sie(t.value).then(s=>{if(s.ret==0){ne(\"success\",\"\\u4FDD\\u5B58\\u6210\\u529F\"),n.value=t.value;return}ne(\"error\",s.msg)}).catch(s=>{ne(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\\u51FA\\u9519\")})},r=()=>{kie().then(s=>{if(s.ret==0){t.value=L(s.data).value,n.value.URL=t.value.URL,n.value.ActivelifeDuration=t.value.ActivelifeDuration,n.value.BasicAccount=t.value.BasicAccount,n.value.BasicPassword=t.value.BasicPassword;return}ne(\"error\",s.msg)}).catch(s=>{ne(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\\u51FA\\u9519\")})};return ot(()=>{r()}),(s,i)=>{const p=nn,m=vn,v=pn,_=Bn,g=eo,y=Hn,w=Yt;return b(),F(\"div\",kde,[c(w,{height:\"100%\"},{default:d(()=>[f(\"div\",Pde,[f(\"div\",Lde,[c(y,{model:t.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[c(_,{label:\"\\u81EA\\u5B9A\\u4E49URL\",id:\"whitelisturl\"},{default:d(()=>[c(p,{modelValue:t.value.URL,\"onUpdate:modelValue\":i[0]||(i[0]=E=>t.value.URL=E),placeholder:\"\\u81EA\\u5B9A\\u4E49URL\",autocomplete:\"off\",style:{witdh:\"250px\",\"margin-bottom\":\"4px\"}},null,8,[\"modelValue\"]),c(v,{class:\"box-item oneLine\",effect:\"dark\",placement:\"bottom\",content:h(o)},{default:d(()=>[c(m,{type:\"info\",round:\"\",onClick:i[1]||(i[1]=E=>u(h(o))),style:{\"margin-right\":\"10px\"}},{default:d(()=>[A(\"\\u590D\\u5236\")]),_:1})]),_:1},8,[\"content\"]),f(\"a\",null,re(h(l)),1)]),_:1}),c(_,{label:\"\\u6709\\u6548\\u65F6\\u957F(\\u5C0F\\u65F6)\",id:\"whitelistActivelifeDuration\"},{default:d(()=>[c(g,{modelValue:t.value.ActivelifeDuration,\"onUpdate:modelValue\":i[2]||(i[2]=E=>t.value.ActivelifeDuration=E),autocomplete:\"off\",min:1,max:99999},null,8,[\"modelValue\"])]),_:1}),c(_,{label:\"\\u8BA4\\u8BC1\\u8D26\\u53F7\",id:\"basicAccount\"},{default:d(()=>[c(p,{modelValue:t.value.BasicAccount,\"onUpdate:modelValue\":i[3]||(i[3]=E=>t.value.BasicAccount=E),placeholder:\"\\u8BA4\\u8BC1\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"250px\"}},null,8,[\"modelValue\"])]),_:1}),c(_,{label:\"\\u8BA4\\u8BC1\\u5BC6\\u7801\",id:\"basicPassword\"},{default:d(()=>[c(p,{modelValue:t.value.BasicPassword,\"onUpdate:modelValue\":i[4]||(i[4]=E=>t.value.BasicPassword=E),placeholder:\"\\u8BA4\\u8BC1\\u5BC6\\u7801\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"]),c(m,{type:\"primary\",round:\"\",onClick:a},{default:d(()=>[A(\"\\u4FDD\\u5B58\\u914D\\u7F6E\")]),_:1})])])]),_:1})])}}});var zde=hn(Tde,[[\"__scopeId\",\"data-v-52b01d33\"]]);const Mde={class:\"PageRadius\",style:{borderRadius:\"base\"}},Vde={class:\"formradius\",style:{borderRadius:\"base\"}},Ide={class:\"dialog-footer\"},Hde=le({__name:\"WhiteLists\",setup(e){var t=L([{IP:\"\",Effectivetime:\"\"}]);t.value.splice(0,1);const n=L(!1),o=L({IP:\"\",Life:0}),l=()=>{n.value=!0,o.value.IP=\"\",o.value.Life=24},u=(m,v,_,g)=>{$t.confirm(g,\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{a(m,v.IP,_)}).catch(()=>{})},a=(m,v,_)=>{Rd(v,_).then(g=>{if(g.ret==0){t.value[m].Effectivetime=g.data;return}ne(\"error\",g.msg)}).catch(g=>{console.log(\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519 \"+g),ne(\"error\",\"\\u5237\\u65B0IP[\"+v+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},r=()=>{Rd(o.value.IP,o.value.Life).then(m=>{if(m.ret==0){let v={IP:o.value.IP,Effectivetime:m.data};t.value.push(v),n.value=!1;return}ne(\"error\",m.msg)}).catch(m=>{console.log(\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519 \"+m),ne(\"error\",\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},s=(m,v)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664IP [\"+v.IP+\"]\\u7684\\u767D\\u540D\\u5355\\u8BB0\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Lie(v.IP).then(_=>{if(_.ret==0){t.value.splice(m,1);return}ne(\"error\",_.msg)}).catch(_=>{ne(\"error\",\"\\u5220\\u9664[\"+v.IP+\"]\\u7684\\u767D\\u540D\\u5355\\u8BB0\\u5F55\\u51FA\\u9519\")})}).catch(()=>{})},i=()=>{Pie().then(m=>{if(m.ret==0){m.data!=null?t.value=m.data:t.value=[];return}ne(\"error\",m.msg)}).catch(m=>{ne(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u5217\\u8868\\u51FA\\u9519\")})},p=m=>{m.keyCode==13&&(!n.value||r())};return ot(()=>{i(),window.addEventListener(\"keydown\",p)}),(m,v)=>{const _=lt(\"Plus\"),g=rt,y=vn,w=Vl,E=B6,D=D6,C=Yt,B=nn,$=Bn,k=eo,P=Hn,T=Il;return b(),F(\"div\",Mde,[c(w,{position:\"bottom\",offset:0,class:\"affix-container\"},{default:d(()=>[c(y,{type:\"primary\",onClick:l},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\\u6DFB\\u52A0 \"),c(g,null,{default:d(()=>[c(_)]),_:1})]),_:1})]),_:1}),c(C,{height:\"100%\"},{default:d(()=>[f(\"div\",Vde,[c(D,{data:h(t),style:{width:\"700px\"},height:\"85vh\"},{default:d(()=>[c(E,{prop:\"IP\",label:\"IP\",width:\"200\"}),c(E,{prop:\"Effectivetime\",label:\"\\u6709\\u6548\\u65F6\\u95F4\",width:\"200\"}),c(E,{fixed:\"right\",label:\"\\u64CD\\u4F5C\",width:\"300\"},{default:d(H=>[c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>u(H.$index,h(t)[H.$index],0,\"\\u786E\\u8BA4\\u8981\\u5237\\u65B0IP[\"+h(t)[H.$index].IP+\"]\\u7684\\u6709\\u6548\\u65F6\\u95F4?\")},{default:d(()=>[A(\" \\u5237\\u65B0\\u6709\\u6548\\u65F6\\u95F4\")]),_:2},1032,[\"onClick\"]),c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>u(H.$index,h(t)[H.$index],666666,\"\\u786E\\u8BA4\\u8981\\u8BBE\\u7F6EIP[\"+h(t)[H.$index].IP+\"]\\u4E3A\\u957F\\u671F\\u6709\\u6548?\")},{default:d(()=>[A(\" \\u8BBE\\u7F6E\\u6C38\\u4E45\\u6709\\u6548\")]),_:2},1032,[\"onClick\"]),c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>s(H.$index,h(t)[H.$index])},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:1})]),_:1},8,[\"data\"])])]),_:1}),c(T,{modelValue:n.value,\"onUpdate:modelValue\":v[3]||(v[3]=H=>n.value=H),title:\"\\u6DFB\\u52A0\\u767D\\u540D\\u5355IP\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:d(()=>[f(\"span\",Ide,[c(y,{onClick:v[2]||(v[2]=H=>n.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(y,{type:\"primary\",onClick:r},{default:d(()=>[A(\"\\u6DFB\\u52A0\")]),_:1})])]),default:d(()=>[c(P,{model:o.value},{default:d(()=>[c($,{label:\"IP\",\"label-width\":\"auto\"},{default:d(()=>[c(B,{modelValue:o.value.IP,\"onUpdate:modelValue\":v[0]||(v[0]=H=>o.value.IP=H),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c($,{label:\"\\u6709\\u6548\\u65F6\\u95F4(\\u5C0F\\u65F6)\",\"label-width\":\"auto\"},{default:d(()=>[c(k,{modelValue:o.value.Life,\"onUpdate:modelValue\":v[1]||(v[1]=H=>o.value.Life=H),min:1,max:999999},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])])}}});var Rde=hn(Hde,[[\"__scopeId\",\"data-v-d9c87ebe\"]]);const Nde={class:\"PageRadius\",style:{borderRadius:\"base\"}},Ode={class:\"formradius\",style:{borderRadius:\"base\"}},Ude={class:\"dialog-footer\"},Wde=le({__name:\"BlackLists\",setup(e){var t=L([{IP:\"\",Effectivetime:\"\"}]);t.value.splice(0,1);const n=L(!1),o=L({IP:\"\",Life:0}),l=()=>{n.value=!0,o.value.IP=\"\",o.value.Life=666666},u=(m,v,_,g)=>{$t.confirm(g,\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{a(m,v.IP,_)}).catch(()=>{})},a=(m,v,_)=>{Nd(v,_).then(g=>{if(g.ret==0){t.value[m].Effectivetime=g.data;return}ne(\"error\",g.msg)}).catch(g=>{ne(\"error\",\"\\u5237\\u65B0IP[\"+v+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},r=()=>{Nd(o.value.IP,o.value.Life).then(m=>{if(m.ret==0){let v={IP:o.value.IP,Effectivetime:m.data};t.value.push(v),n.value=!1;return}ne(\"error\",m.msg)}).catch(m=>{ne(\"error\",\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},s=(m,v)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664IP [\"+v.IP+\"]\\u7684\\u9ED1\\u540D\\u5355\\u8BB0\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{zie(v.IP).then(_=>{if(_.ret==0){t.value.splice(m,1);return}ne(\"error\",_.msg)}).catch(_=>{ne(\"error\",\"\\u5220\\u9664[\"+v.IP+\"]\\u7684\\u9ED1\\u540D\\u5355\\u8BB0\\u5F55\\u51FA\\u9519\")})}).catch(()=>{})},i=()=>{Tie().then(m=>{if(m.ret==0){m.data!=null?t.value=m.data:t.value=[];return}ne(\"error\",m.msg)}).catch(m=>{ne(\"error\",\"\\u67E5\\u8BE2\\u9ED1\\u540D\\u5355\\u5217\\u8868\\u51FA\\u9519\")})},p=m=>{m.keyCode==13&&(!n.value||r())};return ot(()=>{i(),window.addEventListener(\"keydown\",p)}),(m,v)=>{const _=lt(\"Plus\"),g=rt,y=vn,w=Vl,E=B6,D=D6,C=Yt,B=nn,$=Bn,k=eo,P=Hn,T=Il;return b(),F(\"div\",Nde,[c(w,{position:\"top\",offset:0,class:\"affix-container\"},{default:d(()=>[c(y,{type:\"primary\",onClick:l},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\\u6DFB\\u52A0 \"),c(g,null,{default:d(()=>[c(_)]),_:1})]),_:1})]),_:1}),c(C,{height:\"100%\"},{default:d(()=>[f(\"div\",Ode,[c(D,{data:h(t),style:{width:\"700px\"},height:\"85vh\"},{default:d(()=>[c(E,{prop:\"IP\",label:\"IP\",width:\"200\"}),c(E,{prop:\"Effectivetime\",label:\"\\u6709\\u6548\\u65F6\\u95F4\",width:\"200\"}),c(E,{fixed:\"right\",label:\"\\u64CD\\u4F5C\",width:\"300\"},{default:d(H=>[c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>u(H.$index,h(t)[H.$index],0,\"\\u786E\\u8BA4\\u8981\\u5237\\u65B0IP[\"+h(t)[H.$index].IP+\"]\\u7684\\u6709\\u6548\\u65F6\\u95F4?\")},{default:d(()=>[A(\" \\u5237\\u65B0\\u6709\\u6548\\u65F6\\u95F4\")]),_:2},1032,[\"onClick\"]),c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>u(H.$index,h(t)[H.$index],666666,\"\\u786E\\u8BA4\\u8981\\u8BBE\\u7F6EIP[\"+h(t)[H.$index].IP+\"]\\u4E3A\\u957F\\u671F\\u6709\\u6548?\")},{default:d(()=>[A(\" \\u8BBE\\u7F6E\\u6C38\\u4E45\\u6709\\u6548\")]),_:2},1032,[\"onClick\"]),c(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>s(H.$index,h(t)[H.$index])},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:1})]),_:1},8,[\"data\"])])]),_:1}),c(T,{modelValue:n.value,\"onUpdate:modelValue\":v[3]||(v[3]=H=>n.value=H),title:\"\\u6DFB\\u52A0\\u9ED1\\u540D\\u5355IP\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:d(()=>[f(\"span\",Ude,[c(y,{onClick:v[2]||(v[2]=H=>n.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(y,{type:\"primary\",onClick:r},{default:d(()=>[A(\"\\u6DFB\\u52A0\")]),_:1})])]),default:d(()=>[c(P,{model:o.value},{default:d(()=>[c($,{label:\"IP\",\"label-width\":\"auto\"},{default:d(()=>[c(B,{modelValue:o.value.IP,\"onUpdate:modelValue\":v[0]||(v[0]=H=>o.value.IP=H),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c($,{label:\"\\u6709\\u6548\\u65F6\\u95F4(\\u5C0F\\u65F6)\",\"label-width\":\"auto\"},{default:d(()=>[c(k,{modelValue:o.value.Life,\"onUpdate:modelValue\":v[1]||(v[1]=H=>o.value.Life=H),min:1,max:999999},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])])}}});var qde=hn(Wde,[[\"__scopeId\",\"data-v-4c99c1a8\"]]);const Ne=e=>(gu(\"data-v-9ec9996c\"),e=e(),bu(),e),jde={class:\"PageRadius\",style:{borderRadius:\"base\"}},Kde={class:\"itemradius\",style:{borderRadius:\"base\"}},Gde=[\"innerHTML\"],Yde={key:0},Xde=[\"innerHTML\"],Jde=[\"innerHTML\"],Qde=[\"innerHTML\"],Zde=[\"innerHTML\"],e1e={class:\"fromitemDivRadius\"},t1e=Ne(()=>f(\"p\",null,\"DNS\\u670D\\u52A1\\u5546\\u8BBE\\u7F6E\",-1)),n1e={class:\"fromitemChildDivRadius\"},o1e={key:0},l1e={key:1},u1e={key:2},a1e={key:3},r1e={key:4},s1e={key:5},i1e={key:6},c1e=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u652F\\u6301\\u7684\\u53D8\\u91CF #{ip}, #{domain}, #{recordType}, #{ttl}\",-1)),d1e=Ne(()=>f(\"br\",null,null,-1)),f1e={class:\"fromitemChildDivRadius\"},p1e={key:0,style:{\"font-size\":\"small\"}},v1e={key:1,style:{\"font-size\":\"small\"}},h1e={key:2,style:{\"font-size\":\"small\"}},_1e={key:3,style:{\"font-size\":\"small\"}},m1e=Ne(()=>f(\"br\",null,null,-1)),g1e=Ne(()=>f(\"br\",null,null,-1)),b1e=Ne(()=>f(\"br\",null,null,-1)),y1e=Ne(()=>f(\"br\",null,null,-1)),w1e=Ne(()=>f(\"br\",null,null,-1)),C1e=Ne(()=>f(\"br\",null,null,-1)),E1e=Ne(()=>f(\"br\",null,null,-1)),F1e=Ne(()=>f(\"br\",null,null,-1)),A1e=Ne(()=>f(\"br\",null,null,-1)),D1e=Ne(()=>f(\"br\",null,null,-1)),B1e=Ne(()=>f(\"br\",null,null,-1)),x1e=Ne(()=>f(\"br\",null,null,-1)),$1e=Ne(()=>f(\"br\",null,null,-1)),S1e=Ne(()=>f(\"br\",null,null,-1)),k1e=Ne(()=>f(\"br\",null,null,-1)),P1e=Ne(()=>f(\"br\",null,null,-1)),L1e=Ne(()=>f(\"br\",null,null,-1)),T1e=Ne(()=>f(\"br\",null,null,-1)),z1e=Ne(()=>f(\"br\",null,null,-1)),M1e=Ne(()=>f(\"br\",null,null,-1)),V1e=Ne(()=>f(\"br\",null,null,-1)),I1e=Ne(()=>f(\"br\",null,null,-1)),H1e=Ne(()=>f(\"br\",null,null,-1)),R1e={class:\"fromitemChildDivRadius\"},N1e=Ne(()=>f(\"p\",null,\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u989D\\u5916\\u8BBE\\u7F6E\",-1)),O1e={class:\"fromitemChildDivRadius\"},U1e=Ne(()=>f(\"p\",null,\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u4EE3\\u7406\\u8BBE\\u7F6E\",-1)),W1e={class:\"fromitemChildDivRadius\"},q1e={class:\"fromitemDivRadius\"},j1e={key:0},K1e={key:1},G1e={class:\"fromitemDivRadius\"},Y1e={class:\"fromitemChildDivRadius\"},X1e={style:{color:\"blue\"}},J1e=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" \\u652F\\u6301\\u81EA\\u5B9A\\u4E49webhook \",-1)),Q1e={style:{color:\"blue\"}},Z1e=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" https://sctapi.ftqq.com/[SendKey].send?title=\\u4E3B\\u4EBAIP\\u53D8\\u4E86#{ipAddr},\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86#{ipAddr},\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomains},\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomains} \",-1)),efe={style:{color:\"blue\"}},tfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" https://api.day.app/[YOUR_KEY]/\\u4E3B\\u4EBAIP\\u53D8\\u4E86#{ipAddr},\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86#{ipAddr},\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomains},\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomains} \",-1)),nfe={style:{color:\"blue\"}},ofe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u9489\\u9489\\u7535\\u8111\\u7AEF -> \\u7FA4\\u8BBE\\u7F6E -> \\u667A\\u80FD\\u7FA4\\u52A9\\u624B -> \\u6DFB\\u52A0\\u673A\\u5668\\u4EBA -> \\u81EA\\u5B9A\\u4E49\",-1)),lfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u53EA\\u52FE\\u9009\\u81EA\\u5B9A\\u4E49\\u5173\\u952E\\u8BCD,\\u8F93\\u5165\\u7684\\u5173\\u952E\\u5B57\\u5FC5\\u987B\\u5305\\u542B\\u5728RequestBody\\u7684content\\u4E2D,\\u5982:\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86 \",-1)),ufe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),afe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),rfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),sfe={style:{color:\"blue\"}},ife=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u98DE\\u4E66\\u7535\\u8111\\u7AEF -> \\u7FA4\\u8BBE\\u7F6E -> \\u6DFB\\u52A0\\u673A\\u5668\\u4EBA -> \\u81EA\\u5B9A\\u4E49\\u673A\\u5668\\u4EBA\",-1)),cfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" \\u5B89\\u5168\\u8BBE\\u7F6E\\u53EA\\u52FE\\u9009\\u81EA\\u5B9A\\u4E49\\u5173\\u952E\\u8BCD,\\u8F93\\u5165\\u7684\\u5173\\u952E\\u5B57\\u5FC5\\u987B\\u5305\\u542B\\u5728RequestBody\\u7684content\\u4E2D,\\u5982\\uFF1A\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86\",-1)),dfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"StatusCode\":0,\"StatusMessage\":\"success\"}',-1)),ffe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),pfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"StatusCode\":0,\"StatusMessage\":\"success\"} ',-1)),vfe={style:{color:\"blue\"}},hfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u4E0B\\u8F7D\\u4F01\\u4E1A\\u5FAE\\u4FE1\\u2192\\u5DE6\\u4E0A\\u89D2\\u4E09\\u6A2A\\u6760\\u2192\\u5168\\u65B0\\u521B\\u5EFA\\u4F01\\u4E1A\\u2192\\u4E2A\\u4EBA\\u7EC4\\u4EF6\\u56E2\\u961F(\\u521B\\u5EFA\\u4E2A\\u4EBA\\u7684\\u4F01\\u4E1A\\u7FA4\\u804A)\",-1)),_fe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u8FDB\\u5165\\u7FA4\\u804A\\u6DFB\\u52A0 [\\u7FA4\\u673A\\u5668\\u4EBA] \\u590D\\u5236\\u673A\\u5668\\u4EBAWebhook\\u5730\\u5740\",-1)),mfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),gfe=Ne(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),bfe={class:\"fromitemChildDivRadius\"},yfe=Ne(()=>f(\"br\",null,null,-1)),wfe=Ne(()=>f(\"br\",null,null,-1)),Cfe=Ne(()=>f(\"br\",null,null,-1)),Efe=Ne(()=>f(\"br\",null,null,-1)),Ffe=Ne(()=>f(\"br\",null,null,-1)),Afe=Ne(()=>f(\"br\",null,null,-1)),Dfe=Ne(()=>f(\"br\",null,null,-1)),Bfe=Ne(()=>f(\"br\",null,null,-1)),xfe=Ne(()=>f(\"br\",null,null,-1)),$fe=Ne(()=>f(\"br\",null,null,-1)),Sfe=Ne(()=>f(\"br\",null,null,-1)),kfe=Ne(()=>f(\"br\",null,null,-1)),Pfe=Ne(()=>f(\"br\",null,null,-1)),Lfe=Ne(()=>f(\"br\",null,null,-1)),Tfe=Ne(()=>f(\"br\",null,null,-1)),zfe=Ne(()=>f(\"br\",null,null,-1)),Mfe=Ne(()=>f(\"br\",null,null,-1)),Vfe=Ne(()=>f(\"br\",null,null,-1)),Ife=Ne(()=>f(\"br\",null,null,-1)),Hfe=Ne(()=>f(\"br\",null,null,-1)),Rfe=Ne(()=>f(\"br\",null,null,-1)),Nfe=Ne(()=>f(\"br\",null,null,-1)),Ofe=Ne(()=>f(\"br\",null,null,-1)),Ufe=Ne(()=>f(\"br\",null,null,-1)),Wfe=Ne(()=>f(\"br\",null,null,-1)),qfe=Ne(()=>f(\"br\",null,null,-1)),jfe=Ne(()=>f(\"br\",null,null,-1)),Kfe=Ne(()=>f(\"br\",null,null,-1)),Gfe=Ne(()=>f(\"br\",null,null,-1)),Yfe={class:\"fromitemChildDivRadius\"},Xfe={class:\"fromitemDivRadius\",style:{\"padding-top\":\"10px\"}},Jfe={class:\"dialog-footer\"},Qfe=le({__name:\"DDNS\",setup(e){const t=L(!1),n=L(\"\"),o=M=>{t.value=!0,n.value=M};var l=L({IPv6NewInterfaces:[{NetInterfaceName:\"\",AddressList:[\"\"]}],IPv4NewInterfaces:[{NetInterfaceName:\"\",AddressList:[\"\"]}]}),u=L([{NetInterfaceName:\"\",AddressList:[\"\"]}]),a=L([{TaskName:\"\",TaskKey:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:20,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:600,ResolverDoaminCheck:!1,DNSServerList:[\"\"],HttpClientProxyType:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\",TaskState:{WebhookCallTime:\"\",WebhookCallResult:!1,WebhookCallErrorMsg:\"\",IPAddrHistory:[{IPaddr:\"\",RecordTime:\"\"}],WebhookCallHistroy:[{CallTime:\"\",CallResult:\"\"}],IpAddr:\"\",Domains:[{DomainName:\"\",SubDomain:\"\",UpdateStatus:\"\",LastUpdateStatusTime:\"\",Message:\"\",UpdateHistroy:[{UpdateStatus:\"\",UpdateTime:\"\"}]}]}}]);a.value.splice(0,1);const r=L(\"\"),s=L(\"\"),i=L(\"\");r.value=' <el-link type=\"info\">info</el-link>';const p=[{value:\"\",label:\"\\u7981\\u7528\"},{value:\"http\",label:\"HTTP\"},{value:\"https\",label:\"HTTPS\"},{value:\"socks5\",label:\"SOCKS5\"}],m=[{value:\"\",label:\"\\u7981\\u7528\"},{value:\"dns\",label:\"\\u4F7F\\u7528DNS\\u670D\\u52A1\\u5546\\u540C\\u6837\\u8BBE\\u7F6E\"},{value:\"http\",label:\"HTTP\"},{value:\"https\",label:\"HTTPS\"},{value:\"socks5\",label:\"SOCKS5\"}],v=[{value:\"\",label:\"\\u81EA\\u52A8\"},{value:\"1\",label:\"1\\u79D2\"},{value:\"5\",label:\"5\\u79D2\"},{value:\"10\",label:\"10\\u79D2\"},{value:\"60\",label:\"1\\u5206\\u949F\"},{value:\"120\",label:\"2\\u5206\\u949F\"},{value:\"600\",label:\"10\\u5206\\u949F\"},{value:\"1800\",label:\"30\\u5206\\u949F\"},{value:\"3600\",label:\"1\\u5C0F\\u65F6\"}],_=M=>{for(let S in v)if(v[S].value==M)return v[S].label;return M+\"\\u79D2\"},g=[{value:\"meibu\",label:\"\\u6BCF\\u6B65\"},{value:\"noip\",label:\"No-IP\"},{value:\"dynv6\",label:\"Dynv6\"},{value:\"dynu\",label:\"Dynu\"},{value:\"other\",label:\"\\u5176\\u5B83\"}],y=[{value:\"\",label:\"tcp\"},{value:\"tcp4\",label:\"tcp4\"},{value:\"tcp6\",label:\"tcp6\"}],w=()=>{console.log(\"WebHookTest\");let M={WebhookURL:x.value.WebhookURL,WebhookMethod:x.value.WebhookMethod,WebhookRequestBody:x.value.WebhookRequestBody,WebhookProxy:x.value.WebhookProxy,WebhookProxyAddr:x.value.WebhookProxyAddr,WebhookProxyUser:x.value.WebhookProxyUser,WebhookProxyPassword:x.value.WebhookProxyPassword,WebhookHeaders:xt(Pe.value),WebhookSuccessContent:xt(he.value)};Rie(Be.value,M).then(S=>{if(S.ret==0){console.log(\"apiWebhookTest: \"+JSON.stringify(S));let _e=`Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u7ED3\\u679C:\n`+S.msg;_e+=`\n\n\n`,_e+=`Web\\u63A5\\u53E3\\u53CD\\u9988\\u7684\\u5B8C\\u6574\\u5185\\u5BB9:\n`+S.Response,o(_e);return}ne(\"error\",S.msg)}).catch(S=>{console.log(\"webhook\\u63A5\\u53E3\\u8C03\\u7528\\u51FA\\u9519,error:\"+S),ne(\"error\",\"webhook\\u63A5\\u53E3\\u8C03\\u7528\\u51FA\\u9519\")})},E=M=>{for(let S in g)if(g[S].value==M)return g[S].label;return\"\\u672A\\u652F\\u6301\\u7684DNSCallbackServerLaber\"},D=[\"[2001:4860:4860::8888]:53\",\"[2001:4860:4860::8844]:53\",\"[2606:4700:4700::64]:53\",\"[2606:4700:4700::6400]:53\",\"[240C::6666]:53\",\"[240C::6644]:53\",\"[2402:4e00::]:53\",\"[240e:4c:4008::1]:53\",\"[240e:4c:4808::1]:53\",\"[2408:8899::8]:53\",\"[2408:8888::8]:53\",\"[2409:8088::a]:53\",\"[2409:8088::b]:53\",\"[2001:dc7:1000::1]:53\",\"[2400:da00::6666]:53\"],C=[\"1.1.1.1:53\",\"1.2.4.8:53\",\"8.8.8.8:53\",\"9.9.9.9:53\",\"8.8.4.4:53\",\"114.114.114.114:53\",\"223.5.5.5:53\",\"223.6.6.6:53\",\"101.226.4.6:53\",\"218.30.118.6:53\",\"119.28.28.28:53\"],B=[{value:\"serverjiang\",label:\"Server\\u9171\"},{value:\"bark\",label:\"Bark\"},{value:\"dingding\",label:\"\\u9489\\u9489\"},{value:\"feishu\",label:\"\\u98DE\\u4E66\"},{value:\"weixinpro\",label:\"\\u4F01\\u4E1A\\u5FAE\\u4FE1\"},{value:\"custom\",label:\"\\u81EA\\u5B9A\\u4E49\"}],$=[{value:\"alidns\",label:\"Alidns(\\u963F\\u91CC\\u4E91)\"},{value:\"baiducloud\",label:\"\\u767E\\u5EA6\\u4E91\"},{value:\"cloudflare\",label:\"Cloudflare\"},{value:\"dnspod\",label:\"Dnspod(\\u817E\\u8BAF\\u4E91)\"},{value:\"huaweicloud\",label:\"\\u534E\\u4E3A\\u4E91\"},{value:\"porkbun\",label:\"Porkbun\"},{value:\"callback\",label:\"\\u81EA\\u5B9A\\u4E49(Callback)\"}],k=[{value:\"get\",label:\"GET\"},{value:\"post\",label:\"POST\"},{value:\"put\",label:\"PUT\"}],P=M=>{let S=\"\";for(let _e in M){let G=M[_e].IPaddr;G==\"\"&&(G=\"\\u83B7\\u53D6IP\\u5931\\u8D25\"),S+=M[_e].RecordTime+\"&nbsp; &nbsp; &nbsp;\"+G+\"<br />\"}return S},T=M=>{let S=\"\";for(let _e in M){let G=M[_e].UpdateStatus;S+=M[_e].UpdateTime+\"&nbsp; &nbsp; &nbsp;\"+G+\"<br />\"}return S},H=M=>{let S=\"\\u4EC5\\u8BB0\\u5F55\\u7A0B\\u5E8F\\u672C\\u6B21\\u542F\\u52A8\\u4EE5\\u6765\\u7684Webhook\\u8C03\\u7528\\u8BB0\\u5F55<br />\";for(let _e in M){let G=M[_e].CallResult;S+=M[_e].CallTime+\"&nbsp; &nbsp; &nbsp;\"+G+\"<br />\"}return S},j=M=>{switch(M){case\"dingding\":let S={msgtype:\"markdown\",markdown:{title:\"DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988\",text:`#### DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988 \n - IP\\u5730\\u5740\\uFF1A#{ipAddr} \n - \\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomainsLine}\n - \\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomainsLine}\n - Webhook\\u89E6\\u53D1\\u65F6\\u95F4:  \n  #{time}`}};i.value=JSON.stringify(S,null,2);break;case\"feishu\":let _e={msg_type:\"post\",content:{post:{zh_cn:{title:\"DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988\",content:[[{tag:\"text\",text:\"IP\\u5730\\u5740\\uFF1A#{ipAddr}\"}],[{tag:\"text\",text:\"\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{su.ccessDomainsLine}\"}],[{tag:\"text\",text:\"\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomainsLine}\"}],[{tag:\"text\",text:`Webhook\\u89E6\\u53D1\\u65F6\\u95F4: \n#{time}`}]]}}}};i.value=JSON.stringify(_e,null,2);break;case\"weixinpro\":let G={msgtype:\"markdown\",markdown:{content:`#### DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988 \n##### IP\\u5730\\u5740\\uFF1A\n#{ipAddr} \n##### \\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A\n#{successDomainsLine}\n##### \\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A\n#{failedDomainsLine}\n##### Webhook\\u89E6\\u53D1\\u65F6\\u95F4: \n#{time}`}};i.value=JSON.stringify(G,null,2);break}},X=(M,S)=>{let _e=M==\"\"?S:M+\".\"+S;Di(_e),ne(\"success\",\"\\u57DF\\u540D \"+_e+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\")},W=M=>{M!=\"\"&&(Di(M),ne(\"success\",\"IP \"+M+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\"))},N=()=>{Hie(x.value.TaskType,x.value.NetInterface,x.value.IPReg).then(M=>{if(M.ret==0){console.log(\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u7ED3\\u679C:\"+M.ip);let S=\"\";M.ip==\"\"?S=\"IP\\u9009\\u62E9\\u5339\\u914D\\u4E0D\\u5230\\u4EFB\\u4F55IP\":S=\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u7ED3\\u679C: \"+M.ip,Yo(S);return}ne(\"error\",\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519\")}).catch(M=>{console.log(\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519:\"+M),ne(\"error\",\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519\")})},J=M=>{for(let S in $)if($[S].value==M.Name)return M.Name!=\"callback\"?$[S].label:E(M.Callback.Server)+\" (\\u81EA\\u5B9A\\u4E49)\";return\"\\u672A\\u77E5DNS\\u670D\\u52A1\\u5546\"},be=()=>{switch(x.value.DNS.Name){case\"alidns\":return\"AccessKey ID\";case\"dnspod\":return\"ID\";case\"cloudflare\":return\"\";case\"huaweicloud\":return\"Access Key Id\";case\"baiducloud\":return\"AccessKey ID\";case\"porkbun\":return\"API Key\";case\"callback\":return\"URL\";default:return\"\\u672A\\u652F\\u6301\\u670D\\u52A1\\u5546\\u7C7B\\u578B\"}},ve=()=>{switch(x.value.DNS.Name){case\"alidns\":return\"AccessKey Secret\";case\"dnspod\":return\"Token\";case\"cloudflare\":return\"Token\";case\"huaweicloud\":return\"Secret Access Key\";case\"baiducloud\":return\"AccessKey Secret\";case\"porkbun\":return\"Secret Key\";case\"callback\":return\"RequestBody\";default:return\"\\u672A\\u652F\\u6301\\u670D\\u52A1\\u5546\\u7C7B\\u578B\"}},Ee=()=>{switch(x.value.DNS.Name){case\"alidns\":return!0;case\"dnspod\":return!0;case\"cloudflare\":return!1;case\"huaweicloud\":return!0;case\"baiducloud\":return!0;case\"porkbun\":return!0;case\"callback\":return!1;default:return!1}},te=()=>{switch(x.value.DNS.Name){case\"alidns\":return!0;case\"dnspod\":return!0;case\"cloudflare\":return!0;case\"huaweicloud\":return!0;case\"baiducloud\":return!0;case\"porkbun\":return!0;case\"callback\":return!1;default:return!1}},Z=M=>{console.log(\"ddnsTaskTypeChange label:\"+M),x.value.TaskType!=O.value.TaskType?(x.value.URL=[],x.value.DNS.DNSServerList=[]):(x.value.URL=O.value.URL,x.value.DNS.DNSServerList=O.value.DNS.DNSServerList),xe.value=ee(),Te.value=Se(),Ae()},De=L(!1),Be=L(\"\"),x=L({TaskName:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:60,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!1,CallAPINetwork:\"\",DNSServerList:[\"\"],HttpClientProxyType:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookCallOnGetIPfail:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\"}),O=L({TaskName:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:20,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!1,DNSServerList:[\"\"],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookCallOnGetIPfail:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\"}),ye=L(\"\"),xe=L(\"\"),Pe=L(\"\"),he=L(\"\"),Te=L(\"\"),je=L(\"\"),de=L(\"\"),se=L(\"\"),z=[\"https://4.ipw.cn\",\"http://v4.ip.zxinc.org/getip\",\"https://myip4.ipip.net\",\"https://www.taobao.com/help/getip.php\",\"https://ddns.oray.com/checkip\",\"https://ip.3322.net\",\"https://v4.myip.la\"],q=[\"https://6.ipw.cn\",\"https://ipv6.ddnspod.com\",\"http://v6.ip.zxinc.org/getip\",\"https://speed.neu6.edu.cn/getIP.php\",\"https://v6.ident.me\",\"https://v6.myip.la\"],R=(M,S)=>{s.value=\"\",Ae(),se.value=M,M==\"add\"?(x.value.TaskName=\"\",x.value.TaskType=\"IPv6\",x.value.Enable=!0,x.value.GetType=\"url\",x.value.URL=q,x.value.NetInterface=\"\",x.value.IPReg=\"\",x.value.Domains=[\"\"],x.value.HttpClientTimeout=20,x.value.DNS={Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!0,DNSServerList:[],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"get\",Headers:[\"\"],RequestBody:\"\",Server:\"other\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[]}},x.value.WebhookEnable=!1,x.value.WebhookCallOnGetIPfail=!1,x.value.WebhookURL=\"\",x.value.WebhookMethod=\"get\",x.value.WebhookHeaders=[],x.value.WebhookRequestBody=\"\",x.value.WebhookDisableCallbackSuccessContentCheck=!1,x.value.WebhookSuccessContent=[],x.value.WebhookProxy=\"\",x.value.WebhookProxyAddr=\"\",x.value.WebhookProxyUser=\"\",x.value.WebhookProxyPassword=\"\",x.value.TTL=\"\",xe.value=ee(),Te.value=Se(),Pe.value=we(),Pe.value=\"\",he.value=\"\",de.value=\"\",je.value=\"\",O.value.TaskName=\"\",O.value.TaskType=\"IPv6\",O.value.Enable=!0,O.value.GetType=\"url\",O.value.URL=xt(xe.value),O.value.NetInterface=\"\",O.value.IPReg=\"\",O.value.Domains=[\"\"],O.value.HttpClientTimeout=20,O.value.DNS={Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!0,DNSServerList:[],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"get\",Headers:[\"\"],RequestBody:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[],Server:\"other\"}},O.value.WebhookEnable=!1,O.value.WebhookCallOnGetIPfail=!1,O.value.WebhookURL=\"\",O.value.WebhookMethod=\"get\",O.value.WebhookHeaders=[],O.value.WebhookRequestBody=\"\",O.value.WebhookDisableCallbackSuccessContentCheck=!1,O.value.WebhookSuccessContent=[],O.value.WebhookProxy=\"\",O.value.WebhookProxyAddr=\"\",O.value.WebhookProxyUser=\"\",O.value.WebhookProxyPassword=\"\",O.value.TTL=\"\"):(x.value.TaskName=S.TaskName,x.value.TaskType=S.TaskType,x.value.Enable=S.Enable,x.value.GetType=S.GetType,x.value.URL=S.URL,x.value.NetInterface=S.NetInterface,x.value.IPReg=S.IPReg,x.value.Domains=S.Domains,x.value.HttpClientTimeout=S.HttpClientTimeout,x.value.DNS={Name:S.DNS.Name,ID:S.DNS.ID,Secret:S.DNS.Secret,ForceInterval:S.DNS.ForceInterval,ResolverDoaminCheck:S.DNS.ResolverDoaminCheck,DNSServerList:S.DNS.DNSServerList,HttpClientProxyType:S.DNS.HttpClientProxyType,CallAPINetwork:S.DNS.CallAPINetwork,HttpClientProxyAddr:S.DNS.HttpClientProxyAddr,HttpClientProxyUser:S.DNS.HttpClientProxyUser,HttpClientProxyPassword:S.DNS.HttpClientProxyPassword,Callback:{URL:S.DNS.Callback.URL,Method:S.DNS.Callback.Method,Headers:S.DNS.Callback.Headers,RequestBody:S.DNS.Callback.RequestBody,Server:S.DNS.Callback.Server,DisableCallbackSuccessContentCheck:S.DNS.Callback.DisableCallbackSuccessContentCheck,CallbackSuccessContent:S.DNS.Callback.CallbackSuccessContent}},x.value.WebhookEnable=S.WebhookEnable,x.value.WebhookCallOnGetIPfail=S.WebhookCallOnGetIPfail,x.value.WebhookURL=S.WebhookURL,x.value.WebhookRequestBody=S.WebhookRequestBody,x.value.WebhookMethod=S.WebhookMethod,x.value.WebhookHeaders=S.WebhookHeaders,x.value.WebhookDisableCallbackSuccessContentCheck=S.WebhookDisableCallbackSuccessContentCheck,x.value.WebhookSuccessContent=S.WebhookSuccessContent,x.value.WebhookProxy=S.WebhookProxy,x.value.WebhookProxyAddr=S.WebhookProxyAddr,x.value.WebhookProxyUser=S.WebhookProxyUser,x.value.WebhookProxyPassword=S.WebhookProxyPassword,x.value.TTL=S.TTL,xe.value=ee(),de.value=Ke(),ye.value=nt(),je.value=Le(),Te.value=Se(),Pe.value=we(),he.value=Qe(),O.value.TaskName=S.TaskName,O.value.TaskType=S.TaskType,O.value.Enable=S.Enable,O.value.GetType=S.GetType,O.value.URL=xt(xe.value),O.value.NetInterface=S.NetInterface,O.value.IPReg=S.IPReg,O.value.Domains=S.Domains,O.value.HttpClientTimeout=S.HttpClientTimeout,O.value.DNS={Name:S.DNS.Name,ID:S.DNS.ID,Secret:S.DNS.Secret,ForceInterval:S.DNS.ForceInterval,ResolverDoaminCheck:S.DNS.ResolverDoaminCheck,DNSServerList:S.DNS.DNSServerList,HttpClientProxyType:S.DNS.HttpClientProxyType,CallAPINetwork:S.DNS.CallAPINetwork,HttpClientProxyAddr:S.DNS.HttpClientProxyAddr,HttpClientProxyUser:S.DNS.HttpClientProxyUser,HttpClientProxyPassword:S.DNS.HttpClientProxyPassword,Callback:{URL:S.DNS.Callback.URL,Method:S.DNS.Callback.Method,Headers:S.DNS.Callback.Headers,RequestBody:S.DNS.Callback.RequestBody,CallbackSuccessContent:S.DNS.Callback.CallbackSuccessContent,DisableCallbackSuccessContentCheck:S.DNS.Callback.DisableCallbackSuccessContentCheck,Server:S.DNS.Callback.Server}},O.value.WebhookEnable=S.WebhookEnable,O.value.WebhookMethod=S.WebhookMethod,O.value.WebhookHeaders=S.WebhookHeaders,O.value.WebhookCallOnGetIPfail=S.WebhookCallOnGetIPfail,O.value.WebhookURL=S.WebhookURL,O.value.WebhookDisableCallbackSuccessContentCheck=S.WebhookDisableCallbackSuccessContentCheck,O.value.WebhookSuccessContent=S.WebhookSuccessContent,O.value.WebhookRequestBody=S.WebhookRequestBody,O.value.WebhookProxy=S.WebhookProxy,O.value.WebhookProxyAddr=S.WebhookProxyAddr,O.value.WebhookProxyUser=S.WebhookProxyUser,O.value.WebhookProxyPassword=S.WebhookProxyPassword,O.value.TTL=S.TTL,Be.value=S.TaskKey),De.value=!0},I=M=>{console.log(\"ResolverDoaminCheckChange: \"+M)},Y=(M,S)=>{const _e=M==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",G=\"[\"+S.TaskName+\"]\";return new Promise((ie,$e)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\"+_e+\"DDNS\\u4EFB\\u52A1 \"+G+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Eie(S.TaskKey,!M).then(St=>{if(St.ret==0){ie(!0),ne(\"success\",\"DDNS\\u4EFB\\u52A1  \"+G+_e+\"\\u6210\\u529F\");return}ie(!1),ne(\"error\",\"DDNS\\u4EFB\\u52A1 \"+G+_e+\"\\u5931\\u8D25\"),St.syncres!=null&&St.syncres!=\"\"&&so(\"warn\",St.syncres,0)}).catch(St=>{ie(!1),console.log(\"DDNS\\u4EFB\\u52A1 \"+G+_e+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+St),ne(\"error\",\"DDNS\\u4EFB\\u52A1 \"+G+_e+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{ie(!1)})})},pe=M=>{const _e=\"[\"+M.TaskName+\"]\";$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664DDNS\\u4EFB\\u52A1 \"+_e+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{console.log(\"\\u786E\\u8BA4\\u5220\\u9664DDNS\\u4EFB\\u52A1 \"+_e),wie(M.TaskKey).then(G=>{G.ret==0?(ce(),ne(\"success\",\"\\u5220\\u9664\\u6210\\u529F\"),G.syncres!=null&&G.syncres!=\"\"&&so(\"warn\",G.syncres,0)):ne(\"error\",G.msg)}).catch(G=>{console.log(\"\\u5220\\u9664DDNS\\u4EFB\\u52A1\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+G),ne(\"error\",\"\\u5220\\u9664DDNS\\u4EFB\\u52A1\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{})},Fe=()=>{x.value.URL=xt(xe.value),x.value.Domains=xt(de.value),x.value.DNS.Callback.Headers=xt(ye.value),x.value.DNS.Callback.CallbackSuccessContent=xt(je.value),x.value.DNS.DNSServerList=xt(Te.value),x.value.WebhookHeaders=xt(Pe.value),x.value.WebhookSuccessContent=xt(he.value),x.value.URL.length==0&&(x.value.TaskType==\"IPv6\"?x.value.URL=q:x.value.URL=z,xe.value=ee());let M=ue();if(M.length>0){Yo(M);return}se.value==\"add\"?(console.log(\"add DDNS\\u4EFB\\u52A1\"),bie(x.value).then(S=>{if(S.ret==0){De.value=!1,ne(\"success\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0DDNS\\u4EFB\\u52A1\\u5217\\u8868\"),ce(),S.syncres!=null&&S.syncres!=\"\"&&so(\"warn\",S.syncres,0);return}ne(\"error\",S.msg)}).catch(S=>{console.log(\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+S),ne(\"error\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})):yie(Be.value,x.value).then(S=>{if(S.ret==0){De.value=!1,ne(\"success\",\"DDNS\\u4EFB\\u52A1\\u4FEE\\u6539\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0DDNS\\u4EFB\\u52A1\\u5217\\u8868\"),ce(),S.syncres!=null&&S.syncres!=\"\"&&so(\"warn\",S.syncres,0);return}ne(\"error\",S.msg)}).catch(S=>{console.log(\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+S),ne(\"error\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})},ce=()=>{Cie().then(M=>{if(M.ret==0){a.value=M.data;return}if(M.ret==6){ne(\"warning\",\"\\u8BF7\\u5148\\u5728\\u52A8\\u6001\\u57DF\\u540D\\u8BBE\\u7F6E\\u4E2D\\u542F\\u7528DDNS\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\"),location.hash=\"#ddnsset\";return}}).catch(M=>{console.log(\"\\u83B7\\u53D6DDNS\\u4EFB\\u52A1\\u5217\\u8868\\u51FA\\u9519:\"+M),ne(\"error\",\"\\u83B7\\u53D6DDNS\\u4EFB\\u52A1\\u5217\\u8868\\u51FA\\u9519\")})},Ae=()=>{Iie().then(M=>{M.ret==0&&(l.value=M.data,x.value.TaskType==\"IPv6\"?u.value=l.value.IPv6NewInterfaces:u.value=l.value.IPv4NewInterfaces,x.value.NetInterface==\"\"&&u.value.length>0&&(x.value.NetInterface=u.value[0].NetInterfaceName))}).catch(M=>{console.log(\"\\u83B7\\u53D6\\u7F51\\u5361\\u5217\\u8868\\u51FA\\u9519:\"+M),ne(\"error\",\"\\u83B7\\u53D6\\u7F51\\u5361\\u5217\\u8868\\u51FA\\u9519\")})},ue=()=>{let M=x.value,S=me(M.DNS);if(S.length>0)return S;if(M.Domains.length==0)return\"\\u57DF\\u540D\\u5217\\u8868\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(M.GetType==\"url\"&&M.URL.length<=0)return\"\\u63A5\\u53E3\\u5217\\u8868\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(M.GetType==\"netInterface\"&&M.NetInterface==\"\")return\"\\u8BF7\\u9009\\u62E9\\u83B7\\u53D6IP\\u7684\\u7F51\\u5361\";if(M.DNS.HttpClientProxyType!=\"\"&&M.DNS.HttpClientProxyAddr==\"\")return\"DNS \\u4EE3\\u7406\\u8BBE\\u7F6E\\u670D\\u52A1\\u5668\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(M.WebhookEnable){if(M.WebhookURL==\"\")return\"\\u8BF7\\u586B\\u5199Webhook \\u63A5\\u53E3\\u5730\\u5740\";if(M.WebhookMethod==\"\")return\"\\u8BF7\\u9009\\u62E9Webhook \\u8BF7\\u6C42\\u65B9\\u6CD5\";if(M.WebhookProxy!=\"\"&&M.WebhookProxy!=\"dns\"&&M.WebhookProxyAddr==\"\")return\"Webhook \\u4EE3\\u7406\\u8BBE\\u7F6E\\u670D\\u52A1\\u5668\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(!M.WebhookDisableCallbackSuccessContentCheck&&M.WebhookSuccessContent.length==0)return\"Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u5982\\u679C\\u8981\\u6307\\u5B9A\\u4E3A\\u7A7A\\u8BF7\\u7981\\u7528\\u68C0\\u6D4B\"}return M.DNS.Name==\"callback\"?(M.DNS.ID=\"\",M.DNS.Secret=\"\",M.DNS.Callback.Method==\"get\"&&(M.DNS.Callback.RequestBody=\"\")):M.DNS.Callback={URL:\"\",Method:\"\",Headers:[],RequestBody:\"\",Server:\"\",CallbackSuccessContent:[],DisableCallbackSuccessContentCheck:!1},M.WebhookEnable&&M.WebhookMethod==\"get\"&&(M.WebhookRequestBody=\"\"),\"\"},me=M=>{switch(M.Name){case\"cloudflare\":if(M.Secret==\"\")return\"Cloudflare Token\\u4E0D\\u80FD\\u4E3A\\u7A7A\";break;case\"callback\":if(M.Callback.Method==\"\")return\"\\u8BF7\\u9009\\u62E9Callback\\u7684\\u8BF7\\u6C42\\u65B9\\u6CD5\";if(M.Callback.URL==\"\")return\"Callback \\u63A5\\u53E3\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(!M.Callback.DisableCallbackSuccessContentCheck&&M.Callback.CallbackSuccessContent.length==0)return\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u5982\\u679C\\u8981\\u6307\\u5B9A\\u4E3A\\u7A7A\\u8BF7\\u7981\\u7528\\u68C0\\u6D4B\";break;default:if(M.Secret==\"\"||M.ID==\"\")return\"DNS\\u670D\\u52A1\\u5546\\u76F8\\u5173\\u53C2\\u6570\\u4E0D\\u80FD\\u4E3A\\u7A7A\"}return\"\"},Ie=()=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\\u6839\\u636ECallback DNS\\u670D\\u52A1\\u5546[\"+E(x.value.DNS.Callback.Server)+\"]\\u548C\\u516C\\u7F51IP\\u7C7B\\u578B:[\"+x.value.TaskType+\"]\\u81EA\\u52A8\\u586B\\u5145\\u53C2\\u6570\\u6A21\\u7248?\",\"Warning\",{confirmButtonText:\"\\u81EA\\u52A8\\u586B\\u5145\",cancelButtonText:\"\\u4E0D\\u9700\\u8981\",type:\"warning\"}).then(()=>{switch(x.value.DNS.Callback.Server){case\"meibu\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"http://v6.meibu.com/v6.asp?name=#{domain}&pwd=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684\\u5BC6\\u7801\":x.value.DNS.Callback.URL=\"http://ipv4.meibu.com/ipv4.asp?ID=lucky&name=#{domain}&pwd=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684\\u5BC6\\u7801\",ye.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"chenggong\",\"chongfu\",\"ok\"],je.value=`chenggong\nchongfu\nok`;break;case\"noip\":x.value.DNS.Callback.URL=\"http://\\u4F60\\u7684\\u8D26\\u53F7:\\u4F60\\u7684\\u5BC6\\u7801@dynupdate.no-ip.com/nic/update?hostname=#{domain}&myip=#{ip}\",ye.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"nochg #{ip}\",\"good #{ip}\"],je.value=`nochg #{ip}\ngood #{ip}`;break;case\"dynv6\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"https://dynv6.com/api/update?hostname=#{domain}&token=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684Token&ipv6=#{ip}\":x.value.DNS.Callback.URL=\"https://dynv6.com/api/update?hostname=#{domain}&token=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684Token&ipv4=#{ip}\",ye.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"addresses updated\"],je.value=`addresses updated\n`;break;case\"dynu\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"https://api.dynu.com/nic/update?hostname=#{domain}&myip=no&myipv6=#{ip}&username=\\u7528\\u6237\\u540D&password=\\u767B\\u5F55\\u5BC6\\u7801\\u6216IP\\u66F4\\u65B0\\u5BC6\\u7801\":x.value.DNS.Callback.URL=\"https://api.dynu.com/nic/update?hostname=#{domain}&myip=#{ip}&myipv6=no}&username=\\u7528\\u6237\\u540D&password=\\u767B\\u5F55\\u5BC6\\u7801\\u6216IP\\u66F4\\u65B0\\u5BC6\\u7801\",ye.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"nochg\",\"good #{ip}\"],je.value=`nochg\ngood #{ip}`;break}}).catch(()=>{})},ee=()=>{(x.value.URL==null||x.value.URL.length<=0||x.value.URL.length==1&&x.value.URL[0]==\"\")&&(x.value.TaskType==\"IPv6\"?x.value.URL=q:x.value.URL=z);var M=\"\";for(let S in x.value.URL)S==\"0\"?M=x.value.URL[S]:M+=`\n`+x.value.URL[S];return M},Se=()=>{(x.value.DNS.DNSServerList==null||x.value.DNS.DNSServerList.length<=0||x.value.DNS.DNSServerList.length==1&&x.value.DNS.DNSServerList[0]==\"\")&&(x.value.TaskType==\"IPv6\"?x.value.DNS.DNSServerList=D:x.value.DNS.DNSServerList=C);var M=\"\";for(let S in x.value.DNS.DNSServerList)S==\"0\"?M=x.value.DNS.DNSServerList[S]:M+=`\n`+x.value.DNS.DNSServerList[S];return M},Ke=()=>{if(x.value.Domains==null||x.value.Domains.length==0)return\"\";var M=\"\";for(let S in x.value.Domains)S==\"0\"?M=x.value.Domains[S]:M+=`\n`+x.value.Domains[S];return M},nt=()=>{if(x.value.DNS.Callback.Headers==null||x.value.DNS.Callback.Headers.length==0)return\"\";var M=\"\";for(let S in x.value.DNS.Callback.Headers)S==\"0\"?M=x.value.DNS.Callback.Headers[S]:M+=`\n`+x.value.DNS.Callback.Headers[S];return M},we=()=>{if(x.value.WebhookHeaders==null||x.value.WebhookHeaders.length==0)return\"\";var M=\"\";for(let S in x.value.WebhookHeaders)S==\"0\"?M=x.value.WebhookHeaders[S]:M+=`\n`+x.value.WebhookHeaders[S];return M},Le=()=>{if(x.value.DNS.Callback.CallbackSuccessContent==null||x.value.DNS.Callback.CallbackSuccessContent.length==0)return\"\";var M=\"\";for(let S in x.value.DNS.Callback.CallbackSuccessContent)S==\"0\"?M=x.value.DNS.Callback.CallbackSuccessContent[S]:M+=`\n`+x.value.DNS.Callback.CallbackSuccessContent[S];return M},Qe=()=>{if(x.value.WebhookSuccessContent==null||x.value.WebhookSuccessContent.length==0)return\"\";var M=\"\";for(let S in x.value.WebhookSuccessContent)S==\"0\"?M=x.value.WebhookSuccessContent[S]:M+=`\n`+x.value.WebhookSuccessContent[S];return M};var Ze;return ot(()=>{ce(),Ze=setInterval(()=>{ce()},500)}),In(()=>{clearInterval(Ze)}),(M,S)=>{const _e=vn,G=ya,ie=rl,$e=pn,St=ba,Xt=Yt,Ce=lt(\"Plus\"),Jt=rt,_n=Vl,ht=nn,t2=Il,Ue=Bn,to=Ea,no=Ca,mn=i6,n2=eo,Aa=zc,o2=Mc,op=Hn;return b(),F(\"div\",jde,[c(Xt,{height:\"100%\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(a),(Q,Bu)=>(b(),F(\"div\",Kde,[c(St,{column:4,border:\"\"},{default:d(()=>[c(G,{label:\"DDNS\\u4EFB\\u52A1\\u540D\\u79F0\"},{default:d(()=>[fe(c(_e,{type:\"\",size:\"default\"},{default:d(()=>[A(re(Q.TaskName==\"\"?\"\\u672A\\u547D\\u540D\\u4EFB\\u52A1\":Q.TaskName),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(G,{label:\"DDNS\\u7C7B\\u578B\"},{default:d(()=>[fe(c(_e,{color:\"#409eff\",size:\"default\"},{default:d(()=>[A(re(Q.TaskType),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(G,{label:\"\\u4EFB\\u52A1\\u64CD\\u4F5C\",span:2},{default:d(()=>[c($e,{content:Q.Enable==!0?\"\\u4EFB\\u52A1\\u5DF2\\u542F\\u7528\":\"\\u4EFB\\u52A1\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:d(()=>[c(ie,{modelValue:Q.Enable,\"onUpdate:modelValue\":Pt=>Q.Enable=Pt,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":Y.bind(this,Q.Enable,Q),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),A(\" \\xA0\\xA0 \"),c(_e,{type:\"primary\",onClick:Pt=>R(\"alter\",Q)},{default:d(()=>[A(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),c(_e,{type:\"danger\",onClick:Pt=>pe(Q)},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),c(G,{label:\"DNS\\u670D\\u52A1\\u5546\"},{default:d(()=>[fe(c(_e,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(J(Q.DNS)),1)]),_:2},1536),[[ge,!0]]),c($e,{\"v-if\":Q.DNS.HttpClientProxyType!=\"\",content:Q.DNS.HttpClientProxyType==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u7C7B\\u578B:[\"+Q.DNS.HttpClientProxyType+\"] \\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u5730\\u5740:[\"+Q.DNS.HttpClientProxyAddr+\"]\",placement:\"top\"},{default:d(()=>[c(_e,{type:Q.DNS.HttpClientProxyType==\"\"?\"\":\"success\",size:\"small\"},{default:d(()=>[A(re(Q.DNS.HttpClientProxyType==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u5DF2\\u8BBE\\u7F6E\\u4EE3\\u7406\"),1)]),_:2},1032,[\"type\"])]),_:2},1032,[\"v-if\",\"content\"])]),_:2},1024),c(G,{label:\"\\u83B7\\u53D6\\u516C\\u7F51IP\\u65B9\\u5F0F\"},{default:d(()=>[fe(c(_e,{color:\"#409eff\",size:\"default\"},{default:d(()=>[A(re(Q.GetType==\"url\"?\"URL\":\"\\u7F51\\u5361\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(G,{label:\"\\u516C\\u7F51IP\"},{default:d(()=>[c($e,{placement:Bu==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:P(Q.TaskState.IPAddrHistory)},null,8,Gde)]),default:d(()=>[fe(c(_e,{color:\"#409eff\",size:\"default\",onClick:Pt=>W(Q.TaskState.IpAddr)},{default:d(()=>[A(re(Q.TaskState.IpAddr==\"\"?\"\\u5C1A\\u672A\\u83B7\\u53D6\\u5230\\u516C\\u7F51IP\":Q.TaskState.IpAddr),1)]),_:2},1032,[\"onClick\"]),[[ge,!0]])]),_:2},1032,[\"placement\"])]),_:2},1024),c(G,{label:\"TTL\"},{default:d(()=>[fe(c(_e,{size:\"small\",type:\"\"},{default:d(()=>[A(re(_(Q.TTL)),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),Q.WebhookEnable?(b(),F(\"div\",Yde,[c(G,{label:\"WebHook\",span:1},{default:d(()=>[c(_e,{type:\"success\",size:\"small\"},{default:d(()=>[A(\" \\u5DF2\\u542F\\u7528 \")]),_:1}),c(_e,{type:Q.WebhookProxy==\"\"?\"\":\"success\",size:\"small\"},{default:d(()=>[A(re(Q.WebhookProxy==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u5DF2\\u8BBE\\u7F6E\\u4EE3\\u7406\"),1)]),_:2},1032,[\"type\"])]),_:2},1024),c(G,{label:\"WebHook \\u89E6\\u53D1\\u65F6\\u95F4\",span:Q.TaskState.WebhookCallTime==\"\"?3:1},{default:d(()=>[c($e,{placement:Bu==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:H(Q.TaskState.WebhookCallHistroy)},null,8,Xde)]),default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\"},{default:d(()=>[A(re(Q.TaskState.WebhookCallTime==\"\"?\"\\u4ECE\\u672A\\u89E6\\u53D1\":Q.TaskState.WebhookCallTime),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"]),Q.TaskState.WebhookCallTime!=\"\"?(b(),ae(G,{key:0,label:\"WebHook \\u89E6\\u53D1\\u7ED3\\u679C\",span:Q.TaskState.WebhookCallErrorMsg==\"\"?2:1},{default:d(()=>[c($e,{placement:Bu==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:H(Q.TaskState.WebhookCallHistroy)},null,8,Jde)]),default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\"},{default:d(()=>[A(re(Q.TaskState.WebhookCallResult==!0?\"\\u6210\\u529F\":\"\\u5931\\u8D25\"),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"])):oe(\"\",!0),Q.TaskState.WebhookCallErrorMsg!=\"\"?(b(),ae(G,{key:1,label:\"WebHook \\u89E6\\u53D1\\u9519\\u8BEF\\u539F\\u56E0\",span:1},{default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\",onClick:Pt=>o(Q.TaskState.WebhookCallErrorMsg)},{default:d(()=>[A(\" \\u70B9\\u51FB\\u67E5\\u770B \")]),_:2},1032,[\"onClick\"])]),_:2},1024)):oe(\"\",!0)])):oe(\"\",!0),(b(!0),F(Oe,null,it(Q.TaskState.Domains,Pt=>(b(),F(\"div\",null,[c(G,{label:\"\\u57DF\\u540D\"},{default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\",onClick:lp=>X(Pt.SubDomain,Pt.DomainName)},{default:d(()=>[A(re(Pt.SubDomain==\"\"?Pt.DomainName:Pt.SubDomain+\".\"+Pt.DomainName),1)]),_:2},1032,[\"onClick\"])]),_:2},1024),c(G,{label:\"\\u540C\\u6B65\\u7ED3\\u679C\"},{default:d(()=>[c($e,{placement:Bu==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:T(Pt.UpdateHistroy)},null,8,Qde)]),default:d(()=>[c(_e,{type:Pt.UpdateStatus==\"\\u5931\\u8D25\"?\"danger\":Q.Enable?\"success\":\"info\",size:\"small\"},{default:d(()=>[A(re(Q.Enable?Pt.UpdateStatus:\"\\u505C\\u6B62\\u540C\\u6B65\"),1)]),_:2},1032,[\"type\"])]),_:2},1032,[\"placement\"])]),_:2},1024),c(G,{label:\"\\u6700\\u540E\\u68C0\\u6D4B\\u65F6\\u95F4\",span:Pt.Message==\"\"?2:1},{default:d(()=>[c($e,{placement:Bu==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:T(Pt.UpdateHistroy)},null,8,Zde)]),default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\"},{default:d(()=>[A(re(Pt.LastUpdateStatusTime),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"]),Pt.Message!=\"\"?(b(),ae(G,{key:0,label:\"\\u9519\\u8BEF\\u4FE1\\u606F\"},{default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\",onClick:lp=>o(Pt.Message)},{default:d(()=>[A(\" \\u70B9\\u51FB\\u67E5\\u770B \")]),_:2},1032,[\"onClick\"])]),_:2},1024)):oe(\"\",!0)]))),256))]),_:2},1024)]))),256))]),_:1}),c(_n,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:d(()=>[c(_e,{type:\"primary\",onClick:S[0]||(S[0]=Q=>R(\"add\",null))},{default:d(()=>[A(\"\\u6DFB\\u52A0DDNS\\u4EFB\\u52A1 \"),c(Jt,null,{default:d(()=>[c(Ce)]),_:1})]),_:1})]),_:1}),c(t2,{modelValue:t.value,\"onUpdate:modelValue\":S[2]||(S[2]=Q=>t.value=Q),title:\"\\u8BE6\\u7EC6\\u4FE1\\u606F\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{default:d(()=>[c(ht,{modelValue:n.value,\"onUpdate:modelValue\":S[1]||(S[1]=Q=>n.value=Q),autosize:{minRows:3,maxRows:10},type:\"textarea\"},null,8,[\"modelValue\"])]),_:1},8,[\"modelValue\"]),c(t2,{modelValue:De.value,\"onUpdate:modelValue\":S[48]||(S[48]=Q=>De.value=Q),title:se.value==\"add\"?\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\":\"DDNS\\u4EFB\\u52A1\\u4FEE\\u6539\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{footer:d(()=>[f(\"span\",Jfe,[c(_e,{onClick:S[47]||(S[47]=Q=>De.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(_e,{type:\"primary\",onClick:Fe},{default:d(()=>[A(re(se.value==\"add\"?\"\\u6DFB\\u52A0\":\"\\u4FEE\\u6539\"),1)]),_:1})])]),default:d(()=>[c(op,{model:x.value},{default:d(()=>[c(Ue,{label:\"DDNS\\u4EFB\\u52A1\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.TaskName,\"onUpdate:modelValue\":S[3]||(S[3]=Q=>x.value.TaskName=Q),placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u4EFB\\u52A1\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:d(()=>[c(ie,{modelValue:x.value.Enable,\"onUpdate:modelValue\":S[4]||(S[4]=Q=>x.value.Enable=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[f(\"div\",e1e,[t1e,f(\"div\",n1e,[c(Ue,{label:\"DNS\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.DNS.Name,\"onUpdate:modelValue\":S[5]||(S[5]=Q=>x.value.DNS.Name=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it($,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),x.value.DNS.Name==\"alidns\"?(b(),F(\"div\",o1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://ram.console.aliyun.com/manage/ak?spm=5176.12818093.nav-right.dak.488716d0mHaMgg\",target:\"_blank\"},{default:d(()=>[A(\" \\u521B\\u5EFA AccessKey \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"baiducloud\"?(b(),F(\"div\",l1e,[c($e,{class:\"box-item\",effect:\"dark\",content:\"\\u9700\\u8C03\\u7528 API,\\u800C\\u767E\\u5EA6\\u4E91\\u76F8\\u5173API\\u4EC5\\u5BF9\\u7533\\u8BF7\\u7528\\u6237\\u5F00\\u653E\\uFF0C\\u4F7F\\u7528\\u524D\\u8BF7\\u5148\\u63D0\\u4EA4\\u5DE5\\u5355\\u7533\\u8BF7\\u3002\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.bce.baidu.com/iam/?_=1651763238057#/iam/accesslist\",target:\"_blank\"},{default:d(()=>[A(\" \\u521B\\u5EFA AccessKey \")]),_:1}),A(\" \\xA0 \\xA0 \\xA0 \"),c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://ticket.bce.baidu.com/#/ticket/create~productId=60&questionId=393&channel=2\",target:\"_blank\"},{default:d(()=>[A(\" \\u7533\\u8BF7\\u5DE5\\u5355 \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"cloudflare\"?(b(),F(\"div\",u1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dash.cloudflare.com/profile/api-tokens\",target:\"_blank\"},{default:d(()=>[A(\" \\u521B\\u5EFA\\u4EE4\\u724C->\\u7F16\\u8F91\\u533A\\u57DF DNS (\\u4F7F\\u7528\\u6A21\\u677F) \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"dnspod\"?(b(),F(\"div\",a1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.dnspod.cn/account/token\",target:\"_blank\"},{default:d(()=>[A(\" \\u521B\\u5EFA\\u5BC6\\u94A5 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"huaweicloud\"?(b(),F(\"div\",r1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey\",target:\"_blank\"},{default:d(()=>[A(\" \\u65B0\\u589E\\u8BBF\\u95EE\\u5BC6\\u94A5 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"porkbun\"?(b(),F(\"div\",s1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://porkbun.com/account/api\",target:\"_blank\"},{default:d(()=>[A(\" \\u521B\\u5EFA Access \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"callback\"?(b(),F(\"div\",i1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c1e]),_:1})])):oe(\"\",!0),fe(c(Ue,{label:be(),\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.ID,\"onUpdate:modelValue\":S[6]||(S[6]=Q=>x.value.DNS.ID=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"]),[[ge,Ee()]]),fe(c(Ue,{label:ve(),\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.Secret,\"onUpdate:modelValue\":S[7]||(S[7]=Q=>x.value.DNS.Secret=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"]),[[ge,te()]]),c($e,{placement:\"top\"},{content:d(()=>[A(\" \\u5F3A\\u5236\\u540C\\u6B65,\\u5F53DNS\\u89E3\\u6790\\u57DF\\u540D\\u5F00\\u5173\\u6253\\u5F00\\u65F6\\u4F1A\\u5148\\u901A\\u8FC7DNS\\u89E3\\u6790\\u8FDB\\u884CIP\\u6BD4\\u5BF9,\\u6BD4\\u5BF9\\u4E00\\u81F4\\u4F9D\\u7136\\u4E0D\\u4F1A\\u5F3A\\u5236\\u540C\\u6B65,\\u53EA\\u8981\\u4E0D\\u624B\\u52A8\\u4FEE\\u6539\\u57DF\\u540DIP\\u8FD9\\u4E2A\\u503C\\u8BBE\\u7F6E\\u5927\\u4E00\\u4E9B\\u5B8C\\u5168\\u6CA1\\u95EE\\u9898,\\u53EF\\u8BBE\\u8303\\u56F4(60-360000)\"),d1e,A(\" \\u5F3A\\u5236\\u540C\\u6B65\\u68C0\\u67E5\\u4F1A\\u5728\\u6BCF\\u4E00\\u8F6E\\u5B9A\\u65F6\\u6279\\u91CF\\u6267\\u884CDDNS\\u4EFB\\u52A1\\u4E2D\\u8FDB\\u884C,\\u6240\\u4EE5\\u5B9E\\u9645\\u5F3A\\u5236\\u540C\\u6B65\\u65F6\\u95F4\\u4E0D\\u4F1A\\u5F88\\u7CBE\\u786E \")]),default:d(()=>[c(Ue,{label:\"\\u5F3A\\u5236\\u540C\\u6B65(\\u79D2)\",\"label-width\":\"auto\",min:60,max:36e4},{default:d(()=>[c(n2,{modelValue:x.value.DNS.ForceInterval,\"onUpdate:modelValue\":S[8]||(S[8]=Q=>x.value.DNS.ForceInterval=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),fe(f(\"p\",null,\"\\u81EA\\u5B9A\\u4E49(Callback)\\u670D\\u52A1\\u5546\\u8BBE\\u7F6E\",512),[[ge,x.value.DNS.Name==\"callback\"]]),fe(f(\"div\",f1e,[c(Ue,{label:\"Callback DNS\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.DNS.Callback.Server,\"onUpdate:modelValue\":S[9]||(S[9]=Q=>x.value.DNS.Callback.Server=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(g,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[x.value.DNS.Callback.Server==\"meibu\"?(b(),F(\"div\",p1e,[c($e,{content:\"\\u6CE8\\u610F:\\u6BCF\\u6B65 IPv4\\u548CIPv6\\u7684\\u63A5\\u53E3\\u4E0D\\u76F8\\u540C,\\u514D\\u8D39\\u4E8C\\u7EA7\\u57DF\\u540D\\u4E0D\\u80FD\\u540C\\u65F6\\u652F\\u6301IPv4\\u548CIPv6\",placement:\"top\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"http://www.meibu.com/regedit.shtml\",target:\"_blank\"},{default:d(()=>[A(\" \\u6BCF\\u6B65-\\u514D\\u8D39\\u4E8C\\u7EA7\\u57DF\\u540D\\u6CE8\\u518C \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"noip\"?(b(),F(\"div\",v1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.noip.com\",target:\"_blank\"},{default:d(()=>[A(\" No-IP\\u5B98\\u7F51 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"dynv6\"?(b(),F(\"div\",h1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dynv6.com/\",target:\"_blank\"},{default:d(()=>[A(\" Dynv6\\u5B98\\u7F51 \")]),_:1}),A(\" \\xA0 \\xA0 \\xA0 \"),c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dynv6.com/keys\",target:\"_blank\"},{default:d(()=>[A(\" Token\\u521B\\u5EFA \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"dynu\"?(b(),F(\"div\",_1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.dynu.com/\",target:\"_blank\"},{default:d(()=>[A(\" Dynu\\u5B98\\u7F51 \")]),_:1}),A(\" \\xA0 \\xA0 \\xA0 \"),c(mn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.dynu.com/zh-CN/ControlPanel/ManageCredentials\",target:\"_blank\"},{default:d(()=>[A(\" IP\\u66F4\\u65B0\\u5BC6\\u7801\\u8BBE\\u7F6E \")]),_:1})]),_:1})])):oe(\"\",!0),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(_e,{color:\"#409eff\",size:\"default\",onClick:Ie},{default:d(()=>[A(\" \\u6839\\u636EDNS\\u670D\\u52A1\\u5546\\u81EA\\u52A8\\u586B\\u5145\\u53C2\\u6570\\u6A21\\u7248 \")]),_:1})]),_:1})],512),[[ge,x.value.DNS.Callback.Server!=\"other\"]]),c($e,{class:\"box-item\",effect:\"dark\",content:\"\"},{content:d(()=>[A(\"\\u63A5\\u53E3\\u5730\\u5740\"),m1e,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),g1e,A(\" #{ip} : \\u5916\\u7F51IP\"),b1e,A(\" #{domain} : \\u57DF\\u540D\"),y1e,A(\" #{recordType} : A \\u6216\\u8005 AAAA \"),w1e,A(\" #{ttl} : TTL\\u503C\")]),default:d(()=>[c(Ue,{label:\"\\u63A5\\u53E3\\u5730\\u5740\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.Callback.URL,\"onUpdate:modelValue\":S[10]||(S[10]=Q=>x.value.DNS.Callback.URL=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Ue,{label:\"\\u8BF7\\u6C42\\u65B9\\u6CD5\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.DNS.Callback.Method,\"onUpdate:modelValue\":S[11]||(S[11]=Q=>x.value.DNS.Callback.Method=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(k,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E00\\u884C\\u4E00\\u6761Header(key:value)\"),C1e,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),E1e,A(\" #{ip} : \\u5916\\u7F51IP\"),F1e,A(\" #{domain} : \\u57DF\\u540D\"),A1e,A(\" #{recordType} : A \\u6216\\u8005 AAAA \"),D1e,A(\" #{ttl} : TTL\\u503C\"),B1e,A(\" \\u5982\\u679C\\u9700\\u8981\\u4F7F\\u7528BasicAuth,\\u8BF7\\u4F7F\\u7528\\u4E0B\\u9762\\u4E24\\u884CHeader\\u8BBE\\u7F6EBasicAuth\\u7684\\u8D26\\u53F7\\u548C\\u5BC6\\u7801\"),x1e,A(\" BasicAuthUserName:\\u4F60\\u7684\\u8D26\\u53F7\"),$1e,A(\" BasicAuthPassword:\\u4F60\\u7684\\u5BC6\\u7801\")]),default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"\\u8BF7\\u6C42Headers\"},{default:d(()=>[c(ht,{modelValue:ye.value,\"onUpdate:modelValue\":S[12]||(S[12]=Q=>ye.value=Q),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\"\\u8BF7\\u6C42\\u4E3B\\u4F53 requestBody\"),S1e,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),k1e,A(\" #{ip} : \\u5916\\u7F51IP\"),P1e,A(\" #{domain} : \\u57DF\\u540D\"),L1e,A(\" #{recordType} : A \\u6216\\u8005 AAAA \"),T1e,A(\" #{ttl} : TTL\\u503C\")]),default:d(()=>[fe(c(Ue,{\"label-width\":\"auto\",label:\"\\u8BF7\\u6C42\\u4E3B\\u4F53\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.Callback.RequestBody,\"onUpdate:modelValue\":S[13]||(S[13]=Q=>x.value.DNS.Callback.RequestBody=Q),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1},512),[[ge,x.value.DNS.Callback.Method!=\"get\"]])]),_:1}),c($e,{content:\"\\u7981\\u7528\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B,\\u5F00\\u542F\\u540E\\u4EC5\\u4EE5http StatusCode==200\\u5224\\u65AD\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528.\",placement:\"top\"},{default:d(()=>[c(Ue,{label:\"\\u7981\\u7528\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B\",\"label-width\":\"auto\"},{default:d(()=>[c(ie,{modelValue:x.value.DNS.Callback.DisableCallbackSuccessContentCheck,\"onUpdate:modelValue\":S[14]||(S[14]=Q=>x.value.DNS.Callback.DisableCallbackSuccessContentCheck=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u662F\",\"inactive-text\":\"\\u5426\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\"\\u7528\\u4E8E\\u5224\\u65AD\\u8BB0\\u5F55\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528,\\u591A\\u79CD\\u8868\\u793A\\u6210\\u529F\\u7684\\u4E0D\\u540C\\u5B57\\u7B26\\u4E32\\u8BF7\\u5206\\u591A\\u884C\\u5199\"),z1e,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),M1e,A(\" #{ip} : \\u5916\\u7F51IP\"),V1e,A(\" #{domain} : \\u57DF\\u540D\"),I1e,A(\" #{recordType} : A \\u6216\\u8005 AAAA \"),H1e,A(\" #{ttl} : TTL\\u503C\")]),default:d(()=>[c(Ue,{label:\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:je.value,\"onUpdate:modelValue\":S[15]||(S[15]=Q=>je.value=Q),autosize:{minRows:3,maxRows:5},type:\"textarea\",autocomplete:\"off\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,!x.value.DNS.Callback.DisableCallbackSuccessContentCheck]])],512),[[ge,x.value.DNS.Name==\"callback\"]]),f(\"div\",R1e,[c($e,{content:\"\\u8C03\\u7528DNS\\u670D\\u52A1\\u5546\\u63A5\\u53E3\\u66F4\\u65B0\\u6216\\u589E\\u52A0\\u57DF\\u540D\\u4E4B\\u524D\\u5148\\u901A\\u8FC7DNS\\u67E5\\u8BE2\\u57DF\\u540D\\u5BF9\\u5E94IP,\\u964D\\u4F4E\\u5BF9DNS\\u670D\\u52A1\\u5546\\u63A5\\u53E3\\u7684\\u8BBF\\u95EE\\u9891\\u7387,\\u5EFA\\u8BAE\\u542F\\u7528\",placement:\"top\"},{default:d(()=>[c(Ue,{label:\"DNS\\u89E3\\u6790\\u68C0\\u6D4B\\u57DF\\u540D\",\"label-width\":\"auto\"},{default:d(()=>[c(ie,{modelValue:x.value.DNS.ResolverDoaminCheck,\"onUpdate:modelValue\":S[16]||(S[16]=Q=>x.value.DNS.ResolverDoaminCheck=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u7981\\u7528\",onChange:I},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c($e,{class:\"box-item\",\"trigger-keys\":[],effect:\"dark\",content:\"\\u4E00\\u884C\\u4E00\\u4E2ADNS\\u670D\\u52A1\\u5668\\u5730\\u5740(\\u5E26\\u7AEF\\u53E3)\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"DNS\\u670D\\u52A1\\u5668\\u5217\\u8868\"},{default:d(()=>[c(ht,{modelValue:Te.value,\"onUpdate:modelValue\":S[17]||(S[17]=Q=>Te.value=Q),autosize:{minRows:3,maxRows:5},placeholder:\"\\u4E00\\u884C\\u4E00\\u4E2ADNS\\u670D\\u52A1\\u5668\\u5730\\u5740(\\u5E26\\u7AEF\\u53E3)\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,x.value.DNS.ResolverDoaminCheck]])]),N1e,f(\"div\",O1e,[c(Ue,{label:\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u4F7F\\u7528\\u7684\\u7F51\\u7EDC\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.DNS.CallAPINetwork,\"onUpdate:modelValue\":S[18]||(S[18]=Q=>x.value.DNS.CallAPINetwork=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(y,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1})]),U1e,f(\"div\",W1e,[c(Ue,{label:\"DNS\\u63A5\\u53E3\\u8C03\\u7528 \\u4EE3\\u7406\\u8BBE\\u7F6E\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.DNS.HttpClientProxyType,\"onUpdate:modelValue\":S[19]||(S[19]=Q=>x.value.DNS.HttpClientProxyType=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(p,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668IP\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.HttpClientProxyAddr,\"onUpdate:modelValue\":S[20]||(S[20]=Q=>x.value.DNS.HttpClientProxyAddr=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u7528\\u6237\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.HttpClientProxyUser,\"onUpdate:modelValue\":S[21]||(S[21]=Q=>x.value.DNS.HttpClientProxyUser=Q),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u5BC6\\u7801\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.DNS.HttpClientProxyPassword,\"onUpdate:modelValue\":S[22]||(S[22]=Q=>x.value.DNS.HttpClientProxyPassword=Q),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1})],512),[[ge,x.value.DNS.HttpClientProxyType!=\"\"]])])]),f(\"div\",q1e,[c(Ue,{label:\"\\u516C\\u7F51IP\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:d(()=>[c(o2,{modelValue:x.value.TaskType,\"onUpdate:modelValue\":S[23]||(S[23]=Q=>x.value.TaskType=Q),class:\"ml-4\",onChange:Z},{default:d(()=>[c(Aa,{label:\"IPv4\"},{default:d(()=>[A(\"IPv4\")]),_:1}),c(Aa,{label:\"IPv6\"},{default:d(()=>[A(\"IPv6\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u83B7\\u53D6\\u516C\\u7F51IP\\u65B9\\u5F0F\",\"label-width\":\"auto\"},{default:d(()=>[c(o2,{modelValue:x.value.GetType,\"onUpdate:modelValue\":S[24]||(S[24]=Q=>x.value.GetType=Q),class:\"ml-4\"},{default:d(()=>[c(Aa,{label:\"url\"},{default:d(()=>[A(\"\\u901A\\u8FC7\\u63A5\\u53E3\\u83B7\\u53D6\")]),_:1}),c(Aa,{label:\"netInterface\"},{default:d(()=>[A(\"\\u901A\\u8FC7\\u7F51\\u5361\\u83B7\\u53D6\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),x.value.GetType==\"url\"?(b(),F(\"div\",j1e,[c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\\u4E00\\u884C\\u4E00\\u4E2A\\u63A5\\u53E3\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"\\u63A5\\u53E3\\u5217\\u8868\"},{default:d(()=>[c(ht,{modelValue:xe.value,\"onUpdate:modelValue\":S[25]||(S[25]=Q=>xe.value=Q),autosize:{minRows:5,maxRows:20},placeholder:\"\\u4E00\\u884C\\u4E00\\u4E2A\\u63A5\\u53E3\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])):oe(\"\",!0),x.value.GetType==\"netInterface\"?(b(),F(\"div\",K1e,[c(Ue,{\"label-width\":\"auto\",label:\"\\u7F51\\u5361\\u5217\\u8868\"},{default:d(()=>[c(no,{modelValue:x.value.NetInterface,\"onUpdate:modelValue\":S[26]||(S[26]=Q=>x.value.NetInterface=Q),class:\"m-2\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(u),Q=>(b(),ae($e,{class:\"box-item\",effect:\"dark\",key:Q.NetInterfaceName,content:JSON.stringify(Q.AddressList)},{default:d(()=>[c(to,{label:Q.NetInterfaceName,value:Q.NetInterfaceName},null,8,[\"label\",\"value\"])]),_:2},1032,[\"content\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",content:\"\\u7559\\u7A7A\\u8868\\u793A\\u5339\\u914D\\u9009\\u4E2D\\u7F51\\u5361\\u7B2C1\\u4E2AIP, \\u7EAF\\u6570\\u5B57n\\u8868\\u793A\\u5339\\u914D\\u7B2Cn\\u4E2AIP, 24*\\u8868\\u793A\\u5339\\u914D\\u4EE524\\u5F00\\u5934\\u7684\\u7B2C\\u4E00\\u4E2AIP, *24\\u8868\\u793A\\u5339\\u914D\\u4EE524\\u7ED3\\u5C3E\\u7684\\u7B2C\\u4E00\\u4E2AIP, \\u8FD8\\u53EF\\u4EE5\\u586B\\u5199\\u6B63\\u5219\\u8868\\u8FBE\\u5F0F\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"IP\\u9009\\u62E9\\u5339\\u914D\\u89C4\\u5219\"},{default:d(()=>[c(ht,{modelValue:x.value.IPReg,\"onUpdate:modelValue\":S[27]||(S[27]=Q=>x.value.IPReg=Q),autosize:{minRows:5,maxRows:20},placeholder:\"\\u7559\\u7A7A\\u8868\\u793A\\u9009\\u62E9\\u5F53\\u524D\\u7F51\\u5361\\u7B2C\\u4E00\\u4E2AIP\"},null,8,[\"modelValue\"]),c(_e,{color:\"#409eff\",size:\"small\",onClick:N},{default:d(()=>[A(\" IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5 \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"\\u57DF\\u540D\\u5217\\u8868\"},{default:d(()=>[c(ht,{modelValue:de.value,\"onUpdate:modelValue\":S[28]||(S[28]=Q=>de.value=Q),autosize:{minRows:3,maxRows:9},placeholder:\"\\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",content:\"\\u5982\\u8D26\\u53F7\\u652F\\u6301\\u66F4\\u5C0F\\u7684 TTL , \\u53EF\\u4FEE\\u6539\\u3002 IP \\u6709\\u53D8\\u5316\\u65F6\\u624D\\u4F1A\\u66F4\\u65B0 TTL\"},{default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"TTL\"},{default:d(()=>[c(no,{modelValue:x.value.TTL,\"onUpdate:modelValue\":S[29]||(S[29]=Q=>x.value.TTL=Q),class:\"m-2\"},{default:d(()=>[(b(),F(Oe,null,it(v,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1})]),_:1})]),f(\"div\",G1e,[c(Ue,{label:\"Webhook\",\"label-width\":\"auto\"},{default:d(()=>[c($e,{class:\"box-item\",effect:\"dark\",content:\"Webhook \\u4EC5\\u5F53IP\\u6539\\u53D8,\\u57DF\\u540D\\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u6216\\u5931\\u8D25\\u65F6\\u624D\\u4F1A\\u89E6\\u53D1Webhook\"},{default:d(()=>[c(ie,{modelValue:x.value.WebhookEnable,\"onUpdate:modelValue\":S[30]||(S[30]=Q=>x.value.WebhookEnable=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",content:\"\\u5982\\u679C\\u9009\\u62E9\\u4E86DNS\\u4EE3\\u7406\\u8BBE\\u7F6E\\u5148\\u8BF7\\u4FDD\\u5B58\\u4EFB\\u52A1\\u518D\\u624B\\u52A8\\u89E6\\u53D1\\u6D4B\\u8BD5,\\u5426\\u5219\\u5728\\u6D4B\\u8BD5\\u4E2D\\u53EF\\u80FD\\u4EE3\\u7406\\u8BBE\\u7F6E\\u4E0D\\u751F\\u6548\"},{default:d(()=>[fe(c(_e,{color:\"#409eff\",size:\"small\",onClick:w,style:{\"margin-left\":\"30px\"}},{default:d(()=>[A(\" Webhook\\u624B\\u52A8\\u89E6\\u53D1\\u6D4B\\u8BD5 \")]),_:1},512),[[ge,x.value.WebhookEnable]])]),_:1})]),_:1}),fe(f(\"div\",null,[c($e,{class:\"box-item\",effect:\"dark\",content:\"\\u83B7\\u53D6IP\\u5931\\u8D25\\u65F6\\u540C\\u6837\\u89E6\\u53D1Webhook,\\u9ED8\\u8BA4\\u4E0D\\u5F00\\u542F\"},{default:d(()=>[c(Ue,{label:\"\\u83B7\\u53D6IP\\u5931\\u8D25\\u65F6\\u89E6\\u53D1Webhook\",\"label-width\":\"auto\"},{default:d(()=>[c(ie,{modelValue:x.value.WebhookCallOnGetIPfail,\"onUpdate:modelValue\":S[31]||(S[31]=Q=>x.value.WebhookCallOnGetIPfail=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),f(\"div\",Y1e,[c(Ue,{label:\"\\u5E38\\u89C1Webhook(\\u6D88\\u606F\\u63A8\\u9001)\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:s.value,\"onUpdate:modelValue\":S[32]||(S[32]=Q=>s.value=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\",onChange:j},{default:d(()=>[(b(),F(Oe,null,it(B,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"]),A(\"\\u8BF4\\u660E \")]),_:1}),fe(f(\"div\",X1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[J1e]),_:1})],512),[[ge,s.value==\"custom\"]]),fe(f(\"div\",Q1e,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[Z1e]),_:1})],512),[[ge,s.value==\"serverjiang\"]]),fe(f(\"div\",efe,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[tfe]),_:1})],512),[[ge,s.value==\"bark\"]]),fe(f(\"div\",nfe,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[ofe,lfe,ufe,afe]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:i.value,\"onUpdate:modelValue\":S[33]||(S[33]=Q=>i.value=Q),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[rfe]),_:1})],512),[[ge,s.value==\"dingding\"]]),fe(f(\"div\",sfe,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[ife,cfe,dfe,ffe]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:i.value,\"onUpdate:modelValue\":S[34]||(S[34]=Q=>i.value=Q),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[pfe]),_:1})],512),[[ge,s.value==\"feishu\"]]),fe(f(\"div\",vfe,[c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[hfe,_fe,mfe]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:i.value,\"onUpdate:modelValue\":S[35]||(S[35]=Q=>i.value=Q),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{\"label-width\":\"auto\"},{default:d(()=>[gfe]),_:1})],512),[[ge,s.value==\"weixinpro\"]])]),f(\"div\",bfe,[c($e,{class:\"box-item\",effect:\"dark\",content:\"\"},{content:d(()=>[A(\"\\u652F\\u6301\\u7684\\u53D8\\u91CF \"),yfe,A(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),wfe,A(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),Cfe,A(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Efe,A(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),Ffe,A(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Afe,A(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:d(()=>[c(Ue,{label:\"\\u63A5\\u53E3\\u5730\\u5740\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.WebhookURL,\"onUpdate:modelValue\":S[36]||(S[36]=Q=>x.value.WebhookURL=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(Ue,{label:\"\\u8BF7\\u6C42\\u65B9\\u6CD5\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.WebhookMethod,\"onUpdate:modelValue\":S[37]||(S[37]=Q=>x.value.WebhookMethod=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(k,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E00\\u884C\\u4E00\\u6761Header(key:value) \"),Dfe,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF :\"),Bfe,A(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),xfe,A(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP \"),$fe,A(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Sfe,A(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),kfe,A(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Pfe,A(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),Lfe,A(\" \\u5982\\u679C\\u9700\\u8981\\u4F7F\\u7528BasicAuth,\\u8BF7\\u4F7F\\u7528\\u4E0B\\u9762\\u4E24\\u884CHeader\\u8BBE\\u7F6EBasicAuth\\u7684\\u8D26\\u53F7\\u548C\\u5BC6\\u7801\"),Tfe,A(\" BasicAuthUserName:\\u4F60\\u7684\\u8D26\\u53F7\"),zfe,A(\" BasicAuthPassword:\\u4F60\\u7684\\u5BC6\\u7801\")]),default:d(()=>[c(Ue,{\"label-width\":\"auto\",label:\"Headers\"},{default:d(()=>[c(ht,{modelValue:Pe.value,\"onUpdate:modelValue\":S[38]||(S[38]=Q=>Pe.value=Q),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\"\\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Mfe,A(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),Vfe,A(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),Ife,A(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Hfe,A(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),Rfe,A(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Nfe,A(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:d(()=>[fe(c(Ue,{label:\"RequestBody\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.WebhookRequestBody,\"onUpdate:modelValue\":S[39]||(S[39]=Q=>x.value.WebhookRequestBody=Q),type:\"textarea\",rows:\"5\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1},512),[[ge,x.value.WebhookMethod!=\"get\"]])]),_:1}),c($e,{content:\"\\u7981\\u7528Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B,\\u5F00\\u542F\\u540E\\u4EC5\\u4EE5http StatusCode==200\\u5224\\u65AD\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528.\",placement:\"top\"},{default:d(()=>[c(Ue,{label:\"\\u7981\\u7528Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B\",\"label-width\":\"auto\"},{default:d(()=>[c(ie,{modelValue:x.value.WebhookDisableCallbackSuccessContentCheck,\"onUpdate:modelValue\":S[40]||(S[40]=Q=>x.value.WebhookDisableCallbackSuccessContentCheck=Q),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u662F\",\"inactive-text\":\"\\u5426\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c($e,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\"\\u7528\\u4E8E\\u5224\\u65AD\\u8BB0\\u5F55Webhook \\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528\"),Ofe,A(\" \\u591A\\u79CD\\u8868\\u793A\\u6210\\u529F\\u7684\\u4E0D\\u540C\\u5B57\\u7B26\\u4E32\\u8BF7\\u5206\\u591A\\u884C\\u5199\"),Ufe,A(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF \"),Wfe,A(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),qfe,A(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),jfe,A(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),Kfe,A(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Gfe,A(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:d(()=>[c(Ue,{label:\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:he.value,\"onUpdate:modelValue\":S[41]||(S[41]=Q=>he.value=Q),autosize:{minRows:3,maxRows:5},type:\"textarea\",autocomplete:\"off\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,!x.value.WebhookDisableCallbackSuccessContentCheck]])]),f(\"div\",Yfe,[c(Ue,{label:\"\\u4EE3\\u7406\\u8BBE\\u7F6E\",\"label-width\":\"auto\"},{default:d(()=>[c(no,{modelValue:x.value.WebhookProxy,\"onUpdate:modelValue\":S[42]||(S[42]=Q=>x.value.WebhookProxy=Q),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(),F(Oe,null,it(m,Q=>c(to,{key:Q.value,label:Q.label,value:Q.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668IP\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.WebhookProxyAddr,\"onUpdate:modelValue\":S[43]||(S[43]=Q=>x.value.WebhookProxyAddr=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u7528\\u6237\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.WebhookProxyUser,\"onUpdate:modelValue\":S[44]||(S[44]=Q=>x.value.WebhookProxyUser=Q),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1}),c(Ue,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u5BC6\\u7801\",\"label-width\":\"auto\"},{default:d(()=>[c(ht,{modelValue:x.value.WebhookProxyPassword,\"onUpdate:modelValue\":S[45]||(S[45]=Q=>x.value.WebhookProxyPassword=Q),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1})],512),[[ge,!(x.value.WebhookProxy==\"\"||x.value.WebhookProxy==\"dns\")]])])],512),[[ge,x.value.WebhookEnable]])]),f(\"div\",Xfe,[c($e,{content:\"Http Client \\u8D85\\u65F6\\u65F6\\u95F4,\\u6CA1\\u5FC5\\u8981\\u4E0D\\u8981\\u6539,\\u53EF\\u8BBE\\u7F6E\\u8303\\u56F4 (3-60)\",placement:\"top\"},{default:d(()=>[c(Ue,{label:\"HttpClient timeout(\\u79D2)\",\"label-width\":\"auto\",min:3,max:60},{default:d(()=>[c(n2,{modelValue:x.value.HttpClientTimeout,\"onUpdate:modelValue\":S[46]||(S[46]=Q=>x.value.HttpClientTimeout=Q),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])],512),[[ge,x.value.Enable]])]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"])])}}});var Zfe=hn(Qfe,[[\"__scopeId\",\"data-v-9ec9996c\"]]);const ke=e=>(gu(\"data-v-14277c40\"),e=e(),bu(),e),e4e={class:\"ReverseProxyPageRadius\",style:{borderRadius:\"base\"}},t4e={class:\"itemradius\",style:{borderRadius:\"base\"}},n4e=ke(()=>f(\"br\",null,null,-1)),o4e=[\"innerHTML\"],l4e=[\"innerHTML\"],u4e=ke(()=>f(\"br\",null,null,-1)),a4e=ke(()=>f(\"br\",null,null,-1)),r4e=ke(()=>f(\"br\",null,null,-1)),s4e=ke(()=>f(\"br\",null,null,-1)),i4e=ke(()=>f(\"br\",null,null,-1)),c4e=[\"innerHTML\"],d4e=[\"innerHTML\"],f4e=[\"innerHTML\"],p4e=ke(()=>f(\"br\",null,null,-1)),v4e=ke(()=>f(\"br\",null,null,-1)),h4e=ke(()=>f(\"br\",null,null,-1)),_4e=ke(()=>f(\"br\",null,null,-1)),m4e=ke(()=>f(\"br\",null,null,-1)),g4e={class:\"fromitemDivRadius\"},b4e=ke(()=>f(\"br\",null,null,-1)),y4e=ke(()=>f(\"br\",null,null,-1)),w4e=ke(()=>f(\"br\",null,null,-1)),C4e={class:\"fromitemDivRadius\"},E4e={class:\"fromitemChildDivRadius\"},F4e=ke(()=>f(\"br\",null,null,-1)),A4e=ke(()=>f(\"br\",null,null,-1)),D4e=ke(()=>f(\"br\",null,null,-1)),B4e=ke(()=>f(\"br\",null,null,-1)),x4e=ke(()=>f(\"br\",null,null,-1)),$4e=ke(()=>f(\"br\",null,null,-1)),S4e=ke(()=>f(\"br\",null,null,-1)),k4e=ke(()=>f(\"br\",null,null,-1)),P4e=ke(()=>f(\"br\",null,null,-1)),L4e=ke(()=>f(\"br\",null,null,-1)),T4e=ke(()=>f(\"br\",null,null,-1)),z4e=ke(()=>f(\"br\",null,null,-1)),M4e=ke(()=>f(\"br\",null,null,-1)),V4e=ke(()=>f(\"br\",null,null,-1)),I4e=ke(()=>f(\"br\",null,null,-1)),H4e={class:\"fromitemChildSafeDivRadius\"},R4e=ke(()=>f(\"p\",null,\"\\u5BA2\\u6237\\u7AEFIP\\u83B7\\u53D6\\u8BBE\\u7F6E\",-1)),N4e=ke(()=>f(\"br\",null,null,-1)),O4e=ke(()=>f(\"br\",null,null,-1)),U4e=ke(()=>f(\"br\",null,null,-1)),W4e=ke(()=>f(\"br\",null,null,-1)),q4e=ke(()=>f(\"br\",null,null,-1)),j4e=ke(()=>f(\"br\",null,null,-1)),K4e=ke(()=>f(\"br\",null,null,-1)),G4e=ke(()=>f(\"br\",null,null,-1)),Y4e=ke(()=>f(\"br\",null,null,-1)),X4e={class:\"fromitemChildSafeDivRadius\"},J4e=ke(()=>f(\"p\",null,\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",-1)),Q4e=ke(()=>f(\"br\",null,null,-1)),Z4e=ke(()=>f(\"br\",null,null,-1)),e6e=ke(()=>f(\"br\",null,null,-1)),t6e=ke(()=>f(\"br\",null,null,-1)),n6e={class:\"fromitemChildSafeDivRadius\"},o6e=ke(()=>f(\"p\",null,\"\\u5B89\\u5168\\u8BBE\\u7F6E\",-1)),l6e=ke(()=>f(\"br\",null,null,-1)),u6e=ke(()=>f(\"br\",null,null,-1)),a6e=ke(()=>f(\"br\",null,null,-1)),r6e=ke(()=>f(\"br\",null,null,-1)),s6e=ke(()=>f(\"br\",null,null,-1)),i6e=ke(()=>f(\"br\",null,null,-1)),c6e=ke(()=>f(\"br\",null,null,-1)),d6e={class:\"fromitemChildSafeDivRadius\"},f6e=ke(()=>f(\"p\",null,\"\\u9690\\u79C1\\u8BBE\\u7F6E\",-1)),p6e=ke(()=>f(\"br\",null,null,-1)),v6e={class:\"fromitemDivRadius\"},h6e=ke(()=>f(\"p\",null,\"\\u53CD\\u5411\\u4EE3\\u7406\\u5B50\\u89C4\\u5219\\u5217\\u8868\",-1)),_6e={class:\"fromitemChildDivRadius\"},m6e=ke(()=>f(\"br\",null,null,-1)),g6e=ke(()=>f(\"br\",null,null,-1)),b6e=ke(()=>f(\"br\",null,null,-1)),y6e=ke(()=>f(\"br\",null,null,-1)),w6e=ke(()=>f(\"br\",null,null,-1)),C6e=ke(()=>f(\"br\",null,null,-1)),E6e=ke(()=>f(\"br\",null,null,-1)),F6e=ke(()=>f(\"br\",null,null,-1)),A6e=ke(()=>f(\"br\",null,null,-1)),D6e=ke(()=>f(\"br\",null,null,-1)),B6e=ke(()=>f(\"br\",null,null,-1)),x6e=ke(()=>f(\"br\",null,null,-1)),$6e=ke(()=>f(\"br\",null,null,-1)),S6e=ke(()=>f(\"br\",null,null,-1)),k6e=ke(()=>f(\"br\",null,null,-1)),P6e=ke(()=>f(\"br\",null,null,-1)),L6e=ke(()=>f(\"br\",null,null,-1)),T6e={class:\"fromitemChildSafeDivRadius\"},z6e=ke(()=>f(\"p\",null,\"\\u5BA2\\u6237\\u7AEFIP\\u83B7\\u53D6\\u8BBE\\u7F6E\",-1)),M6e=ke(()=>f(\"br\",null,null,-1)),V6e=ke(()=>f(\"br\",null,null,-1)),I6e=ke(()=>f(\"br\",null,null,-1)),H6e=ke(()=>f(\"br\",null,null,-1)),R6e=ke(()=>f(\"br\",null,null,-1)),N6e=ke(()=>f(\"br\",null,null,-1)),O6e=ke(()=>f(\"br\",null,null,-1)),U6e=ke(()=>f(\"br\",null,null,-1)),W6e=ke(()=>f(\"br\",null,null,-1)),q6e={class:\"fromitemChildSafeDivRadius\"},j6e=ke(()=>f(\"p\",null,\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",-1)),K6e=ke(()=>f(\"br\",null,null,-1)),G6e=ke(()=>f(\"br\",null,null,-1)),Y6e=ke(()=>f(\"br\",null,null,-1)),X6e=ke(()=>f(\"br\",null,null,-1)),J6e={class:\"fromitemChildSafeDivRadius\"},Q6e=ke(()=>f(\"p\",null,\"\\u5B89\\u5168\\u8BBE\\u7F6E\",-1)),Z6e=ke(()=>f(\"br\",null,null,-1)),epe=ke(()=>f(\"br\",null,null,-1)),tpe=ke(()=>f(\"br\",null,null,-1)),npe=ke(()=>f(\"br\",null,null,-1)),ope=ke(()=>f(\"br\",null,null,-1)),lpe=ke(()=>f(\"br\",null,null,-1)),upe=ke(()=>f(\"br\",null,null,-1)),ape={class:\"fromitemChildSafeDivRadius\"},rpe=ke(()=>f(\"p\",null,\"\\u9690\\u79C1\\u8BBE\\u7F6E\",-1)),spe=ke(()=>f(\"br\",null,null,-1)),ipe={class:\"dialog-footer\"},cpe=le({__name:\"reverseproxy\",setup(e){const t=L(!1),n=L(!1),o=L(\"\"),l=L(0),u=L(50),a=L(0),r=L([{ProxyKey:\"\",ClientIP:\"\",LogContent:\"\",LogTime:\"\"}]),s=L(\"\"),i=L(\"\"),p=L(1),m=L(\"\"),v=L([{RuleName:\"\",RuleKey:\"\",Enable:!1,Network:\"\",ListenIP:\"\",ListenPort:666,EnableTLS:!1,DefaultProxy:{Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:100,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!0,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"},ProxyList:[{Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"}]}]),_=L({RuleName:\"\",RuleKey:\"\",Enable:!1,Network:\"\",ListenIP:\"\",ListenPort:666,EnableTLS:!1,DefaultProxy:{Key:\"\",Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:100,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!0,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"},ProxyList:[{Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"}]}),g=L(\"\"),y=L(\"\"),w=L(\"\"),E=L(\"\"),D=L([\"\"]),C=L([\"\"]),B=L([\"\"]),$=L([\"\"]),k=L([\"\"]),P=L([\"\"]),T=(de,se)=>{n.value=!0,p.value=1,a.value=0,u.value=10,s.value=de,i.value=se,Ls(de,se,u.value,p.value).then(z=>{if(z.ret==0){u.value=z.pageSize,a.value=z.total,r.value=z.logs,N();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(z=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+z),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},H=de=>{p.value=de-1},j=de=>{p.value=de+1},X=de=>{u.value=de,p.value=1,Ls(s.value,i.value,u.value,p.value).then(se=>{if(se.ret==0){u.value=se.pageSize,a.value=se.total,r.value=se.logs,N();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(se=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+se),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},W=de=>{p.value=de,Ls(s.value,i.value,u.value,p.value).then(se=>{if(se.ret==0){u.value=se.pageSize,a.value=se.total,r.value=se.logs,N();return}ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(se=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+se),ne(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},N=()=>{m.value=\"\";for(let de in r.value){let se=r.value[de];de!=\"0\"&&(m.value+=`\n`),m.value+=se.LogTime+\"\t\"+se.LogContent+`\n`}},J=(de,se)=>{switch(t.value=!0,o.value=de,l.value=-1,de){case\"add\":_.value={RuleName:\"\",RuleKey:\"\",Enable:!0,Network:\"tcp6\",ListenIP:\"\",ListenPort:16666,EnableTLS:!1,DefaultProxy:{Key:\"default\",Locations:[],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:10,RequestInfoLogFormat:\"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"blacklist\",SafeUserAgentMode:\"blacklist\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:`User-agent:  *\nDisallow:  /`},ProxyList:[]},C.value=[],B.value=[],$.value=[],k.value=[],P.value=[],g.value=`0.0.0.0/0\n::/0`,y.value=`X-Forwarded-For\nX-Real-IP`,w.value=\"\",E.value=\"\";break;case\"alter\":{_.value=se,C.value=[],B.value=[],$.value=[],k.value=[],P.value=[],g.value=$n(_.value.DefaultProxy.TrustedCIDRsStrList),y.value=$n(_.value.DefaultProxy.RemoteIPHeaders),E.value=$n(_.value.DefaultProxy.Locations),w.value=$n(_.value.DefaultProxy.UserAgentfilter);for(let z in _.value.ProxyList)C.value.push($n(_.value.ProxyList[z].Domains)),B.value.push($n(_.value.ProxyList[z].Locations)),$.value.push($n(_.value.ProxyList[z].UserAgentfilter)),k.value.push($n(_.value.ProxyList[z].TrustedCIDRsStrList)),P.value.push($n(_.value.ProxyList[z].RemoteIPHeaders))}break}_.value.Network==\"tcp4\"?D.value=[\"tcp4\"]:_.value.Network==\"tcp6\"?D.value=[\"tcp6\"]:_.value.Network==\"tcp\"&&(D.value=[\"tcp4\",\"tcp6\"])},be=()=>{C.value.push(\"\"),B.value.push(\"\"),$.value.push(\"\"),k.value.push(`0.0.0.0/0\n::/0`),P.value.push(`X-Forwarded-For\nX-Real-IP`),_.value.ProxyList.push({Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:10,RequestInfoLogFormat:\"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"blacklist\",SafeUserAgentMode:\"blacklist\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:`User-agent:  *\nDisallow:  /`});var de=_.value.ProxyList.length;l.value=de-1},ve=de=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664\\u7B2C \"+(de+1)+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8BBE\\u7F6E?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{_.value.ProxyList.splice(de,1),C.value.splice(de,1),B.value.splice(de,1),$.value.splice(de,1),k.value.splice(de,1),P.value.splice(de,1)})},Ee=de=>{var se=de.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":de.RuleName;$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664 \"+se+\" \\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Xie(de.RuleKey).then(z=>{if(z.ret==0){ne(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u6210\\u529F\"),Be();return}ne(\"error\",z.msg)}).catch(z=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+z),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},te=(de,se)=>{const z=de==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",q=\"[\"+(se.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":se.RuleName)+\"]\";return new Promise((R,I)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\"+z+\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+q+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Ud(se.RuleKey,\"\",!de).then(Y=>{if(Y.ret==0){R(!0),ne(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219  \"+q+z+\"\\u6210\\u529F\");return}R(!1),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+q+z+\"\\u5931\\u8D25: \"+Y.msg),Y.syncres!=null&&Y.syncres!=\"\"&&so(\"warn\",Y.syncres,0)}).catch(Y=>{R(!1),console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+q+z+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+Y),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+q+z+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{R(!1)})})},Z=(de,se,z)=>{const q=de==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",R=\"[\"+(se.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":se.RuleName)+\"]\",I=\"[\"+(z.Remark==\"\"?\"\\u672A\\u547D\\u540D\":z.Remark)+\"]\";return new Promise((Y,pe)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\"+q+\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+R+\"\\u7684\\u5B50\\u89C4\\u5219 \"+I+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Ud(se.RuleKey,z.Key,!de).then(Fe=>{if(Fe.ret==0){Y(!0),ne(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219  \"+R+\"\\u7684\\u5B50\\u89C4\\u5219 \"+I+q+\"\\u6210\\u529F\");return}Y(!1),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+R+\"\\u7684\\u5B50\\u89C4\\u5219 \"+I+q+\"\\u5931\\u8D25: \"+Fe.msg),Fe.syncres!=null&&Fe.syncres!=\"\"&&so(\"warn\",Fe.syncres,0)}).catch(Fe=>{Y(!1),console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+R+\"\\u7684\\u5B50\\u89C4\\u5219 \"+I+q+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+Fe),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+R+\"\\u7684\\u5B50\\u89C4\\u5219 \"+I+q+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{Y(!1)})})},De=()=>{_.value.DefaultProxy.TrustedCIDRsStrList=xt(g.value),_.value.DefaultProxy.RemoteIPHeaders=xt(y.value),_.value.DefaultProxy.UserAgentfilter=xt(w.value),_.value.DefaultProxy.Locations=xt(E.value);for(let de in _.value.ProxyList)_.value.ProxyList[de].Domains=xt(C.value[de]),_.value.ProxyList[de].Locations=xt(B.value[de]),_.value.ProxyList[de].UserAgentfilter=xt($.value[de]),_.value.ProxyList[de].TrustedCIDRsStrList=xt(k.value[de]),_.value.ProxyList[de].RemoteIPHeaders=xt(P.value[de]);for(let de in _.value.ProxyList){let se=parseInt(de)+1,z=_.value.ProxyList[de];if(console.log(\"proxy domains length: \"+z.Domains.length),z.Domains.length<=0){ne(\"error\",\"\\u7B2C \"+se+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u89C4\\u5219\\u4E2D\\u57DF\\u540D\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}if(z.Locations.length<=0){ne(\"error\",\"\\u7B2C \"+se+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u89C4\\u5219\\u4E2D\\u540E\\u7AEF\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}}switch(o.value){case\"add\":Kie(_.value).then(de=>{if(de.ret==0){t.value=!1,ne(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u6210\\u529F\"),Be();return}ne(\"error\",de.msg)}).catch(de=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+de),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;case\"alter\":Yie(_.value).then(de=>{if(de.ret==0){t.value=!1,ne(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u6210\\u529F\"),Be();return}ne(\"error\",de.msg)}).catch(de=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+de),ne(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;default:console.log(\"\\u9519\\u8BEF\\u7684ruleFormOptionType \"+o.value)}},Be=()=>{Gie().then(de=>{if(de.ret==0){de.list==null||de.list==null?v.value=[]:v.value=de.list;return}}).catch(de=>{console.log(\"\\u83B7\\u53D6\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+de),ne(\"error\",\"\\u83B7\\u53D6\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519\")})},x=(de,se)=>{var z=\"\";if(de.AccessLogs==null||de.AccessLogs==null)return z=\"\\u6682\\u65E0\\u65E5\\u5FD7\",z;console.log();for(var q of Object.keys(de.AccessLogs))if(console.log(\"key:\"+q+\"   proxyKey:\"+se),q==se){if(de.AccessLogs[q]==null||de.AccessLogs[q]==null||de.AccessLogs[q].lengh==0)break;for(let R in de.AccessLogs[q]){let I=de.AccessLogs[q][R];R!=\"0\"&&(z+=\"<br />\"),z+=I.LogTime+\"&nbsp;&nbsp;&nbsp;\"+I.LogContent+\"<br />\"}}return z==\"\"&&(z=\"\\u6682\\u65E0\\u65E5\\u5FD7\"),z},O=L(!1),ye=L(!0),xe=[\"tcp4\",\"tcp6\"],Pe=de=>{_.value.Network=de?\"tcp\":\"\",D.value=de?[\"tcp4\",\"tcp6\"]:[],ye.value=!1},he=de=>{const se=de.length;O.value=se===xe.length,ye.value=se>0&&se<xe.length,_.value.Network=Te(de)},Te=de=>{switch(de.length){case 0:return\"\";case 1:return de[0]+\"\";case 2:return\"tcp\";default:return\"\"}};var je;return ot(()=>{Be(),je=setInterval(()=>{Be()},1500)}),In(()=>{clearInterval(je)}),(de,se)=>{const z=vn,q=ya,R=rl,I=pn,Y=ba,pe=Yt,Fe=lt(\"Plus\"),ce=rt,Ae=Vl,ue=nn,me=Bn,Ie=Po,ee=q4,Se=eo,Ke=Ea,nt=Ca,we=zc,Le=Mc,Qe=Rte,Ze=Hte,M=Hn,S=Il,_e=_6;return b(),F(Oe,null,[f(\"div\",e4e,[c(pe,{height:\"100%\"},{default:d(()=>[(b(!0),F(Oe,null,it(v.value,G=>(b(),F(\"div\",t4e,[c(Y,{column:8,border:\"\"},{default:d(()=>[c(q,{label:\"\\u89C4\\u5219\\u540D\\u79F0\",span:1},{default:d(()=>[fe(c(z,{size:\"small\"},{default:d(()=>[A(re(G.RuleName==\"\"?\"\\u672A\\u547D\\u540D\\u89C4\\u5219\":G.RuleName),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(q,{label:\"\\u76D1\\u542C\\u7C7B\\u578B\",span:2},{default:d(()=>[fe(c(z,{color:\"#0059b3\",size:\"small\"},{default:d(()=>[A(re(G.Network),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(q,{label:\"\\u76D1\\u542C\\u5730\\u5740\",span:2},{default:d(()=>[fe(c(z,{type:\"success\",size:\"small\"},{default:d(()=>[A(re(G.ListenIP==\"\"?\"\\u6240\\u6709\\u5730\\u5740\":G.ListenIP),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(q,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",span:1},{default:d(()=>[fe(c(z,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(G.ListenPort),1)]),_:2},1536),[[ge,!0]]),fe(c(z,{type:G.EnableTLS!=!0?\"info\":\"primary\",size:\"small\"},{default:d(()=>[A(re(G.EnableTLS==!0?\"TLS\\u5DF2\\u542F\\u7528\":\"TLS\\u672A\\u542F\\u7528\"),1)]),_:2},1032,[\"type\"]),[[ge,!0]])]),_:2},1024),c(q,{label:\"\\u89C4\\u5219\\u64CD\\u4F5C\",span:2},{default:d(()=>[c(I,{content:G.Enable==!0?\"\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:d(()=>[c(R,{modelValue:G.Enable,\"onUpdate:modelValue\":ie=>G.Enable=ie,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":te.bind(this,G.Enable,G),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),A(\" \\xA0\\xA0 \"),c(z,{size:\"default\",type:\"primary\",onClick:ie=>J(\"alter\",G)},{default:d(()=>[A(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),c(z,{size:\"default\",type:\"danger\",onClick:ie=>Ee(G)},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024)]),_:2},1024),c(Y,{column:8,border:\"\"},{default:d(()=>[c(q,{label:\"\\u9ED8\\u8BA4\\u5B50\\u89C4\\u5219\",span:1},{default:d(()=>[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u9ED8\\u8BA4\\u89C4\\u5219\"),n4e]),default:d(()=>[fe(c(z,{type:\"info\",size:\"small\"},{default:d(()=>[A(\" \\u9ED8\\u8BA4\\u89C4\\u5219 \")]),_:1},512),[[ge,!0]])]),_:1})]),_:1}),c(q,{label:\"\\u524D\\u7AEF\\u57DF\\u540D\",span:1},{default:d(()=>[c(I,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u672A\\u5339\\u914D\\u5B50\\u89C4\\u5219\\u7684\\u4EFB\\u610F\\u57DF\\u540D \")]),default:d(()=>[fe(c(z,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(\" \\u672A\\u5339\\u914D\\u7684\\u57DF\\u540D \")]),_:1},512),[[ge,!0]])]),_:1})]),_:1}),c(q,{label:\"\\u540E\\u7AEF\\u5730\\u5740\",span:2},{default:d(()=>[c(I,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(G.DefaultProxy.Locations)},null,8,o4e)]),default:d(()=>[fe(c(z,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(G.DefaultProxy.Locations==null||G.DefaultProxy.Locations==null||G.DefaultProxy.Locations.length<=0?\"\\u672A\\u8BBE\\u7F6E\":G.DefaultProxy.Locations.length==1?G.DefaultProxy.Locations[0]:G.DefaultProxy.Locations[0]+\"...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(q,{label:\"\\u65E5\\u5FD7\",span:2},{default:d(()=>[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:x(G,\"default\")},null,8,l4e)]),default:d(()=>[fe(c(z,{type:\"info\",size:\"small\",onClick:ie=>T(G.RuleKey,\"default\")},{default:d(()=>[A(\" \\u67E5\\u770B \")]),_:2},1032,[\"onClick\"]),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(q,{label:\"\\u5B89\\u5168\\u8BBE\\u7F6E\",span:2},{default:d(()=>[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},Zl({default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\",disabled:G.DefaultProxy.EnableBasicAuth!=!0},{default:d(()=>[A(re(G.DefaultProxy.EnableBasicAuth==!1?\"Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\":\"Basic\\u8BA4\\u8BC1\\u5DF2\\u542F\\u7528\"),1)]),_:2},1032,[\"disabled\"]),[[ge,!0]])]),_:2},[G.DefaultProxy.EnableBasicAuth?{name:\"content\",fn:d(()=>[A(\" \\u7528\\u6237\\u540D:\"+re(G.DefaultProxy.BasicAuthUser),1),u4e,A(\" \\u5BC6\\u7801:\"+re(G.DefaultProxy.BasicAuthPasswd),1),a4e]),key:\"0\"}:void 0,G.DefaultProxy.EnableBasicAuth?void 0:{name:\"content\",fn:d(()=>[A(\" Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\"),r4e]),key:\"1\"}]),1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),s4e]),default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(G.DefaultProxy.SafeIPMode==\"blacklist\"?\"IP\\u9ED1\\u540D\\u5355\":\"IP\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),i4e]),default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(G.DefaultProxy.SafeUserAgentMode==\"blacklist\"?\"UA\\u9ED1\\u540D\\u5355\":\"UA\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),(b(!0),F(Oe,null,it(G.ProxyList,ie=>(b(),F(\"div\",null,[c(q,{label:\"\\u81EA\\u5B9A\\u4E49\\u5B50\\u89C4\\u5219\",span:1},{default:d(()=>[fe(c(z,{size:\"small\"},{default:d(()=>[A(re(ie.Remark==\"\"?\"\\u672A\\u547D\\u540D\\u5B50\\u89C4\\u5219\":ie.Remark),1)]),_:2},1536),[[ge,!0]]),A(\" \\xA0 \"),c(I,{content:ie.Enable==!0?\"\\u5B50\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u5B50\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:d(()=>[c(R,{modelValue:ie.Enable,\"onUpdate:modelValue\":$e=>ie.Enable=$e,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":Z.bind(this,ie.Enable,G,ie),size:\"small\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"])]),_:2},1024),c(q,{label:\"\\u524D\\u7AEF\\u57DF\\u540D\",span:1},{default:d(()=>[c(I,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(ie.Domains)},null,8,c4e)]),default:d(()=>[fe(c(z,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(ie.Domains.length==1?ie.Domains[0]:ie.Domains[0]+\" ...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(q,{label:\"\\u540E\\u7AEF\\u5730\\u5740\",span:2},{default:d(()=>[c(I,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(ie.Locations)},null,8,d4e)]),default:d(()=>[fe(c(z,{color:\"#409eff\",size:\"small\"},{default:d(()=>[A(re(ie.Locations.length==1?ie.Locations[0]:ie.Locations[0]+\" ...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(q,{label:\"\\u65E5\\u5FD7\",span:2},{default:d(()=>[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:x(G,ie.Key)},null,8,f4e)]),default:d(()=>[fe(c(z,{type:\"info\",size:\"small\",onClick:$e=>T(G.RuleKey,ie.Key)},{default:d(()=>[A(\" \\u67E5\\u770B \")]),_:2},1032,[\"onClick\"]),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(q,{label:\"\\u5B89\\u5168\\u8BBE\\u7F6E\",span:2},{default:d(()=>[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},Zl({default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\",disabled:ie.EnableBasicAuth!=!0},{default:d(()=>[A(re(ie.EnableBasicAuth==!1?\"Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\":\"Basic\\u8BA4\\u8BC1\\u5DF2\\u542F\\u7528\"),1)]),_:2},1032,[\"disabled\"]),[[ge,!0]])]),_:2},[ie.EnableBasicAuth?{name:\"content\",fn:d(()=>[A(\" \\u7528\\u6237\\u540D:\"+re(ie.BasicAuthUser),1),p4e,A(\" \\u5BC6\\u7801:\"+re(ie.BasicAuthPasswd),1),v4e]),key:\"0\"}:void 0,ie.EnableBasicAuth?void 0:{name:\"content\",fn:d(()=>[A(\" Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\"),h4e]),key:\"1\"}]),1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),_4e]),default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(ie.SafeIPMode==\"blacklist\"?\"IP\\u9ED1\\u540D\\u5355\":\"IP\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),m4e]),default:d(()=>[fe(c(z,{color:\"#6666ff\",size:\"small\"},{default:d(()=>[A(re(ie.SafeUserAgentMode==\"blacklist\"?\"UA\\u9ED1\\u540D\\u5355\":\"UA\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024)]))),256))]),_:2},1024)]))),256))]),_:1}),c(Ae,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:d(()=>[c(z,{type:\"primary\",round:!0,onClick:se[0]||(se[0]=G=>J(\"add\",null))},{default:d(()=>[A(\"\\u6DFB\\u52A0\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"),c(ce,{class:\"el-icon--right\"},{default:d(()=>[c(Fe)]),_:1})]),_:1})]),_:1})]),t.value?(b(),ae(S,{key:0,modelValue:t.value,\"onUpdate:modelValue\":se[30]||(se[30]=G=>t.value=G),title:o.value==\"add\"?\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\":\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{footer:d(()=>[f(\"span\",ipe,[c(z,{onClick:se[29]||(se[29]=G=>t.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(z,{type:\"primary\",onClick:De},{default:d(()=>[A(re(o.value==\"add\"?\"\\u6DFB\\u52A0\":\"\\u4FEE\\u6539\"),1)]),_:1})])]),default:d(()=>[c(M,{model:_.value},{default:d(()=>[c(me,{label:\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:d(()=>[c(ue,{modelValue:_.value.RuleName,\"onUpdate:modelValue\":se[1]||(se[1]=G=>_.value.RuleName=G),placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(me,{label:\"\\u89C4\\u5219\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.Enable,\"onUpdate:modelValue\":se[2]||(se[2]=G=>_.value.Enable=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[f(\"div\",g4e,[c(me,{label:\"\\u76D1\\u542C\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:d(()=>[c(Ie,{modelValue:O.value,\"onUpdate:modelValue\":se[3]||(se[3]=G=>O.value=G),indeterminate:ye.value,onChange:Pe},{default:d(()=>[A(\"\\u5168\\u9009 \\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\")]),_:1},8,[\"modelValue\",\"indeterminate\"]),b4e,c(ee,{modelValue:D.value,\"onUpdate:modelValue\":se[4]||(se[4]=G=>D.value=G),onChange:he},{default:d(()=>[(b(),F(Oe,null,it(xe,G=>c(Ie,{key:G,label:G},{default:d(()=>[A(re(G),1)]),_:2},1032,[\"label\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),c(me,{label:\"\\u76D1\\u542C\\u5730\\u5740\",\"label-width\":\"auto\"},{default:d(()=>[c(ue,{modelValue:_.value.ListenIP,\"onUpdate:modelValue\":se[5]||(se[5]=G=>_.value.ListenIP=G),placeholder:\"\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(me,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",\"label-width\":\"auto\",min:1,max:65535},{default:d(()=>[c(Se,{modelValue:_.value.ListenPort,\"onUpdate:modelValue\":se[6]||(se[6]=G=>_.value.ListenPort=G),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u542F\\u7528\\u524D\\u8BF7\\u5148\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\"),y4e,A(\" \\u589E\\u52A0\\u5220\\u9664\\u8BC1\\u4E66\\u540E\\u9700\\u8981\\u91CD\\u542F\\u89C4\\u5219\\u65B0\\u8BC1\\u4E66\\u624D\\u751F\\u6548\"),w4e]),default:d(()=>[(b(),ae(me,{key:0,label:\"TLS\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.EnableTLS,\"onUpdate:modelValue\":se[7]||(se[7]=G=>_.value.EnableTLS=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}))]),_:1})]),c(Ze,{modelValue:l.value,\"onUpdate:modelValue\":se[28]||(se[28]=G=>l.value=G),accordion:!0},{default:d(()=>[f(\"div\",C4e,[c(Qe,{title:\"\\u9ED8\\u8BA4\\u5B50\\u89C4\\u5219\",name:\"default\"},{default:d(()=>[f(\"div\",E4e,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u53EF\\u7559\\u7A7A\"),F4e,A(\" \\u4E0D\\u4E3A\\u7A7A\\u65F6\\u8868\\u793A\\u57DF\\u540D\\u4E0D\\u5339\\u914D\\u4EFB\\u4F55\\u5B50\\u89C4\\u5219\\u65F6\\u9ED8\\u8BA4\\u7684\\u8DF3\\u8F6C\\u5730\\u5740\"),A4e,A(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u540E\\u7AEF\\u5730\\u5740\\u65F6\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u4F9D\\u6B21\\u5FAA\\u73AF\\u8BBF\\u95EE\"),D4e,A(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\"),B4e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u9ED8\\u8BA4\\u76EE\\u6807\\u5730\\u5740\"},{default:d(()=>[c(ue,{modelValue:E.value,\"onUpdate:modelValue\":se[8]||(se[8]=G=>E.value=G),placeholder:\"\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\",autosize:{minRows:1,maxRows:3},type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.EnableAccessLog,\"onUpdate:modelValue\":se[9]||(se[9]=G=>_.value.DefaultProxy.EnableAccessLog=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[c(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":\"auto\"},{default:d(()=>[c(nt,{modelValue:_.value.DefaultProxy.LogLevel,\"onUpdate:modelValue\":se[10]||(se[10]=G=>_.value.DefaultProxy.LogLevel=G),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(Bi),G=>(b(),ae(Ke,{key:G.value,label:G.label,value:G.value},null,8,[\"label\",\"value\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),c(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.LogOutputToConsole,\"onUpdate:modelValue\":se[11]||(se[11]=G=>_.value.DefaultProxy.LogOutputToConsole=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),x4e]),default:d(()=>[c(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:0,max:102400},{default:d(()=>[c(Se,{modelValue:_.value.DefaultProxy.AccessLogMaxNum,\"onUpdate:modelValue\":se[12]||(se[12]=G=>_.value.DefaultProxy.AccessLogMaxNum=G),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(1-256)\"),$4e]),default:d(()=>[c(me,{label:\"\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:1,max:256},{default:d(()=>[c(Se,{modelValue:_.value.DefaultProxy.WebListShowLastLogMaxCount,\"onUpdate:modelValue\":se[13]||(se[13]=G=>_.value.DefaultProxy.WebListShowLastLogMaxCount=G),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E0D\\u5EFA\\u8BAE\\u7559\\u7A7A\\uFF0C\\u7559\\u7A7A\\u7684\\u8BDD\\u65E5\\u5FD7\\u4E2D\\u4E0D\\u663E\\u793A\\u76F8\\u5173\\u4FE1\\u606F \"),S4e,A(\" \\u683C\\u5F0F\\u4E2D\\u53EF\\u7528\\u53D8\\u91CF\"),k4e,A(\" #{clientIP} : \\u5BA2\\u6237\\u7AEFIP \"),P4e,A(\" #{remoteIP} : \\u5BA2\\u6237\\u7AEF\\u76F4\\u63A5\\u8FDE\\u63A5\\u672C\\u670D\\u52A1\\u7684IP(\\u5982\\u679C\\u524D\\u7AEF\\u6709\\u53CD\\u5411\\u4EE3\\u7406\\uFF0C\\u4E0D\\u4E00\\u5B9A\\u662F\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP)\"),L4e,A(\" #{tab} : \\u5236\\u8868\\u7B26\"),T4e,A(\" #{method} : \\u8BF7\\u6C42\\u65B9\\u6CD5\"),z4e,A(\" #{host} : \\u8BF7\\u6C42host\"),M4e,A(\" #{path} : \\u8BF7\\u6C42path(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),V4e,A(\" #{url} : \\u8BF7\\u6C42url(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),I4e]),default:d(()=>[oe(\"\",!0)]),_:1})],512),[[ge,_.value.DefaultProxy.EnableAccessLog]]),f(\"div\",H4e,[R4e,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),N4e]),default:d(()=>[c(me,{label:\"\\u4F18\\u5148\\u4ECEHeader\\u5934\\u90E8\\u83B7\\u53D6\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.ForwardedByClientIP,\"onUpdate:modelValue\":se[15]||(se[15]=G=>_.value.DefaultProxy.ForwardedByClientIP=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5,\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u7F51\\u6BB5\"),O4e,A(\" Lucky\\u53EA\\u4F1A\\u4ECE\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u4E2D\\u7684header\\u83B7\\u53D6\\u5BA2\\u6237\\u7AEFIP\"),U4e,A(\" 0.0.0.0/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv4\\u4EE3\\u7406\\u5730\\u5740\"),W4e,A(\" ::/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv6\\u4EE3\\u7406\\u5730\\u5740\"),q4e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5\"},{default:d(()=>[c(ue,{modelValue:g.value,\"onUpdate:modelValue\":se[16]||(se[16]=G=>g.value=G),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\\uFF0C\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u5B57\\u6BB5\"),j4e,A(\" \\u5E38\\u89C1\\u7684\\u5B57\\u6BB5\\u6709\\uFF1A\"),K4e,A(\" X-Forwarded-For \"),G4e,A(\" X-Real-IP \"),Y4e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\"},{default:d(()=>[c(ue,{modelValue:y.value,\"onUpdate:modelValue\":se[17]||(se[17]=G=>y.value=G),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,_.value.DefaultProxy.ForwardedByClientIP]])]),f(\"div\",X4e,[J4e,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),Q4e]),default:d(()=>[c(me,{label:\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.AddRemoteIPToHeader,\"onUpdate:modelValue\":se[18]||(se[18]=G=>_.value.DefaultProxy.AddRemoteIPToHeader=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5E38\\u7528\\u7684Key\\u6709\"),Z4e,A(\" X-Forwarded-For\"),e6e,A(\" X-Real-IP\"),t6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u81EA\\u5B9A\\u4E49Header Key\"},{default:d(()=>[c(ue,{modelValue:_.value.DefaultProxy.AddRemoteIPHeaderKey,\"onUpdate:modelValue\":se[19]||(se[19]=G=>_.value.DefaultProxy.AddRemoteIPHeaderKey=G),placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,_.value.DefaultProxy.AddRemoteIPToHeader]])]),f(\"div\",n6e,[o6e,c(me,{label:\"BasicAuth\\u8BA4\\u8BC1\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.EnableBasicAuth,\"onUpdate:modelValue\":se[20]||(se[20]=G=>_.value.DefaultProxy.EnableBasicAuth=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" HTTP BasicAuth \\u7528\\u6237\\u540D\"),l6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u7528\\u6237\\u540D\"},{default:d(()=>[c(ue,{modelValue:_.value.DefaultProxy.BasicAuthUser,\"onUpdate:modelValue\":se[21]||(se[21]=G=>_.value.DefaultProxy.BasicAuthUser=G),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" HTTP BasicAuth \\u5BC6\\u7801\"),u6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u5BC6\\u7801\"},{default:d(()=>[c(ue,{modelValue:_.value.DefaultProxy.BasicAuthPasswd,\"onUpdate:modelValue\":se[22]||(se[22]=G=>_.value.DefaultProxy.BasicAuthPasswd=G),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[ge,_.value.DefaultProxy.EnableBasicAuth]]),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),a6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:d(()=>[c(Le,{modelValue:_.value.DefaultProxy.SafeIPMode,\"onUpdate:modelValue\":se[23]||(se[23]=G=>_.value.DefaultProxy.SafeIPMode=G),class:\"ml-4\"},{default:d(()=>[c(we,{label:\"blacklist\"},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\")]),_:1}),c(we,{label:\"whitelist\"},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),r6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:d(()=>[c(Le,{modelValue:_.value.DefaultProxy.SafeUserAgentMode,\"onUpdate:modelValue\":se[24]||(se[24]=G=>_.value.DefaultProxy.SafeUserAgentMode=G),class:\"ml-4\"},{default:d(()=>[c(we,{label:\"blacklist\"},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\")]),_:1}),c(we,{label:\"whitelist\"},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1})]),_:1}),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u81EA\\u5B9A\\u4E49\\u7684UserAgent \\u9ED1/\\u767D\\u540D\\u5355\\u5185\\u5BB9,\\u591A\\u7EC4Agent\\u5206\\u591A\\u884C\\u586B\\u5165,\\u5B9E\\u9645\\u7684UserAgent\\u90E8\\u5206\\u5339\\u914D\\u4EFB\\u610F\\u4E00\\u884C\\u5373\\u662F\\u6210\\u529F\\u5339\\u914D\"),s6e,A(\" \\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u5339\\u914D\\u6210\\u529F\\u4EFB\\u4E00\\u6761\\u5373\\u62D2\\u7EDD\\u670D\\u52A1\"),i6e,A(\" \\u767D\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u4EC5\\u5339\\u914D\\u6210\\u529F\\u624D\\u7EE7\\u7EED\\u670D\\u52A1\"),c6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u5185\\u5BB9\"},{default:d(()=>[c(ue,{modelValue:w.value,\"onUpdate:modelValue\":se[25]||(se[25]=G=>w.value=G),autosize:{minRows:3,maxRows:6},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),f(\"div\",d6e,[f6e,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u53EF\\u4EE5\\u901A\\u8FC7\\u81EA\\u5B9A\\u4E49robots.txt\\u9632\\u6B62\\u722C\\u866B\\u5BF9\\u5185\\u5BB9\\u7684\\u6293\\u53D6\"),p6e]),default:d(()=>[c(me,{label:\"\\u81EA\\u5B9A\\u4E49robot.txt\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.DefaultProxy.CustomRobotTxt,\"onUpdate:modelValue\":se[26]||(se[26]=G=>_.value.DefaultProxy.CustomRobotTxt=G),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),fe(f(\"div\",null,[c(me,{\"label-width\":\"auto\",label:\"robot.txt\"},{default:d(()=>[c(ue,{modelValue:_.value.DefaultProxy.RobotTxt,\"onUpdate:modelValue\":se[27]||(se[27]=G=>_.value.DefaultProxy.RobotTxt=G),autosize:{minRows:5,maxRows:9},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})],512),[[ge,_.value.DefaultProxy.CustomRobotTxt]])])])]),_:1})]),f(\"div\",v6e,[h6e,(b(!0),F(Oe,null,it(_.value.ProxyList,(G,ie)=>(b(),F(\"div\",_6e,[c(Qe,{title:\"\\u7B2C\"+(ie+1)+\"\\u6761 [ \"+_.value.ProxyList[ie].Remark+\" ]\",name:ie},{default:d(()=>[f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5B50\\u89C4\\u5219\\u540D\\u79F0,\\u53EF\\u7559\\u7A7A\"),m6e]),default:d(()=>[c(me,{label:\"\\u53CD\\u5411\\u4EE3\\u7406\\u5B50\\u89C4\\u5219\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:d(()=>[c(ue,{modelValue:_.value.ProxyList[ie].Remark,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].Remark=$e,placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(me,{label:\"\\u5B50\\u89C4\\u5219\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].Enable,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].Enable=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\"),g6e,A(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u57DF\\u540D\\u65F6\\u8868\\u793A\\u591A\\u6761\\u57DF\\u540D\\u6307\\u5411\\u76F8\\u540C\\u7684\\u540E\\u7AEF\\u5730\\u5740\"),b6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u524D\\u7AEF\\u57DF\\u540D\"},{default:d(()=>[c(ue,{modelValue:C.value[ie],\"onUpdate:modelValue\":$e=>C.value[ie]=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E00\\u884C\\u4E00\\u6761\\u540E\\u7AEF\\u5730\\u5740\"),y6e,A(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u540E\\u7AEF\\u5730\\u5740\\u65F6\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u4F9D\\u6B21\\u5FAA\\u73AF\\u8BBF\\u95EE\"),w6e,A(\" \\u65E0\\u7279\\u6B8A\\u8981\\u6C42\\u8BBE\\u7F6E\\u4E00\\u6761\\u5373\\u53EF\"),C6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u540E\\u7AEF\\u5730\\u5740\"},{default:d(()=>[c(ue,{modelValue:B.value[ie],\"onUpdate:modelValue\":$e=>B.value[ie]=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].EnableAccessLog,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].EnableAccessLog=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),fe(f(\"div\",null,[c(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":\"auto\"},{default:d(()=>[c(nt,{modelValue:_.value.ProxyList[ie].LogLevel,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].LogLevel=$e,class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(Bi),$e=>(b(),ae(Ke,{key:$e.value,label:$e.label,value:$e.value},null,8,[\"label\",\"value\"]))),128))]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),c(me,{label:\"\\u5B50\\u89C4\\u5219\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].LogOutputToConsole,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].LogOutputToConsole=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),E6e]),default:d(()=>[c(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:0,max:102400},{default:d(()=>[c(Se,{modelValue:_.value.ProxyList[ie].AccessLogMaxNum,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].AccessLogMaxNum=$e,autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u8303\\u56F4(1-256)\"),F6e]),default:d(()=>[c(me,{label:\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:1,max:256},{default:d(()=>[c(Se,{modelValue:_.value.ProxyList[ie].WebListShowLastLogMaxCount,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].WebListShowLastLogMaxCount=$e,autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4E0D\\u5EFA\\u8BAE\\u7559\\u7A7A\\uFF0C\\u7559\\u7A7A\\u7684\\u8BDD\\u65E5\\u5FD7\\u4E2D\\u4E0D\\u663E\\u793A\\u76F8\\u5173\\u4FE1\\u606F \"),A6e,A(\" \\u65E5\\u5FD7\\u683C\\u5F0F\\u4E2D\\u53EF\\u7528\\u53D8\\u91CF\"),D6e,A(\" #{clientIP} : \\u5BA2\\u6237\\u7AEFIP \"),B6e,A(\" #{remoteIP} : \\u5BA2\\u6237\\u7AEF\\u76F4\\u63A5\\u8FDE\\u63A5\\u672C\\u670D\\u52A1\\u7684IP(\\u5982\\u679C\\u524D\\u7AEF\\u6709\\u53CD\\u5411\\u4EE3\\u7406\\uFF0C\\u4E0D\\u4E00\\u5B9A\\u662F\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP)\"),x6e,A(\" #{tab} : \\u5236\\u8868\\u7B26\"),$6e,A(\" #{method} : \\u8BF7\\u6C42\\u65B9\\u6CD5\"),S6e,A(\" #{host} : \\u8BF7\\u6C42host\"),k6e,A(\" #{path} : \\u8BF7\\u6C42path(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),P6e,A(\" #{url} : \\u8BF7\\u6C42url(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),L6e]),default:d(()=>[oe(\"\",!0)]),_:2},1024)],512),[[ge,_.value.ProxyList[ie].EnableAccessLog]]),f(\"div\",T6e,[z6e,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),M6e]),default:d(()=>[c(me,{label:\"\\u4F18\\u5148\\u4ECEHeader\\u5934\\u90E8\\u83B7\\u53D6\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].ForwardedByClientIP,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].ForwardedByClientIP=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5,\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u7F51\\u6BB5\"),V6e,A(\" Lucky\\u53EA\\u4F1A\\u4ECE\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u4E2D\\u7684header\\u83B7\\u53D6\\u5BA2\\u6237\\u7AEFIP\"),I6e,A(\" 0.0.0.0/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv4\\u4EE3\\u7406\\u5730\\u5740\"),H6e,A(\" ::/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv6\\u4EE3\\u7406\\u5730\\u5740\"),R6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5\"},{default:d(()=>[c(ue,{modelValue:k.value[ie],\"onUpdate:modelValue\":$e=>k.value[ie]=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\\uFF0C\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u5B57\\u6BB5\"),N6e,A(\" \\u5E38\\u89C1\\u7684\\u5B57\\u6BB5\\u6709\\uFF1A\"),O6e,A(\" X-Forwarded-For \"),U6e,A(\" X-Real-IP \"),W6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\"},{default:d(()=>[c(ue,{modelValue:P.value[ie],\"onUpdate:modelValue\":$e=>P.value[ie]=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[ge,_.value.ProxyList[ie].ForwardedByClientIP]])]),f(\"div\",q6e,[j6e,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),K6e,A(\" \\u7528\\u4E8E\\u540E\\u7AEF\\u7A0B\\u5E8F\\u8BC6\\u522B\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP \")]),default:d(()=>[c(me,{label:\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].AddRemoteIPToHeader,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].AddRemoteIPToHeader=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u5E38\\u7528\\u7684Key\\u6709\"),G6e,A(\" X-Forwarded-For\"),Y6e,A(\" X-Real-IP\"),X6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"\\u81EA\\u5B9A\\u4E49Header Key\"},{default:d(()=>[c(ue,{modelValue:_.value.ProxyList[ie].AddRemoteIPHeaderKey,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].AddRemoteIPHeaderKey=$e,placeholder:\"\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[ge,_.value.ProxyList[ie].AddRemoteIPToHeader]])]),f(\"div\",J6e,[Q6e,c(me,{label:\"BasicAuth\\u8BA4\\u8BC1\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].EnableBasicAuth,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].EnableBasicAuth=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),fe(f(\"div\",null,[c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" HTTP BasicAuth \\u7528\\u6237\\u540D\"),Z6e]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u7528\\u6237\\u540D\"},{default:d(()=>[c(ue,{modelValue:_.value.ProxyList[ie].BasicAuthUser,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].BasicAuthUser=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" HTTP BasicAuth \\u5BC6\\u7801\"),epe]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u5BC6\\u7801\"},{default:d(()=>[c(ue,{modelValue:_.value.ProxyList[ie].BasicAuthPasswd,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].BasicAuthPasswd=$e,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[ge,_.value.ProxyList[ie].EnableBasicAuth]]),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),tpe]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:d(()=>[c(Le,{modelValue:_.value.ProxyList[ie].SafeIPMode,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].SafeIPMode=$e,class:\"ml-4\"},{default:d(()=>[c(we,{label:\"blacklist\"},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\")]),_:1}),c(we,{label:\"whitelist\"},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),npe]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:d(()=>[c(Le,{modelValue:_.value.ProxyList[ie].SafeUserAgentMode,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].SafeUserAgentMode=$e,class:\"ml-4\"},{default:d(()=>[c(we,{label:\"blacklist\"},{default:d(()=>[A(\"\\u9ED1\\u540D\\u5355\")]),_:1}),c(we,{label:\"whitelist\"},{default:d(()=>[A(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u81EA\\u5B9A\\u4E49\\u7684UserAgent \\u9ED1/\\u767D\\u540D\\u5355\\u5185\\u5BB9,\\u591A\\u7EC4Agent\\u5206\\u591A\\u884C\\u586B\\u5165,\\u5B9E\\u9645\\u7684UserAgent\\u90E8\\u5206\\u5339\\u914D\\u4EFB\\u610F\\u4E00\\u884C\\u5373\\u662F\\u6210\\u529F\\u5339\\u914D\"),ope,A(\" \\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u5339\\u914D\\u6210\\u529F\\u4EFB\\u4E00\\u6761\\u5373\\u62D2\\u7EDD\\u670D\\u52A1\"),lpe,A(\" \\u767D\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u4EC5\\u5339\\u914D\\u6210\\u529F\\u624D\\u7EE7\\u7EED\\u670D\\u52A1\"),upe]),default:d(()=>[c(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u5185\\u5BB9\"},{default:d(()=>[c(ue,{modelValue:$.value[ie],\"onUpdate:modelValue\":$e=>$.value[ie]=$e,autosize:{minRows:3,maxRows:6},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)]),f(\"div\",ape,[rpe,c(I,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[A(\" \\u53EF\\u4EE5\\u901A\\u8FC7\\u81EA\\u5B9A\\u4E49robots.txt\\u9632\\u6B62\\u722C\\u866B\\u5BF9\\u5185\\u5BB9\\u7684\\u6293\\u53D6\"),spe]),default:d(()=>[c(me,{label:\"\\u81EA\\u5B9A\\u4E49robot.txt\",\"label-width\":\"auto\"},{default:d(()=>[c(R,{modelValue:_.value.ProxyList[ie].CustomRobotTxt,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].CustomRobotTxt=$e,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),fe(f(\"div\",null,[c(me,{\"label-width\":\"auto\",label:\"robot.txt\"},{default:d(()=>[c(ue,{modelValue:_.value.ProxyList[ie].RobotTxt,\"onUpdate:modelValue\":$e=>_.value.ProxyList[ie].RobotTxt=$e,autosize:{minRows:5,maxRows:9},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)],512),[[ge,_.value.ProxyList[ie].CustomRobotTxt]])])],512),[[ge,_.value.ProxyList[ie].Enable]]),c(me,null,{default:d(()=>[c(z,{type:\"danger\",round:!0,onClick:$e=>ve(ie)},{default:d(()=>[A(\" \\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024)])]),_:2},1032,[\"title\",\"name\"])]))),256)),c(z,{type:\"primary\",round:!0,onClick:be},{default:d(()=>[A(\"\\u6DFB\\u52A0\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u5B50\\u89C4\\u5219 \")]),_:1})])]),_:1},8,[\"modelValue\"])],512),[[ge,_.value.Enable]])]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"])):oe(\"\",!0),n.value?(b(),ae(S,{key:1,modelValue:n.value,\"onUpdate:modelValue\":se[31]||(se[31]=G=>n.value=G),\"close-on-click-modal\":!1,width:\"900px\"},{default:d(()=>[f(\"div\",null,[c(pe,{\"max-height\":\"95vh\",class:\"reverseProxyLogs\",\"element-loading-background\":\"transparent\"},{default:d(()=>[A(re(m.value),1)]),_:1}),c(_e,{\"page-size\":u.value,\"page-sizes\":[10,20,50,100,200,300,400,500],small:!1,disabled:!1,background:!1,layout:\"total, sizes, prev, pager, next, jumper\",\"current-page\":p.value,total:a.value,onSizeChange:X,onCurrentChange:W,onPrevClick:H,onNextClick:j},null,8,[\"page-size\",\"current-page\",\"total\"])])]),_:1},8,[\"modelValue\"])):oe(\"\",!0)],64)}}});var dpe=hn(cpe,[[\"__scopeId\",\"data-v-14277c40\"]]);const fpe={class:\"PageRadius\",style:{borderRadius:\"base\"},\"element-loading-background\":\"transparent\"},ppe={class:\"formradius\",style:{borderRadius:\"base\"}},vpe=le({__name:\"DDNSSet\",setup(e){const t=L(!0),n={Enable:!1,HttpClientSecureVerify:!1,Intervals:0,FirstCheckDelay:0},o=L(n),l=L(n),u=()=>{o.value.Enable=l.value.Enable,o.value.HttpClientSecureVerify=l.value.HttpClientSecureVerify},a=i=>{l.value.Enable=i.value.Enable,l.value.HttpClientSecureVerify=i.value.HttpClientSecureVerify},r=()=>{Aie().then(i=>{if(i.ret==0){t.value=!1,o.value=i.ddnsconfigure,a(o);return}ne(\"error\",\"\\u83B7\\u53D6DDNS\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(i=>{ne(\"error\",\"\\u83B7\\u53D6DDNS\\u914D\\u7F6E\\u51FA\\u9519\")})},s=()=>{Bie(o.value).then(i=>{if(i.ret==0){ne(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\");return}u(),ne(\"error\",i.msg)}).catch(i=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ne(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\"),u()})};return ot(()=>{r()}),(i,p)=>{const m=rl,v=Bn,_=pn,g=eo,y=Hn,w=vn,E=Yt,D=os;return fe((b(),F(\"div\",fpe,[c(E,{height:\"100%\"},{default:d(()=>[f(\"div\",ppe,[c(y,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:d(()=>[c(_,{content:\"\\u5982\\u679C\\u4E0D\\u9700\\u8981DDNS\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\\u8BF7\\u4E0D\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\\u5F00\\u5173\",id:\"adminListen\"},{default:d(()=>[c(m,{modelValue:o.value.Enable,\"onUpdate:modelValue\":p[0]||(p[0]=C=>o.value.Enable=C),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(_,{content:\"\\u591A\\u6570\\u5D4C\\u5165\\u5F0F\\u8BBE\\u5907\\u542F\\u7528\\u8FD9\\u4E2A\\u5F00\\u5173\\u4F1A\\u5BFC\\u81F4https\\u8BBF\\u95EE\\u5931\\u8D25\",placement:\"top\"},{default:d(()=>[c(v,{label:\"Http(s) \\u5BA2\\u6237\\u7AEF \\u5B89\\u5168\\u8BC1\\u4E66\\u9A8C\\u8BC1\",id:\"adminListen\"},{default:d(()=>[c(m,{modelValue:o.value.HttpClientSecureVerify,\"onUpdate:modelValue\":p[1]||(p[1]=C=>o.value.HttpClientSecureVerify=C),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(_,{content:\"\\u9996\\u6B21\\u6267\\u884C\\u4EFB\\u52A1\\u5EF6\\u8FDF\\u65F6\\u95F4,\\u6700\\u5C0F0\\u79D2,\\u6700\\u957F3600\\u79D2\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u9996\\u6B21\\u6267\\u884C\\u4EFB\\u52A1\\u5EF6\\u8FDF(\\u79D2)\",\"label-width\":\"auto\",min:\"0\",max:\"3600\"},{default:d(()=>[c(g,{modelValue:o.value.FirstCheckDelay,\"onUpdate:modelValue\":p[2]||(p[2]=C=>o.value.FirstCheckDelay=C),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),c(_,{content:\"DDNS\\u4EFB\\u52A1\\u6BCF\\u6B21\\u6267\\u884C\\u7684\\u65F6\\u95F4\\u95F4\\u9694,\\u6700\\u5C0F30\\u79D2,\\u6700\\u957F3600\\u79D2\",placement:\"top\"},{default:d(()=>[c(v,{label:\"\\u65F6\\u95F4\\u95F4\\u9694(\\u79D2)\",\"label-width\":\"auto\",min:30,max:3600},{default:d(()=>[c(g,{modelValue:o.value.Intervals,\"onUpdate:modelValue\":p[3]||(p[3]=C=>o.value.Intervals=C),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),_:1},8,[\"model\"]),c(w,{type:\"primary\",round:\"\",onClick:s},{default:d(()=>[A(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1})])]),_:1})])),[[D,t.value]])}}});var hpe=hn(vpe,[[\"__scopeId\",\"data-v-53d1c3c2\"]]);const _pe={class:\"PageRadius\",style:{borderRadius:\"base\"}},mpe={class:\"itemradius\",style:{borderRadius:\"base\"}},gpe=[\"innerHTML\"],bpe={class:\"dialog-footer\"},ype={class:\"dialog-footer\"},wpe=le({__name:\"SSL\",setup(e){var t=L([{Key:\"\",Remark:\"\",Enable:!0,AddTime:\"\",CertsInfo:[{Domains:[\"\"],NotBeforeTime:\"\",NotAfterTime:\"\"}]}]);const n=L(!1),o=L({Remark:\"\",CertBase64:\"\",KeyBase64:\"\"}),l=L(\"\"),u=L(\"\"),a=()=>{var k=\"/\";return k+\"api/getfilebase64\"},r=L(!1),s=L(\"\"),i=L(\"\"),p=L(\"\"),m=k=>{r.value=!0,p.value=k.Key,s.value=k.Remark,i.value=k.CertsInfo[0].Domains[0]},v=(k,P,T)=>{if(k.ret!=0){ne(\"error\",k.msg);return}console.log(\"file:\"+k.file),l.value=k.file,o.value.CertBase64=k.base64},_=k=>k.size/1024/1024>1?(ne(\"error\",\"\\u6587\\u4EF6\\u4E0D\\u80FD\\u5927\\u4E8E1M\"),!1):!0,g=(k,P,T)=>{if(k.ret!=0){ne(\"error\",k.msg);return}console.log(\"file:\"+k.file),u.value=k.file,o.value.KeyBase64=k.base64},y=()=>{n.value=!0,o.value.CertBase64=\"\",o.value.KeyBase64=\"\",l.value=\"\\u9009\\u62E9\\u8981\\u4E0A\\u4F20\\u7684\\u8BC1\\u4E66\\u6587\\u4EF6\",u.value=\"\\u9009\\u62E9\\u8981\\u4E0A\\u4F20\\u7684Key\\u6587\\u4EF6\"},w=(k,P)=>{const T=k==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",H=P.Remark!=\"\"?P.Remark:P.CertsInfo[0].Domains[0],j=\"[\"+H+\"]\";return new Promise((X,W)=>{$t.confirm(\"\\u786E\\u8BA4\\u8981\"+T+\" \\u8BC1\\u4E66 \"+j+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Od(P.Key,\"enable\",!k).then(N=>{if(N.ret==0){X(!0),ne(\"success\",\"\\u8BC1\\u4E66  \"+j+T+\"\\u6210\\u529F\");return}X(!1),ne(\"error\",\"\\u8BC1\\u4E66 \"+j+T+\"\\u5931\\u8D25: \"+N.msg)}).catch(N=>{X(!1),console.log(\"\\u8BC1\\u4E66 \"+j+T+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+N),ne(\"error\",\"\\u8BC1\\u4E66 \"+j+T+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{X(!1)})})},E=()=>{Od(p.value,\"remark\",s.value).then(k=>{if(k.ret==0){r.value=!1,ne(\"success\",\"\\u8BC1\\u4E66  \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u6210\\u529F\"),B();return}ne(\"error\",\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25: \"+k.msg)}).catch(k=>{console.log(\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+k),ne(\"error\",\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})},D=()=>{if(o.value.CertBase64==\"\"){ne(\"error\",\"\\u8BF7\\u9009\\u62E9\\u8981\\u4FDD\\u5B58\\u7684\\u8BC1\\u4E66\\u6587\\u4EF6\");return}if(o.value.KeyBase64==\"\"){ne(\"error\",\"\\u8BF7\\u9009\\u62E9\\u8981\\u4FDD\\u5B58\\u7684Key\\u6587\\u4EF6\");return}qie(o.value).then(k=>{if(k.ret==0){n.value=!1,ne(\"success\",\"\\u6DFB\\u52A0\\u8BC1\\u4E66\\u6210\\u529F\"),B();return}ne(\"error\",k.msg)}).catch(k=>{console.log(\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\\u51FA\\u9519 \"+k),ne(\"error\",\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\\u51FA\\u9519 \"+k)})},C=k=>{const P=k.Remark!=\"\"?k.Remark:k.CertsInfo[0].Domains[0];$t.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664 \"+P+\"  \\u7684\\u8BC1\\u4E66?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Wie(k.Key).then(T=>{if(T.ret==0){ne(\"success\",\"\\u8BC1\\u4E66\\u5220\\u9664\\u6210\\u529F\"),B();return}ne(\"error\",T.msg)}).catch(T=>{console.log(\"\\u8BC1\\u4E66\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+T),ne(\"error\",\"\\u8BC1\\u4E66\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},B=()=>{jie().then(k=>{if(k.ret==0){console.log(k.list),k.list!=null?t.value=k.list:t.value=[];return}ne(\"error\",k.msg)}).catch(k=>{ne(\"error\",\"\\u67E5\\u8BE2\\u8BC1\\u4E66\\u5217\\u8868\\u5217\\u8868\\u51FA\\u9519\")})},$=k=>{k.keyCode==13&&(!n.value||D())};return ot(()=>{B(),window.addEventListener(\"keydown\",$)}),(k,P)=>{const T=vn,H=ya,j=rl,X=pn,W=ba,N=Yt,J=lt(\"Plus\"),be=rt,ve=Vl,Ee=nn,te=Bn,Z=P6,De=Hn,Be=Il;return b(),F(\"div\",_pe,[c(N,{height:\"100%\"},{default:d(()=>[(b(!0),F(Oe,null,it(h(t),x=>(b(),F(\"div\",mpe,[c(W,{column:6,border:\"\"},{default:d(()=>[c(H,{label:\"\\u8BC1\\u4E66\\u5907\\u6CE8\",span:2},{default:d(()=>[fe(c(T,{size:\"small\"},{default:d(()=>[A(re(x.Remark==\"\"?\"\\u672A\\u5907\\u6CE8\":x.Remark),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(H,{label:\"\\u6DFB\\u52A0\\u65F6\\u95F4\",span:2},{default:d(()=>[fe(c(T,{size:\"small\"},{default:d(()=>[A(re(x.AddTime),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(H,{label:\"\\u64CD\\u4F5C\",span:2},{default:d(()=>[c(X,{content:x.Enable==!0?\"\\u8BC1\\u4E66\\u5DF2\\u542F\\u7528\":\"\\u8BC1\\u4E66\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:d(()=>[c(j,{modelValue:x.Enable,\"onUpdate:modelValue\":O=>x.Enable=O,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":w.bind(this,x.Enable,x),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),A(\" \\xA0\\xA0 \"),c(T,{size:\"small\",type:\"primary\",onClick:O=>m(x)},{default:d(()=>[A(\"\\u4FEE\\u6539\\u5907\\u6CE8\")]),_:2},1032,[\"onClick\"]),c(T,{size:\"small\",type:\"danger\",onClick:O=>C(x)},{default:d(()=>[A(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),(b(!0),F(Oe,null,it(x.CertsInfo,O=>(b(),F(\"div\",null,[c(H,{label:\"\\u7ED1\\u5B9A\\u57DF\\u540D\",span:2},{default:d(()=>[c(X,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:d(()=>[f(\"span\",{innerHTML:h(Zo)(O.Domains)},null,8,gpe)]),default:d(()=>[fe(c(T,{size:\"small\",type:\"primary\"},{default:d(()=>[A(re(O.Domains.length==1?O.Domains[0]:O.Domains[0]+\"...\"),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]),_:2},1024),c(H,{label:\"\\u9881\\u53D1\\u65F6\\u95F4\",span:2},{default:d(()=>[fe(c(T,{size:\"small\",type:\"info\"},{default:d(()=>[A(re(O.NotBeforeTime),1)]),_:2},1536),[[ge,!0]])]),_:2},1024),c(H,{label:\"\\u5230\\u671F\\u65F6\\u95F4\",span:2},{default:d(()=>[fe(c(T,{size:\"small\",type:\"warning\"},{default:d(()=>[A(re(O.NotAfterTime),1)]),_:2},1536),[[ge,!0]])]),_:2},1024)]))),256))]),_:2},1024)]))),256))]),_:1}),c(ve,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:d(()=>[c(T,{type:\"primary\",round:!0,onClick:y},{default:d(()=>[A(\"SSL\\u8BC1\\u4E66\\u6DFB\\u52A0 \"),c(be,{class:\"el-icon--right\"},{default:d(()=>[c(J)]),_:1})]),_:1})]),_:1}),n.value?(b(),ae(Be,{key:0,modelValue:n.value,\"onUpdate:modelValue\":P[2]||(P[2]=x=>n.value=x),title:\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:d(()=>[f(\"span\",bpe,[c(T,{onClick:P[1]||(P[1]=x=>n.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(T,{type:\"primary\",onClick:D},{default:d(()=>[A(\"\\u6DFB\\u52A0\")]),_:1})])]),default:d(()=>[c(De,{model:o.value},{default:d(()=>[c(te,{label:\"\\u5907\\u6CE8\",\"label-width\":\"auto\"},{default:d(()=>[c(Ee,{modelValue:o.value.Remark,\"onUpdate:modelValue\":P[0]||(P[0]=x=>o.value.Remark=x),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),c(te,{label:\"\\u8BC1\\u4E66\",\"label-width\":\"auto\"},{default:d(()=>[c(Z,{class:\"inline-block\",multiple:!0,action:a(),\"before-upload\":_,\"show-file-list\":!1,headers:{Authorization:h(Je)()},\"on-success\":v},{default:d(()=>[c(T,{round:\"\",class:\"margin-change\"},{default:d(()=>[A(re(l.value),1)]),_:1})]),_:1},8,[\"action\",\"headers\"])]),_:1}),c(te,{label:\"Key\",\"label-width\":\"auto\"},{default:d(()=>[c(Z,{class:\"inline-block\",multiple:!0,action:a(),\"before-upload\":_,\"show-file-list\":!1,headers:{Authorization:h(Je)()},\"on-success\":g},{default:d(()=>[c(T,{round:\"\",class:\"margin-change\"},{default:d(()=>[A(re(u.value),1)]),_:1})]),_:1},8,[\"action\",\"headers\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])):oe(\"\",!0),r.value?(b(),ae(Be,{key:1,modelValue:r.value,\"onUpdate:modelValue\":P[5]||(P[5]=x=>r.value=x),title:i.value,draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:d(()=>[f(\"span\",ype,[c(T,{onClick:P[4]||(P[4]=x=>r.value=!1)},{default:d(()=>[A(\"\\u53D6\\u6D88\")]),_:1}),c(T,{type:\"primary\",onClick:E},{default:d(()=>[A(\"\\u4FEE\\u6539\")]),_:1})])]),default:d(()=>[c(te,{label:\"\\u5907\\u6CE8\",\"label-width\":\"auto\"},{default:d(()=>[c(Ee,{modelValue:s.value,\"onUpdate:modelValue\":P[3]||(P[3]=x=>s.value=x),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"modelValue\",\"title\"])):oe(\"\",!0)])}}});var Cpe=hn(wpe,[[\"__scopeId\",\"data-v-461444bc\"]]);const Epe={class:\"common-layout\"},Fpe=le({__name:\"App\",setup(e){const t=Xe(\"global\");return L(\"0.0.0\"),ot(()=>{}),(n,o)=>{const l=ene,u=R0e,a=x0e,r=r0e,s=n0e,i=Gce,p=tne,m=Zte;return b(),F(\"div\",Epe,[c(m,null,{default:d(()=>[c(l,{class:\"header\",id:\"header\"},{default:d(()=>[c(fde,{class:\"menu\"})]),_:1}),c(m,null,{default:d(()=>[c(m,{class:\"body\"},{default:d(()=>[c(p,{id:\"pageContent\"},{default:d(()=>[h(t).currentPage.value==\"#log\"?(b(),ae(ode,{key:0})):oe(\"\",!0),h(t).currentPage.value==\"#status\"?(b(),ae(X0e,{key:1})):oe(\"\",!0),h(t).currentPage.value==\"#set\"?(b(),ae(Dde,{key:2})):oe(\"\",!0),h(t).currentPage.value==\"#login\"?(b(),ae(Sde,{key:3})):oe(\"\",!0),h(t).currentPage.value==\"#whitelistset\"?(b(),ae(zde,{key:4})):oe(\"\",!0),h(t).currentPage.value==\"#whitelists\"?(b(),ae(Rde,{key:5})):oe(\"\",!0),h(t).currentPage.value==\"#blacklists\"?(b(),ae(qde,{key:6})):oe(\"\",!0),h(t).currentPage.value==\"#ddnstasklist\"?(b(),ae(Zfe,{key:7})):oe(\"\",!0),h(t).currentPage.value==\"#ddnsset\"?(b(),ae(hpe,{key:8})):oe(\"\",!0),h(t).currentPage.value==\"#reverseproxylist\"?(b(),ae(dpe,{key:9})):oe(\"\",!0),h(t).currentPage.value==\"#ssl\"?(b(),ae(Cpe,{key:10})):oe(\"\",!0),h(t).currentPage.value==\"#about\"?(b(),ae(u,{key:11})):oe(\"\",!0),h(t).currentPage.value==\"#portforward\"?(b(),ae(a,{key:12})):oe(\"\",!0),h(t).currentPage.value==\"#portforwardset\"?(b(),ae(r,{key:13})):oe(\"\",!0),h(t).currentPage.value==\"#wol\"?(b(),ae(s,{key:14})):oe(\"\",!0),h(t).currentPage.value==\"#wolserviceset\"?(b(),ae(i,{key:15})):oe(\"\",!0)]),_:1})]),_:1})]),_:1})]),_:1})])}}});var Ape=hn(Fpe,[[\"__scopeId\",\"data-v-90c7e60e\"]]);const ss=nf(Ape);for(let e in B0)ss.component(e,B0[e]);ss.config.globalProperties.$storage=ca;ep(location.hash)||(location.hash=\"#status\");var np=L(location.hash);ss.provide(\"global\",{currentPage:np,storage:ca});window.onpopstate=function(e){if(np.value=location.hash,gce.value=location.hash,location.hash==\"#logout\"){Vie().then(t=>{}).catch(t=>{}),ca.setItem(\"token\",\"\"),location.hash=\"#login\";return}if(!ep(location.hash)){console.log(\"location.hash[\"+location.hash+\"]no exist\"),location.hash=\"#login\";return}};ss.mount(\"#app\")});export default Dpe();\n"
  },
  {
    "path": "web/adminviews/dist/assets/index.abda1f8d.css",
    "content": "@charset \"UTF-8\";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:\"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:\"*\";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:\"*\";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-input-number{position:relative;display:inline-block;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:\"\";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:\" \";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:\"\";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask-size:100% 100%;-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:\"\";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask-size:100% 100%;-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-select .el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select .el-select__tags .el-tag:last-child{margin-right:0}.el-select .el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select .el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select .el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select .el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:\"\";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration);vertical-align:middle}.el-switch__core .el-switch__inner{position:absolute;top:1px;left:1px;transition:all var(--el-transition-duration);width:16px;height:16px;display:flex;justify-content:center;align-items:center;left:50%;white-space:nowrap}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);transition:opacity var(--el-transition-duration);position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__core .el-switch__action{position:absolute;top:1px;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch__core .el-switch__action .is-icon,.el-switch__core .el-switch__action .is-text{transition:opacity var(--el-transition-duration);position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__core .is-text{font-size:12px}.el-switch__core .is-show{opacity:1}.el-switch__core .is-hide{opacity:0}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:100%;margin-left:-17px;color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{left:50%;white-space:nowrap;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner,.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action,.el-switch--large.is-checked .el-switch__core .el-switch__inner{margin-left:-21px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner,.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action,.el-switch--small.is-checked .el-switch__core .el-switch__inner{margin-left:-13px}.AdminListenDivRadius[data-v-a4c91d4e]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:600px;padding-top:9px;padding-left:9px;padding-right:9px}.SetForm[data-v-a4c91d4e]{margin-top:15px;margin-left:20px}.formradius[data-v-a4c91d4e]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-a4c91d4e]{width:360px}#adminAccount[data-v-a4c91d4e],#adminPassword[data-v-a4c91d4e]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-a4c91d4e],#globalMaxConnections[data-v-a4c91d4e]{width:360px}.inline-block[data-v-a4c91d4e]{display:inline-block;margin-right:10px}.margin-change[data-v-a4c91d4e]{display:inline-block;margin-left:10px}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-affix--fixed{position:fixed}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.itemradius{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 5px;min-width:1200px}.divRadius{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:330px;padding-top:9px;padding-left:9px;padding-right:9px}.divIOTRadius{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:300px;padding-top:9px;padding-left:9px;padding-right:9px}.deviceNamelabelClass{width:55px}.deviceNamecontentClass{width:230px}.deviceOptlabelClass{width:55px}.deviceOptcontentClass{width:320px}.deviceMaclabelClass{width:110px}.deviceMaccontentClass{width:150px}.deviceIOTlabelClass{width:90px}.deviceIOTcontentClass{width:180px}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.AdminListenDivRadius[data-v-412f99dc]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.SetForm[data-v-412f99dc]{margin-top:15px;margin-left:20px}.formradius[data-v-412f99dc]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-412f99dc]{width:360px}#adminAccount[data-v-412f99dc],#adminPassword[data-v-412f99dc]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-412f99dc],#globalMaxConnections[data-v-412f99dc]{width:360px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:3px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-height-extra-small:24px;--el-pagination-line-height-extra-small:var(--el-pagination-height-extra-small);white-space:nowrap;padding:2px 5px;color:var(--el-pagination-text-color);font-weight:400;display:flex;align-items:center}.el-pagination:after,.el-pagination:before{display:table;content:\"\"}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-select .el-input{width:128px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat;background-size:16px;background-color:var(--el-pagination-bg-color);cursor:pointer;margin:0;color:var(--el-pagination-button-color)}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination .btn-next:focus-visible,.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);color:var(--el-pagination-hover-color)}.el-pagination .el-pager li.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:var(--el-font-size-extra-small);line-height:var(--el-pagination-line-height-extra-small);height:var(--el-pagination-height-extra-small);min-width:24px}.el-pagination--small .arrow.is-disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:var(--el-pagination-height-extra-small);line-height:var(--el-pagination-line-height-extra-small);font-size:var(--el-font-size-extra-small)}.el-pagination--small .el-pagination__editor{height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:var(--el-pagination-height-extra-small)}.el-pagination--small .el-input--small,.el-pagination--small .el-input__inner{height:var(--el-pagination-height-extra-small)!important;line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-input__suffix,.el-pagination--small .el-input__suffix .el-input__suffix-inner,.el-pagination--small .el-input__suffix .el-input__suffix-inner i.el-select__caret{line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pagination__sizes{margin:0 16px 0 0;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__sizes+button.btn-prev[type=button]{margin-left:0}.el-pagination__sizes+.el-pager .number:first-child{margin-left:0}.el-pagination__sizes+.el-pager .number:last-child{margin-right:0}.el-pagination__total{margin-right:16px;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total+button.btn-prev[type=button]{margin-left:0}.el-pagination__total+.el-pager .number:first-child{margin-left:0}.el-pagination__total+.el-pager .number:last-child{margin-right:0}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{margin-left:16px;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination__editor{line-height:18px;margin:0 8px;height:var(--el-pagination-button-height);min-width:56px;text-align:center;box-sizing:border-box;border-radius:var(--el-pagination-border-radius)}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:var(--el-pagination-button-height)}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color);color:var(--el-text-color-regular);min-width:32px;border-radius:2px}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .el-pager li.is-disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-next.is-first,.el-pagination.is-background .btn-prev.is-first,.el-pagination.is-background .el-pager li.is-first{margin-left:0}.el-pagination.is-background .btn-next.is-last,.el-pagination.is-background .btn-prev.is-last,.el-pagination.is-background .el-pager li.is-last{margin-right:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next:hover:not([disabled]),.el-pagination.is-background .btn-prev:hover:not([disabled]){color:var(--el-pagination-hover-color)}.el-pagination.is-background .el-pager li:not(.is-disabled):hover{color:var(--el-pagination-hover-color)}.el-pagination.is-background .el-pager li:not(.is-disabled).is-active{background-color:var(--el-color-primary);color:var(--el-color-white);font-weight:700}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{min-width:24px}.el-pagination.is-background .el-pagination__sizes.is-last{margin-left:16px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{padding:0 4px;background:var(--el-pagination-bg-color);display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);box-sizing:border-box;cursor:pointer;text-align:center;margin:0 1px}.el-pager li.btn-quickprev:hover,.el-pager li.btn-quicknext:hover{cursor:pointer}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:32px;color:var(--el-pagination-button-color)}.el-pager li.btn-quicknext.is-disabled,.el-pager li.btn-quickprev.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-pager li.btn-quicknext svg,.el-pager li.btn-quickprev svg{pointer-events:none}.el-pager li.btn-quicknext:focus-visible,.el-pager li.btn-quickprev:focus-visible{outline:1px solid var(--el-pagination-hover-color);color:var(--el-pagination-hover-color)}.el-pager li.is-active+li{border-left:0}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color)}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager+button.btn-next[type=button]{margin-right:0}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:\"\";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:\"\";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:\"\";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.itemradius[data-v-0d71713d]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 5px;min-width:1200px}.portforwardLogs[data-v-0d71713d]{background-color:#000;height:fit-content;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap}.dialogRadius[data-v-0d71713d]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:\"\";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}.InfoDivRadius[data-v-ff97a846]{border:2px solid var(--el-border-color);border-radius:10px;margin:50px auto auto;width:495px;height:fit-content;padding:auto;padding-top:20px;padding-bottom:30px}.line[data-v-ff97a846]{margin-bottom:5px}#status{height:95vh}.status{font-size:15px}#proxys_status{font-size:10px;list-style:none;padding:0;text-align:left;margin:0}.logtermv2{background-color:#000;height:95vh;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.logterm::-webkit-scrollbar{width:5px}.logterm::-webkit-scrollbar-thumb{background-color:silver;border-radius:10%}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu{position:relative}.el-menu--collapse .el-sub-menu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid var(--el-border-color-light);border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height);min-width:200px}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-7px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.menu{background-color:#d9ecff}.flex-grow{flex-grow:1}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.AdminListenDivRadius[data-v-80650a0a]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.SetForm[data-v-80650a0a]{margin-top:15px;margin-left:20px}.formradius[data-v-80650a0a]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-80650a0a]{width:360px}#adminAccount[data-v-80650a0a],#adminPassword[data-v-80650a0a]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-80650a0a],#globalMaxConnections[data-v-80650a0a]{width:360px}.inline-block[data-v-80650a0a]{display:inline-block;margin-right:10px}.margin-change[data-v-80650a0a]{display:inline-block;margin-left:10px}.formradius[data-v-ee7bc046],.formradius[data-v-52b01d33]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:\"\";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:\"\";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:\"\";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.formradius[data-v-d9c87ebe],.formradius[data-v-4c99c1a8]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-9ec9996c]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 5px;min-width:1200px}.fromitemDivRadius[data-v-9ec9996c]{border:5px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:530px;padding-left:9px;padding-right:9px}.fromitemChildDivRadius[data-v-9ec9996c]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:495px;padding-top:9px;padding-left:9px;padding-right:9px}.affix-container[data-v-9ec9996c]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.ReverseProxyPageRadius[data-v-14277c40]{height:90vh;width:100%;max-width:1600px;border:1px solid var(--el-border-color);border-radius:0;margin:20px}.affix-container[data-v-14277c40]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}.fromitemDivRadius[data-v-14277c40]{border:5px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:530px;padding-left:9px;padding-right:9px}.fromitemChildDivRadius[data-v-14277c40]{border:4px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:495px;padding-top:9px;padding-left:9px;padding-right:9px}.fromitemChildSafeDivRadius[data-v-14277c40]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:465px;padding-top:9px;padding-left:9px;padding-right:9px}.formradius[data-v-14277c40]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-14277c40]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 10px;min-width:1350px}.reverseProxyLogs[data-v-14277c40]{background-color:#000;height:fit-content;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap}.SetForm[data-v-53d1c3c2]{margin-top:15px;margin-left:20px}.formradius[data-v-53d1c3c2]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-53d1c3c2]{width:360px}#adminAccount[data-v-53d1c3c2],#adminPassword[data-v-53d1c3c2]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-53d1c3c2],#globalMaxConnections[data-v-53d1c3c2]{width:360px}.formradius[data-v-461444bc]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-461444bc]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 25px;min-width:1350px}.affix-container[data-v-461444bc]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}#pageContent[data-v-90c7e60e]{margin:0;height:95vh;overflow:hidden;padding-left:1px;padding-right:0;width:100%}body[data-v-90c7e60e]{margin:0;width:100%}#header[data-v-90c7e60e]{background-color:#0d8bbb;height:fit-content;width:100%;padding:0}.title[data-v-90c7e60e]{float:left;text-align:left;margin-left:10%;font-size:25px}.menu[data-v-90c7e60e]{float:left;height:30px;width:100vw}.version[data-v-90c7e60e]{float:right}.title[data-v-90c7e60e],.version[data-v-90c7e60e]{width:100%;color:#f0f8ff;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5fae\\8f6f\\96c5\\9ed1,Arial,sans-serif}.common-layout .el-header,.common-layout .el-footer,.common-layout .el-main,.common-layout .el-aside{display:flex;justify-content:center;align-items:center}.common-layout .el-header,.common-layout .el-footer{background-color:var(--el-color-primary-light-7);color:var(--el-text-color-primary);text-align:center}.common-layout .el-aside{background-color:var(--el-color-primary-light-8);color:var(--el-text-color-primary);text-align:center}.common-layout .el-main{background-color:var(--el-color-primary-light-9);color:var(--el-text-color-primary);text-align:center;height:150px}.PageRadius{height:90vh;width:100%;max-width:1600px;border:1px solid var(--el-border-color);border-radius:0;margin:20px}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:\"\";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}\n"
  },
  {
    "path": "web/adminviews/dist/assets/index.e5c8aec2.js",
    "content": "var U6=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ufe=U6((vn,hn)=>{const W6=function(){const t=document.createElement(\"link\").relList;if(t&&t.supports&&t.supports(\"modulepreload\"))return;for(const l of document.querySelectorAll('link[rel=\"modulepreload\"]'))o(l);new MutationObserver(l=>{for(const a of l)if(a.type===\"childList\")for(const r of a.addedNodes)r.tagName===\"LINK\"&&r.rel===\"modulepreload\"&&o(r)}).observe(document,{childList:!0,subtree:!0});function n(l){const a={};return l.integrity&&(a.integrity=l.integrity),l.referrerpolicy&&(a.referrerPolicy=l.referrerpolicy),l.crossorigin===\"use-credentials\"?a.credentials=\"include\":l.crossorigin===\"anonymous\"?a.credentials=\"omit\":a.credentials=\"same-origin\",a}function o(l){if(l.ep)return;l.ep=!0;const a=n(l);fetch(l.href,a)}};W6();function gi(e,t){const n=Object.create(null),o=e.split(\",\");for(let l=0;l<o.length;l++)n[o[l]]=!0;return t?l=>!!n[l.toLowerCase()]:l=>!!n[l]}const q6=\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\",j6=gi(q6);function $d(e){return!!e||e===\"\"}function nt(e){if(Ye(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],l=tt(o)?Y6(o):nt(o);if(l)for(const a in l)t[a]=l[a]}return t}else{if(tt(e))return e;if(ct(e))return e}}const K6=/;(?![^(]*\\))/g,G6=/:(.+)/;function Y6(e){const t={};return e.split(K6).forEach(n=>{if(n){const o=n.split(G6);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function U(e){let t=\"\";if(tt(e))t=e;else if(Ye(e))for(let n=0;n<e.length;n++){const o=U(e[n]);o&&(t+=o+\" \")}else if(ct(e))for(const n in e)e[n]&&(t+=n+\" \");return t.trim()}function X6(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=Wl(e[o],t[o]);return n}function Wl(e,t){if(e===t)return!0;let n=N2(e),o=N2(t);if(n||o)return n&&o?e.getTime()===t.getTime():!1;if(n=Na(e),o=Na(t),n||o)return e===t;if(n=Ye(e),o=Ye(t),n||o)return n&&o?X6(e,t):!1;if(n=ct(e),o=ct(t),n||o){if(!n||!o)return!1;const l=Object.keys(e).length,a=Object.keys(t).length;if(l!==a)return!1;for(const r in e){const u=e.hasOwnProperty(r),s=t.hasOwnProperty(r);if(u&&!s||!u&&s||!Wl(e[r],t[r]))return!1}}return String(e)===String(t)}function Dd(e,t){return e.findIndex(n=>Wl(n,t))}const ce=e=>tt(e)?e:e==null?\"\":Ye(e)||ct(e)&&(e.toString===Sd||!Je(e.toString))?JSON.stringify(e,Bd,2):String(e),Bd=(e,t)=>t&&t.__v_isRef?Bd(e,t.value):Nl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l])=>(n[`${o} =>`]=l,n),{})}:gu(t)?{[`Set(${t.size})`]:[...t.values()]}:ct(t)&&!Ye(t)&&!kd(t)?String(t):t,bt={},Rl=[],vt=()=>{},J6=()=>!1,Q6=/^on[^a-z]/,mu=e=>Q6.test(e),bi=e=>e.startsWith(\"onUpdate:\"),Ht=Object.assign,yi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Z6=Object.prototype.hasOwnProperty,st=(e,t)=>Z6.call(e,t),Ye=Array.isArray,Nl=e=>da(e)===\"[object Map]\",gu=e=>da(e)===\"[object Set]\",N2=e=>da(e)===\"[object Date]\",Je=e=>typeof e==\"function\",tt=e=>typeof e==\"string\",Na=e=>typeof e==\"symbol\",ct=e=>e!==null&&typeof e==\"object\",Zr=e=>ct(e)&&Je(e.then)&&Je(e.catch),Sd=Object.prototype.toString,da=e=>Sd.call(e),Lr=e=>da(e).slice(8,-1),kd=e=>da(e)===\"[object Object]\",wi=e=>tt(e)&&e!==\"NaN\"&&e[0]!==\"-\"&&\"\"+parseInt(e,10)===e,zr=gi(\",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"),bu=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ep=/-(\\w)/g,xn=bu(e=>e.replace(ep,(t,n)=>n?n.toUpperCase():\"\")),tp=/\\B([A-Z])/g,el=bu(e=>e.replace(tp,\"-$1\").toLowerCase()),yu=bu(e=>e.charAt(0).toUpperCase()+e.slice(1)),Tr=bu(e=>e?`on${yu(e)}`:\"\"),Oa=(e,t)=>!Object.is(e,t),Mr=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},eu=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},tu=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let O2;const np=()=>O2||(O2=typeof globalThis!=\"undefined\"?globalThis:typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:{});let fn;class op{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&fn&&(this.parent=fn,this.index=(fn.scopes||(fn.scopes=[])).push(this)-1)}run(t){if(this.active){const n=fn;try{return fn=this,t()}finally{fn=n}}}on(){fn=this}off(){fn=this.parent}stop(t){if(this.active){let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.scopes)for(n=0,o=this.scopes.length;n<o;n++)this.scopes[n].stop(!0);if(this.parent&&!t){const l=this.parent.scopes.pop();l&&l!==this&&(this.parent.scopes[this.index]=l,l.index=this.index)}this.active=!1}}}function lp(e,t=fn){t&&t.active&&t.effects.push(e)}function ap(){return fn}function Pd(e){fn&&fn.cleanups.push(e)}const Ci=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Ld=e=>(e.w&Xo)>0,zd=e=>(e.n&Xo)>0,rp=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Xo},up=e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const l=t[o];Ld(l)&&!zd(l)?l.delete(e):t[n++]=l,l.w&=~Xo,l.n&=~Xo}t.length=n}},Fs=new WeakMap;let Ba=0,Xo=1;const xs=30;let Vn;const ml=Symbol(\"\"),$s=Symbol(\"\");class Ei{constructor(t,n=null,o){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,lp(this,o)}run(){if(!this.active)return this.fn();let t=Vn,n=Yo;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=Vn,Vn=this,Yo=!0,Xo=1<<++Ba,Ba<=xs?rp(this):U2(this),this.fn()}finally{Ba<=xs&&up(this),Xo=1<<--Ba,Vn=this.parent,Yo=n,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Vn===this?this.deferStop=!0:this.active&&(U2(this),this.onStop&&this.onStop(),this.active=!1)}}function U2(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let Yo=!0;const Td=[];function Al(){Td.push(Yo),Yo=!1}function Fl(){const e=Td.pop();Yo=e===void 0?!0:e}function _n(e,t,n){if(Yo&&Vn){let o=Fs.get(e);o||Fs.set(e,o=new Map);let l=o.get(n);l||o.set(n,l=Ci()),Md(l)}}function Md(e,t){let n=!1;Ba<=xs?zd(e)||(e.n|=Xo,n=!Ld(e)):n=!e.has(Vn),n&&(e.add(Vn),Vn.deps.push(e))}function Co(e,t,n,o,l,a){const r=Fs.get(e);if(!r)return;let u=[];if(t===\"clear\")u=[...r.values()];else if(n===\"length\"&&Ye(e))r.forEach((s,i)=>{(i===\"length\"||i>=o)&&u.push(s)});else switch(n!==void 0&&u.push(r.get(n)),t){case\"add\":Ye(e)?wi(n)&&u.push(r.get(\"length\")):(u.push(r.get(ml)),Nl(e)&&u.push(r.get($s)));break;case\"delete\":Ye(e)||(u.push(r.get(ml)),Nl(e)&&u.push(r.get($s)));break;case\"set\":Nl(e)&&u.push(r.get(ml));break}if(u.length===1)u[0]&&Ds(u[0]);else{const s=[];for(const i of u)i&&s.push(...i);Ds(Ci(s))}}function Ds(e,t){const n=Ye(e)?e:[...e];for(const o of n)o.computed&&W2(o);for(const o of n)o.computed||W2(o)}function W2(e,t){(e!==Vn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const sp=gi(\"__proto__,__v_isRef,__isVue\"),Vd=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==\"arguments\"&&e!==\"caller\").map(e=>Symbol[e]).filter(Na)),ip=Ai(),cp=Ai(!1,!0),dp=Ai(!0),q2=fp();function fp(){const e={};return[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach(t=>{e[t]=function(...n){const o=it(this);for(let a=0,r=this.length;a<r;a++)_n(o,\"get\",a+\"\");const l=o[t](...n);return l===-1||l===!1?o[t](...n.map(it)):l}}),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach(t=>{e[t]=function(...n){Al();const o=it(this)[t].apply(this,n);return Fl(),o}}),e}function Ai(e=!1,t=!1){return function(o,l,a){if(l===\"__v_isReactive\")return!e;if(l===\"__v_isReadonly\")return e;if(l===\"__v_isShallow\")return t;if(l===\"__v_raw\"&&a===(e?t?Dp:Od:t?Nd:Rd).get(o))return o;const r=Ye(o);if(!e&&r&&st(q2,l))return Reflect.get(q2,l,a);const u=Reflect.get(o,l,a);return(Na(l)?Vd.has(l):sp(l))||(e||_n(o,\"get\",l),t)?u:gt(u)?r&&wi(l)?u:u.value:ct(u)?e?$i(u):It(u):u}}const pp=Hd(),vp=Hd(!0);function Hd(e=!1){return function(n,o,l,a){let r=n[o];if(ql(r)&&gt(r)&&!gt(l))return!1;if(!e&&(!nu(l)&&!ql(l)&&(r=it(r),l=it(l)),!Ye(n)&&gt(r)&&!gt(l)))return r.value=l,!0;const u=Ye(n)&&wi(o)?Number(o)<n.length:st(n,o),s=Reflect.set(n,o,l,a);return n===it(a)&&(u?Oa(l,r)&&Co(n,\"set\",o,l):Co(n,\"add\",o,l)),s}}function hp(e,t){const n=st(e,t);e[t];const o=Reflect.deleteProperty(e,t);return o&&n&&Co(e,\"delete\",t,void 0),o}function _p(e,t){const n=Reflect.has(e,t);return(!Na(t)||!Vd.has(t))&&_n(e,\"has\",t),n}function mp(e){return _n(e,\"iterate\",Ye(e)?\"length\":ml),Reflect.ownKeys(e)}const Id={get:ip,set:pp,deleteProperty:hp,has:_p,ownKeys:mp},gp={get:dp,set(e,t){return!0},deleteProperty(e,t){return!0}},bp=Ht({},Id,{get:cp,set:vp}),Fi=e=>e,wu=e=>Reflect.getPrototypeOf(e);function mr(e,t,n=!1,o=!1){e=e.__v_raw;const l=it(e),a=it(t);n||(t!==a&&_n(l,\"get\",t),_n(l,\"get\",a));const{has:r}=wu(l),u=o?Fi:n?Bi:Ua;if(r.call(l,t))return u(e.get(t));if(r.call(l,a))return u(e.get(a));e!==l&&e.get(t)}function gr(e,t=!1){const n=this.__v_raw,o=it(n),l=it(e);return t||(e!==l&&_n(o,\"has\",e),_n(o,\"has\",l)),e===l?n.has(e):n.has(e)||n.has(l)}function br(e,t=!1){return e=e.__v_raw,!t&&_n(it(e),\"iterate\",ml),Reflect.get(e,\"size\",e)}function j2(e){e=it(e);const t=it(this);return wu(t).has.call(t,e)||(t.add(e),Co(t,\"add\",e,e)),this}function K2(e,t){t=it(t);const n=it(this),{has:o,get:l}=wu(n);let a=o.call(n,e);a||(e=it(e),a=o.call(n,e));const r=l.call(n,e);return n.set(e,t),a?Oa(t,r)&&Co(n,\"set\",e,t):Co(n,\"add\",e,t),this}function G2(e){const t=it(this),{has:n,get:o}=wu(t);let l=n.call(t,e);l||(e=it(e),l=n.call(t,e)),o&&o.call(t,e);const a=t.delete(e);return l&&Co(t,\"delete\",e,void 0),a}function Y2(){const e=it(this),t=e.size!==0,n=e.clear();return t&&Co(e,\"clear\",void 0,void 0),n}function yr(e,t){return function(o,l){const a=this,r=a.__v_raw,u=it(r),s=t?Fi:e?Bi:Ua;return!e&&_n(u,\"iterate\",ml),r.forEach((i,c)=>o.call(l,s(i),s(c),a))}}function wr(e,t,n){return function(...o){const l=this.__v_raw,a=it(l),r=Nl(a),u=e===\"entries\"||e===Symbol.iterator&&r,s=e===\"keys\"&&r,i=l[e](...o),c=n?Fi:t?Bi:Ua;return!t&&_n(a,\"iterate\",s?$s:ml),{next(){const{value:m,done:h}=i.next();return h?{value:m,done:h}:{value:u?[c(m[0]),c(m[1])]:c(m),done:h}},[Symbol.iterator](){return this}}}}function Mo(e){return function(...t){return e===\"delete\"?!1:this}}function yp(){const e={get(a){return mr(this,a)},get size(){return br(this)},has:gr,add:j2,set:K2,delete:G2,clear:Y2,forEach:yr(!1,!1)},t={get(a){return mr(this,a,!1,!0)},get size(){return br(this)},has:gr,add:j2,set:K2,delete:G2,clear:Y2,forEach:yr(!1,!0)},n={get(a){return mr(this,a,!0)},get size(){return br(this,!0)},has(a){return gr.call(this,a,!0)},add:Mo(\"add\"),set:Mo(\"set\"),delete:Mo(\"delete\"),clear:Mo(\"clear\"),forEach:yr(!0,!1)},o={get(a){return mr(this,a,!0,!0)},get size(){return br(this,!0)},has(a){return gr.call(this,a,!0)},add:Mo(\"add\"),set:Mo(\"set\"),delete:Mo(\"delete\"),clear:Mo(\"clear\"),forEach:yr(!0,!0)};return[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach(a=>{e[a]=wr(a,!1,!1),n[a]=wr(a,!0,!1),t[a]=wr(a,!1,!0),o[a]=wr(a,!0,!0)}),[e,n,t,o]}const[wp,Cp,Ep,Ap]=yp();function xi(e,t){const n=t?e?Ap:Ep:e?Cp:wp;return(o,l,a)=>l===\"__v_isReactive\"?!e:l===\"__v_isReadonly\"?e:l===\"__v_raw\"?o:Reflect.get(st(n,l)&&l in o?n:o,l,a)}const Fp={get:xi(!1,!1)},xp={get:xi(!1,!0)},$p={get:xi(!0,!1)},Rd=new WeakMap,Nd=new WeakMap,Od=new WeakMap,Dp=new WeakMap;function Bp(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}function Sp(e){return e.__v_skip||!Object.isExtensible(e)?0:Bp(Lr(e))}function It(e){return ql(e)?e:Di(e,!1,Id,Fp,Rd)}function Ud(e){return Di(e,!1,bp,xp,Nd)}function $i(e){return Di(e,!0,gp,$p,Od)}function Di(e,t,n,o,l){if(!ct(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=l.get(e);if(a)return a;const r=Sp(e);if(r===0)return e;const u=new Proxy(e,r===2?o:n);return l.set(e,u),u}function Ol(e){return ql(e)?Ol(e.__v_raw):!!(e&&e.__v_isReactive)}function ql(e){return!!(e&&e.__v_isReadonly)}function nu(e){return!!(e&&e.__v_isShallow)}function Wd(e){return Ol(e)||ql(e)}function it(e){const t=e&&e.__v_raw;return t?it(t):e}function qd(e){return eu(e,\"__v_skip\",!0),e}const Ua=e=>ct(e)?It(e):e,Bi=e=>ct(e)?$i(e):e;function jd(e){Yo&&Vn&&(e=it(e),Md(e.dep||(e.dep=Ci())))}function Si(e,t){e=it(e),e.dep&&Ds(e.dep)}function gt(e){return!!(e&&e.__v_isRef===!0)}function z(e){return Kd(e,!1)}function In(e){return Kd(e,!0)}function Kd(e,t){return gt(e)?e:new kp(e,t)}class kp{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:it(t),this._value=n?t:Ua(t)}get value(){return jd(this),this._value}set value(t){const n=this.__v_isShallow||nu(t)||ql(t);t=n?t:it(t),Oa(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Ua(t),Si(this))}}function Ca(e){Si(e)}function _(e){return gt(e)?e.value:e}const Pp={get:(e,t,n)=>_(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return gt(l)&&!gt(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function Gd(e){return Ol(e)?e:new Proxy(e,Pp)}function On(e){const t=Ye(e)?new Array(e.length):{};for(const n in e)t[n]=$n(e,n);return t}class Lp{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function $n(e,t,n){const o=e[t];return gt(o)?o:new Lp(e,t,n)}var Yd;class zp{constructor(t,n,o,l){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Yd]=!1,this._dirty=!0,this.effect=new Ei(t,()=>{this._dirty||(this._dirty=!0,Si(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=o}get value(){const t=it(this);return jd(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Yd=\"__v_isReadonly\";function Xd(e,t,n=!1){let o,l;const a=Je(e);return a?(o=e,l=vt):(o=e.get,l=e.set),new zp(o,l,a||!l,n)}const ka=[];function Tp(e,...t){Al();const n=ka.length?ka[ka.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=Mp();if(o)bo(o,n,11,[e+t.join(\"\"),n&&n.proxy,l.map(({vnode:a})=>`at <${F1(n,a.type)}>`).join(`\n`),l]);else{const a=[`[Vue warn]: ${e}`,...t];l.length&&a.push(`\n`,...Vp(l)),console.warn(...a)}Fl()}function Mp(){let e=ka[ka.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function Vp(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[`\n`],...Hp(n))}),t}function Hp({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:\"\",o=e.component?e.component.parent==null:!1,l=` at <${F1(e.component,e.type,o)}`,a=\">\"+n;return e.props?[l,...Ip(e.props),a]:[l+a]}function Ip(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...Jd(o,e[o]))}),n.length>3&&t.push(\" ...\"),t}function Jd(e,t,n){return tt(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t==\"number\"||typeof t==\"boolean\"||t==null?n?t:[`${e}=${t}`]:gt(t)?(t=Jd(e,it(t.value),!0),n?t:[`${e}=Ref<`,t,\">\"]):Je(t)?[`${e}=fn${t.name?`<${t.name}>`:\"\"}`]:(t=it(t),n?t:[`${e}=`,t])}function bo(e,t,n,o){let l;try{l=o?e(...o):e()}catch(a){Cu(a,t,n)}return l}function En(e,t,n,o){if(Je(e)){const a=bo(e,t,n,o);return a&&Zr(a)&&a.catch(r=>{Cu(r,t,n)}),a}const l=[];for(let a=0;a<e.length;a++)l.push(En(e[a],t,n,o));return l}function Cu(e,t,n,o=!0){const l=t?t.vnode:null;if(t){let a=t.parent;const r=t.proxy,u=n;for(;a;){const i=a.ec;if(i){for(let c=0;c<i.length;c++)if(i[c](e,r,u)===!1)return}a=a.parent}const s=t.appContext.config.errorHandler;if(s){bo(s,null,10,[e,r,u]);return}}Rp(e,n,l,o)}function Rp(e,t,n,o=!0){console.error(e)}let Wa=!1,Bs=!1;const qt=[];let Qn=0;const Ul=[];let ho=null,sl=0;const Qd=Promise.resolve();let ki=null;function rt(e){const t=ki||Qd;return e?t.then(this?e.bind(this):e):t}function Np(e){let t=Qn+1,n=qt.length;for(;t<n;){const o=t+n>>>1;qa(qt[o])<e?t=o+1:n=o}return t}function Pi(e){(!qt.length||!qt.includes(e,Wa&&e.allowRecurse?Qn+1:Qn))&&(e.id==null?qt.push(e):qt.splice(Np(e.id),0,e),Zd())}function Zd(){!Wa&&!Bs&&(Bs=!0,ki=Qd.then(t1))}function Op(e){const t=qt.indexOf(e);t>Qn&&qt.splice(t,1)}function Up(e){Ye(e)?Ul.push(...e):(!ho||!ho.includes(e,e.allowRecurse?sl+1:sl))&&Ul.push(e),Zd()}function X2(e,t=Wa?Qn+1:0){for(;t<qt.length;t++){const n=qt[t];n&&n.pre&&(qt.splice(t,1),t--,n())}}function e1(e){if(Ul.length){const t=[...new Set(Ul)];if(Ul.length=0,ho){ho.push(...t);return}for(ho=t,ho.sort((n,o)=>qa(n)-qa(o)),sl=0;sl<ho.length;sl++)ho[sl]();ho=null,sl=0}}const qa=e=>e.id==null?1/0:e.id,Wp=(e,t)=>{const n=qa(e)-qa(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function t1(e){Bs=!1,Wa=!0,qt.sort(Wp);const t=vt;try{for(Qn=0;Qn<qt.length;Qn++){const n=qt[Qn];n&&n.active!==!1&&bo(n,null,14)}}finally{Qn=0,qt.length=0,e1(),Wa=!1,ki=null,(qt.length||Ul.length)&&t1()}}function qp(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||bt;let l=n;const a=t.startsWith(\"update:\"),r=a&&t.slice(7);if(r&&r in o){const c=`${r===\"modelValue\"?\"model\":r}Modifiers`,{number:m,trim:h}=o[c]||bt;h&&(l=n.map(v=>v.trim())),m&&(l=n.map(tu))}let u,s=o[u=Tr(t)]||o[u=Tr(xn(t))];!s&&a&&(s=o[u=Tr(el(t))]),s&&En(s,e,6,l);const i=o[u+\"Once\"];if(i){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,En(i,e,6,l)}}function n1(e,t,n=!1){const o=t.emitsCache,l=o.get(e);if(l!==void 0)return l;const a=e.emits;let r={},u=!1;if(!Je(e)){const s=i=>{const c=n1(i,t,!0);c&&(u=!0,Ht(r,c))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!a&&!u?(ct(e)&&o.set(e,null),null):(Ye(a)?a.forEach(s=>r[s]=null):Ht(r,a),ct(e)&&o.set(e,r),r)}function Eu(e,t){return!e||!mu(t)?!1:(t=t.slice(2).replace(/Once$/,\"\"),st(e,t[0].toLowerCase()+t.slice(1))||st(e,el(t))||st(e,t))}let jt=null,Au=null;function ou(e){const t=jt;return jt=e,Au=e&&e.type.__scopeId||null,t}function ar(e){Au=e}function rr(){Au=null}function p(e,t=jt,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&sc(-1);const a=ou(t),r=e(...l);return ou(a),o._d&&sc(1),r};return o._n=!0,o._c=!0,o._d=!0,o}function es(e){const{type:t,vnode:n,proxy:o,withProxy:l,props:a,propsOptions:[r],slots:u,attrs:s,emit:i,render:c,renderCache:m,data:h,setupState:v,ctx:g,inheritAttrs:y}=e;let A,w;const F=ou(e);try{if(n.shapeFlag&4){const $=l||o;A=Jn(c.call($,$,m,a,v,h,g)),w=s}else{const $=t;A=Jn($.length>1?$(a,{attrs:s,slots:u,emit:i}):$(a,null)),w=t.props?s:jp(s)}}catch($){za.length=0,Cu($,e,1),A=d(on)}let E=A;if(w&&y!==!1){const $=Object.keys(w),{shapeFlag:T}=E;$.length&&T&7&&(r&&$.some(bi)&&(w=Kp(w,r)),E=Eo(E,w))}return n.dirs&&(E=Eo(E),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&(E.transition=n.transition),A=E,ou(F),A}const jp=e=>{let t;for(const n in e)(n===\"class\"||n===\"style\"||mu(n))&&((t||(t={}))[n]=e[n]);return t},Kp=(e,t)=>{const n={};for(const o in e)(!bi(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Gp(e,t,n){const{props:o,children:l,component:a}=e,{props:r,children:u,patchFlag:s}=t,i=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return o?J2(o,r,i):!!r;if(s&8){const c=t.dynamicProps;for(let m=0;m<c.length;m++){const h=c[m];if(r[h]!==o[h]&&!Eu(i,h))return!0}}}else return(l||u)&&(!u||!u.$stable)?!0:o===r?!1:o?r?J2(o,r,i):!0:!!r;return!1}function J2(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let l=0;l<o.length;l++){const a=o[l];if(t[a]!==e[a]&&!Eu(n,a))return!0}return!1}function Yp({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const Xp=e=>e.__isSuspense;function Jp(e,t){t&&t.pendingBranch?Ye(e)?t.effects.push(...e):t.effects.push(e):Up(e)}function $t(e,t){if(Vt){let n=Vt.provides;const o=Vt.parent&&Vt.parent.provides;o===n&&(n=Vt.provides=Object.create(o)),n[e]=t}}function Ze(e,t,n=!1){const o=Vt||jt;if(o){const l=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(l&&e in l)return l[e];if(arguments.length>1)return n&&Je(t)?t.call(o.proxy):t}}function yo(e,t){return Li(e,null,t)}const Q2={};function Ve(e,t,n){return Li(e,t,n)}function Li(e,t,{immediate:n,deep:o,flush:l,onTrack:a,onTrigger:r}=bt){const u=Vt;let s,i=!1,c=!1;if(gt(e)?(s=()=>e.value,i=nu(e)):Ol(e)?(s=()=>e,o=!0):Ye(e)?(c=!0,i=e.some(w=>Ol(w)||nu(w)),s=()=>e.map(w=>{if(gt(w))return w.value;if(Ol(w))return fl(w);if(Je(w))return bo(w,u,2)})):Je(e)?t?s=()=>bo(e,u,2):s=()=>{if(!(u&&u.isUnmounted))return m&&m(),En(e,u,3,[h])}:s=vt,t&&o){const w=s;s=()=>fl(w())}let m,h=w=>{m=A.onStop=()=>{bo(w,u,4)}};if(Ya)return h=vt,t?n&&En(t,u,3,[s(),c?[]:void 0,h]):s(),vt;let v=c?[]:Q2;const g=()=>{if(!!A.active)if(t){const w=A.run();(o||i||(c?w.some((F,E)=>Oa(F,v[E])):Oa(w,v)))&&(m&&m(),En(t,u,3,[w,v===Q2?void 0:v,h]),v=w)}else A.run()};g.allowRecurse=!!t;let y;l===\"sync\"?y=g:l===\"post\"?y=()=>nn(g,u&&u.suspense):(g.pre=!0,u&&(g.id=u.uid),y=()=>Pi(g));const A=new Ei(s,y);return t?n?g():v=A.run():l===\"post\"?nn(A.run.bind(A),u&&u.suspense):A.run(),()=>{A.stop(),u&&u.scope&&yi(u.scope.effects,A)}}function Qp(e,t,n){const o=this.proxy,l=tt(e)?e.includes(\".\")?o1(o,e):()=>o[e]:e.bind(o,o);let a;Je(t)?a=t:(a=t.handler,n=t);const r=Vt;Kl(this);const u=Li(l,a.bind(o),n);return r?Kl(r):gl(),u}function o1(e,t){const n=t.split(\".\");return()=>{let o=e;for(let l=0;l<n.length&&o;l++)o=o[n[l]];return o}}function fl(e,t){if(!ct(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),gt(e))fl(e.value,t);else if(Ye(e))for(let n=0;n<e.length;n++)fl(e[n],t);else if(gu(e)||Nl(e))e.forEach(n=>{fl(n,t)});else if(kd(e))for(const n in e)fl(e[n],t);return e}function l1(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return at(()=>{e.isMounted=!0}),Rt(()=>{e.isUnmounting=!0}),e}const Cn=[Function,Array],Zp={name:\"BaseTransition\",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Cn,onEnter:Cn,onAfterEnter:Cn,onEnterCancelled:Cn,onBeforeLeave:Cn,onLeave:Cn,onAfterLeave:Cn,onLeaveCancelled:Cn,onBeforeAppear:Cn,onAppear:Cn,onAfterAppear:Cn,onAppearCancelled:Cn},setup(e,{slots:t}){const n=ft(),o=l1();let l;return()=>{const a=t.default&&zi(t.default(),!0);if(!a||!a.length)return;let r=a[0];if(a.length>1){for(const y of a)if(y.type!==on){r=y;break}}const u=it(e),{mode:s}=u;if(o.isLeaving)return ts(r);const i=Z2(r);if(!i)return ts(r);const c=ja(i,u,o,n);Ka(i,c);const m=n.subTree,h=m&&Z2(m);let v=!1;const{getTransitionKey:g}=i.type;if(g){const y=g();l===void 0?l=y:y!==l&&(l=y,v=!0)}if(h&&h.type!==on&&(!il(i,h)||v)){const y=ja(h,u,o,n);if(Ka(h,y),s===\"out-in\")return o.isLeaving=!0,y.afterLeave=()=>{o.isLeaving=!1,n.update()},ts(r);s===\"in-out\"&&i.type!==on&&(y.delayLeave=(A,w,F)=>{const E=r1(o,h);E[String(h.key)]=h,A._leaveCb=()=>{w(),A._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=F})}return r}}},a1=Zp;function r1(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function ja(e,t,n,o){const{appear:l,mode:a,persisted:r=!1,onBeforeEnter:u,onEnter:s,onAfterEnter:i,onEnterCancelled:c,onBeforeLeave:m,onLeave:h,onAfterLeave:v,onLeaveCancelled:g,onBeforeAppear:y,onAppear:A,onAfterAppear:w,onAppearCancelled:F}=t,E=String(e.key),$=r1(n,e),T=(H,I)=>{H&&En(H,o,9,I)},B=(H,I)=>{const j=I[1];T(H,I),Ye(H)?H.every(Z=>Z.length<=1)&&j():H.length<=1&&j()},P={mode:a,persisted:r,beforeEnter(H){let I=u;if(!n.isMounted)if(l)I=y||u;else return;H._leaveCb&&H._leaveCb(!0);const j=$[E];j&&il(e,j)&&j.el._leaveCb&&j.el._leaveCb(),T(I,[H])},enter(H){let I=s,j=i,Z=c;if(!n.isMounted)if(l)I=A||s,j=w||i,Z=F||c;else return;let G=!1;const N=H._enterCb=Y=>{G||(G=!0,Y?T(Z,[H]):T(j,[H]),P.delayedLeave&&P.delayedLeave(),H._enterCb=void 0)};I?B(I,[H,N]):N()},leave(H,I){const j=String(e.key);if(H._enterCb&&H._enterCb(!0),n.isUnmounting)return I();T(m,[H]);let Z=!1;const G=H._leaveCb=N=>{Z||(Z=!0,I(),N?T(g,[H]):T(v,[H]),H._leaveCb=void 0,$[j]===e&&delete $[j])};$[j]=e,h?B(h,[H,G]):G()},clone(H){return ja(H,t,n,o)}};return P}function ts(e){if(Fu(e))return e=Eo(e),e.children=null,e}function Z2(e){return Fu(e)?e.children?e.children[0]:void 0:e}function Ka(e,t){e.shapeFlag&6&&e.component?Ka(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zi(e,t=!1,n){let o=[],l=0;for(let a=0;a<e.length;a++){let r=e[a];const u=n==null?r.key:String(n)+String(r.key!=null?r.key:a);r.type===We?(r.patchFlag&128&&l++,o=o.concat(zi(r.children,t,u))):(t||r.type!==on)&&o.push(u!=null?Eo(r,{key:u}):r)}if(l>1)for(let a=0;a<o.length;a++)o[a].patchFlag=-2;return o}function Le(e){return Je(e)?{setup:e,name:e.name}:e}const Pa=e=>!!e.type.__asyncLoader,Fu=e=>e.type.__isKeepAlive;function e3(e,t){s1(e,\"a\",t)}function u1(e,t){s1(e,\"da\",t)}function s1(e,t,n=Vt){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(xu(t,o,n),n){let l=n.parent;for(;l&&l.parent;)Fu(l.parent.vnode)&&t3(o,t,n,l),l=l.parent}}function t3(e,t,n,o){const l=xu(t,e,o,!0);Bo(()=>{yi(o[t],l)},n)}function xu(e,t,n=Vt,o=!1){if(n){const l=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;Al(),Kl(n);const u=En(t,n,e,r);return gl(),Fl(),u});return o?l.unshift(a):l.push(a),a}}const Do=e=>(t,n=Vt)=>(!Ya||e===\"sp\")&&xu(e,(...o)=>t(...o),n),$u=Do(\"bm\"),at=Do(\"m\"),n3=Do(\"bu\"),xl=Do(\"u\"),Rt=Do(\"bum\"),Bo=Do(\"um\"),o3=Do(\"sp\"),l3=Do(\"rtg\"),a3=Do(\"rtc\");function r3(e,t=Vt){xu(\"ec\",e,t)}function ye(e,t){const n=jt;if(n===null)return e;const o=Bu(n)||n.proxy,l=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[r,u,s,i=bt]=t[a];Je(r)&&(r={mounted:r,updated:r}),r.deep&&fl(u),l.push({dir:r,instance:o,value:u,oldValue:void 0,arg:s,modifiers:i})}return e}function nl(e,t,n,o){const l=e.dirs,a=t&&t.dirs;for(let r=0;r<l.length;r++){const u=l[r];a&&(u.oldValue=a[r].value);let s=u.dir[o];s&&(Al(),En(s,n,8,[e.el,u,e,t]),Fl())}}const Ti=\"components\",u3=\"directives\";function Qe(e,t){return Vi(Ti,e,!0,t)||e}const i1=Symbol();function yt(e){return tt(e)?Vi(Ti,e,!1)||e:e||i1}function Mi(e){return Vi(u3,e)}function Vi(e,t,n=!0,o=!1){const l=jt||Vt;if(l){const a=l.type;if(e===Ti){const u=A1(a,!1);if(u&&(u===t||u===xn(t)||u===yu(xn(t))))return a}const r=ec(l[e]||a[e],t)||ec(l.appContext[e],t);return!r&&o?a:r}}function ec(e,t){return e&&(e[t]||e[xn(t)]||e[yu(xn(t))])}function pt(e,t,n,o){let l;const a=n&&n[o];if(Ye(e)||tt(e)){l=new Array(e.length);for(let r=0,u=e.length;r<u;r++)l[r]=t(e[r],r,void 0,a&&a[r])}else if(typeof e==\"number\"){l=new Array(e);for(let r=0;r<e;r++)l[r]=t(r+1,r,void 0,a&&a[r])}else if(ct(e))if(e[Symbol.iterator])l=Array.from(e,(r,u)=>t(r,u,void 0,a&&a[u]));else{const r=Object.keys(e);l=new Array(r.length);for(let u=0,s=r.length;u<s;u++){const i=r[u];l[u]=t(e[i],i,u,a&&a[u])}}else l=[];return n&&(n[o]=l),l}function jl(e,t){for(let n=0;n<t.length;n++){const o=t[n];if(Ye(o))for(let l=0;l<o.length;l++)e[o[l].name]=o[l].fn;else o&&(e[o.name]=o.key?(...l)=>{const a=o.fn(...l);return a&&(a.key=o.key),a}:o.fn)}return e}function Te(e,t,n={},o,l){if(jt.isCE||jt.parent&&Pa(jt.parent)&&jt.parent.isCE)return d(\"slot\",t===\"default\"?null:{name:t},o&&o());let a=e[t];a&&a._c&&(a._d=!1),b();const r=a&&c1(a(n)),u=ae(We,{key:n.key||r&&r.key||`_${t}`},r||(o?o():[]),r&&e._===1?64:-2);return!l&&u.scopeId&&(u.slotScopeIds=[u.scopeId+\"-s\"]),a&&a._c&&(a._d=!0),u}function c1(e){return e.some(t=>mn(t)?!(t.type===on||t.type===We&&!c1(t.children)):!0)?e:null}function s3(e,t){const n={};for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:Tr(o)]=e[o];return n}const Ss=e=>e?w1(e)?Bu(e)||e.proxy:Ss(e.parent):null,lu=Ht(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ss(e.parent),$root:e=>Ss(e.root),$emit:e=>e.emit,$options:e=>Hi(e),$forceUpdate:e=>e.f||(e.f=()=>Pi(e.update)),$nextTick:e=>e.n||(e.n=rt.bind(e.proxy)),$watch:e=>Qp.bind(e)}),i3={get({_:e},t){const{ctx:n,setupState:o,data:l,props:a,accessCache:r,type:u,appContext:s}=e;let i;if(t[0]!==\"$\"){const v=r[t];if(v!==void 0)switch(v){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(o!==bt&&st(o,t))return r[t]=1,o[t];if(l!==bt&&st(l,t))return r[t]=2,l[t];if((i=e.propsOptions[0])&&st(i,t))return r[t]=3,a[t];if(n!==bt&&st(n,t))return r[t]=4,n[t];ks&&(r[t]=0)}}const c=lu[t];let m,h;if(c)return t===\"$attrs\"&&_n(e,\"get\",t),c(e);if((m=u.__cssModules)&&(m=m[t]))return m;if(n!==bt&&st(n,t))return r[t]=4,n[t];if(h=s.config.globalProperties,st(h,t))return h[t]},set({_:e},t,n){const{data:o,setupState:l,ctx:a}=e;return l!==bt&&st(l,t)?(l[t]=n,!0):o!==bt&&st(o,t)?(o[t]=n,!0):st(e.props,t)||t[0]===\"$\"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:l,propsOptions:a}},r){let u;return!!n[r]||e!==bt&&st(e,r)||t!==bt&&st(t,r)||(u=a[0])&&st(u,r)||st(o,r)||st(lu,r)||st(l.config.globalProperties,r)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:st(n,\"value\")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let ks=!0;function c3(e){const t=Hi(e),n=e.proxy,o=e.ctx;ks=!1,t.beforeCreate&&tc(t.beforeCreate,e,\"bc\");const{data:l,computed:a,methods:r,watch:u,provide:s,inject:i,created:c,beforeMount:m,mounted:h,beforeUpdate:v,updated:g,activated:y,deactivated:A,beforeDestroy:w,beforeUnmount:F,destroyed:E,unmounted:$,render:T,renderTracked:B,renderTriggered:P,errorCaptured:H,serverPrefetch:I,expose:j,inheritAttrs:Z,components:G,directives:N,filters:Y}=t;if(i&&d3(i,o,null,e.appContext.config.unwrapInjectedRef),r)for(const Ee in r){const ne=r[Ee];Je(ne)&&(o[Ee]=ne.bind(n))}if(l){const Ee=l.call(n,n);ct(Ee)&&(e.data=It(Ee))}if(ks=!0,a)for(const Ee in a){const ne=a[Ee],ee=Je(ne)?ne.bind(n,n):Je(ne.get)?ne.get.bind(n,n):vt,xe=!Je(ne)&&Je(ne.set)?ne.set.bind(n):vt,$e=R({get:ee,set:xe});Object.defineProperty(o,Ee,{enumerable:!0,configurable:!0,get:()=>$e.value,set:x=>$e.value=x})}if(u)for(const Ee in u)d1(u[Ee],o,n,Ee);if(s){const Ee=Je(s)?s.call(n):s;Reflect.ownKeys(Ee).forEach(ne=>{$t(ne,Ee[ne])})}c&&tc(c,e,\"c\");function fe(Ee,ne){Ye(ne)?ne.forEach(ee=>Ee(ee.bind(n))):ne&&Ee(ne.bind(n))}if(fe($u,m),fe(at,h),fe(n3,v),fe(xl,g),fe(e3,y),fe(u1,A),fe(r3,H),fe(a3,B),fe(l3,P),fe(Rt,F),fe(Bo,$),fe(o3,I),Ye(j))if(j.length){const Ee=e.exposed||(e.exposed={});j.forEach(ne=>{Object.defineProperty(Ee,ne,{get:()=>n[ne],set:ee=>n[ne]=ee})})}else e.exposed||(e.exposed={});T&&e.render===vt&&(e.render=T),Z!=null&&(e.inheritAttrs=Z),G&&(e.components=G),N&&(e.directives=N)}function d3(e,t,n=vt,o=!1){Ye(e)&&(e=Ps(e));for(const l in e){const a=e[l];let r;ct(a)?\"default\"in a?r=Ze(a.from||l,a.default,!0):r=Ze(a.from||l):r=Ze(a),gt(r)&&o?Object.defineProperty(t,l,{enumerable:!0,configurable:!0,get:()=>r.value,set:u=>r.value=u}):t[l]=r}}function tc(e,t,n){En(Ye(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function d1(e,t,n,o){const l=o.includes(\".\")?o1(n,o):()=>n[o];if(tt(e)){const a=t[e];Je(a)&&Ve(l,a)}else if(Je(e))Ve(l,e.bind(n));else if(ct(e))if(Ye(e))e.forEach(a=>d1(a,t,n,o));else{const a=Je(e.handler)?e.handler.bind(n):t[e.handler];Je(a)&&Ve(l,a,e)}}function Hi(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:a,config:{optionMergeStrategies:r}}=e.appContext,u=a.get(t);let s;return u?s=u:!l.length&&!n&&!o?s=t:(s={},l.length&&l.forEach(i=>au(s,i,r,!0)),au(s,t,r)),ct(t)&&a.set(t,s),s}function au(e,t,n,o=!1){const{mixins:l,extends:a}=t;a&&au(e,a,n,!0),l&&l.forEach(r=>au(e,r,n,!0));for(const r in t)if(!(o&&r===\"expose\")){const u=f3[r]||n&&n[r];e[r]=u?u(e[r],t[r]):t[r]}return e}const f3={data:nc,props:rl,emits:rl,methods:rl,computed:rl,beforeCreate:Xt,created:Xt,beforeMount:Xt,mounted:Xt,beforeUpdate:Xt,updated:Xt,beforeDestroy:Xt,beforeUnmount:Xt,destroyed:Xt,unmounted:Xt,activated:Xt,deactivated:Xt,errorCaptured:Xt,serverPrefetch:Xt,components:rl,directives:rl,watch:v3,provide:nc,inject:p3};function nc(e,t){return t?e?function(){return Ht(Je(e)?e.call(this,this):e,Je(t)?t.call(this,this):t)}:t:e}function p3(e,t){return rl(Ps(e),Ps(t))}function Ps(e){if(Ye(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Xt(e,t){return e?[...new Set([].concat(e,t))]:t}function rl(e,t){return e?Ht(Ht(Object.create(null),e),t):t}function v3(e,t){if(!e)return t;if(!t)return e;const n=Ht(Object.create(null),e);for(const o in t)n[o]=Xt(e[o],t[o]);return n}function h3(e,t,n,o=!1){const l={},a={};eu(a,Du,1),e.propsDefaults=Object.create(null),f1(e,t,l,a);for(const r in e.propsOptions[0])r in l||(l[r]=void 0);n?e.props=o?l:Ud(l):e.type.props?e.props=l:e.props=a,e.attrs=a}function _3(e,t,n,o){const{props:l,attrs:a,vnode:{patchFlag:r}}=e,u=it(l),[s]=e.propsOptions;let i=!1;if((o||r>0)&&!(r&16)){if(r&8){const c=e.vnode.dynamicProps;for(let m=0;m<c.length;m++){let h=c[m];if(Eu(e.emitsOptions,h))continue;const v=t[h];if(s)if(st(a,h))v!==a[h]&&(a[h]=v,i=!0);else{const g=xn(h);l[g]=Ls(s,u,g,v,e,!1)}else v!==a[h]&&(a[h]=v,i=!0)}}}else{f1(e,t,l,a)&&(i=!0);let c;for(const m in u)(!t||!st(t,m)&&((c=el(m))===m||!st(t,c)))&&(s?n&&(n[m]!==void 0||n[c]!==void 0)&&(l[m]=Ls(s,u,m,void 0,e,!0)):delete l[m]);if(a!==u)for(const m in a)(!t||!st(t,m)&&!0)&&(delete a[m],i=!0)}i&&Co(e,\"set\",\"$attrs\")}function f1(e,t,n,o){const[l,a]=e.propsOptions;let r=!1,u;if(t)for(let s in t){if(zr(s))continue;const i=t[s];let c;l&&st(l,c=xn(s))?!a||!a.includes(c)?n[c]=i:(u||(u={}))[c]=i:Eu(e.emitsOptions,s)||(!(s in o)||i!==o[s])&&(o[s]=i,r=!0)}if(a){const s=it(n),i=u||bt;for(let c=0;c<a.length;c++){const m=a[c];n[m]=Ls(l,s,m,i[m],e,!st(i,m))}}return r}function Ls(e,t,n,o,l,a){const r=e[n];if(r!=null){const u=st(r,\"default\");if(u&&o===void 0){const s=r.default;if(r.type!==Function&&Je(s)){const{propsDefaults:i}=l;n in i?o=i[n]:(Kl(l),o=i[n]=s.call(null,t),gl())}else o=s}r[0]&&(a&&!u?o=!1:r[1]&&(o===\"\"||o===el(n))&&(o=!0))}return o}function p1(e,t,n=!1){const o=t.propsCache,l=o.get(e);if(l)return l;const a=e.props,r={},u=[];let s=!1;if(!Je(e)){const c=m=>{s=!0;const[h,v]=p1(m,t,!0);Ht(r,h),v&&u.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!a&&!s)return ct(e)&&o.set(e,Rl),Rl;if(Ye(a))for(let c=0;c<a.length;c++){const m=xn(a[c]);oc(m)&&(r[m]=bt)}else if(a)for(const c in a){const m=xn(c);if(oc(m)){const h=a[c],v=r[m]=Ye(h)||Je(h)?{type:h}:h;if(v){const g=rc(Boolean,v.type),y=rc(String,v.type);v[0]=g>-1,v[1]=y<0||g<y,(g>-1||st(v,\"default\"))&&u.push(m)}}}const i=[r,u];return ct(e)&&o.set(e,i),i}function oc(e){return e[0]!==\"$\"}function lc(e){const t=e&&e.toString().match(/^\\s*function (\\w+)/);return t?t[1]:e===null?\"null\":\"\"}function ac(e,t){return lc(e)===lc(t)}function rc(e,t){return Ye(t)?t.findIndex(n=>ac(n,e)):Je(t)&&ac(t,e)?0:-1}const v1=e=>e[0]===\"_\"||e===\"$stable\",Ii=e=>Ye(e)?e.map(Jn):[Jn(e)],m3=(e,t,n)=>{if(t._n)return t;const o=p((...l)=>Ii(t(...l)),n);return o._c=!1,o},h1=(e,t,n)=>{const o=e._ctx;for(const l in e){if(v1(l))continue;const a=e[l];if(Je(a))t[l]=m3(l,a,o);else if(a!=null){const r=Ii(a);t[l]=()=>r}}},_1=(e,t)=>{const n=Ii(t);e.slots.default=()=>n},g3=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=it(t),eu(t,\"_\",n)):h1(t,e.slots={})}else e.slots={},t&&_1(e,t);eu(e.slots,Du,1)},b3=(e,t,n)=>{const{vnode:o,slots:l}=e;let a=!0,r=bt;if(o.shapeFlag&32){const u=t._;u?n&&u===1?a=!1:(Ht(l,t),!n&&u===1&&delete l._):(a=!t.$stable,h1(t,l)),r=t}else t&&(_1(e,t),r={default:1});if(a)for(const u in l)!v1(u)&&!(u in r)&&delete l[u]};function m1(){return{app:null,config:{isNativeTag:J6,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let y3=0;function w3(e,t){return function(o,l=null){Je(o)||(o=Object.assign({},o)),l!=null&&!ct(l)&&(l=null);const a=m1(),r=new Set;let u=!1;const s=a.app={_uid:y3++,_component:o,_props:l,_container:null,_context:a,_instance:null,version:O3,get config(){return a.config},set config(i){},use(i,...c){return r.has(i)||(i&&Je(i.install)?(r.add(i),i.install(s,...c)):Je(i)&&(r.add(i),i(s,...c))),s},mixin(i){return a.mixins.includes(i)||a.mixins.push(i),s},component(i,c){return c?(a.components[i]=c,s):a.components[i]},directive(i,c){return c?(a.directives[i]=c,s):a.directives[i]},mount(i,c,m){if(!u){const h=d(o,l);return h.appContext=a,c&&t?t(h,i):e(h,i,m),u=!0,s._container=i,i.__vue_app__=s,Bu(h.component)||h.component.proxy}},unmount(){u&&(e(null,s._container),delete s._container.__vue_app__)},provide(i,c){return a.provides[i]=c,s}};return s}}function zs(e,t,n,o,l=!1){if(Ye(e)){e.forEach((h,v)=>zs(h,t&&(Ye(t)?t[v]:t),n,o,l));return}if(Pa(o)&&!l)return;const a=o.shapeFlag&4?Bu(o.component)||o.component.proxy:o.el,r=l?null:a,{i:u,r:s}=e,i=t&&t.r,c=u.refs===bt?u.refs={}:u.refs,m=u.setupState;if(i!=null&&i!==s&&(tt(i)?(c[i]=null,st(m,i)&&(m[i]=null)):gt(i)&&(i.value=null)),Je(s))bo(s,u,12,[r,c]);else{const h=tt(s),v=gt(s);if(h||v){const g=()=>{if(e.f){const y=h?c[s]:s.value;l?Ye(y)&&yi(y,a):Ye(y)?y.includes(a)||y.push(a):h?(c[s]=[a],st(m,s)&&(m[s]=c[s])):(s.value=[a],e.k&&(c[e.k]=s.value))}else h?(c[s]=r,st(m,s)&&(m[s]=r)):v&&(s.value=r,e.k&&(c[e.k]=r))};r?(g.id=-1,nn(g,n)):g()}}}const nn=Jp;function C3(e){return E3(e)}function E3(e,t){const n=np();n.__VUE__=!0;const{insert:o,remove:l,patchProp:a,createElement:r,createText:u,createComment:s,setText:i,setElementText:c,parentNode:m,nextSibling:h,setScopeId:v=vt,insertStaticContent:g}=e,y=(L,S,V,O=null,te=null,_e=null,pe=!1,Ce=null,be=!!S.dynamicChildren)=>{if(L===S)return;L&&!il(L,S)&&(O=ve(L),x(L,te,_e,!0),L=null),S.patchFlag===-2&&(be=!1,S.dynamicChildren=null);const{type:re,ref:me,shapeFlag:Re}=S;switch(re){case ur:A(L,S,V,O);break;case on:w(L,S,V,O);break;case Vr:L==null&&F(S,V,O,pe);break;case We:G(L,S,V,O,te,_e,pe,Ce,be);break;default:Re&1?T(L,S,V,O,te,_e,pe,Ce,be):Re&6?N(L,S,V,O,te,_e,pe,Ce,be):(Re&64||Re&128)&&re.process(L,S,V,O,te,_e,pe,Ce,be,Ke)}me!=null&&te&&zs(me,L&&L.ref,_e,S||L,!S)},A=(L,S,V,O)=>{if(L==null)o(S.el=u(S.children),V,O);else{const te=S.el=L.el;S.children!==L.children&&i(te,S.children)}},w=(L,S,V,O)=>{L==null?o(S.el=s(S.children||\"\"),V,O):S.el=L.el},F=(L,S,V,O)=>{[L.el,L.anchor]=g(L.children,S,V,O,L.el,L.anchor)},E=({el:L,anchor:S},V,O)=>{let te;for(;L&&L!==S;)te=h(L),o(L,V,O),L=te;o(S,V,O)},$=({el:L,anchor:S})=>{let V;for(;L&&L!==S;)V=h(L),l(L),L=V;l(S)},T=(L,S,V,O,te,_e,pe,Ce,be)=>{pe=pe||S.type===\"svg\",L==null?B(S,V,O,te,_e,pe,Ce,be):I(L,S,te,_e,pe,Ce,be)},B=(L,S,V,O,te,_e,pe,Ce)=>{let be,re;const{type:me,props:Re,shapeFlag:Q,transition:Pe,dirs:Ge}=L;if(be=L.el=r(L.type,_e,Re&&Re.is,Re),Q&8?c(be,L.children):Q&16&&H(L.children,be,null,O,te,_e&&me!==\"foreignObject\",pe,Ce),Ge&&nl(L,null,O,\"created\"),Re){for(const he in Re)he!==\"value\"&&!zr(he)&&a(be,he,null,Re[he],_e,L.children,O,te,ke);\"value\"in Re&&a(be,\"value\",null,Re.value),(re=Re.onVnodeBeforeMount)&&Yn(re,O,L)}P(be,L,L.scopeId,pe,O),Ge&&nl(L,null,O,\"beforeMount\");const Xe=(!te||te&&!te.pendingBranch)&&Pe&&!Pe.persisted;Xe&&Pe.beforeEnter(be),o(be,S,V),((re=Re&&Re.onVnodeMounted)||Xe||Ge)&&nn(()=>{re&&Yn(re,O,L),Xe&&Pe.enter(be),Ge&&nl(L,null,O,\"mounted\")},te)},P=(L,S,V,O,te)=>{if(V&&v(L,V),O)for(let _e=0;_e<O.length;_e++)v(L,O[_e]);if(te){let _e=te.subTree;if(S===_e){const pe=te.vnode;P(L,pe,pe.scopeId,pe.slotScopeIds,te.parent)}}},H=(L,S,V,O,te,_e,pe,Ce,be=0)=>{for(let re=be;re<L.length;re++){const me=L[re]=Ce?Uo(L[re]):Jn(L[re]);y(null,me,S,V,O,te,_e,pe,Ce)}},I=(L,S,V,O,te,_e,pe)=>{const Ce=S.el=L.el;let{patchFlag:be,dynamicChildren:re,dirs:me}=S;be|=L.patchFlag&16;const Re=L.props||bt,Q=S.props||bt;let Pe;V&&ol(V,!1),(Pe=Q.onVnodeBeforeUpdate)&&Yn(Pe,V,S,L),me&&nl(S,L,V,\"beforeUpdate\"),V&&ol(V,!0);const Ge=te&&S.type!==\"foreignObject\";if(re?j(L.dynamicChildren,re,Ce,V,O,Ge,_e):pe||ne(L,S,Ce,null,V,O,Ge,_e,!1),be>0){if(be&16)Z(Ce,S,Re,Q,V,O,te);else if(be&2&&Re.class!==Q.class&&a(Ce,\"class\",null,Q.class,te),be&4&&a(Ce,\"style\",Re.style,Q.style,te),be&8){const Xe=S.dynamicProps;for(let he=0;he<Xe.length;he++){const Ie=Xe[he],K=Re[Ie],ue=Q[Ie];(ue!==K||Ie===\"value\")&&a(Ce,Ie,K,ue,te,L.children,V,O,ke)}}be&1&&L.children!==S.children&&c(Ce,S.children)}else!pe&&re==null&&Z(Ce,S,Re,Q,V,O,te);((Pe=Q.onVnodeUpdated)||me)&&nn(()=>{Pe&&Yn(Pe,V,S,L),me&&nl(S,L,V,\"updated\")},O)},j=(L,S,V,O,te,_e,pe)=>{for(let Ce=0;Ce<S.length;Ce++){const be=L[Ce],re=S[Ce],me=be.el&&(be.type===We||!il(be,re)||be.shapeFlag&70)?m(be.el):V;y(be,re,me,null,O,te,_e,pe,!0)}},Z=(L,S,V,O,te,_e,pe)=>{if(V!==O){if(V!==bt)for(const Ce in V)!zr(Ce)&&!(Ce in O)&&a(L,Ce,V[Ce],null,pe,S.children,te,_e,ke);for(const Ce in O){if(zr(Ce))continue;const be=O[Ce],re=V[Ce];be!==re&&Ce!==\"value\"&&a(L,Ce,re,be,pe,S.children,te,_e,ke)}\"value\"in O&&a(L,\"value\",V.value,O.value)}},G=(L,S,V,O,te,_e,pe,Ce,be)=>{const re=S.el=L?L.el:u(\"\"),me=S.anchor=L?L.anchor:u(\"\");let{patchFlag:Re,dynamicChildren:Q,slotScopeIds:Pe}=S;Pe&&(Ce=Ce?Ce.concat(Pe):Pe),L==null?(o(re,V,O),o(me,V,O),H(S.children,V,me,te,_e,pe,Ce,be)):Re>0&&Re&64&&Q&&L.dynamicChildren?(j(L.dynamicChildren,Q,V,te,_e,pe,Ce),(S.key!=null||te&&S===te.subTree)&&Ri(L,S,!0)):ne(L,S,V,me,te,_e,pe,Ce,be)},N=(L,S,V,O,te,_e,pe,Ce,be)=>{S.slotScopeIds=Ce,L==null?S.shapeFlag&512?te.ctx.activate(S,V,O,pe,be):Y(S,V,O,te,_e,pe,be):ge(L,S,be)},Y=(L,S,V,O,te,_e,pe)=>{const Ce=L.component=z3(L,O,te);if(Fu(L)&&(Ce.ctx.renderer=Ke),T3(Ce),Ce.asyncDep){if(te&&te.registerDep(Ce,fe),!L.el){const be=Ce.subTree=d(on);w(null,be,S,V)}return}fe(Ce,L,S,V,te,_e,pe)},ge=(L,S,V)=>{const O=S.component=L.component;if(Gp(L,S,V))if(O.asyncDep&&!O.asyncResolved){Ee(O,S,V);return}else O.next=S,Op(O.update),O.update();else S.el=L.el,O.vnode=S},fe=(L,S,V,O,te,_e,pe)=>{const Ce=()=>{if(L.isMounted){let{next:me,bu:Re,u:Q,parent:Pe,vnode:Ge}=L,Xe=me,he;ol(L,!1),me?(me.el=Ge.el,Ee(L,me,pe)):me=Ge,Re&&Mr(Re),(he=me.props&&me.props.onVnodeBeforeUpdate)&&Yn(he,Pe,me,Ge),ol(L,!0);const Ie=es(L),K=L.subTree;L.subTree=Ie,y(K,Ie,m(K.el),ve(K),L,te,_e),me.el=Ie.el,Xe===null&&Yp(L,Ie.el),Q&&nn(Q,te),(he=me.props&&me.props.onVnodeUpdated)&&nn(()=>Yn(he,Pe,me,Ge),te)}else{let me;const{el:Re,props:Q}=S,{bm:Pe,m:Ge,parent:Xe}=L,he=Pa(S);if(ol(L,!1),Pe&&Mr(Pe),!he&&(me=Q&&Q.onVnodeBeforeMount)&&Yn(me,Xe,S),ol(L,!0),Re&&le){const Ie=()=>{L.subTree=es(L),le(Re,L.subTree,L,te,null)};he?S.type.__asyncLoader().then(()=>!L.isUnmounted&&Ie()):Ie()}else{const Ie=L.subTree=es(L);y(null,Ie,V,O,L,te,_e),S.el=Ie.el}if(Ge&&nn(Ge,te),!he&&(me=Q&&Q.onVnodeMounted)){const Ie=S;nn(()=>Yn(me,Xe,Ie),te)}(S.shapeFlag&256||Xe&&Pa(Xe.vnode)&&Xe.vnode.shapeFlag&256)&&L.a&&nn(L.a,te),L.isMounted=!0,S=V=O=null}},be=L.effect=new Ei(Ce,()=>Pi(re),L.scope),re=L.update=()=>be.run();re.id=L.uid,ol(L,!0),re()},Ee=(L,S,V)=>{S.component=L;const O=L.vnode.props;L.vnode=S,L.next=null,_3(L,S.props,O,V),b3(L,S.children,V),Al(),X2(),Fl()},ne=(L,S,V,O,te,_e,pe,Ce,be=!1)=>{const re=L&&L.children,me=L?L.shapeFlag:0,Re=S.children,{patchFlag:Q,shapeFlag:Pe}=S;if(Q>0){if(Q&128){xe(re,Re,V,O,te,_e,pe,Ce,be);return}else if(Q&256){ee(re,Re,V,O,te,_e,pe,Ce,be);return}}Pe&8?(me&16&&ke(re,te,_e),Re!==re&&c(V,Re)):me&16?Pe&16?xe(re,Re,V,O,te,_e,pe,Ce,be):ke(re,te,_e,!0):(me&8&&c(V,\"\"),Pe&16&&H(Re,V,O,te,_e,pe,Ce,be))},ee=(L,S,V,O,te,_e,pe,Ce,be)=>{L=L||Rl,S=S||Rl;const re=L.length,me=S.length,Re=Math.min(re,me);let Q;for(Q=0;Q<Re;Q++){const Pe=S[Q]=be?Uo(S[Q]):Jn(S[Q]);y(L[Q],Pe,V,null,te,_e,pe,Ce,be)}re>me?ke(L,te,_e,!0,!1,Re):H(S,V,O,te,_e,pe,Ce,be,Re)},xe=(L,S,V,O,te,_e,pe,Ce,be)=>{let re=0;const me=S.length;let Re=L.length-1,Q=me-1;for(;re<=Re&&re<=Q;){const Pe=L[re],Ge=S[re]=be?Uo(S[re]):Jn(S[re]);if(il(Pe,Ge))y(Pe,Ge,V,null,te,_e,pe,Ce,be);else break;re++}for(;re<=Re&&re<=Q;){const Pe=L[Re],Ge=S[Q]=be?Uo(S[Q]):Jn(S[Q]);if(il(Pe,Ge))y(Pe,Ge,V,null,te,_e,pe,Ce,be);else break;Re--,Q--}if(re>Re){if(re<=Q){const Pe=Q+1,Ge=Pe<me?S[Pe].el:O;for(;re<=Q;)y(null,S[re]=be?Uo(S[re]):Jn(S[re]),V,Ge,te,_e,pe,Ce,be),re++}}else if(re>Q)for(;re<=Re;)x(L[re],te,_e,!0),re++;else{const Pe=re,Ge=re,Xe=new Map;for(re=Ge;re<=Q;re++){const X=S[re]=be?Uo(S[re]):Jn(S[re]);X.key!=null&&Xe.set(X.key,re)}let he,Ie=0;const K=Q-Ge+1;let ue=!1,q=0;const k=new Array(K);for(re=0;re<K;re++)k[re]=0;for(re=Pe;re<=Re;re++){const X=L[re];if(Ie>=K){x(X,te,_e,!0);continue}let de;if(X.key!=null)de=Xe.get(X.key);else for(he=Ge;he<=Q;he++)if(k[he-Ge]===0&&il(X,S[he])){de=he;break}de===void 0?x(X,te,_e,!0):(k[de-Ge]=re+1,de>=q?q=de:ue=!0,y(X,S[de],V,null,te,_e,pe,Ce,be),Ie++)}const Me=ue?A3(k):Rl;for(he=Me.length-1,re=K-1;re>=0;re--){const X=Ge+re,de=S[X],Fe=X+1<me?S[X+1].el:O;k[re]===0?y(null,de,V,Fe,te,_e,pe,Ce,be):ue&&(he<0||re!==Me[he]?$e(de,V,Fe,2):he--)}}},$e=(L,S,V,O,te=null)=>{const{el:_e,type:pe,transition:Ce,children:be,shapeFlag:re}=L;if(re&6){$e(L.component.subTree,S,V,O);return}if(re&128){L.suspense.move(S,V,O);return}if(re&64){pe.move(L,S,V,Ke);return}if(pe===We){o(_e,S,V);for(let Re=0;Re<be.length;Re++)$e(be[Re],S,V,O);o(L.anchor,S,V);return}if(pe===Vr){E(L,S,V);return}if(O!==2&&re&1&&Ce)if(O===0)Ce.beforeEnter(_e),o(_e,S,V),nn(()=>Ce.enter(_e),te);else{const{leave:Re,delayLeave:Q,afterLeave:Pe}=Ce,Ge=()=>o(_e,S,V),Xe=()=>{Re(_e,()=>{Ge(),Pe&&Pe()})};Q?Q(_e,Ge,Xe):Xe()}else o(_e,S,V)},x=(L,S,V,O=!1,te=!1)=>{const{type:_e,props:pe,ref:Ce,children:be,dynamicChildren:re,shapeFlag:me,patchFlag:Re,dirs:Q}=L;if(Ce!=null&&zs(Ce,null,V,L,!0),me&256){S.ctx.deactivate(L);return}const Pe=me&1&&Q,Ge=!Pa(L);let Xe;if(Ge&&(Xe=pe&&pe.onVnodeBeforeUnmount)&&Yn(Xe,S,L),me&6)Ae(L.component,V,O);else{if(me&128){L.suspense.unmount(V,O);return}Pe&&nl(L,null,S,\"beforeUnmount\"),me&64?L.type.remove(L,S,V,te,Ke,O):re&&(_e!==We||Re>0&&Re&64)?ke(re,S,V,!1,!0):(_e===We&&Re&384||!te&&me&16)&&ke(be,S,V),O&&W(L)}(Ge&&(Xe=pe&&pe.onVnodeUnmounted)||Pe)&&nn(()=>{Xe&&Yn(Xe,S,L),Pe&&nl(L,null,S,\"unmounted\")},V)},W=L=>{const{type:S,el:V,anchor:O,transition:te}=L;if(S===We){we(V,O);return}if(S===Vr){$(L);return}const _e=()=>{l(V),te&&!te.persisted&&te.afterLeave&&te.afterLeave()};if(L.shapeFlag&1&&te&&!te.persisted){const{leave:pe,delayLeave:Ce}=te,be=()=>pe(V,_e);Ce?Ce(L.el,_e,be):be()}else _e()},we=(L,S)=>{let V;for(;L!==S;)V=h(L),l(L),L=V;l(S)},Ae=(L,S,V)=>{const{bum:O,scope:te,update:_e,subTree:pe,um:Ce}=L;O&&Mr(O),te.stop(),_e&&(_e.active=!1,x(pe,L,S,V)),Ce&&nn(Ce,S),nn(()=>{L.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&L.asyncDep&&!L.asyncResolved&&L.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},ke=(L,S,V,O=!1,te=!1,_e=0)=>{for(let pe=_e;pe<L.length;pe++)x(L[pe],S,V,O,te)},ve=L=>L.shapeFlag&6?ve(L.component.subTree):L.shapeFlag&128?L.suspense.next():h(L.anchor||L.el),ze=(L,S,V)=>{L==null?S._vnode&&x(S._vnode,null,null,!0):y(S._vnode||null,L,S,null,null,null,V),X2(),e1(),S._vnode=L},Ke={p:y,um:x,m:$e,r:W,mt:Y,mc:H,pc:ne,pbc:j,n:ve,o:e};let se,le;return t&&([se,le]=t(Ke)),{render:ze,hydrate:se,createApp:w3(ze,se)}}function ol({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ri(e,t,n=!1){const o=e.children,l=t.children;if(Ye(o)&&Ye(l))for(let a=0;a<o.length;a++){const r=o[a];let u=l[a];u.shapeFlag&1&&!u.dynamicChildren&&((u.patchFlag<=0||u.patchFlag===32)&&(u=l[a]=Uo(l[a]),u.el=r.el),n||Ri(r,u))}}function A3(e){const t=e.slice(),n=[0];let o,l,a,r,u;const s=e.length;for(o=0;o<s;o++){const i=e[o];if(i!==0){if(l=n[n.length-1],e[l]<i){t[o]=l,n.push(o);continue}for(a=0,r=n.length-1;a<r;)u=a+r>>1,e[n[u]]<i?a=u+1:r=u;i<e[n[a]]&&(a>0&&(t[o]=n[a-1]),n[a]=o)}}for(a=n.length,r=n[a-1];a-- >0;)n[a]=r,r=t[r];return n}const F3=e=>e.__isTeleport,La=e=>e&&(e.disabled||e.disabled===\"\"),uc=e=>typeof SVGElement!=\"undefined\"&&e instanceof SVGElement,Ts=(e,t)=>{const n=e&&e.to;return tt(n)?t?t(n):null:n},x3={__isTeleport:!0,process(e,t,n,o,l,a,r,u,s,i){const{mc:c,pc:m,pbc:h,o:{insert:v,querySelector:g,createText:y,createComment:A}}=i,w=La(t.props);let{shapeFlag:F,children:E,dynamicChildren:$}=t;if(e==null){const T=t.el=y(\"\"),B=t.anchor=y(\"\");v(T,n,o),v(B,n,o);const P=t.target=Ts(t.props,g),H=t.targetAnchor=y(\"\");P&&(v(H,P),r=r||uc(P));const I=(j,Z)=>{F&16&&c(E,j,Z,l,a,r,u,s)};w?I(n,B):P&&I(P,H)}else{t.el=e.el;const T=t.anchor=e.anchor,B=t.target=e.target,P=t.targetAnchor=e.targetAnchor,H=La(e.props),I=H?n:B,j=H?T:P;if(r=r||uc(B),$?(h(e.dynamicChildren,$,I,l,a,r,u),Ri(e,t,!0)):s||m(e,t,I,j,l,a,r,u,!1),w)H||Cr(t,n,T,i,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Z=t.target=Ts(t.props,g);Z&&Cr(t,Z,null,i,0)}else H&&Cr(t,B,P,i,1)}},remove(e,t,n,o,{um:l,o:{remove:a}},r){const{shapeFlag:u,children:s,anchor:i,targetAnchor:c,target:m,props:h}=e;if(m&&a(c),(r||!La(h))&&(a(i),u&16))for(let v=0;v<s.length;v++){const g=s[v];l(g,t,n,!0,!!g.dynamicChildren)}},move:Cr,hydrate:$3};function Cr(e,t,n,{o:{insert:o},m:l},a=2){a===0&&o(e.targetAnchor,t,n);const{el:r,anchor:u,shapeFlag:s,children:i,props:c}=e,m=a===2;if(m&&o(r,t,n),(!m||La(c))&&s&16)for(let h=0;h<i.length;h++)l(i[h],t,n,2);m&&o(u,t,n)}function $3(e,t,n,o,l,a,{o:{nextSibling:r,parentNode:u,querySelector:s}},i){const c=t.target=Ts(t.props,s);if(c){const m=c._lpa||c.firstChild;if(t.shapeFlag&16)if(La(t.props))t.anchor=i(r(e),t,u(e),n,o,l,a),t.targetAnchor=m;else{t.anchor=r(e);let h=m;for(;h;)if(h=r(h),h&&h.nodeType===8&&h.data===\"teleport anchor\"){t.targetAnchor=h,c._lpa=t.targetAnchor&&r(t.targetAnchor);break}i(m,t,c,n,o,l,a)}}return t.anchor&&r(t.anchor)}const g1=x3,We=Symbol(void 0),ur=Symbol(void 0),on=Symbol(void 0),Vr=Symbol(void 0),za=[];let Hn=null;function b(e=!1){za.push(Hn=e?null:[])}function D3(){za.pop(),Hn=za[za.length-1]||null}let Ga=1;function sc(e){Ga+=e}function b1(e){return e.dynamicChildren=Ga>0?Hn||Rl:null,D3(),Ga>0&&Hn&&Hn.push(e),e}function C(e,t,n,o,l,a){return b1(f(e,t,n,o,l,a,!0))}function ae(e,t,n,o,l){return b1(d(e,t,n,o,l,!0))}function mn(e){return e?e.__v_isVNode===!0:!1}function il(e,t){return e.type===t.type&&e.key===t.key}const Du=\"__vInternal\",y1=({key:e})=>e!=null?e:null,Hr=({ref:e,ref_key:t,ref_for:n})=>e!=null?tt(e)||gt(e)||Je(e)?{i:jt,r:e,k:t,f:!!n}:e:null;function f(e,t=null,n=null,o=0,l=null,a=e===We?0:1,r=!1,u=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&y1(t),ref:t&&Hr(t),scopeId:Au,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null};return u?(Ni(s,n),a&128&&e.normalize(s)):n&&(s.shapeFlag|=tt(n)?8:16),Ga>0&&!r&&Hn&&(s.patchFlag>0||a&6)&&s.patchFlag!==32&&Hn.push(s),s}const d=B3;function B3(e,t=null,n=null,o=0,l=null,a=!1){if((!e||e===i1)&&(e=on),mn(e)){const u=Eo(e,t,!0);return n&&Ni(u,n),Ga>0&&!a&&Hn&&(u.shapeFlag&6?Hn[Hn.indexOf(e)]=u:Hn.push(u)),u.patchFlag|=-2,u}if(R3(e)&&(e=e.__vccOpts),t){t=S3(t);let{class:u,style:s}=t;u&&!tt(u)&&(t.class=U(u)),ct(s)&&(Wd(s)&&!Ye(s)&&(s=Ht({},s)),t.style=nt(s))}const r=tt(e)?1:Xp(e)?128:F3(e)?64:ct(e)?4:Je(e)?2:0;return f(e,t,n,o,l,r,a,!0)}function S3(e){return e?Wd(e)||Du in e?Ht({},e):e:null}function Eo(e,t,n=!1){const{props:o,ref:l,patchFlag:a,children:r}=e,u=t?An(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&y1(u),ref:t&&t.ref?n&&l?Ye(l)?l.concat(Hr(t)):[l,Hr(t)]:Hr(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==We?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Eo(e.ssContent),ssFallback:e.ssFallback&&Eo(e.ssFallback),el:e.el,anchor:e.anchor}}function D(e=\" \",t=0){return d(ur,null,e,t)}function k3(e,t){const n=d(Vr,null,e);return n.staticCount=t,n}function oe(e=\"\",t=!1){return t?(b(),ae(on,null,e)):d(on,null,e)}function Jn(e){return e==null||typeof e==\"boolean\"?d(on):Ye(e)?d(We,null,e.slice()):typeof e==\"object\"?Uo(e):d(ur,null,String(e))}function Uo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Eo(e)}function Ni(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Ye(t))n=16;else if(typeof t==\"object\")if(o&65){const l=t.default;l&&(l._c&&(l._d=!1),Ni(e,l()),l._c&&(l._d=!0));return}else{n=32;const l=t._;!l&&!(Du in t)?t._ctx=jt:l===3&&jt&&(jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Je(t)?(t={default:t,_ctx:jt},n=32):(t=String(t),o&64?(n=16,t=[D(t)]):n=8);e.children=t,e.shapeFlag|=n}function An(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const l in o)if(l===\"class\")t.class!==o.class&&(t.class=U([t.class,o.class]));else if(l===\"style\")t.style=nt([t.style,o.style]);else if(mu(l)){const a=t[l],r=o[l];r&&a!==r&&!(Ye(a)&&a.includes(r))&&(t[l]=a?[].concat(a,r):r)}else l!==\"\"&&(t[l]=o[l])}return t}function Yn(e,t,n,o=null){En(e,t,7,[n,o])}const P3=m1();let L3=0;function z3(e,t,n){const o=e.type,l=(t?t.appContext:e.appContext)||P3,a={uid:L3++,vnode:e,type:o,parent:t,appContext:l,root:null,next:null,subTree:null,effect:null,update:null,scope:new op(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(l.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:p1(o,l),emitsOptions:n1(o,l),emit:null,emitted:null,propsDefaults:bt,inheritAttrs:o.inheritAttrs,ctx:bt,data:bt,props:bt,attrs:bt,slots:bt,refs:bt,setupState:bt,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=qp.bind(null,a),e.ce&&e.ce(a),a}let Vt=null;const ft=()=>Vt||jt,Kl=e=>{Vt=e,e.scope.on()},gl=()=>{Vt&&Vt.scope.off(),Vt=null};function w1(e){return e.vnode.shapeFlag&4}let Ya=!1;function T3(e,t=!1){Ya=t;const{props:n,children:o}=e.vnode,l=w1(e);h3(e,n,l,t),g3(e,o);const a=l?M3(e,t):void 0;return Ya=!1,a}function M3(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=qd(new Proxy(e.ctx,i3));const{setup:o}=n;if(o){const l=e.setupContext=o.length>1?E1(e):null;Kl(e),Al();const a=bo(o,e,0,[e.props,l]);if(Fl(),gl(),Zr(a)){if(a.then(gl,gl),t)return a.then(r=>{ic(e,r,t)}).catch(r=>{Cu(r,e,0)});e.asyncDep=a}else ic(e,a,t)}else C1(e,t)}function ic(e,t,n){Je(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ct(t)&&(e.setupState=Gd(t)),C1(e,n)}let cc;function C1(e,t,n){const o=e.type;if(!e.render){if(!t&&cc&&!o.render){const l=o.template||Hi(e).template;if(l){const{isCustomElement:a,compilerOptions:r}=e.appContext.config,{delimiters:u,compilerOptions:s}=o,i=Ht(Ht({isCustomElement:a,delimiters:u},r),s);o.render=cc(l,i)}}e.render=o.render||vt}Kl(e),Al(),c3(e),Fl(),gl()}function V3(e){return new Proxy(e.attrs,{get(t,n){return _n(e,\"get\",\"$attrs\"),t[n]}})}function E1(e){const t=o=>{e.exposed=o||{}};let n;return{get attrs(){return n||(n=V3(e))},slots:e.slots,emit:e.emit,expose:t}}function Bu(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Gd(qd(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in lu)return lu[n](e)}}))}const H3=/(?:^|[-_])(\\w)/g,I3=e=>e.replace(H3,t=>t.toUpperCase()).replace(/[-_]/g,\"\");function A1(e,t=!0){return Je(e)?e.displayName||e.name:e.name||t&&e.__name}function F1(e,t,n=!1){let o=A1(t);if(!o&&t.__file){const l=t.__file.match(/([^/\\\\]+)\\.\\w+$/);l&&(o=l[1])}if(!o&&e&&e.parent){const l=a=>{for(const r in a)if(a[r]===t)return r};o=l(e.components||e.parent.type.components)||l(e.appContext.components)}return o?I3(o):n?\"App\":\"Anonymous\"}function R3(e){return Je(e)&&\"__vccOpts\"in e}const R=(e,t)=>Xd(e,t,Ya);function So(){return x1().slots}function N3(){return x1().attrs}function x1(){const e=ft();return e.setupContext||(e.setupContext=E1(e))}function Ne(e,t,n){const o=arguments.length;return o===2?ct(t)&&!Ye(t)?mn(t)?d(e,null,[t]):d(e,t):d(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&mn(n)&&(n=[n]),d(e,t,n))}const O3=\"3.2.40\",U3=\"http://www.w3.org/2000/svg\",cl=typeof document!=\"undefined\"?document:null,dc=cl&&cl.createElement(\"template\"),W3={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l=t?cl.createElementNS(U3,e):cl.createElement(e,n?{is:n}:void 0);return e===\"select\"&&o&&o.multiple!=null&&l.setAttribute(\"multiple\",o.multiple),l},createText:e=>cl.createTextNode(e),createComment:e=>cl.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>cl.querySelector(e),setScopeId(e,t){e.setAttribute(t,\"\")},insertStaticContent(e,t,n,o,l,a){const r=n?n.previousSibling:t.lastChild;if(l&&(l===a||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),!(l===a||!(l=l.nextSibling)););else{dc.innerHTML=o?`<svg>${e}</svg>`:e;const u=dc.content;if(o){const s=u.firstChild;for(;s.firstChild;)u.appendChild(s.firstChild);u.removeChild(s)}t.insertBefore(u,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function q3(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(\" \")),t==null?e.removeAttribute(\"class\"):n?e.setAttribute(\"class\",t):e.className=t}function j3(e,t,n){const o=e.style,l=tt(n);if(n&&!l){for(const a in n)Ms(o,a,n[a]);if(t&&!tt(t))for(const a in t)n[a]==null&&Ms(o,a,\"\")}else{const a=o.display;l?t!==n&&(o.cssText=n):t&&e.removeAttribute(\"style\"),\"_vod\"in e&&(o.display=a)}}const fc=/\\s*!important$/;function Ms(e,t,n){if(Ye(n))n.forEach(o=>Ms(e,t,o));else if(n==null&&(n=\"\"),t.startsWith(\"--\"))e.setProperty(t,n);else{const o=K3(e,t);fc.test(n)?e.setProperty(el(o),n.replace(fc,\"\"),\"important\"):e[o]=n}}const pc=[\"Webkit\",\"Moz\",\"ms\"],ns={};function K3(e,t){const n=ns[t];if(n)return n;let o=xn(t);if(o!==\"filter\"&&o in e)return ns[t]=o;o=yu(o);for(let l=0;l<pc.length;l++){const a=pc[l]+o;if(a in e)return ns[t]=a}return t}const vc=\"http://www.w3.org/1999/xlink\";function G3(e,t,n,o,l){if(o&&t.startsWith(\"xlink:\"))n==null?e.removeAttributeNS(vc,t.slice(6,t.length)):e.setAttributeNS(vc,t,n);else{const a=j6(t);n==null||a&&!$d(n)?e.removeAttribute(t):e.setAttribute(t,a?\"\":n)}}function Y3(e,t,n,o,l,a,r){if(t===\"innerHTML\"||t===\"textContent\"){o&&r(o,l,a),e[t]=n==null?\"\":n;return}if(t===\"value\"&&e.tagName!==\"PROGRESS\"&&!e.tagName.includes(\"-\")){e._value=n;const s=n==null?\"\":n;(e.value!==s||e.tagName===\"OPTION\")&&(e.value=s),n==null&&e.removeAttribute(t);return}let u=!1;if(n===\"\"||n==null){const s=typeof e[t];s===\"boolean\"?n=$d(n):n==null&&s===\"string\"?(n=\"\",u=!0):s===\"number\"&&(n=0,u=!0)}try{e[t]=n}catch{}u&&e.removeAttribute(t)}const[$1,X3]=(()=>{let e=Date.now,t=!1;if(typeof window!=\"undefined\"){Date.now()>document.createEvent(\"Event\").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\\/(\\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Vs=0;const J3=Promise.resolve(),Q3=()=>{Vs=0},Z3=()=>Vs||(J3.then(Q3),Vs=$1());function jo(e,t,n,o){e.addEventListener(t,n,o)}function e8(e,t,n,o){e.removeEventListener(t,n,o)}function t8(e,t,n,o,l=null){const a=e._vei||(e._vei={}),r=a[t];if(o&&r)r.value=o;else{const[u,s]=n8(t);if(o){const i=a[t]=o8(o,l);jo(e,u,i,s)}else r&&(e8(e,u,r,s),a[t]=void 0)}}const hc=/(?:Once|Passive|Capture)$/;function n8(e){let t;if(hc.test(e)){t={};let o;for(;o=e.match(hc);)e=e.slice(0,e.length-o[0].length),t[o[0].toLowerCase()]=!0}return[e[2]===\":\"?e.slice(3):el(e.slice(2)),t]}function o8(e,t){const n=o=>{const l=o.timeStamp||$1();(X3||l>=n.attached-1)&&En(l8(o,n.value),t,5,[o])};return n.value=e,n.attached=Z3(),n}function l8(e,t){if(Ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>l=>!l._stopped&&o&&o(l))}else return t}const _c=/^on[a-z]/,a8=(e,t,n,o,l=!1,a,r,u,s)=>{t===\"class\"?q3(e,o,l):t===\"style\"?j3(e,n,o):mu(t)?bi(t)||t8(e,t,n,o,r):(t[0]===\".\"?(t=t.slice(1),!0):t[0]===\"^\"?(t=t.slice(1),!1):r8(e,t,o,l))?Y3(e,t,o,a,r,u,s):(t===\"true-value\"?e._trueValue=o:t===\"false-value\"&&(e._falseValue=o),G3(e,t,o,l))};function r8(e,t,n,o){return o?!!(t===\"innerHTML\"||t===\"textContent\"||t in e&&_c.test(t)&&Je(n)):t===\"spellcheck\"||t===\"draggable\"||t===\"translate\"||t===\"form\"||t===\"list\"&&e.tagName===\"INPUT\"||t===\"type\"&&e.tagName===\"TEXTAREA\"||_c.test(t)&&tt(n)?!1:t in e}const Vo=\"transition\",Ea=\"animation\",Zt=(e,{slots:t})=>Ne(a1,B1(e),t);Zt.displayName=\"Transition\";const D1={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},u8=Zt.props=Ht({},a1.props,D1),ll=(e,t=[])=>{Ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},mc=e=>e?Ye(e)?e.some(t=>t.length>1):e.length>1:!1;function B1(e){const t={};for(const G in e)G in D1||(t[G]=e[G]);if(e.css===!1)return t;const{name:n=\"v\",type:o,duration:l,enterFromClass:a=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:u=`${n}-enter-to`,appearFromClass:s=a,appearActiveClass:i=r,appearToClass:c=u,leaveFromClass:m=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,g=s8(l),y=g&&g[0],A=g&&g[1],{onBeforeEnter:w,onEnter:F,onEnterCancelled:E,onLeave:$,onLeaveCancelled:T,onBeforeAppear:B=w,onAppear:P=F,onAppearCancelled:H=E}=t,I=(G,N,Y)=>{Io(G,N?c:u),Io(G,N?i:r),Y&&Y()},j=(G,N)=>{G._isLeaving=!1,Io(G,m),Io(G,v),Io(G,h),N&&N()},Z=G=>(N,Y)=>{const ge=G?P:F,fe=()=>I(N,G,Y);ll(ge,[N,fe]),gc(()=>{Io(N,G?s:a),po(N,G?c:u),mc(ge)||bc(N,o,y,fe)})};return Ht(t,{onBeforeEnter(G){ll(w,[G]),po(G,a),po(G,r)},onBeforeAppear(G){ll(B,[G]),po(G,s),po(G,i)},onEnter:Z(!1),onAppear:Z(!0),onLeave(G,N){G._isLeaving=!0;const Y=()=>j(G,N);po(G,m),k1(),po(G,h),gc(()=>{!G._isLeaving||(Io(G,m),po(G,v),mc($)||bc(G,o,A,Y))}),ll($,[G,Y])},onEnterCancelled(G){I(G,!1),ll(E,[G])},onAppearCancelled(G){I(G,!0),ll(H,[G])},onLeaveCancelled(G){j(G),ll(T,[G])}})}function s8(e){if(e==null)return null;if(ct(e))return[os(e.enter),os(e.leave)];{const t=os(e);return[t,t]}}function os(e){return tu(e)}function po(e,t){t.split(/\\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Io(e,t){t.split(/\\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function gc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i8=0;function bc(e,t,n,o){const l=e._endId=++i8,a=()=>{l===e._endId&&o()};if(n)return setTimeout(a,n);const{type:r,timeout:u,propCount:s}=S1(e,t);if(!r)return o();const i=r+\"end\";let c=0;const m=()=>{e.removeEventListener(i,h),a()},h=v=>{v.target===e&&++c>=s&&m()};setTimeout(()=>{c<s&&m()},u+1),e.addEventListener(i,h)}function S1(e,t){const n=window.getComputedStyle(e),o=g=>(n[g]||\"\").split(\", \"),l=o(Vo+\"Delay\"),a=o(Vo+\"Duration\"),r=yc(l,a),u=o(Ea+\"Delay\"),s=o(Ea+\"Duration\"),i=yc(u,s);let c=null,m=0,h=0;t===Vo?r>0&&(c=Vo,m=r,h=a.length):t===Ea?i>0&&(c=Ea,m=i,h=s.length):(m=Math.max(r,i),c=m>0?r>i?Vo:Ea:null,h=c?c===Vo?a.length:s.length:0);const v=c===Vo&&/\\b(transform|all)(,|$)/.test(n[Vo+\"Property\"]);return{type:c,timeout:m,propCount:h,hasTransform:v}}function yc(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,o)=>wc(n)+wc(e[o])))}function wc(e){return Number(e.slice(0,-1).replace(\",\",\".\"))*1e3}function k1(){return document.body.offsetHeight}const P1=new WeakMap,L1=new WeakMap,c8={name:\"TransitionGroup\",props:Ht({},u8,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ft(),o=l1();let l,a;return xl(()=>{if(!l.length)return;const r=e.moveClass||`${e.name||\"v\"}-move`;if(!h8(l[0].el,n.vnode.el,r))return;l.forEach(f8),l.forEach(p8);const u=l.filter(v8);k1(),u.forEach(s=>{const i=s.el,c=i.style;po(i,r),c.transform=c.webkitTransform=c.transitionDuration=\"\";const m=i._moveCb=h=>{h&&h.target!==i||(!h||/transform$/.test(h.propertyName))&&(i.removeEventListener(\"transitionend\",m),i._moveCb=null,Io(i,r))};i.addEventListener(\"transitionend\",m)})}),()=>{const r=it(e),u=B1(r);let s=r.tag||We;l=a,a=t.default?zi(t.default()):[];for(let i=0;i<a.length;i++){const c=a[i];c.key!=null&&Ka(c,ja(c,u,o,n))}if(l)for(let i=0;i<l.length;i++){const c=l[i];Ka(c,ja(c,u,o,n)),P1.set(c,c.el.getBoundingClientRect())}return d(s,null,a)}}},d8=c8;function f8(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function p8(e){L1.set(e,e.el.getBoundingClientRect())}function v8(e){const t=P1.get(e),n=L1.get(e),o=t.left-n.left,l=t.top-n.top;if(o||l){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${o}px,${l}px)`,a.transitionDuration=\"0s\",e}}function h8(e,t,n){const o=e.cloneNode();e._vtc&&e._vtc.forEach(r=>{r.split(/\\s+/).forEach(u=>u&&o.classList.remove(u))}),n.split(/\\s+/).forEach(r=>r&&o.classList.add(r)),o.style.display=\"none\";const l=t.nodeType===1?t:t.parentNode;l.appendChild(o);const{hasTransform:a}=S1(o);return l.removeChild(o),a}const Gl=e=>{const t=e.props[\"onUpdate:modelValue\"]||!1;return Ye(t)?n=>Mr(t,n):t};function _8(e){e.target.composing=!0}function Cc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(\"input\")))}const m8={created(e,{modifiers:{lazy:t,trim:n,number:o}},l){e._assign=Gl(l);const a=o||l.props&&l.props.type===\"number\";jo(e,t?\"change\":\"input\",r=>{if(r.target.composing)return;let u=e.value;n&&(u=u.trim()),a&&(u=tu(u)),e._assign(u)}),n&&jo(e,\"change\",()=>{e.value=e.value.trim()}),t||(jo(e,\"compositionstart\",_8),jo(e,\"compositionend\",Cc),jo(e,\"change\",Cc))},mounted(e,{value:t}){e.value=t==null?\"\":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:l}},a){if(e._assign=Gl(a),e.composing||document.activeElement===e&&e.type!==\"range\"&&(n||o&&e.value.trim()===t||(l||e.type===\"number\")&&tu(e.value)===t))return;const r=t==null?\"\":t;e.value!==r&&(e.value=r)}},ru={deep:!0,created(e,t,n){e._assign=Gl(n),jo(e,\"change\",()=>{const o=e._modelValue,l=T1(e),a=e.checked,r=e._assign;if(Ye(o)){const u=Dd(o,l),s=u!==-1;if(a&&!s)r(o.concat(l));else if(!a&&s){const i=[...o];i.splice(u,1),r(i)}}else if(gu(o)){const u=new Set(o);a?u.add(l):u.delete(l),r(u)}else r(M1(e,a))})},mounted:Ec,beforeUpdate(e,t,n){e._assign=Gl(n),Ec(e,t,n)}};function Ec(e,{value:t,oldValue:n},o){e._modelValue=t,Ye(t)?e.checked=Dd(t,o.props.value)>-1:gu(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=Wl(t,M1(e,!0)))}const z1={created(e,{value:t},n){e.checked=Wl(t,n.props.value),e._assign=Gl(n),jo(e,\"change\",()=>{e._assign(T1(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e._assign=Gl(o),t!==n&&(e.checked=Wl(t,o.props.value))}};function T1(e){return\"_value\"in e?e._value:e.value}function M1(e,t){const n=t?\"_trueValue\":\"_falseValue\";return n in e?e[n]:t}const g8=[\"ctrl\",\"shift\",\"alt\",\"meta\"],b8={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>\"button\"in e&&e.button!==0,middle:e=>\"button\"in e&&e.button!==1,right:e=>\"button\"in e&&e.button!==2,exact:(e,t)=>g8.some(n=>e[`${n}Key`]&&!t.includes(n))},ht=(e,t)=>(n,...o)=>{for(let l=0;l<t.length;l++){const a=b8[t[l]];if(a&&a(n,t))return}return e(n,...o)},y8={esc:\"escape\",space:\" \",up:\"arrow-up\",left:\"arrow-left\",right:\"arrow-right\",down:\"arrow-down\",delete:\"backspace\"},Bt=(e,t)=>n=>{if(!(\"key\"in n))return;const o=el(n.key);if(t.some(l=>l===o||y8[l]===o))return e(n)},Be={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display===\"none\"?\"\":e.style.display,n&&t?n.beforeEnter(e):Aa(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Aa(e,!0),o.enter(e)):o.leave(e,()=>{Aa(e,!1)}):Aa(e,t))},beforeUnmount(e,{value:t}){Aa(e,t)}};function Aa(e,t){e.style.display=t?e._vod:\"none\"}const w8=Ht({patchProp:a8},W3);let Ac;function V1(){return Ac||(Ac=C3(w8))}const Yl=(...e)=>{V1().render(...e)},H1=(...e)=>{const t=V1().createApp(...e),{mount:n}=t;return t.mount=o=>{const l=C8(o);if(!l)return;const a=t._component;!Je(a)&&!a.render&&!a.template&&(a.template=l.innerHTML),l.innerHTML=\"\";const r=n(l,!1,l instanceof SVGElement);return l instanceof Element&&(l.removeAttribute(\"v-cloak\"),l.setAttribute(\"data-v-app\",\"\")),r},t};function C8(e){return tt(e)?document.querySelector(e):e}var E8=typeof global==\"object\"&&global&&global.Object===Object&&global,I1=E8,A8=typeof self==\"object\"&&self&&self.Object===Object&&self,F8=I1||A8||Function(\"return this\")(),Un=F8,x8=Un.Symbol,lo=x8,R1=Object.prototype,$8=R1.hasOwnProperty,D8=R1.toString,Fa=lo?lo.toStringTag:void 0;function B8(e){var t=$8.call(e,Fa),n=e[Fa];try{e[Fa]=void 0;var o=!0}catch{}var l=D8.call(e);return o&&(t?e[Fa]=n:delete e[Fa]),l}var S8=Object.prototype,k8=S8.toString;function P8(e){return k8.call(e)}var L8=\"[object Null]\",z8=\"[object Undefined]\",Fc=lo?lo.toStringTag:void 0;function fa(e){return e==null?e===void 0?z8:L8:Fc&&Fc in Object(e)?B8(e):P8(e)}function Jo(e){return e!=null&&typeof e==\"object\"}var T8=\"[object Symbol]\";function Su(e){return typeof e==\"symbol\"||Jo(e)&&fa(e)==T8}function M8(e,t){for(var n=-1,o=e==null?0:e.length,l=Array(o);++n<o;)l[n]=t(e[n],n,e);return l}var V8=Array.isArray,Ao=V8,H8=1/0,xc=lo?lo.prototype:void 0,$c=xc?xc.toString:void 0;function N1(e){if(typeof e==\"string\")return e;if(Ao(e))return M8(e,N1)+\"\";if(Su(e))return $c?$c.call(e):\"\";var t=e+\"\";return t==\"0\"&&1/e==-H8?\"-0\":t}var I8=/\\s/;function R8(e){for(var t=e.length;t--&&I8.test(e.charAt(t)););return t}var N8=/^\\s+/;function O8(e){return e&&e.slice(0,R8(e)+1).replace(N8,\"\")}function ao(e){var t=typeof e;return e!=null&&(t==\"object\"||t==\"function\")}var Dc=0/0,U8=/^[-+]0x[0-9a-f]+$/i,W8=/^0b[01]+$/i,q8=/^0o[0-7]+$/i,j8=parseInt;function Bc(e){if(typeof e==\"number\")return e;if(Su(e))return Dc;if(ao(e)){var t=typeof e.valueOf==\"function\"?e.valueOf():e;e=ao(t)?t+\"\":t}if(typeof e!=\"string\")return e===0?e:+e;e=O8(e);var n=W8.test(e);return n||q8.test(e)?j8(e.slice(2),n?2:8):U8.test(e)?Dc:+e}var K8=\"[object AsyncFunction]\",G8=\"[object Function]\",Y8=\"[object GeneratorFunction]\",X8=\"[object Proxy]\";function O1(e){if(!ao(e))return!1;var t=fa(e);return t==G8||t==Y8||t==K8||t==X8}var J8=Un[\"__core-js_shared__\"],ls=J8,Sc=function(){var e=/[^.]+$/.exec(ls&&ls.keys&&ls.keys.IE_PROTO||\"\");return e?\"Symbol(src)_1.\"+e:\"\"}();function Q8(e){return!!Sc&&Sc in e}var Z8=Function.prototype,ev=Z8.toString;function $l(e){if(e!=null){try{return ev.call(e)}catch{}try{return e+\"\"}catch{}}return\"\"}var tv=/[\\\\^$.*+?()[\\]{}|]/g,nv=/^\\[object .+?Constructor\\]$/,ov=Function.prototype,lv=Object.prototype,av=ov.toString,rv=lv.hasOwnProperty,uv=RegExp(\"^\"+av.call(rv).replace(tv,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function sv(e){if(!ao(e)||Q8(e))return!1;var t=O1(e)?uv:nv;return t.test($l(e))}function iv(e,t){return e==null?void 0:e[t]}function Dl(e,t){var n=iv(e,t);return sv(n)?n:void 0}var cv=Dl(Un,\"WeakMap\"),Hs=cv,kc=Object.create,dv=function(){function e(){}return function(t){if(!ao(t))return{};if(kc)return kc(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),fv=dv;function pv(e,t){var n=-1,o=e.length;for(t||(t=Array(o));++n<o;)t[n]=e[n];return t}var vv=function(){try{var e=Dl(Object,\"defineProperty\");return e({},\"\",{}),e}catch{}}(),Pc=vv;function hv(e,t){for(var n=-1,o=e==null?0:e.length;++n<o&&t(e[n],n,e)!==!1;);return e}var _v=9007199254740991,mv=/^(?:0|[1-9]\\d*)$/;function U1(e,t){var n=typeof e;return t=t==null?_v:t,!!t&&(n==\"number\"||n!=\"symbol\"&&mv.test(e))&&e>-1&&e%1==0&&e<t}function W1(e,t,n){t==\"__proto__\"&&Pc?Pc(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Oi(e,t){return e===t||e!==e&&t!==t}var gv=Object.prototype,bv=gv.hasOwnProperty;function Ui(e,t,n){var o=e[t];(!(bv.call(e,t)&&Oi(o,n))||n===void 0&&!(t in e))&&W1(e,t,n)}function ku(e,t,n,o){var l=!n;n||(n={});for(var a=-1,r=t.length;++a<r;){var u=t[a],s=o?o(n[u],e[u],u,n,e):void 0;s===void 0&&(s=e[u]),l?W1(n,u,s):Ui(n,u,s)}return n}var yv=9007199254740991;function q1(e){return typeof e==\"number\"&&e>-1&&e%1==0&&e<=yv}function j1(e){return e!=null&&q1(e.length)&&!O1(e)}var wv=Object.prototype;function Wi(e){var t=e&&e.constructor,n=typeof t==\"function\"&&t.prototype||wv;return e===n}function Cv(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}var Ev=\"[object Arguments]\";function Lc(e){return Jo(e)&&fa(e)==Ev}var K1=Object.prototype,Av=K1.hasOwnProperty,Fv=K1.propertyIsEnumerable,xv=Lc(function(){return arguments}())?Lc:function(e){return Jo(e)&&Av.call(e,\"callee\")&&!Fv.call(e,\"callee\")},$v=xv;function Dv(){return!1}var G1=typeof vn==\"object\"&&vn&&!vn.nodeType&&vn,zc=G1&&typeof hn==\"object\"&&hn&&!hn.nodeType&&hn,Bv=zc&&zc.exports===G1,Tc=Bv?Un.Buffer:void 0,Sv=Tc?Tc.isBuffer:void 0,kv=Sv||Dv,uu=kv,Pv=\"[object Arguments]\",Lv=\"[object Array]\",zv=\"[object Boolean]\",Tv=\"[object Date]\",Mv=\"[object Error]\",Vv=\"[object Function]\",Hv=\"[object Map]\",Iv=\"[object Number]\",Rv=\"[object Object]\",Nv=\"[object RegExp]\",Ov=\"[object Set]\",Uv=\"[object String]\",Wv=\"[object WeakMap]\",qv=\"[object ArrayBuffer]\",jv=\"[object DataView]\",Kv=\"[object Float32Array]\",Gv=\"[object Float64Array]\",Yv=\"[object Int8Array]\",Xv=\"[object Int16Array]\",Jv=\"[object Int32Array]\",Qv=\"[object Uint8Array]\",Zv=\"[object Uint8ClampedArray]\",e5=\"[object Uint16Array]\",t5=\"[object Uint32Array]\",xt={};xt[Kv]=xt[Gv]=xt[Yv]=xt[Xv]=xt[Jv]=xt[Qv]=xt[Zv]=xt[e5]=xt[t5]=!0;xt[Pv]=xt[Lv]=xt[qv]=xt[zv]=xt[jv]=xt[Tv]=xt[Mv]=xt[Vv]=xt[Hv]=xt[Iv]=xt[Rv]=xt[Nv]=xt[Ov]=xt[Uv]=xt[Wv]=!1;function n5(e){return Jo(e)&&q1(e.length)&&!!xt[fa(e)]}function qi(e){return function(t){return e(t)}}var Y1=typeof vn==\"object\"&&vn&&!vn.nodeType&&vn,Ta=Y1&&typeof hn==\"object\"&&hn&&!hn.nodeType&&hn,o5=Ta&&Ta.exports===Y1,as=o5&&I1.process,l5=function(){try{var e=Ta&&Ta.require&&Ta.require(\"util\").types;return e||as&&as.binding&&as.binding(\"util\")}catch{}}(),Xl=l5,Mc=Xl&&Xl.isTypedArray,a5=Mc?qi(Mc):n5,X1=a5,r5=Object.prototype,u5=r5.hasOwnProperty;function J1(e,t){var n=Ao(e),o=!n&&$v(e),l=!n&&!o&&uu(e),a=!n&&!o&&!l&&X1(e),r=n||o||l||a,u=r?Cv(e.length,String):[],s=u.length;for(var i in e)(t||u5.call(e,i))&&!(r&&(i==\"length\"||l&&(i==\"offset\"||i==\"parent\")||a&&(i==\"buffer\"||i==\"byteLength\"||i==\"byteOffset\")||U1(i,s)))&&u.push(i);return u}function Q1(e,t){return function(n){return e(t(n))}}var s5=Q1(Object.keys,Object),i5=s5,c5=Object.prototype,d5=c5.hasOwnProperty;function f5(e){if(!Wi(e))return i5(e);var t=[];for(var n in Object(e))d5.call(e,n)&&n!=\"constructor\"&&t.push(n);return t}function ji(e){return j1(e)?J1(e):f5(e)}function p5(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var v5=Object.prototype,h5=v5.hasOwnProperty;function _5(e){if(!ao(e))return p5(e);var t=Wi(e),n=[];for(var o in e)o==\"constructor\"&&(t||!h5.call(e,o))||n.push(o);return n}function Ki(e){return j1(e)?J1(e,!0):_5(e)}var m5=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,g5=/^\\w*$/;function b5(e,t){if(Ao(e))return!1;var n=typeof e;return n==\"number\"||n==\"symbol\"||n==\"boolean\"||e==null||Su(e)?!0:g5.test(e)||!m5.test(e)||t!=null&&e in Object(t)}var y5=Dl(Object,\"create\"),Xa=y5;function w5(){this.__data__=Xa?Xa(null):{},this.size=0}function C5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E5=\"__lodash_hash_undefined__\",A5=Object.prototype,F5=A5.hasOwnProperty;function x5(e){var t=this.__data__;if(Xa){var n=t[e];return n===E5?void 0:n}return F5.call(t,e)?t[e]:void 0}var $5=Object.prototype,D5=$5.hasOwnProperty;function B5(e){var t=this.__data__;return Xa?t[e]!==void 0:D5.call(t,e)}var S5=\"__lodash_hash_undefined__\";function k5(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Xa&&t===void 0?S5:t,this}function wl(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}wl.prototype.clear=w5;wl.prototype.delete=C5;wl.prototype.get=x5;wl.prototype.has=B5;wl.prototype.set=k5;function P5(){this.__data__=[],this.size=0}function Pu(e,t){for(var n=e.length;n--;)if(Oi(e[n][0],t))return n;return-1}var L5=Array.prototype,z5=L5.splice;function T5(e){var t=this.__data__,n=Pu(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():z5.call(t,n,1),--this.size,!0}function M5(e){var t=this.__data__,n=Pu(t,e);return n<0?void 0:t[n][1]}function V5(e){return Pu(this.__data__,e)>-1}function H5(e,t){var n=this.__data__,o=Pu(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function ko(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}ko.prototype.clear=P5;ko.prototype.delete=T5;ko.prototype.get=M5;ko.prototype.has=V5;ko.prototype.set=H5;var I5=Dl(Un,\"Map\"),Ja=I5;function R5(){this.size=0,this.__data__={hash:new wl,map:new(Ja||ko),string:new wl}}function N5(e){var t=typeof e;return t==\"string\"||t==\"number\"||t==\"symbol\"||t==\"boolean\"?e!==\"__proto__\":e===null}function Lu(e,t){var n=e.__data__;return N5(t)?n[typeof t==\"string\"?\"string\":\"hash\"]:n.map}function O5(e){var t=Lu(this,e).delete(e);return this.size-=t?1:0,t}function U5(e){return Lu(this,e).get(e)}function W5(e){return Lu(this,e).has(e)}function q5(e,t){var n=Lu(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}function Po(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}Po.prototype.clear=R5;Po.prototype.delete=O5;Po.prototype.get=U5;Po.prototype.has=W5;Po.prototype.set=q5;var j5=\"Expected a function\";function Gi(e,t){if(typeof e!=\"function\"||t!=null&&typeof t!=\"function\")throw new TypeError(j5);var n=function(){var o=arguments,l=t?t.apply(this,o):o[0],a=n.cache;if(a.has(l))return a.get(l);var r=e.apply(this,o);return n.cache=a.set(l,r)||a,r};return n.cache=new(Gi.Cache||Po),n}Gi.Cache=Po;var K5=500;function G5(e){var t=Gi(e,function(o){return n.size===K5&&n.clear(),o}),n=t.cache;return t}var Y5=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,X5=/\\\\(\\\\)?/g,J5=G5(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(\"\"),e.replace(Y5,function(n,o,l,a){t.push(l?a.replace(X5,\"$1\"):o||n)}),t}),Q5=J5;function Z5(e){return e==null?\"\":N1(e)}function Z1(e,t){return Ao(e)?e:b5(e,t)?[e]:Q5(Z5(e))}var eh=1/0;function ef(e){if(typeof e==\"string\"||Su(e))return e;var t=e+\"\";return t==\"0\"&&1/e==-eh?\"-0\":t}function th(e,t){t=Z1(t,e);for(var n=0,o=t.length;e!=null&&n<o;)e=e[ef(t[n++])];return n&&n==o?e:void 0}function Jt(e,t,n){var o=e==null?void 0:th(e,t);return o===void 0?n:o}function tf(e,t){for(var n=-1,o=t.length,l=e.length;++n<o;)e[l+n]=t[n];return e}var nh=Q1(Object.getPrototypeOf,Object),nf=nh;function Qa(){if(!arguments.length)return[];var e=arguments[0];return Ao(e)?e:[e]}function oh(){this.__data__=new ko,this.size=0}function lh(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function ah(e){return this.__data__.get(e)}function rh(e){return this.__data__.has(e)}var uh=200;function sh(e,t){var n=this.__data__;if(n instanceof ko){var o=n.__data__;if(!Ja||o.length<uh-1)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new Po(o)}return n.set(e,t),this.size=n.size,this}function wo(e){var t=this.__data__=new ko(e);this.size=t.size}wo.prototype.clear=oh;wo.prototype.delete=lh;wo.prototype.get=ah;wo.prototype.has=rh;wo.prototype.set=sh;function ih(e,t){return e&&ku(t,ji(t),e)}function ch(e,t){return e&&ku(t,Ki(t),e)}var of=typeof vn==\"object\"&&vn&&!vn.nodeType&&vn,Vc=of&&typeof hn==\"object\"&&hn&&!hn.nodeType&&hn,dh=Vc&&Vc.exports===of,Hc=dh?Un.Buffer:void 0,Ic=Hc?Hc.allocUnsafe:void 0;function fh(e,t){if(t)return e.slice();var n=e.length,o=Ic?Ic(n):new e.constructor(n);return e.copy(o),o}function ph(e,t){for(var n=-1,o=e==null?0:e.length,l=0,a=[];++n<o;){var r=e[n];t(r,n,e)&&(a[l++]=r)}return a}function lf(){return[]}var vh=Object.prototype,hh=vh.propertyIsEnumerable,Rc=Object.getOwnPropertySymbols,_h=Rc?function(e){return e==null?[]:(e=Object(e),ph(Rc(e),function(t){return hh.call(e,t)}))}:lf,Yi=_h;function mh(e,t){return ku(e,Yi(e),t)}var gh=Object.getOwnPropertySymbols,bh=gh?function(e){for(var t=[];e;)tf(t,Yi(e)),e=nf(e);return t}:lf,af=bh;function yh(e,t){return ku(e,af(e),t)}function rf(e,t,n){var o=t(e);return Ao(e)?o:tf(o,n(e))}function Is(e){return rf(e,ji,Yi)}function wh(e){return rf(e,Ki,af)}var Ch=Dl(Un,\"DataView\"),Rs=Ch,Eh=Dl(Un,\"Promise\"),Ns=Eh,Ah=Dl(Un,\"Set\"),Os=Ah,Nc=\"[object Map]\",Fh=\"[object Object]\",Oc=\"[object Promise]\",Uc=\"[object Set]\",Wc=\"[object WeakMap]\",qc=\"[object DataView]\",xh=$l(Rs),$h=$l(Ja),Dh=$l(Ns),Bh=$l(Os),Sh=$l(Hs),ul=fa;(Rs&&ul(new Rs(new ArrayBuffer(1)))!=qc||Ja&&ul(new Ja)!=Nc||Ns&&ul(Ns.resolve())!=Oc||Os&&ul(new Os)!=Uc||Hs&&ul(new Hs)!=Wc)&&(ul=function(e){var t=fa(e),n=t==Fh?e.constructor:void 0,o=n?$l(n):\"\";if(o)switch(o){case xh:return qc;case $h:return Nc;case Dh:return Oc;case Bh:return Uc;case Sh:return Wc}return t});var Za=ul,kh=Object.prototype,Ph=kh.hasOwnProperty;function Lh(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==\"string\"&&Ph.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}var zh=Un.Uint8Array,su=zh;function Xi(e){var t=new e.constructor(e.byteLength);return new su(t).set(new su(e)),t}function Th(e,t){var n=t?Xi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Mh=/\\w*$/;function Vh(e){var t=new e.constructor(e.source,Mh.exec(e));return t.lastIndex=e.lastIndex,t}var jc=lo?lo.prototype:void 0,Kc=jc?jc.valueOf:void 0;function Hh(e){return Kc?Object(Kc.call(e)):{}}function Ih(e,t){var n=t?Xi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var Rh=\"[object Boolean]\",Nh=\"[object Date]\",Oh=\"[object Map]\",Uh=\"[object Number]\",Wh=\"[object RegExp]\",qh=\"[object Set]\",jh=\"[object String]\",Kh=\"[object Symbol]\",Gh=\"[object ArrayBuffer]\",Yh=\"[object DataView]\",Xh=\"[object Float32Array]\",Jh=\"[object Float64Array]\",Qh=\"[object Int8Array]\",Zh=\"[object Int16Array]\",e_=\"[object Int32Array]\",t_=\"[object Uint8Array]\",n_=\"[object Uint8ClampedArray]\",o_=\"[object Uint16Array]\",l_=\"[object Uint32Array]\";function a_(e,t,n){var o=e.constructor;switch(t){case Gh:return Xi(e);case Rh:case Nh:return new o(+e);case Yh:return Th(e,n);case Xh:case Jh:case Qh:case Zh:case e_:case t_:case n_:case o_:case l_:return Ih(e,n);case Oh:return new o;case Uh:case jh:return new o(e);case Wh:return Vh(e);case qh:return new o;case Kh:return Hh(e)}}function r_(e){return typeof e.constructor==\"function\"&&!Wi(e)?fv(nf(e)):{}}var u_=\"[object Map]\";function s_(e){return Jo(e)&&Za(e)==u_}var Gc=Xl&&Xl.isMap,i_=Gc?qi(Gc):s_,c_=i_,d_=\"[object Set]\";function f_(e){return Jo(e)&&Za(e)==d_}var Yc=Xl&&Xl.isSet,p_=Yc?qi(Yc):f_,v_=p_,h_=1,__=2,m_=4,uf=\"[object Arguments]\",g_=\"[object Array]\",b_=\"[object Boolean]\",y_=\"[object Date]\",w_=\"[object Error]\",sf=\"[object Function]\",C_=\"[object GeneratorFunction]\",E_=\"[object Map]\",A_=\"[object Number]\",cf=\"[object Object]\",F_=\"[object RegExp]\",x_=\"[object Set]\",$_=\"[object String]\",D_=\"[object Symbol]\",B_=\"[object WeakMap]\",S_=\"[object ArrayBuffer]\",k_=\"[object DataView]\",P_=\"[object Float32Array]\",L_=\"[object Float64Array]\",z_=\"[object Int8Array]\",T_=\"[object Int16Array]\",M_=\"[object Int32Array]\",V_=\"[object Uint8Array]\",H_=\"[object Uint8ClampedArray]\",I_=\"[object Uint16Array]\",R_=\"[object Uint32Array]\",wt={};wt[uf]=wt[g_]=wt[S_]=wt[k_]=wt[b_]=wt[y_]=wt[P_]=wt[L_]=wt[z_]=wt[T_]=wt[M_]=wt[E_]=wt[A_]=wt[cf]=wt[F_]=wt[x_]=wt[$_]=wt[D_]=wt[V_]=wt[H_]=wt[I_]=wt[R_]=!0;wt[w_]=wt[sf]=wt[B_]=!1;function Ir(e,t,n,o,l,a){var r,u=t&h_,s=t&__,i=t&m_;if(n&&(r=l?n(e,o,l,a):n(e)),r!==void 0)return r;if(!ao(e))return e;var c=Ao(e);if(c){if(r=Lh(e),!u)return pv(e,r)}else{var m=Za(e),h=m==sf||m==C_;if(uu(e))return fh(e,u);if(m==cf||m==uf||h&&!l){if(r=s||h?{}:r_(e),!u)return s?yh(e,ch(r,e)):mh(e,ih(r,e))}else{if(!wt[m])return l?e:{};r=a_(e,m,u)}}a||(a=new wo);var v=a.get(e);if(v)return v;a.set(e,r),v_(e)?e.forEach(function(A){r.add(Ir(A,t,n,A,e,a))}):c_(e)&&e.forEach(function(A,w){r.set(w,Ir(A,t,n,w,e,a))});var g=i?s?wh:Is:s?Ki:ji,y=c?void 0:g(e);return hv(y||e,function(A,w){y&&(w=A,A=e[w]),Ui(r,w,Ir(A,t,n,w,e,a))}),r}var N_=4;function Xc(e){return Ir(e,N_)}var O_=\"__lodash_hash_undefined__\";function U_(e){return this.__data__.set(e,O_),this}function W_(e){return this.__data__.has(e)}function iu(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Po;++t<n;)this.add(e[t])}iu.prototype.add=iu.prototype.push=U_;iu.prototype.has=W_;function q_(e,t){for(var n=-1,o=e==null?0:e.length;++n<o;)if(t(e[n],n,e))return!0;return!1}function j_(e,t){return e.has(t)}var K_=1,G_=2;function df(e,t,n,o,l,a){var r=n&K_,u=e.length,s=t.length;if(u!=s&&!(r&&s>u))return!1;var i=a.get(e),c=a.get(t);if(i&&c)return i==t&&c==e;var m=-1,h=!0,v=n&G_?new iu:void 0;for(a.set(e,t),a.set(t,e);++m<u;){var g=e[m],y=t[m];if(o)var A=r?o(y,g,m,t,e,a):o(g,y,m,e,t,a);if(A!==void 0){if(A)continue;h=!1;break}if(v){if(!q_(t,function(w,F){if(!j_(v,F)&&(g===w||l(g,w,n,o,a)))return v.push(F)})){h=!1;break}}else if(!(g===y||l(g,y,n,o,a))){h=!1;break}}return a.delete(e),a.delete(t),h}function Y_(e){var t=-1,n=Array(e.size);return e.forEach(function(o,l){n[++t]=[l,o]}),n}function X_(e){var t=-1,n=Array(e.size);return e.forEach(function(o){n[++t]=o}),n}var J_=1,Q_=2,Z_=\"[object Boolean]\",em=\"[object Date]\",tm=\"[object Error]\",nm=\"[object Map]\",om=\"[object Number]\",lm=\"[object RegExp]\",am=\"[object Set]\",rm=\"[object String]\",um=\"[object Symbol]\",sm=\"[object ArrayBuffer]\",im=\"[object DataView]\",Jc=lo?lo.prototype:void 0,rs=Jc?Jc.valueOf:void 0;function cm(e,t,n,o,l,a,r){switch(n){case im:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case sm:return!(e.byteLength!=t.byteLength||!a(new su(e),new su(t)));case Z_:case em:case om:return Oi(+e,+t);case tm:return e.name==t.name&&e.message==t.message;case lm:case rm:return e==t+\"\";case nm:var u=Y_;case am:var s=o&J_;if(u||(u=X_),e.size!=t.size&&!s)return!1;var i=r.get(e);if(i)return i==t;o|=Q_,r.set(e,t);var c=df(u(e),u(t),o,l,a,r);return r.delete(e),c;case um:if(rs)return rs.call(e)==rs.call(t)}return!1}var dm=1,fm=Object.prototype,pm=fm.hasOwnProperty;function vm(e,t,n,o,l,a){var r=n&dm,u=Is(e),s=u.length,i=Is(t),c=i.length;if(s!=c&&!r)return!1;for(var m=s;m--;){var h=u[m];if(!(r?h in t:pm.call(t,h)))return!1}var v=a.get(e),g=a.get(t);if(v&&g)return v==t&&g==e;var y=!0;a.set(e,t),a.set(t,e);for(var A=r;++m<s;){h=u[m];var w=e[h],F=t[h];if(o)var E=r?o(F,w,h,t,e,a):o(w,F,h,e,t,a);if(!(E===void 0?w===F||l(w,F,n,o,a):E)){y=!1;break}A||(A=h==\"constructor\")}if(y&&!A){var $=e.constructor,T=t.constructor;$!=T&&\"constructor\"in e&&\"constructor\"in t&&!(typeof $==\"function\"&&$ instanceof $&&typeof T==\"function\"&&T instanceof T)&&(y=!1)}return a.delete(e),a.delete(t),y}var hm=1,Qc=\"[object Arguments]\",Zc=\"[object Array]\",Er=\"[object Object]\",_m=Object.prototype,e0=_m.hasOwnProperty;function mm(e,t,n,o,l,a){var r=Ao(e),u=Ao(t),s=r?Zc:Za(e),i=u?Zc:Za(t);s=s==Qc?Er:s,i=i==Qc?Er:i;var c=s==Er,m=i==Er,h=s==i;if(h&&uu(e)){if(!uu(t))return!1;r=!0,c=!1}if(h&&!c)return a||(a=new wo),r||X1(e)?df(e,t,n,o,l,a):cm(e,t,s,n,o,l,a);if(!(n&hm)){var v=c&&e0.call(e,\"__wrapped__\"),g=m&&e0.call(t,\"__wrapped__\");if(v||g){var y=v?e.value():e,A=g?t.value():t;return a||(a=new wo),l(y,A,n,o,a)}}return h?(a||(a=new wo),vm(e,t,n,o,l,a)):!1}function ff(e,t,n,o,l){return e===t?!0:e==null||t==null||!Jo(e)&&!Jo(t)?e!==e&&t!==t:mm(e,t,n,o,ff,l)}var gm=function(){return Un.Date.now()},us=gm,bm=\"Expected a function\",ym=Math.max,wm=Math.min;function Jl(e,t,n){var o,l,a,r,u,s,i=0,c=!1,m=!1,h=!0;if(typeof e!=\"function\")throw new TypeError(bm);t=Bc(t)||0,ao(n)&&(c=!!n.leading,m=\"maxWait\"in n,a=m?ym(Bc(n.maxWait)||0,t):a,h=\"trailing\"in n?!!n.trailing:h);function v(B){var P=o,H=l;return o=l=void 0,i=B,r=e.apply(H,P),r}function g(B){return i=B,u=setTimeout(w,t),c?v(B):r}function y(B){var P=B-s,H=B-i,I=t-P;return m?wm(I,a-H):I}function A(B){var P=B-s,H=B-i;return s===void 0||P>=t||P<0||m&&H>=a}function w(){var B=us();if(A(B))return F(B);u=setTimeout(w,y(B))}function F(B){return u=void 0,h&&o?v(B):(o=l=void 0,r)}function E(){u!==void 0&&clearTimeout(u),i=0,o=s=l=u=void 0}function $(){return u===void 0?r:F(us())}function T(){var B=us(),P=A(B);if(o=arguments,l=this,s=B,P){if(u===void 0)return g(s);if(m)return clearTimeout(u),u=setTimeout(w,t),v(s)}return u===void 0&&(u=setTimeout(w,t)),r}return T.cancel=E,T.flush=$,T}function pf(e){for(var t=-1,n=e==null?0:e.length,o={};++t<n;){var l=e[t];o[l[0]]=l[1]}return o}function Us(e,t){return ff(e,t)}function no(e){return e==null}function Cm(e,t,n,o){if(!ao(e))return e;t=Z1(t,e);for(var l=-1,a=t.length,r=a-1,u=e;u!=null&&++l<a;){var s=ef(t[l]),i=n;if(s===\"__proto__\"||s===\"constructor\"||s===\"prototype\")return e;if(l!=r){var c=u[s];i=o?o(c,s,u):void 0,i===void 0&&(i=ao(c)?c:U1(t[l+1])?[]:{})}Ui(u,s,i),u=u[s]}return e}function Em(e,t,n){return e==null?e:Cm(e,t,n)}const Am='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])',Fm=e=>getComputedStyle(e).position===\"fixed\"?!1:e.offsetParent!==null,t0=e=>Array.from(e.querySelectorAll(Am)).filter(t=>xm(t)&&Fm(t)),xm=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(\"tabIndex\")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case\"A\":return!!e.href&&e.rel!==\"ignore\";case\"INPUT\":return!(e.type===\"hidden\"||e.type===\"file\");case\"BUTTON\":case\"SELECT\":case\"TEXTAREA\":return!0;default:return!1}},Rr=function(e,t,...n){let o;t.includes(\"mouse\")||t.includes(\"click\")?o=\"MouseEvents\":t.includes(\"key\")?o=\"KeyboardEvent\":o=\"HTMLEvents\";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},_o=(e,t,{checkForDefaultPrevented:n=!0}={})=>l=>{const a=e==null?void 0:e(l);if(n===!1||!a)return t==null?void 0:t(l)};var n0;const _t=typeof window!=\"undefined\",$m=e=>typeof e!=\"undefined\",Gt=e=>typeof e==\"boolean\",Dm=e=>typeof e==\"function\",mt=e=>typeof e==\"number\",Bm=e=>typeof e==\"string\",ss=()=>{};_t&&((n0=window==null?void 0:window.navigator)==null?void 0:n0.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function cu(e){return typeof e==\"function\"?e():_(e)}function Sm(e,t){function n(...o){e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})}return n}function km(e,t={}){let n,o;return a=>{const r=cu(e),u=cu(t.maxWait);if(n&&clearTimeout(n),r<=0||u!==void 0&&u<=0)return o&&(clearTimeout(o),o=null),a();u&&!o&&(o=setTimeout(()=>{n&&clearTimeout(n),o=null,a()},u)),n=setTimeout(()=>{o&&clearTimeout(o),o=null,a()},r)}}function Pm(e){return e}function zu(e){return ap()?(Pd(e),!0):!1}function Lm(e,t=200,n={}){return Sm(km(t,n),e)}function zm(e,t=200,n={}){if(t<=0)return e;const o=z(e.value),l=Lm(()=>{o.value=e.value},t,n);return Ve(e,()=>l()),o}function Ji(e,t=!0){ft()?at(e):t?e():rt(e)}function Ql(e,t,n={}){const{immediate:o=!0}=n,l=z(!1);let a=null;function r(){a&&(clearTimeout(a),a=null)}function u(){l.value=!1,r()}function s(...i){r(),l.value=!0,a=setTimeout(()=>{l.value=!1,a=null,e(...i)},cu(t))}return o&&(l.value=!0,_t&&s()),zu(u),{isPending:l,start:s,stop:u}}function Zn(e){var t;const n=cu(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Tu=_t?window:void 0;function Kt(...e){let t,n,o,l;if(Bm(e[0])?([n,o,l]=e,t=Tu):[t,n,o,l]=e,!t)return ss;let a=ss;const r=Ve(()=>Zn(t),s=>{a(),s&&(s.addEventListener(n,o,l),a=()=>{s.removeEventListener(n,o,l),a=ss})},{immediate:!0,flush:\"post\"}),u=()=>{r(),a()};return zu(u),u}function Tm(e,t,n={}){const{window:o=Tu,ignore:l,capture:a=!0,detectIframe:r=!1}=n;if(!o)return;const u=z(!0);let s;const i=v=>{o.clearTimeout(s);const g=Zn(e);!g||g===v.target||v.composedPath().includes(g)||!u.value||t(v)},c=v=>l&&l.some(g=>{const y=Zn(g);return y&&(v.target===y||v.composedPath().includes(y))}),m=[Kt(o,\"click\",i,{passive:!0,capture:a}),Kt(o,\"pointerdown\",v=>{const g=Zn(e);u.value=!!g&&!v.composedPath().includes(g)&&!c(v)},{passive:!0}),Kt(o,\"pointerup\",v=>{if(v.button===0){const g=v.composedPath();v.composedPath=()=>g,s=o.setTimeout(()=>i(v),50)}},{passive:!0}),r&&Kt(o,\"blur\",v=>{var g;const y=Zn(e);((g=document.activeElement)==null?void 0:g.tagName)===\"IFRAME\"&&!(y!=null&&y.contains(document.activeElement))&&t(v)})].filter(Boolean);return()=>m.forEach(v=>v())}function Mm(e,t=!1){const n=z(),o=()=>n.value=Boolean(e());return o(),Ji(o,t),n}function Vm(e){return JSON.parse(JSON.stringify(e))}const Ws=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:{},qs=\"__vueuse_ssr_handlers__\";Ws[qs]=Ws[qs]||{};Ws[qs];var o0=Object.getOwnPropertySymbols,Hm=Object.prototype.hasOwnProperty,Im=Object.prototype.propertyIsEnumerable,Rm=(e,t)=>{var n={};for(var o in e)Hm.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&o0)for(var o of o0(e))t.indexOf(o)<0&&Im.call(e,o)&&(n[o]=e[o]);return n};function ro(e,t,n={}){const o=n,{window:l=Tu}=o,a=Rm(o,[\"window\"]);let r;const u=Mm(()=>l&&\"ResizeObserver\"in l),s=()=>{r&&(r.disconnect(),r=void 0)},i=Ve(()=>Zn(e),m=>{s(),u.value&&l&&m&&(r=new ResizeObserver(t),r.observe(m,a))},{immediate:!0,flush:\"post\"}),c=()=>{s(),i()};return zu(c),{isSupported:u,stop:c}}function l0(e,t={}){const{reset:n=!0,windowResize:o=!0,windowScroll:l=!0,immediate:a=!0}=t,r=z(0),u=z(0),s=z(0),i=z(0),c=z(0),m=z(0),h=z(0),v=z(0);function g(){const y=Zn(e);if(!y){n&&(r.value=0,u.value=0,s.value=0,i.value=0,c.value=0,m.value=0,h.value=0,v.value=0);return}const A=y.getBoundingClientRect();r.value=A.height,u.value=A.bottom,s.value=A.left,i.value=A.right,c.value=A.top,m.value=A.width,h.value=A.x,v.value=A.y}return ro(e,g),Ve(()=>Zn(e),y=>!y&&g()),l&&Kt(\"scroll\",g,{passive:!0}),o&&Kt(\"resize\",g,{passive:!0}),Ji(()=>{a&&g()}),{height:r,bottom:u,left:s,right:i,top:c,width:m,x:h,y:v,update:g}}var a0;(function(e){e.UP=\"UP\",e.RIGHT=\"RIGHT\",e.DOWN=\"DOWN\",e.LEFT=\"LEFT\",e.NONE=\"NONE\"})(a0||(a0={}));var Nm=Object.defineProperty,r0=Object.getOwnPropertySymbols,Om=Object.prototype.hasOwnProperty,Um=Object.prototype.propertyIsEnumerable,u0=(e,t,n)=>t in e?Nm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wm=(e,t)=>{for(var n in t||(t={}))Om.call(t,n)&&u0(e,n,t[n]);if(r0)for(var n of r0(t))Um.call(t,n)&&u0(e,n,t[n]);return e};const qm={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Wm({linear:Pm},qm);function jm(e,t,n,o={}){var l,a,r;const{clone:u=!1,passive:s=!1,eventName:i,deep:c=!1,defaultValue:m}=o,h=ft(),v=n||(h==null?void 0:h.emit)||((l=h==null?void 0:h.$emit)==null?void 0:l.bind(h))||((r=(a=h==null?void 0:h.proxy)==null?void 0:a.$emit)==null?void 0:r.bind(h==null?void 0:h.proxy));let g=i;t||(t=\"modelValue\"),g=i||g||`update:${t.toString()}`;const y=w=>u?Dm(u)?u(w):Vm(w):w,A=()=>$m(e[t])?y(e[t]):m;if(s){const w=A(),F=z(w);return Ve(()=>e[t],E=>F.value=y(E)),Ve(F,E=>{(E!==e[t]||c)&&v(g,E)},{deep:c}),F}else return R({get(){return A()},set(w){v(g,w)}})}function Km(e={}){const{window:t=Tu,initialWidth:n=1/0,initialHeight:o=1/0,listenOrientation:l=!0,includeScrollbar:a=!0}=e,r=z(n),u=z(o),s=()=>{t&&(a?(r.value=t.innerWidth,u.value=t.innerHeight):(r.value=t.document.documentElement.clientWidth,u.value=t.document.documentElement.clientHeight))};return s(),Ji(s),Kt(\"resize\",s,{passive:!0}),l&&Kt(\"orientationchange\",s,{passive:!0}),{width:r,height:u}}const Ko=e=>e===void 0,Qo=e=>typeof Element==\"undefined\"?!1:e instanceof Element,Gm=(e=\"\")=>e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\"),s0=e=>Object.keys(e),Ym=e=>Object.entries(e),Nr=(e,t,n)=>({get value(){return Jt(e,t,n)},set value(o){Em(e,t,o)}});class Xm extends Error{constructor(t){super(t),this.name=\"ElementPlusError\"}}function gn(e,t){throw new Xm(`[${e}] ${t}`)}const vf=(e=\"\")=>e.split(\" \").filter(t=>!!t.trim()),bl=(e,t)=>{if(!e||!t)return!1;if(t.includes(\" \"))throw new Error(\"className should not contain space.\");return e.classList.contains(t)},go=(e,t)=>{!e||!t.trim()||e.classList.add(...vf(t))},Rn=(e,t)=>{!e||!t.trim()||e.classList.remove(...vf(t))},mo=(e,t)=>{var n;if(!_t||!e||!t)return\"\";let o=xn(t);o===\"float\"&&(o=\"cssFloat\");try{const l=e.style[o];if(l)return l;const a=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,\"\");return a?a[o]:\"\"}catch{return e.style[o]}};function Nn(e,t=\"px\"){if(!e)return\"\";if(tt(e))return e;if(mt(e))return`${e}${t}`}const Jm=(e,t)=>{if(!_t)return!1;const n={undefined:\"overflow\",true:\"overflow-y\",false:\"overflow-x\"}[String(t)],o=mo(e,n);return[\"scroll\",\"auto\",\"overlay\"].some(l=>o.includes(l))},Qm=(e,t)=>{if(!_t)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(Jm(n,t))return n;n=n.parentNode}return n};let Ar;const Zm=e=>{var t;if(!_t)return 0;if(Ar!==void 0)return Ar;const n=document.createElement(\"div\");n.className=`${e}-scrollbar__wrap`,n.style.visibility=\"hidden\",n.style.width=\"100px\",n.style.position=\"absolute\",n.style.top=\"-9999px\",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow=\"scroll\";const l=document.createElement(\"div\");l.style.width=\"100%\",n.appendChild(l);const a=l.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),Ar=o-a,Ar};function eg(e,t){if(!_t)return;if(!t){e.scrollTop=0;return}const n=[];let o=t.offsetParent;for(;o!==null&&e!==o&&e.contains(o);)n.push(o),o=o.offsetParent;const l=t.offsetTop+n.reduce((s,i)=>s+i.offsetTop,0),a=l+t.offsetHeight,r=e.scrollTop,u=r+e.clientHeight;l<r?e.scrollTop=l:a>u&&(e.scrollTop=a-e.clientHeight)}/*! Element Plus Icons Vue v2.0.10 */var tg={name:\"AddLocation\"},M=(e,t)=>{let n=e.__vccOpts||e;for(let[o,l]of t)n[o]=l;return n},ng={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},og=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),lg=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),ag=f(\"path\",{fill:\"currentColor\",d:\"M544 384h96a32 32 0 1 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96z\"},null,-1),rg=[og,lg,ag];function ug(e,t,n,o,l,a){return b(),C(\"svg\",ng,rg)}var sg=M(tg,[[\"render\",ug],[\"__file\",\"add-location.vue\"]]),ig={name:\"Aim\"},cg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dg=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),fg=f(\"path\",{fill:\"currentColor\",d:\"M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32zm0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32zM96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32zm576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32z\"},null,-1),pg=[dg,fg];function vg(e,t,n,o,l,a){return b(),C(\"svg\",cg,pg)}var hg=M(ig,[[\"render\",vg],[\"__file\",\"aim.vue\"]]),_g={name:\"AlarmClock\"},mg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gg=f(\"path\",{fill:\"currentColor\",d:\"M512 832a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z\"},null,-1),bg=f(\"path\",{fill:\"currentColor\",d:\"m292.288 824.576 55.424 32-48 83.136a32 32 0 1 1-55.424-32l48-83.136zm439.424 0-55.424 32 48 83.136a32 32 0 1 0 55.424-32l-48-83.136zM512 512h160a32 32 0 1 1 0 64H480a32 32 0 0 1-32-32V320a32 32 0 0 1 64 0v192zM90.496 312.256A160 160 0 0 1 312.32 90.496l-46.848 46.848a96 96 0 0 0-128 128L90.56 312.256zm835.264 0A160 160 0 0 0 704 90.496l46.848 46.848a96 96 0 0 1 128 128l46.912 46.912z\"},null,-1),yg=[gg,bg];function wg(e,t,n,o,l,a){return b(),C(\"svg\",mg,yg)}var Cg=M(_g,[[\"render\",wg],[\"__file\",\"alarm-clock.vue\"]]),Eg={name:\"Apple\"},Ag={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Fg=f(\"path\",{fill:\"currentColor\",d:\"M599.872 203.776a189.44 189.44 0 0 1 64.384-4.672l2.624.128c31.168 1.024 51.2 4.096 79.488 16.32 37.632 16.128 74.496 45.056 111.488 89.344 96.384 115.264 82.752 372.8-34.752 521.728-7.68 9.728-32 41.6-30.72 39.936a426.624 426.624 0 0 1-30.08 35.776c-31.232 32.576-65.28 49.216-110.08 50.048-31.36.64-53.568-5.312-84.288-18.752l-6.528-2.88c-20.992-9.216-30.592-11.904-47.296-11.904-18.112 0-28.608 2.88-51.136 12.672l-6.464 2.816c-28.416 12.224-48.32 18.048-76.16 19.2-74.112 2.752-116.928-38.08-180.672-132.16-96.64-142.08-132.608-349.312-55.04-486.4 46.272-81.92 129.92-133.632 220.672-135.04 32.832-.576 60.288 6.848 99.648 22.72 27.136 10.88 34.752 13.76 37.376 14.272 16.256-20.16 27.776-36.992 34.56-50.24 13.568-26.304 27.2-59.968 40.704-100.8a32 32 0 1 1 60.8 20.224c-12.608 37.888-25.408 70.4-38.528 97.664zm-51.52 78.08c-14.528 17.792-31.808 37.376-51.904 58.816a32 32 0 1 1-46.72-43.776l12.288-13.248c-28.032-11.2-61.248-26.688-95.68-26.112-70.4 1.088-135.296 41.6-171.648 105.792C121.6 492.608 176 684.16 247.296 788.992c34.816 51.328 76.352 108.992 130.944 106.944 52.48-2.112 72.32-34.688 135.872-34.688 63.552 0 81.28 34.688 136.96 33.536 56.448-1.088 75.776-39.04 126.848-103.872 107.904-136.768 107.904-362.752 35.776-449.088-72.192-86.272-124.672-84.096-151.68-85.12-41.472-4.288-81.6 12.544-113.664 25.152z\"},null,-1),xg=[Fg];function $g(e,t,n,o,l,a){return b(),C(\"svg\",Ag,xg)}var Dg=M(Eg,[[\"render\",$g],[\"__file\",\"apple.vue\"]]),Bg={name:\"ArrowDownBold\"},Sg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kg=f(\"path\",{fill:\"currentColor\",d:\"M104.704 338.752a64 64 0 0 1 90.496 0l316.8 316.8 316.8-316.8a64 64 0 0 1 90.496 90.496L557.248 791.296a64 64 0 0 1-90.496 0L104.704 429.248a64 64 0 0 1 0-90.496z\"},null,-1),Pg=[kg];function Lg(e,t,n,o,l,a){return b(),C(\"svg\",Sg,Pg)}var zg=M(Bg,[[\"render\",Lg],[\"__file\",\"arrow-down-bold.vue\"]]),Tg={name:\"ArrowDown\"},Mg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Vg=f(\"path\",{fill:\"currentColor\",d:\"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"},null,-1),Hg=[Vg];function Ig(e,t,n,o,l,a){return b(),C(\"svg\",Mg,Hg)}var sr=M(Tg,[[\"render\",Ig],[\"__file\",\"arrow-down.vue\"]]),Rg={name:\"ArrowLeftBold\"},Ng={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Og=f(\"path\",{fill:\"currentColor\",d:\"M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z\"},null,-1),Ug=[Og];function Wg(e,t,n,o,l,a){return b(),C(\"svg\",Ng,Ug)}var qg=M(Rg,[[\"render\",Wg],[\"__file\",\"arrow-left-bold.vue\"]]),jg={name:\"ArrowLeft\"},Kg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Gg=f(\"path\",{fill:\"currentColor\",d:\"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z\"},null,-1),Yg=[Gg];function Xg(e,t,n,o,l,a){return b(),C(\"svg\",Kg,Yg)}var hf=M(jg,[[\"render\",Xg],[\"__file\",\"arrow-left.vue\"]]),Jg={name:\"ArrowRightBold\"},Qg={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Zg=f(\"path\",{fill:\"currentColor\",d:\"M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z\"},null,-1),e9=[Zg];function t9(e,t,n,o,l,a){return b(),C(\"svg\",Qg,e9)}var n9=M(Jg,[[\"render\",t9],[\"__file\",\"arrow-right-bold.vue\"]]),o9={name:\"ArrowRight\"},l9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},a9=f(\"path\",{fill:\"currentColor\",d:\"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z\"},null,-1),r9=[a9];function u9(e,t,n,o,l,a){return b(),C(\"svg\",l9,r9)}var pa=M(o9,[[\"render\",u9],[\"__file\",\"arrow-right.vue\"]]),s9={name:\"ArrowUpBold\"},i9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},c9=f(\"path\",{fill:\"currentColor\",d:\"M104.704 685.248a64 64 0 0 0 90.496 0l316.8-316.8 316.8 316.8a64 64 0 0 0 90.496-90.496L557.248 232.704a64 64 0 0 0-90.496 0L104.704 594.752a64 64 0 0 0 0 90.496z\"},null,-1),d9=[c9];function f9(e,t,n,o,l,a){return b(),C(\"svg\",i9,d9)}var p9=M(s9,[[\"render\",f9],[\"__file\",\"arrow-up-bold.vue\"]]),v9={name:\"ArrowUp\"},h9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_9=f(\"path\",{fill:\"currentColor\",d:\"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z\"},null,-1),m9=[_9];function g9(e,t,n,o,l,a){return b(),C(\"svg\",h9,m9)}var Qi=M(v9,[[\"render\",g9],[\"__file\",\"arrow-up.vue\"]]),b9={name:\"Avatar\"},y9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},w9=f(\"path\",{fill:\"currentColor\",d:\"M628.736 528.896A416 416 0 0 1 928 928H96a415.872 415.872 0 0 1 299.264-399.104L512 704l116.736-175.104zM720 304a208 208 0 1 1-416 0 208 208 0 0 1 416 0z\"},null,-1),C9=[w9];function E9(e,t,n,o,l,a){return b(),C(\"svg\",y9,C9)}var A9=M(b9,[[\"render\",E9],[\"__file\",\"avatar.vue\"]]),F9={name:\"Back\"},x9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$9=f(\"path\",{fill:\"currentColor\",d:\"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64z\"},null,-1),D9=f(\"path\",{fill:\"currentColor\",d:\"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312L237.248 512z\"},null,-1),B9=[$9,D9];function S9(e,t,n,o,l,a){return b(),C(\"svg\",x9,B9)}var k9=M(F9,[[\"render\",S9],[\"__file\",\"back.vue\"]]),P9={name:\"Baseball\"},L9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},z9=f(\"path\",{fill:\"currentColor\",d:\"M195.2 828.8a448 448 0 1 1 633.6-633.6 448 448 0 0 1-633.6 633.6zm45.248-45.248a384 384 0 1 0 543.104-543.104 384 384 0 0 0-543.104 543.104z\"},null,-1),T9=f(\"path\",{fill:\"currentColor\",d:\"M497.472 96.896c22.784 4.672 44.416 9.472 64.896 14.528a256.128 256.128 0 0 0 350.208 350.208c5.056 20.48 9.856 42.112 14.528 64.896A320.128 320.128 0 0 1 497.472 96.896zM108.48 491.904a320.128 320.128 0 0 1 423.616 423.68c-23.04-3.648-44.992-7.424-65.728-11.52a256.128 256.128 0 0 0-346.496-346.432 1736.64 1736.64 0 0 1-11.392-65.728z\"},null,-1),M9=[z9,T9];function V9(e,t,n,o,l,a){return b(),C(\"svg\",L9,M9)}var H9=M(P9,[[\"render\",V9],[\"__file\",\"baseball.vue\"]]),I9={name:\"Basketball\"},R9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},N9=f(\"path\",{fill:\"currentColor\",d:\"M778.752 788.224a382.464 382.464 0 0 0 116.032-245.632 256.512 256.512 0 0 0-241.728-13.952 762.88 762.88 0 0 1 125.696 259.584zm-55.04 44.224a699.648 699.648 0 0 0-125.056-269.632 256.128 256.128 0 0 0-56.064 331.968 382.72 382.72 0 0 0 181.12-62.336zm-254.08 61.248A320.128 320.128 0 0 1 557.76 513.6a715.84 715.84 0 0 0-48.192-48.128 320.128 320.128 0 0 1-379.264 88.384 382.4 382.4 0 0 0 110.144 229.696 382.4 382.4 0 0 0 229.184 110.08zM129.28 481.088a256.128 256.128 0 0 0 331.072-56.448 699.648 699.648 0 0 0-268.8-124.352 382.656 382.656 0 0 0-62.272 180.8zm106.56-235.84a762.88 762.88 0 0 1 258.688 125.056 256.512 256.512 0 0 0-13.44-241.088A382.464 382.464 0 0 0 235.84 245.248zm318.08-114.944c40.576 89.536 37.76 193.92-8.448 281.344a779.84 779.84 0 0 1 66.176 66.112 320.832 320.832 0 0 1 282.112-8.128 382.4 382.4 0 0 0-110.144-229.12 382.4 382.4 0 0 0-229.632-110.208zM828.8 828.8a448 448 0 1 1-633.6-633.6 448 448 0 0 1 633.6 633.6z\"},null,-1),O9=[N9];function U9(e,t,n,o,l,a){return b(),C(\"svg\",R9,O9)}var W9=M(I9,[[\"render\",U9],[\"__file\",\"basketball.vue\"]]),q9={name:\"BellFilled\"},j9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},K9=f(\"path\",{fill:\"currentColor\",d:\"M640 832a128 128 0 0 1-256 0h256zm192-64H134.4a38.4 38.4 0 0 1 0-76.8H192V448c0-154.88 110.08-284.16 256.32-313.6a64 64 0 1 1 127.36 0A320.128 320.128 0 0 1 832 448v243.2h57.6a38.4 38.4 0 0 1 0 76.8H832z\"},null,-1),G9=[K9];function Y9(e,t,n,o,l,a){return b(),C(\"svg\",j9,G9)}var X9=M(q9,[[\"render\",Y9],[\"__file\",\"bell-filled.vue\"]]),J9={name:\"Bell\"},Q9={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Z9=f(\"path\",{fill:\"currentColor\",d:\"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"},null,-1),e7=f(\"path\",{fill:\"currentColor\",d:\"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"},null,-1),t7=f(\"path\",{fill:\"currentColor\",d:\"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"},null,-1),n7=[Z9,e7,t7];function o7(e,t,n,o,l,a){return b(),C(\"svg\",Q9,n7)}var l7=M(J9,[[\"render\",o7],[\"__file\",\"bell.vue\"]]),a7={name:\"Bicycle\"},r7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},u7=k3('<path fill=\"currentColor\" d=\"M256 832a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"></path><path fill=\"currentColor\" d=\"M288 672h320q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"></path><path fill=\"currentColor\" d=\"M768 832a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"></path><path fill=\"currentColor\" d=\"M480 192a32 32 0 0 1 0-64h160a32 32 0 0 1 31.04 24.256l96 384a32 32 0 0 1-62.08 15.488L615.04 192H480zM96 384a32 32 0 0 1 0-64h128a32 32 0 0 1 30.336 21.888l64 192a32 32 0 1 1-60.672 20.224L200.96 384H96z\"></path><path fill=\"currentColor\" d=\"m373.376 599.808-42.752-47.616 320-288 42.752 47.616z\"></path>',5),s7=[u7];function i7(e,t,n,o,l,a){return b(),C(\"svg\",r7,s7)}var c7=M(a7,[[\"render\",i7],[\"__file\",\"bicycle.vue\"]]),d7={name:\"BottomLeft\"},f7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},p7=f(\"path\",{fill:\"currentColor\",d:\"M256 768h416a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V352a32 32 0 0 1 64 0v416z\"},null,-1),v7=f(\"path\",{fill:\"currentColor\",d:\"M246.656 822.656a32 32 0 0 1-45.312-45.312l544-544a32 32 0 0 1 45.312 45.312l-544 544z\"},null,-1),h7=[p7,v7];function _7(e,t,n,o,l,a){return b(),C(\"svg\",f7,h7)}var m7=M(d7,[[\"render\",_7],[\"__file\",\"bottom-left.vue\"]]),g7={name:\"BottomRight\"},b7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},y7=f(\"path\",{fill:\"currentColor\",d:\"M352 768a32 32 0 1 0 0 64h448a32 32 0 0 0 32-32V352a32 32 0 0 0-64 0v416H352z\"},null,-1),w7=f(\"path\",{fill:\"currentColor\",d:\"M777.344 822.656a32 32 0 0 0 45.312-45.312l-544-544a32 32 0 0 0-45.312 45.312l544 544z\"},null,-1),C7=[y7,w7];function E7(e,t,n,o,l,a){return b(),C(\"svg\",b7,C7)}var A7=M(g7,[[\"render\",E7],[\"__file\",\"bottom-right.vue\"]]),F7={name:\"Bottom\"},x7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$7=f(\"path\",{fill:\"currentColor\",d:\"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z\"},null,-1),D7=[$7];function B7(e,t,n,o,l,a){return b(),C(\"svg\",x7,D7)}var S7=M(F7,[[\"render\",B7],[\"__file\",\"bottom.vue\"]]),k7={name:\"Bowl\"},P7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},L7=f(\"path\",{fill:\"currentColor\",d:\"M714.432 704a351.744 351.744 0 0 0 148.16-256H161.408a351.744 351.744 0 0 0 148.16 256h404.864zM288 766.592A415.68 415.68 0 0 1 96 416a32 32 0 0 1 32-32h768a32 32 0 0 1 32 32 415.68 415.68 0 0 1-192 350.592V832a64 64 0 0 1-64 64H352a64 64 0 0 1-64-64v-65.408zM493.248 320h-90.496l254.4-254.4a32 32 0 1 1 45.248 45.248L493.248 320zm187.328 0h-128l269.696-155.712a32 32 0 0 1 32 55.424L680.576 320zM352 768v64h320v-64H352z\"},null,-1),z7=[L7];function T7(e,t,n,o,l,a){return b(),C(\"svg\",P7,z7)}var M7=M(k7,[[\"render\",T7],[\"__file\",\"bowl.vue\"]]),V7={name:\"Box\"},H7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},I7=f(\"path\",{fill:\"currentColor\",d:\"M317.056 128 128 344.064V896h768V344.064L706.944 128H317.056zm-14.528-64h418.944a32 32 0 0 1 24.064 10.88l206.528 236.096A32 32 0 0 1 960 332.032V928a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V332.032a32 32 0 0 1 7.936-21.12L278.4 75.008A32 32 0 0 1 302.528 64z\"},null,-1),R7=f(\"path\",{fill:\"currentColor\",d:\"M64 320h896v64H64z\"},null,-1),N7=f(\"path\",{fill:\"currentColor\",d:\"M448 327.872V640h128V327.872L526.08 128h-28.16L448 327.872zM448 64h128l64 256v352a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V320l64-256z\"},null,-1),O7=[I7,R7,N7];function U7(e,t,n,o,l,a){return b(),C(\"svg\",H7,O7)}var W7=M(V7,[[\"render\",U7],[\"__file\",\"box.vue\"]]),q7={name:\"Briefcase\"},j7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},K7=f(\"path\",{fill:\"currentColor\",d:\"M320 320V128h384v192h192v192H128V320h192zM128 576h768v320H128V576zm256-256h256.064V192H384v128z\"},null,-1),G7=[K7];function Y7(e,t,n,o,l,a){return b(),C(\"svg\",j7,G7)}var X7=M(q7,[[\"render\",Y7],[\"__file\",\"briefcase.vue\"]]),J7={name:\"BrushFilled\"},Q7={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Z7=f(\"path\",{fill:\"currentColor\",d:\"M608 704v160a96 96 0 0 1-192 0V704h-96a128 128 0 0 1-128-128h640a128 128 0 0 1-128 128h-96zM192 512V128.064h640V512H192z\"},null,-1),eb=[Z7];function tb(e,t,n,o,l,a){return b(),C(\"svg\",Q7,eb)}var nb=M(J7,[[\"render\",tb],[\"__file\",\"brush-filled.vue\"]]),ob={name:\"Brush\"},lb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ab=f(\"path\",{fill:\"currentColor\",d:\"M896 448H128v192a64 64 0 0 0 64 64h192v192h256V704h192a64 64 0 0 0 64-64V448zm-770.752-64c0-47.552 5.248-90.24 15.552-128 14.72-54.016 42.496-107.392 83.2-160h417.28l-15.36 70.336L736 96h211.2c-24.832 42.88-41.92 96.256-51.2 160a663.872 663.872 0 0 0-6.144 128H960v256a128 128 0 0 1-128 128H704v160a32 32 0 0 1-32 32H352a32 32 0 0 1-32-32V768H192A128 128 0 0 1 64 640V384h61.248zm64 0h636.544c-2.048-45.824.256-91.584 6.848-137.216 4.48-30.848 10.688-59.776 18.688-86.784h-96.64l-221.12 141.248L561.92 160H256.512c-25.856 37.888-43.776 75.456-53.952 112.832-8.768 32.064-13.248 69.12-13.312 111.168z\"},null,-1),rb=[ab];function ub(e,t,n,o,l,a){return b(),C(\"svg\",lb,rb)}var sb=M(ob,[[\"render\",ub],[\"__file\",\"brush.vue\"]]),ib={name:\"Burger\"},cb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},db=f(\"path\",{fill:\"currentColor\",d:\"M160 512a32 32 0 0 0-32 32v64a32 32 0 0 0 30.08 32H864a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H160zm736-58.56A96 96 0 0 1 960 544v64a96 96 0 0 1-51.968 85.312L855.36 833.6a96 96 0 0 1-89.856 62.272H258.496A96 96 0 0 1 168.64 833.6l-52.608-140.224A96 96 0 0 1 64 608v-64a96 96 0 0 1 64-90.56V448a384 384 0 1 1 768 5.44zM832 448a320 320 0 0 0-640 0h640zM512 704H188.352l40.192 107.136a32 32 0 0 0 29.952 20.736h507.008a32 32 0 0 0 29.952-20.736L835.648 704H512z\"},null,-1),fb=[db];function pb(e,t,n,o,l,a){return b(),C(\"svg\",cb,fb)}var vb=M(ib,[[\"render\",pb],[\"__file\",\"burger.vue\"]]),hb={name:\"Calendar\"},_b={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mb=f(\"path\",{fill:\"currentColor\",d:\"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64H128zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0v32zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64z\"},null,-1),gb=[mb];function bb(e,t,n,o,l,a){return b(),C(\"svg\",_b,gb)}var yb=M(hb,[[\"render\",bb],[\"__file\",\"calendar.vue\"]]),wb={name:\"CameraFilled\"},Cb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Eb=f(\"path\",{fill:\"currentColor\",d:\"M160 224a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h704a64 64 0 0 0 64-64V288a64 64 0 0 0-64-64H748.416l-46.464-92.672A64 64 0 0 0 644.736 96H379.328a64 64 0 0 0-57.216 35.392L275.776 224H160zm352 435.2a115.2 115.2 0 1 0 0-230.4 115.2 115.2 0 0 0 0 230.4zm0 140.8a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),Ab=[Eb];function Fb(e,t,n,o,l,a){return b(),C(\"svg\",Cb,Ab)}var xb=M(wb,[[\"render\",Fb],[\"__file\",\"camera-filled.vue\"]]),$b={name:\"Camera\"},Db={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Bb=f(\"path\",{fill:\"currentColor\",d:\"M896 256H128v576h768V256zm-199.424-64-32.064-64h-304.96l-32 64h369.024zM96 192h160l46.336-92.608A64 64 0 0 1 359.552 64h304.96a64 64 0 0 1 57.216 35.328L768.192 192H928a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32zm416 512a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm0 64a224 224 0 1 1 0-448 224 224 0 0 1 0 448z\"},null,-1),Sb=[Bb];function kb(e,t,n,o,l,a){return b(),C(\"svg\",Db,Sb)}var Pb=M($b,[[\"render\",kb],[\"__file\",\"camera.vue\"]]),Lb={name:\"CaretBottom\"},zb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Tb=f(\"path\",{fill:\"currentColor\",d:\"m192 384 320 384 320-384z\"},null,-1),Mb=[Tb];function Vb(e,t,n,o,l,a){return b(),C(\"svg\",zb,Mb)}var Hb=M(Lb,[[\"render\",Vb],[\"__file\",\"caret-bottom.vue\"]]),Ib={name:\"CaretLeft\"},Rb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Nb=f(\"path\",{fill:\"currentColor\",d:\"M672 192 288 511.936 672 832z\"},null,-1),Ob=[Nb];function Ub(e,t,n,o,l,a){return b(),C(\"svg\",Rb,Ob)}var Wb=M(Ib,[[\"render\",Ub],[\"__file\",\"caret-left.vue\"]]),qb={name:\"CaretRight\"},jb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Kb=f(\"path\",{fill:\"currentColor\",d:\"M384 192v640l384-320.064z\"},null,-1),Gb=[Kb];function Yb(e,t,n,o,l,a){return b(),C(\"svg\",jb,Gb)}var Xb=M(qb,[[\"render\",Yb],[\"__file\",\"caret-right.vue\"]]),Jb={name:\"CaretTop\"},Qb={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Zb=f(\"path\",{fill:\"currentColor\",d:\"M512 320 192 704h639.936z\"},null,-1),ey=[Zb];function ty(e,t,n,o,l,a){return b(),C(\"svg\",Qb,ey)}var ny=M(Jb,[[\"render\",ty],[\"__file\",\"caret-top.vue\"]]),oy={name:\"Cellphone\"},ly={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ay=f(\"path\",{fill:\"currentColor\",d:\"M256 128a64 64 0 0 0-64 64v640a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H256zm0-64h512a128 128 0 0 1 128 128v640a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V192A128 128 0 0 1 256 64zm128 128h256a32 32 0 1 1 0 64H384a32 32 0 0 1 0-64zm128 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z\"},null,-1),ry=[ay];function uy(e,t,n,o,l,a){return b(),C(\"svg\",ly,ry)}var sy=M(oy,[[\"render\",uy],[\"__file\",\"cellphone.vue\"]]),iy={name:\"ChatDotRound\"},cy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dy=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z\"},null,-1),fy=f(\"path\",{fill:\"currentColor\",d:\"M512 563.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"},null,-1),py=[dy,fy];function vy(e,t,n,o,l,a){return b(),C(\"svg\",cy,py)}var hy=M(iy,[[\"render\",vy],[\"__file\",\"chat-dot-round.vue\"]]),_y={name:\"ChatDotSquare\"},my={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gy=f(\"path\",{fill:\"currentColor\",d:\"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),by=f(\"path\",{fill:\"currentColor\",d:\"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"},null,-1),yy=[gy,by];function wy(e,t,n,o,l,a){return b(),C(\"svg\",my,yy)}var Cy=M(_y,[[\"render\",wy],[\"__file\",\"chat-dot-square.vue\"]]),Ey={name:\"ChatLineRound\"},Ay={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Fy=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z\"},null,-1),xy=f(\"path\",{fill:\"currentColor\",d:\"M352 576h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm32-192h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z\"},null,-1),$y=[Fy,xy];function Dy(e,t,n,o,l,a){return b(),C(\"svg\",Ay,$y)}var By=M(Ey,[[\"render\",Dy],[\"__file\",\"chat-line-round.vue\"]]),Sy={name:\"ChatLineSquare\"},ky={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Py=f(\"path\",{fill:\"currentColor\",d:\"M160 826.88 273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),Ly=f(\"path\",{fill:\"currentColor\",d:\"M352 512h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm0-192h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z\"},null,-1),zy=[Py,Ly];function Ty(e,t,n,o,l,a){return b(),C(\"svg\",ky,zy)}var My=M(Sy,[[\"render\",Ty],[\"__file\",\"chat-line-square.vue\"]]),Vy={name:\"ChatRound\"},Hy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Iy=f(\"path\",{fill:\"currentColor\",d:\"m174.72 855.68 130.048-43.392 23.424 11.392C382.4 849.984 444.352 864 512 864c223.744 0 384-159.872 384-352 0-192.832-159.104-352-384-352S128 319.168 128 512a341.12 341.12 0 0 0 69.248 204.288l21.632 28.8-44.16 110.528zm-45.248 82.56A32 32 0 0 1 89.6 896l56.512-141.248A405.12 405.12 0 0 1 64 512C64 299.904 235.648 96 512 96s448 203.904 448 416-173.44 416-448 416c-79.68 0-150.848-17.152-211.712-46.72l-170.88 56.96z\"},null,-1),Ry=[Iy];function Ny(e,t,n,o,l,a){return b(),C(\"svg\",Hy,Ry)}var Oy=M(Vy,[[\"render\",Ny],[\"__file\",\"chat-round.vue\"]]),Uy={name:\"ChatSquare\"},Wy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qy=f(\"path\",{fill:\"currentColor\",d:\"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"},null,-1),jy=[qy];function Ky(e,t,n,o,l,a){return b(),C(\"svg\",Wy,jy)}var Gy=M(Uy,[[\"render\",Ky],[\"__file\",\"chat-square.vue\"]]),Yy={name:\"Check\"},Xy={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Jy=f(\"path\",{fill:\"currentColor\",d:\"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"},null,-1),Qy=[Jy];function Zy(e,t,n,o,l,a){return b(),C(\"svg\",Xy,Qy)}var Zi=M(Yy,[[\"render\",Zy],[\"__file\",\"check.vue\"]]),ew={name:\"Checked\"},tw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nw=f(\"path\",{fill:\"currentColor\",d:\"M704 192h160v736H160V192h160.064v64H704v-64zM311.616 537.28l-45.312 45.248L447.36 763.52l316.8-316.8-45.312-45.184L447.36 673.024 311.616 537.28zM384 192V96h256v96H384z\"},null,-1),ow=[nw];function lw(e,t,n,o,l,a){return b(),C(\"svg\",tw,ow)}var aw=M(ew,[[\"render\",lw],[\"__file\",\"checked.vue\"]]),rw={name:\"Cherry\"},uw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sw=f(\"path\",{fill:\"currentColor\",d:\"M261.056 449.6c13.824-69.696 34.88-128.96 63.36-177.728 23.744-40.832 61.12-88.64 112.256-143.872H320a32 32 0 0 1 0-64h384a32 32 0 1 1 0 64H554.752c14.912 39.168 41.344 86.592 79.552 141.76 47.36 68.48 84.8 106.752 106.304 114.304a224 224 0 1 1-84.992 14.784c-22.656-22.912-47.04-53.76-73.92-92.608-38.848-56.128-67.008-105.792-84.352-149.312-55.296 58.24-94.528 107.52-117.76 147.2-23.168 39.744-41.088 88.768-53.568 147.072a224.064 224.064 0 1 1-64.96-1.6zM288 832a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm448-64a160 160 0 1 0 0-320 160 160 0 0 0 0 320z\"},null,-1),iw=[sw];function cw(e,t,n,o,l,a){return b(),C(\"svg\",uw,iw)}var dw=M(rw,[[\"render\",cw],[\"__file\",\"cherry.vue\"]]),fw={name:\"Chicken\"},pw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vw=f(\"path\",{fill:\"currentColor\",d:\"M349.952 716.992 478.72 588.16a106.688 106.688 0 0 1-26.176-19.072 106.688 106.688 0 0 1-19.072-26.176L304.704 671.744c.768 3.072 1.472 6.144 2.048 9.216l2.048 31.936 31.872 1.984c3.136.64 6.208 1.28 9.28 2.112zm57.344 33.152a128 128 0 1 1-216.32 114.432l-1.92-32-32-1.92a128 128 0 1 1 114.432-216.32L416.64 469.248c-2.432-101.44 58.112-239.104 149.056-330.048 107.328-107.328 231.296-85.504 316.8 0 85.44 85.44 107.328 209.408 0 316.8-91.008 90.88-228.672 151.424-330.112 149.056L407.296 750.08zm90.496-226.304c49.536 49.536 233.344-7.04 339.392-113.088 78.208-78.208 63.232-163.072 0-226.304-63.168-63.232-148.032-78.208-226.24 0C504.896 290.496 448.32 474.368 497.792 523.84zM244.864 708.928a64 64 0 1 0-59.84 59.84l56.32-3.52 3.52-56.32zm8.064 127.68a64 64 0 1 0 59.84-59.84l-56.32 3.52-3.52 56.32z\"},null,-1),hw=[vw];function _w(e,t,n,o,l,a){return b(),C(\"svg\",pw,hw)}var mw=M(fw,[[\"render\",_w],[\"__file\",\"chicken.vue\"]]),gw={name:\"ChromeFilled\"},bw={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},yw=f(\"path\",{d:\"M938.67 512.01c0-44.59-6.82-87.6-19.54-128H682.67a212.372 212.372 0 0 1 42.67 128c.06 38.71-10.45 76.7-30.42 109.87l-182.91 316.8c235.65-.01 426.66-191.02 426.66-426.67z\",fill:\"currentColor\"},null,-1),ww=f(\"path\",{d:\"M576.79 401.63a127.92 127.92 0 0 0-63.56-17.6c-22.36-.22-44.39 5.43-63.89 16.38s-35.79 26.82-47.25 46.02a128.005 128.005 0 0 0-2.16 127.44l1.24 2.13a127.906 127.906 0 0 0 46.36 46.61 127.907 127.907 0 0 0 63.38 17.44c22.29.2 44.24-5.43 63.68-16.33a127.94 127.94 0 0 0 47.16-45.79v-.01l1.11-1.92a127.984 127.984 0 0 0 .29-127.46 127.957 127.957 0 0 0-46.36-46.91z\",fill:\"currentColor\"},null,-1),Cw=f(\"path\",{d:\"M394.45 333.96A213.336 213.336 0 0 1 512 298.67h369.58A426.503 426.503 0 0 0 512 85.34a425.598 425.598 0 0 0-171.74 35.98 425.644 425.644 0 0 0-142.62 102.22l118.14 204.63a213.397 213.397 0 0 1 78.67-94.21zm117.56 604.72H512zm-97.25-236.73a213.284 213.284 0 0 1-89.54-86.81L142.48 298.6c-36.35 62.81-57.13 135.68-57.13 213.42 0 203.81 142.93 374.22 333.95 416.55h.04l118.19-204.71a213.315 213.315 0 0 1-122.77-21.91z\",fill:\"currentColor\"},null,-1),Ew=[yw,ww,Cw];function Aw(e,t,n,o,l,a){return b(),C(\"svg\",bw,Ew)}var Fw=M(gw,[[\"render\",Aw],[\"__file\",\"chrome-filled.vue\"]]),xw={name:\"CircleCheckFilled\"},$w={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Dw=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z\"},null,-1),Bw=[Dw];function Sw(e,t,n,o,l,a){return b(),C(\"svg\",$w,Bw)}var kw=M(xw,[[\"render\",Sw],[\"__file\",\"circle-check-filled.vue\"]]),Pw={name:\"CircleCheck\"},Lw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zw=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),Tw=f(\"path\",{fill:\"currentColor\",d:\"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z\"},null,-1),Mw=[zw,Tw];function Vw(e,t,n,o,l,a){return b(),C(\"svg\",Lw,Mw)}var Mu=M(Pw,[[\"render\",Vw],[\"__file\",\"circle-check.vue\"]]),Hw={name:\"CircleCloseFilled\"},Iw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Rw=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z\"},null,-1),Nw=[Rw];function Ow(e,t,n,o,l,a){return b(),C(\"svg\",Iw,Nw)}var e2=M(Hw,[[\"render\",Ow],[\"__file\",\"circle-close-filled.vue\"]]),Uw={name:\"CircleClose\"},Ww={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qw=f(\"path\",{fill:\"currentColor\",d:\"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z\"},null,-1),jw=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),Kw=[qw,jw];function Gw(e,t,n,o,l,a){return b(),C(\"svg\",Ww,Kw)}var ir=M(Uw,[[\"render\",Gw],[\"__file\",\"circle-close.vue\"]]),Yw={name:\"CirclePlusFilled\"},Xw={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Jw=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z\"},null,-1),Qw=[Jw];function Zw(e,t,n,o,l,a){return b(),C(\"svg\",Xw,Qw)}var eC=M(Yw,[[\"render\",Zw],[\"__file\",\"circle-plus-filled.vue\"]]),tC={name:\"CirclePlus\"},nC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oC=f(\"path\",{fill:\"currentColor\",d:\"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),lC=f(\"path\",{fill:\"currentColor\",d:\"M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z\"},null,-1),aC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),rC=[oC,lC,aC];function uC(e,t,n,o,l,a){return b(),C(\"svg\",nC,rC)}var sC=M(tC,[[\"render\",uC],[\"__file\",\"circle-plus.vue\"]]),iC={name:\"Clock\"},cC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dC=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),fC=f(\"path\",{fill:\"currentColor\",d:\"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"},null,-1),pC=f(\"path\",{fill:\"currentColor\",d:\"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32z\"},null,-1),vC=[dC,fC,pC];function hC(e,t,n,o,l,a){return b(),C(\"svg\",cC,vC)}var _C=M(iC,[[\"render\",hC],[\"__file\",\"clock.vue\"]]),mC={name:\"CloseBold\"},gC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bC=f(\"path\",{fill:\"currentColor\",d:\"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z\"},null,-1),yC=[bC];function wC(e,t,n,o,l,a){return b(),C(\"svg\",gC,yC)}var CC=M(mC,[[\"render\",wC],[\"__file\",\"close-bold.vue\"]]),EC={name:\"Close\"},AC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FC=f(\"path\",{fill:\"currentColor\",d:\"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"},null,-1),xC=[FC];function $C(e,t,n,o,l,a){return b(),C(\"svg\",AC,xC)}var Cl=M(EC,[[\"render\",$C],[\"__file\",\"close.vue\"]]),DC={name:\"Cloudy\"},BC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SC=f(\"path\",{fill:\"currentColor\",d:\"M598.4 831.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 831.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 381.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z\"},null,-1),kC=[SC];function PC(e,t,n,o,l,a){return b(),C(\"svg\",BC,kC)}var LC=M(DC,[[\"render\",PC],[\"__file\",\"cloudy.vue\"]]),zC={name:\"CoffeeCup\"},TC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MC=f(\"path\",{fill:\"currentColor\",d:\"M768 192a192 192 0 1 1-8 383.808A256.128 256.128 0 0 1 512 768H320A256 256 0 0 1 64 512V160a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v32zm0 64v256a128 128 0 1 0 0-256zM96 832h640a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-640v320a192 192 0 0 0 192 192h192a192 192 0 0 0 192-192V192H128z\"},null,-1),VC=[MC];function HC(e,t,n,o,l,a){return b(),C(\"svg\",TC,VC)}var IC=M(zC,[[\"render\",HC],[\"__file\",\"coffee-cup.vue\"]]),RC={name:\"Coffee\"},NC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OC=f(\"path\",{fill:\"currentColor\",d:\"M822.592 192h14.272a32 32 0 0 1 31.616 26.752l21.312 128A32 32 0 0 1 858.24 384h-49.344l-39.04 546.304A32 32 0 0 1 737.92 960H285.824a32 32 0 0 1-32-29.696L214.912 384H165.76a32 32 0 0 1-31.552-37.248l21.312-128A32 32 0 0 1 187.136 192h14.016l-6.72-93.696A32 32 0 0 1 226.368 64h571.008a32 32 0 0 1 31.936 34.304L822.592 192zm-64.128 0 4.544-64H260.736l4.544 64h493.184zm-548.16 128H820.48l-10.688-64H214.208l-10.688 64h6.784zm68.736 64 36.544 512H708.16l36.544-512H279.04z\"},null,-1),UC=[OC];function WC(e,t,n,o,l,a){return b(),C(\"svg\",NC,UC)}var qC=M(RC,[[\"render\",WC],[\"__file\",\"coffee.vue\"]]),jC={name:\"Coin\"},KC={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GC=f(\"path\",{fill:\"currentColor\",d:\"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z\"},null,-1),YC=f(\"path\",{fill:\"currentColor\",d:\"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z\"},null,-1),XC=f(\"path\",{fill:\"currentColor\",d:\"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z\"},null,-1),JC=[GC,YC,XC];function QC(e,t,n,o,l,a){return b(),C(\"svg\",KC,JC)}var ZC=M(jC,[[\"render\",QC],[\"__file\",\"coin.vue\"]]),eE={name:\"ColdDrink\"},tE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nE=f(\"path\",{fill:\"currentColor\",d:\"M768 64a192 192 0 1 1-69.952 370.88L480 725.376V896h96a32 32 0 1 1 0 64H320a32 32 0 1 1 0-64h96V725.376L76.8 273.536a64 64 0 0 1-12.8-38.4v-10.688a32 32 0 0 1 32-32h71.808l-65.536-83.84a32 32 0 0 1 50.432-39.424l96.256 123.264h337.728A192.064 192.064 0 0 1 768 64zM656.896 192.448H800a32 32 0 0 1 32 32v10.624a64 64 0 0 1-12.8 38.4l-80.448 107.2a128 128 0 1 0-81.92-188.16v-.064zm-357.888 64 129.472 165.76a32 32 0 0 1-50.432 39.36l-160.256-205.12H144l304 404.928 304-404.928H299.008z\"},null,-1),oE=[nE];function lE(e,t,n,o,l,a){return b(),C(\"svg\",tE,oE)}var aE=M(eE,[[\"render\",lE],[\"__file\",\"cold-drink.vue\"]]),rE={name:\"CollectionTag\"},uE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sE=f(\"path\",{fill:\"currentColor\",d:\"M256 128v698.88l196.032-156.864a96 96 0 0 1 119.936 0L768 826.816V128H256zm-32-64h576a32 32 0 0 1 32 32v797.44a32 32 0 0 1-51.968 24.96L531.968 720a32 32 0 0 0-39.936 0L243.968 918.4A32 32 0 0 1 192 893.44V96a32 32 0 0 1 32-32z\"},null,-1),iE=[sE];function cE(e,t,n,o,l,a){return b(),C(\"svg\",uE,iE)}var dE=M(rE,[[\"render\",cE],[\"__file\",\"collection-tag.vue\"]]),fE={name:\"Collection\"},pE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vE=f(\"path\",{fill:\"currentColor\",d:\"M192 736h640V128H256a64 64 0 0 0-64 64v544zm64-672h608a32 32 0 0 1 32 32v672a32 32 0 0 1-32 32H160l-32 57.536V192A128 128 0 0 1 256 64z\"},null,-1),hE=f(\"path\",{fill:\"currentColor\",d:\"M240 800a48 48 0 1 0 0 96h592v-96H240zm0-64h656v160a64 64 0 0 1-64 64H240a112 112 0 0 1 0-224zm144-608v250.88l96-76.8 96 76.8V128H384zm-64-64h320v381.44a32 32 0 0 1-51.968 24.96L480 384l-108.032 86.4A32 32 0 0 1 320 445.44V64z\"},null,-1),_E=[vE,hE];function mE(e,t,n,o,l,a){return b(),C(\"svg\",pE,_E)}var gE=M(fE,[[\"render\",mE],[\"__file\",\"collection.vue\"]]),bE={name:\"Comment\"},yE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wE=f(\"path\",{fill:\"currentColor\",d:\"M736 504a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zM128 128v640h192v160l224-160h352V128H128z\"},null,-1),CE=[wE];function EE(e,t,n,o,l,a){return b(),C(\"svg\",yE,CE)}var AE=M(bE,[[\"render\",EE],[\"__file\",\"comment.vue\"]]),FE={name:\"Compass\"},xE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$E=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),DE=f(\"path\",{fill:\"currentColor\",d:\"M725.888 315.008C676.48 428.672 624 513.28 568.576 568.64c-55.424 55.424-139.968 107.904-253.568 157.312a12.8 12.8 0 0 1-16.896-16.832c49.536-113.728 102.016-198.272 157.312-253.632 55.36-55.296 139.904-107.776 253.632-157.312a12.8 12.8 0 0 1 16.832 16.832z\"},null,-1),BE=[$E,DE];function SE(e,t,n,o,l,a){return b(),C(\"svg\",xE,BE)}var kE=M(FE,[[\"render\",SE],[\"__file\",\"compass.vue\"]]),PE={name:\"Connection\"},LE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zE=f(\"path\",{fill:\"currentColor\",d:\"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192h192z\"},null,-1),TE=f(\"path\",{fill:\"currentColor\",d:\"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.064 192.064 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192H384z\"},null,-1),ME=[zE,TE];function VE(e,t,n,o,l,a){return b(),C(\"svg\",LE,ME)}var HE=M(PE,[[\"render\",VE],[\"__file\",\"connection.vue\"]]),IE={name:\"Coordinate\"},RE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NE=f(\"path\",{fill:\"currentColor\",d:\"M480 512h64v320h-64z\"},null,-1),OE=f(\"path\",{fill:\"currentColor\",d:\"M192 896h640a64 64 0 0 0-64-64H256a64 64 0 0 0-64 64zm64-128h512a128 128 0 0 1 128 128v64H128v-64a128 128 0 0 1 128-128zm256-256a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),UE=[NE,OE];function WE(e,t,n,o,l,a){return b(),C(\"svg\",RE,UE)}var qE=M(IE,[[\"render\",WE],[\"__file\",\"coordinate.vue\"]]),jE={name:\"CopyDocument\"},KE={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GE=f(\"path\",{fill:\"currentColor\",d:\"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64h64z\"},null,-1),YE=f(\"path\",{fill:\"currentColor\",d:\"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H384zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64z\"},null,-1),XE=[GE,YE];function JE(e,t,n,o,l,a){return b(),C(\"svg\",KE,XE)}var QE=M(jE,[[\"render\",JE],[\"__file\",\"copy-document.vue\"]]),ZE={name:\"Cpu\"},eA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tA=f(\"path\",{fill:\"currentColor\",d:\"M320 256a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H320zm0-64h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H320a128 128 0 0 1-128-128V320a128 128 0 0 1 128-128z\"},null,-1),nA=f(\"path\",{fill:\"currentColor\",d:\"M512 64a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm-320 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 896a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm160 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm-320 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zM64 512a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0-160a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0 320a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm896-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0 320a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32z\"},null,-1),oA=[tA,nA];function lA(e,t,n,o,l,a){return b(),C(\"svg\",eA,oA)}var aA=M(ZE,[[\"render\",lA],[\"__file\",\"cpu.vue\"]]),rA={name:\"CreditCard\"},uA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sA=f(\"path\",{fill:\"currentColor\",d:\"M896 324.096c0-42.368-2.496-55.296-9.536-68.48a52.352 52.352 0 0 0-22.144-22.08c-13.12-7.04-26.048-9.536-68.416-9.536H228.096c-42.368 0-55.296 2.496-68.48 9.536a52.352 52.352 0 0 0-22.08 22.144c-7.04 13.12-9.536 26.048-9.536 68.416v375.808c0 42.368 2.496 55.296 9.536 68.48a52.352 52.352 0 0 0 22.144 22.08c13.12 7.04 26.048 9.536 68.416 9.536h567.808c42.368 0 55.296-2.496 68.48-9.536a52.352 52.352 0 0 0 22.08-22.144c7.04-13.12 9.536-26.048 9.536-68.416V324.096zm64 0v375.808c0 57.088-5.952 77.76-17.088 98.56-11.136 20.928-27.52 37.312-48.384 48.448-20.864 11.136-41.6 17.088-98.56 17.088H228.032c-57.088 0-77.76-5.952-98.56-17.088a116.288 116.288 0 0 1-48.448-48.384c-11.136-20.864-17.088-41.6-17.088-98.56V324.032c0-57.088 5.952-77.76 17.088-98.56 11.136-20.928 27.52-37.312 48.384-48.448 20.864-11.136 41.6-17.088 98.56-17.088H795.84c57.088 0 77.76 5.952 98.56 17.088 20.928 11.136 37.312 27.52 48.448 48.384 11.136 20.864 17.088 41.6 17.088 98.56z\"},null,-1),iA=f(\"path\",{fill:\"currentColor\",d:\"M64 320h896v64H64v-64zm0 128h896v64H64v-64zm128 192h256v64H192z\"},null,-1),cA=[sA,iA];function dA(e,t,n,o,l,a){return b(),C(\"svg\",uA,cA)}var fA=M(rA,[[\"render\",dA],[\"__file\",\"credit-card.vue\"]]),pA={name:\"Crop\"},vA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hA=f(\"path\",{fill:\"currentColor\",d:\"M256 768h672a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V96a32 32 0 0 1 64 0v672z\"},null,-1),_A=f(\"path\",{fill:\"currentColor\",d:\"M832 224v704a32 32 0 1 1-64 0V256H96a32 32 0 0 1 0-64h704a32 32 0 0 1 32 32z\"},null,-1),mA=[hA,_A];function gA(e,t,n,o,l,a){return b(),C(\"svg\",vA,mA)}var bA=M(pA,[[\"render\",gA],[\"__file\",\"crop.vue\"]]),yA={name:\"DArrowLeft\"},wA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},CA=f(\"path\",{fill:\"currentColor\",d:\"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z\"},null,-1),EA=[CA];function AA(e,t,n,o,l,a){return b(),C(\"svg\",wA,EA)}var _f=M(yA,[[\"render\",AA],[\"__file\",\"d-arrow-left.vue\"]]),FA={name:\"DArrowRight\"},xA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$A=f(\"path\",{fill:\"currentColor\",d:\"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688zm-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z\"},null,-1),DA=[$A];function BA(e,t,n,o,l,a){return b(),C(\"svg\",xA,DA)}var mf=M(FA,[[\"render\",BA],[\"__file\",\"d-arrow-right.vue\"]]),SA={name:\"DCaret\"},kA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PA=f(\"path\",{fill:\"currentColor\",d:\"m512 128 288 320H224l288-320zM224 576h576L512 896 224 576z\"},null,-1),LA=[PA];function zA(e,t,n,o,l,a){return b(),C(\"svg\",kA,LA)}var TA=M(SA,[[\"render\",zA],[\"__file\",\"d-caret.vue\"]]),MA={name:\"DataAnalysis\"},VA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HA=f(\"path\",{fill:\"currentColor\",d:\"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216zM832 192H192v512h640V192zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32z\"},null,-1),IA=[HA];function RA(e,t,n,o,l,a){return b(),C(\"svg\",VA,IA)}var NA=M(MA,[[\"render\",RA],[\"__file\",\"data-analysis.vue\"]]),OA={name:\"DataBoard\"},UA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WA=f(\"path\",{fill:\"currentColor\",d:\"M32 128h960v64H32z\"},null,-1),qA=f(\"path\",{fill:\"currentColor\",d:\"M192 192v512h640V192H192zm-64-64h768v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V128z\"},null,-1),jA=f(\"path\",{fill:\"currentColor\",d:\"M322.176 960H248.32l144.64-250.56 55.424 32L322.176 960zm453.888 0h-73.856L576 741.44l55.424-32L776.064 960z\"},null,-1),KA=[WA,qA,jA];function GA(e,t,n,o,l,a){return b(),C(\"svg\",UA,KA)}var YA=M(OA,[[\"render\",GA],[\"__file\",\"data-board.vue\"]]),XA={name:\"DataLine\"},JA={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QA=f(\"path\",{fill:\"currentColor\",d:\"M359.168 768H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216l110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192zM832 192H192v512h640V192zM342.656 534.656a32 32 0 1 1-45.312-45.312L444.992 341.76l125.44 94.08L679.04 300.032a32 32 0 1 1 49.92 39.936L581.632 524.224 451.008 426.24 342.656 534.592z\"},null,-1),ZA=[QA];function eF(e,t,n,o,l,a){return b(),C(\"svg\",JA,ZA)}var tF=M(XA,[[\"render\",eF],[\"__file\",\"data-line.vue\"]]),nF={name:\"DeleteFilled\"},oF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lF=f(\"path\",{fill:\"currentColor\",d:\"M352 192V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64H96a32 32 0 0 1 0-64h256zm64 0h192v-64H416v64zM192 960a32 32 0 0 1-32-32V256h704v672a32 32 0 0 1-32 32H192zm224-192a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32zm192 0a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32z\"},null,-1),aF=[lF];function rF(e,t,n,o,l,a){return b(),C(\"svg\",oF,aF)}var uF=M(nF,[[\"render\",rF],[\"__file\",\"delete-filled.vue\"]]),sF={name:\"DeleteLocation\"},iF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cF=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),dF=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),fF=f(\"path\",{fill:\"currentColor\",d:\"M384 384h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z\"},null,-1),pF=[cF,dF,fF];function vF(e,t,n,o,l,a){return b(),C(\"svg\",iF,pF)}var hF=M(sF,[[\"render\",vF],[\"__file\",\"delete-location.vue\"]]),_F={name:\"Delete\"},mF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gF=f(\"path\",{fill:\"currentColor\",d:\"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z\"},null,-1),bF=[gF];function yF(e,t,n,o,l,a){return b(),C(\"svg\",mF,bF)}var gf=M(_F,[[\"render\",yF],[\"__file\",\"delete.vue\"]]),wF={name:\"Dessert\"},CF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EF=f(\"path\",{fill:\"currentColor\",d:\"M128 416v-48a144 144 0 0 1 168.64-141.888 224.128 224.128 0 0 1 430.72 0A144 144 0 0 1 896 368v48a384 384 0 0 1-352 382.72V896h-64v-97.28A384 384 0 0 1 128 416zm287.104-32.064h193.792a143.808 143.808 0 0 1 58.88-132.736 160.064 160.064 0 0 0-311.552 0 143.808 143.808 0 0 1 58.88 132.8zm-72.896 0a72 72 0 1 0-140.48 0h140.48zm339.584 0h140.416a72 72 0 1 0-140.48 0zM512 736a320 320 0 0 0 318.4-288.064H193.6A320 320 0 0 0 512 736zM384 896.064h256a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64z\"},null,-1),AF=[EF];function FF(e,t,n,o,l,a){return b(),C(\"svg\",CF,AF)}var xF=M(wF,[[\"render\",FF],[\"__file\",\"dessert.vue\"]]),$F={name:\"Discount\"},DF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BF=f(\"path\",{fill:\"currentColor\",d:\"M224 704h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336V704zm0 64v128h576V768H224zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z\"},null,-1),SF=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),kF=[BF,SF];function PF(e,t,n,o,l,a){return b(),C(\"svg\",DF,kF)}var LF=M($F,[[\"render\",PF],[\"__file\",\"discount.vue\"]]),zF={name:\"DishDot\"},TF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MF=f(\"path\",{fill:\"currentColor\",d:\"m384.064 274.56.064-50.688A128 128 0 0 1 512.128 96c70.528 0 127.68 57.152 127.68 127.68v50.752A448.192 448.192 0 0 1 955.392 768H68.544A448.192 448.192 0 0 1 384 274.56zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-128h768a384 384 0 1 0-768 0zm447.808-448v-32.32a63.68 63.68 0 0 0-63.68-63.68 64 64 0 0 0-64 63.936V256h127.68z\"},null,-1),VF=[MF];function HF(e,t,n,o,l,a){return b(),C(\"svg\",TF,VF)}var IF=M(zF,[[\"render\",HF],[\"__file\",\"dish-dot.vue\"]]),RF={name:\"Dish\"},NF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OF=f(\"path\",{fill:\"currentColor\",d:\"M480 257.152V192h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96v65.152A448 448 0 0 1 955.52 768H68.48A448 448 0 0 1 480 257.152zM128 704h768a384 384 0 1 0-768 0zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64z\"},null,-1),UF=[OF];function WF(e,t,n,o,l,a){return b(),C(\"svg\",NF,UF)}var qF=M(RF,[[\"render\",WF],[\"__file\",\"dish.vue\"]]),jF={name:\"DocumentAdd\"},KF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GF=f(\"path\",{fill:\"currentColor\",d:\"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm320 512V448h64v128h128v64H544v128h-64V640H352v-64h128z\"},null,-1),YF=[GF];function XF(e,t,n,o,l,a){return b(),C(\"svg\",KF,YF)}var JF=M(jF,[[\"render\",XF],[\"__file\",\"document-add.vue\"]]),QF={name:\"DocumentChecked\"},ZF={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ex=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm318.4 582.144 180.992-180.992L704.64 510.4 478.4 736.64 320 578.304l45.248-45.312L478.4 646.144z\"},null,-1),tx=[ex];function nx(e,t,n,o,l,a){return b(),C(\"svg\",ZF,tx)}var ox=M(QF,[[\"render\",nx],[\"__file\",\"document-checked.vue\"]]),lx={name:\"DocumentCopy\"},ax={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rx=f(\"path\",{fill:\"currentColor\",d:\"M128 320v576h576V320H128zm-32-64h640a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32zM960 96v704a32 32 0 0 1-32 32h-96v-64h64V128H384v64h-64V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32zM256 672h320v64H256v-64zm0-192h320v64H256v-64z\"},null,-1),ux=[rx];function sx(e,t,n,o,l,a){return b(),C(\"svg\",ax,ux)}var ix=M(lx,[[\"render\",sx],[\"__file\",\"document-copy.vue\"]]),cx={name:\"DocumentDelete\"},dx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fx=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm308.992 546.304-90.496-90.624 45.248-45.248 90.56 90.496 90.496-90.432 45.248 45.248-90.496 90.56 90.496 90.496-45.248 45.248-90.496-90.496-90.56 90.496-45.248-45.248 90.496-90.496z\"},null,-1),px=[fx];function vx(e,t,n,o,l,a){return b(),C(\"svg\",dx,px)}var hx=M(cx,[[\"render\",vx],[\"__file\",\"document-delete.vue\"]]),_x={name:\"DocumentRemove\"},mx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gx=f(\"path\",{fill:\"currentColor\",d:\"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm192 512h320v64H352v-64z\"},null,-1),bx=[gx];function yx(e,t,n,o,l,a){return b(),C(\"svg\",mx,bx)}var wx=M(_x,[[\"render\",yx],[\"__file\",\"document-remove.vue\"]]),Cx={name:\"Document\"},Ex={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ax=f(\"path\",{fill:\"currentColor\",d:\"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z\"},null,-1),Fx=[Ax];function xx(e,t,n,o,l,a){return b(),C(\"svg\",Ex,Fx)}var bf=M(Cx,[[\"render\",xx],[\"__file\",\"document.vue\"]]),$x={name:\"Download\"},Dx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Bx=f(\"path\",{fill:\"currentColor\",d:\"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z\"},null,-1),Sx=[Bx];function kx(e,t,n,o,l,a){return b(),C(\"svg\",Dx,Sx)}var Px=M($x,[[\"render\",kx],[\"__file\",\"download.vue\"]]),Lx={name:\"Drizzling\"},zx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Tx=f(\"path\",{fill:\"currentColor\",d:\"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM288 800h64v64h-64v-64zm192 0h64v64h-64v-64zm-96 96h64v64h-64v-64zm192 0h64v64h-64v-64zm96-96h64v64h-64v-64z\"},null,-1),Mx=[Tx];function Vx(e,t,n,o,l,a){return b(),C(\"svg\",zx,Mx)}var Hx=M(Lx,[[\"render\",Vx],[\"__file\",\"drizzling.vue\"]]),Ix={name:\"EditPen\"},Rx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Nx=f(\"path\",{d:\"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696L175.168 732.8zM455.04 229.248l193.92 112 56.704-98.112-193.984-112-56.64 98.112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336L104.32 708.8zm384 254.272v-64h448v64h-448z\",fill:\"currentColor\"},null,-1),Ox=[Nx];function Ux(e,t,n,o,l,a){return b(),C(\"svg\",Rx,Ox)}var Wx=M(Ix,[[\"render\",Ux],[\"__file\",\"edit-pen.vue\"]]),qx={name:\"Edit\"},jx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Kx=f(\"path\",{fill:\"currentColor\",d:\"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z\"},null,-1),Gx=f(\"path\",{fill:\"currentColor\",d:\"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z\"},null,-1),Yx=[Kx,Gx];function Xx(e,t,n,o,l,a){return b(),C(\"svg\",jx,Yx)}var Jx=M(qx,[[\"render\",Xx],[\"__file\",\"edit.vue\"]]),Qx={name:\"ElemeFilled\"},Zx={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},e$=f(\"path\",{fill:\"currentColor\",d:\"M176 64h672c61.824 0 112 50.176 112 112v672a112 112 0 0 1-112 112H176A112 112 0 0 1 64 848V176c0-61.824 50.176-112 112-112zm150.528 173.568c-152.896 99.968-196.544 304.064-97.408 456.96a330.688 330.688 0 0 0 456.96 96.64c9.216-5.888 17.6-11.776 25.152-18.56a18.24 18.24 0 0 0 4.224-24.32L700.352 724.8a47.552 47.552 0 0 0-65.536-14.272A234.56 234.56 0 0 1 310.592 641.6C240 533.248 271.104 387.968 379.456 316.48a234.304 234.304 0 0 1 276.352 15.168c1.664.832 2.56 2.56 3.392 4.224 5.888 8.384 3.328 19.328-5.12 25.216L456.832 489.6a47.552 47.552 0 0 0-14.336 65.472l16 24.384c5.888 8.384 16.768 10.88 25.216 5.056l308.224-199.936a19.584 19.584 0 0 0 6.72-23.488v-.896c-4.992-9.216-10.048-17.6-15.104-26.88-99.968-151.168-304.064-194.88-456.96-95.744zM786.88 504.704l-62.208 40.32c-8.32 5.888-10.88 16.768-4.992 25.216L760 632.32c5.888 8.448 16.768 11.008 25.152 5.12l31.104-20.16a55.36 55.36 0 0 0 16-76.48l-20.224-31.04a19.52 19.52 0 0 0-25.152-5.12z\"},null,-1),t$=[e$];function n$(e,t,n,o,l,a){return b(),C(\"svg\",Zx,t$)}var o$=M(Qx,[[\"render\",n$],[\"__file\",\"eleme-filled.vue\"]]),l$={name:\"Eleme\"},a$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},r$=f(\"path\",{fill:\"currentColor\",d:\"M300.032 188.8c174.72-113.28 408-63.36 522.24 109.44 5.76 10.56 11.52 20.16 17.28 30.72v.96a22.4 22.4 0 0 1-7.68 26.88l-352.32 228.48c-9.6 6.72-22.08 3.84-28.8-5.76l-18.24-27.84a54.336 54.336 0 0 1 16.32-74.88l225.6-146.88c9.6-6.72 12.48-19.2 5.76-28.8-.96-1.92-1.92-3.84-3.84-4.8a267.84 267.84 0 0 0-315.84-17.28c-123.84 81.6-159.36 247.68-78.72 371.52a268.096 268.096 0 0 0 370.56 78.72 54.336 54.336 0 0 1 74.88 16.32l17.28 26.88c5.76 9.6 3.84 21.12-4.8 27.84-8.64 7.68-18.24 14.4-28.8 21.12a377.92 377.92 0 0 1-522.24-110.4c-113.28-174.72-63.36-408 111.36-522.24zm526.08 305.28a22.336 22.336 0 0 1 28.8 5.76l23.04 35.52a63.232 63.232 0 0 1-18.24 87.36l-35.52 23.04c-9.6 6.72-22.08 3.84-28.8-5.76l-46.08-71.04c-6.72-9.6-3.84-22.08 5.76-28.8l71.04-46.08z\"},null,-1),u$=[r$];function s$(e,t,n,o,l,a){return b(),C(\"svg\",a$,u$)}var i$=M(l$,[[\"render\",s$],[\"__file\",\"eleme.vue\"]]),c$={name:\"ElementPlus\"},d$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},f$=f(\"path\",{d:\"M839.7 734.7c0 33.3-17.9 41-17.9 41S519.7 949.8 499.2 960c-10.2 5.1-20.5 5.1-30.7 0 0 0-314.9-184.3-325.1-192-5.1-5.1-10.2-12.8-12.8-20.5V368.6c0-17.9 20.5-28.2 20.5-28.2L466 158.6c12.8-5.1 25.6-5.1 38.4 0 0 0 279 161.3 309.8 179.2 17.9 7.7 28.2 25.6 25.6 46.1-.1-5-.1 317.5-.1 350.8zM714.2 371.2c-64-35.8-217.6-125.4-217.6-125.4-7.7-5.1-20.5-5.1-30.7 0L217.6 389.1s-17.9 10.2-17.9 23v297c0 5.1 5.1 12.8 7.7 17.9 7.7 5.1 256 148.5 256 148.5 7.7 5.1 17.9 5.1 25.6 0 15.4-7.7 250.9-145.9 250.9-145.9s12.8-5.1 12.8-30.7v-74.2l-276.5 169v-64c0-17.9 7.7-30.7 20.5-46.1L745 535c5.1-7.7 10.2-20.5 10.2-30.7v-66.6l-279 169v-69.1c0-15.4 5.1-30.7 17.9-38.4l220.1-128zM919 135.7c0-5.1-5.1-7.7-7.7-7.7h-58.9V66.6c0-5.1-5.1-5.1-10.2-5.1l-30.7 5.1c-5.1 0-5.1 2.6-5.1 5.1V128h-56.3c-5.1 0-5.1 5.1-7.7 5.1v38.4h69.1v64c0 5.1 5.1 5.1 10.2 5.1l30.7-5.1c5.1 0 5.1-2.6 5.1-5.1v-56.3h64l-2.5-38.4z\",fill:\"currentColor\"},null,-1),p$=[f$];function v$(e,t,n,o,l,a){return b(),C(\"svg\",d$,p$)}var h$=M(c$,[[\"render\",v$],[\"__file\",\"element-plus.vue\"]]),_$={name:\"Expand\"},m$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},g$=f(\"path\",{fill:\"currentColor\",d:\"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"},null,-1),b$=[g$];function y$(e,t,n,o,l,a){return b(),C(\"svg\",m$,b$)}var w$=M(_$,[[\"render\",y$],[\"__file\",\"expand.vue\"]]),C$={name:\"Failed\"},E$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},A$=f(\"path\",{fill:\"currentColor\",d:\"m557.248 608 135.744-135.744-45.248-45.248-135.68 135.744-135.808-135.68-45.248 45.184L466.752 608l-135.68 135.68 45.184 45.312L512 653.248l135.744 135.744 45.248-45.248L557.312 608zM704 192h160v736H160V192h160v64h384v-64zm-320 0V96h256v96H384z\"},null,-1),F$=[A$];function x$(e,t,n,o,l,a){return b(),C(\"svg\",E$,F$)}var $$=M(C$,[[\"render\",x$],[\"__file\",\"failed.vue\"]]),D$={name:\"Female\"},B$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},S$=f(\"path\",{fill:\"currentColor\",d:\"M512 640a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),k$=f(\"path\",{fill:\"currentColor\",d:\"M512 640q32 0 32 32v256q0 32-32 32t-32-32V672q0-32 32-32z\"},null,-1),P$=f(\"path\",{fill:\"currentColor\",d:\"M352 800h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z\"},null,-1),L$=[S$,k$,P$];function z$(e,t,n,o,l,a){return b(),C(\"svg\",B$,L$)}var T$=M(D$,[[\"render\",z$],[\"__file\",\"female.vue\"]]),M$={name:\"Files\"},V$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},H$=f(\"path\",{fill:\"currentColor\",d:\"M128 384v448h768V384H128zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32zm64-128h704v64H160zm96-128h512v64H256z\"},null,-1),I$=[H$];function R$(e,t,n,o,l,a){return b(),C(\"svg\",V$,I$)}var N$=M(M$,[[\"render\",R$],[\"__file\",\"files.vue\"]]),O$={name:\"Film\"},U$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},W$=f(\"path\",{fill:\"currentColor\",d:\"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z\"},null,-1),q$=f(\"path\",{fill:\"currentColor\",d:\"M320 288V128h64v352h256V128h64v160h160v64H704v128h160v64H704v128h160v64H704v160h-64V544H384v352h-64V736H128v-64h192V544H128v-64h192V352H128v-64h192z\"},null,-1),j$=[W$,q$];function K$(e,t,n,o,l,a){return b(),C(\"svg\",U$,j$)}var G$=M(O$,[[\"render\",K$],[\"__file\",\"film.vue\"]]),Y$={name:\"Filter\"},X$={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},J$=f(\"path\",{fill:\"currentColor\",d:\"M384 523.392V928a32 32 0 0 0 46.336 28.608l192-96A32 32 0 0 0 640 832V523.392l280.768-343.104a32 32 0 1 0-49.536-40.576l-288 352A32 32 0 0 0 576 512v300.224l-128 64V512a32 32 0 0 0-7.232-20.288L195.52 192H704a32 32 0 1 0 0-64H128a32 32 0 0 0-24.768 52.288L384 523.392z\"},null,-1),Q$=[J$];function Z$(e,t,n,o,l,a){return b(),C(\"svg\",X$,Q$)}var eD=M(Y$,[[\"render\",Z$],[\"__file\",\"filter.vue\"]]),tD={name:\"Finished\"},nD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oD=f(\"path\",{fill:\"currentColor\",d:\"M280.768 753.728 691.456 167.04a32 32 0 1 1 52.416 36.672L314.24 817.472a32 32 0 0 1-45.44 7.296l-230.4-172.8a32 32 0 0 1 38.4-51.2l203.968 152.96zM736 448a32 32 0 1 1 0-64h192a32 32 0 1 1 0 64H736zM608 640a32 32 0 0 1 0-64h319.936a32 32 0 1 1 0 64H608zM480 832a32 32 0 1 1 0-64h447.936a32 32 0 1 1 0 64H480z\"},null,-1),lD=[oD];function aD(e,t,n,o,l,a){return b(),C(\"svg\",nD,lD)}var rD=M(tD,[[\"render\",aD],[\"__file\",\"finished.vue\"]]),uD={name:\"FirstAidKit\"},sD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iD=f(\"path\",{fill:\"currentColor\",d:\"M192 256a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H192zm0-64h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z\"},null,-1),cD=f(\"path\",{fill:\"currentColor\",d:\"M544 512h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96zM352 128v64h320v-64H352zm-32-64h384a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32H320a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),dD=[iD,cD];function fD(e,t,n,o,l,a){return b(),C(\"svg\",sD,dD)}var pD=M(uD,[[\"render\",fD],[\"__file\",\"first-aid-kit.vue\"]]),vD={name:\"Flag\"},hD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_D=f(\"path\",{fill:\"currentColor\",d:\"M288 128h608L736 384l160 256H288v320h-96V64h96v64z\"},null,-1),mD=[_D];function gD(e,t,n,o,l,a){return b(),C(\"svg\",hD,mD)}var bD=M(vD,[[\"render\",gD],[\"__file\",\"flag.vue\"]]),yD={name:\"Fold\"},wD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},CD=f(\"path\",{fill:\"currentColor\",d:\"M896 192H128v128h768V192zm0 256H384v128h512V448zm0 256H128v128h768V704zM320 384 128 512l192 128V384z\"},null,-1),ED=[CD];function AD(e,t,n,o,l,a){return b(),C(\"svg\",wD,ED)}var FD=M(yD,[[\"render\",AD],[\"__file\",\"fold.vue\"]]),xD={name:\"FolderAdd\"},$D={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DD=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm384 416V416h64v128h128v64H544v128h-64V608H352v-64h128z\"},null,-1),BD=[DD];function SD(e,t,n,o,l,a){return b(),C(\"svg\",$D,BD)}var kD=M(xD,[[\"render\",SD],[\"__file\",\"folder-add.vue\"]]),PD={name:\"FolderChecked\"},LD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zD=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm414.08 502.144 180.992-180.992L736.32 494.4 510.08 720.64l-158.4-158.336 45.248-45.312L510.08 630.144z\"},null,-1),TD=[zD];function MD(e,t,n,o,l,a){return b(),C(\"svg\",LD,TD)}var VD=M(PD,[[\"render\",MD],[\"__file\",\"folder-checked.vue\"]]),HD={name:\"FolderDelete\"},ID={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RD=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm370.752 448-90.496-90.496 45.248-45.248L512 530.752l90.496-90.496 45.248 45.248L557.248 576l90.496 90.496-45.248 45.248L512 621.248l-90.496 90.496-45.248-45.248L466.752 576z\"},null,-1),ND=[RD];function OD(e,t,n,o,l,a){return b(),C(\"svg\",ID,ND)}var UD=M(HD,[[\"render\",OD],[\"__file\",\"folder-delete.vue\"]]),WD={name:\"FolderOpened\"},qD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jD=f(\"path\",{fill:\"currentColor\",d:\"M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384H832zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896z\"},null,-1),KD=[jD];function GD(e,t,n,o,l,a){return b(),C(\"svg\",qD,KD)}var YD=M(WD,[[\"render\",GD],[\"__file\",\"folder-opened.vue\"]]),XD={name:\"FolderRemove\"},JD={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QD=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm256 416h320v64H352v-64z\"},null,-1),ZD=[QD];function eB(e,t,n,o,l,a){return b(),C(\"svg\",JD,ZD)}var tB=M(XD,[[\"render\",eB],[\"__file\",\"folder-remove.vue\"]]),nB={name:\"Folder\"},oB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lB=f(\"path\",{fill:\"currentColor\",d:\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32z\"},null,-1),aB=[lB];function rB(e,t,n,o,l,a){return b(),C(\"svg\",oB,aB)}var uB=M(nB,[[\"render\",rB],[\"__file\",\"folder.vue\"]]),sB={name:\"Food\"},iB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cB=f(\"path\",{fill:\"currentColor\",d:\"M128 352.576V352a288 288 0 0 1 491.072-204.224 192 192 0 0 1 274.24 204.48 64 64 0 0 1 57.216 74.24C921.6 600.512 850.048 710.656 736 756.992V800a96 96 0 0 1-96 96H384a96 96 0 0 1-96-96v-43.008c-114.048-46.336-185.6-156.48-214.528-330.496A64 64 0 0 1 128 352.64zm64-.576h64a160 160 0 0 1 320 0h64a224 224 0 0 0-448 0zm128 0h192a96 96 0 0 0-192 0zm439.424 0h68.544A128.256 128.256 0 0 0 704 192c-15.36 0-29.952 2.688-43.52 7.616 11.328 18.176 20.672 37.76 27.84 58.304A64.128 64.128 0 0 1 759.424 352zM672 768H352v32a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32v-32zm-342.528-64h365.056c101.504-32.64 165.76-124.928 192.896-288H136.576c27.136 163.072 91.392 255.36 192.896 288z\"},null,-1),dB=[cB];function fB(e,t,n,o,l,a){return b(),C(\"svg\",iB,dB)}var pB=M(sB,[[\"render\",fB],[\"__file\",\"food.vue\"]]),vB={name:\"Football\"},hB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_B=f(\"path\",{fill:\"currentColor\",d:\"M512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-64a384 384 0 1 0 0-768 384 384 0 0 0 0 768z\"},null,-1),mB=f(\"path\",{fill:\"currentColor\",d:\"M186.816 268.288c16-16.384 31.616-31.744 46.976-46.08 17.472 30.656 39.808 58.112 65.984 81.28l-32.512 56.448a385.984 385.984 0 0 1-80.448-91.648zm653.696-5.312a385.92 385.92 0 0 1-83.776 96.96l-32.512-56.384a322.923 322.923 0 0 0 68.48-85.76c15.552 14.08 31.488 29.12 47.808 45.184zM465.984 445.248l11.136-63.104a323.584 323.584 0 0 0 69.76 0l11.136 63.104a387.968 387.968 0 0 1-92.032 0zm-62.72-12.8A381.824 381.824 0 0 1 320 396.544l32-55.424a319.885 319.885 0 0 0 62.464 27.712l-11.2 63.488zm300.8-35.84a381.824 381.824 0 0 1-83.328 35.84l-11.2-63.552A319.885 319.885 0 0 0 672 341.184l32 55.424zm-520.768 364.8a385.92 385.92 0 0 1 83.968-97.28l32.512 56.32c-26.88 23.936-49.856 52.352-67.52 84.032-16-13.44-32.32-27.712-48.96-43.072zm657.536.128a1442.759 1442.759 0 0 1-49.024 43.072 321.408 321.408 0 0 0-67.584-84.16l32.512-56.32c33.216 27.456 61.696 60.352 84.096 97.408zM465.92 578.752a387.968 387.968 0 0 1 92.032 0l-11.136 63.104a323.584 323.584 0 0 0-69.76 0l-11.136-63.104zm-62.72 12.8 11.2 63.552a319.885 319.885 0 0 0-62.464 27.712L320 627.392a381.824 381.824 0 0 1 83.264-35.84zm300.8 35.84-32 55.424a318.272 318.272 0 0 0-62.528-27.712l11.2-63.488c29.44 8.64 57.28 20.736 83.264 35.776z\"},null,-1),gB=[_B,mB];function bB(e,t,n,o,l,a){return b(),C(\"svg\",hB,gB)}var yB=M(vB,[[\"render\",bB],[\"__file\",\"football.vue\"]]),wB={name:\"ForkSpoon\"},CB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EB=f(\"path\",{fill:\"currentColor\",d:\"M256 410.304V96a32 32 0 0 1 64 0v314.304a96 96 0 0 0 64-90.56V96a32 32 0 0 1 64 0v223.744a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.544a160 160 0 0 1-128-156.8V96a32 32 0 0 1 64 0v223.744a96 96 0 0 0 64 90.56zM672 572.48C581.184 552.128 512 446.848 512 320c0-141.44 85.952-256 192-256s192 114.56 192 256c0 126.848-69.184 232.128-160 252.48V928a32 32 0 1 1-64 0V572.48zM704 512c66.048 0 128-82.56 128-192s-61.952-192-128-192-128 82.56-128 192 61.952 192 128 192z\"},null,-1),AB=[EB];function FB(e,t,n,o,l,a){return b(),C(\"svg\",CB,AB)}var xB=M(wB,[[\"render\",FB],[\"__file\",\"fork-spoon.vue\"]]),$B={name:\"Fries\"},DB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BB=f(\"path\",{fill:\"currentColor\",d:\"M608 224v-64a32 32 0 0 0-64 0v336h26.88A64 64 0 0 0 608 484.096V224zm101.12 160A64 64 0 0 0 672 395.904V384h64V224a32 32 0 1 0-64 0v160h37.12zm74.88 0a92.928 92.928 0 0 1 91.328 110.08l-60.672 323.584A96 96 0 0 1 720.32 896H303.68a96 96 0 0 1-94.336-78.336L148.672 494.08A92.928 92.928 0 0 1 240 384h-16V224a96 96 0 0 1 188.608-25.28A95.744 95.744 0 0 1 480 197.44V160a96 96 0 0 1 188.608-25.28A96 96 0 0 1 800 224v160h-16zM670.784 512a128 128 0 0 1-99.904 48H453.12a128 128 0 0 1-99.84-48H352v-1.536a128.128 128.128 0 0 1-9.984-14.976L314.88 448H240a28.928 28.928 0 0 0-28.48 34.304L241.088 640h541.824l29.568-157.696A28.928 28.928 0 0 0 784 448h-74.88l-27.136 47.488A132.405 132.405 0 0 1 672 510.464V512h-1.216zM480 288a32 32 0 0 0-64 0v196.096A64 64 0 0 0 453.12 496H480V288zm-128 96V224a32 32 0 0 0-64 0v160h64-37.12A64 64 0 0 1 352 395.904zm-98.88 320 19.072 101.888A32 32 0 0 0 303.68 832h416.64a32 32 0 0 0 31.488-26.112L770.88 704H253.12z\"},null,-1),SB=[BB];function kB(e,t,n,o,l,a){return b(),C(\"svg\",DB,SB)}var PB=M($B,[[\"render\",kB],[\"__file\",\"fries.vue\"]]),LB={name:\"FullScreen\"},zB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TB=f(\"path\",{fill:\"currentColor\",d:\"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64v.064zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64l-192 .192zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64v-.064z\"},null,-1),MB=[TB];function VB(e,t,n,o,l,a){return b(),C(\"svg\",zB,MB)}var HB=M(LB,[[\"render\",VB],[\"__file\",\"full-screen.vue\"]]),IB={name:\"GobletFull\"},RB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NB=f(\"path\",{fill:\"currentColor\",d:\"M256 320h512c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320zm503.936 64H264.064a256.128 256.128 0 0 0 495.872 0zM544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4z\"},null,-1),OB=[NB];function UB(e,t,n,o,l,a){return b(),C(\"svg\",RB,OB)}var WB=M(IB,[[\"render\",UB],[\"__file\",\"goblet-full.vue\"]]),qB={name:\"GobletSquareFull\"},jB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KB=f(\"path\",{fill:\"currentColor\",d:\"M256 270.912c10.048 6.72 22.464 14.912 28.992 18.624a220.16 220.16 0 0 0 114.752 30.72c30.592 0 49.408-9.472 91.072-41.152l.64-.448c52.928-40.32 82.368-55.04 132.288-54.656 55.552.448 99.584 20.8 142.72 57.408l1.536 1.28V128H256v142.912zm.96 76.288C266.368 482.176 346.88 575.872 512 576c157.44.064 237.952-85.056 253.248-209.984a952.32 952.32 0 0 1-40.192-35.712c-32.704-27.776-63.36-41.92-101.888-42.24-31.552-.256-50.624 9.28-93.12 41.6l-.576.448c-52.096 39.616-81.024 54.208-129.792 54.208-54.784 0-100.48-13.376-142.784-37.056zM480 638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848z\"},null,-1),GB=[KB];function YB(e,t,n,o,l,a){return b(),C(\"svg\",jB,GB)}var XB=M(qB,[[\"render\",YB],[\"__file\",\"goblet-square-full.vue\"]]),JB={name:\"GobletSquare\"},QB={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ZB=f(\"path\",{fill:\"currentColor\",d:\"M544 638.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912zM256 319.68c0 149.568 80 256.192 256 256.256C688.128 576 768 469.568 768 320V128H256v191.68z\"},null,-1),eS=[ZB];function tS(e,t,n,o,l,a){return b(),C(\"svg\",QB,eS)}var nS=M(JB,[[\"render\",tS],[\"__file\",\"goblet-square.vue\"]]),oS={name:\"Goblet\"},lS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aS=f(\"path\",{fill:\"currentColor\",d:\"M544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4zM256 320a256 256 0 1 0 512 0c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320z\"},null,-1),rS=[aS];function uS(e,t,n,o,l,a){return b(),C(\"svg\",lS,rS)}var sS=M(oS,[[\"render\",uS],[\"__file\",\"goblet.vue\"]]),iS={name:\"GoldMedal\"},cS={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},dS=f(\"path\",{d:\"m772.13 452.84 53.86-351.81c1.32-10.01-1.17-18.68-7.49-26.02S804.35 64 795.01 64H228.99v-.01h-.06c-9.33 0-17.15 3.67-23.49 11.01s-8.83 16.01-7.49 26.02l53.87 351.89C213.54 505.73 193.59 568.09 192 640c2 90.67 33.17 166.17 93.5 226.5S421.33 957.99 512 960c90.67-2 166.17-33.17 226.5-93.5 60.33-60.34 91.49-135.83 93.5-226.5-1.59-71.94-21.56-134.32-59.87-187.16zM640.01 128h117.02l-39.01 254.02c-20.75-10.64-40.74-19.73-59.94-27.28-5.92-3-11.95-5.8-18.08-8.41V128h.01zM576 128v198.76c-13.18-2.58-26.74-4.43-40.67-5.55-8.07-.8-15.85-1.2-23.33-1.2-10.54 0-21.09.66-31.64 1.96a359.844 359.844 0 0 0-32.36 4.79V128h128zm-192 0h.04v218.3c-6.22 2.66-12.34 5.5-18.36 8.56-19.13 7.54-39.02 16.6-59.66 27.16L267.01 128H384zm308.99 692.99c-48 48-108.33 73-180.99 75.01-72.66-2.01-132.99-27.01-180.99-75.01S258.01 712.66 256 640c2.01-72.66 27.01-132.99 75.01-180.99 19.67-19.67 41.41-35.47 65.22-47.41 38.33-15.04 71.15-23.92 98.44-26.65 5.07-.41 10.2-.7 15.39-.88.63-.01 1.28-.03 1.91-.03.66 0 1.35.03 2.02.04 5.11.17 10.15.46 15.13.86 27.4 2.71 60.37 11.65 98.91 26.79 23.71 11.93 45.36 27.69 64.96 47.29 48 48 73 108.33 75.01 180.99-2.01 72.65-27.01 132.98-75.01 180.98z\",fill:\"currentColor\"},null,-1),fS=f(\"path\",{d:\"M544 480H416v64h64v192h-64v64h192v-64h-64z\",fill:\"currentColor\"},null,-1),pS=[dS,fS];function vS(e,t,n,o,l,a){return b(),C(\"svg\",cS,pS)}var hS=M(iS,[[\"render\",vS],[\"__file\",\"gold-medal.vue\"]]),_S={name:\"GoodsFilled\"},mS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gS=f(\"path\",{fill:\"currentColor\",d:\"M192 352h640l64 544H128l64-544zm128 224h64V448h-64v128zm320 0h64V448h-64v128zM384 288h-64a192 192 0 1 1 384 0h-64a128 128 0 1 0-256 0z\"},null,-1),bS=[gS];function yS(e,t,n,o,l,a){return b(),C(\"svg\",mS,bS)}var wS=M(_S,[[\"render\",yS],[\"__file\",\"goods-filled.vue\"]]),CS={name:\"Goods\"},ES={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},AS=f(\"path\",{fill:\"currentColor\",d:\"M320 288v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4h131.072a32 32 0 0 1 31.808 28.8l57.6 576a32 32 0 0 1-31.808 35.2H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320zm64 0h256v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4zm-64 64H217.92l-51.2 512h690.56l-51.264-512H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96z\"},null,-1),FS=[AS];function xS(e,t,n,o,l,a){return b(),C(\"svg\",ES,FS)}var $S=M(CS,[[\"render\",xS],[\"__file\",\"goods.vue\"]]),DS={name:\"Grape\"},BS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SS=f(\"path\",{fill:\"currentColor\",d:\"M544 195.2a160 160 0 0 1 96 60.8 160 160 0 1 1 146.24 254.976 160 160 0 0 1-128 224 160 160 0 1 1-292.48 0 160 160 0 0 1-128-224A160 160 0 1 1 384 256a160 160 0 0 1 96-60.8V128h-64a32 32 0 0 1 0-64h192a32 32 0 0 1 0 64h-64v67.2zM512 448a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm-256 0a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"},null,-1),kS=[SS];function PS(e,t,n,o,l,a){return b(),C(\"svg\",BS,kS)}var LS=M(DS,[[\"render\",PS],[\"__file\",\"grape.vue\"]]),zS={name:\"Grid\"},TS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MS=f(\"path\",{fill:\"currentColor\",d:\"M640 384v256H384V384h256zm64 0h192v256H704V384zm-64 512H384V704h256v192zm64 0V704h192v192H704zm-64-768v192H384V128h256zm64 0h192v192H704V128zM320 384v256H128V384h192zm0 512H128V704h192v192zm0-768v192H128V128h192z\"},null,-1),VS=[MS];function HS(e,t,n,o,l,a){return b(),C(\"svg\",TS,VS)}var IS=M(zS,[[\"render\",HS],[\"__file\",\"grid.vue\"]]),RS={name:\"Guide\"},NS={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OS=f(\"path\",{fill:\"currentColor\",d:\"M640 608h-64V416h64v192zm0 160v160a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V768h64v128h128V768h64zM384 608V416h64v192h-64zm256-352h-64V128H448v128h-64V96a32 32 0 0 1 32-32h192a32 32 0 0 1 32 32v160z\"},null,-1),US=f(\"path\",{fill:\"currentColor\",d:\"m220.8 256-71.232 80 71.168 80H768V256H220.8zm-14.4-64H800a32 32 0 0 1 32 32v224a32 32 0 0 1-32 32H206.4a32 32 0 0 1-23.936-10.752l-99.584-112a32 32 0 0 1 0-42.496l99.584-112A32 32 0 0 1 206.4 192zm678.784 496-71.104 80H266.816V608h547.2l71.168 80zm-56.768-144H234.88a32 32 0 0 0-32 32v224a32 32 0 0 0 32 32h593.6a32 32 0 0 0 23.936-10.752l99.584-112a32 32 0 0 0 0-42.496l-99.584-112A32 32 0 0 0 828.48 544z\"},null,-1),WS=[OS,US];function qS(e,t,n,o,l,a){return b(),C(\"svg\",NS,WS)}var jS=M(RS,[[\"render\",qS],[\"__file\",\"guide.vue\"]]),KS={name:\"Handbag\"},GS={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},YS=f(\"path\",{d:\"M887.01 264.99c-6-5.99-13.67-8.99-23.01-8.99H704c-1.34-54.68-20.01-100.01-56-136s-81.32-54.66-136-56c-54.68 1.34-100.01 20.01-136 56s-54.66 81.32-56 136H160c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.67-8.99 23.01v640c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V288c0-9.35-2.99-17.02-8.99-23.01zM421.5 165.5c24.32-24.34 54.49-36.84 90.5-37.5 35.99.68 66.16 13.18 90.5 37.5s36.84 54.49 37.5 90.5H384c.68-35.99 13.18-66.16 37.5-90.5zM832 896H192V320h128v128h64V320h256v128h64V320h128v576z\",fill:\"currentColor\"},null,-1),XS=[YS];function JS(e,t,n,o,l,a){return b(),C(\"svg\",GS,XS)}var QS=M(KS,[[\"render\",JS],[\"__file\",\"handbag.vue\"]]),ZS={name:\"Headset\"},ek={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tk=f(\"path\",{fill:\"currentColor\",d:\"M896 529.152V512a384 384 0 1 0-768 0v17.152A128 128 0 0 1 320 640v128a128 128 0 1 1-256 0V512a448 448 0 1 1 896 0v256a128 128 0 1 1-256 0V640a128 128 0 0 1 192-110.848zM896 640a64 64 0 0 0-128 0v128a64 64 0 0 0 128 0V640zm-768 0v128a64 64 0 0 0 128 0V640a64 64 0 1 0-128 0z\"},null,-1),nk=[tk];function ok(e,t,n,o,l,a){return b(),C(\"svg\",ek,nk)}var lk=M(ZS,[[\"render\",ok],[\"__file\",\"headset.vue\"]]),ak={name:\"HelpFilled\"},rk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uk=f(\"path\",{fill:\"currentColor\",d:\"M926.784 480H701.312A192.512 192.512 0 0 0 544 322.688V97.216A416.064 416.064 0 0 1 926.784 480zm0 64A416.064 416.064 0 0 1 544 926.784V701.312A192.512 192.512 0 0 0 701.312 544h225.472zM97.28 544h225.472A192.512 192.512 0 0 0 480 701.312v225.472A416.064 416.064 0 0 1 97.216 544zm0-64A416.064 416.064 0 0 1 480 97.216v225.472A192.512 192.512 0 0 0 322.688 480H97.216z\"},null,-1),sk=[uk];function ik(e,t,n,o,l,a){return b(),C(\"svg\",rk,sk)}var ck=M(ak,[[\"render\",ik],[\"__file\",\"help-filled.vue\"]]),dk={name:\"Help\"},fk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pk=f(\"path\",{fill:\"currentColor\",d:\"m759.936 805.248-90.944-91.008A254.912 254.912 0 0 1 512 768a254.912 254.912 0 0 1-156.992-53.76l-90.944 91.008A382.464 382.464 0 0 0 512 896c94.528 0 181.12-34.176 247.936-90.752zm45.312-45.312A382.464 382.464 0 0 0 896 512c0-94.528-34.176-181.12-90.752-247.936l-91.008 90.944C747.904 398.4 768 452.864 768 512c0 59.136-20.096 113.6-53.76 156.992l91.008 90.944zm-45.312-541.184A382.464 382.464 0 0 0 512 128c-94.528 0-181.12 34.176-247.936 90.752l90.944 91.008A254.912 254.912 0 0 1 512 256c59.136 0 113.6 20.096 156.992 53.76l90.944-91.008zm-541.184 45.312A382.464 382.464 0 0 0 128 512c0 94.528 34.176 181.12 90.752 247.936l91.008-90.944A254.912 254.912 0 0 1 256 512c0-59.136 20.096-113.6 53.76-156.992l-91.008-90.944zm417.28 394.496a194.56 194.56 0 0 0 22.528-22.528C686.912 602.56 704 559.232 704 512a191.232 191.232 0 0 0-67.968-146.56A191.296 191.296 0 0 0 512 320a191.232 191.232 0 0 0-146.56 67.968C337.088 421.44 320 464.768 320 512a191.232 191.232 0 0 0 67.968 146.56C421.44 686.912 464.768 704 512 704c47.296 0 90.56-17.088 124.032-45.44zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),vk=[pk];function hk(e,t,n,o,l,a){return b(),C(\"svg\",fk,vk)}var _k=M(dk,[[\"render\",hk],[\"__file\",\"help.vue\"]]),mk={name:\"Hide\"},gk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bk=f(\"path\",{d:\"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z\",fill:\"currentColor\"},null,-1),yk=f(\"path\",{d:\"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z\",fill:\"currentColor\"},null,-1),wk=[bk,yk];function Ck(e,t,n,o,l,a){return b(),C(\"svg\",gk,wk)}var yf=M(mk,[[\"render\",Ck],[\"__file\",\"hide.vue\"]]),Ek={name:\"Histogram\"},Ak={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Fk=f(\"path\",{fill:\"currentColor\",d:\"M416 896V128h192v768H416zm-288 0V448h192v448H128zm576 0V320h192v576H704z\"},null,-1),xk=[Fk];function $k(e,t,n,o,l,a){return b(),C(\"svg\",Ak,xk)}var Dk=M(Ek,[[\"render\",$k],[\"__file\",\"histogram.vue\"]]),Bk={name:\"HomeFilled\"},Sk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kk=f(\"path\",{fill:\"currentColor\",d:\"M512 128 128 447.936V896h255.936V640H640v256h255.936V447.936z\"},null,-1),Pk=[kk];function Lk(e,t,n,o,l,a){return b(),C(\"svg\",Sk,Pk)}var zk=M(Bk,[[\"render\",Lk],[\"__file\",\"home-filled.vue\"]]),Tk={name:\"HotWater\"},Mk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Vk=f(\"path\",{fill:\"currentColor\",d:\"M273.067 477.867h477.866V409.6H273.067v68.267zm0 68.266v51.2A187.733 187.733 0 0 0 460.8 785.067h102.4a187.733 187.733 0 0 0 187.733-187.734v-51.2H273.067zm-34.134-204.8h546.134a34.133 34.133 0 0 1 34.133 34.134v221.866a256 256 0 0 1-256 256H460.8a256 256 0 0 1-256-256V375.467a34.133 34.133 0 0 1 34.133-34.134zM512 34.133a34.133 34.133 0 0 1 34.133 34.134v170.666a34.133 34.133 0 0 1-68.266 0V68.267A34.133 34.133 0 0 1 512 34.133zM375.467 102.4a34.133 34.133 0 0 1 34.133 34.133v102.4a34.133 34.133 0 0 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.134-34.133zm273.066 0a34.133 34.133 0 0 1 34.134 34.133v102.4a34.133 34.133 0 1 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.133-34.133zM170.667 921.668h682.666a34.133 34.133 0 1 1 0 68.267H170.667a34.133 34.133 0 1 1 0-68.267z\"},null,-1),Hk=[Vk];function Ik(e,t,n,o,l,a){return b(),C(\"svg\",Mk,Hk)}var Rk=M(Tk,[[\"render\",Ik],[\"__file\",\"hot-water.vue\"]]),Nk={name:\"House\"},Ok={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Uk=f(\"path\",{fill:\"currentColor\",d:\"M192 413.952V896h640V413.952L512 147.328 192 413.952zM139.52 374.4l352-293.312a32 32 0 0 1 40.96 0l352 293.312A32 32 0 0 1 896 398.976V928a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V398.976a32 32 0 0 1 11.52-24.576z\"},null,-1),Wk=[Uk];function qk(e,t,n,o,l,a){return b(),C(\"svg\",Ok,Wk)}var jk=M(Nk,[[\"render\",qk],[\"__file\",\"house.vue\"]]),Kk={name:\"IceCreamRound\"},Gk={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Yk=f(\"path\",{fill:\"currentColor\",d:\"m308.352 489.344 226.304 226.304a32 32 0 0 0 45.248 0L783.552 512A192 192 0 1 0 512 240.448L308.352 444.16a32 32 0 0 0 0 45.248zm135.744 226.304L308.352 851.392a96 96 0 0 1-135.744-135.744l135.744-135.744-45.248-45.248a96 96 0 0 1 0-135.808L466.752 195.2A256 256 0 0 1 828.8 557.248L625.152 760.96a96 96 0 0 1-135.808 0l-45.248-45.248zM398.848 670.4 353.6 625.152 217.856 760.896a32 32 0 0 0 45.248 45.248L398.848 670.4zm248.96-384.64a32 32 0 0 1 0 45.248L466.624 512a32 32 0 1 1-45.184-45.248l180.992-181.056a32 32 0 0 1 45.248 0zm90.496 90.496a32 32 0 0 1 0 45.248L557.248 602.496A32 32 0 1 1 512 557.248l180.992-180.992a32 32 0 0 1 45.312 0z\"},null,-1),Xk=[Yk];function Jk(e,t,n,o,l,a){return b(),C(\"svg\",Gk,Xk)}var Qk=M(Kk,[[\"render\",Jk],[\"__file\",\"ice-cream-round.vue\"]]),Zk={name:\"IceCreamSquare\"},eP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tP=f(\"path\",{fill:\"currentColor\",d:\"M416 640h256a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h64zm192 64v160a96 96 0 0 1-192 0V704h-64a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h320a96 96 0 0 1 96 96v448a96 96 0 0 1-96 96h-64zm-64 0h-64v160a32 32 0 1 0 64 0V704z\"},null,-1),nP=[tP];function oP(e,t,n,o,l,a){return b(),C(\"svg\",eP,nP)}var lP=M(Zk,[[\"render\",oP],[\"__file\",\"ice-cream-square.vue\"]]),aP={name:\"IceCream\"},rP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uP=f(\"path\",{fill:\"currentColor\",d:\"M128.64 448a208 208 0 0 1 193.536-191.552 224 224 0 0 1 445.248 15.488A208.128 208.128 0 0 1 894.784 448H896L548.8 983.68a32 32 0 0 1-53.248.704L128 448h.64zm64.256 0h286.208a144 144 0 0 0-286.208 0zm351.36 0h286.272a144 144 0 0 0-286.272 0zm-294.848 64 271.808 396.608L778.24 512H249.408zM511.68 352.64a207.872 207.872 0 0 1 189.184-96.192 160 160 0 0 0-314.752 5.632c52.608 12.992 97.28 46.08 125.568 90.56z\"},null,-1),sP=[uP];function iP(e,t,n,o,l,a){return b(),C(\"svg\",rP,sP)}var cP=M(aP,[[\"render\",iP],[\"__file\",\"ice-cream.vue\"]]),dP={name:\"IceDrink\"},fP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pP=f(\"path\",{fill:\"currentColor\",d:\"M512 448v128h239.68l16.064-128H512zm-64 0H256.256l16.064 128H448V448zm64-255.36V384h247.744A256.128 256.128 0 0 0 512 192.64zm-64 8.064A256.448 256.448 0 0 0 264.256 384H448V200.704zm64-72.064A320.128 320.128 0 0 1 825.472 384H896a32 32 0 1 1 0 64h-64v1.92l-56.96 454.016A64 64 0 0 1 711.552 960H312.448a64 64 0 0 1-63.488-56.064L192 449.92V448h-64a32 32 0 0 1 0-64h70.528A320.384 320.384 0 0 1 448 135.04V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H544a32 32 0 0 0-32 32v32.64zM743.68 640H280.32l32.128 256h399.104l32.128-256z\"},null,-1),vP=[pP];function hP(e,t,n,o,l,a){return b(),C(\"svg\",fP,vP)}var _P=M(dP,[[\"render\",hP],[\"__file\",\"ice-drink.vue\"]]),mP={name:\"IceTea\"},gP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bP=f(\"path\",{fill:\"currentColor\",d:\"M197.696 259.648a320.128 320.128 0 0 1 628.608 0A96 96 0 0 1 896 352v64a96 96 0 0 1-71.616 92.864l-49.408 395.072A64 64 0 0 1 711.488 960H312.512a64 64 0 0 1-63.488-56.064l-49.408-395.072A96 96 0 0 1 128 416v-64a96 96 0 0 1 69.696-92.352zM264.064 256h495.872a256.128 256.128 0 0 0-495.872 0zm495.424 256H264.512l48 384h398.976l48-384zM224 448h576a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32zm160 192h64v64h-64v-64zm192 64h64v64h-64v-64zm-128 64h64v64h-64v-64zm64-192h64v64h-64v-64z\"},null,-1),yP=[bP];function wP(e,t,n,o,l,a){return b(),C(\"svg\",gP,yP)}var CP=M(mP,[[\"render\",wP],[\"__file\",\"ice-tea.vue\"]]),EP={name:\"InfoFilled\"},AP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FP=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z\"},null,-1),xP=[FP];function $P(e,t,n,o,l,a){return b(),C(\"svg\",AP,xP)}var t2=M(EP,[[\"render\",$P],[\"__file\",\"info-filled.vue\"]]),DP={name:\"Iphone\"},BP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SP=f(\"path\",{fill:\"currentColor\",d:\"M224 768v96.064a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V768H224zm0-64h576V160a64 64 0 0 0-64-64H288a64 64 0 0 0-64 64v544zm32 288a96 96 0 0 1-96-96V128a96 96 0 0 1 96-96h512a96 96 0 0 1 96 96v768a96 96 0 0 1-96 96H256zm304-144a48 48 0 1 1-96 0 48 48 0 0 1 96 0z\"},null,-1),kP=[SP];function PP(e,t,n,o,l,a){return b(),C(\"svg\",BP,kP)}var LP=M(DP,[[\"render\",PP],[\"__file\",\"iphone.vue\"]]),zP={name:\"Key\"},TP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MP=f(\"path\",{fill:\"currentColor\",d:\"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064zM512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384z\"},null,-1),VP=[MP];function HP(e,t,n,o,l,a){return b(),C(\"svg\",TP,VP)}var IP=M(zP,[[\"render\",HP],[\"__file\",\"key.vue\"]]),RP={name:\"KnifeFork\"},NP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OP=f(\"path\",{fill:\"currentColor\",d:\"M256 410.56V96a32 32 0 0 1 64 0v314.56A96 96 0 0 0 384 320V96a32 32 0 0 1 64 0v224a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.8A160 160 0 0 1 128 320V96a32 32 0 0 1 64 0v224a96 96 0 0 0 64 90.56zm384-250.24V544h126.72c-3.328-78.72-12.928-147.968-28.608-207.744-14.336-54.528-46.848-113.344-98.112-175.872zM640 608v320a32 32 0 1 1-64 0V64h64c85.312 89.472 138.688 174.848 160 256 21.312 81.152 32 177.152 32 288H640z\"},null,-1),UP=[OP];function WP(e,t,n,o,l,a){return b(),C(\"svg\",NP,UP)}var qP=M(RP,[[\"render\",WP],[\"__file\",\"knife-fork.vue\"]]),jP={name:\"Lightning\"},KP={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GP=f(\"path\",{fill:\"currentColor\",d:\"M288 671.36v64.128A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 736 734.016v-64.768a192 192 0 0 0 3.328-377.92l-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 91.968 70.464 167.36 160.256 175.232z\"},null,-1),YP=f(\"path\",{fill:\"currentColor\",d:\"M416 736a32 32 0 0 1-27.776-47.872l128-224a32 32 0 1 1 55.552 31.744L471.168 672H608a32 32 0 0 1 27.776 47.872l-128 224a32 32 0 1 1-55.68-31.744L552.96 736H416z\"},null,-1),XP=[GP,YP];function JP(e,t,n,o,l,a){return b(),C(\"svg\",KP,XP)}var QP=M(jP,[[\"render\",JP],[\"__file\",\"lightning.vue\"]]),ZP={name:\"Link\"},eL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tL=f(\"path\",{fill:\"currentColor\",d:\"M715.648 625.152 670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248 90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656 87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496 45.248 45.248-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896 62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496 45.248 45.248zm0-362.048 45.248 45.248L398.848 670.4 353.6 625.152 625.152 353.6z\"},null,-1),nL=[tL];function oL(e,t,n,o,l,a){return b(),C(\"svg\",eL,nL)}var lL=M(ZP,[[\"render\",oL],[\"__file\",\"link.vue\"]]),aL={name:\"List\"},rL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uL=f(\"path\",{fill:\"currentColor\",d:\"M704 192h160v736H160V192h160v64h384v-64zM288 512h448v-64H288v64zm0 256h448v-64H288v64zm96-576V96h256v96H384z\"},null,-1),sL=[uL];function iL(e,t,n,o,l,a){return b(),C(\"svg\",rL,sL)}var cL=M(aL,[[\"render\",iL],[\"__file\",\"list.vue\"]]),dL={name:\"Loading\"},fL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pL=f(\"path\",{fill:\"currentColor\",d:\"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z\"},null,-1),vL=[pL];function hL(e,t,n,o,l,a){return b(),C(\"svg\",fL,vL)}var cr=M(dL,[[\"render\",hL],[\"__file\",\"loading.vue\"]]),_L={name:\"LocationFilled\"},mL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gL=f(\"path\",{fill:\"currentColor\",d:\"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928zm0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6z\"},null,-1),bL=[gL];function yL(e,t,n,o,l,a){return b(),C(\"svg\",mL,bL)}var wL=M(_L,[[\"render\",yL],[\"__file\",\"location-filled.vue\"]]),CL={name:\"LocationInformation\"},EL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},AL=f(\"path\",{fill:\"currentColor\",d:\"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),FL=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),xL=f(\"path\",{fill:\"currentColor\",d:\"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z\"},null,-1),$L=[AL,FL,xL];function DL(e,t,n,o,l,a){return b(),C(\"svg\",EL,$L)}var BL=M(CL,[[\"render\",DL],[\"__file\",\"location-information.vue\"]]),SL={name:\"Location\"},kL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PL=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),LL=f(\"path\",{fill:\"currentColor\",d:\"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z\"},null,-1),zL=[PL,LL];function TL(e,t,n,o,l,a){return b(),C(\"svg\",kL,zL)}var ML=M(SL,[[\"render\",TL],[\"__file\",\"location.vue\"]]),VL={name:\"Lock\"},HL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IL=f(\"path\",{fill:\"currentColor\",d:\"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z\"},null,-1),RL=f(\"path\",{fill:\"currentColor\",d:\"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z\"},null,-1),NL=[IL,RL];function OL(e,t,n,o,l,a){return b(),C(\"svg\",HL,NL)}var UL=M(VL,[[\"render\",OL],[\"__file\",\"lock.vue\"]]),WL={name:\"Lollipop\"},qL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jL=f(\"path\",{fill:\"currentColor\",d:\"M513.28 448a64 64 0 1 1 76.544 49.728A96 96 0 0 0 768 448h64a160 160 0 0 1-320 0h1.28zm-126.976-29.696a256 256 0 1 0 43.52-180.48A256 256 0 0 1 832 448h-64a192 192 0 0 0-381.696-29.696zm105.664 249.472L285.696 874.048a96 96 0 0 1-135.68-135.744l206.208-206.272a320 320 0 1 1 135.744 135.744zm-54.464-36.032a321.92 321.92 0 0 1-45.248-45.248L195.2 783.552a32 32 0 1 0 45.248 45.248l197.056-197.12z\"},null,-1),KL=[jL];function GL(e,t,n,o,l,a){return b(),C(\"svg\",qL,KL)}var YL=M(WL,[[\"render\",GL],[\"__file\",\"lollipop.vue\"]]),XL={name:\"MagicStick\"},JL={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QL=f(\"path\",{fill:\"currentColor\",d:\"M512 64h64v192h-64V64zm0 576h64v192h-64V640zM160 480v-64h192v64H160zm576 0v-64h192v64H736zM249.856 199.04l45.248-45.184L430.848 289.6 385.6 334.848 249.856 199.104zM657.152 606.4l45.248-45.248 135.744 135.744-45.248 45.248L657.152 606.4zM114.048 923.2 68.8 877.952l316.8-316.8 45.248 45.248-316.8 316.8zM702.4 334.848 657.152 289.6l135.744-135.744 45.248 45.248L702.4 334.848z\"},null,-1),ZL=[QL];function ez(e,t,n,o,l,a){return b(),C(\"svg\",JL,ZL)}var tz=M(XL,[[\"render\",ez],[\"__file\",\"magic-stick.vue\"]]),nz={name:\"Magnet\"},oz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lz=f(\"path\",{fill:\"currentColor\",d:\"M832 320V192H704v320a192 192 0 1 1-384 0V192H192v128h128v64H192v128a320 320 0 0 0 640 0V384H704v-64h128zM640 512V128h256v384a384 384 0 1 1-768 0V128h256v384a128 128 0 1 0 256 0z\"},null,-1),az=[lz];function rz(e,t,n,o,l,a){return b(),C(\"svg\",oz,az)}var uz=M(nz,[[\"render\",rz],[\"__file\",\"magnet.vue\"]]),sz={name:\"Male\"},iz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cz=f(\"path\",{fill:\"currentColor\",d:\"M399.5 849.5a225 225 0 1 0 0-450 225 225 0 0 0 0 450zm0 56.25a281.25 281.25 0 1 1 0-562.5 281.25 281.25 0 0 1 0 562.5zm253.125-787.5h225q28.125 0 28.125 28.125T877.625 174.5h-225q-28.125 0-28.125-28.125t28.125-28.125z\"},null,-1),dz=f(\"path\",{fill:\"currentColor\",d:\"M877.625 118.25q28.125 0 28.125 28.125v225q0 28.125-28.125 28.125T849.5 371.375v-225q0-28.125 28.125-28.125z\"},null,-1),fz=f(\"path\",{fill:\"currentColor\",d:\"M604.813 458.9 565.1 419.131l292.613-292.668 39.825 39.824z\"},null,-1),pz=[cz,dz,fz];function vz(e,t,n,o,l,a){return b(),C(\"svg\",iz,pz)}var hz=M(sz,[[\"render\",vz],[\"__file\",\"male.vue\"]]),_z={name:\"Management\"},mz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gz=f(\"path\",{fill:\"currentColor\",d:\"M576 128v288l96-96 96 96V128h128v768H320V128h256zm-448 0h128v768H128V128z\"},null,-1),bz=[gz];function yz(e,t,n,o,l,a){return b(),C(\"svg\",mz,bz)}var wz=M(_z,[[\"render\",yz],[\"__file\",\"management.vue\"]]),Cz={name:\"MapLocation\"},Ez={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Az=f(\"path\",{fill:\"currentColor\",d:\"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z\"},null,-1),Fz=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256zm345.6 192L960 960H672v-64H352v64H64l102.4-256h691.2zm-68.928 0H235.328l-76.8 192h706.944l-76.8-192z\"},null,-1),xz=[Az,Fz];function $z(e,t,n,o,l,a){return b(),C(\"svg\",Ez,xz)}var Dz=M(Cz,[[\"render\",$z],[\"__file\",\"map-location.vue\"]]),Bz={name:\"Medal\"},Sz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},kz=f(\"path\",{fill:\"currentColor\",d:\"M512 896a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),Pz=f(\"path\",{fill:\"currentColor\",d:\"M576 128H448v200a286.72 286.72 0 0 1 64-8c19.52 0 40.832 2.688 64 8V128zm64 0v219.648c24.448 9.088 50.56 20.416 78.4 33.92L757.44 128H640zm-256 0H266.624l39.04 253.568c27.84-13.504 53.888-24.832 78.336-33.92V128zM229.312 64h565.376a32 32 0 0 1 31.616 36.864L768 480c-113.792-64-199.104-96-256-96-56.896 0-142.208 32-256 96l-58.304-379.136A32 32 0 0 1 229.312 64z\"},null,-1),Lz=[kz,Pz];function zz(e,t,n,o,l,a){return b(),C(\"svg\",Sz,Lz)}var Tz=M(Bz,[[\"render\",zz],[\"__file\",\"medal.vue\"]]),Mz={name:\"Memo\"},Vz={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},Hz=f(\"path\",{d:\"M480 320h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z\",fill:\"currentColor\"},null,-1),Iz=f(\"path\",{d:\"M887.01 72.99C881.01 67 873.34 64 864 64H160c-9.35 0-17.02 3-23.01 8.99C131 78.99 128 86.66 128 96v832c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V96c0-9.35-3-17.02-8.99-23.01zM192 896V128h96v768h-96zm640 0H352V128h480v768z\",fill:\"currentColor\"},null,-1),Rz=f(\"path\",{d:\"M480 512h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32zm0 192h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z\",fill:\"currentColor\"},null,-1),Nz=[Hz,Iz,Rz];function Oz(e,t,n,o,l,a){return b(),C(\"svg\",Vz,Nz)}var Uz=M(Mz,[[\"render\",Oz],[\"__file\",\"memo.vue\"]]),Wz={name:\"Menu\"},qz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},jz=f(\"path\",{fill:\"currentColor\",d:\"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H608zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H608z\"},null,-1),Kz=[jz];function Gz(e,t,n,o,l,a){return b(),C(\"svg\",qz,Kz)}var Yz=M(Wz,[[\"render\",Gz],[\"__file\",\"menu.vue\"]]),Xz={name:\"MessageBox\"},Jz={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Qz=f(\"path\",{fill:\"currentColor\",d:\"M288 384h448v64H288v-64zm96-128h256v64H384v-64zM131.456 512H384v128h256V512h252.544L721.856 192H302.144L131.456 512zM896 576H704v128H320V576H128v256h768V576zM275.776 128h472.448a32 32 0 0 1 28.608 17.664l179.84 359.552A32 32 0 0 1 960 519.552V864a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V519.552a32 32 0 0 1 3.392-14.336l179.776-359.552A32 32 0 0 1 275.776 128z\"},null,-1),Zz=[Qz];function eT(e,t,n,o,l,a){return b(),C(\"svg\",Jz,Zz)}var tT=M(Xz,[[\"render\",eT],[\"__file\",\"message-box.vue\"]]),nT={name:\"Message\"},oT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},lT=f(\"path\",{fill:\"currentColor\",d:\"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z\"},null,-1),aT=f(\"path\",{fill:\"currentColor\",d:\"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z\"},null,-1),rT=[lT,aT];function uT(e,t,n,o,l,a){return b(),C(\"svg\",oT,rT)}var sT=M(nT,[[\"render\",uT],[\"__file\",\"message.vue\"]]),iT={name:\"Mic\"},cT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dT=f(\"path\",{fill:\"currentColor\",d:\"M480 704h160a64 64 0 0 0 64-64v-32h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-32a64 64 0 0 0-64-64H384a64 64 0 0 0-64 64v32h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v32a64 64 0 0 0 64 64h96zm64 64v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768h-96a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64h256a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128h-96z\"},null,-1),fT=[dT];function pT(e,t,n,o,l,a){return b(),C(\"svg\",cT,fT)}var vT=M(iT,[[\"render\",pT],[\"__file\",\"mic.vue\"]]),hT={name:\"Microphone\"},_T={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mT=f(\"path\",{fill:\"currentColor\",d:\"M512 128a128 128 0 0 0-128 128v256a128 128 0 1 0 256 0V256a128 128 0 0 0-128-128zm0-64a192 192 0 0 1 192 192v256a192 192 0 1 1-384 0V256A192 192 0 0 1 512 64zm-32 832v-64a288 288 0 0 1-288-288v-32a32 32 0 0 1 64 0v32a224 224 0 0 0 224 224h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64z\"},null,-1),gT=[mT];function bT(e,t,n,o,l,a){return b(),C(\"svg\",_T,gT)}var yT=M(hT,[[\"render\",bT],[\"__file\",\"microphone.vue\"]]),wT={name:\"MilkTea\"},CT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ET=f(\"path\",{fill:\"currentColor\",d:\"M416 128V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H512a32 32 0 0 0-32 32v32h320a96 96 0 0 1 11.712 191.296l-39.68 581.056A64 64 0 0 1 708.224 960H315.776a64 64 0 0 1-63.872-59.648l-39.616-581.056A96 96 0 0 1 224 128h192zM276.48 320l39.296 576h392.448l4.8-70.784a224.064 224.064 0 0 1 30.016-439.808L747.52 320H276.48zM224 256h576a32 32 0 1 0 0-64H224a32 32 0 0 0 0 64zm493.44 503.872 21.12-309.12a160 160 0 0 0-21.12 309.12z\"},null,-1),AT=[ET];function FT(e,t,n,o,l,a){return b(),C(\"svg\",CT,AT)}var xT=M(wT,[[\"render\",FT],[\"__file\",\"milk-tea.vue\"]]),$T={name:\"Minus\"},DT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BT=f(\"path\",{fill:\"currentColor\",d:\"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64z\"},null,-1),ST=[BT];function kT(e,t,n,o,l,a){return b(),C(\"svg\",DT,ST)}var wf=M($T,[[\"render\",kT],[\"__file\",\"minus.vue\"]]),PT={name:\"Money\"},LT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zT=f(\"path\",{fill:\"currentColor\",d:\"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z\"},null,-1),TT=f(\"path\",{fill:\"currentColor\",d:\"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z\"},null,-1),MT=f(\"path\",{fill:\"currentColor\",d:\"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"},null,-1),VT=[zT,TT,MT];function HT(e,t,n,o,l,a){return b(),C(\"svg\",LT,VT)}var IT=M(PT,[[\"render\",HT],[\"__file\",\"money.vue\"]]),RT={name:\"Monitor\"},NT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OT=f(\"path\",{fill:\"currentColor\",d:\"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H544zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H192z\"},null,-1),UT=[OT];function WT(e,t,n,o,l,a){return b(),C(\"svg\",NT,UT)}var qT=M(RT,[[\"render\",WT],[\"__file\",\"monitor.vue\"]]),jT={name:\"MoonNight\"},KT={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GT=f(\"path\",{fill:\"currentColor\",d:\"M384 512a448 448 0 0 1 215.872-383.296A384 384 0 0 0 213.76 640h188.8A448.256 448.256 0 0 1 384 512zM171.136 704a448 448 0 0 1 636.992-575.296A384 384 0 0 0 499.328 704h-328.32z\"},null,-1),YT=f(\"path\",{fill:\"currentColor\",d:\"M32 640h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm128 128h384a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm160 127.68 224 .256a32 32 0 0 1 32 32V928a32 32 0 0 1-32 32l-224-.384a32 32 0 0 1-32-32v-.064a32 32 0 0 1 32-32z\"},null,-1),XT=[GT,YT];function JT(e,t,n,o,l,a){return b(),C(\"svg\",KT,XT)}var QT=M(jT,[[\"render\",JT],[\"__file\",\"moon-night.vue\"]]),ZT={name:\"Moon\"},eM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},tM=f(\"path\",{fill:\"currentColor\",d:\"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 390.592 390.592 0 0 0-17.408 16.384zm181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696z\"},null,-1),nM=[tM];function oM(e,t,n,o,l,a){return b(),C(\"svg\",eM,nM)}var lM=M(ZT,[[\"render\",oM],[\"__file\",\"moon.vue\"]]),aM={name:\"MoreFilled\"},rM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uM=f(\"path\",{fill:\"currentColor\",d:\"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224z\"},null,-1),sM=[uM];function iM(e,t,n,o,l,a){return b(),C(\"svg\",rM,sM)}var js=M(aM,[[\"render\",iM],[\"__file\",\"more-filled.vue\"]]),cM={name:\"More\"},dM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fM=f(\"path\",{fill:\"currentColor\",d:\"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z\"},null,-1),pM=[fM];function vM(e,t,n,o,l,a){return b(),C(\"svg\",dM,pM)}var Cf=M(cM,[[\"render\",vM],[\"__file\",\"more.vue\"]]),hM={name:\"MostlyCloudy\"},_M={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mM=f(\"path\",{fill:\"currentColor\",d:\"M737.216 357.952 704 349.824l-11.776-32a192.064 192.064 0 0 0-367.424 23.04l-8.96 39.04-39.04 8.96A192.064 192.064 0 0 0 320 768h368a207.808 207.808 0 0 0 207.808-208 208.32 208.32 0 0 0-158.592-202.048zm15.168-62.208A272.32 272.32 0 0 1 959.744 560a271.808 271.808 0 0 1-271.552 272H320a256 256 0 0 1-57.536-505.536 256.128 256.128 0 0 1 489.92-30.72z\"},null,-1),gM=[mM];function bM(e,t,n,o,l,a){return b(),C(\"svg\",_M,gM)}var yM=M(hM,[[\"render\",bM],[\"__file\",\"mostly-cloudy.vue\"]]),wM={name:\"Mouse\"},CM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EM=f(\"path\",{fill:\"currentColor\",d:\"M438.144 256c-68.352 0-92.736 4.672-117.76 18.112-20.096 10.752-35.52 26.176-46.272 46.272C260.672 345.408 256 369.792 256 438.144v275.712c0 68.352 4.672 92.736 18.112 117.76 10.752 20.096 26.176 35.52 46.272 46.272C345.408 891.328 369.792 896 438.144 896h147.712c68.352 0 92.736-4.672 117.76-18.112 20.096-10.752 35.52-26.176 46.272-46.272C763.328 806.592 768 782.208 768 713.856V438.144c0-68.352-4.672-92.736-18.112-117.76a110.464 110.464 0 0 0-46.272-46.272C678.592 260.672 654.208 256 585.856 256H438.144zm0-64h147.712c85.568 0 116.608 8.96 147.904 25.6 31.36 16.768 55.872 41.344 72.576 72.64C823.104 321.536 832 352.576 832 438.08v275.84c0 85.504-8.96 116.544-25.6 147.84a174.464 174.464 0 0 1-72.64 72.576C702.464 951.104 671.424 960 585.92 960H438.08c-85.504 0-116.544-8.96-147.84-25.6a174.464 174.464 0 0 1-72.64-72.704c-16.768-31.296-25.664-62.336-25.664-147.84v-275.84c0-85.504 8.96-116.544 25.6-147.84a174.464 174.464 0 0 1 72.768-72.576c31.232-16.704 62.272-25.6 147.776-25.6z\"},null,-1),AM=f(\"path\",{fill:\"currentColor\",d:\"M512 320q32 0 32 32v128q0 32-32 32t-32-32V352q0-32 32-32zm32-96a32 32 0 0 1-64 0v-64a32 32 0 0 0-32-32h-96a32 32 0 0 1 0-64h96a96 96 0 0 1 96 96v64z\"},null,-1),FM=[EM,AM];function xM(e,t,n,o,l,a){return b(),C(\"svg\",CM,FM)}var $M=M(wM,[[\"render\",xM],[\"__file\",\"mouse.vue\"]]),DM={name:\"Mug\"},BM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SM=f(\"path\",{fill:\"currentColor\",d:\"M736 800V160H160v640a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64zm64-544h63.552a96 96 0 0 1 96 96v224a96 96 0 0 1-96 96H800v128a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V128a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 64v288h63.552a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32H800z\"},null,-1),kM=[SM];function PM(e,t,n,o,l,a){return b(),C(\"svg\",BM,kM)}var LM=M(DM,[[\"render\",PM],[\"__file\",\"mug.vue\"]]),zM={name:\"MuteNotification\"},TM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MM=f(\"path\",{fill:\"currentColor\",d:\"m241.216 832 63.616-64H768V448c0-42.368-10.24-82.304-28.48-117.504l46.912-47.232C815.36 331.392 832 387.84 832 448v320h96a32 32 0 1 1 0 64H241.216zm-90.24 0H96a32 32 0 1 1 0-64h96V448a320.128 320.128 0 0 1 256-313.6V128a64 64 0 1 1 128 0v6.4a319.552 319.552 0 0 1 171.648 97.088l-45.184 45.44A256 256 0 0 0 256 448v278.336L151.04 832zM448 896h128a64 64 0 0 1-128 0z\"},null,-1),VM=f(\"path\",{fill:\"currentColor\",d:\"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z\"},null,-1),HM=[MM,VM];function IM(e,t,n,o,l,a){return b(),C(\"svg\",TM,HM)}var RM=M(zM,[[\"render\",IM],[\"__file\",\"mute-notification.vue\"]]),NM={name:\"Mute\"},OM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},UM=f(\"path\",{fill:\"currentColor\",d:\"m412.16 592.128-45.44 45.44A191.232 191.232 0 0 1 320 512V256a192 192 0 1 1 384 0v44.352l-64 64V256a128 128 0 1 0-256 0v256c0 30.336 10.56 58.24 28.16 80.128zm51.968 38.592A128 128 0 0 0 640 512v-57.152l64-64V512a192 192 0 0 1-287.68 166.528l47.808-47.808zM314.88 779.968l46.144-46.08A222.976 222.976 0 0 0 480 768h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64v-64c-61.44 0-118.4-19.2-165.12-52.032zM266.752 737.6A286.976 286.976 0 0 1 192 544v-32a32 32 0 0 1 64 0v32c0 56.832 21.184 108.8 56.064 148.288L266.752 737.6z\"},null,-1),WM=f(\"path\",{fill:\"currentColor\",d:\"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z\"},null,-1),qM=[UM,WM];function jM(e,t,n,o,l,a){return b(),C(\"svg\",OM,qM)}var KM=M(NM,[[\"render\",jM],[\"__file\",\"mute.vue\"]]),GM={name:\"NoSmoking\"},YM={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XM=f(\"path\",{fill:\"currentColor\",d:\"M440.256 576H256v128h56.256l-64 64H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32h280.256l-64 64zm143.488 128H704V583.744L775.744 512H928a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H519.744l64-64zM768 576v128h128V576H768zm-29.696-207.552 45.248 45.248-497.856 497.856-45.248-45.248zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z\"},null,-1),JM=[XM];function QM(e,t,n,o,l,a){return b(),C(\"svg\",YM,JM)}var ZM=M(GM,[[\"render\",QM],[\"__file\",\"no-smoking.vue\"]]),eV={name:\"Notebook\"},tV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nV=f(\"path\",{fill:\"currentColor\",d:\"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),oV=f(\"path\",{fill:\"currentColor\",d:\"M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32z\"},null,-1),lV=[nV,oV];function aV(e,t,n,o,l,a){return b(),C(\"svg\",tV,lV)}var rV=M(eV,[[\"render\",aV],[\"__file\",\"notebook.vue\"]]),uV={name:\"Notification\"},sV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iV=f(\"path\",{fill:\"currentColor\",d:\"M512 128v64H256a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V512h64v256a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V256a128 128 0 0 1 128-128h256z\"},null,-1),cV=f(\"path\",{fill:\"currentColor\",d:\"M768 384a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z\"},null,-1),dV=[iV,cV];function fV(e,t,n,o,l,a){return b(),C(\"svg\",sV,dV)}var pV=M(uV,[[\"render\",fV],[\"__file\",\"notification.vue\"]]),vV={name:\"Odometer\"},hV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_V=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),mV=f(\"path\",{fill:\"currentColor\",d:\"M192 512a320 320 0 1 1 640 0 32 32 0 1 1-64 0 256 256 0 1 0-512 0 32 32 0 0 1-64 0z\"},null,-1),gV=f(\"path\",{fill:\"currentColor\",d:\"M570.432 627.84A96 96 0 1 1 509.568 608l60.992-187.776A32 32 0 1 1 631.424 440l-60.992 187.776zM502.08 734.464a32 32 0 1 0 19.84-60.928 32 32 0 0 0-19.84 60.928z\"},null,-1),bV=[_V,mV,gV];function yV(e,t,n,o,l,a){return b(),C(\"svg\",hV,bV)}var wV=M(vV,[[\"render\",yV],[\"__file\",\"odometer.vue\"]]),CV={name:\"OfficeBuilding\"},EV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},AV=f(\"path\",{fill:\"currentColor\",d:\"M192 128v704h384V128H192zm-32-64h448a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),FV=f(\"path\",{fill:\"currentColor\",d:\"M256 256h256v64H256v-64zm0 192h256v64H256v-64zm0 192h256v64H256v-64zm384-128h128v64H640v-64zm0 128h128v64H640v-64zM64 832h896v64H64v-64z\"},null,-1),xV=f(\"path\",{fill:\"currentColor\",d:\"M640 384v448h192V384H640zm-32-64h256a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H608a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z\"},null,-1),$V=[AV,FV,xV];function DV(e,t,n,o,l,a){return b(),C(\"svg\",EV,$V)}var BV=M(CV,[[\"render\",DV],[\"__file\",\"office-building.vue\"]]),SV={name:\"Open\"},kV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PV=f(\"path\",{fill:\"currentColor\",d:\"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z\"},null,-1),LV=f(\"path\",{fill:\"currentColor\",d:\"M694.044 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z\"},null,-1),zV=[PV,LV];function TV(e,t,n,o,l,a){return b(),C(\"svg\",kV,zV)}var MV=M(SV,[[\"render\",TV],[\"__file\",\"open.vue\"]]),VV={name:\"Operation\"},HV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IV=f(\"path\",{fill:\"currentColor\",d:\"M389.44 768a96.064 96.064 0 0 1 181.12 0H896v64H570.56a96.064 96.064 0 0 1-181.12 0H128v-64h261.44zm192-288a96.064 96.064 0 0 1 181.12 0H896v64H762.56a96.064 96.064 0 0 1-181.12 0H128v-64h453.44zm-320-288a96.064 96.064 0 0 1 181.12 0H896v64H442.56a96.064 96.064 0 0 1-181.12 0H128v-64h133.44z\"},null,-1),RV=[IV];function NV(e,t,n,o,l,a){return b(),C(\"svg\",HV,RV)}var OV=M(VV,[[\"render\",NV],[\"__file\",\"operation.vue\"]]),UV={name:\"Opportunity\"},WV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qV=f(\"path\",{fill:\"currentColor\",d:\"M384 960v-64h192.064v64H384zm448-544a350.656 350.656 0 0 1-128.32 271.424C665.344 719.04 640 763.776 640 813.504V832H320v-14.336c0-48-19.392-95.36-57.216-124.992a351.552 351.552 0 0 1-128.448-344.256c25.344-136.448 133.888-248.128 269.76-276.48A352.384 352.384 0 0 1 832 416zm-544 32c0-132.288 75.904-224 192-224v-64c-154.432 0-256 122.752-256 288h64z\"},null,-1),jV=[qV];function KV(e,t,n,o,l,a){return b(),C(\"svg\",WV,jV)}var GV=M(UV,[[\"render\",KV],[\"__file\",\"opportunity.vue\"]]),YV={name:\"Orange\"},XV={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JV=f(\"path\",{fill:\"currentColor\",d:\"M544 894.72a382.336 382.336 0 0 0 215.936-89.472L577.024 622.272c-10.24 6.016-21.248 10.688-33.024 13.696v258.688zm261.248-134.784A382.336 382.336 0 0 0 894.656 544H635.968c-3.008 11.776-7.68 22.848-13.696 33.024l182.976 182.912zM894.656 480a382.336 382.336 0 0 0-89.408-215.936L622.272 446.976c6.016 10.24 10.688 21.248 13.696 33.024h258.688zm-134.72-261.248A382.336 382.336 0 0 0 544 129.344v258.688c11.776 3.008 22.848 7.68 33.024 13.696l182.912-182.976zM480 129.344a382.336 382.336 0 0 0-215.936 89.408l182.912 182.976c10.24-6.016 21.248-10.688 33.024-13.696V129.344zm-261.248 134.72A382.336 382.336 0 0 0 129.344 480h258.688c3.008-11.776 7.68-22.848 13.696-33.024L218.752 264.064zM129.344 544a382.336 382.336 0 0 0 89.408 215.936l182.976-182.912A127.232 127.232 0 0 1 388.032 544H129.344zm134.72 261.248A382.336 382.336 0 0 0 480 894.656V635.968a127.232 127.232 0 0 1-33.024-13.696L264.064 805.248zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-384a64 64 0 1 0 0-128 64 64 0 0 0 0 128z\"},null,-1),QV=[JV];function ZV(e,t,n,o,l,a){return b(),C(\"svg\",XV,QV)}var eH=M(YV,[[\"render\",ZV],[\"__file\",\"orange.vue\"]]),tH={name:\"Paperclip\"},nH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oH=f(\"path\",{fill:\"currentColor\",d:\"M602.496 240.448A192 192 0 1 1 874.048 512l-316.8 316.8A256 256 0 0 1 195.2 466.752L602.496 59.456l45.248 45.248L240.448 512A192 192 0 0 0 512 783.552l316.8-316.8a128 128 0 1 0-181.056-181.056L353.6 579.904a32 32 0 1 0 45.248 45.248l294.144-294.144 45.312 45.248L444.096 670.4a96 96 0 1 1-135.744-135.744l294.144-294.208z\"},null,-1),lH=[oH];function aH(e,t,n,o,l,a){return b(),C(\"svg\",nH,lH)}var rH=M(tH,[[\"render\",aH],[\"__file\",\"paperclip.vue\"]]),uH={name:\"PartlyCloudy\"},sH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},iH=f(\"path\",{fill:\"currentColor\",d:\"M598.4 895.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 895.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 445.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z\"},null,-1),cH=f(\"path\",{fill:\"currentColor\",d:\"M139.84 501.888a256 256 0 1 1 417.856-277.12c-17.728 2.176-38.208 8.448-61.504 18.816A192 192 0 1 0 189.12 460.48a6003.84 6003.84 0 0 0-49.28 41.408z\"},null,-1),dH=[iH,cH];function fH(e,t,n,o,l,a){return b(),C(\"svg\",sH,dH)}var pH=M(uH,[[\"render\",fH],[\"__file\",\"partly-cloudy.vue\"]]),vH={name:\"Pear\"},hH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_H=f(\"path\",{fill:\"currentColor\",d:\"M542.336 258.816a443.255 443.255 0 0 0-9.024 25.088 32 32 0 1 1-60.8-20.032l1.088-3.328a162.688 162.688 0 0 0-122.048 131.392l-17.088 102.72-20.736 15.36C256.192 552.704 224 610.88 224 672c0 120.576 126.4 224 288 224s288-103.424 288-224c0-61.12-32.192-119.296-89.728-161.92l-20.736-15.424-17.088-102.72a162.688 162.688 0 0 0-130.112-133.12zm-40.128-66.56c7.936-15.552 16.576-30.08 25.92-43.776 23.296-33.92 49.408-59.776 78.528-77.12a32 32 0 1 1 32.704 55.04c-20.544 12.224-40.064 31.552-58.432 58.304a316.608 316.608 0 0 0-9.792 15.104 226.688 226.688 0 0 1 164.48 181.568l12.8 77.248C819.456 511.36 864 587.392 864 672c0 159.04-157.568 288-352 288S160 831.04 160 672c0-84.608 44.608-160.64 115.584-213.376l12.8-77.248a226.624 226.624 0 0 1 213.76-189.184z\"},null,-1),mH=[_H];function gH(e,t,n,o,l,a){return b(),C(\"svg\",hH,mH)}var bH=M(vH,[[\"render\",gH],[\"__file\",\"pear.vue\"]]),yH={name:\"PhoneFilled\"},wH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},CH=f(\"path\",{fill:\"currentColor\",d:\"M199.232 125.568 90.624 379.008a32 32 0 0 0 6.784 35.2l512.384 512.384a32 32 0 0 0 35.2 6.784l253.44-108.608a32 32 0 0 0 10.048-52.032L769.6 633.92a32 32 0 0 0-36.928-5.952l-130.176 65.088-271.488-271.552 65.024-130.176a32 32 0 0 0-5.952-36.928L251.2 115.52a32 32 0 0 0-51.968 10.048z\"},null,-1),EH=[CH];function AH(e,t,n,o,l,a){return b(),C(\"svg\",wH,EH)}var FH=M(yH,[[\"render\",AH],[\"__file\",\"phone-filled.vue\"]]),xH={name:\"Phone\"},$H={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DH=f(\"path\",{fill:\"currentColor\",d:\"M79.36 432.256 591.744 944.64a32 32 0 0 0 35.2 6.784l253.44-108.544a32 32 0 0 0 9.984-52.032l-153.856-153.92a32 32 0 0 0-36.928-6.016l-69.888 34.944L358.08 394.24l35.008-69.888a32 32 0 0 0-5.952-36.928L233.152 133.568a32 32 0 0 0-52.032 10.048L72.512 397.056a32 32 0 0 0 6.784 35.2zm60.48-29.952 81.536-190.08L325.568 316.48l-24.64 49.216-20.608 41.216 32.576 32.64 271.552 271.552 32.64 32.64 41.216-20.672 49.28-24.576 104.192 104.128-190.08 81.472L139.84 402.304zM512 320v-64a256 256 0 0 1 256 256h-64a192 192 0 0 0-192-192zm0-192V64a448 448 0 0 1 448 448h-64a384 384 0 0 0-384-384z\"},null,-1),BH=[DH];function SH(e,t,n,o,l,a){return b(),C(\"svg\",$H,BH)}var kH=M(xH,[[\"render\",SH],[\"__file\",\"phone.vue\"]]),PH={name:\"PictureFilled\"},LH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zH=f(\"path\",{fill:\"currentColor\",d:\"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32H96zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112zM256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384z\"},null,-1),TH=[zH];function MH(e,t,n,o,l,a){return b(),C(\"svg\",LH,TH)}var VH=M(PH,[[\"render\",MH],[\"__file\",\"picture-filled.vue\"]]),HH={name:\"PictureRounded\"},IH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},RH=f(\"path\",{fill:\"currentColor\",d:\"M512 128a384 384 0 1 0 0 768 384 384 0 0 0 0-768zm0-64a448 448 0 1 1 0 896 448 448 0 0 1 0-896z\"},null,-1),NH=f(\"path\",{fill:\"currentColor\",d:\"M640 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM214.656 790.656l-45.312-45.312 185.664-185.6a96 96 0 0 1 123.712-10.24l138.24 98.688a32 32 0 0 0 39.872-2.176L906.688 422.4l42.624 47.744L699.52 693.696a96 96 0 0 1-119.808 6.592l-138.24-98.752a32 32 0 0 0-41.152 3.456l-185.664 185.6z\"},null,-1),OH=[RH,NH];function UH(e,t,n,o,l,a){return b(),C(\"svg\",IH,OH)}var WH=M(HH,[[\"render\",UH],[\"__file\",\"picture-rounded.vue\"]]),qH={name:\"Picture\"},jH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KH=f(\"path\",{fill:\"currentColor\",d:\"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z\"},null,-1),GH=f(\"path\",{fill:\"currentColor\",d:\"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z\"},null,-1),YH=[KH,GH];function XH(e,t,n,o,l,a){return b(),C(\"svg\",jH,YH)}var JH=M(qH,[[\"render\",XH],[\"__file\",\"picture.vue\"]]),QH={name:\"PieChart\"},ZH={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eI=f(\"path\",{fill:\"currentColor\",d:\"M448 68.48v64.832A384.128 384.128 0 0 0 512 896a384.128 384.128 0 0 0 378.688-320h64.768A448.128 448.128 0 0 1 64 512 448.128 448.128 0 0 1 448 68.48z\"},null,-1),tI=f(\"path\",{fill:\"currentColor\",d:\"M576 97.28V448h350.72A384.064 384.064 0 0 0 576 97.28zM512 64V33.152A448 448 0 0 1 990.848 512H512V64z\"},null,-1),nI=[eI,tI];function oI(e,t,n,o,l,a){return b(),C(\"svg\",ZH,nI)}var lI=M(QH,[[\"render\",oI],[\"__file\",\"pie-chart.vue\"]]),aI={name:\"Place\"},rI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uI=f(\"path\",{fill:\"currentColor\",d:\"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z\"},null,-1),sI=f(\"path\",{fill:\"currentColor\",d:\"M512 512a32 32 0 0 1 32 32v256a32 32 0 1 1-64 0V544a32 32 0 0 1 32-32z\"},null,-1),iI=f(\"path\",{fill:\"currentColor\",d:\"M384 649.088v64.96C269.76 732.352 192 771.904 192 800c0 37.696 139.904 96 320 96s320-58.304 320-96c0-28.16-77.76-67.648-192-85.952v-64.96C789.12 671.04 896 730.368 896 800c0 88.32-171.904 160-384 160s-384-71.68-384-160c0-69.696 106.88-128.96 256-150.912z\"},null,-1),cI=[uI,sI,iI];function dI(e,t,n,o,l,a){return b(),C(\"svg\",rI,cI)}var fI=M(aI,[[\"render\",dI],[\"__file\",\"place.vue\"]]),pI={name:\"Platform\"},vI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},hI=f(\"path\",{fill:\"currentColor\",d:\"M448 832v-64h128v64h192v64H256v-64h192zM128 704V128h768v576H128z\"},null,-1),_I=[hI];function mI(e,t,n,o,l,a){return b(),C(\"svg\",vI,_I)}var gI=M(pI,[[\"render\",mI],[\"__file\",\"platform.vue\"]]),bI={name:\"Plus\"},yI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},wI=f(\"path\",{fill:\"currentColor\",d:\"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z\"},null,-1),CI=[wI];function EI(e,t,n,o,l,a){return b(),C(\"svg\",yI,CI)}var Ef=M(bI,[[\"render\",EI],[\"__file\",\"plus.vue\"]]),AI={name:\"Pointer\"},FI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},xI=f(\"path\",{fill:\"currentColor\",d:\"M511.552 128c-35.584 0-64.384 28.8-64.384 64.448v516.48L274.048 570.88a94.272 94.272 0 0 0-112.896-3.456 44.416 44.416 0 0 0-8.96 62.208L332.8 870.4A64 64 0 0 0 384 896h512V575.232a64 64 0 0 0-45.632-61.312l-205.952-61.76A96 96 0 0 1 576 360.192V192.448C576 156.8 547.2 128 511.552 128zM359.04 556.8l24.128 19.2V192.448a128.448 128.448 0 1 1 256.832 0v167.744a32 32 0 0 0 22.784 30.656l206.016 61.76A128 128 0 0 1 960 575.232V896a64 64 0 0 1-64 64H384a128 128 0 0 1-102.4-51.2L101.056 668.032A108.416 108.416 0 0 1 128 512.512a158.272 158.272 0 0 1 185.984 8.32L359.04 556.8z\"},null,-1),$I=[xI];function DI(e,t,n,o,l,a){return b(),C(\"svg\",FI,$I)}var BI=M(AI,[[\"render\",DI],[\"__file\",\"pointer.vue\"]]),SI={name:\"Position\"},kI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PI=f(\"path\",{fill:\"currentColor\",d:\"m249.6 417.088 319.744 43.072 39.168 310.272L845.12 178.88 249.6 417.088zm-129.024 47.168a32 32 0 0 1-7.68-61.44l777.792-311.04a32 32 0 0 1 41.6 41.6l-310.336 775.68a32 32 0 0 1-61.44-7.808L512 516.992l-391.424-52.736z\"},null,-1),LI=[PI];function zI(e,t,n,o,l,a){return b(),C(\"svg\",kI,LI)}var TI=M(SI,[[\"render\",zI],[\"__file\",\"position.vue\"]]),MI={name:\"Postcard\"},VI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HI=f(\"path\",{fill:\"currentColor\",d:\"M160 224a32 32 0 0 0-32 32v512a32 32 0 0 0 32 32h704a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32H160zm0-64h704a96 96 0 0 1 96 96v512a96 96 0 0 1-96 96H160a96 96 0 0 1-96-96V256a96 96 0 0 1 96-96z\"},null,-1),II=f(\"path\",{fill:\"currentColor\",d:\"M704 320a64 64 0 1 1 0 128 64 64 0 0 1 0-128zM288 448h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32zm0 128h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),RI=[HI,II];function NI(e,t,n,o,l,a){return b(),C(\"svg\",VI,RI)}var OI=M(MI,[[\"render\",NI],[\"__file\",\"postcard.vue\"]]),UI={name:\"Pouring\"},WI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qI=f(\"path\",{fill:\"currentColor\",d:\"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM224 800a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32z\"},null,-1),jI=[qI];function KI(e,t,n,o,l,a){return b(),C(\"svg\",WI,jI)}var GI=M(UI,[[\"render\",KI],[\"__file\",\"pouring.vue\"]]),YI={name:\"Present\"},XI={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},JI=f(\"path\",{fill:\"currentColor\",d:\"M480 896V640H192v-64h288V320H192v576h288zm64 0h288V320H544v256h288v64H544v256zM128 256h768v672a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V256z\"},null,-1),QI=f(\"path\",{fill:\"currentColor\",d:\"M96 256h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z\"},null,-1),ZI=f(\"path\",{fill:\"currentColor\",d:\"M416 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),eR=f(\"path\",{fill:\"currentColor\",d:\"M608 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),tR=[JI,QI,ZI,eR];function nR(e,t,n,o,l,a){return b(),C(\"svg\",XI,tR)}var oR=M(YI,[[\"render\",nR],[\"__file\",\"present.vue\"]]),lR={name:\"PriceTag\"},aR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rR=f(\"path\",{fill:\"currentColor\",d:\"M224 318.336V896h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z\"},null,-1),uR=f(\"path\",{fill:\"currentColor\",d:\"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),sR=[rR,uR];function iR(e,t,n,o,l,a){return b(),C(\"svg\",aR,sR)}var cR=M(lR,[[\"render\",iR],[\"__file\",\"price-tag.vue\"]]),dR={name:\"Printer\"},fR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},pR=f(\"path\",{fill:\"currentColor\",d:\"M256 768H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 746.432 64 741.248 64 727.04V379.072c0-42.816 4.48-58.304 12.8-73.984 8.384-15.616 20.672-27.904 36.288-36.288 15.68-8.32 31.168-12.8 73.984-12.8H256V64h512v192h68.928c42.816 0 58.304 4.48 73.984 12.8 15.616 8.384 27.904 20.672 36.288 36.288 8.32 15.68 12.8 31.168 12.8 73.984v347.904c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H768v192H256V768zm64-192v320h384V576H320zm-64 128V512h512v192h128V379.072c0-29.376-1.408-36.48-5.248-43.776a23.296 23.296 0 0 0-10.048-10.048c-7.232-3.84-14.4-5.248-43.776-5.248H187.072c-29.376 0-36.48 1.408-43.776 5.248a23.296 23.296 0 0 0-10.048 10.048c-3.84 7.232-5.248 14.4-5.248 43.776V704h128zm64-448h384V128H320v128zm-64 128h64v64h-64v-64zm128 0h64v64h-64v-64z\"},null,-1),vR=[pR];function hR(e,t,n,o,l,a){return b(),C(\"svg\",fR,vR)}var _R=M(dR,[[\"render\",hR],[\"__file\",\"printer.vue\"]]),mR={name:\"Promotion\"},gR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},bR=f(\"path\",{fill:\"currentColor\",d:\"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z\"},null,-1),yR=[bR];function wR(e,t,n,o,l,a){return b(),C(\"svg\",gR,yR)}var CR=M(mR,[[\"render\",wR],[\"__file\",\"promotion.vue\"]]),ER={name:\"QuartzWatch\"},AR={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},FR=f(\"path\",{d:\"M422.02 602.01v-.03c-6.68-5.99-14.35-8.83-23.01-8.51-8.67.32-16.17 3.66-22.5 10.02-6.33 6.36-9.5 13.7-9.5 22.02s3 15.82 8.99 22.5c8.68 8.68 19.02 11.35 31.01 8s19.49-10.85 22.5-22.5c3.01-11.65.51-22.15-7.49-31.49v-.01zM384 512c0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.67 8.99-23.01zm6.53-82.49c11.65 3.01 22.15.51 31.49-7.49h.04c5.99-6.68 8.83-14.34 8.51-23.01-.32-8.67-3.66-16.16-10.02-22.5-6.36-6.33-13.7-9.5-22.02-9.5s-15.82 3-22.5 8.99c-8.68 8.69-11.35 19.02-8 31.01 3.35 11.99 10.85 19.49 22.5 22.5zm242.94 0c11.67-3.03 19.01-10.37 22.02-22.02 3.01-11.65.51-22.15-7.49-31.49h.01c-6.68-5.99-14.18-8.99-22.5-8.99s-15.66 3.16-22.02 9.5c-6.36 6.34-9.7 13.84-10.02 22.5-.32 8.66 2.52 16.33 8.51 23.01 9.32 8.02 19.82 10.52 31.49 7.49zM512 640c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01s-3-17.02-8.99-23.01c-6-5.99-13.66-8.99-23.01-8.99zm183.01-151.01c-6-5.99-13.66-8.99-23.01-8.99s-17.02 3-23.01 8.99c-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99s17.02-3 23.01-8.99c5.99-6 8.99-13.67 8.99-23.01 0-9.35-3-17.02-8.99-23.01z\",fill:\"currentColor\"},null,-1),xR=f(\"path\",{d:\"M832 512c-2-90.67-33.17-166.17-93.5-226.5-20.43-20.42-42.6-37.49-66.5-51.23V64H352v170.26c-23.9 13.74-46.07 30.81-66.5 51.24-60.33 60.33-91.49 135.83-93.5 226.5 2 90.67 33.17 166.17 93.5 226.5 20.43 20.43 42.6 37.5 66.5 51.24V960h320V789.74c23.9-13.74 46.07-30.81 66.5-51.24 60.33-60.34 91.49-135.83 93.5-226.5zM416 128h192v78.69c-29.85-9.03-61.85-13.93-96-14.69-34.15.75-66.15 5.65-96 14.68V128zm192 768H416v-78.68c29.85 9.03 61.85 13.93 96 14.68 34.15-.75 66.15-5.65 96-14.68V896zm-96-128c-72.66-2.01-132.99-27.01-180.99-75.01S258.01 584.66 256 512c2.01-72.66 27.01-132.99 75.01-180.99S439.34 258.01 512 256c72.66 2.01 132.99 27.01 180.99 75.01S765.99 439.34 768 512c-2.01 72.66-27.01 132.99-75.01 180.99S584.66 765.99 512 768z\",fill:\"currentColor\"},null,-1),$R=f(\"path\",{d:\"M512 320c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01 0 9.35 3 17.02 8.99 23.01 6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01 0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99zm112.99 273.5c-8.66-.32-16.33 2.52-23.01 8.51-7.98 9.32-10.48 19.82-7.49 31.49s10.49 19.17 22.5 22.5 22.35.66 31.01-8v.04c5.99-6.68 8.99-14.18 8.99-22.5s-3.16-15.66-9.5-22.02-13.84-9.7-22.5-10.02z\",fill:\"currentColor\"},null,-1),DR=[FR,xR,$R];function BR(e,t,n,o,l,a){return b(),C(\"svg\",AR,DR)}var SR=M(ER,[[\"render\",BR],[\"__file\",\"quartz-watch.vue\"]]),kR={name:\"QuestionFilled\"},PR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},LR=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z\"},null,-1),zR=[LR];function TR(e,t,n,o,l,a){return b(),C(\"svg\",PR,zR)}var MR=M(kR,[[\"render\",TR],[\"__file\",\"question-filled.vue\"]]),VR={name:\"Rank\"},HR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},IR=f(\"path\",{fill:\"currentColor\",d:\"m186.496 544 41.408 41.344a32 32 0 1 1-45.248 45.312l-96-96a32 32 0 0 1 0-45.312l96-96a32 32 0 1 1 45.248 45.312L186.496 480h290.816V186.432l-41.472 41.472a32 32 0 1 1-45.248-45.184l96-96.128a32 32 0 0 1 45.312 0l96 96.064a32 32 0 0 1-45.248 45.184l-41.344-41.28V480H832l-41.344-41.344a32 32 0 0 1 45.248-45.312l96 96a32 32 0 0 1 0 45.312l-96 96a32 32 0 0 1-45.248-45.312L832 544H541.312v293.44l41.344-41.28a32 32 0 1 1 45.248 45.248l-96 96a32 32 0 0 1-45.312 0l-96-96a32 32 0 1 1 45.312-45.248l41.408 41.408V544H186.496z\"},null,-1),RR=[IR];function NR(e,t,n,o,l,a){return b(),C(\"svg\",HR,RR)}var OR=M(VR,[[\"render\",NR],[\"__file\",\"rank.vue\"]]),UR={name:\"ReadingLamp\"},WR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qR=f(\"path\",{fill:\"currentColor\",d:\"M352 896h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm-44.672-768-99.52 448h608.384l-99.52-448H307.328zm-25.6-64h460.608a32 32 0 0 1 31.232 25.088l113.792 512A32 32 0 0 1 856.128 640H167.872a32 32 0 0 1-31.232-38.912l113.792-512A32 32 0 0 1 281.664 64z\"},null,-1),jR=f(\"path\",{fill:\"currentColor\",d:\"M672 576q32 0 32 32v128q0 32-32 32t-32-32V608q0-32 32-32zm-192-.064h64V960h-64z\"},null,-1),KR=[qR,jR];function GR(e,t,n,o,l,a){return b(),C(\"svg\",WR,KR)}var YR=M(UR,[[\"render\",GR],[\"__file\",\"reading-lamp.vue\"]]),XR={name:\"Reading\"},JR={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},QR=f(\"path\",{fill:\"currentColor\",d:\"m512 863.36 384-54.848v-638.72L525.568 222.72a96 96 0 0 1-27.136 0L128 169.792v638.72l384 54.848zM137.024 106.432l370.432 52.928a32 32 0 0 0 9.088 0l370.432-52.928A64 64 0 0 1 960 169.792v638.72a64 64 0 0 1-54.976 63.36l-388.48 55.488a32 32 0 0 1-9.088 0l-388.48-55.488A64 64 0 0 1 64 808.512v-638.72a64 64 0 0 1 73.024-63.36z\"},null,-1),ZR=f(\"path\",{fill:\"currentColor\",d:\"M480 192h64v704h-64z\"},null,-1),eN=[QR,ZR];function tN(e,t,n,o,l,a){return b(),C(\"svg\",JR,eN)}var nN=M(XR,[[\"render\",tN],[\"__file\",\"reading.vue\"]]),oN={name:\"RefreshLeft\"},lN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aN=f(\"path\",{fill:\"currentColor\",d:\"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z\"},null,-1),rN=[aN];function uN(e,t,n,o,l,a){return b(),C(\"svg\",lN,rN)}var sN=M(oN,[[\"render\",uN],[\"__file\",\"refresh-left.vue\"]]),iN={name:\"RefreshRight\"},cN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dN=f(\"path\",{fill:\"currentColor\",d:\"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z\"},null,-1),fN=[dN];function pN(e,t,n,o,l,a){return b(),C(\"svg\",cN,fN)}var vN=M(iN,[[\"render\",pN],[\"__file\",\"refresh-right.vue\"]]),hN={name:\"Refresh\"},_N={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mN=f(\"path\",{fill:\"currentColor\",d:\"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z\"},null,-1),gN=[mN];function bN(e,t,n,o,l,a){return b(),C(\"svg\",_N,gN)}var yN=M(hN,[[\"render\",bN],[\"__file\",\"refresh.vue\"]]),wN={name:\"Refrigerator\"},CN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EN=f(\"path\",{fill:\"currentColor\",d:\"M256 448h512V160a32 32 0 0 0-32-32H288a32 32 0 0 0-32 32v288zm0 64v352a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V512H256zm32-448h448a96 96 0 0 1 96 96v704a96 96 0 0 1-96 96H288a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96zm32 224h64v96h-64v-96zm0 288h64v96h-64v-96z\"},null,-1),AN=[EN];function FN(e,t,n,o,l,a){return b(),C(\"svg\",CN,AN)}var xN=M(wN,[[\"render\",FN],[\"__file\",\"refrigerator.vue\"]]),$N={name:\"RemoveFilled\"},DN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},BN=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zM288 512a38.4 38.4 0 0 0 38.4 38.4h371.2a38.4 38.4 0 0 0 0-76.8H326.4A38.4 38.4 0 0 0 288 512z\"},null,-1),SN=[BN];function kN(e,t,n,o,l,a){return b(),C(\"svg\",DN,SN)}var PN=M($N,[[\"render\",kN],[\"__file\",\"remove-filled.vue\"]]),LN={name:\"Remove\"},zN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},TN=f(\"path\",{fill:\"currentColor\",d:\"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),MN=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),VN=[TN,MN];function HN(e,t,n,o,l,a){return b(),C(\"svg\",zN,VN)}var IN=M(LN,[[\"render\",HN],[\"__file\",\"remove.vue\"]]),RN={name:\"Right\"},NN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ON=f(\"path\",{fill:\"currentColor\",d:\"M754.752 480H160a32 32 0 1 0 0 64h594.752L521.344 777.344a32 32 0 0 0 45.312 45.312l288-288a32 32 0 0 0 0-45.312l-288-288a32 32 0 1 0-45.312 45.312L754.752 480z\"},null,-1),UN=[ON];function WN(e,t,n,o,l,a){return b(),C(\"svg\",NN,UN)}var qN=M(RN,[[\"render\",WN],[\"__file\",\"right.vue\"]]),jN={name:\"ScaleToOriginal\"},KN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GN=f(\"path\",{fill:\"currentColor\",d:\"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zM512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412zM512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512z\"},null,-1),YN=[GN];function XN(e,t,n,o,l,a){return b(),C(\"svg\",KN,YN)}var JN=M(jN,[[\"render\",XN],[\"__file\",\"scale-to-original.vue\"]]),QN={name:\"School\"},ZN={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eO=f(\"path\",{fill:\"currentColor\",d:\"M224 128v704h576V128H224zm-32-64h640a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z\"},null,-1),tO=f(\"path\",{fill:\"currentColor\",d:\"M64 832h896v64H64zm256-640h128v96H320z\"},null,-1),nO=f(\"path\",{fill:\"currentColor\",d:\"M384 832h256v-64a128 128 0 1 0-256 0v64zm128-256a192 192 0 0 1 192 192v128H320V768a192 192 0 0 1 192-192zM320 384h128v96H320zm256-192h128v96H576zm0 192h128v96H576z\"},null,-1),oO=[eO,tO,nO];function lO(e,t,n,o,l,a){return b(),C(\"svg\",ZN,oO)}var aO=M(QN,[[\"render\",lO],[\"__file\",\"school.vue\"]]),rO={name:\"Scissor\"},uO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sO=f(\"path\",{fill:\"currentColor\",d:\"m512.064 578.368-106.88 152.768a160 160 0 1 1-23.36-78.208L472.96 522.56 196.864 128.256a32 32 0 1 1 52.48-36.736l393.024 561.344a160 160 0 1 1-23.36 78.208l-106.88-152.704zm54.4-189.248 208.384-297.6a32 32 0 0 1 52.48 36.736l-221.76 316.672-39.04-55.808zm-376.32 425.856a96 96 0 1 0 110.144-157.248 96 96 0 0 0-110.08 157.248zm643.84 0a96 96 0 1 0-110.08-157.248 96 96 0 0 0 110.08 157.248z\"},null,-1),iO=[sO];function cO(e,t,n,o,l,a){return b(),C(\"svg\",uO,iO)}var dO=M(rO,[[\"render\",cO],[\"__file\",\"scissor.vue\"]]),fO={name:\"Search\"},pO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vO=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704z\"},null,-1),hO=[vO];function _O(e,t,n,o,l,a){return b(),C(\"svg\",pO,hO)}var mO=M(fO,[[\"render\",_O],[\"__file\",\"search.vue\"]]),gO={name:\"Select\"},bO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yO=f(\"path\",{fill:\"currentColor\",d:\"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z\"},null,-1),wO=[yO];function CO(e,t,n,o,l,a){return b(),C(\"svg\",bO,wO)}var EO=M(gO,[[\"render\",CO],[\"__file\",\"select.vue\"]]),AO={name:\"Sell\"},FO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},xO=f(\"path\",{fill:\"currentColor\",d:\"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 483.84L768 698.496V928a32 32 0 1 1-64 0V698.496l-73.344 73.344a32 32 0 1 1-45.248-45.248l128-128a32 32 0 0 1 45.248 0l128 128a32 32 0 1 1-45.248 45.248z\"},null,-1),$O=[xO];function DO(e,t,n,o,l,a){return b(),C(\"svg\",FO,$O)}var BO=M(AO,[[\"render\",DO],[\"__file\",\"sell.vue\"]]),SO={name:\"SemiSelect\"},kO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PO=f(\"path\",{fill:\"currentColor\",d:\"M128 448h768q64 0 64 64t-64 64H128q-64 0-64-64t64-64z\"},null,-1),LO=[PO];function zO(e,t,n,o,l,a){return b(),C(\"svg\",kO,LO)}var TO=M(SO,[[\"render\",zO],[\"__file\",\"semi-select.vue\"]]),MO={name:\"Service\"},VO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HO=f(\"path\",{fill:\"currentColor\",d:\"M864 409.6a192 192 0 0 1-37.888 349.44A256.064 256.064 0 0 1 576 960h-96a32 32 0 1 1 0-64h96a192.064 192.064 0 0 0 181.12-128H736a32 32 0 0 1-32-32V416a32 32 0 0 1 32-32h32c10.368 0 20.544.832 30.528 2.432a288 288 0 0 0-573.056 0A193.235 193.235 0 0 1 256 384h32a32 32 0 0 1 32 32v320a32 32 0 0 1-32 32h-32a192 192 0 0 1-96-358.4 352 352 0 0 1 704 0zM256 448a128 128 0 1 0 0 256V448zm640 128a128 128 0 0 0-128-128v256a128 128 0 0 0 128-128z\"},null,-1),IO=[HO];function RO(e,t,n,o,l,a){return b(),C(\"svg\",VO,IO)}var NO=M(MO,[[\"render\",RO],[\"__file\",\"service.vue\"]]),OO={name:\"SetUp\"},UO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WO=f(\"path\",{fill:\"currentColor\",d:\"M224 160a64 64 0 0 0-64 64v576a64 64 0 0 0 64 64h576a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64H224zm0-64h576a128 128 0 0 1 128 128v576a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V224A128 128 0 0 1 224 96z\"},null,-1),qO=f(\"path\",{fill:\"currentColor\",d:\"M384 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),jO=f(\"path\",{fill:\"currentColor\",d:\"M480 320h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm160 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z\"},null,-1),KO=f(\"path\",{fill:\"currentColor\",d:\"M288 640h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),GO=[WO,qO,jO,KO];function YO(e,t,n,o,l,a){return b(),C(\"svg\",UO,GO)}var XO=M(OO,[[\"render\",YO],[\"__file\",\"set-up.vue\"]]),JO={name:\"Setting\"},QO={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},ZO=f(\"path\",{fill:\"currentColor\",d:\"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z\"},null,-1),eU=[ZO];function tU(e,t,n,o,l,a){return b(),C(\"svg\",QO,eU)}var nU=M(JO,[[\"render\",tU],[\"__file\",\"setting.vue\"]]),oU={name:\"Share\"},lU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aU=f(\"path\",{fill:\"currentColor\",d:\"m679.872 348.8-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z\"},null,-1),rU=[aU];function uU(e,t,n,o,l,a){return b(),C(\"svg\",lU,rU)}var sU=M(oU,[[\"render\",uU],[\"__file\",\"share.vue\"]]),iU={name:\"Ship\"},cU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dU=f(\"path\",{fill:\"currentColor\",d:\"M512 386.88V448h405.568a32 32 0 0 1 30.72 40.768l-76.48 267.968A192 192 0 0 1 687.168 896H336.832a192 192 0 0 1-184.64-139.264L75.648 488.768A32 32 0 0 1 106.368 448H448V117.888a32 32 0 0 1 47.36-28.096l13.888 7.616L512 96v2.88l231.68 126.4a32 32 0 0 1-2.048 57.216L512 386.88zm0-70.272 144.768-65.792L512 171.84v144.768zM512 512H148.864l18.24 64H856.96l18.24-64H512zM185.408 640l28.352 99.2A128 128 0 0 0 336.832 832h350.336a128 128 0 0 0 123.072-92.8l28.352-99.2H185.408z\"},null,-1),fU=[dU];function pU(e,t,n,o,l,a){return b(),C(\"svg\",cU,fU)}var vU=M(iU,[[\"render\",pU],[\"__file\",\"ship.vue\"]]),hU={name:\"Shop\"},_U={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mU=f(\"path\",{fill:\"currentColor\",d:\"M704 704h64v192H256V704h64v64h384v-64zm188.544-152.192C894.528 559.616 896 567.616 896 576a96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0c0-8.384 1.408-16.384 3.392-24.192L192 128h640l60.544 423.808z\"},null,-1),gU=[mU];function bU(e,t,n,o,l,a){return b(),C(\"svg\",_U,gU)}var yU=M(hU,[[\"render\",bU],[\"__file\",\"shop.vue\"]]),wU={name:\"ShoppingBag\"},CU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},EU=f(\"path\",{fill:\"currentColor\",d:\"M704 320v96a32 32 0 0 1-32 32h-32V320H384v128h-32a32 32 0 0 1-32-32v-96H192v576h640V320H704zm-384-64a192 192 0 1 1 384 0h160a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32h160zm64 0h256a128 128 0 1 0-256 0z\"},null,-1),AU=f(\"path\",{fill:\"currentColor\",d:\"M192 704h640v64H192z\"},null,-1),FU=[EU,AU];function xU(e,t,n,o,l,a){return b(),C(\"svg\",CU,FU)}var $U=M(wU,[[\"render\",xU],[\"__file\",\"shopping-bag.vue\"]]),DU={name:\"ShoppingCartFull\"},BU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SU=f(\"path\",{fill:\"currentColor\",d:\"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z\"},null,-1),kU=f(\"path\",{fill:\"currentColor\",d:\"M699.648 256 608 145.984 516.352 256h183.296zm-140.8-151.04a64 64 0 0 1 98.304 0L836.352 320H379.648l179.2-215.04z\"},null,-1),PU=[SU,kU];function LU(e,t,n,o,l,a){return b(),C(\"svg\",BU,PU)}var zU=M(DU,[[\"render\",LU],[\"__file\",\"shopping-cart-full.vue\"]]),TU={name:\"ShoppingCart\"},MU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},VU=f(\"path\",{fill:\"currentColor\",d:\"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z\"},null,-1),HU=[VU];function IU(e,t,n,o,l,a){return b(),C(\"svg\",MU,HU)}var RU=M(TU,[[\"render\",IU],[\"__file\",\"shopping-cart.vue\"]]),NU={name:\"ShoppingTrolley\"},OU={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},UU=f(\"path\",{d:\"M368 833c-13.3 0-24.5 4.5-33.5 13.5S321 866.7 321 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S415 893.3 415 880s-4.5-24.5-13.5-33.5S381.3 833 368 833zm439-193c7.4 0 13.8-2.2 19.5-6.5S836 623.3 838 616l112-448c2-10-.2-19.2-6.5-27.5S929 128 919 128H96c-9.3 0-17 3-23 9s-9 13.7-9 23 3 17 9 23 13.7 9 23 9h96v576h672c9.3 0 17-3 23-9s9-13.7 9-23-3-17-9-23-13.7-9-23-9H256v-64h551zM256 192h622l-96 384H256V192zm432 641c-13.3 0-24.5 4.5-33.5 13.5S641 866.7 641 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S735 893.3 735 880s-4.5-24.5-13.5-33.5S701.3 833 688 833z\",fill:\"currentColor\"},null,-1),WU=[UU];function qU(e,t,n,o,l,a){return b(),C(\"svg\",OU,WU)}var jU=M(NU,[[\"render\",qU],[\"__file\",\"shopping-trolley.vue\"]]),KU={name:\"Smoking\"},GU={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},YU=f(\"path\",{fill:\"currentColor\",d:\"M256 576v128h640V576H256zm-32-64h704a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32z\"},null,-1),XU=f(\"path\",{fill:\"currentColor\",d:\"M704 576h64v128h-64zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z\"},null,-1),JU=[YU,XU];function QU(e,t,n,o,l,a){return b(),C(\"svg\",GU,JU)}var ZU=M(KU,[[\"render\",QU],[\"__file\",\"smoking.vue\"]]),eW={name:\"Soccer\"},tW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nW=f(\"path\",{fill:\"currentColor\",d:\"M418.496 871.04 152.256 604.8c-16.512 94.016-2.368 178.624 42.944 224 44.928 44.928 129.344 58.752 223.296 42.24zm72.32-18.176a573.056 573.056 0 0 0 224.832-137.216 573.12 573.12 0 0 0 137.216-224.832L533.888 171.84a578.56 578.56 0 0 0-227.52 138.496A567.68 567.68 0 0 0 170.432 532.48l320.384 320.384zM871.04 418.496c16.512-93.952 2.688-178.368-42.24-223.296-44.544-44.544-128.704-58.048-222.592-41.536L871.04 418.496zM149.952 874.048c-112.96-112.96-88.832-408.96 111.168-608.96C461.056 65.152 760.96 36.928 874.048 149.952c113.024 113.024 86.784 411.008-113.152 610.944-199.936 199.936-497.92 226.112-610.944 113.152zm452.544-497.792 22.656-22.656a32 32 0 0 1 45.248 45.248l-22.656 22.656 45.248 45.248A32 32 0 1 1 647.744 512l-45.248-45.248L557.248 512l45.248 45.248a32 32 0 1 1-45.248 45.248L512 557.248l-45.248 45.248L512 647.744a32 32 0 1 1-45.248 45.248l-45.248-45.248-22.656 22.656a32 32 0 1 1-45.248-45.248l22.656-22.656-45.248-45.248A32 32 0 1 1 376.256 512l45.248 45.248L466.752 512l-45.248-45.248a32 32 0 1 1 45.248-45.248L512 466.752l45.248-45.248L512 376.256a32 32 0 0 1 45.248-45.248l45.248 45.248z\"},null,-1),oW=[nW];function lW(e,t,n,o,l,a){return b(),C(\"svg\",tW,oW)}var aW=M(eW,[[\"render\",lW],[\"__file\",\"soccer.vue\"]]),rW={name:\"SoldOut\"},uW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sW=f(\"path\",{fill:\"currentColor\",d:\"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 476.16a32 32 0 1 1 45.248 45.184l-128 128a32 32 0 0 1-45.248 0l-128-128a32 32 0 1 1 45.248-45.248L704 837.504V608a32 32 0 1 1 64 0v229.504l73.408-73.408z\"},null,-1),iW=[sW];function cW(e,t,n,o,l,a){return b(),C(\"svg\",uW,iW)}var dW=M(rW,[[\"render\",cW],[\"__file\",\"sold-out.vue\"]]),fW={name:\"SortDown\"},pW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},vW=f(\"path\",{fill:\"currentColor\",d:\"M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0z\"},null,-1),hW=[vW];function _W(e,t,n,o,l,a){return b(),C(\"svg\",pW,hW)}var mW=M(fW,[[\"render\",_W],[\"__file\",\"sort-down.vue\"]]),gW={name:\"SortUp\"},bW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yW=f(\"path\",{fill:\"currentColor\",d:\"M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248z\"},null,-1),wW=[yW];function CW(e,t,n,o,l,a){return b(),C(\"svg\",bW,wW)}var EW=M(gW,[[\"render\",CW],[\"__file\",\"sort-up.vue\"]]),AW={name:\"Sort\"},FW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},xW=f(\"path\",{fill:\"currentColor\",d:\"M384 96a32 32 0 0 1 64 0v786.752a32 32 0 0 1-54.592 22.656L95.936 608a32 32 0 0 1 0-45.312h.128a32 32 0 0 1 45.184 0L384 805.632V96zm192 45.248a32 32 0 0 1 54.592-22.592L928.064 416a32 32 0 0 1 0 45.312h-.128a32 32 0 0 1-45.184 0L640 218.496V928a32 32 0 1 1-64 0V141.248z\"},null,-1),$W=[xW];function DW(e,t,n,o,l,a){return b(),C(\"svg\",FW,$W)}var BW=M(AW,[[\"render\",DW],[\"__file\",\"sort.vue\"]]),SW={name:\"Stamp\"},kW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},PW=f(\"path\",{fill:\"currentColor\",d:\"M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0zM128 896v-64h768v64H128z\"},null,-1),LW=[PW];function zW(e,t,n,o,l,a){return b(),C(\"svg\",kW,LW)}var TW=M(SW,[[\"render\",zW],[\"__file\",\"stamp.vue\"]]),MW={name:\"StarFilled\"},VW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},HW=f(\"path\",{fill:\"currentColor\",d:\"M283.84 867.84 512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z\"},null,-1),IW=[HW];function RW(e,t,n,o,l,a){return b(),C(\"svg\",VW,IW)}var NW=M(MW,[[\"render\",RW],[\"__file\",\"star-filled.vue\"]]),OW={name:\"Star\"},UW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WW=f(\"path\",{fill:\"currentColor\",d:\"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z\"},null,-1),qW=[WW];function jW(e,t,n,o,l,a){return b(),C(\"svg\",UW,qW)}var KW=M(OW,[[\"render\",jW],[\"__file\",\"star.vue\"]]),GW={name:\"Stopwatch\"},YW={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XW=f(\"path\",{fill:\"currentColor\",d:\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"},null,-1),JW=f(\"path\",{fill:\"currentColor\",d:\"M672 234.88c-39.168 174.464-80 298.624-122.688 372.48-64 110.848-202.624 30.848-138.624-80C453.376 453.44 540.48 355.968 672 234.816z\"},null,-1),QW=[XW,JW];function ZW(e,t,n,o,l,a){return b(),C(\"svg\",YW,QW)}var eq=M(GW,[[\"render\",ZW],[\"__file\",\"stopwatch.vue\"]]),tq={name:\"SuccessFilled\"},nq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oq=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z\"},null,-1),lq=[oq];function aq(e,t,n,o,l,a){return b(),C(\"svg\",nq,lq)}var n2=M(tq,[[\"render\",aq],[\"__file\",\"success-filled.vue\"]]),rq={name:\"Sugar\"},uq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},sq=f(\"path\",{fill:\"currentColor\",d:\"m801.728 349.184 4.48 4.48a128 128 0 0 1 0 180.992L534.656 806.144a128 128 0 0 1-181.056 0l-4.48-4.48-19.392 109.696a64 64 0 0 1-108.288 34.176L78.464 802.56a64 64 0 0 1 34.176-108.288l109.76-19.328-4.544-4.544a128 128 0 0 1 0-181.056l271.488-271.488a128 128 0 0 1 181.056 0l4.48 4.48 19.392-109.504a64 64 0 0 1 108.352-34.048l142.592 143.04a64 64 0 0 1-34.24 108.16l-109.248 19.2zm-548.8 198.72h447.168v2.24l60.8-60.8a63.808 63.808 0 0 0 18.752-44.416h-426.88l-89.664 89.728a64.064 64.064 0 0 0-10.24 13.248zm0 64c2.752 4.736 6.144 9.152 10.176 13.248l135.744 135.744a64 64 0 0 0 90.496 0L638.4 611.904H252.928zm490.048-230.976L625.152 263.104a64 64 0 0 0-90.496 0L416.768 380.928h326.208zM123.712 757.312l142.976 142.976 24.32-137.6a25.6 25.6 0 0 0-29.696-29.632l-137.6 24.256zm633.6-633.344-24.32 137.472a25.6 25.6 0 0 0 29.632 29.632l137.28-24.064-142.656-143.04z\"},null,-1),iq=[sq];function cq(e,t,n,o,l,a){return b(),C(\"svg\",uq,iq)}var dq=M(rq,[[\"render\",cq],[\"__file\",\"sugar.vue\"]]),fq={name:\"SuitcaseLine\"},pq={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},vq=f(\"path\",{d:\"M922.5 229.5c-24.32-24.34-54.49-36.84-90.5-37.5H704v-64c-.68-17.98-7.02-32.98-19.01-44.99S658.01 64.66 640 64H384c-17.98.68-32.98 7.02-44.99 19.01S320.66 110 320 128v64H192c-35.99.68-66.16 13.18-90.5 37.5C77.16 253.82 64.66 283.99 64 320v448c.68 35.99 13.18 66.16 37.5 90.5s54.49 36.84 90.5 37.5h640c35.99-.68 66.16-13.18 90.5-37.5s36.84-54.49 37.5-90.5V320c-.68-35.99-13.18-66.16-37.5-90.5zM384 128h256v64H384v-64zM256 832h-64c-17.98-.68-32.98-7.02-44.99-19.01S128.66 786.01 128 768V448h128v384zm448 0H320V448h384v384zm192-64c-.68 17.98-7.02 32.98-19.01 44.99S850.01 831.34 832 832h-64V448h128v320zm0-384H128v-64c.69-17.98 7.02-32.98 19.01-44.99S173.99 256.66 192 256h640c17.98.69 32.98 7.02 44.99 19.01S895.34 301.99 896 320v64z\",fill:\"currentColor\"},null,-1),hq=[vq];function _q(e,t,n,o,l,a){return b(),C(\"svg\",pq,hq)}var mq=M(fq,[[\"render\",_q],[\"__file\",\"suitcase-line.vue\"]]),gq={name:\"Suitcase\"},bq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},yq=f(\"path\",{fill:\"currentColor\",d:\"M128 384h768v-64a64 64 0 0 0-64-64H192a64 64 0 0 0-64 64v64zm0 64v320a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V448H128zm64-256h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z\"},null,-1),wq=f(\"path\",{fill:\"currentColor\",d:\"M384 128v64h256v-64H384zm0-64h256a64 64 0 0 1 64 64v64a64 64 0 0 1-64 64H384a64 64 0 0 1-64-64v-64a64 64 0 0 1 64-64z\"},null,-1),Cq=[yq,wq];function Eq(e,t,n,o,l,a){return b(),C(\"svg\",bq,Cq)}var Aq=M(gq,[[\"render\",Eq],[\"__file\",\"suitcase.vue\"]]),Fq={name:\"Sunny\"},xq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},$q=f(\"path\",{fill:\"currentColor\",d:\"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32zM195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248zM64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32zm768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32zM195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0zm543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0z\"},null,-1),Dq=[$q];function Bq(e,t,n,o,l,a){return b(),C(\"svg\",xq,Dq)}var Sq=M(Fq,[[\"render\",Bq],[\"__file\",\"sunny.vue\"]]),kq={name:\"Sunrise\"},Pq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Lq=f(\"path\",{fill:\"currentColor\",d:\"M32 768h960a32 32 0 1 1 0 64H32a32 32 0 1 1 0-64zm129.408-96a352 352 0 0 1 701.184 0h-64.32a288 288 0 0 0-572.544 0h-64.32zM512 128a32 32 0 0 1 32 32v96a32 32 0 0 1-64 0v-96a32 32 0 0 1 32-32zm407.296 168.704a32 32 0 0 1 0 45.248l-67.84 67.84a32 32 0 1 1-45.248-45.248l67.84-67.84a32 32 0 0 1 45.248 0zm-814.592 0a32 32 0 0 1 45.248 0l67.84 67.84a32 32 0 1 1-45.248 45.248l-67.84-67.84a32 32 0 0 1 0-45.248z\"},null,-1),zq=[Lq];function Tq(e,t,n,o,l,a){return b(),C(\"svg\",Pq,zq)}var Mq=M(kq,[[\"render\",Tq],[\"__file\",\"sunrise.vue\"]]),Vq={name:\"Sunset\"},Hq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Iq=f(\"path\",{fill:\"currentColor\",d:\"M82.56 640a448 448 0 1 1 858.88 0h-67.2a384 384 0 1 0-724.288 0H82.56zM32 704h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm256 128h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z\"},null,-1),Rq=[Iq];function Nq(e,t,n,o,l,a){return b(),C(\"svg\",Hq,Rq)}var Oq=M(Vq,[[\"render\",Nq],[\"__file\",\"sunset.vue\"]]),Uq={name:\"SwitchButton\"},Wq={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},qq=f(\"path\",{fill:\"currentColor\",d:\"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128z\"},null,-1),jq=f(\"path\",{fill:\"currentColor\",d:\"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32z\"},null,-1),Kq=[qq,jq];function Gq(e,t,n,o,l,a){return b(),C(\"svg\",Wq,Kq)}var Yq=M(Uq,[[\"render\",Gq],[\"__file\",\"switch-button.vue\"]]),Xq={name:\"SwitchFilled\"},Jq={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},Qq=f(\"path\",{d:\"M247.47 358.4v.04c.07 19.17 7.72 37.53 21.27 51.09s31.92 21.2 51.09 21.27c39.86 0 72.41-32.6 72.41-72.4s-32.6-72.36-72.41-72.36-72.36 32.55-72.36 72.36z\",fill:\"currentColor\"},null,-1),Zq=f(\"path\",{d:\"M492.38 128H324.7c-52.16 0-102.19 20.73-139.08 57.61a196.655 196.655 0 0 0-57.61 139.08V698.7c-.01 25.84 5.08 51.42 14.96 75.29s24.36 45.56 42.63 63.83 39.95 32.76 63.82 42.65a196.67 196.67 0 0 0 75.28 14.98h167.68c3.03 0 5.46-2.43 5.46-5.42V133.42c.6-2.99-1.83-5.42-5.46-5.42zm-56.11 705.88H324.7c-17.76.13-35.36-3.33-51.75-10.18s-31.22-16.94-43.61-29.67c-25.3-25.35-39.81-59.1-39.81-95.32V324.69c-.13-17.75 3.33-35.35 10.17-51.74a131.695 131.695 0 0 1 29.64-43.62c25.39-25.3 59.14-39.81 95.36-39.81h111.57v644.36zm402.12-647.67a196.655 196.655 0 0 0-139.08-57.61H580.48c-3.03 0-4.82 2.43-4.82 4.82v757.16c-.6 2.99 1.79 5.42 5.42 5.42h118.23a196.69 196.69 0 0 0 139.08-57.61A196.655 196.655 0 0 0 896 699.31V325.29a196.69 196.69 0 0 0-57.61-139.08zm-111.3 441.92c-42.83 0-77.82-34.99-77.82-77.82s34.98-77.82 77.82-77.82c42.83 0 77.82 34.99 77.82 77.82s-34.99 77.82-77.82 77.82z\",fill:\"currentColor\"},null,-1),ej=[Qq,Zq];function tj(e,t,n,o,l,a){return b(),C(\"svg\",Jq,ej)}var nj=M(Xq,[[\"render\",tj],[\"__file\",\"switch-filled.vue\"]]),oj={name:\"Switch\"},lj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aj=f(\"path\",{fill:\"currentColor\",d:\"M118.656 438.656a32 32 0 0 1 0-45.248L416 96l4.48-3.776A32 32 0 0 1 461.248 96l3.712 4.48a32.064 32.064 0 0 1-3.712 40.832L218.56 384H928a32 32 0 1 1 0 64H141.248a32 32 0 0 1-22.592-9.344zM64 608a32 32 0 0 1 32-32h786.752a32 32 0 0 1 22.656 54.592L608 928l-4.48 3.776a32.064 32.064 0 0 1-40.832-49.024L805.632 640H96a32 32 0 0 1-32-32z\"},null,-1),rj=[aj];function uj(e,t,n,o,l,a){return b(),C(\"svg\",lj,rj)}var sj=M(oj,[[\"render\",uj],[\"__file\",\"switch.vue\"]]),ij={name:\"TakeawayBox\"},cj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dj=f(\"path\",{fill:\"currentColor\",d:\"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z\"},null,-1),fj=[dj];function pj(e,t,n,o,l,a){return b(),C(\"svg\",cj,fj)}var vj=M(ij,[[\"render\",pj],[\"__file\",\"takeaway-box.vue\"]]),hj={name:\"Ticket\"},_j={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},mj=f(\"path\",{fill:\"currentColor\",d:\"M640 832H64V640a128 128 0 1 0 0-256V192h576v160h64V192h256v192a128 128 0 1 0 0 256v192H704V672h-64v160zm0-416v192h64V416h-64z\"},null,-1),gj=[mj];function bj(e,t,n,o,l,a){return b(),C(\"svg\",_j,gj)}var yj=M(hj,[[\"render\",bj],[\"__file\",\"ticket.vue\"]]),wj={name:\"Tickets\"},Cj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Ej=f(\"path\",{fill:\"currentColor\",d:\"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z\"},null,-1),Aj=[Ej];function Fj(e,t,n,o,l,a){return b(),C(\"svg\",Cj,Aj)}var xj=M(wj,[[\"render\",Fj],[\"__file\",\"tickets.vue\"]]),$j={name:\"Timer\"},Dj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Bj=f(\"path\",{fill:\"currentColor\",d:\"M512 896a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z\"},null,-1),Sj=f(\"path\",{fill:\"currentColor\",d:\"M512 320a32 32 0 0 1 32 32l-.512 224a32 32 0 1 1-64 0L480 352a32 32 0 0 1 32-32z\"},null,-1),kj=f(\"path\",{fill:\"currentColor\",d:\"M448 576a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96-448v128h-64V128h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96z\"},null,-1),Pj=[Bj,Sj,kj];function Lj(e,t,n,o,l,a){return b(),C(\"svg\",Dj,Pj)}var zj=M($j,[[\"render\",Lj],[\"__file\",\"timer.vue\"]]),Tj={name:\"ToiletPaper\"},Mj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Vj=f(\"path\",{fill:\"currentColor\",d:\"M595.2 128H320a192 192 0 0 0-192 192v576h384V352c0-90.496 32.448-171.2 83.2-224zM736 64c123.712 0 224 128.96 224 288S859.712 640 736 640H576v320H64V320A256 256 0 0 1 320 64h416zM576 352v224h160c84.352 0 160-97.28 160-224s-75.648-224-160-224-160 97.28-160 224z\"},null,-1),Hj=f(\"path\",{fill:\"currentColor\",d:\"M736 448c-35.328 0-64-43.008-64-96s28.672-96 64-96 64 43.008 64 96-28.672 96-64 96z\"},null,-1),Ij=[Vj,Hj];function Rj(e,t,n,o,l,a){return b(),C(\"svg\",Mj,Ij)}var Nj=M(Tj,[[\"render\",Rj],[\"__file\",\"toilet-paper.vue\"]]),Oj={name:\"Tools\"},Uj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Wj=f(\"path\",{fill:\"currentColor\",d:\"M764.416 254.72a351.68 351.68 0 0 1 86.336 149.184H960v192.064H850.752a351.68 351.68 0 0 1-86.336 149.312l54.72 94.72-166.272 96-54.592-94.72a352.64 352.64 0 0 1-172.48 0L371.136 936l-166.272-96 54.72-94.72a351.68 351.68 0 0 1-86.336-149.312H64v-192h109.248a351.68 351.68 0 0 1 86.336-149.312L204.8 160l166.208-96h.192l54.656 94.592a352.64 352.64 0 0 1 172.48 0L652.8 64h.128L819.2 160l-54.72 94.72zM704 499.968a192 192 0 1 0-384 0 192 192 0 0 0 384 0z\"},null,-1),qj=[Wj];function jj(e,t,n,o,l,a){return b(),C(\"svg\",Uj,qj)}var Kj=M(Oj,[[\"render\",jj],[\"__file\",\"tools.vue\"]]),Gj={name:\"TopLeft\"},Yj={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},Xj=f(\"path\",{fill:\"currentColor\",d:\"M256 256h416a32 32 0 1 0 0-64H224a32 32 0 0 0-32 32v448a32 32 0 0 0 64 0V256z\"},null,-1),Jj=f(\"path\",{fill:\"currentColor\",d:\"M246.656 201.344a32 32 0 0 0-45.312 45.312l544 544a32 32 0 0 0 45.312-45.312l-544-544z\"},null,-1),Qj=[Xj,Jj];function Zj(e,t,n,o,l,a){return b(),C(\"svg\",Yj,Qj)}var eK=M(Gj,[[\"render\",Zj],[\"__file\",\"top-left.vue\"]]),tK={name:\"TopRight\"},nK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},oK=f(\"path\",{fill:\"currentColor\",d:\"M768 256H353.6a32 32 0 1 1 0-64H800a32 32 0 0 1 32 32v448a32 32 0 0 1-64 0V256z\"},null,-1),lK=f(\"path\",{fill:\"currentColor\",d:\"M777.344 201.344a32 32 0 0 1 45.312 45.312l-544 544a32 32 0 0 1-45.312-45.312l544-544z\"},null,-1),aK=[oK,lK];function rK(e,t,n,o,l,a){return b(),C(\"svg\",nK,aK)}var uK=M(tK,[[\"render\",rK],[\"__file\",\"top-right.vue\"]]),sK={name:\"Top\"},iK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},cK=f(\"path\",{fill:\"currentColor\",d:\"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z\"},null,-1),dK=[cK];function fK(e,t,n,o,l,a){return b(),C(\"svg\",iK,dK)}var pK=M(sK,[[\"render\",fK],[\"__file\",\"top.vue\"]]),vK={name:\"TrendCharts\"},hK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},_K=f(\"path\",{fill:\"currentColor\",d:\"M128 896V128h768v768H128zm291.712-327.296 128 102.4 180.16-201.792-47.744-42.624-139.84 156.608-128-102.4-180.16 201.792 47.744 42.624 139.84-156.608zM816 352a48 48 0 1 0-96 0 48 48 0 0 0 96 0z\"},null,-1),mK=[_K];function gK(e,t,n,o,l,a){return b(),C(\"svg\",hK,mK)}var bK=M(vK,[[\"render\",gK],[\"__file\",\"trend-charts.vue\"]]),yK={name:\"TrophyBase\"},wK={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},CK=f(\"path\",{d:\"M918.4 201.6c-6.4-6.4-12.8-9.6-22.4-9.6H768V96c0-9.6-3.2-16-9.6-22.4C752 67.2 745.6 64 736 64H288c-9.6 0-16 3.2-22.4 9.6C259.2 80 256 86.4 256 96v96H128c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 16-9.6 22.4 3.2 108.8 25.6 185.6 64 224 34.4 34.4 77.56 55.65 127.65 61.99 10.91 20.44 24.78 39.25 41.95 56.41 40.86 40.86 91 65.47 150.4 71.9V768h-96c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h256c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6h-96V637.26c59.4-7.71 109.54-30.01 150.4-70.86 17.2-17.2 31.51-36.06 42.81-56.55 48.93-6.51 90.02-27.7 126.79-61.85 38.4-38.4 60.8-112 64-224 0-6.4-3.2-16-9.6-22.4zM256 438.4c-19.2-6.4-35.2-19.2-51.2-35.2-22.4-22.4-35.2-70.4-41.6-147.2H256v182.4zm390.4 80C608 553.6 566.4 576 512 576s-99.2-19.2-134.4-57.6C342.4 480 320 438.4 320 384V128h384v256c0 54.4-19.2 99.2-57.6 134.4zm172.8-115.2c-16 16-32 25.6-51.2 35.2V256h92.8c-6.4 76.8-19.2 124.8-41.6 147.2zM768 896H256c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h512c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6z\",fill:\"currentColor\"},null,-1),EK=[CK];function AK(e,t,n,o,l,a){return b(),C(\"svg\",wK,EK)}var FK=M(yK,[[\"render\",AK],[\"__file\",\"trophy-base.vue\"]]),xK={name:\"Trophy\"},$K={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},DK=f(\"path\",{fill:\"currentColor\",d:\"M480 896V702.08A256.256 256.256 0 0 1 264.064 512h-32.64a96 96 0 0 1-91.968-68.416L93.632 290.88a76.8 76.8 0 0 1 73.6-98.88H256V96a32 32 0 0 1 32-32h448a32 32 0 0 1 32 32v96h88.768a76.8 76.8 0 0 1 73.6 98.88L884.48 443.52A96 96 0 0 1 792.576 512h-32.64A256.256 256.256 0 0 1 544 702.08V896h128a32 32 0 1 1 0 64H352a32 32 0 1 1 0-64h128zm224-448V128H320v320a192 192 0 1 0 384 0zm64 0h24.576a32 32 0 0 0 30.656-22.784l45.824-152.768A12.8 12.8 0 0 0 856.768 256H768v192zm-512 0V256h-88.768a12.8 12.8 0 0 0-12.288 16.448l45.824 152.768A32 32 0 0 0 231.424 448H256z\"},null,-1),BK=[DK];function SK(e,t,n,o,l,a){return b(),C(\"svg\",$K,BK)}var kK=M(xK,[[\"render\",SK],[\"__file\",\"trophy.vue\"]]),PK={name:\"TurnOff\"},LK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},zK=f(\"path\",{fill:\"currentColor\",d:\"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z\"},null,-1),TK=f(\"path\",{fill:\"currentColor\",d:\"M329.956 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z\"},null,-1),MK=[zK,TK];function VK(e,t,n,o,l,a){return b(),C(\"svg\",LK,MK)}var HK=M(PK,[[\"render\",VK],[\"__file\",\"turn-off.vue\"]]),IK={name:\"Umbrella\"},RK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},NK=f(\"path\",{fill:\"currentColor\",d:\"M320 768a32 32 0 1 1 64 0 64 64 0 0 0 128 0V512H64a448 448 0 1 1 896 0H576v256a128 128 0 1 1-256 0zm570.688-320a384.128 384.128 0 0 0-757.376 0h757.376z\"},null,-1),OK=[NK];function UK(e,t,n,o,l,a){return b(),C(\"svg\",RK,OK)}var WK=M(IK,[[\"render\",UK],[\"__file\",\"umbrella.vue\"]]),qK={name:\"Unlock\"},jK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},KK=f(\"path\",{fill:\"currentColor\",d:\"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z\"},null,-1),GK=f(\"path\",{fill:\"currentColor\",d:\"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm178.304-295.296A192.064 192.064 0 0 0 320 320v64h352l96 38.4V448H256V320a256 256 0 0 1 493.76-95.104l-59.456 23.808z\"},null,-1),YK=[KK,GK];function XK(e,t,n,o,l,a){return b(),C(\"svg\",jK,YK)}var JK=M(qK,[[\"render\",XK],[\"__file\",\"unlock.vue\"]]),QK={name:\"UploadFilled\"},ZK={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eG=f(\"path\",{fill:\"currentColor\",d:\"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z\"},null,-1),tG=[eG];function nG(e,t,n,o,l,a){return b(),C(\"svg\",ZK,tG)}var oG=M(QK,[[\"render\",nG],[\"__file\",\"upload-filled.vue\"]]),lG={name:\"Upload\"},aG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},rG=f(\"path\",{fill:\"currentColor\",d:\"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248L544 253.696z\"},null,-1),uG=[rG];function sG(e,t,n,o,l,a){return b(),C(\"svg\",aG,uG)}var iG=M(lG,[[\"render\",sG],[\"__file\",\"upload.vue\"]]),cG={name:\"UserFilled\"},dG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},fG=f(\"path\",{fill:\"currentColor\",d:\"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z\"},null,-1),pG=[fG];function vG(e,t,n,o,l,a){return b(),C(\"svg\",dG,pG)}var hG=M(cG,[[\"render\",vG],[\"__file\",\"user-filled.vue\"]]),_G={name:\"User\"},mG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},gG=f(\"path\",{fill:\"currentColor\",d:\"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0z\"},null,-1),bG=[gG];function yG(e,t,n,o,l,a){return b(),C(\"svg\",mG,bG)}var wG=M(_G,[[\"render\",yG],[\"__file\",\"user.vue\"]]),CG={name:\"Van\"},EG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},AG=f(\"path\",{fill:\"currentColor\",d:\"M128.896 736H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v96h164.544a32 32 0 0 1 31.616 27.136l54.144 352A32 32 0 0 1 922.688 736h-91.52a144 144 0 1 1-286.272 0H415.104a144 144 0 1 1-286.272 0zm23.36-64a143.872 143.872 0 0 1 239.488 0H568.32c17.088-25.6 42.24-45.376 71.744-55.808V256H128v416h24.256zm655.488 0h77.632l-19.648-128H704v64.896A144 144 0 0 1 807.744 672zm48.128-192-14.72-96H704v96h151.872zM688 832a80 80 0 1 0 0-160 80 80 0 0 0 0 160zm-416 0a80 80 0 1 0 0-160 80 80 0 0 0 0 160z\"},null,-1),FG=[AG];function xG(e,t,n,o,l,a){return b(),C(\"svg\",EG,FG)}var $G=M(CG,[[\"render\",xG],[\"__file\",\"van.vue\"]]),DG={name:\"VideoCameraFilled\"},BG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SG=f(\"path\",{fill:\"currentColor\",d:\"m768 576 192-64v320l-192-64v96a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V480a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v96zM192 768v64h384v-64H192zm192-480a160 160 0 0 1 320 0 160 160 0 0 1-320 0zm64 0a96 96 0 1 0 192.064-.064A96 96 0 0 0 448 288zm-320 32a128 128 0 1 1 256.064.064A128 128 0 0 1 128 320zm64 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z\"},null,-1),kG=[SG];function PG(e,t,n,o,l,a){return b(),C(\"svg\",BG,kG)}var LG=M(DG,[[\"render\",PG],[\"__file\",\"video-camera-filled.vue\"]]),zG={name:\"VideoCamera\"},TG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MG=f(\"path\",{fill:\"currentColor\",d:\"M704 768V256H128v512h576zm64-416 192-96v512l-192-96v128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 71.552v176.896l128 64V359.552l-128 64zM192 320h192v64H192v-64z\"},null,-1),VG=[MG];function HG(e,t,n,o,l,a){return b(),C(\"svg\",TG,VG)}var IG=M(zG,[[\"render\",HG],[\"__file\",\"video-camera.vue\"]]),RG={name:\"VideoPause\"},NG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},OG=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-96-544q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32zm192 0q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32z\"},null,-1),UG=[OG];function WG(e,t,n,o,l,a){return b(),C(\"svg\",NG,UG)}var qG=M(RG,[[\"render\",WG],[\"__file\",\"video-pause.vue\"]]),jG={name:\"VideoPlay\"},KG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},GG=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-48-247.616L668.608 512 464 375.616v272.768zm10.624-342.656 249.472 166.336a48 48 0 0 1 0 79.872L474.624 718.272A48 48 0 0 1 400 678.336V345.6a48 48 0 0 1 74.624-39.936z\"},null,-1),YG=[GG];function XG(e,t,n,o,l,a){return b(),C(\"svg\",KG,YG)}var JG=M(jG,[[\"render\",XG],[\"__file\",\"video-play.vue\"]]),QG={name:\"View\"},ZG={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},eY=f(\"path\",{fill:\"currentColor\",d:\"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z\"},null,-1),tY=[eY];function nY(e,t,n,o,l,a){return b(),C(\"svg\",ZG,tY)}var Af=M(QG,[[\"render\",nY],[\"__file\",\"view.vue\"]]),oY={name:\"WalletFilled\"},lY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},aY=f(\"path\",{fill:\"currentColor\",d:\"M688 512a112 112 0 1 0 0 224h208v160H128V352h768v160H688zm32 160h-32a48 48 0 0 1 0-96h32a48 48 0 0 1 0 96zm-80-544 128 160H384l256-160z\"},null,-1),rY=[aY];function uY(e,t,n,o,l,a){return b(),C(\"svg\",lY,rY)}var sY=M(oY,[[\"render\",uY],[\"__file\",\"wallet-filled.vue\"]]),iY={name:\"Wallet\"},cY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},dY=f(\"path\",{fill:\"currentColor\",d:\"M640 288h-64V128H128v704h384v32a32 32 0 0 0 32 32H96a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32v192z\"},null,-1),fY=f(\"path\",{fill:\"currentColor\",d:\"M128 320v512h768V320H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32z\"},null,-1),pY=f(\"path\",{fill:\"currentColor\",d:\"M704 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z\"},null,-1),vY=[dY,fY,pY];function hY(e,t,n,o,l,a){return b(),C(\"svg\",cY,vY)}var _Y=M(iY,[[\"render\",hY],[\"__file\",\"wallet.vue\"]]),mY={name:\"WarnTriangleFilled\"},gY={xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 1024 1024\",style:{\"enable-background\":\"new 0 0 1024 1024\"},\"xml:space\":\"preserve\"},bY=f(\"path\",{d:\"M928.99 755.83 574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z\",fill:\"currentColor\"},null,-1),yY=[bY];function wY(e,t,n,o,l,a){return b(),C(\"svg\",gY,yY)}var CY=M(mY,[[\"render\",wY],[\"__file\",\"warn-triangle-filled.vue\"]]),EY={name:\"WarningFilled\"},AY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},FY=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z\"},null,-1),xY=[FY];function $Y(e,t,n,o,l,a){return b(),C(\"svg\",AY,xY)}var Vu=M(EY,[[\"render\",$Y],[\"__file\",\"warning-filled.vue\"]]),DY={name:\"Warning\"},BY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},SY=f(\"path\",{fill:\"currentColor\",d:\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"},null,-1),kY=[SY];function PY(e,t,n,o,l,a){return b(),C(\"svg\",BY,kY)}var LY=M(DY,[[\"render\",PY],[\"__file\",\"warning.vue\"]]),zY={name:\"Watch\"},TY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},MY=f(\"path\",{fill:\"currentColor\",d:\"M512 768a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z\"},null,-1),VY=f(\"path\",{fill:\"currentColor\",d:\"M480 352a32 32 0 0 1 32 32v160a32 32 0 0 1-64 0V384a32 32 0 0 1 32-32z\"},null,-1),HY=f(\"path\",{fill:\"currentColor\",d:\"M480 512h128q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm128-256V128H416v128h-64V64h320v192h-64zM416 768v128h192V768h64v192H352V768h64z\"},null,-1),IY=[MY,VY,HY];function RY(e,t,n,o,l,a){return b(),C(\"svg\",TY,IY)}var NY=M(zY,[[\"render\",RY],[\"__file\",\"watch.vue\"]]),OY={name:\"Watermelon\"},UY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},WY=f(\"path\",{fill:\"currentColor\",d:\"m683.072 600.32-43.648 162.816-61.824-16.512 53.248-198.528L576 493.248l-158.4 158.4-45.248-45.248 158.4-158.4-55.616-55.616-198.528 53.248-16.512-61.824 162.816-43.648L282.752 200A384 384 0 0 0 824 741.248L683.072 600.32zm231.552 141.056a448 448 0 1 1-632-632l632 632z\"},null,-1),qY=[WY];function jY(e,t,n,o,l,a){return b(),C(\"svg\",UY,qY)}var KY=M(OY,[[\"render\",jY],[\"__file\",\"watermelon.vue\"]]),GY={name:\"WindPower\"},YY={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},XY=f(\"path\",{fill:\"currentColor\",d:\"M160 64q32 0 32 32v832q0 32-32 32t-32-32V96q0-32 32-32zm416 354.624 128-11.584V168.96l-128-11.52v261.12zm-64 5.824V151.552L320 134.08V160h-64V64l616.704 56.064A96 96 0 0 1 960 215.68v144.64a96 96 0 0 1-87.296 95.616L256 512V224h64v217.92l192-17.472zm256-23.232 98.88-8.96A32 32 0 0 0 896 360.32V215.68a32 32 0 0 0-29.12-31.872l-98.88-8.96v226.368z\"},null,-1),JY=[XY];function QY(e,t,n,o,l,a){return b(),C(\"svg\",YY,JY)}var ZY=M(GY,[[\"render\",QY],[\"__file\",\"wind-power.vue\"]]),eX={name:\"ZoomIn\"},tX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},nX=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zm-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96z\"},null,-1),oX=[nX];function lX(e,t,n,o,l,a){return b(),C(\"svg\",tX,oX)}var Ff=M(eX,[[\"render\",lX],[\"__file\",\"zoom-in.vue\"]]),aX={name:\"ZoomOut\"},rX={viewBox:\"0 0 1024 1024\",xmlns:\"http://www.w3.org/2000/svg\"},uX=f(\"path\",{fill:\"currentColor\",d:\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zM352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64z\"},null,-1),sX=[uX];function iX(e,t,n,o,l,a){return b(),C(\"svg\",rX,sX)}var cX=M(aX,[[\"render\",iX],[\"__file\",\"zoom-out.vue\"]]),i0=Object.freeze(Object.defineProperty({__proto__:null,AddLocation:sg,Aim:hg,AlarmClock:Cg,Apple:Dg,ArrowDown:sr,ArrowDownBold:zg,ArrowLeft:hf,ArrowLeftBold:qg,ArrowRight:pa,ArrowRightBold:n9,ArrowUp:Qi,ArrowUpBold:p9,Avatar:A9,Back:k9,Baseball:H9,Basketball:W9,Bell:l7,BellFilled:X9,Bicycle:c7,Bottom:S7,BottomLeft:m7,BottomRight:A7,Bowl:M7,Box:W7,Briefcase:X7,Brush:sb,BrushFilled:nb,Burger:vb,Calendar:yb,Camera:Pb,CameraFilled:xb,CaretBottom:Hb,CaretLeft:Wb,CaretRight:Xb,CaretTop:ny,Cellphone:sy,ChatDotRound:hy,ChatDotSquare:Cy,ChatLineRound:By,ChatLineSquare:My,ChatRound:Oy,ChatSquare:Gy,Check:Zi,Checked:aw,Cherry:dw,Chicken:mw,ChromeFilled:Fw,CircleCheck:Mu,CircleCheckFilled:kw,CircleClose:ir,CircleCloseFilled:e2,CirclePlus:sC,CirclePlusFilled:eC,Clock:_C,Close:Cl,CloseBold:CC,Cloudy:LC,Coffee:qC,CoffeeCup:IC,Coin:ZC,ColdDrink:aE,Collection:gE,CollectionTag:dE,Comment:AE,Compass:kE,Connection:HE,Coordinate:qE,CopyDocument:QE,Cpu:aA,CreditCard:fA,Crop:bA,DArrowLeft:_f,DArrowRight:mf,DCaret:TA,DataAnalysis:NA,DataBoard:YA,DataLine:tF,Delete:gf,DeleteFilled:uF,DeleteLocation:hF,Dessert:xF,Discount:LF,Dish:qF,DishDot:IF,Document:bf,DocumentAdd:JF,DocumentChecked:ox,DocumentCopy:ix,DocumentDelete:hx,DocumentRemove:wx,Download:Px,Drizzling:Hx,Edit:Jx,EditPen:Wx,Eleme:i$,ElemeFilled:o$,ElementPlus:h$,Expand:w$,Failed:$$,Female:T$,Files:N$,Film:G$,Filter:eD,Finished:rD,FirstAidKit:pD,Flag:bD,Fold:FD,Folder:uB,FolderAdd:kD,FolderChecked:VD,FolderDelete:UD,FolderOpened:YD,FolderRemove:tB,Food:pB,Football:yB,ForkSpoon:xB,Fries:PB,FullScreen:HB,Goblet:sS,GobletFull:WB,GobletSquare:nS,GobletSquareFull:XB,GoldMedal:hS,Goods:$S,GoodsFilled:wS,Grape:LS,Grid:IS,Guide:jS,Handbag:QS,Headset:lk,Help:_k,HelpFilled:ck,Hide:yf,Histogram:Dk,HomeFilled:zk,HotWater:Rk,House:jk,IceCream:cP,IceCreamRound:Qk,IceCreamSquare:lP,IceDrink:_P,IceTea:CP,InfoFilled:t2,Iphone:LP,Key:IP,KnifeFork:qP,Lightning:QP,Link:lL,List:cL,Loading:cr,Location:ML,LocationFilled:wL,LocationInformation:BL,Lock:UL,Lollipop:YL,MagicStick:tz,Magnet:uz,Male:hz,Management:wz,MapLocation:Dz,Medal:Tz,Memo:Uz,Menu:Yz,Message:sT,MessageBox:tT,Mic:vT,Microphone:yT,MilkTea:xT,Minus:wf,Money:IT,Monitor:qT,Moon:lM,MoonNight:QT,More:Cf,MoreFilled:js,MostlyCloudy:yM,Mouse:$M,Mug:LM,Mute:KM,MuteNotification:RM,NoSmoking:ZM,Notebook:rV,Notification:pV,Odometer:wV,OfficeBuilding:BV,Open:MV,Operation:OV,Opportunity:GV,Orange:eH,Paperclip:rH,PartlyCloudy:pH,Pear:bH,Phone:kH,PhoneFilled:FH,Picture:JH,PictureFilled:VH,PictureRounded:WH,PieChart:lI,Place:fI,Platform:gI,Plus:Ef,Pointer:BI,Position:TI,Postcard:OI,Pouring:GI,Present:oR,PriceTag:cR,Printer:_R,Promotion:CR,QuartzWatch:SR,QuestionFilled:MR,Rank:OR,Reading:nN,ReadingLamp:YR,Refresh:yN,RefreshLeft:sN,RefreshRight:vN,Refrigerator:xN,Remove:IN,RemoveFilled:PN,Right:qN,ScaleToOriginal:JN,School:aO,Scissor:dO,Search:mO,Select:EO,Sell:BO,SemiSelect:TO,Service:NO,SetUp:XO,Setting:nU,Share:sU,Ship:vU,Shop:yU,ShoppingBag:$U,ShoppingCart:RU,ShoppingCartFull:zU,ShoppingTrolley:jU,Smoking:ZU,Soccer:aW,SoldOut:dW,Sort:BW,SortDown:mW,SortUp:EW,Stamp:TW,Star:KW,StarFilled:NW,Stopwatch:eq,SuccessFilled:n2,Sugar:dq,Suitcase:Aq,SuitcaseLine:mq,Sunny:Sq,Sunrise:Mq,Sunset:Oq,Switch:sj,SwitchButton:Yq,SwitchFilled:nj,TakeawayBox:vj,Ticket:yj,Tickets:xj,Timer:zj,ToiletPaper:Nj,Tools:Kj,Top:pK,TopLeft:eK,TopRight:uK,TrendCharts:bK,Trophy:kK,TrophyBase:FK,TurnOff:HK,Umbrella:WK,Unlock:JK,Upload:iG,UploadFilled:oG,User:wG,UserFilled:hG,Van:$G,VideoCamera:IG,VideoCameraFilled:LG,VideoPause:qG,VideoPlay:JG,View:Af,Wallet:_Y,WalletFilled:sY,WarnTriangleFilled:CY,Warning:LY,WarningFilled:Vu,Watch:NY,Watermelon:KY,WindPower:ZY,ZoomIn:Ff,ZoomOut:cX},Symbol.toStringTag,{value:\"Module\"}));const xf=\"__epPropKey\",Ue=e=>e,dX=e=>ct(e)&&!!e[xf],Hu=(e,t)=>{if(!ct(e)||dX(e))return e;const{values:n,required:o,default:l,type:a,validator:r}=e,s={type:a,required:!!o,validator:n||r?i=>{let c=!1,m=[];if(n&&(m=Array.from(n),st(e,\"default\")&&m.push(l),c||(c=m.includes(i))),r&&(c||(c=r(i))),!c&&m.length>0){const h=[...new Set(m)].map(v=>JSON.stringify(v)).join(\", \");Tp(`Invalid prop: validation failed${t?` for prop \"${t}\"`:\"\"}. Expected one of [${h}], got value ${JSON.stringify(i)}.`)}return c}:void 0,[xf]:!0};return st(e,\"default\")&&(s.default=l),s},et=e=>pf(Object.entries(e).map(([t,n])=>[t,Hu(n,t)])),Lt=Ue([String,Object,Function]),$f={Close:Cl},Df={Close:Cl,SuccessFilled:n2,InfoFilled:t2,WarningFilled:Vu,CircleCloseFilled:e2},Zl={success:n2,warning:Vu,error:e2,info:t2},fX={validating:cr,success:Mu,error:ir},Et=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t!=null?t:{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Bf=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Nt=e=>(e.install=vt,e),pX=(...e)=>t=>{e.forEach(n=>{Je(n)?n(t):n.value=t})},Pt={tab:\"Tab\",enter:\"Enter\",space:\"Space\",left:\"ArrowLeft\",up:\"ArrowUp\",right:\"ArrowRight\",down:\"ArrowDown\",esc:\"Escape\",delete:\"Delete\",backspace:\"Backspace\",numpadEnter:\"NumpadEnter\",pageUp:\"PageUp\",pageDown:\"PageDown\",home:\"Home\",end:\"End\"},Ct=\"update:modelValue\",uo=\"change\",du=\"input\",dr=[\"\",\"default\",\"small\",\"large\"],vX={large:40,default:32,small:24},hX=e=>vX[e||\"default\"],o2=e=>[\"\",...dr].includes(e);var Or=(e=>(e[e.TEXT=1]=\"TEXT\",e[e.CLASS=2]=\"CLASS\",e[e.STYLE=4]=\"STYLE\",e[e.PROPS=8]=\"PROPS\",e[e.FULL_PROPS=16]=\"FULL_PROPS\",e[e.HYDRATE_EVENTS=32]=\"HYDRATE_EVENTS\",e[e.STABLE_FRAGMENT=64]=\"STABLE_FRAGMENT\",e[e.KEYED_FRAGMENT=128]=\"KEYED_FRAGMENT\",e[e.UNKEYED_FRAGMENT=256]=\"UNKEYED_FRAGMENT\",e[e.NEED_PATCH=512]=\"NEED_PATCH\",e[e.DYNAMIC_SLOTS=1024]=\"DYNAMIC_SLOTS\",e[e.HOISTED=-1]=\"HOISTED\",e[e.BAIL=-2]=\"BAIL\",e))(Or||{});const _X=e=>{if(!mn(e))return{};const t=e.props||{},n=(mn(e.type)?e.type.props:void 0)||{},o={};return Object.keys(n).forEach(l=>{st(n[l],\"default\")&&(o[l]=n[l].default)}),Object.keys(t).forEach(l=>{o[xn(l)]=t[l]}),o},l2=e=>{const t=Ye(e)?e:[e],n=[];return t.forEach(o=>{Ye(o.children)?n.push(...l2(o.children)):n.push(o)}),n},Sf=e=>/([(\\uAC00-\\uD7AF)|(\\u3130-\\u318F)])+/gi.test(e),a2=()=>Math.floor(Math.random()*1e4),Fo=e=>e,mX=[\"class\",\"style\"],gX=/^on[A-Z]/,bX=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=R(()=>((n==null?void 0:n.value)||[]).concat(mX)),l=ft();return R(l?()=>{var a;return pf(Object.entries((a=l.proxy)==null?void 0:a.$attrs).filter(([r])=>!o.value.includes(r)&&!(t&&gX.test(r))))}:()=>({}))},kf=Symbol(\"buttonGroupContextKey\"),Pf=Symbol(\"collapseContextKey\"),Lf=Symbol(),zf=Symbol(\"dialogInjectionKey\"),va=Symbol(\"formContextKey\"),El=Symbol(\"formItemContextKey\"),Tf=Symbol(\"elPaginationKey\"),Mf=Symbol(\"radioGroupKey\"),Vf=Symbol(\"scrollbarContextKey\"),Hf=Symbol(\"uploadContextKey\"),r2=Symbol(\"popper\"),If=Symbol(\"popperContent\"),Rf=e=>{const t=ft();return R(()=>{var n,o;return(o=((n=t.proxy)==null?void 0:n.$props)[e])!=null?o:void 0})},fu=z();function Lo(e,t=void 0){const n=ft()?Ze(Lf,fu):fu;return e?R(()=>{var o,l;return(l=(o=n.value)==null?void 0:o[e])!=null?l:t}):n}const yX=(e,t,n=!1)=>{var o;const l=!!ft(),a=l?Lo():void 0,r=(o=t==null?void 0:t.provide)!=null?o:l?$t:void 0;if(!r)return;const u=R(()=>{const s=_(e);return a!=null&&a.value?wX(a.value,s):s});return r(Lf,u),(n||!fu.value)&&(fu.value=u.value),u},wX=(e,t)=>{var n;const o=[...new Set([...s0(e),...s0(t)])],l={};for(const a of o)l[a]=(n=t[a])!=null?n:e[a];return l},zo=Hu({type:String,values:dr,required:!1}),Qt=(e,t={})=>{const n=z(void 0),o=t.prop?n:Rf(\"size\"),l=t.global?n:Lo(\"size\"),a=t.form?{size:void 0}:Ze(va,void 0),r=t.formItem?{size:void 0}:Ze(El,void 0);return R(()=>o.value||_(e)||(r==null?void 0:r.size)||(a==null?void 0:a.size)||l.value||\"\")},Bl=e=>{const t=Rf(\"disabled\"),n=Ze(va,void 0);return R(()=>t.value||_(e)||(n==null?void 0:n.disabled)||!1)},pu=({from:e,replacement:t,scope:n,version:o,ref:l,type:a=\"API\"},r)=>{Ve(()=>_(r),u=>{},{immediate:!0})},Nf=(e,t,n)=>{let o={offsetX:0,offsetY:0};const l=u=>{const s=u.clientX,i=u.clientY,{offsetX:c,offsetY:m}=o,h=e.value.getBoundingClientRect(),v=h.left,g=h.top,y=h.width,A=h.height,w=document.documentElement.clientWidth,F=document.documentElement.clientHeight,E=-v+c,$=-g+m,T=w-v-y+c,B=F-g-A+m,P=I=>{const j=Math.min(Math.max(c+I.clientX-s,E),T),Z=Math.min(Math.max(m+I.clientY-i,$),B);o={offsetX:j,offsetY:Z},e.value.style.transform=`translate(${Nn(j)}, ${Nn(Z)})`},H=()=>{document.removeEventListener(\"mousemove\",P),document.removeEventListener(\"mouseup\",H)};document.addEventListener(\"mousemove\",P),document.addEventListener(\"mouseup\",H)},a=()=>{t.value&&e.value&&t.value.addEventListener(\"mousedown\",l)},r=()=>{t.value&&e.value&&t.value.removeEventListener(\"mousedown\",l)};at(()=>{yo(()=>{n.value?a():r()})}),Rt(()=>{r()})},CX=e=>({focus:()=>{var t,n;(n=(t=e.value)==null?void 0:t.focus)==null||n.call(t)}}),Iu=\"el\",EX=\"is-\",al=(e,t,n,o,l)=>{let a=`${e}-${t}`;return n&&(a+=`-${n}`),o&&(a+=`__${o}`),l&&(a+=`--${l}`),a},He=e=>{const t=Lo(\"namespace\",Iu);return{namespace:t,b:(g=\"\")=>al(t.value,e,g,\"\",\"\"),e:g=>g?al(t.value,e,\"\",g,\"\"):\"\",m:g=>g?al(t.value,e,\"\",\"\",g):\"\",be:(g,y)=>g&&y?al(t.value,e,g,y,\"\"):\"\",em:(g,y)=>g&&y?al(t.value,e,\"\",g,y):\"\",bm:(g,y)=>g&&y?al(t.value,e,g,\"\",y):\"\",bem:(g,y,A)=>g&&y&&A?al(t.value,e,g,y,A):\"\",is:(g,...y)=>{const A=y.length>=1?y[0]:!0;return g&&A?`${EX}${g}`:\"\"},cssVar:g=>{const y={};for(const A in g)g[A]&&(y[`--${t.value}-${A}`]=g[A]);return y},cssVarName:g=>`--${t.value}-${g}`,cssVarBlock:g=>{const y={};for(const A in g)g[A]&&(y[`--${t.value}-${e}-${A}`]=g[A]);return y},cssVarBlockName:g=>`--${t.value}-${e}-${g}`}},AX={prefix:Math.floor(Math.random()*1e4),current:0},FX=Symbol(\"elIdInjection\"),Zo=e=>{const t=Ze(FX,AX),n=Lo(\"namespace\",Iu);return R(()=>_(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Sl=()=>{const e=Ze(va,void 0),t=Ze(El,void 0);return{form:e,formItem:t}},fr=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=z(!1)),o||(o=z(!1));const l=z();let a;const r=R(()=>{var u;return!!(!e.label&&t&&t.inputIds&&((u=t.inputIds)==null?void 0:u.length)<=1)});return at(()=>{a=Ve([$n(e,\"id\"),n],([u,s])=>{const i=u!=null?u:s?void 0:Zo().value;i!==l.value&&(t!=null&&t.removeInputId&&(l.value&&t.removeInputId(l.value),!(o!=null&&o.value)&&!s&&i&&t.addInputId(i)),l.value=i)},{immediate:!0})}),Bo(()=>{a&&a(),t!=null&&t.removeInputId&&l.value&&t.removeInputId(l.value)}),{isLabeledByFormItem:r,inputId:l}};var xX={name:\"en\",el:{colorpicker:{confirm:\"OK\",clear:\"Clear\",defaultLabel:\"color picker\",description:\"current color is {color}. press enter to select a new color.\"},datepicker:{now:\"Now\",today:\"Today\",cancel:\"Cancel\",clear:\"Clear\",confirm:\"OK\",dateTablePrompt:\"Use the arrow keys and enter to select the day of the month\",monthTablePrompt:\"Use the arrow keys and enter to select the month\",yearTablePrompt:\"Use the arrow keys and enter to select the year\",selectedDate:\"Selected date\",selectDate:\"Select date\",selectTime:\"Select time\",startDate:\"Start Date\",startTime:\"Start Time\",endDate:\"End Date\",endTime:\"End Time\",prevYear:\"Previous Year\",nextYear:\"Next Year\",prevMonth:\"Previous Month\",nextMonth:\"Next Month\",year:\"\",month1:\"January\",month2:\"February\",month3:\"March\",month4:\"April\",month5:\"May\",month6:\"June\",month7:\"July\",month8:\"August\",month9:\"September\",month10:\"October\",month11:\"November\",month12:\"December\",week:\"week\",weeks:{sun:\"Sun\",mon:\"Mon\",tue:\"Tue\",wed:\"Wed\",thu:\"Thu\",fri:\"Fri\",sat:\"Sat\"},weeksFull:{sun:\"Sunday\",mon:\"Monday\",tue:\"Tuesday\",wed:\"Wednesday\",thu:\"Thursday\",fri:\"Friday\",sat:\"Saturday\"},months:{jan:\"Jan\",feb:\"Feb\",mar:\"Mar\",apr:\"Apr\",may:\"May\",jun:\"Jun\",jul:\"Jul\",aug:\"Aug\",sep:\"Sep\",oct:\"Oct\",nov:\"Nov\",dec:\"Dec\"}},inputNumber:{decrease:\"decrease number\",increase:\"increase number\"},select:{loading:\"Loading\",noMatch:\"No matching data\",noData:\"No data\",placeholder:\"Select\"},dropdown:{toggleDropdown:\"Toggle Dropdown\"},cascader:{noMatch:\"No matching data\",loading:\"Loading\",placeholder:\"Select\",noData:\"No data\"},pagination:{goto:\"Go to\",pagesize:\"/page\",total:\"Total {total}\",pageClassifier:\"\",deprecationWarning:\"Deprecated usages detected, please refer to the el-pagination documentation for more details\"},dialog:{close:\"Close this dialog\"},drawer:{close:\"Close this dialog\"},messagebox:{title:\"Message\",confirm:\"OK\",cancel:\"Cancel\",error:\"Illegal input\",close:\"Close this dialog\"},upload:{deleteTip:\"press delete to remove\",delete:\"Delete\",preview:\"Preview\",continue:\"Continue\"},slider:{defaultLabel:\"slider between {min} and {max}\",defaultRangeStartLabel:\"pick start value\",defaultRangeEndLabel:\"pick end value\"},table:{emptyText:\"No Data\",confirmFilter:\"Confirm\",resetFilter:\"Reset\",clearFilter:\"All\",sumText:\"Sum\"},tree:{emptyText:\"No Data\"},transfer:{noMatch:\"No matching data\",noData:\"No data\",titles:[\"List 1\",\"List 2\"],filterPlaceholder:\"Enter keyword\",noCheckedFormat:\"{total} items\",hasCheckedFormat:\"{checked}/{total} checked\"},image:{error:\"FAILED\"},pageHeader:{title:\"Back\"},popconfirm:{confirmButtonText:\"Yes\",cancelButtonText:\"No\"}}};const $X=e=>(t,n)=>DX(t,n,_(e)),DX=(e,t,n)=>Jt(n,e,e).replace(/\\{(\\w+)\\}/g,(o,l)=>{var a;return`${(a=t==null?void 0:t[l])!=null?a:`{${l}}`}`}),BX=e=>{const t=R(()=>_(e).name),n=gt(e)?e:z(e);return{lang:t,locale:n,t:$X(e)}},bn=()=>{const e=Lo(\"locale\");return BX(R(()=>e.value||xX))},Of=e=>{gt(e)||gn(\"[useLockscreen]\",\"You need to pass a ref param to this function\");const t=He(\"popup\"),n=Xd(()=>t.bm(\"parent\",\"hidden\"));if(!_t||bl(document.body,n.value))return;let o=0,l=!1,a=\"0\";const r=()=>{setTimeout(()=>{Rn(document.body,n.value),l&&(document.body.style.width=a)},200)};Ve(e,u=>{if(!u){r();return}l=!bl(document.body,n.value),l&&(a=document.body.style.width),o=Zm(t.namespace.value);const s=document.documentElement.clientHeight<document.body.scrollHeight,i=mo(document.body,\"overflowY\");o>0&&(s||i===\"scroll\")&&l&&(document.body.style.width=`calc(100% - ${o}px)`),go(document.body,n.value)}),Pd(()=>r())},SX=Hu({type:Ue(Boolean),default:null}),kX=Hu({type:Ue(Function)}),PX=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],l={[e]:SX,[n]:kX};return{useModelToggle:({indicator:r,toggleReason:u,shouldHideWhenRouteChanges:s,shouldProceed:i,onShow:c,onHide:m})=>{const h=ft(),{emit:v}=h,g=h.props,y=R(()=>Je(g[n])),A=R(()=>g[e]===null),w=P=>{r.value!==!0&&(r.value=!0,u&&(u.value=P),Je(c)&&c(P))},F=P=>{r.value!==!1&&(r.value=!1,u&&(u.value=P),Je(m)&&m(P))},E=P=>{if(g.disabled===!0||Je(i)&&!i())return;const H=y.value&&_t;H&&v(t,!0),(A.value||!H)&&w(P)},$=P=>{if(g.disabled===!0||!_t)return;const H=y.value&&_t;H&&v(t,!1),(A.value||!H)&&F(P)},T=P=>{!Gt(P)||(g.disabled&&P?y.value&&v(t,!1):r.value!==P&&(P?w():F()))},B=()=>{r.value?$():E()};return Ve(()=>g[e],T),s&&h.appContext.config.globalProperties.$route!==void 0&&Ve(()=>({...h.proxy.$route}),()=>{s.value&&r.value&&$()}),at(()=>{T(g[e])}),{hide:$,show:E,toggle:B,hasUpdateHandler:y}},useModelToggleProps:l,useModelToggleEmits:o}},LX=(e,t)=>{let n;Ve(()=>e.value,o=>{var l,a;o?(n=document.activeElement,gt(t)&&((a=(l=t.value).focus)==null||a.call(l))):n.focus()})},u2=e=>{if(!e)return{onClick:vt,onMousedown:vt,onMouseup:vt};let t=!1,n=!1;return{onClick:r=>{t&&n&&e(r),t=n=!1},onMousedown:r=>{t=r.target===r.currentTarget},onMouseup:r=>{n=r.target===r.currentTarget}}};function zX(){let e;const t=(o,l)=>{n(),e=window.setTimeout(o,l)},n=()=>window.clearTimeout(e);return zu(()=>n()),{registerTimeout:t,cancelTimeout:n}}let Vl=[];const c0=e=>{const t=e;t.key===Pt.esc&&Vl.forEach(n=>n(t))},TX=e=>{at(()=>{Vl.length===0&&document.addEventListener(\"keydown\",c0),_t&&Vl.push(e)}),Rt(()=>{Vl=Vl.filter(t=>t!==e),Vl.length===0&&_t&&document.removeEventListener(\"keydown\",c0)})};let d0;const MX=Lo(\"namespace\",Iu),Uf=`${MX.value}-popper-container-${a2()}`,Wf=`#${Uf}`,VX=()=>{const e=document.createElement(\"div\");return e.id=Uf,document.body.appendChild(e),e},HX=()=>{$u(()=>{!_t||(!d0||!document.body.querySelector(Wf))&&(d0=VX())})},IX=et({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),RX=({showAfter:e,hideAfter:t,open:n,close:o})=>{const{registerTimeout:l}=zX();return{onOpen:u=>{l(()=>{n(u)},_(e))},onClose:u=>{l(()=>{o(u)},_(t))}}},qf=Symbol(\"elForwardRef\"),NX=e=>{$t(qf,{setForwardRef:n=>{e.value=n}})},OX=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),f0=z(0),kl=()=>{const e=Lo(\"zIndex\",2e3),t=R(()=>e.value+f0.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(f0.value++,t.value)}};function UX(e){const t=z();function n(){if(e.value==null)return;const{selectionStart:l,selectionEnd:a,value:r}=e.value;if(l==null||a==null)return;const u=r.slice(0,Math.max(0,l)),s=r.slice(Math.max(0,a));t.value={selectionStart:l,selectionEnd:a,value:r,beforeTxt:u,afterTxt:s}}function o(){if(e.value==null||t.value==null)return;const{value:l}=e.value,{beforeTxt:a,afterTxt:r,selectionStart:u}=t.value;if(a==null||r==null||u==null)return;let s=l.length;if(l.endsWith(r))s=l.length-r.length;else if(l.startsWith(a))s=a.length;else{const i=a[u-1],c=l.indexOf(i,u-1);c!==-1&&(s=c+1)}e.value.setSelectionRange(s,s)}return[n,o]}const WX=et({zIndex:{type:Ue([Number,String]),default:100},target:{type:String,default:\"\"},offset:{type:Number,default:0},position:{type:String,values:[\"top\",\"bottom\"],default:\"top\"}}),qX={scroll:({scrollTop:e,fixed:t})=>mt(e)&&Gt(t),[uo]:e=>Gt(e)};var je=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const jX={name:\"ElAffix\"},KX=Le({...jX,props:WX,emits:qX,setup(e,{expose:t,emit:n}){const o=e,l=\"ElAffix\",a=He(\"affix\"),r=In(),u=In(),s=In(),{height:i}=Km(),{height:c,width:m,top:h,bottom:v,update:g}=l0(u),y=l0(r),A=z(!1),w=z(0),F=z(0),E=R(()=>({height:A.value?`${c.value}px`:\"\",width:A.value?`${m.value}px`:\"\"})),$=R(()=>{if(!A.value)return{};const P=o.offset?`${o.offset}px`:0;return{height:`${c.value}px`,width:`${m.value}px`,top:o.position===\"top\"?P:\"\",bottom:o.position===\"bottom\"?P:\"\",transform:F.value?`translateY(${F.value}px)`:\"\",zIndex:o.zIndex}}),T=()=>{if(!!s.value)if(w.value=s.value instanceof Window?document.documentElement.scrollTop:s.value.scrollTop||0,o.position===\"top\")if(o.target){const P=y.bottom.value-o.offset-c.value;A.value=o.offset>h.value&&y.bottom.value>0,F.value=P<0?P:0}else A.value=o.offset>h.value;else if(o.target){const P=i.value-y.top.value-o.offset-c.value;A.value=i.value-o.offset<v.value&&i.value>y.top.value,F.value=P<0?-P:0}else A.value=i.value-o.offset<v.value},B=()=>{n(\"scroll\",{scrollTop:w.value,fixed:A.value})};return Ve(A,P=>n(\"change\",P)),at(()=>{var P;o.target?(r.value=(P=document.querySelector(o.target))!=null?P:void 0,r.value||gn(l,`Target is not existed: ${o.target}`)):r.value=document.documentElement,s.value=Qm(u.value,!0),g()}),Kt(s,\"scroll\",B),yo(T),t({update:T,updateRoot:g}),(P,H)=>(b(),C(\"div\",{ref_key:\"root\",ref:u,class:U(_(a).b()),style:nt(_(E))},[f(\"div\",{class:U({[_(a).m(\"fixed\")]:A.value}),style:nt(_($))},[Te(P.$slots,\"default\")],6)],6))}});var GX=je(KX,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/affix/src/affix.vue\"]]);const ha=Et(GX),YX=et({size:{type:Ue([Number,String])},color:{type:String}}),XX={name:\"ElIcon\",inheritAttrs:!1},JX=Le({...XX,props:YX,setup(e){const t=e,n=He(\"icon\"),o=R(()=>{const{size:l,color:a}=t;return!l&&!a?{}:{fontSize:Ko(l)?void 0:Nn(l),\"--color\":a}});return(l,a)=>(b(),C(\"i\",An({class:_(n).b(),style:_(o)},l.$attrs),[Te(l.$slots,\"default\")],16))}});var QX=je(JX,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue\"]]);const ut=Et(QX);let zn;const ZX=`\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important;\n`,eJ=[\"letter-spacing\",\"line-height\",\"padding-top\",\"padding-bottom\",\"font-family\",\"font-weight\",\"font-size\",\"text-rendering\",\"text-transform\",\"width\",\"text-indent\",\"padding-left\",\"padding-right\",\"border-width\",\"box-sizing\"];function tJ(e){const t=window.getComputedStyle(e),n=t.getPropertyValue(\"box-sizing\"),o=Number.parseFloat(t.getPropertyValue(\"padding-bottom\"))+Number.parseFloat(t.getPropertyValue(\"padding-top\")),l=Number.parseFloat(t.getPropertyValue(\"border-bottom-width\"))+Number.parseFloat(t.getPropertyValue(\"border-top-width\"));return{contextStyle:eJ.map(r=>`${r}:${t.getPropertyValue(r)}`).join(\";\"),paddingSize:o,borderSize:l,boxSizing:n}}function p0(e,t=1,n){var o;zn||(zn=document.createElement(\"textarea\"),document.body.appendChild(zn));const{paddingSize:l,borderSize:a,boxSizing:r,contextStyle:u}=tJ(e);zn.setAttribute(\"style\",`${u};${ZX}`),zn.value=e.value||e.placeholder||\"\";let s=zn.scrollHeight;const i={};r===\"border-box\"?s=s+a:r===\"content-box\"&&(s=s-l),zn.value=\"\";const c=zn.scrollHeight-l;if(mt(t)){let m=c*t;r===\"border-box\"&&(m=m+l+a),s=Math.max(m,s),i.minHeight=`${m}px`}if(mt(n)){let m=c*n;r===\"border-box\"&&(m=m+l+a),s=Math.min(m,s)}return i.height=`${s}px`,(o=zn.parentNode)==null||o.removeChild(zn),zn=void 0,i}const nJ=et({id:{type:String,default:void 0},size:zo,disabled:Boolean,modelValue:{type:Ue([String,Number,Object]),default:\"\"},type:{type:String,default:\"text\"},resize:{type:String,values:[\"none\",\"both\",\"horizontal\",\"vertical\"]},autosize:{type:Ue([Boolean,Object]),default:!1},autocomplete:{type:String,default:\"off\"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String,default:\"\"},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Lt},prefixIcon:{type:Lt},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Ue([Object,Array,String]),default:()=>Fo({})}}),oJ={[Ct]:e=>tt(e),input:e=>tt(e),change:e=>tt(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},lJ=[\"role\"],aJ=[\"id\",\"type\",\"disabled\",\"formatter\",\"parser\",\"readonly\",\"autocomplete\",\"tabindex\",\"aria-label\",\"placeholder\"],rJ=[\"id\",\"tabindex\",\"disabled\",\"readonly\",\"autocomplete\",\"aria-label\",\"placeholder\"],uJ={name:\"ElInput\",inheritAttrs:!1},sJ=Le({...uJ,props:nJ,emits:oJ,setup(e,{expose:t,emit:n}){const o=e,l={suffix:\"append\",prefix:\"prepend\"},a=ft(),r=N3(),u=So(),s=R(()=>{const Q={};return o.containerRole===\"combobox\"&&(Q[\"aria-haspopup\"]=r[\"aria-haspopup\"],Q[\"aria-owns\"]=r[\"aria-owns\"],Q[\"aria-expanded\"]=r[\"aria-expanded\"]),Q}),i=bX({excludeKeys:R(()=>Object.keys(s.value))}),{form:c,formItem:m}=Sl(),{inputId:h}=fr(o,{formItemContext:m}),v=Qt(),g=Bl(),y=He(\"input\"),A=He(\"textarea\"),w=In(),F=In(),E=z(!1),$=z(!1),T=z(!1),B=z(!1),P=z(),H=In(o.inputStyle),I=R(()=>w.value||F.value),j=R(()=>{var Q;return(Q=c==null?void 0:c.statusIcon)!=null?Q:!1}),Z=R(()=>(m==null?void 0:m.validateState)||\"\"),G=R(()=>Z.value&&fX[Z.value]),N=R(()=>B.value?Af:yf),Y=R(()=>[r.style,o.inputStyle]),ge=R(()=>[o.inputStyle,H.value,{resize:o.resize}]),fe=R(()=>no(o.modelValue)?\"\":String(o.modelValue)),Ee=R(()=>o.clearable&&!g.value&&!o.readonly&&!!fe.value&&(E.value||$.value)),ne=R(()=>o.showPassword&&!g.value&&!o.readonly&&!!fe.value&&(!!fe.value||E.value)),ee=R(()=>o.showWordLimit&&!!i.value.maxlength&&(o.type===\"text\"||o.type===\"textarea\")&&!g.value&&!o.readonly&&!o.showPassword),xe=R(()=>Array.from(fe.value).length),$e=R(()=>!!ee.value&&xe.value>Number(i.value.maxlength)),x=R(()=>!!u.suffix||!!o.suffixIcon||Ee.value||o.showPassword||ee.value||!!Z.value&&j.value),[W,we]=UX(w);ro(F,Q=>{if(!ee.value||o.resize!==\"both\")return;const Pe=Q[0],{width:Ge}=Pe.contentRect;P.value={right:`calc(100% - ${Ge+15+6}px)`}});const Ae=()=>{const{type:Q,autosize:Pe}=o;if(!(!_t||Q!==\"textarea\"))if(Pe){const Ge=ct(Pe)?Pe.minRows:void 0,Xe=ct(Pe)?Pe.maxRows:void 0;H.value={...p0(F.value,Ge,Xe)}}else H.value={minHeight:p0(F.value).minHeight}},ke=()=>{const Q=I.value;!Q||Q.value===fe.value||(Q.value=fe.value)},ve=Q=>{const{el:Pe}=a.vnode;if(!Pe)return;const Xe=Array.from(Pe.querySelectorAll(`.${y.e(Q)}`)).find(Ie=>Ie.parentNode===Pe);if(!Xe)return;const he=l[Q];u[he]?Xe.style.transform=`translateX(${Q===\"suffix\"?\"-\":\"\"}${Pe.querySelector(`.${y.be(\"group\",he)}`).offsetWidth}px)`:Xe.removeAttribute(\"style\")},ze=()=>{ve(\"prefix\"),ve(\"suffix\")},Ke=async Q=>{W();let{value:Pe}=Q.target;if(o.formatter&&(Pe=o.parser?o.parser(Pe):Pe,Pe=o.formatter(Pe)),!T.value){if(Pe===fe.value){ke();return}n(Ct,Pe),n(\"input\",Pe),await rt(),ke(),we()}},se=Q=>{n(\"change\",Q.target.value)},le=Q=>{n(\"compositionstart\",Q),T.value=!0},L=Q=>{var Pe;n(\"compositionupdate\",Q);const Ge=(Pe=Q.target)==null?void 0:Pe.value,Xe=Ge[Ge.length-1]||\"\";T.value=!Sf(Xe)},S=Q=>{n(\"compositionend\",Q),T.value&&(T.value=!1,Ke(Q))},V=()=>{B.value=!B.value,O()},O=async()=>{var Q;await rt(),(Q=I.value)==null||Q.focus()},te=()=>{var Q;return(Q=I.value)==null?void 0:Q.blur()},_e=Q=>{E.value=!0,n(\"focus\",Q)},pe=Q=>{var Pe;E.value=!1,n(\"blur\",Q),o.validateEvent&&((Pe=m==null?void 0:m.validate)==null||Pe.call(m,\"blur\").catch(Ge=>void 0))},Ce=Q=>{$.value=!1,n(\"mouseleave\",Q)},be=Q=>{$.value=!0,n(\"mouseenter\",Q)},re=Q=>{n(\"keydown\",Q)},me=()=>{var Q;(Q=I.value)==null||Q.select()},Re=()=>{n(Ct,\"\"),n(\"change\",\"\"),n(\"clear\"),n(\"input\",\"\")};return Ve(()=>o.modelValue,()=>{var Q;rt(()=>Ae()),o.validateEvent&&((Q=m==null?void 0:m.validate)==null||Q.call(m,\"change\").catch(Pe=>void 0))}),Ve(fe,()=>ke()),Ve(()=>o.type,async()=>{await rt(),ke(),Ae(),ze()}),at(async()=>{!o.formatter&&o.parser,ke(),ze(),await rt(),Ae()}),xl(async()=>{await rt(),ze()}),t({input:w,textarea:F,ref:I,textareaStyle:ge,autosize:$n(o,\"autosize\"),focus:O,blur:te,select:me,clear:Re,resizeTextarea:Ae}),(Q,Pe)=>ye((b(),C(\"div\",An(_(s),{class:[Q.type===\"textarea\"?_(A).b():_(y).b(),_(y).m(_(v)),_(y).is(\"disabled\",_(g)),_(y).is(\"exceed\",_($e)),{[_(y).b(\"group\")]:Q.$slots.prepend||Q.$slots.append,[_(y).bm(\"group\",\"append\")]:Q.$slots.append,[_(y).bm(\"group\",\"prepend\")]:Q.$slots.prepend,[_(y).m(\"prefix\")]:Q.$slots.prefix||Q.prefixIcon,[_(y).m(\"suffix\")]:Q.$slots.suffix||Q.suffixIcon||Q.clearable||Q.showPassword,[_(y).bm(\"suffix\",\"password-clear\")]:_(Ee)&&_(ne)},Q.$attrs.class],style:_(Y),role:Q.containerRole,onMouseenter:be,onMouseleave:Ce}),[oe(\" input \"),Q.type!==\"textarea\"?(b(),C(We,{key:0},[oe(\" prepend slot \"),Q.$slots.prepend?(b(),C(\"div\",{key:0,class:U(_(y).be(\"group\",\"prepend\"))},[Te(Q.$slots,\"prepend\")],2)):oe(\"v-if\",!0),f(\"div\",{class:U([_(y).e(\"wrapper\"),_(y).is(\"focus\",E.value)])},[oe(\" prefix slot \"),Q.$slots.prefix||Q.prefixIcon?(b(),C(\"span\",{key:0,class:U(_(y).e(\"prefix\"))},[f(\"span\",{class:U(_(y).e(\"prefix-inner\"))},[Te(Q.$slots,\"prefix\"),Q.prefixIcon?(b(),ae(_(ut),{key:0,class:U(_(y).e(\"icon\"))},{default:p(()=>[(b(),ae(yt(Q.prefixIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],2)):oe(\"v-if\",!0),f(\"input\",An({id:_(h),ref_key:\"input\",ref:w,class:_(y).e(\"inner\")},_(i),{type:Q.showPassword?B.value?\"text\":\"password\":Q.type,disabled:_(g),formatter:Q.formatter,parser:Q.parser,readonly:Q.readonly,autocomplete:Q.autocomplete,tabindex:Q.tabindex,\"aria-label\":Q.label,placeholder:Q.placeholder,style:Q.inputStyle,onCompositionstart:le,onCompositionupdate:L,onCompositionend:S,onInput:Ke,onFocus:_e,onBlur:pe,onChange:se,onKeydown:re}),null,16,aJ),oe(\" suffix slot \"),_(x)?(b(),C(\"span\",{key:1,class:U(_(y).e(\"suffix\"))},[f(\"span\",{class:U(_(y).e(\"suffix-inner\"))},[!_(Ee)||!_(ne)||!_(ee)?(b(),C(We,{key:0},[Te(Q.$slots,\"suffix\"),Q.suffixIcon?(b(),ae(_(ut),{key:0,class:U(_(y).e(\"icon\"))},{default:p(()=>[(b(),ae(yt(Q.suffixIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],64)):oe(\"v-if\",!0),_(Ee)?(b(),ae(_(ut),{key:1,class:U([_(y).e(\"icon\"),_(y).e(\"clear\")]),onMousedown:ht(_(vt),[\"prevent\"]),onClick:Re},{default:p(()=>[d(_(ir))]),_:1},8,[\"class\",\"onMousedown\"])):oe(\"v-if\",!0),_(ne)?(b(),ae(_(ut),{key:2,class:U([_(y).e(\"icon\"),_(y).e(\"password\")]),onClick:V},{default:p(()=>[(b(),ae(yt(_(N))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),_(ee)?(b(),C(\"span\",{key:3,class:U(_(y).e(\"count\"))},[f(\"span\",{class:U(_(y).e(\"count-inner\"))},ce(_(xe))+\" / \"+ce(_(i).maxlength),3)],2)):oe(\"v-if\",!0),_(Z)&&_(G)&&_(j)?(b(),ae(_(ut),{key:4,class:U([_(y).e(\"icon\"),_(y).e(\"validateIcon\"),_(y).is(\"loading\",_(Z)===\"validating\")])},{default:p(()=>[(b(),ae(yt(_(G))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],2)):oe(\"v-if\",!0)],2),oe(\" append slot \"),Q.$slots.append?(b(),C(\"div\",{key:1,class:U(_(y).be(\"group\",\"append\"))},[Te(Q.$slots,\"append\")],2)):oe(\"v-if\",!0)],64)):(b(),C(We,{key:1},[oe(\" textarea \"),f(\"textarea\",An({id:_(h),ref_key:\"textarea\",ref:F,class:_(A).e(\"inner\")},_(i),{tabindex:Q.tabindex,disabled:_(g),readonly:Q.readonly,autocomplete:Q.autocomplete,style:_(ge),\"aria-label\":Q.label,placeholder:Q.placeholder,onCompositionstart:le,onCompositionupdate:L,onCompositionend:S,onInput:Ke,onFocus:_e,onBlur:pe,onChange:se,onKeydown:re}),null,16,rJ),_(ee)?(b(),C(\"span\",{key:0,style:nt(P.value),class:U(_(y).e(\"count\"))},ce(_(xe))+\" / \"+ce(_(i).maxlength),7)):oe(\"v-if\",!0)],64))],16,lJ)),[[Be,Q.type!==\"hidden\"]])}});var iJ=je(sJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue\"]]);const yn=Et(iJ),Il=4,cJ={vertical:{offset:\"offsetHeight\",scroll:\"scrollTop\",scrollSize:\"scrollHeight\",size:\"height\",key:\"vertical\",axis:\"Y\",client:\"clientY\",direction:\"top\"},horizontal:{offset:\"offsetWidth\",scroll:\"scrollLeft\",scrollSize:\"scrollWidth\",size:\"width\",key:\"horizontal\",axis:\"X\",client:\"clientX\",direction:\"left\"}},dJ=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),fJ=et({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),pJ=Le({__name:\"thumb\",props:fJ,setup(e){const t=e,n=\"Thumb\",o=Ze(Vf),l=He(\"scrollbar\");o||gn(n,\"can not inject scrollbar context\");const a=z(),r=z(),u=z({}),s=z(!1);let i=!1,c=!1,m=_t?document.onselectstart:null;const h=R(()=>cJ[t.vertical?\"vertical\":\"horizontal\"]),v=R(()=>dJ({size:t.size,move:t.move,bar:h.value})),g=R(()=>a.value[h.value.offset]**2/o.wrapElement[h.value.scrollSize]/t.ratio/r.value[h.value.offset]),y=P=>{var H;if(P.stopPropagation(),P.ctrlKey||[1,2].includes(P.button))return;(H=window.getSelection())==null||H.removeAllRanges(),w(P);const I=P.currentTarget;!I||(u.value[h.value.axis]=I[h.value.offset]-(P[h.value.client]-I.getBoundingClientRect()[h.value.direction]))},A=P=>{if(!r.value||!a.value||!o.wrapElement)return;const H=Math.abs(P.target.getBoundingClientRect()[h.value.direction]-P[h.value.client]),I=r.value[h.value.offset]/2,j=(H-I)*100*g.value/a.value[h.value.offset];o.wrapElement[h.value.scroll]=j*o.wrapElement[h.value.scrollSize]/100},w=P=>{P.stopImmediatePropagation(),i=!0,document.addEventListener(\"mousemove\",F),document.addEventListener(\"mouseup\",E),m=document.onselectstart,document.onselectstart=()=>!1},F=P=>{if(!a.value||!r.value||i===!1)return;const H=u.value[h.value.axis];if(!H)return;const I=(a.value.getBoundingClientRect()[h.value.direction]-P[h.value.client])*-1,j=r.value[h.value.offset]-H,Z=(I-j)*100*g.value/a.value[h.value.offset];o.wrapElement[h.value.scroll]=Z*o.wrapElement[h.value.scrollSize]/100},E=()=>{i=!1,u.value[h.value.axis]=0,document.removeEventListener(\"mousemove\",F),document.removeEventListener(\"mouseup\",E),B(),c&&(s.value=!1)},$=()=>{c=!1,s.value=!!t.size},T=()=>{c=!0,s.value=i};Rt(()=>{B(),document.removeEventListener(\"mouseup\",E)});const B=()=>{document.onselectstart!==m&&(document.onselectstart=m)};return Kt($n(o,\"scrollbarElement\"),\"mousemove\",$),Kt($n(o,\"scrollbarElement\"),\"mouseleave\",T),(P,H)=>(b(),ae(Zt,{name:_(l).b(\"fade\"),persisted:\"\"},{default:p(()=>[ye(f(\"div\",{ref_key:\"instance\",ref:a,class:U([_(l).e(\"bar\"),_(l).is(_(h).key)]),onMousedown:A},[f(\"div\",{ref_key:\"thumb\",ref:r,class:U(_(l).e(\"thumb\")),style:nt(_(v)),onMousedown:y},null,38)],34),[[Be,P.always||s.value]])]),_:1},8,[\"name\"]))}});var v0=je(pJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue\"]]);const vJ=et({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),hJ=Le({__name:\"bar\",props:vJ,setup(e,{expose:t}){const n=e,o=z(0),l=z(0);return t({handleScroll:r=>{if(r){const u=r.offsetHeight-Il,s=r.offsetWidth-Il;l.value=r.scrollTop*100/u*n.ratioY,o.value=r.scrollLeft*100/s*n.ratioX}}}),(r,u)=>(b(),C(We,null,[d(v0,{move:o.value,ratio:r.ratioX,size:r.width,always:r.always},null,8,[\"move\",\"ratio\",\"size\",\"always\"]),d(v0,{move:l.value,ratio:r.ratioY,size:r.height,vertical:\"\",always:r.always},null,8,[\"move\",\"ratio\",\"size\",\"always\"])],64))}});var _J=je(hJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue\"]]);const mJ=et({height:{type:[String,Number],default:\"\"},maxHeight:{type:[String,Number],default:\"\"},native:Boolean,wrapStyle:{type:Ue([String,Object,Array]),default:\"\"},wrapClass:{type:[String,Array],default:\"\"},viewClass:{type:[String,Array],default:\"\"},viewStyle:{type:[String,Array,Object],default:\"\"},noresize:Boolean,tag:{type:String,default:\"div\"},always:Boolean,minSize:{type:Number,default:20}}),gJ={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(mt)},bJ={name:\"ElScrollbar\"},yJ=Le({...bJ,props:mJ,emits:gJ,setup(e,{expose:t,emit:n}){const o=e,l=He(\"scrollbar\");let a,r;const u=z(),s=z(),i=z(),c=z(\"0\"),m=z(\"0\"),h=z(),v=z(1),g=z(1),y=R(()=>{const T={};return o.height&&(T.height=Nn(o.height)),o.maxHeight&&(T.maxHeight=Nn(o.maxHeight)),[o.wrapStyle,T]}),A=()=>{var T;s.value&&((T=h.value)==null||T.handleScroll(s.value),n(\"scroll\",{scrollTop:s.value.scrollTop,scrollLeft:s.value.scrollLeft}))};function w(T,B){ct(T)?s.value.scrollTo(T):mt(T)&&mt(B)&&s.value.scrollTo(T,B)}const F=T=>{!mt(T)||(s.value.scrollTop=T)},E=T=>{!mt(T)||(s.value.scrollLeft=T)},$=()=>{if(!s.value)return;const T=s.value.offsetHeight-Il,B=s.value.offsetWidth-Il,P=T**2/s.value.scrollHeight,H=B**2/s.value.scrollWidth,I=Math.max(P,o.minSize),j=Math.max(H,o.minSize);v.value=P/(T-P)/(I/(T-I)),g.value=H/(B-H)/(j/(B-j)),m.value=I+Il<T?`${I}px`:\"\",c.value=j+Il<B?`${j}px`:\"\"};return Ve(()=>o.noresize,T=>{T?(a==null||a(),r==null||r()):({stop:a}=ro(i,$),r=Kt(\"resize\",$))},{immediate:!0}),Ve(()=>[o.maxHeight,o.height],()=>{o.native||rt(()=>{var T;$(),s.value&&((T=h.value)==null||T.handleScroll(s.value))})}),$t(Vf,It({scrollbarElement:u,wrapElement:s})),at(()=>{o.native||rt(()=>{$()})}),xl(()=>$()),t({wrap$:s,update:$,scrollTo:w,setScrollTop:F,setScrollLeft:E,handleScroll:A}),(T,B)=>(b(),C(\"div\",{ref_key:\"scrollbar$\",ref:u,class:U(_(l).b())},[f(\"div\",{ref_key:\"wrap$\",ref:s,class:U([T.wrapClass,_(l).e(\"wrap\"),{[_(l).em(\"wrap\",\"hidden-default\")]:!T.native}]),style:nt(_(y)),onScroll:A},[(b(),ae(yt(T.tag),{ref_key:\"resize$\",ref:i,class:U([_(l).e(\"view\"),T.viewClass]),style:nt(T.viewStyle)},{default:p(()=>[Te(T.$slots,\"default\")]),_:3},8,[\"class\",\"style\"]))],38),T.native?oe(\"v-if\",!0):(b(),ae(_J,{key:0,ref_key:\"barRef\",ref:h,height:m.value,width:c.value,always:T.always,\"ratio-x\":g.value,\"ratio-y\":v.value},null,8,[\"height\",\"width\",\"always\",\"ratio-x\",\"ratio-y\"]))],2))}});var wJ=je(yJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue\"]]);const un=Et(wJ),CJ={LIGHT:\"light\",DARK:\"dark\"},EJ=[\"dialog\",\"grid\",\"listbox\",\"menu\",\"tooltip\",\"tree\"],jf=et({role:{type:String,values:EJ,default:\"tooltip\"}}),AJ={name:\"ElPopperRoot\",inheritAttrs:!1},FJ=Le({...AJ,props:jf,setup(e,{expose:t}){const n=e,o=z(),l=z(),a=z(),r=z(),u=R(()=>n.role),s={triggerRef:o,popperInstanceRef:l,contentRef:a,referenceRef:r,role:u};return t(s),$t(r2,s),(i,c)=>Te(i.$slots,\"default\")}});var xJ=je(FJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue\"]]);const Kf=et({arrowOffset:{type:Number,default:5}}),$J={name:\"ElPopperArrow\",inheritAttrs:!1},DJ=Le({...$J,props:Kf,setup(e,{expose:t}){const n=e,o=He(\"popper\"),{arrowOffset:l,arrowRef:a}=Ze(If,void 0);return Ve(()=>n.arrowOffset,r=>{l.value=r}),Rt(()=>{a.value=void 0}),t({arrowRef:a}),(r,u)=>(b(),C(\"span\",{ref_key:\"arrowRef\",ref:a,class:U(_(o).e(\"arrow\")),\"data-popper-arrow\":\"\"},null,2))}});var BJ=je(DJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue\"]]);const SJ=\"ElOnlyChild\",kJ=Le({name:SJ,setup(e,{slots:t,attrs:n}){var o;const l=Ze(qf),a=OX((o=l==null?void 0:l.setForwardRef)!=null?o:vt);return()=>{var r;const u=(r=t.default)==null?void 0:r.call(t,n);if(!u||u.length>1)return null;const s=Gf(u);return s?ye(Eo(s,n),[[a]]):null}}});function Gf(e){if(!e)return null;const t=e;for(const n of t){if(ct(n))switch(n.type){case on:continue;case ur:case\"svg\":return h0(n);case We:return Gf(n.children);default:return n}return h0(n)}return null}function h0(e){const t=He(\"only-child\");return d(\"span\",{class:t.e(\"content\")},[e])}const Yf=et({virtualRef:{type:Ue(Object)},virtualTriggering:Boolean,onMouseenter:Function,onMouseleave:Function,onClick:Function,onKeydown:Function,onFocus:Function,onBlur:Function,onContextmenu:Function,id:String,open:Boolean}),PJ={name:\"ElPopperTrigger\",inheritAttrs:!1},LJ=Le({...PJ,props:Yf,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=Ze(r2,void 0);NX(l);const a=R(()=>u.value?n.id:void 0),r=R(()=>{if(o&&o.value===\"tooltip\")return n.open&&n.id?n.id:void 0}),u=R(()=>{if(o&&o.value!==\"tooltip\")return o.value}),s=R(()=>u.value?`${n.open}`:void 0);let i;return at(()=>{Ve(()=>n.virtualRef,c=>{c&&(l.value=Zn(c))},{immediate:!0}),Ve(()=>l.value,(c,m)=>{i==null||i(),i=void 0,Qo(c)&&([\"onMouseenter\",\"onMouseleave\",\"onClick\",\"onKeydown\",\"onFocus\",\"onBlur\",\"onContextmenu\"].forEach(h=>{var v;const g=n[h];g&&(c.addEventListener(h.slice(2).toLowerCase(),g),(v=m==null?void 0:m.removeEventListener)==null||v.call(m,h.slice(2).toLowerCase(),g))}),i=Ve([a,r,u,s],h=>{[\"aria-controls\",\"aria-describedby\",\"aria-haspopup\",\"aria-expanded\"].forEach((v,g)=>{no(h[g])?c.removeAttribute(v):c.setAttribute(v,h[g])})},{immediate:!0})),Qo(m)&&[\"aria-controls\",\"aria-describedby\",\"aria-haspopup\",\"aria-expanded\"].forEach(h=>m.removeAttribute(h))},{immediate:!0})}),Rt(()=>{i==null||i(),i=void 0}),t({triggerRef:l}),(c,m)=>c.virtualTriggering?oe(\"v-if\",!0):(b(),ae(_(kJ),An({key:0},c.$attrs,{\"aria-controls\":_(a),\"aria-describedby\":_(r),\"aria-expanded\":_(s),\"aria-haspopup\":_(u)}),{default:p(()=>[Te(c.$slots,\"default\")]),_:3},16,[\"aria-controls\",\"aria-describedby\",\"aria-expanded\",\"aria-haspopup\"]))}});var zJ=je(LJ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue\"]]),ln=\"top\",Dn=\"bottom\",Bn=\"right\",an=\"left\",s2=\"auto\",pr=[ln,Dn,Bn,an],ea=\"start\",er=\"end\",TJ=\"clippingParents\",Xf=\"viewport\",xa=\"popper\",MJ=\"reference\",_0=pr.reduce(function(e,t){return e.concat([t+\"-\"+ea,t+\"-\"+er])},[]),Ru=[].concat(pr,[s2]).reduce(function(e,t){return e.concat([t,t+\"-\"+ea,t+\"-\"+er])},[]),VJ=\"beforeRead\",HJ=\"read\",IJ=\"afterRead\",RJ=\"beforeMain\",NJ=\"main\",OJ=\"afterMain\",UJ=\"beforeWrite\",WJ=\"write\",qJ=\"afterWrite\",jJ=[VJ,HJ,IJ,RJ,NJ,OJ,UJ,WJ,qJ];function so(e){return e?(e.nodeName||\"\").toLowerCase():null}function Wn(e){if(e==null)return window;if(e.toString()!==\"[object Window]\"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ta(e){var t=Wn(e).Element;return e instanceof t||e instanceof Element}function Fn(e){var t=Wn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function i2(e){if(typeof ShadowRoot==\"undefined\")return!1;var t=Wn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function KJ(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},l=t.attributes[n]||{},a=t.elements[n];!Fn(a)||!so(a)||(Object.assign(a.style,o),Object.keys(l).forEach(function(r){var u=l[r];u===!1?a.removeAttribute(r):a.setAttribute(r,u===!0?\"\":u)}))})}function GJ(e){var t=e.state,n={popper:{position:t.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var l=t.elements[o],a=t.attributes[o]||{},r=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),u=r.reduce(function(s,i){return s[i]=\"\",s},{});!Fn(l)||!so(l)||(Object.assign(l.style,u),Object.keys(a).forEach(function(s){l.removeAttribute(s)}))})}}var Jf={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:KJ,effect:GJ,requires:[\"computeStyles\"]};function oo(e){return e.split(\"-\")[0]}var yl=Math.max,vu=Math.min,na=Math.round;function oa(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Fn(e)&&t){var a=e.offsetHeight,r=e.offsetWidth;r>0&&(o=na(n.width)/r||1),a>0&&(l=na(n.height)/a||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function c2(e){var t=oa(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function Qf(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&i2(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function xo(e){return Wn(e).getComputedStyle(e)}function YJ(e){return[\"table\",\"td\",\"th\"].indexOf(so(e))>=0}function tl(e){return((ta(e)?e.ownerDocument:e.document)||window.document).documentElement}function Nu(e){return so(e)===\"html\"?e:e.assignedSlot||e.parentNode||(i2(e)?e.host:null)||tl(e)}function m0(e){return!Fn(e)||xo(e).position===\"fixed\"?null:e.offsetParent}function XJ(e){var t=navigator.userAgent.toLowerCase().indexOf(\"firefox\")!==-1,n=navigator.userAgent.indexOf(\"Trident\")!==-1;if(n&&Fn(e)){var o=xo(e);if(o.position===\"fixed\")return null}var l=Nu(e);for(i2(l)&&(l=l.host);Fn(l)&&[\"html\",\"body\"].indexOf(so(l))<0;){var a=xo(l);if(a.transform!==\"none\"||a.perspective!==\"none\"||a.contain===\"paint\"||[\"transform\",\"perspective\"].indexOf(a.willChange)!==-1||t&&a.willChange===\"filter\"||t&&a.filter&&a.filter!==\"none\")return l;l=l.parentNode}return null}function vr(e){for(var t=Wn(e),n=m0(e);n&&YJ(n)&&xo(n).position===\"static\";)n=m0(n);return n&&(so(n)===\"html\"||so(n)===\"body\"&&xo(n).position===\"static\")?t:n||XJ(e)||t}function d2(e){return[\"top\",\"bottom\"].indexOf(e)>=0?\"x\":\"y\"}function Ma(e,t,n){return yl(e,vu(t,n))}function JJ(e,t,n){var o=Ma(e,t,n);return o>n?n:o}function Zf(){return{top:0,right:0,bottom:0,left:0}}function e4(e){return Object.assign({},Zf(),e)}function t4(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var QJ=function(e,t){return e=typeof e==\"function\"?e(Object.assign({},t.rects,{placement:t.placement})):e,e4(typeof e!=\"number\"?e:t4(e,pr))};function ZJ(e){var t,n=e.state,o=e.name,l=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,u=oo(n.placement),s=d2(u),i=[an,Bn].indexOf(u)>=0,c=i?\"height\":\"width\";if(!(!a||!r)){var m=QJ(l.padding,n),h=c2(a),v=s===\"y\"?ln:an,g=s===\"y\"?Dn:Bn,y=n.rects.reference[c]+n.rects.reference[s]-r[s]-n.rects.popper[c],A=r[s]-n.rects.reference[s],w=vr(a),F=w?s===\"y\"?w.clientHeight||0:w.clientWidth||0:0,E=y/2-A/2,$=m[v],T=F-h[c]-m[g],B=F/2-h[c]/2+E,P=Ma($,B,T),H=s;n.modifiersData[o]=(t={},t[H]=P,t.centerOffset=P-B,t)}}function eQ(e){var t=e.state,n=e.options,o=n.element,l=o===void 0?\"[data-popper-arrow]\":o;l!=null&&(typeof l==\"string\"&&(l=t.elements.popper.querySelector(l),!l)||!Qf(t.elements.popper,l)||(t.elements.arrow=l))}var tQ={name:\"arrow\",enabled:!0,phase:\"main\",fn:ZJ,effect:eQ,requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function la(e){return e.split(\"-\")[1]}var nQ={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function oQ(e){var t=e.x,n=e.y,o=window,l=o.devicePixelRatio||1;return{x:na(t*l)/l||0,y:na(n*l)/l||0}}function g0(e){var t,n=e.popper,o=e.popperRect,l=e.placement,a=e.variation,r=e.offsets,u=e.position,s=e.gpuAcceleration,i=e.adaptive,c=e.roundOffsets,m=e.isFixed,h=r.x,v=h===void 0?0:h,g=r.y,y=g===void 0?0:g,A=typeof c==\"function\"?c({x:v,y}):{x:v,y};v=A.x,y=A.y;var w=r.hasOwnProperty(\"x\"),F=r.hasOwnProperty(\"y\"),E=an,$=ln,T=window;if(i){var B=vr(n),P=\"clientHeight\",H=\"clientWidth\";if(B===Wn(n)&&(B=tl(n),xo(B).position!==\"static\"&&u===\"absolute\"&&(P=\"scrollHeight\",H=\"scrollWidth\")),B=B,l===ln||(l===an||l===Bn)&&a===er){$=Dn;var I=m&&B===T&&T.visualViewport?T.visualViewport.height:B[P];y-=I-o.height,y*=s?1:-1}if(l===an||(l===ln||l===Dn)&&a===er){E=Bn;var j=m&&B===T&&T.visualViewport?T.visualViewport.width:B[H];v-=j-o.width,v*=s?1:-1}}var Z=Object.assign({position:u},i&&nQ),G=c===!0?oQ({x:v,y}):{x:v,y};if(v=G.x,y=G.y,s){var N;return Object.assign({},Z,(N={},N[$]=F?\"0\":\"\",N[E]=w?\"0\":\"\",N.transform=(T.devicePixelRatio||1)<=1?\"translate(\"+v+\"px, \"+y+\"px)\":\"translate3d(\"+v+\"px, \"+y+\"px, 0)\",N))}return Object.assign({},Z,(t={},t[$]=F?y+\"px\":\"\",t[E]=w?v+\"px\":\"\",t.transform=\"\",t))}function lQ(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=o===void 0?!0:o,a=n.adaptive,r=a===void 0?!0:a,u=n.roundOffsets,s=u===void 0?!0:u,i={placement:oo(t.placement),variation:la(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:t.options.strategy===\"fixed\"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,g0(Object.assign({},i,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:s})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,g0(Object.assign({},i,{offsets:t.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-placement\":t.placement})}var n4={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:lQ,data:{}},Fr={passive:!0};function aQ(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,a=l===void 0?!0:l,r=o.resize,u=r===void 0?!0:r,s=Wn(t.elements.popper),i=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&i.forEach(function(c){c.addEventListener(\"scroll\",n.update,Fr)}),u&&s.addEventListener(\"resize\",n.update,Fr),function(){a&&i.forEach(function(c){c.removeEventListener(\"scroll\",n.update,Fr)}),u&&s.removeEventListener(\"resize\",n.update,Fr)}}var o4={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:aQ,data:{}},rQ={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function Ur(e){return e.replace(/left|right|bottom|top/g,function(t){return rQ[t]})}var uQ={start:\"end\",end:\"start\"};function b0(e){return e.replace(/start|end/g,function(t){return uQ[t]})}function f2(e){var t=Wn(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function p2(e){return oa(tl(e)).left+f2(e).scrollLeft}function sQ(e){var t=Wn(e),n=tl(e),o=t.visualViewport,l=n.clientWidth,a=n.clientHeight,r=0,u=0;return o&&(l=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=o.offsetLeft,u=o.offsetTop)),{width:l,height:a,x:r+p2(e),y:u}}function iQ(e){var t,n=tl(e),o=f2(e),l=(t=e.ownerDocument)==null?void 0:t.body,a=yl(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),r=yl(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),u=-o.scrollLeft+p2(e),s=-o.scrollTop;return xo(l||n).direction===\"rtl\"&&(u+=yl(n.clientWidth,l?l.clientWidth:0)-a),{width:a,height:r,x:u,y:s}}function v2(e){var t=xo(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function l4(e){return[\"html\",\"body\",\"#document\"].indexOf(so(e))>=0?e.ownerDocument.body:Fn(e)&&v2(e)?e:l4(Nu(e))}function Va(e,t){var n;t===void 0&&(t=[]);var o=l4(e),l=o===((n=e.ownerDocument)==null?void 0:n.body),a=Wn(o),r=l?[a].concat(a.visualViewport||[],v2(o)?o:[]):o,u=t.concat(r);return l?u:u.concat(Va(Nu(r)))}function Ks(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function cQ(e){var t=oa(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function y0(e,t){return t===Xf?Ks(sQ(e)):ta(t)?cQ(t):Ks(iQ(tl(e)))}function dQ(e){var t=Va(Nu(e)),n=[\"absolute\",\"fixed\"].indexOf(xo(e).position)>=0,o=n&&Fn(e)?vr(e):e;return ta(o)?t.filter(function(l){return ta(l)&&Qf(l,o)&&so(l)!==\"body\"}):[]}function fQ(e,t,n){var o=t===\"clippingParents\"?dQ(e):[].concat(t),l=[].concat(o,[n]),a=l[0],r=l.reduce(function(u,s){var i=y0(e,s);return u.top=yl(i.top,u.top),u.right=vu(i.right,u.right),u.bottom=vu(i.bottom,u.bottom),u.left=yl(i.left,u.left),u},y0(e,a));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function a4(e){var t=e.reference,n=e.element,o=e.placement,l=o?oo(o):null,a=o?la(o):null,r=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2,s;switch(l){case ln:s={x:r,y:t.y-n.height};break;case Dn:s={x:r,y:t.y+t.height};break;case Bn:s={x:t.x+t.width,y:u};break;case an:s={x:t.x-n.width,y:u};break;default:s={x:t.x,y:t.y}}var i=l?d2(l):null;if(i!=null){var c=i===\"y\"?\"height\":\"width\";switch(a){case ea:s[i]=s[i]-(t[c]/2-n[c]/2);break;case er:s[i]=s[i]+(t[c]/2-n[c]/2);break}}return s}function tr(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=o===void 0?e.placement:o,a=n.boundary,r=a===void 0?TJ:a,u=n.rootBoundary,s=u===void 0?Xf:u,i=n.elementContext,c=i===void 0?xa:i,m=n.altBoundary,h=m===void 0?!1:m,v=n.padding,g=v===void 0?0:v,y=e4(typeof g!=\"number\"?g:t4(g,pr)),A=c===xa?MJ:xa,w=e.rects.popper,F=e.elements[h?A:c],E=fQ(ta(F)?F:F.contextElement||tl(e.elements.popper),r,s),$=oa(e.elements.reference),T=a4({reference:$,element:w,strategy:\"absolute\",placement:l}),B=Ks(Object.assign({},w,T)),P=c===xa?B:$,H={top:E.top-P.top+y.top,bottom:P.bottom-E.bottom+y.bottom,left:E.left-P.left+y.left,right:P.right-E.right+y.right},I=e.modifiersData.offset;if(c===xa&&I){var j=I[l];Object.keys(H).forEach(function(Z){var G=[Bn,Dn].indexOf(Z)>=0?1:-1,N=[ln,Dn].indexOf(Z)>=0?\"y\":\"x\";H[Z]+=j[N]*G})}return H}function pQ(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=n.boundary,a=n.rootBoundary,r=n.padding,u=n.flipVariations,s=n.allowedAutoPlacements,i=s===void 0?Ru:s,c=la(o),m=c?u?_0:_0.filter(function(g){return la(g)===c}):pr,h=m.filter(function(g){return i.indexOf(g)>=0});h.length===0&&(h=m);var v=h.reduce(function(g,y){return g[y]=tr(e,{placement:y,boundary:l,rootBoundary:a,padding:r})[oo(y)],g},{});return Object.keys(v).sort(function(g,y){return v[g]-v[y]})}function vQ(e){if(oo(e)===s2)return[];var t=Ur(e);return[b0(e),t,b0(t)]}function hQ(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,a=l===void 0?!0:l,r=n.altAxis,u=r===void 0?!0:r,s=n.fallbackPlacements,i=n.padding,c=n.boundary,m=n.rootBoundary,h=n.altBoundary,v=n.flipVariations,g=v===void 0?!0:v,y=n.allowedAutoPlacements,A=t.options.placement,w=oo(A),F=w===A,E=s||(F||!g?[Ur(A)]:vQ(A)),$=[A].concat(E).reduce(function(we,Ae){return we.concat(oo(Ae)===s2?pQ(t,{placement:Ae,boundary:c,rootBoundary:m,padding:i,flipVariations:g,allowedAutoPlacements:y}):Ae)},[]),T=t.rects.reference,B=t.rects.popper,P=new Map,H=!0,I=$[0],j=0;j<$.length;j++){var Z=$[j],G=oo(Z),N=la(Z)===ea,Y=[ln,Dn].indexOf(G)>=0,ge=Y?\"width\":\"height\",fe=tr(t,{placement:Z,boundary:c,rootBoundary:m,altBoundary:h,padding:i}),Ee=Y?N?Bn:an:N?Dn:ln;T[ge]>B[ge]&&(Ee=Ur(Ee));var ne=Ur(Ee),ee=[];if(a&&ee.push(fe[G]<=0),u&&ee.push(fe[Ee]<=0,fe[ne]<=0),ee.every(function(we){return we})){I=Z,H=!1;break}P.set(Z,ee)}if(H)for(var xe=g?3:1,$e=function(we){var Ae=$.find(function(ke){var ve=P.get(ke);if(ve)return ve.slice(0,we).every(function(ze){return ze})});if(Ae)return I=Ae,\"break\"},x=xe;x>0;x--){var W=$e(x);if(W===\"break\")break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}}var _Q={name:\"flip\",enabled:!0,phase:\"main\",fn:hQ,requiresIfExists:[\"offset\"],data:{_skip:!1}};function w0(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function C0(e){return[ln,Bn,Dn,an].some(function(t){return e[t]>=0})}function mQ(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,a=t.modifiersData.preventOverflow,r=tr(t,{elementContext:\"reference\"}),u=tr(t,{altBoundary:!0}),s=w0(r,o),i=w0(u,l,a),c=C0(s),m=C0(i);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:i,isReferenceHidden:c,hasPopperEscaped:m},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":c,\"data-popper-escaped\":m})}var gQ={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:mQ};function bQ(e,t,n){var o=oo(e),l=[an,ln].indexOf(o)>=0?-1:1,a=typeof n==\"function\"?n(Object.assign({},t,{placement:e})):n,r=a[0],u=a[1];return r=r||0,u=(u||0)*l,[an,Bn].indexOf(o)>=0?{x:u,y:r}:{x:r,y:u}}function yQ(e){var t=e.state,n=e.options,o=e.name,l=n.offset,a=l===void 0?[0,0]:l,r=Ru.reduce(function(c,m){return c[m]=bQ(m,t.rects,a),c},{}),u=r[t.placement],s=u.x,i=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=i),t.modifiersData[o]=r}var wQ={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:yQ};function CQ(e){var t=e.state,n=e.name;t.modifiersData[n]=a4({reference:t.rects.reference,element:t.rects.popper,strategy:\"absolute\",placement:t.placement})}var r4={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:CQ,data:{}};function EQ(e){return e===\"x\"?\"y\":\"x\"}function AQ(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,a=l===void 0?!0:l,r=n.altAxis,u=r===void 0?!1:r,s=n.boundary,i=n.rootBoundary,c=n.altBoundary,m=n.padding,h=n.tether,v=h===void 0?!0:h,g=n.tetherOffset,y=g===void 0?0:g,A=tr(t,{boundary:s,rootBoundary:i,padding:m,altBoundary:c}),w=oo(t.placement),F=la(t.placement),E=!F,$=d2(w),T=EQ($),B=t.modifiersData.popperOffsets,P=t.rects.reference,H=t.rects.popper,I=typeof y==\"function\"?y(Object.assign({},t.rects,{placement:t.placement})):y,j=typeof I==\"number\"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),Z=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,G={x:0,y:0};if(B){if(a){var N,Y=$===\"y\"?ln:an,ge=$===\"y\"?Dn:Bn,fe=$===\"y\"?\"height\":\"width\",Ee=B[$],ne=Ee+A[Y],ee=Ee-A[ge],xe=v?-H[fe]/2:0,$e=F===ea?P[fe]:H[fe],x=F===ea?-H[fe]:-P[fe],W=t.elements.arrow,we=v&&W?c2(W):{width:0,height:0},Ae=t.modifiersData[\"arrow#persistent\"]?t.modifiersData[\"arrow#persistent\"].padding:Zf(),ke=Ae[Y],ve=Ae[ge],ze=Ma(0,P[fe],we[fe]),Ke=E?P[fe]/2-xe-ze-ke-j.mainAxis:$e-ze-ke-j.mainAxis,se=E?-P[fe]/2+xe+ze+ve+j.mainAxis:x+ze+ve+j.mainAxis,le=t.elements.arrow&&vr(t.elements.arrow),L=le?$===\"y\"?le.clientTop||0:le.clientLeft||0:0,S=(N=Z==null?void 0:Z[$])!=null?N:0,V=Ee+Ke-S-L,O=Ee+se-S,te=Ma(v?vu(ne,V):ne,Ee,v?yl(ee,O):ee);B[$]=te,G[$]=te-Ee}if(u){var _e,pe=$===\"x\"?ln:an,Ce=$===\"x\"?Dn:Bn,be=B[T],re=T===\"y\"?\"height\":\"width\",me=be+A[pe],Re=be-A[Ce],Q=[ln,an].indexOf(w)!==-1,Pe=(_e=Z==null?void 0:Z[T])!=null?_e:0,Ge=Q?me:be-P[re]-H[re]-Pe+j.altAxis,Xe=Q?be+P[re]+H[re]-Pe-j.altAxis:Re,he=v&&Q?JJ(Ge,be,Xe):Ma(v?Ge:me,be,v?Xe:Re);B[T]=he,G[T]=he-be}t.modifiersData[o]=G}}var FQ={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:AQ,requiresIfExists:[\"offset\"]};function xQ(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function $Q(e){return e===Wn(e)||!Fn(e)?f2(e):xQ(e)}function DQ(e){var t=e.getBoundingClientRect(),n=na(t.width)/e.offsetWidth||1,o=na(t.height)/e.offsetHeight||1;return n!==1||o!==1}function BQ(e,t,n){n===void 0&&(n=!1);var o=Fn(t),l=Fn(t)&&DQ(t),a=tl(t),r=oa(e,l),u={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(o||!o&&!n)&&((so(t)!==\"body\"||v2(a))&&(u=$Q(t)),Fn(t)?(s=oa(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):a&&(s.x=p2(a))),{x:r.left+u.scrollLeft-s.x,y:r.top+u.scrollTop-s.y,width:r.width,height:r.height}}function SQ(e){var t=new Map,n=new Set,o=[];e.forEach(function(a){t.set(a.name,a)});function l(a){n.add(a.name);var r=[].concat(a.requires||[],a.requiresIfExists||[]);r.forEach(function(u){if(!n.has(u)){var s=t.get(u);s&&l(s)}}),o.push(a)}return e.forEach(function(a){n.has(a.name)||l(a)}),o}function kQ(e){var t=SQ(e);return jJ.reduce(function(n,o){return n.concat(t.filter(function(l){return l.phase===o}))},[])}function PQ(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function LQ(e){var t=e.reduce(function(n,o){var l=n[o.name];return n[o.name]=l?Object.assign({},l,o,{options:Object.assign({},l.options,o.options),data:Object.assign({},l.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var E0={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function A0(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(o){return!(o&&typeof o.getBoundingClientRect==\"function\")})}function h2(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,o=n===void 0?[]:n,l=t.defaultOptions,a=l===void 0?E0:l;return function(r,u,s){s===void 0&&(s=a);var i={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},E0,a),modifiersData:{},elements:{reference:r,popper:u},attributes:{},styles:{}},c=[],m=!1,h={state:i,setOptions:function(y){var A=typeof y==\"function\"?y(i.options):y;g(),i.options=Object.assign({},a,i.options,A),i.scrollParents={reference:ta(r)?Va(r):r.contextElement?Va(r.contextElement):[],popper:Va(u)};var w=kQ(LQ([].concat(o,i.options.modifiers)));return i.orderedModifiers=w.filter(function(F){return F.enabled}),v(),h.update()},forceUpdate:function(){if(!m){var y=i.elements,A=y.reference,w=y.popper;if(A0(A,w)){i.rects={reference:BQ(A,vr(w),i.options.strategy===\"fixed\"),popper:c2(w)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(H){return i.modifiersData[H.name]=Object.assign({},H.data)});for(var F=0;F<i.orderedModifiers.length;F++){if(i.reset===!0){i.reset=!1,F=-1;continue}var E=i.orderedModifiers[F],$=E.fn,T=E.options,B=T===void 0?{}:T,P=E.name;typeof $==\"function\"&&(i=$({state:i,options:B,name:P,instance:h})||i)}}}},update:PQ(function(){return new Promise(function(y){h.forceUpdate(),y(i)})}),destroy:function(){g(),m=!0}};if(!A0(r,u))return h;h.setOptions(s).then(function(y){!m&&s.onFirstUpdate&&s.onFirstUpdate(y)});function v(){i.orderedModifiers.forEach(function(y){var A=y.name,w=y.options,F=w===void 0?{}:w,E=y.effect;if(typeof E==\"function\"){var $=E({state:i,name:A,instance:h,options:F}),T=function(){};c.push($||T)}})}function g(){c.forEach(function(y){return y()}),c=[]}return h}}h2();var zQ=[o4,r4,n4,Jf];h2({defaultModifiers:zQ});var TQ=[o4,r4,n4,Jf,wQ,_Q,FQ,tQ,gQ],u4=h2({defaultModifiers:TQ});const s4=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const l=o.tagName===\"INPUT\"&&o.type===\"hidden\";return o.disabled||o.hidden||l?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},F0=(e,t)=>{for(const n of e)if(!MQ(n,t))return n},MQ=(e,t)=>{if(getComputedStyle(e).visibility===\"hidden\")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display===\"none\")return!0;e=e.parentElement}return!1},VQ=e=>{const t=s4(e),n=F0(t,e),o=F0(t.reverse(),e);return[n,o]},HQ=e=>e instanceof HTMLInputElement&&\"select\"in e,Ro=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&HQ(e)&&t&&e.select()}};function x0(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const IQ=()=>{let e=[];return{push:o=>{const l=e[0];l&&o!==l&&l.pause(),e=x0(e,o),e.unshift(o)},remove:o=>{var l,a;e=x0(e,o),(a=(l=e[0])==null?void 0:l.resume)==null||a.call(l)}}},RQ=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(Ro(o,t),document.activeElement!==n)return},$0=IQ(),is=\"focus-trap.focus-after-trapped\",cs=\"focus-trap.focus-after-released\",D0={cancelable:!0,bubbles:!1},B0=\"focusAfterTrapped\",S0=\"focusAfterReleased\",i4=Symbol(\"elFocusTrap\"),NQ=Le({name:\"ElFocusTrap\",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:\"first\"}},emits:[B0,S0,\"focusin\",\"focusout\",\"focusout-prevented\",\"release-requested\"],setup(e,{emit:t}){const n=z();let o,l;TX(v=>{e.trapped&&!a.paused&&t(\"release-requested\",v)});const a={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},r=v=>{if(!e.loop&&!e.trapped||a.paused)return;const{key:g,altKey:y,ctrlKey:A,metaKey:w,currentTarget:F,shiftKey:E}=v,{loop:$}=e,T=g===Pt.tab&&!y&&!A&&!w,B=document.activeElement;if(T&&B){const P=F,[H,I]=VQ(P);H&&I?!E&&B===I?(v.preventDefault(),$&&Ro(H,!0),t(\"focusout-prevented\")):E&&[H,P].includes(B)&&(v.preventDefault(),$&&Ro(I,!0),t(\"focusout-prevented\")):B===P&&(v.preventDefault(),t(\"focusout-prevented\"))}};$t(i4,{focusTrapRef:n,onKeydown:r}),Ve(()=>e.focusTrapEl,v=>{v&&(n.value=v)},{immediate:!0}),Ve([n],([v],[g])=>{v&&(v.addEventListener(\"keydown\",r),v.addEventListener(\"focusin\",i),v.addEventListener(\"focusout\",c)),g&&(g.removeEventListener(\"keydown\",r),g.removeEventListener(\"focusin\",i),g.removeEventListener(\"focusout\",c))});const u=v=>{t(B0,v)},s=v=>t(S0,v),i=v=>{const g=_(n);if(!g)return;const y=v.target,A=y&&g.contains(y);A&&t(\"focusin\",v),!a.paused&&e.trapped&&(A?l=y:Ro(l,!0))},c=v=>{const g=_(n);if(!(a.paused||!g))if(e.trapped){const y=v.relatedTarget;!no(y)&&!g.contains(y)&&setTimeout(()=>{!a.paused&&e.trapped&&Ro(l,!0)},0)}else{const y=v.target;y&&g.contains(y)||t(\"focusout\",v)}};async function m(){await rt();const v=_(n);if(v){$0.push(a);const g=document.activeElement;if(o=g,!v.contains(g)){const A=new Event(is,D0);v.addEventListener(is,u),v.dispatchEvent(A),A.defaultPrevented||rt(()=>{let w=e.focusStartEl;tt(w)||(Ro(w),document.activeElement!==w&&(w=\"first\")),w===\"first\"&&RQ(s4(v),!0),(document.activeElement===g||w===\"container\")&&Ro(v)})}}}function h(){const v=_(n);if(v){v.removeEventListener(is,u);const g=new Event(cs,D0);v.addEventListener(cs,s),v.dispatchEvent(g),g.defaultPrevented||Ro(o!=null?o:document.body,!0),v.removeEventListener(cs,u),$0.remove(a)}}return at(()=>{e.trapped&&m(),Ve(()=>e.trapped,v=>{v?m():h()})}),Rt(()=>{e.trapped&&h()}),{onKeydown:r}}});function OQ(e,t,n,o,l,a){return Te(e.$slots,\"default\",{handleKeydown:e.onKeydown})}var _2=je(NQ,[[\"render\",OQ],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue\"]]);const UQ=[\"fixed\",\"absolute\"],WQ=et({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Ue(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Ru,default:\"bottom\"},popperOptions:{type:Ue(Object),default:()=>({})},strategy:{type:String,values:UQ,default:\"absolute\"}}),c4=et({...WQ,id:String,style:{type:Ue([String,Array,Object])},className:{type:Ue([String,Array,Object])},effect:{type:String,default:\"dark\"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Ue([String,Array,Object])},popperStyle:{type:Ue([String,Array,Object])},referenceEl:{type:Ue(Object)},triggerTargetEl:{type:Ue(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),qQ=[\"mouseenter\",\"mouseleave\",\"focus\",\"blur\",\"close\"],k0=(e,t)=>{const{placement:n,strategy:o,popperOptions:l}=e,a={placement:n,strategy:o,...l,modifiers:KQ(e)};return GQ(a,t),YQ(a,l==null?void 0:l.modifiers),a},jQ=e=>{if(!!_t)return Zn(e)};function KQ(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:\"offset\",options:{offset:[0,t!=null?t:12]}},{name:\"preventOverflow\",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:\"flip\",options:{padding:5,fallbackPlacements:o}},{name:\"computeStyles\",options:{gpuAcceleration:n,adaptive:n}}]}function GQ(e,{arrowEl:t,arrowOffset:n}){e.modifiers.push({name:\"arrow\",options:{element:t,padding:n!=null?n:5}})}function YQ(e,t){t&&(e.modifiers=[...e.modifiers,...t!=null?t:[]])}const XQ={name:\"ElPopperContent\"},JQ=Le({...XQ,props:c4,emits:qQ,setup(e,{expose:t,emit:n}){const o=e,{popperInstanceRef:l,contentRef:a,triggerRef:r,role:u}=Ze(r2,void 0),s=Ze(El,void 0),{nextZIndex:i}=kl(),c=He(\"popper\"),m=z(),h=z(\"first\"),v=z(),g=z();$t(If,{arrowRef:v,arrowOffset:g}),s&&(s.addInputId||s.removeInputId)&&$t(El,{...s,addInputId:vt,removeInputId:vt});const y=z(o.zIndex||i()),A=z(!1);let w;const F=R(()=>jQ(o.referenceEl)||_(r)),E=R(()=>[{zIndex:_(y)},o.popperStyle]),$=R(()=>[c.b(),c.is(\"pure\",o.pure),c.is(o.effect),o.popperClass]),T=R(()=>u&&u.value===\"dialog\"?\"false\":void 0),B=({referenceEl:Y,popperContentEl:ge,arrowEl:fe})=>{const Ee=k0(o,{arrowEl:fe,arrowOffset:_(g)});return u4(Y,ge,Ee)},P=(Y=!0)=>{var ge;(ge=_(l))==null||ge.update(),Y&&(y.value=o.zIndex||i())},H=()=>{var Y,ge;const fe={name:\"eventListeners\",enabled:o.visible};(ge=(Y=_(l))==null?void 0:Y.setOptions)==null||ge.call(Y,Ee=>({...Ee,modifiers:[...Ee.modifiers||[],fe]})),P(!1),o.visible&&o.focusOnShow?A.value=!0:o.visible===!1&&(A.value=!1)},I=()=>{n(\"focus\")},j=()=>{h.value=\"first\",n(\"blur\")},Z=Y=>{var ge;o.visible&&!A.value&&(Y.target&&(h.value=Y.target),A.value=!0,Y.relatedTarget&&((ge=Y.relatedTarget)==null||ge.focus()))},G=()=>{o.trapping||(A.value=!1)},N=()=>{A.value=!1,n(\"close\")};return at(()=>{let Y;Ve(F,ge=>{var fe;Y==null||Y();const Ee=_(l);if((fe=Ee==null?void 0:Ee.destroy)==null||fe.call(Ee),ge){const ne=_(m);a.value=ne,l.value=B({referenceEl:ge,popperContentEl:ne,arrowEl:_(v)}),Y=Ve(()=>ge.getBoundingClientRect(),()=>P(),{immediate:!0})}else l.value=void 0},{immediate:!0}),Ve(()=>o.triggerTargetEl,(ge,fe)=>{w==null||w(),w=void 0;const Ee=_(ge||m.value),ne=_(fe||m.value);if(Qo(Ee)){const{ariaLabel:ee,id:xe}=On(o);w=Ve([u,ee,T,xe],$e=>{[\"role\",\"aria-label\",\"aria-modal\",\"id\"].forEach((x,W)=>{no($e[W])?Ee.removeAttribute(x):Ee.setAttribute(x,$e[W])})},{immediate:!0})}ne!==Ee&&Qo(ne)&&[\"role\",\"aria-label\",\"aria-modal\",\"id\"].forEach(ee=>{ne.removeAttribute(ee)})},{immediate:!0}),Ve(()=>o.visible,H,{immediate:!0}),Ve(()=>k0(o,{arrowEl:_(v),arrowOffset:_(g)}),ge=>{var fe;return(fe=l.value)==null?void 0:fe.setOptions(ge)})}),Rt(()=>{w==null||w(),w=void 0}),t({popperContentRef:m,popperInstanceRef:l,updatePopper:P,contentStyle:E}),(Y,ge)=>(b(),C(\"div\",{ref_key:\"popperContentRef\",ref:m,style:nt(_(E)),class:U(_($)),tabindex:\"-1\",onMouseenter:ge[0]||(ge[0]=fe=>Y.$emit(\"mouseenter\",fe)),onMouseleave:ge[1]||(ge[1]=fe=>Y.$emit(\"mouseleave\",fe))},[d(_(_2),{trapped:A.value,\"trap-on-focus-in\":!0,\"focus-trap-el\":m.value,\"focus-start-el\":h.value,onFocusAfterTrapped:I,onFocusAfterReleased:j,onFocusin:Z,onFocusoutPrevented:G,onReleaseRequested:N},{default:p(()=>[Te(Y.$slots,\"default\")]),_:3},8,[\"trapped\",\"focus-trap-el\",\"focus-start-el\"])],38))}});var QQ=je(JQ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue\"]]);const ZQ=Et(xJ),eZ=He(\"tooltip\"),m2=et({...IX,...c4,appendTo:{type:Ue([String,Object]),default:Wf},content:{type:String,default:\"\"},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Ue(Boolean),default:null},transition:{type:String,default:`${eZ.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),d4=et({...Yf,disabled:Boolean,trigger:{type:Ue([String,Array]),default:\"hover\"},triggerKeys:{type:Ue(Array),default:()=>[Pt.enter,Pt.space]}}),tZ=et({openDelay:{type:Number},visibleArrow:{type:Boolean,default:void 0},hideAfter:{type:Number,default:200},showArrow:{type:Boolean,default:!0}}),g2=Symbol(\"elTooltip\"),nZ=Le({name:\"ElTooltipContent\",components:{ElPopperContent:QQ},inheritAttrs:!1,props:m2,setup(e){const t=z(null),n=z(!1),o=z(!1),l=z(!1),a=z(!1),{controlled:r,id:u,open:s,trigger:i,onClose:c,onOpen:m,onShow:h,onHide:v,onBeforeShow:g,onBeforeHide:y}=Ze(g2,void 0),A=R(()=>e.persistent);Rt(()=>{a.value=!0});const w=R(()=>_(A)?!0:_(s)),F=R(()=>e.disabled?!1:_(s)),E=R(()=>{var Y;return(Y=e.style)!=null?Y:{}}),$=R(()=>!_(s)),T=()=>{v()},B=()=>{if(_(r))return!0},P=_o(B,()=>{e.enterable&&_(i)===\"hover\"&&m()}),H=_o(B,()=>{_(i)===\"hover\"&&c()}),I=()=>{var Y,ge;(ge=(Y=t.value)==null?void 0:Y.updatePopper)==null||ge.call(Y),g==null||g()},j=()=>{y==null||y()},Z=()=>{h(),N=Tm(R(()=>{var Y;return(Y=t.value)==null?void 0:Y.popperContentRef}),()=>{if(_(r))return;_(i)!==\"hover\"&&c()})},G=()=>{e.virtualTriggering||c()};let N;return Ve(()=>_(s),Y=>{Y||N==null||N()},{flush:\"post\"}),{ariaHidden:$,entering:o,leaving:l,id:u,intermediateOpen:n,contentStyle:E,contentRef:t,destroyed:a,shouldRender:w,shouldShow:F,onClose:c,open:s,onAfterShow:Z,onBeforeEnter:I,onBeforeLeave:j,onContentEnter:P,onContentLeave:H,onTransitionLeave:T,onBlur:G}}});function oZ(e,t,n,o,l,a){const r=Qe(\"el-popper-content\");return b(),ae(g1,{disabled:!e.teleported,to:e.appendTo},[d(Zt,{name:e.transition,onAfterLeave:e.onTransitionLeave,onBeforeEnter:e.onBeforeEnter,onAfterEnter:e.onAfterShow,onBeforeLeave:e.onBeforeLeave},{default:p(()=>[e.shouldRender?ye((b(),ae(r,An({key:0,id:e.id,ref:\"contentRef\"},e.$attrs,{\"aria-label\":e.ariaLabel,\"aria-hidden\":e.ariaHidden,\"boundaries-padding\":e.boundariesPadding,\"fallback-placements\":e.fallbackPlacements,\"gpu-acceleration\":e.gpuAcceleration,offset:e.offset,placement:e.placement,\"popper-options\":e.popperOptions,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,\"popper-class\":e.popperClass,\"popper-style\":[e.popperStyle,e.contentStyle],\"reference-el\":e.referenceEl,\"trigger-target-el\":e.triggerTargetEl,visible:e.shouldShow,\"z-index\":e.zIndex,onMouseenter:e.onContentEnter,onMouseleave:e.onContentLeave,onBlur:e.onBlur,onClose:e.onClose}),{default:p(()=>[oe(\" Workaround bug #6378 \"),e.destroyed?oe(\"v-if\",!0):Te(e.$slots,\"default\",{key:0})]),_:3},16,[\"id\",\"aria-label\",\"aria-hidden\",\"boundaries-padding\",\"fallback-placements\",\"gpu-acceleration\",\"offset\",\"placement\",\"popper-options\",\"strategy\",\"effect\",\"enterable\",\"pure\",\"popper-class\",\"popper-style\",\"reference-el\",\"trigger-target-el\",\"visible\",\"z-index\",\"onMouseenter\",\"onMouseleave\",\"onBlur\",\"onClose\"])),[[Be,e.shouldShow]]):oe(\"v-if\",!0)]),_:3},8,[\"name\",\"onAfterLeave\",\"onBeforeEnter\",\"onAfterEnter\",\"onBeforeLeave\"])],8,[\"disabled\",\"to\"])}var lZ=je(nZ,[[\"render\",oZ],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue\"]]);const aZ=(e,t)=>Ye(e)?e.includes(t):e===t,Ll=(e,t,n)=>o=>{aZ(_(e),t)&&n(o)},rZ=Le({name:\"ElTooltipTrigger\",components:{ElPopperTrigger:zJ},props:d4,setup(e){const t=He(\"tooltip\"),{controlled:n,id:o,open:l,onOpen:a,onClose:r,onToggle:u}=Ze(g2,void 0),s=z(null),i=()=>{if(_(n)||e.disabled)return!0},c=$n(e,\"trigger\"),m=_o(i,Ll(c,\"hover\",a)),h=_o(i,Ll(c,\"hover\",r)),v=_o(i,Ll(c,\"click\",F=>{F.button===0&&u(F)})),g=_o(i,Ll(c,\"focus\",a)),y=_o(i,Ll(c,\"focus\",r)),A=_o(i,Ll(c,\"contextmenu\",F=>{F.preventDefault(),u(F)})),w=_o(i,F=>{const{code:E}=F;e.triggerKeys.includes(E)&&(F.preventDefault(),u(F))});return{onBlur:y,onContextMenu:A,onFocus:g,onMouseenter:m,onMouseleave:h,onClick:v,onKeydown:w,open:l,id:o,triggerRef:s,ns:t}}});function uZ(e,t,n,o,l,a){const r=Qe(\"el-popper-trigger\");return b(),ae(r,{id:e.id,\"virtual-ref\":e.virtualRef,open:e.open,\"virtual-triggering\":e.virtualTriggering,class:U(e.ns.e(\"trigger\")),onBlur:e.onBlur,onClick:e.onClick,onContextmenu:e.onContextMenu,onFocus:e.onFocus,onMouseenter:e.onMouseenter,onMouseleave:e.onMouseleave,onKeydown:e.onKeydown},{default:p(()=>[Te(e.$slots,\"default\")]),_:3},8,[\"id\",\"virtual-ref\",\"open\",\"virtual-triggering\",\"class\",\"onBlur\",\"onClick\",\"onContextmenu\",\"onFocus\",\"onMouseenter\",\"onMouseleave\",\"onKeydown\"])}var sZ=je(rZ,[[\"render\",uZ],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue\"]]);const{useModelToggleProps:iZ,useModelToggle:cZ,useModelToggleEmits:dZ}=PX(\"visible\"),fZ=Le({name:\"ElTooltip\",components:{ElPopper:ZQ,ElPopperArrow:BJ,ElTooltipContent:lZ,ElTooltipTrigger:sZ},props:{...jf,...iZ,...m2,...d4,...Kf,...tZ},emits:[...dZ,\"before-show\",\"before-hide\",\"show\",\"hide\",\"open\",\"close\"],setup(e,{emit:t}){HX();const n=R(()=>(Ko(e.openDelay),e.openDelay||e.showAfter)),o=R(()=>(Ko(e.visibleArrow),Gt(e.visibleArrow)?e.visibleArrow:e.showArrow)),l=Zo(),a=z(null),r=z(null),u=()=>{var w;const F=_(a);F&&((w=F.popperInstanceRef)==null||w.update())},s=z(!1),i=z(void 0),{show:c,hide:m,hasUpdateHandler:h}=cZ({indicator:s,toggleReason:i}),{onOpen:v,onClose:g}=RX({showAfter:n,hideAfter:$n(e,\"hideAfter\"),open:c,close:m}),y=R(()=>Gt(e.visible)&&!h.value);$t(g2,{controlled:y,id:l,open:$i(s),trigger:$n(e,\"trigger\"),onOpen:w=>{v(w)},onClose:w=>{g(w)},onToggle:w=>{_(s)?g(w):v(w)},onShow:()=>{t(\"show\",i.value)},onHide:()=>{t(\"hide\",i.value)},onBeforeShow:()=>{t(\"before-show\",i.value)},onBeforeHide:()=>{t(\"before-hide\",i.value)},updatePopper:u}),Ve(()=>e.disabled,w=>{w&&s.value&&(s.value=!1)});const A=()=>{var w,F;const E=(F=(w=r.value)==null?void 0:w.contentRef)==null?void 0:F.popperContentRef;return E&&E.contains(document.activeElement)};return u1(()=>s.value&&m()),{compatShowAfter:n,compatShowArrow:o,popperRef:a,contentRef:r,open:s,hide:m,isFocusInsideContent:A,updatePopper:u,onOpen:v,onClose:g}}}),pZ=[\"innerHTML\"],vZ={key:1};function hZ(e,t,n,o,l,a){const r=Qe(\"el-tooltip-trigger\"),u=Qe(\"el-popper-arrow\"),s=Qe(\"el-tooltip-content\"),i=Qe(\"el-popper\");return b(),ae(i,{ref:\"popperRef\",role:e.role},{default:p(()=>[d(r,{disabled:e.disabled,trigger:e.trigger,\"trigger-keys\":e.triggerKeys,\"virtual-ref\":e.virtualRef,\"virtual-triggering\":e.virtualTriggering},{default:p(()=>[e.$slots.default?Te(e.$slots,\"default\",{key:0}):oe(\"v-if\",!0)]),_:3},8,[\"disabled\",\"trigger\",\"trigger-keys\",\"virtual-ref\",\"virtual-triggering\"]),d(s,{ref:\"contentRef\",\"aria-label\":e.ariaLabel,\"boundaries-padding\":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,\"fallback-placements\":e.fallbackPlacements,\"hide-after\":e.hideAfter,\"gpu-acceleration\":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,\"popper-class\":e.popperClass,\"popper-style\":e.popperStyle,placement:e.placement,\"popper-options\":e.popperOptions,pure:e.pure,\"raw-content\":e.rawContent,\"reference-el\":e.referenceEl,\"trigger-target-el\":e.triggerTargetEl,\"show-after\":e.compatShowAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,\"virtual-triggering\":e.virtualTriggering,\"z-index\":e.zIndex,\"append-to\":e.appendTo},{default:p(()=>[Te(e.$slots,\"content\",{},()=>[e.rawContent?(b(),C(\"span\",{key:0,innerHTML:e.content},null,8,pZ)):(b(),C(\"span\",vZ,ce(e.content),1))]),e.compatShowArrow?(b(),ae(u,{key:0,\"arrow-offset\":e.arrowOffset},null,8,[\"arrow-offset\"])):oe(\"v-if\",!0)]),_:3},8,[\"aria-label\",\"boundaries-padding\",\"content\",\"disabled\",\"effect\",\"enterable\",\"fallback-placements\",\"hide-after\",\"gpu-acceleration\",\"offset\",\"persistent\",\"popper-class\",\"popper-style\",\"placement\",\"popper-options\",\"pure\",\"raw-content\",\"reference-el\",\"trigger-target-el\",\"show-after\",\"strategy\",\"teleported\",\"transition\",\"virtual-triggering\",\"z-index\",\"append-to\"])]),_:3},8,[\"role\"])}var _Z=je(fZ,[[\"render\",hZ],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue\"]]);const Sn=Et(_Z),mZ=et({value:{type:[String,Number],default:\"\"},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:[\"primary\",\"success\",\"warning\",\"info\",\"danger\"],default:\"danger\"}}),gZ=[\"textContent\"],bZ={name:\"ElBadge\"},yZ=Le({...bZ,props:mZ,setup(e,{expose:t}){const n=e,o=He(\"badge\"),l=R(()=>n.isDot?\"\":mt(n.value)&&mt(n.max)?n.max<n.value?`${n.max}+`:`${n.value}`:`${n.value}`);return t({content:l}),(a,r)=>(b(),C(\"div\",{class:U(_(o).b())},[Te(a.$slots,\"default\"),d(Zt,{name:`${_(o).namespace.value}-zoom-in-center`,persisted:\"\"},{default:p(()=>[ye(f(\"sup\",{class:U([_(o).e(\"content\"),_(o).em(\"content\",a.type),_(o).is(\"fixed\",!!a.$slots.default),_(o).is(\"dot\",a.isDot)]),textContent:ce(_(l))},null,10,gZ),[[Be,!a.hidden&&(_(l)||a.isDot)]])]),_:1},8,[\"name\"])],2))}});var wZ=je(yZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue\"]]);const CZ=Et(wZ),EZ=[\"default\",\"primary\",\"success\",\"warning\",\"info\",\"danger\",\"text\",\"\"],AZ=[\"button\",\"submit\",\"reset\"],Gs=et({size:zo,disabled:Boolean,type:{type:String,values:EZ,default:\"\"},icon:{type:Lt},nativeType:{type:String,values:AZ,default:\"button\"},loading:Boolean,loadingIcon:{type:Lt,default:()=>cr},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),FZ={click:e=>e instanceof MouseEvent};function Ut(e,t){xZ(e)&&(e=\"100%\");var n=$Z(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function xr(e){return Math.min(1,Math.max(0,e))}function xZ(e){return typeof e==\"string\"&&e.indexOf(\".\")!==-1&&parseFloat(e)===1}function $Z(e){return typeof e==\"string\"&&e.indexOf(\"%\")!==-1}function f4(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function $r(e){return e<=1?\"\".concat(Number(e)*100,\"%\"):e}function pl(e){return e.length===1?\"0\"+e:String(e)}function DZ(e,t,n){return{r:Ut(e,255)*255,g:Ut(t,255)*255,b:Ut(n,255)*255}}function P0(e,t,n){e=Ut(e,255),t=Ut(t,255),n=Ut(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),a=0,r=0,u=(o+l)/2;if(o===l)r=0,a=0;else{var s=o-l;switch(r=u>.5?s/(2-o-l):s/(o+l),o){case e:a=(t-n)/s+(t<n?6:0);break;case t:a=(n-e)/s+2;break;case n:a=(e-t)/s+4;break}a/=6}return{h:a,s:r,l:u}}function ds(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function BZ(e,t,n){var o,l,a;if(e=Ut(e,360),t=Ut(t,100),n=Ut(n,100),t===0)l=n,a=n,o=n;else{var r=n<.5?n*(1+t):n+t-n*t,u=2*n-r;o=ds(u,r,e+1/3),l=ds(u,r,e),a=ds(u,r,e-1/3)}return{r:o*255,g:l*255,b:a*255}}function L0(e,t,n){e=Ut(e,255),t=Ut(t,255),n=Ut(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),a=0,r=o,u=o-l,s=o===0?0:u/o;if(o===l)a=0;else{switch(o){case e:a=(t-n)/u+(t<n?6:0);break;case t:a=(n-e)/u+2;break;case n:a=(e-t)/u+4;break}a/=6}return{h:a,s,v:r}}function SZ(e,t,n){e=Ut(e,360)*6,t=Ut(t,100),n=Ut(n,100);var o=Math.floor(e),l=e-o,a=n*(1-t),r=n*(1-l*t),u=n*(1-(1-l)*t),s=o%6,i=[n,r,a,a,u,n][s],c=[u,n,n,r,a,a][s],m=[a,a,u,n,n,r][s];return{r:i*255,g:c*255,b:m*255}}function z0(e,t,n,o){var l=[pl(Math.round(e).toString(16)),pl(Math.round(t).toString(16)),pl(Math.round(n).toString(16))];return o&&l[0].startsWith(l[0].charAt(1))&&l[1].startsWith(l[1].charAt(1))&&l[2].startsWith(l[2].charAt(1))?l[0].charAt(0)+l[1].charAt(0)+l[2].charAt(0):l.join(\"\")}function kZ(e,t,n,o,l){var a=[pl(Math.round(e).toString(16)),pl(Math.round(t).toString(16)),pl(Math.round(n).toString(16)),pl(PZ(o))];return l&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join(\"\")}function PZ(e){return Math.round(parseFloat(e)*255).toString(16)}function T0(e){return dn(e)/255}function dn(e){return parseInt(e,16)}function LZ(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var Ys={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",goldenrod:\"#daa520\",gold:\"#ffd700\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavenderblush:\"#fff0f5\",lavender:\"#e6e6fa\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",rebeccapurple:\"#663399\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};function zZ(e){var t={r:0,g:0,b:0},n=1,o=null,l=null,a=null,r=!1,u=!1;return typeof e==\"string\"&&(e=VZ(e)),typeof e==\"object\"&&(co(e.r)&&co(e.g)&&co(e.b)?(t=DZ(e.r,e.g,e.b),r=!0,u=String(e.r).substr(-1)===\"%\"?\"prgb\":\"rgb\"):co(e.h)&&co(e.s)&&co(e.v)?(o=$r(e.s),l=$r(e.v),t=SZ(e.h,o,l),r=!0,u=\"hsv\"):co(e.h)&&co(e.s)&&co(e.l)&&(o=$r(e.s),a=$r(e.l),t=BZ(e.h,o,a),r=!0,u=\"hsl\"),Object.prototype.hasOwnProperty.call(e,\"a\")&&(n=e.a)),n=f4(n),{ok:r,format:e.format||u,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var TZ=\"[-\\\\+]?\\\\d+%?\",MZ=\"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\",Go=\"(?:\".concat(MZ,\")|(?:\").concat(TZ,\")\"),fs=\"[\\\\s|\\\\(]+(\".concat(Go,\")[,|\\\\s]+(\").concat(Go,\")[,|\\\\s]+(\").concat(Go,\")\\\\s*\\\\)?\"),ps=\"[\\\\s|\\\\(]+(\".concat(Go,\")[,|\\\\s]+(\").concat(Go,\")[,|\\\\s]+(\").concat(Go,\")[,|\\\\s]+(\").concat(Go,\")\\\\s*\\\\)?\"),Mn={CSS_UNIT:new RegExp(Go),rgb:new RegExp(\"rgb\"+fs),rgba:new RegExp(\"rgba\"+ps),hsl:new RegExp(\"hsl\"+fs),hsla:new RegExp(\"hsla\"+ps),hsv:new RegExp(\"hsv\"+fs),hsva:new RegExp(\"hsva\"+ps),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function VZ(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Ys[e])e=Ys[e],t=!0;else if(e===\"transparent\")return{r:0,g:0,b:0,a:0,format:\"name\"};var n=Mn.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Mn.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Mn.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Mn.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Mn.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Mn.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Mn.hex8.exec(e),n?{r:dn(n[1]),g:dn(n[2]),b:dn(n[3]),a:T0(n[4]),format:t?\"name\":\"hex8\"}:(n=Mn.hex6.exec(e),n?{r:dn(n[1]),g:dn(n[2]),b:dn(n[3]),format:t?\"name\":\"hex\"}:(n=Mn.hex4.exec(e),n?{r:dn(n[1]+n[1]),g:dn(n[2]+n[2]),b:dn(n[3]+n[3]),a:T0(n[4]+n[4]),format:t?\"name\":\"hex8\"}:(n=Mn.hex3.exec(e),n?{r:dn(n[1]+n[1]),g:dn(n[2]+n[2]),b:dn(n[3]+n[3]),format:t?\"name\":\"hex\"}:!1)))))))))}function co(e){return Boolean(Mn.CSS_UNIT.exec(String(e)))}var p4=function(){function e(t,n){t===void 0&&(t=\"\"),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t==\"number\"&&(t=LZ(t)),this.originalInput=t;var l=zZ(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,l,a=t.r/255,r=t.g/255,u=t.b/255;return a<=.03928?n=a/12.92:n=Math.pow((a+.055)/1.055,2.4),r<=.03928?o=r/12.92:o=Math.pow((r+.055)/1.055,2.4),u<=.03928?l=u/12.92:l=Math.pow((u+.055)/1.055,2.4),.2126*n+.7152*o+.0722*l},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=f4(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.toHsv=function(){var t=L0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=L0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.v*100);return this.a===1?\"hsv(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%)\"):\"hsva(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%, \").concat(this.roundA,\")\")},e.prototype.toHsl=function(){var t=P0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=P0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.l*100);return this.a===1?\"hsl(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%)\"):\"hsla(\".concat(n,\", \").concat(o,\"%, \").concat(l,\"%, \").concat(this.roundA,\")\")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),z0(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),\"#\"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),kZ(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),\"#\"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?\"rgb(\".concat(t,\", \").concat(n,\", \").concat(o,\")\"):\"rgba(\".concat(t,\", \").concat(n,\", \").concat(o,\", \").concat(this.roundA,\")\")},e.prototype.toPercentageRgb=function(){var t=function(n){return\"\".concat(Math.round(Ut(n,255)*100),\"%\")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Ut(n,255)*100)};return this.a===1?\"rgb(\".concat(t(this.r),\"%, \").concat(t(this.g),\"%, \").concat(t(this.b),\"%)\"):\"rgba(\".concat(t(this.r),\"%, \").concat(t(this.g),\"%, \").concat(t(this.b),\"%, \").concat(this.roundA,\")\")},e.prototype.toName=function(){if(this.a===0)return\"transparent\";if(this.a<1)return!1;for(var t=\"#\"+z0(this.r,this.g,this.b,!1),n=0,o=Object.entries(Ys);n<o.length;n++){var l=o[n],a=l[0],r=l[1];if(t===r)return a}return!1},e.prototype.toString=function(t){var n=Boolean(t);t=t!=null?t:this.format;var o=!1,l=this.a<1&&this.a>=0,a=!n&&l&&(t.startsWith(\"hex\")||t===\"name\");return a?t===\"name\"&&this.a===0?this.toName():this.toRgbString():(t===\"rgb\"&&(o=this.toRgbString()),t===\"prgb\"&&(o=this.toPercentageRgbString()),(t===\"hex\"||t===\"hex6\")&&(o=this.toHexString()),t===\"hex3\"&&(o=this.toHexString(!0)),t===\"hex4\"&&(o=this.toHex8String(!0)),t===\"hex8\"&&(o=this.toHex8String()),t===\"name\"&&(o=this.toName()),t===\"hsl\"&&(o=this.toHslString()),t===\"hsv\"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=xr(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=xr(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix(\"white\",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix(\"black\",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=xr(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=xr(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),a=n/100,r={r:(l.r-o.r)*a+o.r,g:(l.g-o.g)*a+o.g,b:(l.b-o.b)*a+o.b,a:(l.a-o.a)*a+o.a};return new e(r)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),l=360/n,a=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,a.push(new e(o));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,a=n.v,r=[],u=1/t;t--;)r.push(new e({h:o,s:l,v:a})),a=(a+u)%1;return r},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb();return new e({r:o.r+(n.r-o.r)*n.a,g:o.g+(n.g-o.g)*n.a,b:o.b+(n.b-o.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],a=360/t,r=1;r<t;r++)l.push(new e({h:(o+r*a)%360,s:n.s,l:n.l}));return l},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function Ho(e,t=20){return e.mix(\"#141414\",t).toString()}function HZ(e){const t=Bl(),n=He(\"button\");return R(()=>{let o={};const l=e.color;if(l){const a=new p4(l),r=e.dark?a.tint(20).toString():Ho(a,20);if(e.plain)o=n.cssVarBlock({\"bg-color\":e.dark?Ho(a,90):a.tint(90).toString(),\"text-color\":l,\"border-color\":e.dark?Ho(a,50):a.tint(50).toString(),\"hover-text-color\":`var(${n.cssVarName(\"color-white\")})`,\"hover-bg-color\":l,\"hover-border-color\":l,\"active-bg-color\":r,\"active-text-color\":`var(${n.cssVarName(\"color-white\")})`,\"active-border-color\":r}),t.value&&(o[n.cssVarBlockName(\"disabled-bg-color\")]=e.dark?Ho(a,90):a.tint(90).toString(),o[n.cssVarBlockName(\"disabled-text-color\")]=e.dark?Ho(a,50):a.tint(50).toString(),o[n.cssVarBlockName(\"disabled-border-color\")]=e.dark?Ho(a,80):a.tint(80).toString());else{const u=e.dark?Ho(a,30):a.tint(30).toString(),s=a.isDark()?`var(${n.cssVarName(\"color-white\")})`:`var(${n.cssVarName(\"color-black\")})`;if(o=n.cssVarBlock({\"bg-color\":l,\"text-color\":s,\"border-color\":l,\"hover-bg-color\":u,\"hover-text-color\":s,\"hover-border-color\":u,\"active-bg-color\":r,\"active-border-color\":r}),t.value){const i=e.dark?Ho(a,50):a.tint(50).toString();o[n.cssVarBlockName(\"disabled-bg-color\")]=i,o[n.cssVarBlockName(\"disabled-text-color\")]=e.dark?\"rgba(255, 255, 255, 0.5)\":`var(${n.cssVarName(\"color-white\")})`,o[n.cssVarBlockName(\"disabled-border-color\")]=i}}}return o})}const IZ=[\"aria-disabled\",\"disabled\",\"autofocus\",\"type\"],RZ={name:\"ElButton\"},NZ=Le({...RZ,props:Gs,emits:FZ,setup(e,{expose:t,emit:n}){const o=e,l=So();pu({from:\"type.text\",replacement:\"link\",version:\"3.0.0\",scope:\"props\",ref:\"https://element-plus.org/en-US/component/button.html#button-attributes\"},R(()=>o.type===\"text\"));const a=Ze(kf,void 0),r=Lo(\"button\"),u=He(\"button\"),{form:s}=Sl(),i=Qt(R(()=>a==null?void 0:a.size)),c=Bl(),m=z(),h=R(()=>o.type||(a==null?void 0:a.type)||\"\"),v=R(()=>{var w,F,E;return(E=(F=o.autoInsertSpace)!=null?F:(w=r.value)==null?void 0:w.autoInsertSpace)!=null?E:!1}),g=R(()=>{var w;const F=(w=l.default)==null?void 0:w.call(l);if(v.value&&(F==null?void 0:F.length)===1){const E=F[0];if((E==null?void 0:E.type)===ur){const $=E.children;return/^\\p{Unified_Ideograph}{2}$/u.test($.trim())}}return!1}),y=HZ(o),A=w=>{o.nativeType===\"reset\"&&(s==null||s.resetFields()),n(\"click\",w)};return t({ref:m,size:i,type:h,disabled:c,shouldAddSpace:g}),(w,F)=>(b(),C(\"button\",{ref_key:\"_ref\",ref:m,class:U([_(u).b(),_(u).m(_(h)),_(u).m(_(i)),_(u).is(\"disabled\",_(c)),_(u).is(\"loading\",w.loading),_(u).is(\"plain\",w.plain),_(u).is(\"round\",w.round),_(u).is(\"circle\",w.circle),_(u).is(\"text\",w.text),_(u).is(\"link\",w.link),_(u).is(\"has-bg\",w.bg)]),\"aria-disabled\":_(c)||w.loading,disabled:_(c)||w.loading,autofocus:w.autofocus,type:w.nativeType,style:nt(_(y)),onClick:A},[w.loading?(b(),C(We,{key:0},[w.$slots.loading?Te(w.$slots,\"loading\",{key:0}):(b(),ae(_(ut),{key:1,class:U(_(u).is(\"loading\"))},{default:p(()=>[(b(),ae(yt(w.loadingIcon)))]),_:1},8,[\"class\"]))],64)):w.icon||w.$slots.icon?(b(),ae(_(ut),{key:1},{default:p(()=>[w.icon?(b(),ae(yt(w.icon),{key:0})):Te(w.$slots,\"icon\",{key:1})]),_:3})):oe(\"v-if\",!0),w.$slots.default?(b(),C(\"span\",{key:2,class:U({[_(u).em(\"text\",\"expand\")]:_(g)})},[Te(w.$slots,\"default\")],2)):oe(\"v-if\",!0)],14,IZ))}});var OZ=je(NZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue\"]]);const UZ={size:Gs.size,type:Gs.type},WZ={name:\"ElButtonGroup\"},qZ=Le({...WZ,props:UZ,setup(e){const t=e;$t(kf,It({size:$n(t,\"size\"),type:$n(t,\"type\")}));const n=He(\"button\");return(o,l)=>(b(),C(\"div\",{class:U(`${_(n).b(\"group\")}`)},[Te(o.$slots,\"default\")],2))}});var v4=je(qZ,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue\"]]);const kn=Et(OZ,{ButtonGroup:v4});Nt(v4);var Hl=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:{};function jZ(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}const No=new Map;let M0;_t&&(document.addEventListener(\"mousedown\",e=>M0=e),document.addEventListener(\"mouseup\",e=>{for(const t of No.values())for(const{documentHandler:n}of t)n(e,M0)}));function V0(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:Qo(t.arg)&&n.push(t.arg),function(o,l){const a=t.instance.popperRef,r=o.target,u=l==null?void 0:l.target,s=!t||!t.instance,i=!r||!u,c=e.contains(r)||e.contains(u),m=e===r,h=n.length&&n.some(g=>g==null?void 0:g.contains(r))||n.length&&n.includes(u),v=a&&(a.contains(r)||a.contains(u));s||i||c||m||h||v||t.value(o,l)}}const h4={beforeMount(e,t){No.has(e)||No.set(e,[]),No.get(e).push({documentHandler:V0(e,t),bindingFn:t.value})},updated(e,t){No.has(e)||No.set(e,[]);const n=No.get(e),o=n.findIndex(a=>a.bindingFn===t.oldValue),l={documentHandler:V0(e,t),bindingFn:t.value};o>=0?n.splice(o,1,l):n.push(l)},unmounted(e){No.delete(e)}},KZ=100,GZ=600,H0={beforeMount(e,t){let n=null,o=null;const l=()=>t.value&&t.value(),a=()=>{o&&(clearTimeout(o),o=null),n&&(clearInterval(n),n=null)};e.addEventListener(\"mousedown\",r=>{r.button===0&&(l(),document.addEventListener(\"mouseup\",a,{once:!0}),a(),o=setTimeout(()=>{n=setInterval(()=>{l()},KZ)},GZ))})}},Xs=\"_trap-focus-children\",vl=[],I0=e=>{if(vl.length===0)return;const t=vl[vl.length-1][Xs];if(t.length>0&&e.code===Pt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,o=e.target===t[0],l=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),l&&!n&&(e.preventDefault(),t[0].focus())}},YZ={beforeMount(e){e[Xs]=t0(e),vl.push(e),vl.length<=1&&document.addEventListener(\"keydown\",I0)},updated(e){rt(()=>{e[Xs]=t0(e)})},unmounted(){vl.shift(),vl.length===0&&document.removeEventListener(\"keydown\",I0)}};var R0=!1,dl,Js,Qs,Wr,qr,_4,jr,Zs,ei,ti,m4,ni,oi,g4,b4;function en(){if(!R0){R0=!0;var e=navigator.userAgent,t=/(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(ni=/\\b(iPhone|iP[ao]d)/.exec(e),oi=/\\b(iP[ao]d)/.exec(e),ti=/Android/i.exec(e),g4=/FBAN\\/\\w+;/i.exec(e),b4=/Mobile/i.exec(e),m4=!!/Win64/.exec(e),t){dl=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,dl&&document&&document.documentMode&&(dl=document.documentMode);var o=/(?:Trident\\/(\\d+.\\d+))/.exec(e);_4=o?parseFloat(o[1])+4:dl,Js=t[2]?parseFloat(t[2]):NaN,Qs=t[3]?parseFloat(t[3]):NaN,Wr=t[4]?parseFloat(t[4]):NaN,Wr?(t=/(?:Chrome\\/(\\d+\\.\\d+))/.exec(e),qr=t&&t[1]?parseFloat(t[1]):NaN):qr=NaN}else dl=Js=Qs=qr=Wr=NaN;if(n){if(n[1]){var l=/(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(e);jr=l?parseFloat(l[1].replace(\"_\",\".\")):!0}else jr=!1;Zs=!!n[2],ei=!!n[3]}else jr=Zs=ei=!1}}var li={ie:function(){return en()||dl},ieCompatibilityMode:function(){return en()||_4>dl},ie64:function(){return li.ie()&&m4},firefox:function(){return en()||Js},opera:function(){return en()||Qs},webkit:function(){return en()||Wr},safari:function(){return li.webkit()},chrome:function(){return en()||qr},windows:function(){return en()||Zs},osx:function(){return en()||jr},linux:function(){return en()||ei},iphone:function(){return en()||ni},mobile:function(){return en()||ni||oi||ti||b4},nativeApp:function(){return en()||g4},android:function(){return en()||ti},ipad:function(){return en()||oi}},XZ=li,Dr=!!(typeof window<\"u\"&&window.document&&window.document.createElement),JZ={canUseDOM:Dr,canUseWorkers:typeof Worker<\"u\",canUseEventListeners:Dr&&!!(window.addEventListener||window.attachEvent),canUseViewport:Dr&&!!window.screen,isInWorker:!Dr},y4=JZ,w4;y4.canUseDOM&&(w4=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(\"\",\"\")!==!0);function QZ(e,t){if(!y4.canUseDOM||t&&!(\"addEventListener\"in document))return!1;var n=\"on\"+e,o=n in document;if(!o){var l=document.createElement(\"div\");l.setAttribute(n,\"return;\"),o=typeof l[n]==\"function\"}return!o&&w4&&e===\"wheel\"&&(o=document.implementation.hasFeature(\"Events.wheel\",\"3.0\")),o}var ZZ=QZ,N0=10,O0=40,U0=800;function C4(e){var t=0,n=0,o=0,l=0;return\"detail\"in e&&(n=e.detail),\"wheelDelta\"in e&&(n=-e.wheelDelta/120),\"wheelDeltaY\"in e&&(n=-e.wheelDeltaY/120),\"wheelDeltaX\"in e&&(t=-e.wheelDeltaX/120),\"axis\"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),o=t*N0,l=n*N0,\"deltaY\"in e&&(l=e.deltaY),\"deltaX\"in e&&(o=e.deltaX),(o||l)&&e.deltaMode&&(e.deltaMode==1?(o*=O0,l*=O0):(o*=U0,l*=U0)),o&&!t&&(t=o<1?-1:1),l&&!n&&(n=l<1?-1:1),{spinX:t,spinY:n,pixelX:o,pixelY:l}}C4.getEventType=function(){return XZ.firefox()?\"DOMMouseScroll\":ZZ(\"wheel\")?\"wheel\":\"mousewheel\"};var eee=C4;/**\n* Checks if an event is supported in the current execution environment.\n*\n* NOTE: This will not work correctly for non-generic events such as `change`,\n* `reset`, `load`, `error`, and `select`.\n*\n* Borrows from Modernizr.\n*\n* @param {string} eventNameSuffix Event name, e.g. \"click\".\n* @param {?boolean} capture Check if the capture phase is supported.\n* @return {boolean} True if the event is supported.\n* @internal\n* @license Modernizr 3.0.0pre (Custom Build) | MIT\n*/const tee=function(e,t){if(e&&e.addEventListener){const n=function(o){const l=eee(o);t&&Reflect.apply(t,this,[o,l])};e.addEventListener(\"wheel\",n,{passive:!0})}},nee={beforeMount(e,t){tee(e,t.value)}},oee={modelValue:{type:Array,default:()=>[]},disabled:Boolean,min:{type:Number,default:void 0},max:{type:Number,default:void 0},size:zo,id:{type:String,default:void 0},label:{type:String,default:void 0},fill:{type:String,default:void 0},textColor:{type:String,default:void 0},tag:{type:String,default:\"div\"},validateEvent:{type:Boolean,default:!0}},E4={modelValue:{type:[Number,String,Boolean],default:()=>{}},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:zo,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},_a=()=>{const{form:e,formItem:t}=Sl(),n=Ze(\"CheckboxGroup\",{}),o=R(()=>n&&(n==null?void 0:n.name)===\"ElCheckboxGroup\"),l=R(()=>t==null?void 0:t.size);return{isGroup:o,checkboxGroup:n,elForm:e,elFormItemSize:l,elFormItem:t}},lee=(e,{elFormItem:t})=>{const{inputId:n,isLabeledByFormItem:o}=fr(e,{formItemContext:t});return{isLabeledByFormItem:o,groupId:n}},aee=e=>{const t=z(!1),{emit:n}=ft(),{isGroup:o,checkboxGroup:l,elFormItem:a}=_a(),r=z(!1);return{model:R({get(){var s,i;return o.value?(s=l.modelValue)==null?void 0:s.value:(i=e.modelValue)!=null?i:t.value},set(s){var i;o.value&&Array.isArray(s)?(r.value=l.max!==void 0&&s.length>l.max.value,r.value===!1&&((i=l==null?void 0:l.changeEvent)==null||i.call(l,s))):(n(Ct,s),t.value=s)}}),isGroup:o,isLimitExceeded:r,elFormItem:a}},ree=(e,t,{model:n})=>{const{isGroup:o,checkboxGroup:l}=_a(),a=z(!1),r=Qt(l==null?void 0:l.checkboxGroupSize,{prop:!0}),u=R(()=>{const c=n.value;return da(c)===\"[object Boolean]\"?c:Array.isArray(c)?c.map(it).includes(e.label):c!=null?c===e.trueLabel:!!c}),s=Qt(R(()=>{var c;return o.value?(c=l==null?void 0:l.checkboxGroupSize)==null?void 0:c.value:void 0})),i=R(()=>!!(t.default||e.label));return{isChecked:u,focus:a,size:r,checkboxSize:s,hasOwnLabel:i}},uee=(e,{model:t,isChecked:n})=>{const{elForm:o,isGroup:l,checkboxGroup:a}=_a(),r=R(()=>{var s,i;const c=(s=a.max)==null?void 0:s.value,m=(i=a.min)==null?void 0:i.value;return!!(c||m)&&t.value.length>=c&&!n.value||t.value.length<=m&&n.value});return{isDisabled:R(()=>{var s,i;const c=e.disabled||(o==null?void 0:o.disabled);return(i=l.value?((s=a.disabled)==null?void 0:s.value)||c||r.value:c)!=null?i:!1}),isLimitDisabled:r}},see=(e,{model:t})=>{function n(){Array.isArray(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},iee=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:a})=>{const{elFormItem:r,checkboxGroup:u}=_a(),{emit:s}=ft();function i(g){var y,A;return g===e.trueLabel||g===!0?(y=e.trueLabel)!=null?y:!0:(A=e.falseLabel)!=null?A:!1}function c(g,y){s(\"change\",i(g),y)}function m(g){if(n.value)return;const y=g.target;s(\"change\",i(y.checked),g)}async function h(g){n.value||!o.value&&!l.value&&a.value&&(t.value=i([!1,e.falseLabel].includes(t.value)),await rt(),c(t.value,g))}const v=R(()=>{var g;return((g=u.validateEvent)==null?void 0:g.value)||e.validateEvent});return Ve(()=>e.modelValue,()=>{v.value&&(r==null||r.validate(\"change\").catch(g=>void 0))}),{handleChange:m,onClickRoot:h}},A4={[Ct]:e=>tt(e)||mt(e)||Gt(e),change:e=>tt(e)||mt(e)||Gt(e)},cee={[Ct]:e=>Ye(e),change:e=>Ye(e)},F4=(e,t)=>{const{model:n,isGroup:o,isLimitExceeded:l,elFormItem:a}=aee(e),{focus:r,size:u,isChecked:s,checkboxSize:i,hasOwnLabel:c}=ree(e,t,{model:n}),{isDisabled:m}=uee(e,{model:n,isChecked:s}),{inputId:h,isLabeledByFormItem:v}=fr(e,{formItemContext:a,disableIdGeneration:c,disableIdManagement:o}),{handleChange:g,onClickRoot:y}=iee(e,{model:n,isLimitExceeded:l,hasOwnLabel:c,isDisabled:m,isLabeledByFormItem:v});return see(e,{model:n}),{elFormItem:a,inputId:h,isLabeledByFormItem:v,isChecked:s,isDisabled:m,isGroup:o,checkboxSize:i,hasOwnLabel:c,model:n,handleChange:g,onClickRoot:y,focus:r,size:u}},dee=[\"tabindex\",\"role\",\"aria-checked\"],fee=[\"id\",\"aria-hidden\",\"name\",\"tabindex\",\"disabled\",\"true-value\",\"false-value\"],pee=[\"id\",\"aria-hidden\",\"disabled\",\"value\",\"name\",\"tabindex\"],vee={name:\"ElCheckbox\"},hee=Le({...vee,props:E4,emits:A4,setup(e){const t=e,n=So(),{inputId:o,isLabeledByFormItem:l,isChecked:a,isDisabled:r,checkboxSize:u,hasOwnLabel:s,model:i,handleChange:c,onClickRoot:m,focus:h}=F4(t,n),v=He(\"checkbox\");return(g,y)=>(b(),ae(yt(!_(s)&&_(l)?\"span\":\"label\"),{class:U([_(v).b(),_(v).m(_(u)),_(v).is(\"disabled\",_(r)),_(v).is(\"bordered\",g.border),_(v).is(\"checked\",_(a))]),\"aria-controls\":g.indeterminate?g.controls:null,onClick:_(m)},{default:p(()=>[f(\"span\",{class:U([_(v).e(\"input\"),_(v).is(\"disabled\",_(r)),_(v).is(\"checked\",_(a)),_(v).is(\"indeterminate\",g.indeterminate),_(v).is(\"focus\",_(h))]),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?\"checkbox\":void 0,\"aria-checked\":g.indeterminate?\"mixed\":void 0},[g.trueLabel||g.falseLabel?ye((b(),C(\"input\",{key:0,id:_(o),\"onUpdate:modelValue\":y[0]||(y[0]=A=>gt(i)?i.value=A:null),class:U(_(v).e(\"original\")),type:\"checkbox\",\"aria-hidden\":g.indeterminate?\"true\":\"false\",name:g.name,tabindex:g.tabindex,disabled:_(r),\"true-value\":g.trueLabel,\"false-value\":g.falseLabel,onChange:y[1]||(y[1]=(...A)=>_(c)&&_(c)(...A)),onFocus:y[2]||(y[2]=A=>h.value=!0),onBlur:y[3]||(y[3]=A=>h.value=!1)},null,42,fee)),[[ru,_(i)]]):ye((b(),C(\"input\",{key:1,id:_(o),\"onUpdate:modelValue\":y[4]||(y[4]=A=>gt(i)?i.value=A:null),class:U(_(v).e(\"original\")),type:\"checkbox\",\"aria-hidden\":g.indeterminate?\"true\":\"false\",disabled:_(r),value:g.label,name:g.name,tabindex:g.tabindex,onChange:y[5]||(y[5]=(...A)=>_(c)&&_(c)(...A)),onFocus:y[6]||(y[6]=A=>h.value=!0),onBlur:y[7]||(y[7]=A=>h.value=!1)},null,42,pee)),[[ru,_(i)]]),f(\"span\",{class:U(_(v).e(\"inner\"))},null,2)],10,dee),_(s)?(b(),C(\"span\",{key:0,class:U(_(v).e(\"label\"))},[Te(g.$slots,\"default\"),g.$slots.default?oe(\"v-if\",!0):(b(),C(We,{key:0},[D(ce(g.label),1)],64))],2)):oe(\"v-if\",!0)]),_:3},8,[\"class\",\"aria-controls\",\"onClick\"]))}});var _ee=je(hee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue\"]]);const mee=[\"name\",\"tabindex\",\"disabled\",\"true-value\",\"false-value\"],gee=[\"name\",\"tabindex\",\"disabled\",\"value\"],bee={name:\"ElCheckboxButton\"},yee=Le({...bee,props:E4,emits:A4,setup(e){const t=e,n=So(),{focus:o,isChecked:l,isDisabled:a,size:r,model:u,handleChange:s}=F4(t,n),{checkboxGroup:i}=_a(),c=He(\"checkbox\"),m=R(()=>{var h,v,g,y;const A=(v=(h=i==null?void 0:i.fill)==null?void 0:h.value)!=null?v:\"\";return{backgroundColor:A,borderColor:A,color:(y=(g=i==null?void 0:i.textColor)==null?void 0:g.value)!=null?y:\"\",boxShadow:A?`-1px 0 0 0 ${A}`:void 0}});return(h,v)=>(b(),C(\"label\",{class:U([_(c).b(\"button\"),_(c).bm(\"button\",_(r)),_(c).is(\"disabled\",_(a)),_(c).is(\"checked\",_(l)),_(c).is(\"focus\",_(o))])},[h.trueLabel||h.falseLabel?ye((b(),C(\"input\",{key:0,\"onUpdate:modelValue\":v[0]||(v[0]=g=>gt(u)?u.value=g:null),class:U(_(c).be(\"button\",\"original\")),type:\"checkbox\",name:h.name,tabindex:h.tabindex,disabled:_(a),\"true-value\":h.trueLabel,\"false-value\":h.falseLabel,onChange:v[1]||(v[1]=(...g)=>_(s)&&_(s)(...g)),onFocus:v[2]||(v[2]=g=>o.value=!0),onBlur:v[3]||(v[3]=g=>o.value=!1)},null,42,mee)),[[ru,_(u)]]):ye((b(),C(\"input\",{key:1,\"onUpdate:modelValue\":v[4]||(v[4]=g=>gt(u)?u.value=g:null),class:U(_(c).be(\"button\",\"original\")),type:\"checkbox\",name:h.name,tabindex:h.tabindex,disabled:_(a),value:h.label,onChange:v[5]||(v[5]=(...g)=>_(s)&&_(s)(...g)),onFocus:v[6]||(v[6]=g=>o.value=!0),onBlur:v[7]||(v[7]=g=>o.value=!1)},null,42,gee)),[[ru,_(u)]]),h.$slots.default||h.label?(b(),C(\"span\",{key:2,class:U(_(c).be(\"button\",\"inner\")),style:nt(_(l)?_(m):void 0)},[Te(h.$slots,\"default\",{},()=>[D(ce(h.label),1)])],6)):oe(\"v-if\",!0)],2))}});var x4=je(yee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue\"]]);const wee={name:\"ElCheckboxGroup\"},Cee=Le({...wee,props:oee,emits:cee,setup(e,{emit:t}){const n=e,{elFormItem:o}=_a(),{groupId:l,isLabeledByFormItem:a}=lee(n,{elFormItem:o}),r=Qt(),u=He(\"checkbox\"),s=c=>{t(Ct,c),rt(()=>{t(\"change\",c)})},i=R({get(){return n.modelValue},set(c){s(c)}});return $t(\"CheckboxGroup\",{name:\"ElCheckboxGroup\",...On(n),modelValue:i,checkboxGroupSize:r,changeEvent:s}),Ve(()=>n.modelValue,()=>{n.validateEvent&&(o==null||o.validate(\"change\").catch(c=>void 0))}),(c,m)=>{var h;return b(),ae(yt(c.tag),{id:_(l),class:U(_(u).b(\"group\")),role:\"group\",\"aria-label\":_(a)?void 0:c.label||\"checkbox-group\",\"aria-labelledby\":_(a)?(h=_(o))==null?void 0:h.labelId:void 0},{default:p(()=>[Te(c.$slots,\"default\")]),_:3},8,[\"id\",\"class\",\"aria-label\",\"aria-labelledby\"])}}});var $4=je(Cee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue\"]]);const $o=Et(_ee,{CheckboxButton:x4,CheckboxGroup:$4});Nt(x4);const D4=Nt($4),B4=et({size:zo,disabled:Boolean,label:{type:[String,Number,Boolean],default:\"\"}}),Eee=et({...B4,modelValue:{type:[String,Number,Boolean],default:\"\"},name:{type:String,default:\"\"},border:Boolean}),S4={[Ct]:e=>tt(e)||mt(e)||Gt(e),[uo]:e=>tt(e)||mt(e)||Gt(e)},k4=(e,t)=>{const n=z(),o=Ze(Mf,void 0),l=R(()=>!!o),a=R({get(){return l.value?o.modelValue:e.modelValue},set(c){l.value?o.changeEvent(c):t&&t(Ct,c),n.value.checked=e.modelValue===e.label}}),r=Qt(R(()=>o==null?void 0:o.size)),u=Bl(R(()=>o==null?void 0:o.disabled)),s=z(!1),i=R(()=>u.value||l.value&&a.value!==e.label?-1:0);return{radioRef:n,isGroup:l,radioGroup:o,focus:s,size:r,disabled:u,tabIndex:i,modelValue:a}},Aee=[\"value\",\"name\",\"disabled\"],Fee={name:\"ElRadio\"},xee=Le({...Fee,props:Eee,emits:S4,setup(e,{emit:t}){const n=e,o=He(\"radio\"),{radioRef:l,radioGroup:a,focus:r,size:u,disabled:s,modelValue:i}=k4(n,t);function c(){rt(()=>t(\"change\",i.value))}return(m,h)=>{var v;return b(),C(\"label\",{class:U([_(o).b(),_(o).is(\"disabled\",_(s)),_(o).is(\"focus\",_(r)),_(o).is(\"bordered\",m.border),_(o).is(\"checked\",_(i)===m.label),_(o).m(_(u))])},[f(\"span\",{class:U([_(o).e(\"input\"),_(o).is(\"disabled\",_(s)),_(o).is(\"checked\",_(i)===m.label)])},[ye(f(\"input\",{ref_key:\"radioRef\",ref:l,\"onUpdate:modelValue\":h[0]||(h[0]=g=>gt(i)?i.value=g:null),class:U(_(o).e(\"original\")),value:m.label,name:m.name||((v=_(a))==null?void 0:v.name),disabled:_(s),type:\"radio\",onFocus:h[1]||(h[1]=g=>r.value=!0),onBlur:h[2]||(h[2]=g=>r.value=!1),onChange:c},null,42,Aee),[[z1,_(i)]]),f(\"span\",{class:U(_(o).e(\"inner\"))},null,2)],2),f(\"span\",{class:U(_(o).e(\"label\")),onKeydown:h[3]||(h[3]=ht(()=>{},[\"stop\"]))},[Te(m.$slots,\"default\",{},()=>[D(ce(m.label),1)])],34)],2)}}});var $ee=je(xee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue\"]]);const Dee=et({...B4,name:{type:String,default:\"\"}}),Bee=[\"value\",\"name\",\"disabled\"],See={name:\"ElRadioButton\"},kee=Le({...See,props:Dee,setup(e){const t=e,n=He(\"radio\"),{radioRef:o,focus:l,size:a,disabled:r,modelValue:u,radioGroup:s}=k4(t),i=R(()=>({backgroundColor:(s==null?void 0:s.fill)||\"\",borderColor:(s==null?void 0:s.fill)||\"\",boxShadow:s!=null&&s.fill?`-1px 0 0 0 ${s.fill}`:\"\",color:(s==null?void 0:s.textColor)||\"\"}));return(c,m)=>{var h;return b(),C(\"label\",{class:U([_(n).b(\"button\"),_(n).is(\"active\",_(u)===c.label),_(n).is(\"disabled\",_(r)),_(n).is(\"focus\",_(l)),_(n).bm(\"button\",_(a))])},[ye(f(\"input\",{ref_key:\"radioRef\",ref:o,\"onUpdate:modelValue\":m[0]||(m[0]=v=>gt(u)?u.value=v:null),class:U(_(n).be(\"button\",\"original-radio\")),value:c.label,type:\"radio\",name:c.name||((h=_(s))==null?void 0:h.name),disabled:_(r),onFocus:m[1]||(m[1]=v=>l.value=!0),onBlur:m[2]||(m[2]=v=>l.value=!1)},null,42,Bee),[[z1,_(u)]]),f(\"span\",{class:U(_(n).be(\"button\",\"inner\")),style:nt(_(u)===c.label?_(i):{}),onKeydown:m[3]||(m[3]=ht(()=>{},[\"stop\"]))},[Te(c.$slots,\"default\",{},()=>[D(ce(c.label),1)])],38)],2)}}});var P4=je(kee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue\"]]);const Pee=et({id:{type:String,default:void 0},size:zo,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:\"\"},fill:{type:String,default:\"\"},label:{type:String,default:void 0},textColor:{type:String,default:\"\"},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),Lee=S4,zee=[\"id\",\"aria-label\",\"aria-labelledby\"],Tee={name:\"ElRadioGroup\"},Mee=Le({...Tee,props:Pee,emits:Lee,setup(e,{emit:t}){const n=e,o=He(\"radio\"),l=Zo(),a=z(),{formItem:r}=Sl(),{inputId:u,isLabeledByFormItem:s}=fr(n,{formItemContext:r}),i=m=>{t(Ct,m),rt(()=>t(\"change\",m))};at(()=>{const m=a.value.querySelectorAll(\"[type=radio]\"),h=m[0];!Array.from(m).some(v=>v.checked)&&h&&(h.tabIndex=0)});const c=R(()=>n.name||l.value);return $t(Mf,It({...On(n),changeEvent:i,name:c})),Ve(()=>n.modelValue,()=>{n.validateEvent&&(r==null||r.validate(\"change\").catch(m=>void 0))}),(m,h)=>(b(),C(\"div\",{id:_(u),ref_key:\"radioGroupRef\",ref:a,class:U(_(o).b(\"group\")),role:\"radiogroup\",\"aria-label\":_(s)?void 0:m.label||\"radio-group\",\"aria-labelledby\":_(s)?_(r).labelId:void 0},[Te(m.$slots,\"default\")],10,zee))}});var L4=je(Mee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue\"]]);const b2=Et($ee,{RadioButton:P4,RadioGroup:L4}),y2=Nt(L4);Nt(P4);const z4=et({closable:Boolean,type:{type:String,values:[\"success\",\"info\",\"warning\",\"danger\",\"\"],default:\"\"},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:\"\"},size:{type:String,values:dr,default:\"\"},effect:{type:String,values:[\"dark\",\"light\",\"plain\"],default:\"light\"},round:Boolean}),Vee={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},Hee={name:\"ElTag\"},Iee=Le({...Hee,props:z4,emits:Vee,setup(e,{emit:t}){const n=e,o=Qt(),l=He(\"tag\"),a=R(()=>{const{type:s,hit:i,effect:c,closable:m,round:h}=n;return[l.b(),l.is(\"closable\",m),l.m(s),l.m(o.value),l.m(c),l.is(\"hit\",i),l.is(\"round\",h)]}),r=s=>{t(\"close\",s)},u=s=>{t(\"click\",s)};return(s,i)=>s.disableTransitions?(b(),C(\"span\",{key:0,class:U(_(a)),style:nt({backgroundColor:s.color}),onClick:u},[f(\"span\",{class:U(_(l).e(\"content\"))},[Te(s.$slots,\"default\")],2),s.closable?(b(),ae(_(ut),{key:0,class:U(_(l).e(\"close\")),onClick:ht(r,[\"stop\"])},{default:p(()=>[d(_(Cl))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],6)):(b(),ae(Zt,{key:1,name:`${_(l).namespace.value}-zoom-in-center`,appear:\"\"},{default:p(()=>[f(\"span\",{class:U(_(a)),style:nt({backgroundColor:s.color}),onClick:u},[f(\"span\",{class:U(_(l).e(\"content\"))},[Te(s.$slots,\"default\")],2),s.closable?(b(),ae(_(ut),{key:0,class:U(_(l).e(\"close\")),onClick:ht(r,[\"stop\"])},{default:p(()=>[d(_(Cl))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],6)]),_:3},8,[\"name\"]))}});var Ree=je(Iee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue\"]]);const Nee=Et(Ree),W0=e=>typeof mt(e),Oee=et({accordion:Boolean,modelValue:{type:Ue([Array,String,Number]),default:()=>Fo([])}}),Uee={[Ct]:W0,[uo]:W0},Wee={name:\"ElCollapse\"},qee=Le({...Wee,props:Oee,emits:Uee,setup(e,{expose:t,emit:n}){const o=e,l=He(\"collapse\"),a=z(Qa(o.modelValue)),r=s=>{a.value=s;const i=o.accordion?a.value[0]:a.value;n(Ct,i),n(uo,i)},u=s=>{if(o.accordion)r([(a.value[0]||a.value[0]===0)&&a.value[0]===s?\"\":s]);else{const i=[...a.value],c=i.indexOf(s);c>-1?i.splice(c,1):i.push(s),r(i)}};return Ve(()=>o.modelValue,()=>a.value=Qa(o.modelValue),{deep:!0}),$t(Pf,{activeNames:a,handleItemClick:u}),t({activeNames:a,setActiveNames:r}),(s,i)=>(b(),C(\"div\",{class:U(_(l).b()),role:\"tablist\",\"aria-multiselectable\":\"true\"},[Te(s.$slots,\"default\")],2))}});var jee=je(qee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse.vue\"]]);const Kee={name:\"ElCollapseTransition\"},Gee=Le({...Kee,setup(e){const t=He(\"collapse-transition\"),n={beforeEnter(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0},enter(o){o.dataset.oldOverflow=o.style.overflow,o.scrollHeight!==0?(o.style.maxHeight=`${o.scrollHeight}px`,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom):(o.style.maxHeight=0,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom),o.style.overflow=\"hidden\"},afterEnter(o){o.style.maxHeight=\"\",o.style.overflow=o.dataset.oldOverflow},beforeLeave(o){o.dataset||(o.dataset={}),o.dataset.oldPaddingTop=o.style.paddingTop,o.dataset.oldPaddingBottom=o.style.paddingBottom,o.dataset.oldOverflow=o.style.overflow,o.style.maxHeight=`${o.scrollHeight}px`,o.style.overflow=\"hidden\"},leave(o){o.scrollHeight!==0&&(o.style.maxHeight=0,o.style.paddingTop=0,o.style.paddingBottom=0)},afterLeave(o){o.style.maxHeight=\"\",o.style.overflow=o.dataset.oldOverflow,o.style.paddingTop=o.dataset.oldPaddingTop,o.style.paddingBottom=o.dataset.oldPaddingBottom}};return(o,l)=>(b(),ae(Zt,An({name:_(t).b()},s3(n)),{default:p(()=>[Te(o.$slots,\"default\")]),_:3},16,[\"name\"]))}});var Kr=je(Gee,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue\"]]);Kr.install=e=>{e.component(Kr.name,Kr)};const T4=Kr,Yee=et({title:{type:String,default:\"\"},name:{type:Ue([String,Number]),default:()=>a2()},disabled:Boolean}),Xee=[\"aria-expanded\",\"aria-controls\",\"aria-describedby\"],Jee=[\"id\",\"tabindex\",\"onKeypress\"],Qee=[\"id\",\"aria-hidden\",\"aria-labelledby\"],Zee={name:\"ElCollapseItem\"},ete=Le({...Zee,props:Yee,setup(e,{expose:t}){const n=e,o=Ze(Pf),l=He(\"collapse\"),a=z(!1),r=z(!1),u=z(a2()),s=R(()=>o==null?void 0:o.activeNames.value.includes(n.name)),i=()=>{setTimeout(()=>{r.value?r.value=!1:a.value=!0},50)},c=()=>{n.disabled||(o==null||o.handleItemClick(n.name),a.value=!1,r.value=!0)},m=()=>{o==null||o.handleItemClick(n.name)};return t({isActive:s}),(h,v)=>(b(),C(\"div\",{class:U([_(l).b(\"item\"),_(l).is(\"active\",_(s)),_(l).is(\"disabled\",h.disabled)])},[f(\"div\",{role:\"tab\",\"aria-expanded\":_(s),\"aria-controls\":_(l).b(`content-${u.value}`),\"aria-describedby\":_(l).b(`content-${u.value}`)},[f(\"div\",{id:_(l).b(`head-${u.value}`),class:U([_(l).be(\"item\",\"header\"),_(l).is(\"active\",_(s)),{focusing:a.value&&!h.disabled}]),role:\"button\",tabindex:h.disabled?-1:0,onClick:c,onKeypress:Bt(ht(m,[\"stop\",\"prevent\"]),[\"space\",\"enter\"]),onFocus:i,onBlur:v[0]||(v[0]=g=>a.value=!1)},[Te(h.$slots,\"title\",{},()=>[D(ce(h.title),1)]),d(_(ut),{class:U([_(l).be(\"item\",\"arrow\"),_(l).is(\"active\",_(s))])},{default:p(()=>[d(_(pa))]),_:1},8,[\"class\"])],42,Jee)],8,Xee),d(_(T4),null,{default:p(()=>[ye(f(\"div\",{id:_(l).b(`content-${u.value}`),class:U(_(l).be(\"item\",\"wrap\")),role:\"tabpanel\",\"aria-hidden\":!_(s),\"aria-labelledby\":_(l).b(`head-${u.value}`)},[f(\"div\",{class:U(_(l).be(\"item\",\"content\"))},[Te(h.$slots,\"default\")],2)],10,Qee),[[Be,_(s)]])]),_:3})],2))}});var M4=je(ete,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse-item.vue\"]]);const tte=Et(jee,{CollapseItem:M4}),nte=Nt(M4),ai={},ote=et({a11y:{type:Boolean,default:!0},locale:{type:Ue(Object)},size:zo,button:{type:Ue(Object)},experimentalFeatures:{type:Ue(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Ue(Object)},zIndex:Number,namespace:{type:String,default:\"el\"}});Le({name:\"ElConfigProvider\",props:ote,setup(e,{slots:t}){Ve(()=>e.message,o=>{Object.assign(ai,o!=null?o:{})},{immediate:!0,deep:!0});const n=yX(e);return()=>Te(t,\"default\",{config:n==null?void 0:n.value})}});const lte={name:\"ElContainer\"},ate=Le({...lte,props:{direction:{type:String}},setup(e){const t=e,n=So(),o=He(\"container\"),l=R(()=>t.direction===\"vertical\"?!0:t.direction===\"horizontal\"?!1:n&&n.default?n.default().some(r=>{const u=r.type.name;return u===\"ElHeader\"||u===\"ElFooter\"}):!1);return(a,r)=>(b(),C(\"section\",{class:U([_(o).b(),_(o).is(\"vertical\",_(l))])},[Te(a.$slots,\"default\")],2))}});var rte=je(ate,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/container.vue\"]]);const ute={name:\"ElAside\"},ste=Le({...ute,props:{width:{type:String,default:null}},setup(e){const t=e,n=He(\"aside\"),o=R(()=>t.width?n.cssVarBlock({width:t.width}):{});return(l,a)=>(b(),C(\"aside\",{class:U(_(n).b()),style:nt(_(o))},[Te(l.$slots,\"default\")],6))}});var V4=je(ste,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/aside.vue\"]]);const ite={name:\"ElFooter\"},cte=Le({...ite,props:{height:{type:String,default:null}},setup(e){const t=e,n=He(\"footer\"),o=R(()=>t.height?n.cssVarBlock({height:t.height}):{});return(l,a)=>(b(),C(\"footer\",{class:U(_(n).b()),style:nt(_(o))},[Te(l.$slots,\"default\")],6))}});var H4=je(cte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/footer.vue\"]]);const dte={name:\"ElHeader\"},fte=Le({...dte,props:{height:{type:String,default:null}},setup(e){const t=e,n=He(\"header\"),o=R(()=>t.height?n.cssVarBlock({height:t.height}):{});return(l,a)=>(b(),C(\"header\",{class:U(_(n).b()),style:nt(_(o))},[Te(l.$slots,\"default\")],6))}});var I4=je(fte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/header.vue\"]]);const pte={name:\"ElMain\"},vte=Le({...pte,setup(e){const t=He(\"main\");return(n,o)=>(b(),C(\"main\",{class:U(_(t).b())},[Te(n.$slots,\"default\")],2))}});var R4=je(vte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/container/src/main.vue\"]]);const hte=Et(rte,{Aside:V4,Footer:H4,Header:I4,Main:R4});Nt(V4);Nt(H4);const _te=Nt(I4),mte=Nt(R4),w2=\"elDescriptions\";var $a=Le({name:\"ElDescriptionsCell\",props:{cell:{type:Object},tag:{type:String},type:{type:String}},setup(){return{descriptions:Ze(w2,{})}},render(){var e,t,n,o,l,a;const r=_X(this.cell),{border:u,direction:s}=this.descriptions,i=s===\"vertical\",c=((n=(t=(e=this.cell)==null?void 0:e.children)==null?void 0:t.label)==null?void 0:n.call(t))||r.label,m=(a=(l=(o=this.cell)==null?void 0:o.children)==null?void 0:l.default)==null?void 0:a.call(l),h=r.span,v=r.align?`is-${r.align}`:\"\",g=r.labelAlign?`is-${r.labelAlign}`:v,y=r.className,A=r.labelClassName,w={width:Nn(r.width),minWidth:Nn(r.minWidth)},F=He(\"descriptions\");switch(this.type){case\"label\":return Ne(this.tag,{style:w,class:[F.e(\"cell\"),F.e(\"label\"),F.is(\"bordered-label\",u),F.is(\"vertical-label\",i),g,A],colSpan:i?h:1},c);case\"content\":return Ne(this.tag,{style:w,class:[F.e(\"cell\"),F.e(\"content\"),F.is(\"bordered-content\",u),F.is(\"vertical-content\",i),v,y],colSpan:i?h:h*2-1},m);default:return Ne(\"td\",{style:w,class:[F.e(\"cell\"),v],colSpan:h},[Ne(\"span\",{class:[F.e(\"label\"),A]},c),Ne(\"span\",{class:[F.e(\"content\"),y]},m)])}}});const gte=et({row:{type:Array,default:()=>[]}}),bte={key:1},yte={name:\"ElDescriptionsRow\"},wte=Le({...yte,props:gte,setup(e){const t=Ze(w2,{});return(n,o)=>_(t).direction===\"vertical\"?(b(),C(We,{key:0},[f(\"tr\",null,[(b(!0),C(We,null,pt(n.row,(l,a)=>(b(),ae(_($a),{key:`tr1-${a}`,cell:l,tag:\"th\",type:\"label\"},null,8,[\"cell\"]))),128))]),f(\"tr\",null,[(b(!0),C(We,null,pt(n.row,(l,a)=>(b(),ae(_($a),{key:`tr2-${a}`,cell:l,tag:\"td\",type:\"content\"},null,8,[\"cell\"]))),128))])],64)):(b(),C(\"tr\",bte,[(b(!0),C(We,null,pt(n.row,(l,a)=>(b(),C(We,{key:`tr3-${a}`},[_(t).border?(b(),C(We,{key:0},[d(_($a),{cell:l,tag:\"td\",type:\"label\"},null,8,[\"cell\"]),d(_($a),{cell:l,tag:\"td\",type:\"content\"},null,8,[\"cell\"])],64)):(b(),ae(_($a),{key:1,cell:l,tag:\"td\",type:\"both\"},null,8,[\"cell\"]))],64))),128))]))}});var Cte=je(wte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/descriptions-row.vue\"]]);const Ete=et({border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,values:[\"horizontal\",\"vertical\"],default:\"horizontal\"},size:zo,title:{type:String,default:\"\"},extra:{type:String,default:\"\"}}),Ate={name:\"ElDescriptions\"},Fte=Le({...Ate,props:Ete,setup(e){const t=e,n=He(\"descriptions\"),o=Qt(),l=So();$t(w2,t);const a=R(()=>[n.b(),n.m(o.value)]),r=(s,i,c,m=!1)=>(s.props||(s.props={}),i>c&&(s.props.span=c),m&&(s.props.span=i),s),u=()=>{var s;const i=l2((s=l.default)==null?void 0:s.call(l)).filter(g=>{var y;return((y=g==null?void 0:g.type)==null?void 0:y.name)===\"ElDescriptionsItem\"}),c=[];let m=[],h=t.column,v=0;return i.forEach((g,y)=>{var A;const w=((A=g.props)==null?void 0:A.span)||1;if(y<i.length-1&&(v+=w>h?h:w),y===i.length-1){const F=t.column-v%t.column;m.push(r(g,F,h,!0)),c.push(m);return}w<h?(h-=w,m.push(g)):(m.push(r(g,w,h)),c.push(m),h=t.column,m=[])}),c};return(s,i)=>(b(),C(\"div\",{class:U(_(a))},[s.title||s.extra||s.$slots.title||s.$slots.extra?(b(),C(\"div\",{key:0,class:U(_(n).e(\"header\"))},[f(\"div\",{class:U(_(n).e(\"title\"))},[Te(s.$slots,\"title\",{},()=>[D(ce(s.title),1)])],2),f(\"div\",{class:U(_(n).e(\"extra\"))},[Te(s.$slots,\"extra\",{},()=>[D(ce(s.extra),1)])],2)],2)):oe(\"v-if\",!0),f(\"div\",{class:U(_(n).e(\"body\"))},[f(\"table\",{class:U([_(n).e(\"table\"),_(n).is(\"bordered\",s.border)])},[f(\"tbody\",null,[(b(!0),C(We,null,pt(u(),(c,m)=>(b(),ae(Cte,{key:m,row:c},null,8,[\"row\"]))),128))])],2)],2)],2))}});var xte=je(Fte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/description.vue\"]]),N4=Le({name:\"ElDescriptionsItem\",props:{label:{type:String,default:\"\"},span:{type:Number,default:1},width:{type:[String,Number],default:\"\"},minWidth:{type:[String,Number],default:\"\"},align:{type:String,default:\"left\"},labelAlign:{type:String,default:\"\"},className:{type:String,default:\"\"},labelClassName:{type:String,default:\"\"}}});const Ou=Et(xte,{DescriptionsItem:N4}),Uu=Nt(N4),$te=et({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Ue([String,Array,Object])},zIndex:{type:Ue([String,Number])}}),Dte={click:e=>e instanceof MouseEvent};var Bte=Le({name:\"ElOverlay\",props:$te,emits:Dte,setup(e,{slots:t,emit:n}){const o=He(\"overlay\"),l=s=>{n(\"click\",s)},{onClick:a,onMousedown:r,onMouseup:u}=u2(e.customMaskEvent?void 0:l);return()=>e.mask?d(\"div\",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:a,onMousedown:r,onMouseup:u},[Te(t,\"default\")],Or.STYLE|Or.CLASS|Or.PROPS,[\"onClick\",\"onMouseup\",\"onMousedown\"]):Ne(\"div\",{class:e.overlayClass,style:{zIndex:e.zIndex,position:\"fixed\",top:\"0px\",right:\"0px\",bottom:\"0px\",left:\"0px\"}},[Te(t,\"default\")])}});const O4=Bte,U4=et({center:{type:Boolean,default:!1},alignCenter:{type:Boolean,default:!1},closeIcon:{type:Lt},customClass:{type:String,default:\"\"},draggable:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},title:{type:String,default:\"\"}}),Ste={close:()=>!0},kte=[\"aria-label\"],Pte=[\"id\"],Lte={name:\"ElDialogContent\"},zte=Le({...Lte,props:U4,emits:Ste,setup(e){const t=e,{t:n}=bn(),{Close:o}=$f,{dialogRef:l,headerRef:a,bodyId:r,ns:u,style:s}=Ze(zf),{focusTrapRef:i}=Ze(i4),c=pX(i,l),m=R(()=>t.draggable);return Nf(l,a,m),(h,v)=>(b(),C(\"div\",{ref:_(c),class:U([_(u).b(),_(u).is(\"fullscreen\",h.fullscreen),_(u).is(\"draggable\",_(m)),_(u).is(\"align-center\",h.alignCenter),{[_(u).m(\"center\")]:h.center},h.customClass]),style:nt(_(s)),tabindex:\"-1\",onClick:v[1]||(v[1]=ht(()=>{},[\"stop\"]))},[f(\"header\",{ref_key:\"headerRef\",ref:a,class:U(_(u).e(\"header\"))},[Te(h.$slots,\"header\",{},()=>[f(\"span\",{role:\"heading\",class:U(_(u).e(\"title\"))},ce(h.title),3)]),h.showClose?(b(),C(\"button\",{key:0,\"aria-label\":_(n)(\"el.dialog.close\"),class:U(_(u).e(\"headerbtn\")),type:\"button\",onClick:v[0]||(v[0]=g=>h.$emit(\"close\"))},[d(_(ut),{class:U(_(u).e(\"close\"))},{default:p(()=>[(b(),ae(yt(h.closeIcon||_(o))))]),_:1},8,[\"class\"])],10,kte)):oe(\"v-if\",!0)],2),f(\"div\",{id:_(r),class:U(_(u).e(\"body\"))},[Te(h.$slots,\"default\")],10,Pte),h.$slots.footer?(b(),C(\"footer\",{key:0,class:U(_(u).e(\"footer\"))},[Te(h.$slots,\"footer\")],2)):oe(\"v-if\",!0)],6))}});var Tte=je(zte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue\"]]);const Mte=et({...U4,appendToBody:{type:Boolean,default:!1},beforeClose:{type:Ue(Function)},destroyOnClose:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:{type:Boolean,default:!1},modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1}}),Vte={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Ct]:e=>Gt(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},Hte=(e,t)=>{const o=ft().emit,{nextZIndex:l}=kl();let a=\"\";const r=Zo(),u=Zo(),s=z(!1),i=z(!1),c=z(!1),m=z(e.zIndex||l());let h,v;const g=Lo(\"namespace\",Iu),y=R(()=>{const N={},Y=`--${g.value}-dialog`;return e.fullscreen||(e.top&&(N[`${Y}-margin-top`]=e.top),e.width&&(N[`${Y}-width`]=Nn(e.width))),N}),A=R(()=>e.alignCenter?{display:\"flex\"}:{});function w(){o(\"opened\")}function F(){o(\"closed\"),o(Ct,!1),e.destroyOnClose&&(c.value=!1)}function E(){o(\"close\")}function $(){v==null||v(),h==null||h(),e.openDelay&&e.openDelay>0?{stop:h}=Ql(()=>H(),e.openDelay):H()}function T(){h==null||h(),v==null||v(),e.closeDelay&&e.closeDelay>0?{stop:v}=Ql(()=>I(),e.closeDelay):I()}function B(){function N(Y){Y||(i.value=!0,s.value=!1)}e.beforeClose?e.beforeClose(N):T()}function P(){e.closeOnClickModal&&B()}function H(){!_t||(s.value=!0)}function I(){s.value=!1}function j(){o(\"openAutoFocus\")}function Z(){o(\"closeAutoFocus\")}e.lockScroll&&Of(s);function G(){e.closeOnPressEscape&&B()}return Ve(()=>e.modelValue,N=>{N?(i.value=!1,$(),c.value=!0,m.value=e.zIndex?m.value++:l(),rt(()=>{o(\"open\"),t.value&&(t.value.scrollTop=0)})):s.value&&T()}),Ve(()=>e.fullscreen,N=>{!t.value||(N?(a=t.value.style.transform,t.value.style.transform=\"\"):t.value.style.transform=a)}),at(()=>{e.modelValue&&(s.value=!0,c.value=!0,$())}),{afterEnter:w,afterLeave:F,beforeLeave:E,handleClose:B,onModalClick:P,close:T,doClose:I,onOpenAutoFocus:j,onCloseAutoFocus:Z,onCloseRequested:G,titleId:r,bodyId:u,closed:i,style:y,overlayDialogStyle:A,rendered:c,visible:s,zIndex:m}},Ite=[\"aria-label\",\"aria-labelledby\",\"aria-describedby\"],Rte={name:\"ElDialog\",inheritAttrs:!1},Nte=Le({...Rte,props:Mte,emits:Vte,setup(e,{expose:t}){const n=e,o=So();pu({scope:\"el-dialog\",from:\"the title slot\",replacement:\"the header slot\",version:\"3.0.0\",ref:\"https://element-plus.org/en-US/component/dialog.html#slots\"},R(()=>!!o.title)),pu({scope:\"el-dialog\",from:\"custom-class\",replacement:\"class\",version:\"2.3.0\",ref:\"https://element-plus.org/en-US/component/dialog.html#attributes\",type:\"Attribute\"},R(()=>!!n.customClass));const l=He(\"dialog\"),a=z(),r=z(),u=z(),{visible:s,titleId:i,bodyId:c,style:m,overlayDialogStyle:h,rendered:v,zIndex:g,afterEnter:y,afterLeave:A,beforeLeave:w,handleClose:F,onModalClick:E,onOpenAutoFocus:$,onCloseAutoFocus:T,onCloseRequested:B}=Hte(n,a);$t(zf,{dialogRef:a,headerRef:r,bodyId:c,ns:l,rendered:v,style:m});const P=u2(E),H=R(()=>n.draggable&&!n.fullscreen);return t({visible:s,dialogContentRef:u}),(I,j)=>(b(),ae(g1,{to:\"body\",disabled:!I.appendToBody},[d(Zt,{name:\"dialog-fade\",onAfterEnter:_(y),onAfterLeave:_(A),onBeforeLeave:_(w),persisted:\"\"},{default:p(()=>[ye(d(_(O4),{\"custom-mask-event\":\"\",mask:I.modal,\"overlay-class\":I.modalClass,\"z-index\":_(g)},{default:p(()=>[f(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":I.title||void 0,\"aria-labelledby\":I.title?void 0:_(i),\"aria-describedby\":_(c),class:U(`${_(l).namespace.value}-overlay-dialog`),style:nt(_(h)),onClick:j[0]||(j[0]=(...Z)=>_(P).onClick&&_(P).onClick(...Z)),onMousedown:j[1]||(j[1]=(...Z)=>_(P).onMousedown&&_(P).onMousedown(...Z)),onMouseup:j[2]||(j[2]=(...Z)=>_(P).onMouseup&&_(P).onMouseup(...Z))},[d(_(_2),{loop:\"\",trapped:_(s),\"focus-start-el\":\"container\",onFocusAfterTrapped:_($),onFocusAfterReleased:_(T),onReleaseRequested:_(B)},{default:p(()=>[_(v)?(b(),ae(Tte,An({key:0,ref_key:\"dialogContentRef\",ref:u},I.$attrs,{\"custom-class\":I.customClass,center:I.center,\"align-center\":I.alignCenter,\"close-icon\":I.closeIcon,draggable:_(H),fullscreen:I.fullscreen,\"show-close\":I.showClose,title:I.title,onClose:_(F)}),jl({header:p(()=>[I.$slots.title?Te(I.$slots,\"title\",{key:1}):Te(I.$slots,\"header\",{key:0,close:_(F),titleId:_(i),titleClass:_(l).e(\"title\")})]),default:p(()=>[Te(I.$slots,\"default\")]),_:2},[I.$slots.footer?{name:\"footer\",fn:p(()=>[Te(I.$slots,\"footer\")])}:void 0]),1040,[\"custom-class\",\"center\",\"align-center\",\"close-icon\",\"draggable\",\"fullscreen\",\"show-close\",\"title\",\"onClose\"])):oe(\"v-if\",!0)]),_:3},8,[\"trapped\",\"onFocusAfterTrapped\",\"onFocusAfterReleased\",\"onReleaseRequested\"])],46,Ite)]),_:3},8,[\"mask\",\"overlay-class\",\"z-index\"]),[[Be,_(s)]])]),_:3},8,[\"onAfterEnter\",\"onAfterLeave\",\"onBeforeLeave\"])],8,[\"disabled\"]))}});var Ote=je(Nte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue\"]]);const ma=Et(Ote),Ute=et({direction:{type:String,values:[\"horizontal\",\"vertical\"],default:\"horizontal\"},contentPosition:{type:String,values:[\"left\",\"center\",\"right\"],default:\"center\"},borderStyle:{type:Ue(String),default:\"solid\"}}),Wte={name:\"ElDivider\"},qte=Le({...Wte,props:Ute,setup(e){const t=e,n=He(\"divider\"),o=R(()=>n.cssVar({\"border-style\":t.borderStyle}));return(l,a)=>(b(),C(\"div\",{class:U([_(n).b(),_(n).m(l.direction)]),style:nt(_(o)),role:\"separator\"},[l.$slots.default&&l.direction!==\"vertical\"?(b(),C(\"div\",{key:0,class:U([_(n).e(\"text\"),_(n).is(l.contentPosition)])},[Te(l.$slots,\"default\")],2)):oe(\"v-if\",!0)],6))}});var jte=je(qte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue\"]]);const Kte=Et(jte),Gte=et({model:Object,rules:{type:Ue(Object)},labelPosition:{type:String,values:[\"left\",\"right\",\"top\"],default:\"right\"},requireAsteriskPosition:{type:String,values:[\"left\",\"right\"],default:\"left\"},labelWidth:{type:[String,Number],default:\"\"},labelSuffix:{type:String,default:\"\"},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:dr},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),Yte={validate:(e,t,n)=>(Ye(e)||tt(e))&&Gt(t)&&tt(n)};function Xte(){const e=z([]),t=R(()=>{if(!e.value.length)return\"0\";const a=Math.max(...e.value);return a?`${a}px`:\"\"});function n(a){return e.value.indexOf(a)}function o(a,r){if(a&&r){const u=n(r);e.value.splice(u,1,a)}else a&&e.value.push(a)}function l(a){const r=n(a);r>-1&&e.value.splice(r,1)}return{autoLabelWidth:t,registerLabelWidth:o,deregisterLabelWidth:l}}const Br=(e,t)=>{const n=Qa(t);return n.length>0?e.filter(o=>o.prop&&n.includes(o.prop)):e},Jte={name:\"ElForm\"},Qte=Le({...Jte,props:Gte,emits:Yte,setup(e,{expose:t,emit:n}){const o=e,l=[],a=Qt(),r=He(\"form\"),u=R(()=>{const{labelPosition:F,inline:E}=o;return[r.b(),r.m(a.value||\"default\"),{[r.m(`label-${F}`)]:F,[r.m(\"inline\")]:E}]}),s=F=>{l.push(F)},i=F=>{F.prop&&l.splice(l.indexOf(F),1)},c=(F=[])=>{!o.model||Br(l,F).forEach(E=>E.resetField())},m=(F=[])=>{Br(l,F).forEach(E=>E.clearValidate())},h=R(()=>!!o.model),v=F=>{if(l.length===0)return[];const E=Br(l,F);return E.length?E:[]},g=async F=>A(void 0,F),y=async(F=[])=>{if(!h.value)return!1;const E=v(F);if(E.length===0)return!0;let $={};for(const T of E)try{await T.validate(\"\")}catch(B){$={...$,...B}}return Object.keys($).length===0?!0:Promise.reject($)},A=async(F=[],E)=>{const $=!Je(E);try{const T=await y(F);return T===!0&&(E==null||E(T)),T}catch(T){const B=T;return o.scrollToError&&w(Object.keys(B)[0]),E==null||E(!1,B),$&&Promise.reject(B)}},w=F=>{var E;const $=Br(l,F)[0];$&&((E=$.$el)==null||E.scrollIntoView())};return Ve(()=>o.rules,()=>{o.validateOnRuleChange&&g().catch(F=>void 0)},{deep:!0}),$t(va,It({...On(o),emit:n,resetFields:c,clearValidate:m,validateField:A,addField:s,removeField:i,...Xte()})),t({validate:g,validateField:A,resetFields:c,clearValidate:m,scrollToField:w}),(F,E)=>(b(),C(\"form\",{class:U(_(u))},[Te(F.$slots,\"default\")],2))}});var Zte=je(Qte,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue\"]]);function hl(){return hl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},hl.apply(this,arguments)}function ene(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,nr(e,t)}function ri(e){return ri=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ri(e)}function nr(e,t){return nr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,l){return o.__proto__=l,o},nr(e,t)}function tne(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Gr(e,t,n){return tne()?Gr=Reflect.construct.bind():Gr=function(l,a,r){var u=[null];u.push.apply(u,a);var s=Function.bind.apply(l,u),i=new s;return r&&nr(i,r.prototype),i},Gr.apply(null,arguments)}function nne(e){return Function.toString.call(e).indexOf(\"[native code]\")!==-1}function ui(e){var t=typeof Map==\"function\"?new Map:void 0;return ui=function(o){if(o===null||!nne(o))return o;if(typeof o!=\"function\")throw new TypeError(\"Super expression must either be null or a function\");if(typeof t!=\"undefined\"){if(t.has(o))return t.get(o);t.set(o,l)}function l(){return Gr(o,arguments,ri(this).constructor)}return l.prototype=Object.create(o.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),nr(l,o)},ui(e)}var one=/%[sdj%]/g,lne=function(){};typeof process!=\"undefined\"&&process.env;function si(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var o=n.field;t[o]=t[o]||[],t[o].push(n)}),t}function pn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var l=0,a=n.length;if(typeof e==\"function\")return e.apply(null,n);if(typeof e==\"string\"){var r=e.replace(one,function(u){if(u===\"%%\")return\"%\";if(l>=a)return u;switch(u){case\"%s\":return String(n[l++]);case\"%d\":return Number(n[l++]);case\"%j\":try{return JSON.stringify(n[l++])}catch{return\"[Circular]\"}break;default:return u}});return r}return e}function ane(e){return e===\"string\"||e===\"url\"||e===\"hex\"||e===\"email\"||e===\"date\"||e===\"pattern\"}function Tt(e,t){return!!(e==null||t===\"array\"&&Array.isArray(e)&&!e.length||ane(t)&&typeof e==\"string\"&&!e)}function rne(e,t,n){var o=[],l=0,a=e.length;function r(u){o.push.apply(o,u||[]),l++,l===a&&n(o)}e.forEach(function(u){t(u,r)})}function q0(e,t,n){var o=0,l=e.length;function a(r){if(r&&r.length){n(r);return}var u=o;o=o+1,u<l?t(e[u],a):n([])}a([])}function une(e){var t=[];return Object.keys(e).forEach(function(n){t.push.apply(t,e[n]||[])}),t}var j0=function(e){ene(t,e);function t(n,o){var l;return l=e.call(this,\"Async Validation Error\")||this,l.errors=n,l.fields=o,l}return t}(ui(Error));function sne(e,t,n,o,l){if(t.first){var a=new Promise(function(h,v){var g=function(w){return o(w),w.length?v(new j0(w,si(w))):h(l)},y=une(e);q0(y,n,g)});return a.catch(function(h){return h}),a}var r=t.firstFields===!0?Object.keys(e):t.firstFields||[],u=Object.keys(e),s=u.length,i=0,c=[],m=new Promise(function(h,v){var g=function(A){if(c.push.apply(c,A),i++,i===s)return o(c),c.length?v(new j0(c,si(c))):h(l)};u.length||(o(c),h(l)),u.forEach(function(y){var A=e[y];r.indexOf(y)!==-1?q0(A,n,g):rne(A,n,g)})});return m.catch(function(h){return h}),m}function ine(e){return!!(e&&e.message!==void 0)}function cne(e,t){for(var n=e,o=0;o<t.length;o++){if(n==null)return n;n=n[t[o]]}return n}function K0(e,t){return function(n){var o;return e.fullFields?o=cne(t,e.fullFields):o=t[n.field||e.fullField],ine(n)?(n.field=n.field||e.fullField,n.fieldValue=o,n):{message:typeof n==\"function\"?n():n,fieldValue:o,field:n.field||e.fullField}}}function G0(e,t){if(t){for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];typeof o==\"object\"&&typeof e[n]==\"object\"?e[n]=hl({},e[n],o):e[n]=o}}return e}var W4=function(t,n,o,l,a,r){t.required&&(!o.hasOwnProperty(t.field)||Tt(n,r||t.type))&&l.push(pn(a.messages.required,t.fullField))},dne=function(t,n,o,l,a){(/^\\s+$/.test(n)||n===\"\")&&l.push(pn(a.messages.whitespace,t.fullField))},Sr,fne=function(){if(Sr)return Sr;var e=\"[a-fA-F\\\\d:]\",t=function($){return $&&$.includeBoundaries?\"(?:(?<=\\\\s|^)(?=\"+e+\")|(?<=\"+e+\")(?=\\\\s|$))\":\"\"},n=\"(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}\",o=\"[a-fA-F\\\\d]{1,4}\",l=(`\n(?:\n(?:`+o+\":){7}(?:\"+o+`|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n(?:`+o+\":){6}(?:\"+n+\"|:\"+o+`|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\n(?:`+o+\":){5}(?::\"+n+\"|(?::\"+o+`){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\n(?:`+o+\":){4}(?:(?::\"+o+\"){0,1}:\"+n+\"|(?::\"+o+`){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\n(?:`+o+\":){3}(?:(?::\"+o+\"){0,2}:\"+n+\"|(?::\"+o+`){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\n(?:`+o+\":){2}(?:(?::\"+o+\"){0,3}:\"+n+\"|(?::\"+o+`){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\n(?:`+o+\":){1}(?:(?::\"+o+\"){0,4}:\"+n+\"|(?::\"+o+`){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::`+o+\"){0,5}:\"+n+\"|(?::\"+o+`){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\n`).replace(/\\s*\\/\\/.*$/gm,\"\").replace(/\\n/g,\"\").trim(),a=new RegExp(\"(?:^\"+n+\"$)|(?:^\"+l+\"$)\"),r=new RegExp(\"^\"+n+\"$\"),u=new RegExp(\"^\"+l+\"$\"),s=function($){return $&&$.exact?a:new RegExp(\"(?:\"+t($)+n+t($)+\")|(?:\"+t($)+l+t($)+\")\",\"g\")};s.v4=function(E){return E&&E.exact?r:new RegExp(\"\"+t(E)+n+t(E),\"g\")},s.v6=function(E){return E&&E.exact?u:new RegExp(\"\"+t(E)+l+t(E),\"g\")};var i=\"(?:(?:[a-z]+:)?//)\",c=\"(?:\\\\S+(?::\\\\S*)?@)?\",m=s.v4().source,h=s.v6().source,v=\"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\",g=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\",y=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\",A=\"(?::\\\\d{2,5})?\",w='(?:[/?#][^\\\\s\"]*)?',F=\"(?:\"+i+\"|www\\\\.)\"+c+\"(?:localhost|\"+m+\"|\"+h+\"|\"+v+g+y+\")\"+A+w;return Sr=new RegExp(\"(?:^\"+F+\"$)\",\"i\"),Sr},Y0={email:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Sa={integer:function(t){return Sa.number(t)&&parseInt(t,10)===t},float:function(t){return Sa.number(t)&&!Sa.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime==\"function\"&&typeof t.getMonth==\"function\"&&typeof t.getYear==\"function\"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t==\"number\"},object:function(t){return typeof t==\"object\"&&!Sa.array(t)},method:function(t){return typeof t==\"function\"},email:function(t){return typeof t==\"string\"&&t.length<=320&&!!t.match(Y0.email)},url:function(t){return typeof t==\"string\"&&t.length<=2048&&!!t.match(fne())},hex:function(t){return typeof t==\"string\"&&!!t.match(Y0.hex)}},pne=function(t,n,o,l,a){if(t.required&&n===void 0){W4(t,n,o,l,a);return}var r=[\"integer\",\"float\",\"array\",\"regexp\",\"object\",\"method\",\"email\",\"number\",\"date\",\"url\",\"hex\"],u=t.type;r.indexOf(u)>-1?Sa[u](n)||l.push(pn(a.messages.types[u],t.fullField,t.type)):u&&typeof n!==t.type&&l.push(pn(a.messages.types[u],t.fullField,t.type))},vne=function(t,n,o,l,a){var r=typeof t.len==\"number\",u=typeof t.min==\"number\",s=typeof t.max==\"number\",i=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,c=n,m=null,h=typeof n==\"number\",v=typeof n==\"string\",g=Array.isArray(n);if(h?m=\"number\":v?m=\"string\":g&&(m=\"array\"),!m)return!1;g&&(c=n.length),v&&(c=n.replace(i,\"_\").length),r?c!==t.len&&l.push(pn(a.messages[m].len,t.fullField,t.len)):u&&!s&&c<t.min?l.push(pn(a.messages[m].min,t.fullField,t.min)):s&&!u&&c>t.max?l.push(pn(a.messages[m].max,t.fullField,t.max)):u&&s&&(c<t.min||c>t.max)&&l.push(pn(a.messages[m].range,t.fullField,t.min,t.max))},zl=\"enum\",hne=function(t,n,o,l,a){t[zl]=Array.isArray(t[zl])?t[zl]:[],t[zl].indexOf(n)===-1&&l.push(pn(a.messages[zl],t.fullField,t[zl].join(\", \")))},_ne=function(t,n,o,l,a){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(n)||l.push(pn(a.messages.pattern.mismatch,t.fullField,n,t.pattern));else if(typeof t.pattern==\"string\"){var r=new RegExp(t.pattern);r.test(n)||l.push(pn(a.messages.pattern.mismatch,t.fullField,n,t.pattern))}}},dt={required:W4,whitespace:dne,type:pne,range:vne,enum:hne,pattern:_ne},mne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n,\"string\")&&!t.required)return o();dt.required(t,n,l,r,a,\"string\"),Tt(n,\"string\")||(dt.type(t,n,l,r,a),dt.range(t,n,l,r,a),dt.pattern(t,n,l,r,a),t.whitespace===!0&&dt.whitespace(t,n,l,r,a))}o(r)},gne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&dt.type(t,n,l,r,a)}o(r)},bne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(n===\"\"&&(n=void 0),Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&(dt.type(t,n,l,r,a),dt.range(t,n,l,r,a))}o(r)},yne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&dt.type(t,n,l,r,a)}o(r)},wne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),Tt(n)||dt.type(t,n,l,r,a)}o(r)},Cne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&(dt.type(t,n,l,r,a),dt.range(t,n,l,r,a))}o(r)},Ene=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&(dt.type(t,n,l,r,a),dt.range(t,n,l,r,a))}o(r)},Ane=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(n==null&&!t.required)return o();dt.required(t,n,l,r,a,\"array\"),n!=null&&(dt.type(t,n,l,r,a),dt.range(t,n,l,r,a))}o(r)},Fne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&dt.type(t,n,l,r,a)}o(r)},xne=\"enum\",$ne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a),n!==void 0&&dt[xne](t,n,l,r,a)}o(r)},Dne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n,\"string\")&&!t.required)return o();dt.required(t,n,l,r,a),Tt(n,\"string\")||dt.pattern(t,n,l,r,a)}o(r)},Bne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n,\"date\")&&!t.required)return o();if(dt.required(t,n,l,r,a),!Tt(n,\"date\")){var s;n instanceof Date?s=n:s=new Date(n),dt.type(t,s,l,r,a),s&&dt.range(t,s.getTime(),l,r,a)}}o(r)},Sne=function(t,n,o,l,a){var r=[],u=Array.isArray(n)?\"array\":typeof n;dt.required(t,n,l,r,a,u),o(r)},vs=function(t,n,o,l,a){var r=t.type,u=[],s=t.required||!t.required&&l.hasOwnProperty(t.field);if(s){if(Tt(n,r)&&!t.required)return o();dt.required(t,n,l,u,a,r),Tt(n,r)||dt.type(t,n,l,u,a)}o(u)},kne=function(t,n,o,l,a){var r=[],u=t.required||!t.required&&l.hasOwnProperty(t.field);if(u){if(Tt(n)&&!t.required)return o();dt.required(t,n,l,r,a)}o(r)},Ha={string:mne,method:gne,number:bne,boolean:yne,regexp:wne,integer:Cne,float:Ene,array:Ane,object:Fne,enum:$ne,pattern:Dne,date:Bne,url:vs,hex:vs,email:vs,required:Sne,any:kne};function ii(){return{default:\"Validation error on field %s\",required:\"%s is required\",enum:\"%s must be one of %s\",whitespace:\"%s cannot be empty\",date:{format:\"%s date %s is invalid for format %s\",parse:\"%s date could not be parsed, %s is invalid \",invalid:\"%s date %s is invalid\"},types:{string:\"%s is not a %s\",method:\"%s is not a %s (function)\",array:\"%s is not an %s\",object:\"%s is not an %s\",number:\"%s is not a %s\",date:\"%s is not a %s\",boolean:\"%s is not a %s\",integer:\"%s is not an %s\",float:\"%s is not a %s\",regexp:\"%s is not a valid %s\",email:\"%s is not a valid %s\",url:\"%s is not a valid %s\",hex:\"%s is not a valid %s\"},string:{len:\"%s must be exactly %s characters\",min:\"%s must be at least %s characters\",max:\"%s cannot be longer than %s characters\",range:\"%s must be between %s and %s characters\"},number:{len:\"%s must equal %s\",min:\"%s cannot be less than %s\",max:\"%s cannot be greater than %s\",range:\"%s must be between %s and %s\"},array:{len:\"%s must be exactly %s in length\",min:\"%s cannot be less than %s in length\",max:\"%s cannot be greater than %s in length\",range:\"%s must be between %s and %s in length\"},pattern:{mismatch:\"%s value %s does not match pattern %s\"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var ci=ii(),hr=function(){function e(n){this.rules=null,this._messages=ci,this.define(n)}var t=e.prototype;return t.define=function(o){var l=this;if(!o)throw new Error(\"Cannot configure a schema with no rules\");if(typeof o!=\"object\"||Array.isArray(o))throw new Error(\"Rules must be an object\");this.rules={},Object.keys(o).forEach(function(a){var r=o[a];l.rules[a]=Array.isArray(r)?r:[r]})},t.messages=function(o){return o&&(this._messages=G0(ii(),o)),this._messages},t.validate=function(o,l,a){var r=this;l===void 0&&(l={}),a===void 0&&(a=function(){});var u=o,s=l,i=a;if(typeof s==\"function\"&&(i=s,s={}),!this.rules||Object.keys(this.rules).length===0)return i&&i(null,u),Promise.resolve(u);function c(y){var A=[],w={};function F($){if(Array.isArray($)){var T;A=(T=A).concat.apply(T,$)}else A.push($)}for(var E=0;E<y.length;E++)F(y[E]);A.length?(w=si(A),i(A,w)):i(null,u)}if(s.messages){var m=this.messages();m===ci&&(m=ii()),G0(m,s.messages),s.messages=m}else s.messages=this.messages();var h={},v=s.keys||Object.keys(this.rules);v.forEach(function(y){var A=r.rules[y],w=u[y];A.forEach(function(F){var E=F;typeof E.transform==\"function\"&&(u===o&&(u=hl({},u)),w=u[y]=E.transform(w)),typeof E==\"function\"?E={validator:E}:E=hl({},E),E.validator=r.getValidationMethod(E),E.validator&&(E.field=y,E.fullField=E.fullField||y,E.type=r.getType(E),h[y]=h[y]||[],h[y].push({rule:E,value:w,source:u,field:y}))})});var g={};return sne(h,s,function(y,A){var w=y.rule,F=(w.type===\"object\"||w.type===\"array\")&&(typeof w.fields==\"object\"||typeof w.defaultField==\"object\");F=F&&(w.required||!w.required&&y.value),w.field=y.field;function E(B,P){return hl({},P,{fullField:w.fullField+\".\"+B,fullFields:w.fullFields?[].concat(w.fullFields,[B]):[B]})}function $(B){B===void 0&&(B=[]);var P=Array.isArray(B)?B:[B];!s.suppressWarning&&P.length&&e.warning(\"async-validator:\",P),P.length&&w.message!==void 0&&(P=[].concat(w.message));var H=P.map(K0(w,u));if(s.first&&H.length)return g[w.field]=1,A(H);if(!F)A(H);else{if(w.required&&!y.value)return w.message!==void 0?H=[].concat(w.message).map(K0(w,u)):s.error&&(H=[s.error(w,pn(s.messages.required,w.field))]),A(H);var I={};w.defaultField&&Object.keys(y.value).map(function(G){I[G]=w.defaultField}),I=hl({},I,y.rule.fields);var j={};Object.keys(I).forEach(function(G){var N=I[G],Y=Array.isArray(N)?N:[N];j[G]=Y.map(E.bind(null,G))});var Z=new e(j);Z.messages(s.messages),y.rule.options&&(y.rule.options.messages=s.messages,y.rule.options.error=s.error),Z.validate(y.value,y.rule.options||s,function(G){var N=[];H&&H.length&&N.push.apply(N,H),G&&G.length&&N.push.apply(N,G),A(N.length?N:null)})}}var T;if(w.asyncValidator)T=w.asyncValidator(w,y.value,$,y.source,s);else if(w.validator){try{T=w.validator(w,y.value,$,y.source,s)}catch(B){console.error==null||console.error(B),s.suppressValidatorError||setTimeout(function(){throw B},0),$(B.message)}T===!0?$():T===!1?$(typeof w.message==\"function\"?w.message(w.fullField||w.field):w.message||(w.fullField||w.field)+\" fails\"):T instanceof Array?$(T):T instanceof Error&&$(T.message)}T&&T.then&&T.then(function(){return $()},function(B){return $(B)})},function(y){c(y)},u)},t.getType=function(o){if(o.type===void 0&&o.pattern instanceof RegExp&&(o.type=\"pattern\"),typeof o.validator!=\"function\"&&o.type&&!Ha.hasOwnProperty(o.type))throw new Error(pn(\"Unknown rule type %s\",o.type));return o.type||\"string\"},t.getValidationMethod=function(o){if(typeof o.validator==\"function\")return o.validator;var l=Object.keys(o),a=l.indexOf(\"message\");return a!==-1&&l.splice(a,1),l.length===1&&l[0]===\"required\"?Ha.required:Ha[this.getType(o)]||void 0},e}();hr.register=function(t,n){if(typeof n!=\"function\")throw new Error(\"Cannot register a validator by type, validator is not a function\");Ha[t]=n};hr.warning=lne;hr.messages=ci;hr.validators=Ha;const Pne=[\"\",\"error\",\"validating\",\"success\"],Lne=et({label:String,labelWidth:{type:[String,Number],default:\"\"},prop:{type:Ue([String,Array])},required:{type:Boolean,default:void 0},rules:{type:Ue([Object,Array])},error:String,validateStatus:{type:String,values:Pne},for:String,inlineMessage:{type:[String,Boolean],default:\"\"},showMessage:{type:Boolean,default:!0},size:{type:String,values:dr}}),X0=\"ElLabelWrap\";var zne=Le({name:X0,props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:t}){const n=Ze(va,void 0);Ze(El)||gn(X0,\"usage: <el-form-item><label-wrap /></el-form-item>\");const l=He(\"form\"),a=z(),r=z(0),u=()=>{var c;if((c=a.value)!=null&&c.firstElementChild){const m=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(m))}else return 0},s=(c=\"update\")=>{rt(()=>{t.default&&e.isAutoWidth&&(c===\"update\"?r.value=u():c===\"remove\"&&(n==null||n.deregisterLabelWidth(r.value)))})},i=()=>s(\"update\");return at(()=>{i()}),Rt(()=>{s(\"remove\")}),xl(()=>i()),Ve(r,(c,m)=>{e.updateAll&&(n==null||n.registerLabelWidth(c,m))}),ro(R(()=>{var c,m;return(m=(c=a.value)==null?void 0:c.firstElementChild)!=null?m:null}),i),()=>{var c,m;if(!t)return null;const{isAutoWidth:h}=e;if(h){const v=n==null?void 0:n.autoLabelWidth,g={};if(v&&v!==\"auto\"){const y=Math.max(0,Number.parseInt(v,10)-r.value),A=n.labelPosition===\"left\"?\"marginRight\":\"marginLeft\";y&&(g[A]=`${y}px`)}return d(\"div\",{ref:a,class:[l.be(\"item\",\"label-wrap\")],style:g},[(c=t.default)==null?void 0:c.call(t)])}else return d(We,{ref:a},[(m=t.default)==null?void 0:m.call(t)])}}});const Tne=[\"role\",\"aria-labelledby\"],Mne={name:\"ElFormItem\"},Vne=Le({...Mne,props:Lne,setup(e,{expose:t}){const n=e,o=So(),l=Ze(va,void 0),a=Ze(El,void 0),r=Qt(void 0,{formItem:!1}),u=He(\"form-item\"),s=Zo().value,i=z([]),c=z(\"\"),m=zm(c,100),h=z(\"\"),v=z();let g,y=!1;const A=R(()=>{if((l==null?void 0:l.labelPosition)===\"top\")return{};const ve=Nn(n.labelWidth||(l==null?void 0:l.labelWidth)||\"\");return ve?{width:ve}:{}}),w=R(()=>{if((l==null?void 0:l.labelPosition)===\"top\"||(l==null?void 0:l.inline))return{};if(!n.label&&!n.labelWidth&&I)return{};const ve=Nn(n.labelWidth||(l==null?void 0:l.labelWidth)||\"\");return!n.label&&!o.label?{marginLeft:ve}:{}}),F=R(()=>[u.b(),u.m(r.value),u.is(\"error\",c.value===\"error\"),u.is(\"validating\",c.value===\"validating\"),u.is(\"success\",c.value===\"success\"),u.is(\"required\",Y.value||n.required),u.is(\"no-asterisk\",l==null?void 0:l.hideRequiredAsterisk),(l==null?void 0:l.requireAsteriskPosition)===\"right\"?\"asterisk-right\":\"asterisk-left\",{[u.m(\"feedback\")]:l==null?void 0:l.statusIcon}]),E=R(()=>Gt(n.inlineMessage)?n.inlineMessage:(l==null?void 0:l.inlineMessage)||!1),$=R(()=>[u.e(\"error\"),{[u.em(\"error\",\"inline\")]:E.value}]),T=R(()=>n.prop?tt(n.prop)?n.prop:n.prop.join(\".\"):\"\"),B=R(()=>!!(n.label||o.label)),P=R(()=>n.for||i.value.length===1?i.value[0]:void 0),H=R(()=>!P.value&&B.value),I=!!a,j=R(()=>{const ve=l==null?void 0:l.model;if(!(!ve||!n.prop))return Nr(ve,n.prop).value}),Z=R(()=>{const{required:ve}=n,ze=[];n.rules&&ze.push(...Qa(n.rules));const Ke=l==null?void 0:l.rules;if(Ke&&n.prop){const se=Nr(Ke,n.prop).value;se&&ze.push(...Qa(se))}if(ve!==void 0){const se=ze.map((le,L)=>[le,L]).filter(([le])=>Object.keys(le).includes(\"required\"));if(se.length>0)for(const[le,L]of se)le.required!==ve&&(ze[L]={...le,required:ve});else ze.push({required:ve})}return ze}),G=R(()=>Z.value.length>0),N=ve=>Z.value.filter(Ke=>!Ke.trigger||!ve?!0:Array.isArray(Ke.trigger)?Ke.trigger.includes(ve):Ke.trigger===ve).map(({trigger:Ke,...se})=>se),Y=R(()=>Z.value.some(ve=>ve.required)),ge=R(()=>{var ve;return m.value===\"error\"&&n.showMessage&&((ve=l==null?void 0:l.showMessage)!=null?ve:!0)}),fe=R(()=>`${n.label||\"\"}${(l==null?void 0:l.labelSuffix)||\"\"}`),Ee=ve=>{c.value=ve},ne=ve=>{var ze,Ke;const{errors:se,fields:le}=ve;(!se||!le)&&console.error(ve),Ee(\"error\"),h.value=se?(Ke=(ze=se==null?void 0:se[0])==null?void 0:ze.message)!=null?Ke:`${n.prop} is required`:\"\",l==null||l.emit(\"validate\",n.prop,!1,h.value)},ee=()=>{Ee(\"success\"),l==null||l.emit(\"validate\",n.prop,!0,\"\")},xe=async ve=>{const ze=T.value;return new hr({[ze]:ve}).validate({[ze]:j.value},{firstFields:!0}).then(()=>(ee(),!0)).catch(se=>(ne(se),Promise.reject(se)))},$e=async(ve,ze)=>{if(y)return!1;const Ke=Je(ze);if(!G.value)return ze==null||ze(!1),!1;const se=N(ve);return se.length===0?(ze==null||ze(!0),!0):(Ee(\"validating\"),xe(se).then(()=>(ze==null||ze(!0),!0)).catch(le=>{const{fields:L}=le;return ze==null||ze(!1,L),Ke?!1:Promise.reject(L)}))},x=()=>{Ee(\"\"),h.value=\"\",y=!1},W=async()=>{const ve=l==null?void 0:l.model;if(!ve||!n.prop)return;const ze=Nr(ve,n.prop);y=!0,ze.value=Xc(g),await rt(),x(),y=!1},we=ve=>{i.value.includes(ve)||i.value.push(ve)},Ae=ve=>{i.value=i.value.filter(ze=>ze!==ve)};Ve(()=>n.error,ve=>{h.value=ve||\"\",Ee(ve?\"error\":\"\")},{immediate:!0}),Ve(()=>n.validateStatus,ve=>Ee(ve||\"\"));const ke=It({...On(n),$el:v,size:r,validateState:c,labelId:s,inputIds:i,isGroup:H,addInputId:we,removeInputId:Ae,resetField:W,clearValidate:x,validate:$e});return $t(El,ke),at(()=>{n.prop&&(l==null||l.addField(ke),g=Xc(j.value))}),Rt(()=>{l==null||l.removeField(ke)}),t({size:r,validateMessage:h,validateState:c,validate:$e,clearValidate:x,resetField:W}),(ve,ze)=>{var Ke;return b(),C(\"div\",{ref_key:\"formItemRef\",ref:v,class:U(_(F)),role:_(H)?\"group\":void 0,\"aria-labelledby\":_(H)?_(s):void 0},[d(_(zne),{\"is-auto-width\":_(A).width===\"auto\",\"update-all\":((Ke=_(l))==null?void 0:Ke.labelWidth)===\"auto\"},{default:p(()=>[_(B)?(b(),ae(yt(_(P)?\"label\":\"div\"),{key:0,id:_(s),for:_(P),class:U(_(u).e(\"label\")),style:nt(_(A))},{default:p(()=>[Te(ve.$slots,\"label\",{label:_(fe)},()=>[D(ce(_(fe)),1)])]),_:3},8,[\"id\",\"for\",\"class\",\"style\"])):oe(\"v-if\",!0)]),_:3},8,[\"is-auto-width\",\"update-all\"]),f(\"div\",{class:U(_(u).e(\"content\")),style:nt(_(w))},[Te(ve.$slots,\"default\"),d(Zt,{name:`${_(u).namespace.value}-zoom-in-top`},{default:p(()=>[_(ge)?Te(ve.$slots,\"error\",{key:0,error:h.value},()=>[f(\"div\",{class:U(_($))},ce(h.value),3)]):oe(\"v-if\",!0)]),_:3},8,[\"name\"])],6)],10,Tne)}}});var q4=je(Vne,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue\"]]);const qn=Et(Zte,{FormItem:q4}),jn=Nt(q4),Hne=et({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:zo,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:\"\",values:[\"\",\"right\"]},valueOnClear:{type:[String,Number,null],validator:e=>e===null||mt(e)||[\"min\",\"max\"].includes(e),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===Number.parseInt(`${e}`,10)},validateEvent:{type:Boolean,default:!0}}),Ine={[uo]:(e,t)=>e!==t,blur:e=>e instanceof FocusEvent,focus:e=>e instanceof FocusEvent,[du]:e=>mt(e)||no(e),[Ct]:e=>mt(e)||no(e)},Rne=[\"aria-label\",\"onKeydown\"],Nne=[\"aria-label\",\"onKeydown\"],One={name:\"ElInputNumber\"},Une=Le({...One,props:Hne,emits:Ine,setup(e,{expose:t,emit:n}){const o=e,{t:l}=bn(),a=He(\"input-number\"),r=z(),u=It({currentValue:o.modelValue,userInput:null}),{formItem:s}=Sl(),i=R(()=>mt(o.modelValue)&&F(o.modelValue,-1)<o.min),c=R(()=>mt(o.modelValue)&&F(o.modelValue)>o.max),m=R(()=>{const N=w(o.step);return Ko(o.precision)?Math.max(w(o.modelValue),N):(N>o.precision,o.precision)}),h=R(()=>o.controls&&o.controlsPosition===\"right\"),v=Qt(),g=Bl(),y=R(()=>{if(u.userInput!==null)return u.userInput;let N=u.currentValue;if(no(N))return\"\";if(mt(N)){if(Number.isNaN(N))return\"\";Ko(o.precision)||(N=N.toFixed(o.precision))}return N}),A=(N,Y)=>{if(Ko(Y)&&(Y=m.value),Y===0)return Math.round(N);let ge=String(N);const fe=ge.indexOf(\".\");if(fe===-1||!ge.replace(\".\",\"\").split(\"\")[fe+Y])return N;const ee=ge.length;return ge.charAt(ee-1)===\"5\"&&(ge=`${ge.slice(0,Math.max(0,ee-1))}6`),Number.parseFloat(Number(ge).toFixed(Y))},w=N=>{if(no(N))return 0;const Y=N.toString(),ge=Y.indexOf(\".\");let fe=0;return ge!==-1&&(fe=Y.length-ge-1),fe},F=(N,Y=1)=>mt(N)?A(N+o.step*Y):u.currentValue,E=()=>{if(o.readonly||g.value||c.value)return;const N=o.modelValue||0,Y=F(N);B(Y)},$=()=>{if(o.readonly||g.value||i.value)return;const N=o.modelValue||0,Y=F(N,-1);B(Y)},T=(N,Y)=>{const{max:ge,min:fe,step:Ee,precision:ne,stepStrictly:ee,valueOnClear:xe}=o;let $e=Number(N);if(no(N)||Number.isNaN($e))return null;if(N===\"\"){if(xe===null)return null;$e=tt(xe)?{min:fe,max:ge}[xe]:xe}return ee&&($e=A(Math.round($e/Ee)*Ee,ne)),Ko(ne)||($e=A($e,ne)),($e>ge||$e<fe)&&($e=$e>ge?ge:fe,Y&&n(\"update:modelValue\",$e)),$e},B=N=>{var Y;const ge=u.currentValue,fe=T(N);ge!==fe&&(u.userInput=null,n(\"update:modelValue\",fe),n(\"input\",fe),n(\"change\",fe,ge),o.validateEvent&&((Y=s==null?void 0:s.validate)==null||Y.call(s,\"change\").catch(Ee=>void 0)),u.currentValue=fe)},P=N=>u.userInput=N,H=N=>{const Y=N!==\"\"?Number(N):\"\";(mt(Y)&&!Number.isNaN(Y)||N===\"\")&&B(Y),u.userInput=null},I=()=>{var N,Y;(Y=(N=r.value)==null?void 0:N.focus)==null||Y.call(N)},j=()=>{var N,Y;(Y=(N=r.value)==null?void 0:N.blur)==null||Y.call(N)},Z=N=>{n(\"focus\",N)},G=N=>{var Y;n(\"blur\",N),o.validateEvent&&((Y=s==null?void 0:s.validate)==null||Y.call(s,\"blur\").catch(ge=>void 0))};return Ve(()=>o.modelValue,N=>{u.currentValue=T(N,!0),u.userInput=null},{immediate:!0}),at(()=>{var N;const{min:Y,max:ge,modelValue:fe}=o,Ee=(N=r.value)==null?void 0:N.input;if(Ee.setAttribute(\"role\",\"spinbutton\"),Number.isFinite(ge)?Ee.setAttribute(\"aria-valuemax\",String(ge)):Ee.removeAttribute(\"aria-valuemax\"),Number.isFinite(Y)?Ee.setAttribute(\"aria-valuemin\",String(Y)):Ee.removeAttribute(\"aria-valuemin\"),Ee.setAttribute(\"aria-valuenow\",String(u.currentValue)),Ee.setAttribute(\"aria-disabled\",String(g.value)),!mt(fe)&&fe!=null){let ne=Number(fe);Number.isNaN(ne)&&(ne=null),n(\"update:modelValue\",ne)}}),xl(()=>{var N;const Y=(N=r.value)==null?void 0:N.input;Y==null||Y.setAttribute(\"aria-valuenow\",`${u.currentValue}`)}),t({focus:I,blur:j}),(N,Y)=>(b(),C(\"div\",{class:U([_(a).b(),_(a).m(_(v)),_(a).is(\"disabled\",_(g)),_(a).is(\"without-controls\",!N.controls),_(a).is(\"controls-right\",_(h))]),onDragstart:Y[0]||(Y[0]=ht(()=>{},[\"prevent\"]))},[N.controls?ye((b(),C(\"span\",{key:0,role:\"button\",\"aria-label\":_(l)(\"el.inputNumber.decrease\"),class:U([_(a).e(\"decrease\"),_(a).is(\"disabled\",_(i))]),onKeydown:Bt($,[\"enter\"])},[d(_(ut),null,{default:p(()=>[_(h)?(b(),ae(_(sr),{key:0})):(b(),ae(_(wf),{key:1}))]),_:1})],42,Rne)),[[_(H0),$]]):oe(\"v-if\",!0),N.controls?ye((b(),C(\"span\",{key:1,role:\"button\",\"aria-label\":_(l)(\"el.inputNumber.increase\"),class:U([_(a).e(\"increase\"),_(a).is(\"disabled\",_(c))]),onKeydown:Bt(E,[\"enter\"])},[d(_(ut),null,{default:p(()=>[_(h)?(b(),ae(_(Qi),{key:0})):(b(),ae(_(Ef),{key:1}))]),_:1})],42,Nne)),[[_(H0),E]]):oe(\"v-if\",!0),d(_(yn),{id:N.id,ref_key:\"input\",ref:r,type:\"number\",step:N.step,\"model-value\":_(y),placeholder:N.placeholder,readonly:N.readonly,disabled:_(g),size:_(v),max:N.max,min:N.min,name:N.name,label:N.label,\"validate-event\":!1,onKeydown:[Bt(ht(E,[\"prevent\"]),[\"up\"]),Bt(ht($,[\"prevent\"]),[\"down\"])],onBlur:G,onFocus:Z,onInput:P,onChange:H},null,8,[\"id\",\"step\",\"model-value\",\"placeholder\",\"readonly\",\"disabled\",\"size\",\"max\",\"min\",\"name\",\"label\",\"onKeydown\"])],34))}});var Wne=je(Une,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue\"]]);const To=Et(Wne),qne=et({type:{type:String,values:[\"primary\",\"success\",\"warning\",\"info\",\"danger\",\"default\"],default:\"default\"},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:\"\"},icon:{type:Lt}}),jne={click:e=>e instanceof MouseEvent},Kne=[\"href\"],Gne={name:\"ElLink\"},Yne=Le({...Gne,props:qne,emits:jne,setup(e,{emit:t}){const n=e,o=He(\"link\");function l(a){n.disabled||t(\"click\",a)}return(a,r)=>(b(),C(\"a\",{class:U([_(o).b(),_(o).m(a.type),_(o).is(\"disabled\",a.disabled),_(o).is(\"underline\",a.underline&&!a.disabled)]),href:a.disabled||!a.href?void 0:a.href,onClick:l},[a.icon?(b(),ae(_(ut),{key:0},{default:p(()=>[(b(),ae(yt(a.icon)))]),_:1})):oe(\"v-if\",!0),a.$slots.default?(b(),C(\"span\",{key:1,class:U(_(o).e(\"inner\"))},[Te(a.$slots,\"default\")],2)):oe(\"v-if\",!0),a.$slots.icon?Te(a.$slots,\"icon\",{key:2}):oe(\"v-if\",!0)],10,Kne))}});var Xne=je(Yne,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/link/src/link.vue\"]]);const j4=Et(Xne);class Jne{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll(\"li\"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener(\"keydown\",o=>{let l=!1;switch(o.code){case Pt.down:{this.gotoSubIndex(this.subIndex+1),l=!0;break}case Pt.up:{this.gotoSubIndex(this.subIndex-1),l=!0;break}case Pt.tab:{Rr(t,\"mouseleave\");break}case Pt.enter:case Pt.space:{l=!0,o.currentTarget.click();break}}return l&&(o.preventDefault(),o.stopPropagation()),!1})})}}class Qne{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute(\"tabindex\",\"0\");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new Jne(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener(\"keydown\",t=>{let n=!1;switch(t.code){case Pt.down:{Rr(t.currentTarget,\"mouseenter\"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case Pt.up:{Rr(t.currentTarget,\"mouseenter\"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case Pt.tab:{Rr(t.currentTarget,\"mouseleave\");break}case Pt.enter:case Pt.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}}class Zne{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(o=>{o.nodeType===1&&new Qne(o,t)})}}const eoe=Le({name:\"ElMenuCollapseTransition\",setup(){const e=He(\"menu\");return{listeners:{onBeforeEnter:n=>n.style.opacity=\"0.2\",onEnter(n,o){go(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=\"1\",o()},onAfterEnter(n){Rn(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=\"\"},onBeforeLeave(n){n.dataset||(n.dataset={}),bl(n,e.m(\"collapse\"))?(Rn(n,e.m(\"collapse\")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),go(n,e.m(\"collapse\"))):(go(n,e.m(\"collapse\")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),Rn(n,e.m(\"collapse\"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow=\"hidden\"},onLeave(n){go(n,\"horizontal-collapse-transition\"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function toe(e,t,n,o,l,a){return b(),ae(Zt,An({mode:\"out-in\"},e.listeners),{default:p(()=>[Te(e.$slots,\"default\")]),_:3},16)}var noe=je(eoe,[[\"render\",toe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue\"]]);function K4(e,t){const n=R(()=>{let l=e.parent;const a=[t.value];for(;l.type.name!==\"ElMenu\";)l.props.index&&a.unshift(l.props.index),l=l.parent;return a});return{parentMenu:R(()=>{let l=e.parent;for(;l&&![\"ElMenu\",\"ElSubMenu\"].includes(l.type.name);)l=l.parent;return l}),indexPath:n}}function ooe(e){return R(()=>{const n=e.backgroundColor;return n?new p4(n).shade(20).toString():\"\"})}const G4=(e,t)=>{const n=He(\"menu\");return R(()=>n.cssVarBlock({\"text-color\":e.textColor||\"\",\"hover-text-color\":e.textColor||\"\",\"bg-color\":e.backgroundColor||\"\",\"hover-bg-color\":ooe(e).value||\"\",\"active-color\":e.activeTextColor||\"\",level:`${t}`}))},loe=et({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:Lt},expandOpenIcon:{type:Lt},collapseCloseIcon:{type:Lt},collapseOpenIcon:{type:Lt}}),hs=\"ElSubMenu\";var C2=Le({name:hs,props:loe,setup(e,{slots:t,expose:n}){const o=ft(),{indexPath:l,parentMenu:a}=K4(o,R(()=>e.index)),r=He(\"menu\"),u=He(\"sub-menu\"),s=Ze(\"rootMenu\");s||gn(hs,\"can not inject root menu\");const i=Ze(`subMenu:${a.value.uid}`);i||gn(hs,\"can not inject sub menu\");const c=z({}),m=z({});let h;const v=z(!1),g=z(),y=z(null),A=R(()=>Z.value===\"horizontal\"&&F.value?\"bottom-start\":\"right-start\"),w=R(()=>Z.value===\"horizontal\"&&F.value||Z.value===\"vertical\"&&!s.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?B.value?e.expandOpenIcon:e.expandCloseIcon:sr:e.collapseCloseIcon&&e.collapseOpenIcon?B.value?e.collapseOpenIcon:e.collapseCloseIcon:pa),F=R(()=>i.level===0),E=R(()=>e.popperAppendToBody===void 0?F.value:Boolean(e.popperAppendToBody)),$=R(()=>s.props.collapse?`${r.namespace.value}-zoom-in-left`:`${r.namespace.value}-zoom-in-top`),T=R(()=>Z.value===\"horizontal\"&&F.value?[\"bottom-start\",\"bottom-end\",\"top-start\",\"top-end\",\"right-start\",\"left-start\"]:[\"right-start\",\"left-start\",\"bottom-start\",\"bottom-end\",\"top-start\",\"top-end\"]),B=R(()=>s.openedMenus.includes(e.index)),P=R(()=>{let ee=!1;return Object.values(c.value).forEach(xe=>{xe.active&&(ee=!0)}),Object.values(m.value).forEach(xe=>{xe.active&&(ee=!0)}),ee}),H=R(()=>s.props.backgroundColor||\"\"),I=R(()=>s.props.activeTextColor||\"\"),j=R(()=>s.props.textColor||\"\"),Z=R(()=>s.props.mode),G=It({index:e.index,indexPath:l,active:P}),N=R(()=>Z.value!==\"horizontal\"?{color:j.value}:{borderBottomColor:P.value?s.props.activeTextColor?I.value:\"\":\"transparent\",color:P.value?I.value:j.value}),Y=()=>{var ee,xe,$e;return($e=(xe=(ee=y.value)==null?void 0:ee.popperRef)==null?void 0:xe.popperInstanceRef)==null?void 0:$e.destroy()},ge=ee=>{ee||Y()},fe=()=>{s.props.menuTrigger===\"hover\"&&s.props.mode===\"horizontal\"||s.props.collapse&&s.props.mode===\"vertical\"||e.disabled||s.handleSubMenuClick({index:e.index,indexPath:l.value,active:P.value})},Ee=(ee,xe=e.showTimeout)=>{var $e;ee.type!==\"focus\"&&(s.props.menuTrigger===\"click\"&&s.props.mode===\"horizontal\"||!s.props.collapse&&s.props.mode===\"vertical\"||e.disabled||(i.mouseInChild.value=!0,h==null||h(),{stop:h}=Ql(()=>{s.openMenu(e.index,l.value)},xe),E.value&&(($e=a.value.vnode.el)==null||$e.dispatchEvent(new MouseEvent(\"mouseenter\")))))},ne=(ee=!1)=>{var xe,$e;s.props.menuTrigger===\"click\"&&s.props.mode===\"horizontal\"||!s.props.collapse&&s.props.mode===\"vertical\"||(h==null||h(),i.mouseInChild.value=!1,{stop:h}=Ql(()=>!v.value&&s.closeMenu(e.index,l.value),e.hideTimeout),E.value&&ee&&((xe=o.parent)==null?void 0:xe.type.name)===\"ElSubMenu\"&&(($e=i.handleMouseleave)==null||$e.call(i,!0)))};Ve(()=>s.props.collapse,ee=>ge(Boolean(ee)));{const ee=$e=>{m.value[$e.index]=$e},xe=$e=>{delete m.value[$e.index]};$t(`subMenu:${o.uid}`,{addSubMenu:ee,removeSubMenu:xe,handleMouseleave:ne,mouseInChild:v,level:i.level+1})}return n({opened:B}),at(()=>{s.addSubMenu(G),i.addSubMenu(G)}),Rt(()=>{i.removeSubMenu(G),s.removeSubMenu(G)}),()=>{var ee;const xe=[(ee=t.title)==null?void 0:ee.call(t),Ne(ut,{class:u.e(\"icon-arrow\"),style:{transform:B.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&s.props.collapse?\"none\":\"rotateZ(180deg)\":\"none\"}},{default:()=>tt(w.value)?Ne(o.appContext.components[w.value]):Ne(w.value)})],$e=G4(s.props,i.level+1),x=s.isMenuPopup?Ne(Sn,{ref:y,visible:B.value,effect:\"light\",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:A.value,teleported:E.value,fallbackPlacements:T.value,transition:$.value,gpuAcceleration:!1},{content:()=>{var W;return Ne(\"div\",{class:[r.m(Z.value),r.m(\"popup-container\"),e.popperClass],onMouseenter:we=>Ee(we,100),onMouseleave:()=>ne(!0),onFocus:we=>Ee(we,100)},[Ne(\"ul\",{class:[r.b(),r.m(\"popup\"),r.m(`popup-${A.value}`)],style:$e.value},[(W=t.default)==null?void 0:W.call(t)])])},default:()=>Ne(\"div\",{class:u.e(\"title\"),style:[N.value,{backgroundColor:H.value}],onClick:fe},xe)}):Ne(We,{},[Ne(\"div\",{class:u.e(\"title\"),style:[N.value,{backgroundColor:H.value}],ref:g,onClick:fe},xe),Ne(T4,{},{default:()=>{var W;return ye(Ne(\"ul\",{role:\"menu\",class:[r.b(),r.m(\"inline\")],style:$e.value},[(W=t.default)==null?void 0:W.call(t)]),[[Be,B.value]])}})]);return Ne(\"li\",{class:[u.b(),u.is(\"active\",P.value),u.is(\"opened\",B.value),u.is(\"disabled\",e.disabled)],role:\"menuitem\",ariaHaspopup:!0,ariaExpanded:B.value,onMouseenter:Ee,onMouseleave:()=>ne(!0),onFocus:Ee},[x])}}});const aoe=et({mode:{type:String,values:[\"horizontal\",\"vertical\"],default:\"vertical\"},defaultActive:{type:String,default:\"\"},defaultOpeneds:{type:Ue(Array),default:()=>Fo([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:[\"hover\",\"click\"],default:\"hover\"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0}}),_s=e=>Array.isArray(e)&&e.every(t=>tt(t)),roe={close:(e,t)=>tt(e)&&_s(t),open:(e,t)=>tt(e)&&_s(t),select:(e,t,n,o)=>tt(e)&&_s(t)&&ct(n)&&(o===void 0||o instanceof Promise)};var uoe=Le({name:\"ElMenu\",props:aoe,emits:roe,setup(e,{emit:t,slots:n,expose:o}){const l=ft(),a=l.appContext.config.globalProperties.$router,r=z(),u=He(\"menu\"),s=He(\"sub-menu\"),i=z(-1),c=z(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),m=z(e.defaultActive),h=z({}),v=z({}),g=R(()=>e.mode===\"horizontal\"||e.mode===\"vertical\"&&e.collapse),y=()=>{const j=m.value&&h.value[m.value];if(!j||e.mode===\"horizontal\"||e.collapse)return;j.indexPath.forEach(G=>{const N=v.value[G];N&&A(G,N.indexPath)})},A=(j,Z)=>{c.value.includes(j)||(e.uniqueOpened&&(c.value=c.value.filter(G=>Z.includes(G))),c.value.push(j),t(\"open\",j,Z))},w=(j,Z)=>{const G=c.value.indexOf(j);G!==-1&&c.value.splice(G,1),t(\"close\",j,Z)},F=({index:j,indexPath:Z})=>{c.value.includes(j)?w(j,Z):A(j,Z)},E=j=>{(e.mode===\"horizontal\"||e.collapse)&&(c.value=[]);const{index:Z,indexPath:G}=j;if(!(Z===void 0||G===void 0))if(e.router&&a){const N=j.route||Z,Y=a.push(N).then(ge=>(ge||(m.value=Z),ge));t(\"select\",Z,G,{index:Z,indexPath:G,route:N},Y)}else m.value=Z,t(\"select\",Z,G,{index:Z,indexPath:G})},$=j=>{const Z=h.value,G=Z[j]||m.value&&Z[m.value]||Z[e.defaultActive];G?m.value=G.index:m.value=j},T=()=>{var j,Z;if(!r.value)return-1;const G=Array.from((Z=(j=r.value)==null?void 0:j.childNodes)!=null?Z:[]).filter(ee=>ee.nodeName!==\"#text\"||ee.nodeValue),N=64,Y=Number.parseInt(getComputedStyle(r.value).paddingLeft,10),ge=Number.parseInt(getComputedStyle(r.value).paddingRight,10),fe=r.value.clientWidth-Y-ge;let Ee=0,ne=0;return G.forEach((ee,xe)=>{Ee+=ee.offsetWidth||0,Ee<=fe-N&&(ne=xe+1)}),ne===G.length?-1:ne},B=(j,Z=33.34)=>{let G;return()=>{G&&clearTimeout(G),G=setTimeout(()=>{j()},Z)}};let P=!0;const H=()=>{const j=()=>{i.value=-1,rt(()=>{i.value=T()})};P?j():B(j)(),P=!1};Ve(()=>e.defaultActive,j=>{h.value[j]||(m.value=\"\"),$(j)}),Ve(()=>e.collapse,j=>{j&&(c.value=[])}),Ve(h.value,y);let I;yo(()=>{e.mode===\"horizontal\"&&e.ellipsis?I=ro(r,H).stop:I==null||I()});{const j=Y=>{v.value[Y.index]=Y},Z=Y=>{delete v.value[Y.index]};$t(\"rootMenu\",It({props:e,openedMenus:c,items:h,subMenus:v,activeIndex:m,isMenuPopup:g,addMenuItem:Y=>{h.value[Y.index]=Y},removeMenuItem:Y=>{delete h.value[Y.index]},addSubMenu:j,removeSubMenu:Z,openMenu:A,closeMenu:w,handleMenuItemClick:E,handleSubMenuClick:F})),$t(`subMenu:${l.uid}`,{addSubMenu:j,removeSubMenu:Z,mouseInChild:z(!1),level:0})}return at(()=>{e.mode===\"horizontal\"&&new Zne(l.vnode.el,u.namespace.value)}),o({open:Z=>{const{indexPath:G}=v.value[Z];G.forEach(N=>A(N,G))},close:w,handleResize:H}),()=>{var j,Z;let G=(Z=(j=n.default)==null?void 0:j.call(n))!=null?Z:[];const N=[];if(e.mode===\"horizontal\"&&r.value){const fe=l2(G),Ee=i.value===-1?fe:fe.slice(0,i.value),ne=i.value===-1?[]:fe.slice(i.value);(ne==null?void 0:ne.length)&&e.ellipsis&&(G=Ee,N.push(Ne(C2,{index:\"sub-menu-more\",class:s.e(\"hide-arrow\")},{title:()=>Ne(ut,{class:s.e(\"icon-more\")},{default:()=>Ne(Cf)}),default:()=>ne})))}const Y=G4(e,0),ge=Ne(\"ul\",{key:String(e.collapse),role:\"menubar\",ref:r,style:Y.value,class:{[u.b()]:!0,[u.m(e.mode)]:!0,[u.m(\"collapse\")]:e.collapse}},[...G,...N]);return e.collapseTransition&&e.mode===\"vertical\"?Ne(noe,()=>ge):ge}}});const soe=et({index:{type:Ue([String,null]),default:null},route:{type:Ue([String,Object])},disabled:Boolean}),ioe={click:e=>tt(e.index)&&Array.isArray(e.indexPath)},ms=\"ElMenuItem\",coe=Le({name:ms,components:{ElTooltip:Sn},props:soe,emits:ioe,setup(e,{emit:t}){const n=ft(),o=Ze(\"rootMenu\"),l=He(\"menu\"),a=He(\"menu-item\");o||gn(ms,\"can not inject root menu\");const{parentMenu:r,indexPath:u}=K4(n,$n(e,\"index\")),s=Ze(`subMenu:${r.value.uid}`);s||gn(ms,\"can not inject sub menu\");const i=R(()=>e.index===o.activeIndex),c=It({index:e.index,indexPath:u,active:i}),m=()=>{e.disabled||(o.handleMenuItemClick({index:e.index,indexPath:u.value,route:e.route}),t(\"click\",c))};return at(()=>{s.addSubMenu(c),o.addMenuItem(c)}),Rt(()=>{s.removeSubMenu(c),o.removeMenuItem(c)}),{Effect:CJ,parentMenu:r,rootMenu:o,active:i,nsMenu:l,nsMenuItem:a,handleClick:m}}});function doe(e,t,n,o,l,a){const r=Qe(\"el-tooltip\");return b(),C(\"li\",{class:U([e.nsMenuItem.b(),e.nsMenuItem.is(\"active\",e.active),e.nsMenuItem.is(\"disabled\",e.disabled)]),role:\"menuitem\",tabindex:\"-1\",onClick:t[0]||(t[0]=(...u)=>e.handleClick&&e.handleClick(...u))},[e.parentMenu.type.name===\"ElMenu\"&&e.rootMenu.props.collapse&&e.$slots.title?(b(),ae(r,{key:0,effect:e.Effect.DARK,placement:\"right\",\"fallback-placements\":[\"left\"],persistent:\"\"},{content:p(()=>[Te(e.$slots,\"title\")]),default:p(()=>[f(\"div\",{class:U(e.nsMenu.be(\"tooltip\",\"trigger\"))},[Te(e.$slots,\"default\")],2)]),_:3},8,[\"effect\"])):(b(),C(We,{key:1},[Te(e.$slots,\"default\"),Te(e.$slots,\"title\")],64))],2)}var Y4=je(coe,[[\"render\",doe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue\"]]);const foe={title:String},poe=\"ElMenuItemGroup\",voe=Le({name:poe,props:foe,setup(){return{ns:He(\"menu-item-group\")}}});function hoe(e,t,n,o,l,a){return b(),C(\"li\",{class:U(e.ns.b())},[f(\"div\",{class:U(e.ns.e(\"title\"))},[e.$slots.title?Te(e.$slots,\"title\",{key:1}):(b(),C(We,{key:0},[D(ce(e.title),1)],64))],2),f(\"ul\",null,[Te(e.$slots,\"default\")])],2)}var X4=je(voe,[[\"render\",hoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue\"]]);const _oe=Et(uoe,{MenuItem:Y4,MenuItemGroup:X4,SubMenu:C2}),moe=Nt(Y4);Nt(X4);const goe=Nt(C2),boe=et({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:Lt}}),yoe={click:e=>e instanceof MouseEvent},woe=[\"disabled\",\"aria-disabled\"],Coe={key:0},Eoe={name:\"ElPaginationPrev\"},Aoe=Le({...Eoe,props:boe,emits:yoe,setup(e){const t=e,n=R(()=>t.disabled||t.currentPage<=1);return(o,l)=>(b(),C(\"button\",{type:\"button\",class:\"btn-prev\",disabled:_(n),\"aria-disabled\":_(n),onClick:l[0]||(l[0]=a=>o.$emit(\"click\",a))},[o.prevText?(b(),C(\"span\",Coe,ce(o.prevText),1)):(b(),ae(_(ut),{key:1},{default:p(()=>[(b(),ae(yt(o.prevIcon)))]),_:1}))],8,woe))}});var Foe=je(Aoe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/prev.vue\"]]);const xoe=et({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:Lt}}),$oe=[\"disabled\",\"aria-disabled\"],Doe={key:0},Boe={name:\"ElPaginationNext\"},Soe=Le({...Boe,props:xoe,emits:[\"click\"],setup(e){const t=e,n=R(()=>t.disabled||t.currentPage===t.pageCount||t.pageCount===0);return(o,l)=>(b(),C(\"button\",{type:\"button\",class:\"btn-next\",disabled:_(n),\"aria-disabled\":_(n),onClick:l[0]||(l[0]=a=>o.$emit(\"click\",a))},[o.nextText?(b(),C(\"span\",Doe,ce(o.nextText),1)):(b(),ae(_(ut),{key:1},{default:p(()=>[(b(),ae(yt(o.nextIcon)))]),_:1}))],8,$oe))}});var koe=je(Soe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/next.vue\"]]);const J4=\"ElSelectGroup\",Wu=\"ElSelect\";function Poe(e,t){const n=Ze(Wu),o=Ze(J4,{disabled:!1}),l=R(()=>Object.prototype.toString.call(e.value).toLowerCase()===\"[object object]\"),a=R(()=>n.props.multiple?m(n.props.modelValue,e.value):h(e.value,n.props.modelValue)),r=R(()=>{if(n.props.multiple){const y=n.props.modelValue||[];return!a.value&&y.length>=n.props.multipleLimit&&n.props.multipleLimit>0}else return!1}),u=R(()=>e.label||(l.value?\"\":e.value)),s=R(()=>e.value||e.label||\"\"),i=R(()=>e.disabled||t.groupDisabled||r.value),c=ft(),m=(y=[],A)=>{if(l.value){const w=n.props.valueKey;return y&&y.some(F=>it(Jt(F,w))===Jt(A,w))}else return y&&y.includes(A)},h=(y,A)=>{if(l.value){const{valueKey:w}=n.props;return Jt(y,w)===Jt(A,w)}else return y===A},v=()=>{!e.disabled&&!o.disabled&&(n.hoverIndex=n.optionsArray.indexOf(c.proxy))};Ve(()=>u.value,()=>{!e.created&&!n.props.remote&&n.setSelected()}),Ve(()=>e.value,(y,A)=>{const{remote:w,valueKey:F}=n.props;if(Object.is(y,A)||(n.onOptionDestroy(A,c.proxy),n.onOptionCreate(c.proxy)),!e.created&&!w){if(F&&typeof y==\"object\"&&typeof A==\"object\"&&y[F]===A[F])return;n.setSelected()}}),Ve(()=>o.disabled,()=>{t.groupDisabled=o.disabled},{immediate:!0});const{queryChange:g}=it(n);return Ve(g,y=>{const{query:A}=_(y),w=new RegExp(Gm(A),\"i\");t.visible=w.test(u.value)||e.created,t.visible||n.filteredOptionsCount--}),{select:n,currentLabel:u,currentValue:s,itemSelected:a,isDisabled:i,hoverItem:v}}const Loe=Le({name:\"ElOption\",componentName:\"ElOption\",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=He(\"select\"),n=It({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:o,itemSelected:l,isDisabled:a,select:r,hoverItem:u}=Poe(e,n),{visible:s,hover:i}=On(n),c=ft().proxy;r.onOptionCreate(c),Rt(()=>{const h=c.value,{selected:v}=r,y=(r.props.multiple?v:[v]).some(A=>A.value===c.value);rt(()=>{r.cachedOptions.get(h)===c&&!y&&r.cachedOptions.delete(h)}),r.onOptionDestroy(h,c)});function m(){e.disabled!==!0&&n.groupDisabled!==!0&&r.handleOptionSelect(c,!0)}return{ns:t,currentLabel:o,itemSelected:l,isDisabled:a,select:r,hoverItem:u,visible:s,hover:i,selectOptionClick:m,states:n}}});function zoe(e,t,n,o,l,a){return ye((b(),C(\"li\",{class:U([e.ns.be(\"dropdown\",\"item\"),e.ns.is(\"disabled\",e.isDisabled),{selected:e.itemSelected,hover:e.hover}]),onMouseenter:t[0]||(t[0]=(...r)=>e.hoverItem&&e.hoverItem(...r)),onClick:t[1]||(t[1]=ht((...r)=>e.selectOptionClick&&e.selectOptionClick(...r),[\"stop\"]))},[Te(e.$slots,\"default\",{},()=>[f(\"span\",null,ce(e.currentLabel),1)])],34)),[[Be,e.visible]])}var E2=je(Loe,[[\"render\",zoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/option.vue\"]]);const Toe=Le({name:\"ElSelectDropdown\",componentName:\"ElSelectDropdown\",setup(){const e=Ze(Wu),t=He(\"select\"),n=R(()=>e.props.popperClass),o=R(()=>e.props.multiple),l=R(()=>e.props.fitInputWidth),a=z(\"\");function r(){var u;a.value=`${(u=e.selectWrapper)==null?void 0:u.offsetWidth}px`}return at(()=>{r(),ro(e.selectWrapper,r)}),{ns:t,minWidth:a,popperClass:n,isMultiple:o,isFitInputWidth:l}}});function Moe(e,t,n,o,l,a){return b(),C(\"div\",{class:U([e.ns.b(\"dropdown\"),e.ns.is(\"multiple\",e.isMultiple),e.popperClass]),style:nt({[e.isFitInputWidth?\"width\":\"minWidth\"]:e.minWidth})},[Te(e.$slots,\"default\")],6)}var Voe=je(Toe,[[\"render\",Moe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/select-dropdown.vue\"]]);function Hoe(e){const{t}=bn();return It({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:\"\",hoverIndex:-1,query:\"\",previousQuery:null,inputHovering:!1,cachedPlaceHolder:\"\",currentPlaceholder:t(\"el.select.placeholder\"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,prefixWidth:11,tagInMultiLine:!1})}const Ioe=(e,t,n)=>{const{t:o}=bn(),l=He(\"select\"),a=z(null),r=z(null),u=z(null),s=z(null),i=z(null),c=z(null),m=z(-1),h=In({query:\"\"}),v=In(\"\"),{form:g,formItem:y}=Sl(),A=R(()=>!e.filterable||e.multiple||!t.visible),w=R(()=>e.disabled||(g==null?void 0:g.disabled)),F=R(()=>{const K=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:e.modelValue!==void 0&&e.modelValue!==null&&e.modelValue!==\"\";return e.clearable&&!w.value&&t.inputHovering&&K}),E=R(()=>e.remote&&e.filterable&&!e.remoteShowSuffix?\"\":e.suffixIcon),$=R(()=>l.is(\"reverse\",E.value&&t.visible&&e.suffixTransition)),T=R(()=>e.remote?300:0),B=R(()=>e.loading?e.loadingText||o(\"el.select.loading\"):e.remote&&t.query===\"\"&&t.options.size===0?!1:e.filterable&&t.query&&t.options.size>0&&t.filteredOptionsCount===0?e.noMatchText||o(\"el.select.noMatch\"):t.options.size===0?e.noDataText||o(\"el.select.noData\"):null),P=R(()=>Array.from(t.options.values())),H=R(()=>Array.from(t.cachedOptions.values())),I=R(()=>{const K=P.value.filter(ue=>!ue.created).some(ue=>ue.currentLabel===t.query);return e.filterable&&e.allowCreate&&t.query!==\"\"&&!K}),j=Qt(),Z=R(()=>[\"small\"].includes(j.value)?\"small\":\"default\"),G=R({get(){return t.visible&&B.value!==!1},set(K){t.visible=K}});Ve([()=>w.value,()=>j.value,()=>g==null?void 0:g.size],()=>{rt(()=>{N()})}),Ve(()=>e.placeholder,K=>{t.cachedPlaceHolder=t.currentPlaceholder=K}),Ve(()=>e.modelValue,(K,ue)=>{e.multiple&&(N(),K&&K.length>0||r.value&&t.query!==\"\"?t.currentPlaceholder=\"\":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query=\"\",Y(t.query))),Ee(),e.filterable&&!e.multiple&&(t.inputLength=20),!Us(K,ue)&&e.validateEvent&&(y==null||y.validate(\"change\").catch(q=>void 0))},{flush:\"post\",deep:!0}),Ve(()=>t.visible,K=>{var ue,q,k;K?((q=(ue=u.value)==null?void 0:ue.updatePopper)==null||q.call(ue),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?\"\":t.selectedLabel,e.multiple?(k=r.value)==null||k.focus():t.selectedLabel&&(t.currentPlaceholder=`${t.selectedLabel}`,t.selectedLabel=\"\"),Y(t.query),!e.multiple&&!e.remote&&(h.value.query=\"\",Ca(h),Ca(v)))):(r.value&&r.value.blur(),t.query=\"\",t.previousQuery=null,t.selectedLabel=\"\",t.inputLength=20,t.menuVisibleOnFocus=!1,ee(),rt(()=>{r.value&&r.value.value===\"\"&&t.selected.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)}),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit(\"visible-change\",K)}),Ve(()=>t.options.entries(),()=>{var K,ue,q;if(!_t)return;(ue=(K=u.value)==null?void 0:K.updatePopper)==null||ue.call(K),e.multiple&&N();const k=((q=i.value)==null?void 0:q.querySelectorAll(\"input\"))||[];Array.from(k).includes(document.activeElement)||Ee(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&fe()},{flush:\"post\"}),Ve(()=>t.hoverIndex,K=>{typeof K==\"number\"&&K>-1?m.value=P.value[K]||{}:m.value={},P.value.forEach(ue=>{ue.hover=m.value===ue})});const N=()=>{e.collapseTags&&!e.filterable||rt(()=>{var K,ue;if(!a.value)return;const q=a.value.$el.querySelector(\"input\"),k=s.value,Me=hX(j.value||(g==null?void 0:g.size));q.style.height=`${(t.selected.length===0?Me:Math.max(k?k.clientHeight+(k.clientHeight>Me?6:0):0,Me))-2}px`,t.tagInMultiLine=Number.parseFloat(q.style.height)>=Me,t.visible&&B.value!==!1&&((ue=(K=u.value)==null?void 0:K.updatePopper)==null||ue.call(K))})},Y=async K=>{if(!(t.previousQuery===K||t.isOnComposition)){if(t.previousQuery===null&&(typeof e.filterMethod==\"function\"||typeof e.remoteMethod==\"function\")){t.previousQuery=K;return}t.previousQuery=K,rt(()=>{var ue,q;t.visible&&((q=(ue=u.value)==null?void 0:ue.updatePopper)==null||q.call(ue))}),t.hoverIndex=-1,e.multiple&&e.filterable&&rt(()=>{const ue=r.value.value.length*15+20;t.inputLength=e.collapseTags?Math.min(50,ue):ue,ge(),N()}),e.remote&&typeof e.remoteMethod==\"function\"?(t.hoverIndex=-1,e.remoteMethod(K)):typeof e.filterMethod==\"function\"?(e.filterMethod(K),Ca(v)):(t.filteredOptionsCount=t.optionsCount,h.value.query=K,Ca(h),Ca(v)),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&(await rt(),fe())}},ge=()=>{t.currentPlaceholder!==\"\"&&(t.currentPlaceholder=r.value.value?\"\":t.cachedPlaceHolder)},fe=()=>{const K=P.value.filter(k=>k.visible&&!k.disabled&&!k.states.groupDisabled),ue=K.find(k=>k.created),q=K[0];t.hoverIndex=se(P.value,ue||q)},Ee=()=>{var K;if(e.multiple)t.selectedLabel=\"\";else{const q=ne(e.modelValue);(K=q.props)!=null&&K.created?(t.createdLabel=q.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=q.currentLabel,t.selected=q,e.filterable&&(t.query=t.selectedLabel);return}const ue=[];Array.isArray(e.modelValue)&&e.modelValue.forEach(q=>{ue.push(ne(q))}),t.selected=ue,rt(()=>{N()})},ne=K=>{let ue;const q=Lr(K).toLowerCase()===\"object\",k=Lr(K).toLowerCase()===\"null\",Me=Lr(K).toLowerCase()===\"undefined\";for(let Fe=t.cachedOptions.size-1;Fe>=0;Fe--){const At=H.value[Fe];if(q?Jt(At.value,e.valueKey)===Jt(K,e.valueKey):At.value===K){ue={value:K,currentLabel:At.currentLabel,isDisabled:At.isDisabled};break}}if(ue)return ue;const X=q?K.label:!k&&!Me?K:\"\",de={value:K,currentLabel:X};return e.multiple&&(de.hitState=!1),de},ee=()=>{setTimeout(()=>{const K=e.valueKey;e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map(ue=>P.value.findIndex(q=>Jt(q,K)===Jt(ue,K)))):t.hoverIndex=-1:t.hoverIndex=P.value.findIndex(ue=>Xe(ue)===Xe(t.selected))},300)},xe=()=>{var K,ue;$e(),(ue=(K=u.value)==null?void 0:K.updatePopper)==null||ue.call(K),e.multiple&&!e.filterable&&N()},$e=()=>{var K;t.inputWidth=(K=a.value)==null?void 0:K.$el.getBoundingClientRect().width},x=()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,Y(t.query))},W=Jl(()=>{x()},T.value),we=Jl(K=>{Y(K.target.value)},T.value),Ae=K=>{Us(e.modelValue,K)||n.emit(uo,K)},ke=K=>{if(K.target.value.length<=0&&!te()){const ue=e.modelValue.slice();ue.pop(),n.emit(Ct,ue),Ae(ue)}K.target.value.length===1&&e.modelValue.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)},ve=(K,ue)=>{const q=t.selected.indexOf(ue);if(q>-1&&!w.value){const k=e.modelValue.slice();k.splice(q,1),n.emit(Ct,k),Ae(k),n.emit(\"remove-tag\",ue.value)}K.stopPropagation()},ze=K=>{K.stopPropagation();const ue=e.multiple?[]:\"\";if(typeof ue!=\"string\")for(const q of t.selected)q.isDisabled&&ue.push(q.value);n.emit(Ct,ue),Ae(ue),t.hoverIndex=-1,t.visible=!1,n.emit(\"clear\")},Ke=(K,ue)=>{var q;if(e.multiple){const k=(e.modelValue||[]).slice(),Me=se(k,K.value);Me>-1?k.splice(Me,1):(e.multipleLimit<=0||k.length<e.multipleLimit)&&k.push(K.value),n.emit(Ct,k),Ae(k),K.created&&(t.query=\"\",Y(\"\"),t.inputLength=20),e.filterable&&((q=r.value)==null||q.focus())}else n.emit(Ct,K.value),Ae(K.value),t.visible=!1;t.isSilentBlur=ue,le(),!t.visible&&rt(()=>{L(K)})},se=(K=[],ue)=>{if(!ct(ue))return K.indexOf(ue);const q=e.valueKey;let k=-1;return K.some((Me,X)=>it(Jt(Me,q))===Jt(ue,q)?(k=X,!0):!1),k},le=()=>{t.softFocus=!0;const K=r.value||a.value;K&&(K==null||K.focus())},L=K=>{var ue,q,k,Me,X;const de=Array.isArray(K)?K[0]:K;let Fe=null;if(de!=null&&de.value){const At=P.value.filter(De=>De.value===de.value);At.length>0&&(Fe=At[0].$el)}if(u.value&&Fe){const At=(Me=(k=(q=(ue=u.value)==null?void 0:ue.popperRef)==null?void 0:q.contentRef)==null?void 0:k.querySelector)==null?void 0:Me.call(k,`.${l.be(\"dropdown\",\"wrap\")}`);At&&eg(At,Fe)}(X=c.value)==null||X.handleScroll()},S=K=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(K.value,K),t.cachedOptions.set(K.value,K)},V=(K,ue)=>{t.options.get(K)===ue&&(t.optionsCount--,t.filteredOptionsCount--,t.options.delete(K))},O=K=>{K.code!==Pt.backspace&&te(!1),t.inputLength=r.value.value.length*15+20,N()},te=K=>{if(!Array.isArray(t.selected))return;const ue=t.selected[t.selected.length-1];if(!!ue)return K===!0||K===!1?(ue.hitState=K,K):(ue.hitState=!ue.hitState,ue.hitState)},_e=K=>{const ue=K.target.value;if(K.type===\"compositionend\")t.isOnComposition=!1,rt(()=>Y(ue));else{const q=ue[ue.length-1]||\"\";t.isOnComposition=!Sf(q)}},pe=()=>{rt(()=>L(t.selected))},Ce=K=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(e.filterable&&!t.visible&&(t.menuVisibleOnFocus=!0),t.visible=!0),n.emit(\"focus\",K))},be=()=>{var K;t.visible=!1,(K=a.value)==null||K.blur()},re=K=>{rt(()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit(\"blur\",K)}),t.softFocus=!1},me=K=>{ze(K)},Re=()=>{t.visible=!1},Q=K=>{t.visible&&(K.preventDefault(),K.stopPropagation(),t.visible=!1)},Pe=()=>{var K;w.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:t.visible=!t.visible,t.visible&&((K=r.value||a.value)==null||K.focus()))},Ge=()=>{t.visible?P.value[t.hoverIndex]&&Ke(P.value[t.hoverIndex],void 0):Pe()},Xe=K=>ct(K.value)?Jt(K.value,e.valueKey):K.value,he=R(()=>P.value.filter(K=>K.visible).every(K=>K.disabled)),Ie=K=>{if(!t.visible){t.visible=!0;return}if(!(t.options.size===0||t.filteredOptionsCount===0)&&!t.isOnComposition&&!he.value){K===\"next\"?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):K===\"prev\"&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const ue=P.value[t.hoverIndex];(ue.disabled===!0||ue.states.groupDisabled===!0||!ue.visible)&&Ie(K),rt(()=>L(m.value))}};return{optionsArray:P,selectSize:j,handleResize:xe,debouncedOnInputChange:W,debouncedQueryChange:we,deletePrevTag:ke,deleteTag:ve,deleteSelected:ze,handleOptionSelect:Ke,scrollToOption:L,readonly:A,resetInputHeight:N,showClose:F,iconComponent:E,iconReverse:$,showNewOption:I,collapseTagSize:Z,setSelected:Ee,managePlaceholder:ge,selectDisabled:w,emptyText:B,toggleLastOptionHitState:te,resetInputState:O,handleComposition:_e,onOptionCreate:S,onOptionDestroy:V,handleMenuEnter:pe,handleFocus:Ce,blur:be,handleBlur:re,handleClearClick:me,handleClose:Re,handleKeydownEscape:Q,toggleMenu:Pe,selectOption:Ge,getValueKey:Xe,navigateOptions:Ie,dropMenuVisible:G,queryChange:h,groupQueryChange:v,reference:a,input:r,tooltipRef:u,tags:s,selectWrapper:i,scrollbar:c}},J0=\"ElSelect\",Roe=Le({name:J0,componentName:J0,components:{ElInput:yn,ElSelectMenu:Voe,ElOption:E2,ElTag:Nee,ElScrollbar:un,ElTooltip:Sn,ElIcon:ut},directives:{ClickOutside:h4},props:{name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:\"off\"},automaticDropdown:Boolean,size:{type:String,validator:o2},effect:{type:String,default:\"light\"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:\"\"},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:\"value\"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},teleported:m2.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:Lt,default:ir},fitInputWidth:{type:Boolean,default:!1},suffixIcon:{type:Lt,default:sr},tagType:{...z4.type,default:\"info\"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:{type:Boolean,default:!1},suffixTransition:{type:Boolean,default:!0},placement:{type:String,values:Ru,default:\"bottom-start\"}},emits:[Ct,uo,\"remove-tag\",\"clear\",\"visible-change\",\"focus\",\"blur\"],setup(e,t){const n=He(\"select\"),o=He(\"input\"),{t:l}=bn(),a=Hoe(e),{optionsArray:r,selectSize:u,readonly:s,handleResize:i,collapseTagSize:c,debouncedOnInputChange:m,debouncedQueryChange:h,deletePrevTag:v,deleteTag:g,deleteSelected:y,handleOptionSelect:A,scrollToOption:w,setSelected:F,resetInputHeight:E,managePlaceholder:$,showClose:T,selectDisabled:B,iconComponent:P,iconReverse:H,showNewOption:I,emptyText:j,toggleLastOptionHitState:Z,resetInputState:G,handleComposition:N,onOptionCreate:Y,onOptionDestroy:ge,handleMenuEnter:fe,handleFocus:Ee,blur:ne,handleBlur:ee,handleClearClick:xe,handleClose:$e,handleKeydownEscape:x,toggleMenu:W,selectOption:we,getValueKey:Ae,navigateOptions:ke,dropMenuVisible:ve,reference:ze,input:Ke,tooltipRef:se,tags:le,selectWrapper:L,scrollbar:S,queryChange:V,groupQueryChange:O}=Ioe(e,a,t),{focus:te}=CX(ze),{inputWidth:_e,selected:pe,inputLength:Ce,filteredOptionsCount:be,visible:re,softFocus:me,selectedLabel:Re,hoverIndex:Q,query:Pe,inputHovering:Ge,currentPlaceholder:Xe,menuVisibleOnFocus:he,isOnComposition:Ie,isSilentBlur:K,options:ue,cachedOptions:q,optionsCount:k,prefixWidth:Me,tagInMultiLine:X}=On(a),de=R(()=>{const Dt=[n.b()],Ln=_(u);return Ln&&Dt.push(n.m(Ln)),e.disabled&&Dt.push(n.m(\"disabled\")),Dt}),Fe=R(()=>({maxWidth:`${_(_e)-32}px`,width:\"100%\"})),At=R(()=>({maxWidth:`${_(_e)>123?_(_e)-123:_(_e)-75}px`}));$t(Wu,It({props:e,options:ue,optionsArray:r,cachedOptions:q,optionsCount:k,filteredOptionsCount:be,hoverIndex:Q,handleOptionSelect:A,onOptionCreate:Y,onOptionDestroy:ge,selectWrapper:L,selected:pe,setSelected:F,queryChange:V,groupQueryChange:O})),at(()=>{a.cachedPlaceHolder=Xe.value=e.placeholder||l(\"el.select.placeholder\"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(Xe.value=\"\"),ro(L,i),e.remote&&e.multiple&&E(),rt(()=>{const Dt=ze.value&&ze.value.$el;if(!!Dt&&(_e.value=Dt.getBoundingClientRect().width,t.slots.prefix)){const Ln=Dt.querySelector(`.${o.e(\"prefix\")}`);Me.value=Math.max(Ln.getBoundingClientRect().width+5,30)}}),F()}),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(Ct,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(Ct,\"\");const De=R(()=>{var Dt,Ln;return(Ln=(Dt=se.value)==null?void 0:Dt.popperRef)==null?void 0:Ln.contentRef});return{tagInMultiLine:X,prefixWidth:Me,selectSize:u,readonly:s,handleResize:i,collapseTagSize:c,debouncedOnInputChange:m,debouncedQueryChange:h,deletePrevTag:v,deleteTag:g,deleteSelected:y,handleOptionSelect:A,scrollToOption:w,inputWidth:_e,selected:pe,inputLength:Ce,filteredOptionsCount:be,visible:re,softFocus:me,selectedLabel:Re,hoverIndex:Q,query:Pe,inputHovering:Ge,currentPlaceholder:Xe,menuVisibleOnFocus:he,isOnComposition:Ie,isSilentBlur:K,options:ue,resetInputHeight:E,managePlaceholder:$,showClose:T,selectDisabled:B,iconComponent:P,iconReverse:H,showNewOption:I,emptyText:j,toggleLastOptionHitState:Z,resetInputState:G,handleComposition:N,handleMenuEnter:fe,handleFocus:Ee,blur:ne,handleBlur:ee,handleClearClick:xe,handleClose:$e,handleKeydownEscape:x,toggleMenu:W,selectOption:we,getValueKey:Ae,navigateOptions:ke,dropMenuVisible:ve,focus:te,reference:ze,input:Ke,tooltipRef:se,popperPaneRef:De,tags:le,selectWrapper:L,scrollbar:S,wrapperKls:de,selectTagsStyle:Fe,nsSelect:n,tagTextStyle:At}}}),Noe=[\"disabled\",\"autocomplete\"],Ooe={style:{height:\"100%\",display:\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\"}};function Uoe(e,t,n,o,l,a){const r=Qe(\"el-tag\"),u=Qe(\"el-tooltip\"),s=Qe(\"el-icon\"),i=Qe(\"el-input\"),c=Qe(\"el-option\"),m=Qe(\"el-scrollbar\"),h=Qe(\"el-select-menu\"),v=Mi(\"click-outside\");return ye((b(),C(\"div\",{ref:\"selectWrapper\",class:U(e.wrapperKls),onClick:t[22]||(t[22]=ht((...g)=>e.toggleMenu&&e.toggleMenu(...g),[\"stop\"]))},[d(u,{ref:\"tooltipRef\",visible:e.dropMenuVisible,placement:e.placement,teleported:e.teleported,\"popper-class\":[e.nsSelect.e(\"popper\"),e.popperClass],\"fallback-placements\":[\"bottom-start\",\"top-start\",\"right\",\"left\"],effect:e.effect,pure:\"\",trigger:\"click\",transition:`${e.nsSelect.namespace.value}-zoom-in-top`,\"stop-popper-mouse-event\":!1,\"gpu-acceleration\":!1,persistent:e.persistent,onShow:e.handleMenuEnter},{default:p(()=>[f(\"div\",{class:\"select-trigger\",onMouseenter:t[20]||(t[20]=g=>e.inputHovering=!0),onMouseleave:t[21]||(t[21]=g=>e.inputHovering=!1)},[e.multiple?(b(),C(\"div\",{key:0,ref:\"tags\",class:U(e.nsSelect.e(\"tags\")),style:nt(e.selectTagsStyle)},[e.collapseTags&&e.selected.length?(b(),C(\"span\",{key:0,class:U([e.nsSelect.b(\"tags-wrapper\"),{\"has-prefix\":e.prefixWidth&&e.selected.length}])},[d(r,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:e.tagType,\"disable-transitions\":\"\",onClose:t[0]||(t[0]=g=>e.deleteTag(g,e.selected[0]))},{default:p(()=>[f(\"span\",{class:U(e.nsSelect.e(\"tags-text\")),style:nt(e.tagTextStyle)},ce(e.selected[0].currentLabel),7)]),_:1},8,[\"closable\",\"size\",\"hit\",\"type\"]),e.selected.length>1?(b(),ae(r,{key:0,closable:!1,size:e.collapseTagSize,type:e.tagType,\"disable-transitions\":\"\"},{default:p(()=>[e.collapseTagsTooltip?(b(),ae(u,{key:0,disabled:e.dropMenuVisible,\"fallback-placements\":[\"bottom\",\"top\",\"right\",\"left\"],effect:e.effect,placement:\"bottom\",teleported:e.teleported},{default:p(()=>[f(\"span\",{class:U(e.nsSelect.e(\"tags-text\"))},\"+ \"+ce(e.selected.length-1),3)]),content:p(()=>[f(\"div\",{class:U(e.nsSelect.e(\"collapse-tags\"))},[(b(!0),C(We,null,pt(e.selected.slice(1),(g,y)=>(b(),C(\"div\",{key:y,class:U(e.nsSelect.e(\"collapse-tag\"))},[(b(),ae(r,{key:e.getValueKey(g),class:\"in-tooltip\",closable:!e.selectDisabled&&!g.isDisabled,size:e.collapseTagSize,hit:g.hitState,type:e.tagType,\"disable-transitions\":\"\",style:{margin:\"2px\"},onClose:A=>e.deleteTag(A,g)},{default:p(()=>[f(\"span\",{class:U(e.nsSelect.e(\"tags-text\")),style:nt({maxWidth:e.inputWidth-75+\"px\"})},ce(g.currentLabel),7)]),_:2},1032,[\"closable\",\"size\",\"hit\",\"type\",\"onClose\"]))],2))),128))],2)]),_:1},8,[\"disabled\",\"effect\",\"teleported\"])):(b(),C(\"span\",{key:1,class:U(e.nsSelect.e(\"tags-text\"))},\"+ \"+ce(e.selected.length-1),3))]),_:1},8,[\"size\",\"type\"])):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),oe(\" <div> \"),e.collapseTags?oe(\"v-if\",!0):(b(),ae(Zt,{key:1,onAfterLeave:e.resetInputHeight},{default:p(()=>[f(\"span\",{class:U([e.nsSelect.b(\"tags-wrapper\"),{\"has-prefix\":e.prefixWidth&&e.selected.length}])},[(b(!0),C(We,null,pt(e.selected,g=>(b(),ae(r,{key:e.getValueKey(g),closable:!e.selectDisabled&&!g.isDisabled,size:e.collapseTagSize,hit:g.hitState,type:e.tagType,\"disable-transitions\":\"\",onClose:y=>e.deleteTag(y,g)},{default:p(()=>[f(\"span\",{class:U(e.nsSelect.e(\"tags-text\")),style:nt({maxWidth:e.inputWidth-75+\"px\"})},ce(g.currentLabel),7)]),_:2},1032,[\"closable\",\"size\",\"hit\",\"type\",\"onClose\"]))),128))],2)]),_:1},8,[\"onAfterLeave\"])),oe(\" </div> \"),e.filterable?ye((b(),C(\"input\",{key:2,ref:\"input\",\"onUpdate:modelValue\":t[1]||(t[1]=g=>e.query=g),type:\"text\",class:U([e.nsSelect.e(\"input\"),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,autocomplete:e.autocomplete,style:nt({marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?`${e.prefixWidth}px`:\"\",flexGrow:1,width:`${e.inputLength/(e.inputWidth-32)}%`,maxWidth:`${e.inputWidth-42}px`}),onFocus:t[2]||(t[2]=(...g)=>e.handleFocus&&e.handleFocus(...g)),onBlur:t[3]||(t[3]=(...g)=>e.handleBlur&&e.handleBlur(...g)),onKeyup:t[4]||(t[4]=(...g)=>e.managePlaceholder&&e.managePlaceholder(...g)),onKeydown:[t[5]||(t[5]=(...g)=>e.resetInputState&&e.resetInputState(...g)),t[6]||(t[6]=Bt(ht(g=>e.navigateOptions(\"next\"),[\"prevent\"]),[\"down\"])),t[7]||(t[7]=Bt(ht(g=>e.navigateOptions(\"prev\"),[\"prevent\"]),[\"up\"])),t[8]||(t[8]=Bt((...g)=>e.handleKeydownEscape&&e.handleKeydownEscape(...g),[\"esc\"])),t[9]||(t[9]=Bt(ht((...g)=>e.selectOption&&e.selectOption(...g),[\"stop\",\"prevent\"]),[\"enter\"])),t[10]||(t[10]=Bt((...g)=>e.deletePrevTag&&e.deletePrevTag(...g),[\"delete\"])),t[11]||(t[11]=Bt(g=>e.visible=!1,[\"tab\"]))],onCompositionstart:t[12]||(t[12]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionupdate:t[13]||(t[13]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionend:t[14]||(t[14]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onInput:t[15]||(t[15]=(...g)=>e.debouncedQueryChange&&e.debouncedQueryChange(...g))},null,46,Noe)),[[m8,e.query]]):oe(\"v-if\",!0)],6)):oe(\"v-if\",!0),d(i,{id:e.id,ref:\"reference\",modelValue:e.selectedLabel,\"onUpdate:modelValue\":t[16]||(t[16]=g=>e.selectedLabel=g),type:\"text\",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,\"validate-event\":!1,class:U([e.nsSelect.is(\"focus\",e.visible)]),tabindex:e.multiple&&e.filterable?-1:void 0,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onCompositionstart:e.handleComposition,onCompositionupdate:e.handleComposition,onCompositionend:e.handleComposition,onKeydown:[t[17]||(t[17]=Bt(ht(g=>e.navigateOptions(\"next\"),[\"stop\",\"prevent\"]),[\"down\"])),t[18]||(t[18]=Bt(ht(g=>e.navigateOptions(\"prev\"),[\"stop\",\"prevent\"]),[\"up\"])),Bt(ht(e.selectOption,[\"stop\",\"prevent\"]),[\"enter\"]),Bt(e.handleKeydownEscape,[\"esc\"]),t[19]||(t[19]=Bt(g=>e.visible=!1,[\"tab\"]))]},jl({suffix:p(()=>[e.iconComponent&&!e.showClose?(b(),ae(s,{key:0,class:U([e.nsSelect.e(\"caret\"),e.nsSelect.e(\"icon\"),e.iconReverse])},{default:p(()=>[(b(),ae(yt(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),e.showClose&&e.clearIcon?(b(),ae(s,{key:1,class:U([e.nsSelect.e(\"caret\"),e.nsSelect.e(\"icon\")]),onClick:e.handleClearClick},{default:p(()=>[(b(),ae(yt(e.clearIcon)))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)]),_:2},[e.$slots.prefix?{name:\"prefix\",fn:p(()=>[f(\"div\",Ooe,[Te(e.$slots,\"prefix\")])])}:void 0]),1032,[\"id\",\"modelValue\",\"placeholder\",\"name\",\"autocomplete\",\"size\",\"disabled\",\"readonly\",\"class\",\"tabindex\",\"onFocus\",\"onBlur\",\"onInput\",\"onPaste\",\"onCompositionstart\",\"onCompositionupdate\",\"onCompositionend\",\"onKeydown\"])],32)]),content:p(()=>[d(h,null,{default:p(()=>[ye(d(m,{ref:\"scrollbar\",tag:\"ul\",\"wrap-class\":e.nsSelect.be(\"dropdown\",\"wrap\"),\"view-class\":e.nsSelect.be(\"dropdown\",\"list\"),class:U([e.nsSelect.is(\"empty\",!e.allowCreate&&Boolean(e.query)&&e.filteredOptionsCount===0)])},{default:p(()=>[e.showNewOption?(b(),ae(c,{key:0,value:e.query,created:!0},null,8,[\"value\"])):oe(\"v-if\",!0),Te(e.$slots,\"default\")]),_:3},8,[\"wrap-class\",\"view-class\",\"class\"]),[[Be,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&e.options.size===0)?(b(),C(We,{key:0},[e.$slots.empty?Te(e.$slots,\"empty\",{key:0}):(b(),C(\"p\",{key:1,class:U(e.nsSelect.be(\"dropdown\",\"empty\"))},ce(e.emptyText),3))],64)):oe(\"v-if\",!0)]),_:3})]),_:3},8,[\"visible\",\"placement\",\"teleported\",\"popper-class\",\"effect\",\"transition\",\"persistent\",\"onShow\"])],2)),[[v,e.handleClose,e.popperPaneRef]])}var Woe=je(Roe,[[\"render\",Uoe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/select.vue\"]]);const qoe=Le({name:\"ElOptionGroup\",componentName:\"ElOptionGroup\",props:{label:String,disabled:{type:Boolean,default:!1}},setup(e){const t=He(\"select\"),n=z(!0),o=ft(),l=z([]);$t(J4,It({...On(e)}));const a=Ze(Wu);at(()=>{l.value=r(o.subTree)});const r=s=>{const i=[];return Array.isArray(s.children)&&s.children.forEach(c=>{var m;c.type&&c.type.name===\"ElOption\"&&c.component&&c.component.proxy?i.push(c.component.proxy):(m=c.children)!=null&&m.length&&i.push(...r(c))}),i},{groupQueryChange:u}=it(a);return Ve(u,()=>{n.value=l.value.some(s=>s.visible===!0)},{flush:\"post\"}),{visible:n,ns:t}}});function joe(e,t,n,o,l,a){return ye((b(),C(\"ul\",{class:U(e.ns.be(\"group\",\"wrap\"))},[f(\"li\",{class:U(e.ns.be(\"group\",\"title\"))},ce(e.label),3),f(\"li\",null,[f(\"ul\",{class:U(e.ns.b(\"group\"))},[Te(e.$slots,\"default\")],2)])],2)),[[Be,e.visible]])}var Q4=je(qoe,[[\"render\",joe],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/select/src/option-group.vue\"]]);const qu=Et(Woe,{Option:E2,OptionGroup:Q4}),ju=Nt(E2);Nt(Q4);const A2=()=>Ze(Tf,{}),Koe=et({pageSize:{type:Number,required:!0},pageSizes:{type:Ue(Array),default:()=>Fo([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,size:{type:String,default:\"default\"}}),Goe={name:\"ElPaginationSizes\"},Yoe=Le({...Goe,props:Koe,emits:[\"page-size-change\"],setup(e,{emit:t}){const n=e,{t:o}=bn(),l=He(\"pagination\"),a=A2(),r=z(n.pageSize);Ve(()=>n.pageSizes,(i,c)=>{if(!Us(i,c)&&Array.isArray(i)){const m=i.includes(n.pageSize)?n.pageSize:n.pageSizes[0];t(\"page-size-change\",m)}}),Ve(()=>n.pageSize,i=>{r.value=i});const u=R(()=>n.pageSizes);function s(i){var c;i!==r.value&&(r.value=i,(c=a.handleSizeChange)==null||c.call(a,Number(i)))}return(i,c)=>(b(),C(\"span\",{class:U(_(l).e(\"sizes\"))},[d(_(qu),{\"model-value\":r.value,disabled:i.disabled,\"popper-class\":i.popperClass,size:i.size,\"validate-event\":!1,onChange:s},{default:p(()=>[(b(!0),C(We,null,pt(_(u),m=>(b(),ae(_(ju),{key:m,value:m,label:m+_(o)(\"el.pagination.pagesize\")},null,8,[\"value\",\"label\"]))),128))]),_:1},8,[\"model-value\",\"disabled\",\"popper-class\",\"size\"])],2))}});var Xoe=je(Yoe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/sizes.vue\"]]);const Joe=[\"disabled\"],Qoe={name:\"ElPaginationJumper\"},Zoe=Le({...Qoe,setup(e){const{t}=bn(),n=He(\"pagination\"),{pageCount:o,disabled:l,currentPage:a,changeEvent:r}=A2(),u=z(),s=R(()=>{var m;return(m=u.value)!=null?m:a==null?void 0:a.value});function i(m){u.value=+m}function c(m){m=Math.trunc(+m),r==null||r(+m),u.value=void 0}return(m,h)=>(b(),C(\"span\",{class:U(_(n).e(\"jump\")),disabled:_(l)},[D(ce(_(t)(\"el.pagination.goto\"))+\" \",1),d(_(yn),{size:\"small\",class:U([_(n).e(\"editor\"),_(n).is(\"in-pagination\")]),min:1,max:_(o),disabled:_(l),\"model-value\":_(s),\"validate-event\":!1,type:\"number\",\"onUpdate:modelValue\":i,onChange:c},null,8,[\"class\",\"max\",\"disabled\",\"model-value\"]),D(\" \"+ce(_(t)(\"el.pagination.pageClassifier\")),1)],10,Joe))}});var ele=je(Zoe,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/jumper.vue\"]]);const tle=et({total:{type:Number,default:1e3}}),nle=[\"disabled\"],ole={name:\"ElPaginationTotal\"},lle=Le({...ole,props:tle,setup(e){const{t}=bn(),n=He(\"pagination\"),{disabled:o}=A2();return(l,a)=>(b(),C(\"span\",{class:U(_(n).e(\"total\")),disabled:_(o)},ce(_(t)(\"el.pagination.total\",{total:l.total})),11,nle))}});var ale=je(lle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/total.vue\"]]);const rle=et({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),ule=[\"onKeyup\"],sle=[\"aria-current\",\"tabindex\"],ile=[\"tabindex\"],cle=[\"aria-current\",\"tabindex\"],dle=[\"tabindex\"],fle=[\"aria-current\",\"tabindex\"],ple={name:\"ElPaginationPager\"},vle=Le({...ple,props:rle,emits:[\"change\"],setup(e,{emit:t}){const n=e,o=He(\"pager\"),l=He(\"icon\"),a=z(!1),r=z(!1),u=z(!1),s=z(!1),i=z(!1),c=z(!1),m=R(()=>{const w=n.pagerCount,F=(w-1)/2,E=Number(n.currentPage),$=Number(n.pageCount);let T=!1,B=!1;$>w&&(E>w-F&&(T=!0),E<$-F&&(B=!0));const P=[];if(T&&!B){const H=$-(w-2);for(let I=H;I<$;I++)P.push(I)}else if(!T&&B)for(let H=2;H<w;H++)P.push(H);else if(T&&B){const H=Math.floor(w/2)-1;for(let I=E-H;I<=E+H;I++)P.push(I)}else for(let H=2;H<$;H++)P.push(H);return P}),h=R(()=>n.disabled?-1:0);yo(()=>{const w=(n.pagerCount-1)/2;a.value=!1,r.value=!1,n.pageCount>n.pagerCount&&(n.currentPage>n.pagerCount-w&&(a.value=!0),n.currentPage<n.pageCount-w&&(r.value=!0))});function v(w=!1){n.disabled||(w?u.value=!0:s.value=!0)}function g(w=!1){w?i.value=!0:c.value=!0}function y(w){const F=w.target;if(F.tagName.toLowerCase()===\"li\"&&Array.from(F.classList).includes(\"number\")){const E=Number(F.textContent);E!==n.currentPage&&t(\"change\",E)}else F.tagName.toLowerCase()===\"li\"&&Array.from(F.classList).includes(\"more\")&&A(w)}function A(w){const F=w.target;if(F.tagName.toLowerCase()===\"ul\"||n.disabled)return;let E=Number(F.textContent);const $=n.pageCount,T=n.currentPage,B=n.pagerCount-2;F.className.includes(\"more\")&&(F.className.includes(\"quickprev\")?E=T-B:F.className.includes(\"quicknext\")&&(E=T+B)),Number.isNaN(+E)||(E<1&&(E=1),E>$&&(E=$)),E!==T&&t(\"change\",E)}return(w,F)=>(b(),C(\"ul\",{class:U(_(o).b()),onClick:A,onKeyup:Bt(y,[\"enter\"])},[w.pageCount>0?(b(),C(\"li\",{key:0,class:U([[_(o).is(\"active\",w.currentPage===1),_(o).is(\"disabled\",w.disabled)],\"number\"]),\"aria-current\":w.currentPage===1,tabindex:_(h)},\" 1 \",10,sle)):oe(\"v-if\",!0),a.value?(b(),C(\"li\",{key:1,class:U([\"more\",\"btn-quickprev\",_(l).b(),_(o).is(\"disabled\",w.disabled)]),tabindex:_(h),onMouseenter:F[0]||(F[0]=E=>v(!0)),onMouseleave:F[1]||(F[1]=E=>u.value=!1),onFocus:F[2]||(F[2]=E=>g(!0)),onBlur:F[3]||(F[3]=E=>i.value=!1)},[u.value||i.value?(b(),ae(_(_f),{key:0})):(b(),ae(_(js),{key:1}))],42,ile)):oe(\"v-if\",!0),(b(!0),C(We,null,pt(_(m),E=>(b(),C(\"li\",{key:E,class:U([[_(o).is(\"active\",w.currentPage===E),_(o).is(\"disabled\",w.disabled)],\"number\"]),\"aria-current\":w.currentPage===E,tabindex:_(h)},ce(E),11,cle))),128)),r.value?(b(),C(\"li\",{key:2,class:U([\"more\",\"btn-quicknext\",_(l).b(),_(o).is(\"disabled\",w.disabled)]),tabindex:_(h),onMouseenter:F[4]||(F[4]=E=>v()),onMouseleave:F[5]||(F[5]=E=>s.value=!1),onFocus:F[6]||(F[6]=E=>g()),onBlur:F[7]||(F[7]=E=>c.value=!1)},[s.value||c.value?(b(),ae(_(mf),{key:0})):(b(),ae(_(js),{key:1}))],42,dle)):oe(\"v-if\",!0),w.pageCount>1?(b(),C(\"li\",{key:3,class:U([[_(o).is(\"active\",w.currentPage===w.pageCount),_(o).is(\"disabled\",w.disabled)],\"number\"]),\"aria-current\":w.currentPage===w.pageCount,tabindex:_(h)},ce(w.pageCount),11,fle)):oe(\"v-if\",!0)],42,ule))}});var hle=je(vle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/pager.vue\"]]);const Yt=e=>typeof e!=\"number\",_le=et({total:Number,pageSize:Number,defaultPageSize:Number,currentPage:Number,defaultCurrentPage:Number,pageCount:Number,pagerCount:{type:Number,validator:e=>typeof e==\"number\"&&Math.trunc(e)===e&&e>4&&e<22&&e%2===1,default:7},layout:{type:String,default:[\"prev\",\"pager\",\"next\",\"jumper\",\"->\",\"total\"].join(\", \")},pageSizes:{type:Ue(Array),default:()=>Fo([10,20,30,40,50,100])},popperClass:{type:String,default:\"\"},prevText:{type:String,default:\"\"},prevIcon:{type:Lt,default:()=>hf},nextText:{type:String,default:\"\"},nextIcon:{type:Lt,default:()=>pa},small:Boolean,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean}),mle={\"update:current-page\":e=>typeof e==\"number\",\"update:page-size\":e=>typeof e==\"number\",\"size-change\":e=>typeof e==\"number\",\"current-change\":e=>typeof e==\"number\",\"prev-click\":e=>typeof e==\"number\",\"next-click\":e=>typeof e==\"number\"},Q0=\"ElPagination\";var gle=Le({name:Q0,props:_le,emits:mle,setup(e,{emit:t,slots:n}){const{t:o}=bn(),l=He(\"pagination\"),a=ft().vnode.props||{},r=\"onUpdate:currentPage\"in a||\"onUpdate:current-page\"in a||\"onCurrentChange\"in a,u=\"onUpdate:pageSize\"in a||\"onUpdate:page-size\"in a||\"onSizeChange\"in a,s=R(()=>{if(Yt(e.total)&&Yt(e.pageCount)||!Yt(e.currentPage)&&!r)return!1;if(e.layout.includes(\"sizes\")){if(Yt(e.pageCount)){if(!Yt(e.total)&&!Yt(e.pageSize)&&!u)return!1}else if(!u)return!1}return!0}),i=z(Yt(e.defaultPageSize)?10:e.defaultPageSize),c=z(Yt(e.defaultCurrentPage)?1:e.defaultCurrentPage),m=R({get(){return Yt(e.pageSize)?i.value:e.pageSize},set(E){Yt(e.pageSize)&&(i.value=E),u&&(t(\"update:page-size\",E),t(\"size-change\",E))}}),h=R(()=>{let E=0;return Yt(e.pageCount)?Yt(e.total)||(E=Math.max(1,Math.ceil(e.total/m.value))):E=e.pageCount,E}),v=R({get(){return Yt(e.currentPage)?c.value:e.currentPage},set(E){let $=E;E<1?$=1:E>h.value&&($=h.value),Yt(e.currentPage)&&(c.value=$),r&&(t(\"update:current-page\",$),t(\"current-change\",$))}});Ve(h,E=>{v.value>E&&(v.value=E)});function g(E){v.value=E}function y(E){m.value=E;const $=h.value;v.value>$&&(v.value=$)}function A(){e.disabled||(v.value-=1,t(\"prev-click\",v.value))}function w(){e.disabled||(v.value+=1,t(\"next-click\",v.value))}function F(E,$){E&&(E.props||(E.props={}),E.props.class=[E.props.class,$].join(\" \"))}return $t(Tf,{pageCount:h,disabled:R(()=>e.disabled),currentPage:v,changeEvent:g,handleSizeChange:y}),()=>{var E,$;if(!s.value)return o(\"el.pagination.deprecationWarning\"),null;if(!e.layout||e.hideOnSinglePage&&h.value<=1)return null;const T=[],B=[],P=Ne(\"div\",{class:l.e(\"rightwrapper\")},B),H={prev:Ne(Foe,{disabled:e.disabled,currentPage:v.value,prevText:e.prevText,prevIcon:e.prevIcon,onClick:A}),jumper:Ne(ele),pager:Ne(hle,{currentPage:v.value,pageCount:h.value,pagerCount:e.pagerCount,onChange:g,disabled:e.disabled}),next:Ne(koe,{disabled:e.disabled,currentPage:v.value,pageCount:h.value,nextText:e.nextText,nextIcon:e.nextIcon,onClick:w}),sizes:Ne(Xoe,{pageSize:m.value,pageSizes:e.pageSizes,popperClass:e.popperClass,disabled:e.disabled,size:e.small?\"small\":\"default\"}),slot:($=(E=n==null?void 0:n.default)==null?void 0:E.call(n))!=null?$:null,total:Ne(ale,{total:Yt(e.total)?0:e.total})},I=e.layout.split(\",\").map(Z=>Z.trim());let j=!1;return I.forEach(Z=>{if(Z===\"->\"){j=!0;return}j?B.push(H[Z]):T.push(H[Z])}),F(T[0],l.is(\"first\")),F(T[T.length-1],l.is(\"last\")),j&&B.length>0&&(F(B[0],l.is(\"first\")),F(B[B.length-1],l.is(\"last\")),T.push(P)),Ne(\"div\",{role:\"pagination\",\"aria-label\":\"pagination\",class:[l.b(),l.is(\"background\",e.background),{[l.m(\"small\")]:e.small}]},T)}}});const Z4=Et(gle),ble=et({type:{type:String,default:\"line\",values:[\"line\",\"circle\",\"dashboard\"]},percentage:{type:Number,default:0,validator:e=>e>=0&&e<=100},status:{type:String,default:\"\",values:[\"\",\"success\",\"exception\",\"warning\"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:Ue(String),default:\"round\"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:Ue([String,Array,Function]),default:\"\"},format:{type:Ue(Function),default:e=>`${e}%`}}),yle=[\"aria-valuenow\"],wle={viewBox:\"0 0 100 100\"},Cle=[\"d\",\"stroke\",\"stroke-width\"],Ele=[\"d\",\"stroke\",\"opacity\",\"stroke-linecap\",\"stroke-width\"],Ale={key:0},Fle={name:\"ElProgress\"},xle=Le({...Fle,props:ble,setup(e){const t=e,n={success:\"#13ce66\",exception:\"#ff4949\",warning:\"#e6a23c\",default:\"#20a0ff\"},o=He(\"progress\"),l=R(()=>({width:`${t.percentage}%`,animationDuration:`${t.duration}s`,backgroundColor:F(t.percentage)})),a=R(()=>(t.strokeWidth/t.width*100).toFixed(1)),r=R(()=>[\"circle\",\"dashboard\"].includes(t.type)?Number.parseInt(`${50-Number.parseFloat(a.value)/2}`,10):0),u=R(()=>{const E=r.value,$=t.type===\"dashboard\";return`\n          M 50 50\n          m 0 ${$?\"\":\"-\"}${E}\n          a ${E} ${E} 0 1 1 0 ${$?\"-\":\"\"}${E*2}\n          a ${E} ${E} 0 1 1 0 ${$?\"\":\"-\"}${E*2}\n          `}),s=R(()=>2*Math.PI*r.value),i=R(()=>t.type===\"dashboard\"?.75:1),c=R(()=>`${-1*s.value*(1-i.value)/2}px`),m=R(()=>({strokeDasharray:`${s.value*i.value}px, ${s.value}px`,strokeDashoffset:c.value})),h=R(()=>({strokeDasharray:`${s.value*i.value*(t.percentage/100)}px, ${s.value}px`,strokeDashoffset:c.value,transition:\"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s\"})),v=R(()=>{let E;return t.color?E=F(t.percentage):E=n[t.status]||n.default,E}),g=R(()=>t.status===\"warning\"?Vu:t.type===\"line\"?t.status===\"success\"?Mu:ir:t.status===\"success\"?Zi:Cl),y=R(()=>t.type===\"line\"?12+t.strokeWidth*.4:t.width*.111111+2),A=R(()=>t.format(t.percentage));function w(E){const $=100/E.length;return E.map((B,P)=>tt(B)?{color:B,percentage:(P+1)*$}:B).sort((B,P)=>B.percentage-P.percentage)}const F=E=>{var $;const{color:T}=t;if(Je(T))return T(E);if(tt(T))return T;{const B=w(T);for(const P of B)if(P.percentage>E)return P.color;return($=B[B.length-1])==null?void 0:$.color}};return(E,$)=>(b(),C(\"div\",{class:U([_(o).b(),_(o).m(E.type),_(o).is(E.status),{[_(o).m(\"without-text\")]:!E.showText,[_(o).m(\"text-inside\")]:E.textInside}]),role:\"progressbar\",\"aria-valuenow\":E.percentage,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},[E.type===\"line\"?(b(),C(\"div\",{key:0,class:U(_(o).b(\"bar\"))},[f(\"div\",{class:U(_(o).be(\"bar\",\"outer\")),style:nt({height:`${E.strokeWidth}px`})},[f(\"div\",{class:U([_(o).be(\"bar\",\"inner\"),{[_(o).bem(\"bar\",\"inner\",\"indeterminate\")]:E.indeterminate}]),style:nt(_(l))},[(E.showText||E.$slots.default)&&E.textInside?(b(),C(\"div\",{key:0,class:U(_(o).be(\"bar\",\"innerText\"))},[Te(E.$slots,\"default\",{percentage:E.percentage},()=>[f(\"span\",null,ce(_(A)),1)])],2)):oe(\"v-if\",!0)],6)],6)],2)):(b(),C(\"div\",{key:1,class:U(_(o).b(\"circle\")),style:nt({height:`${E.width}px`,width:`${E.width}px`})},[(b(),C(\"svg\",wle,[f(\"path\",{class:U(_(o).be(\"circle\",\"track\")),d:_(u),stroke:`var(${_(o).cssVarName(\"fill-color-light\")}, #e5e9f2)`,\"stroke-width\":_(a),fill:\"none\",style:nt(_(m))},null,14,Cle),f(\"path\",{class:U(_(o).be(\"circle\",\"path\")),d:_(u),stroke:_(v),fill:\"none\",opacity:E.percentage?1:0,\"stroke-linecap\":E.strokeLinecap,\"stroke-width\":_(a),style:nt(_(h))},null,14,Ele)]))],6)),(E.showText||E.$slots.default)&&!E.textInside?(b(),C(\"div\",{key:2,class:U(_(o).e(\"text\")),style:nt({fontSize:`${_(y)}px`})},[Te(E.$slots,\"default\",{percentage:E.percentage},()=>[E.status?(b(),ae(_(ut),{key:1},{default:p(()=>[(b(),ae(yt(_(g))))]),_:1})):(b(),C(\"span\",Ale,ce(_(A)),1))])],6)):oe(\"v-if\",!0)],10,yle))}});var $le=je(xle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/progress/src/progress.vue\"]]);const Dle=Et($le),Ble=et({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:\"\"},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:Lt},inactiveIcon:{type:Lt},activeText:{type:String,default:\"\"},inactiveText:{type:String,default:\"\"},activeColor:{type:String,default:\"\"},inactiveColor:{type:String,default:\"\"},borderColor:{type:String,default:\"\"},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:\"\"},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Ue(Function)},size:{type:String,validator:o2},tabindex:{type:[String,Number]}}),Sle={[Ct]:e=>Gt(e)||tt(e)||mt(e),[uo]:e=>Gt(e)||tt(e)||mt(e),[du]:e=>Gt(e)||tt(e)||mt(e)},kle=[\"onClick\"],Ple=[\"id\",\"aria-checked\",\"aria-disabled\",\"name\",\"true-value\",\"false-value\",\"disabled\",\"tabindex\",\"onKeydown\"],Lle=[\"aria-hidden\"],zle=[\"aria-hidden\"],Tle=[\"aria-hidden\"],Mle=[\"aria-hidden\"],Vle={name:\"ElSwitch\"},Hle=Le({...Vle,props:Ble,emits:Sle,setup(e,{expose:t,emit:n}){const o=e,l=\"ElSwitch\",a=ft(),{formItem:r}=Sl(),u=Qt(),s=He(\"switch\");pu({from:'\"value\"',replacement:'\"model-value\" or \"v-model\"',scope:l,version:\"2.3.0\",ref:\"https://element-plus.org/en-US/component/switch.html#attributes\",type:\"Attribute\"},R(()=>{var B;return!!((B=a.vnode.props)!=null&&B.value)}));const{inputId:i}=fr(o,{formItemContext:r}),c=Bl(R(()=>o.loading)),m=z(o.modelValue!==!1),h=z(),v=z(),g=R(()=>[s.b(),s.m(u.value),s.is(\"disabled\",c.value),s.is(\"checked\",w.value)]),y=R(()=>({width:Nn(o.width)}));Ve(()=>o.modelValue,()=>{m.value=!0}),Ve(()=>o.value,()=>{m.value=!1});const A=R(()=>m.value?o.modelValue:o.value),w=R(()=>A.value===o.activeValue);[o.activeValue,o.inactiveValue].includes(A.value)||(n(Ct,o.inactiveValue),n(uo,o.inactiveValue),n(du,o.inactiveValue)),Ve(w,B=>{var P;h.value.checked=B,o.validateEvent&&((P=r==null?void 0:r.validate)==null||P.call(r,\"change\").catch(H=>void 0))});const F=()=>{const B=w.value?o.inactiveValue:o.activeValue;n(Ct,B),n(uo,B),n(du,B),rt(()=>{h.value.checked=w.value})},E=()=>{if(c.value)return;const{beforeChange:B}=o;if(!B){F();return}const P=B();[Zr(P),Gt(P)].includes(!0)||gn(l,\"beforeChange must return type `Promise<boolean>` or `boolean`\"),Zr(P)?P.then(I=>{I&&F()}).catch(I=>{}):P&&F()},$=R(()=>s.cssVarBlock({...o.activeColor?{\"on-color\":o.activeColor}:null,...o.inactiveColor?{\"off-color\":o.inactiveColor}:null,...o.borderColor?{\"border-color\":o.borderColor}:null})),T=()=>{var B,P;(P=(B=h.value)==null?void 0:B.focus)==null||P.call(B)};return at(()=>{h.value.checked=w.value}),t({focus:T,checked:w}),(B,P)=>(b(),C(\"div\",{class:U(_(g)),style:nt(_($)),onClick:ht(E,[\"prevent\"])},[f(\"input\",{id:_(i),ref_key:\"input\",ref:h,class:U(_(s).e(\"input\")),type:\"checkbox\",role:\"switch\",\"aria-checked\":_(w),\"aria-disabled\":_(c),name:B.name,\"true-value\":B.activeValue,\"false-value\":B.inactiveValue,disabled:_(c),tabindex:B.tabindex,onChange:F,onKeydown:Bt(E,[\"enter\"])},null,42,Ple),!B.inlinePrompt&&(B.inactiveIcon||B.inactiveText)?(b(),C(\"span\",{key:0,class:U([_(s).e(\"label\"),_(s).em(\"label\",\"left\"),_(s).is(\"active\",!_(w))])},[B.inactiveIcon?(b(),ae(_(ut),{key:0},{default:p(()=>[(b(),ae(yt(B.inactiveIcon)))]),_:1})):oe(\"v-if\",!0),!B.inactiveIcon&&B.inactiveText?(b(),C(\"span\",{key:1,\"aria-hidden\":_(w)},ce(B.inactiveText),9,Lle)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"span\",{ref_key:\"core\",ref:v,class:U(_(s).e(\"core\")),style:nt(_(y))},[B.inlinePrompt?(b(),C(\"div\",{key:0,class:U(_(s).e(\"inner\"))},[B.activeIcon||B.inactiveIcon?(b(),C(We,{key:0},[B.activeIcon?(b(),ae(_(ut),{key:0,class:U([_(s).is(\"icon\"),_(w)?_(s).is(\"show\"):_(s).is(\"hide\")])},{default:p(()=>[(b(),ae(yt(B.activeIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),B.inactiveIcon?(b(),ae(_(ut),{key:1,class:U([_(s).is(\"icon\"),_(w)?_(s).is(\"hide\"):_(s).is(\"show\")])},{default:p(()=>[(b(),ae(yt(B.inactiveIcon)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],64)):B.activeText||B.inactiveIcon?(b(),C(We,{key:1},[B.activeText?(b(),C(\"span\",{key:0,class:U([_(s).is(\"text\"),_(w)?_(s).is(\"show\"):_(s).is(\"hide\")]),\"aria-hidden\":!_(w)},ce(B.activeText.substring(0,3)),11,zle)):oe(\"v-if\",!0),B.inactiveText?(b(),C(\"span\",{key:1,class:U([_(s).is(\"text\"),_(w)?_(s).is(\"hide\"):_(s).is(\"show\")]),\"aria-hidden\":_(w)},ce(B.inactiveText.substring(0,3)),11,Tle)):oe(\"v-if\",!0)],64)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"div\",{class:U(_(s).e(\"action\"))},[B.loading?(b(),ae(_(ut),{key:0,class:U(_(s).is(\"loading\"))},{default:p(()=>[d(_(cr))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2)],6),!B.inlinePrompt&&(B.activeIcon||B.activeText)?(b(),C(\"span\",{key:1,class:U([_(s).e(\"label\"),_(s).em(\"label\",\"right\"),_(s).is(\"active\",_(w))])},[B.activeIcon?(b(),ae(_(ut),{key:0},{default:p(()=>[(b(),ae(yt(B.activeIcon)))]),_:1})):oe(\"v-if\",!0),!B.activeIcon&&B.activeText?(b(),C(\"span\",{key:1,\"aria-hidden\":!_(w)},ce(B.activeText),9,Mle)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0)],14,kle))}});var Ile=je(Hle,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue\"]]);const ga=Et(Ile);/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */var Rle=/[\"'&<>]/,Nle=Ole;function Ole(e){var t=\"\"+e,n=Rle.exec(t);if(!n)return t;var o,l=\"\",a=0,r=0;for(a=n.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:o=\"&quot;\";break;case 38:o=\"&amp;\";break;case 39:o=\"&#39;\";break;case 60:o=\"&lt;\";break;case 62:o=\"&gt;\";break;default:continue}r!==a&&(l+=t.substring(r,a)),r=a+1,l+=o}return r!==a?l+t.substring(r,a):l}const gs=function(e){var t;return(t=e.target)==null?void 0:t.closest(\"td\")},Z0=function(e){return e!==null&&typeof e==\"object\"},Ule=function(e,t,n,o,l){if(!t&&!o&&(!l||Array.isArray(l)&&!l.length))return e;typeof n==\"string\"?n=n===\"descending\"?-1:1:n=n&&n<0?-1:1;const a=o?null:function(u,s){return l?(Array.isArray(l)||(l=[l]),l.map(i=>typeof i==\"string\"?Jt(u,i):i(u,s,e))):(t!==\"$key\"&&Z0(u)&&\"$value\"in u&&(u=u.$value),[Z0(u)?Jt(u,t):u])},r=function(u,s){if(o)return o(u.value,s.value);for(let i=0,c=u.key.length;i<c;i++){if(u.key[i]<s.key[i])return-1;if(u.key[i]>s.key[i])return 1}return 0};return e.map((u,s)=>({value:u,index:s,key:a?a(u,s):null})).sort((u,s)=>{let i=r(u,s);return i||(i=u.index-s.index),i*+n}).map(u=>u.value)},e6=function(e,t){let n=null;return e.columns.forEach(o=>{o.id===t&&(n=o)}),n},Wle=function(e,t){let n=null;for(let o=0;o<e.columns.length;o++){const l=e.columns[o];if(l.columnKey===t){n=l;break}}return n||gn(\"ElTable\",`No column matching with column-key: ${t}`),n},ed=function(e,t,n){const o=(t.className||\"\").match(new RegExp(`${n}-table_[^\\\\s]+`,\"gm\"));return o?e6(e,o[0]):null},Ot=(e,t)=>{if(!e)throw new Error(\"Row is required when get row identity\");if(typeof t==\"string\"){if(!t.includes(\".\"))return`${e[t]}`;const n=t.split(\".\");let o=e;for(const l of n)o=o[l];return`${o}`}else if(typeof t==\"function\")return t.call(null,e)},_l=function(e,t){const n={};return(e||[]).forEach((o,l)=>{n[Ot(o,t)]={row:o,index:l}}),n};function qle(e,t){const n={};let o;for(o in e)n[o]=e[o];for(o in t)if(st(t,o)){const l=t[o];typeof l!=\"undefined\"&&(n[o]=l)}return n}function F2(e){return e===\"\"||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e=\"\")),e}function t6(e){return e===\"\"||e!==void 0&&(e=F2(e),Number.isNaN(e)&&(e=80)),e}function jle(e){return typeof e==\"number\"?e:typeof e==\"string\"?/^\\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function Kle(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...o)=>t(n(...o)))}function Yr(e,t,n){let o=!1;const l=e.indexOf(t),a=l!==-1,r=()=>{e.push(t),o=!0},u=()=>{e.splice(l,1),o=!0};return typeof n==\"boolean\"?n&&!a?r():!n&&a&&u():a?u():r(),o}function Gle(e,t,n=\"children\",o=\"hasChildren\"){const l=r=>!(Array.isArray(r)&&r.length);function a(r,u,s){t(r,u,s),u.forEach(i=>{if(i[o]){t(i,null,s+1);return}const c=i[n];l(c)||a(i,c,s+1)})}e.forEach(r=>{if(r[o]){t(r,null,0);return}const u=r[n];l(u)||a(r,u,0)})}let vo;function Yle(e,t,n,o,l){const{nextZIndex:a}=kl(),r=e==null?void 0:e.dataset.prefix,u=e==null?void 0:e.querySelector(`.${r}-scrollbar__wrap`);function s(){const g=l===\"light\",y=document.createElement(\"div\");return y.className=`${r}-popper ${g?\"is-light\":\"is-dark\"}`,n=Nle(n),y.innerHTML=n,y.style.zIndex=String(a()),e==null||e.appendChild(y),y}function i(){const g=document.createElement(\"div\");return g.className=`${r}-popper__arrow`,g}function c(){m&&m.update()}vo==null||vo(),vo=()=>{try{m&&m.destroy(),h&&(e==null||e.removeChild(h)),t.removeEventListener(\"mouseenter\",c),t.removeEventListener(\"mouseleave\",vo),u==null||u.removeEventListener(\"scroll\",vo),vo=void 0}catch{}};let m=null;const h=s(),v=i();return h.appendChild(v),m=u4(t,h,{strategy:\"absolute\",modifiers:[{name:\"offset\",options:{offset:[0,8]}},{name:\"arrow\",options:{element:v,padding:10}}],...o}),t.addEventListener(\"mouseenter\",c),t.addEventListener(\"mouseleave\",vo),u==null||u.addEventListener(\"scroll\",vo),m}const n6=(e,t,n,o)=>{let l=0,a=e;if(o){if(o[e].colSpan>1)return{};for(let s=0;s<e;s++)l+=o[s].colSpan;a=l+o[e].colSpan-1}else l=e;let r;const u=n.states.columns;switch(t){case\"left\":a<n.states.fixedLeafColumnsLength.value&&(r=\"left\");break;case\"right\":l>=u.value.length-n.states.rightFixedLeafColumnsLength.value&&(r=\"right\");break;default:a<n.states.fixedLeafColumnsLength.value?r=\"left\":l>=u.value.length-n.states.rightFixedLeafColumnsLength.value&&(r=\"right\")}return r?{direction:r,start:l,after:a}:{}},x2=(e,t,n,o,l)=>{const a=[],{direction:r,start:u}=n6(t,n,o,l);if(r){const s=r===\"left\";a.push(`${e}-fixed-column--${r}`),s&&u===o.states.fixedLeafColumnsLength.value-1?a.push(\"is-last-column\"):!s&&u===o.states.columns.value.length-o.states.rightFixedLeafColumnsLength.value&&a.push(\"is-first-column\")}return a};function td(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const $2=(e,t,n,o)=>{const{direction:l,start:a=0}=n6(e,t,n,o);if(!l)return;const r={},u=l===\"left\",s=n.states.columns.value;return u?r.left=s.slice(0,e).reduce(td,0):r.right=s.slice(a+1).reverse().reduce(td,0),r},aa=(e,t)=>{!e||Number.isNaN(e[t])||(e[t]=`${e[t]}px`)};function Xle(e){const t=ft(),n=z(!1),o=z([]);return{updateExpandRows:()=>{const s=e.data.value||[],i=e.rowKey.value;if(n.value)o.value=s.slice();else if(i){const c=_l(o.value,i);o.value=s.reduce((m,h)=>{const v=Ot(h,i);return c[v]&&m.push(h),m},[])}else o.value=[]},toggleRowExpansion:(s,i)=>{Yr(o.value,s,i)&&t.emit(\"expand-change\",s,o.value.slice())},setExpandRowKeys:s=>{t.store.assertRowKey();const i=e.data.value||[],c=e.rowKey.value,m=_l(i,c);o.value=s.reduce((h,v)=>{const g=m[v];return g&&h.push(g.row),h},[])},isRowExpanded:s=>{const i=e.rowKey.value;return i?!!_l(o.value,i)[Ot(s,i)]:o.value.includes(s)},states:{expandRows:o,defaultExpandAll:n}}}function Jle(e){const t=ft(),n=z(null),o=z(null),l=i=>{t.store.assertRowKey(),n.value=i,r(i)},a=()=>{n.value=null},r=i=>{const{data:c,rowKey:m}=e;let h=null;m.value&&(h=(_(c)||[]).find(v=>Ot(v,m.value)===i)),o.value=h,t.emit(\"current-change\",o.value,null)};return{setCurrentRowKey:l,restoreCurrentRowKey:a,setCurrentRowByKey:r,updateCurrentRow:i=>{const c=o.value;if(i&&i!==c){o.value=i,t.emit(\"current-change\",o.value,c);return}!i&&c&&(o.value=null,t.emit(\"current-change\",null,c))},updateCurrentRowData:()=>{const i=e.rowKey.value,c=e.data.value||[],m=o.value;if(!c.includes(m)&&m){if(i){const h=Ot(m,i);r(h)}else o.value=null;o.value===null&&t.emit(\"current-change\",null,m)}else n.value&&(r(n.value),a())},states:{_currentRowKey:n,currentRow:o}}}function Qle(e){const t=z([]),n=z({}),o=z(16),l=z(!1),a=z({}),r=z(\"hasChildren\"),u=z(\"children\"),s=ft(),i=R(()=>{if(!e.rowKey.value)return{};const w=e.data.value||[];return m(w)}),c=R(()=>{const w=e.rowKey.value,F=Object.keys(a.value),E={};return F.length&&F.forEach($=>{if(a.value[$].length){const T={children:[]};a.value[$].forEach(B=>{const P=Ot(B,w);T.children.push(P),B[r.value]&&!E[P]&&(E[P]={children:[]})}),E[$]=T}}),E}),m=w=>{const F=e.rowKey.value,E={};return Gle(w,($,T,B)=>{const P=Ot($,F);Array.isArray(T)?E[P]={children:T.map(H=>Ot(H,F)),level:B}:l.value&&(E[P]={children:[],lazy:!0,level:B})},u.value,r.value),E},h=(w=!1,F=(E=>(E=s.store)==null?void 0:E.states.defaultExpandAll.value)())=>{var E;const $=i.value,T=c.value,B=Object.keys($),P={};if(B.length){const H=_(n),I=[],j=(G,N)=>{if(w)return t.value?F||t.value.includes(N):!!(F||(G==null?void 0:G.expanded));{const Y=F||t.value&&t.value.includes(N);return!!((G==null?void 0:G.expanded)||Y)}};B.forEach(G=>{const N=H[G],Y={...$[G]};if(Y.expanded=j(N,G),Y.lazy){const{loaded:ge=!1,loading:fe=!1}=N||{};Y.loaded=!!ge,Y.loading=!!fe,I.push(G)}P[G]=Y});const Z=Object.keys(T);l.value&&Z.length&&I.length&&Z.forEach(G=>{const N=H[G],Y=T[G].children;if(I.includes(G)){if(P[G].children.length!==0)throw new Error(\"[ElTable]children must be an empty array.\");P[G].children=Y}else{const{loaded:ge=!1,loading:fe=!1}=N||{};P[G]={lazy:!0,loaded:!!ge,loading:!!fe,expanded:j(N,G),children:Y,level:\"\"}}})}n.value=P,(E=s.store)==null||E.updateTableScrollY()};Ve(()=>t.value,()=>{h(!0)}),Ve(()=>i.value,()=>{h()}),Ve(()=>c.value,()=>{h()});const v=w=>{t.value=w,h()},g=(w,F)=>{s.store.assertRowKey();const E=e.rowKey.value,$=Ot(w,E),T=$&&n.value[$];if($&&T&&\"expanded\"in T){const B=T.expanded;F=typeof F==\"undefined\"?!T.expanded:F,n.value[$].expanded=F,B!==F&&s.emit(\"expand-change\",w,F),s.store.updateTableScrollY()}},y=w=>{s.store.assertRowKey();const F=e.rowKey.value,E=Ot(w,F),$=n.value[E];l.value&&$&&\"loaded\"in $&&!$.loaded?A(w,E,$):g(w,void 0)},A=(w,F,E)=>{const{load:$}=s.props;$&&!n.value[F].loaded&&(n.value[F].loading=!0,$(w,E,T=>{if(!Array.isArray(T))throw new TypeError(\"[ElTable] data must be an array\");n.value[F].loading=!1,n.value[F].loaded=!0,n.value[F].expanded=!0,T.length&&(a.value[F]=T),s.emit(\"expand-change\",w,!0)}))};return{loadData:A,loadOrToggle:y,toggleTreeExpansion:g,updateTreeExpandKeys:v,updateTreeData:h,normalize:m,states:{expandRowKeys:t,treeData:n,indent:o,lazy:l,lazyTreeNodeMap:a,lazyColumnIdentifier:r,childrenColumnName:u}}}const Zle=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable==\"string\"?e:Ule(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Xr=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,Xr(n.children)):t.push(n)}),t};function eae(){var e;const t=ft(),{size:n}=On((e=t.proxy)==null?void 0:e.$props),o=z(null),l=z([]),a=z([]),r=z(!1),u=z([]),s=z([]),i=z([]),c=z([]),m=z([]),h=z([]),v=z([]),g=z([]),y=z(0),A=z(0),w=z(0),F=z(!1),E=z([]),$=z(!1),T=z(!1),B=z(null),P=z({}),H=z(null),I=z(null),j=z(null),Z=z(null),G=z(null);Ve(l,()=>t.state&&ge(!1),{deep:!0});const N=()=>{if(!o.value)throw new Error(\"[ElTable] prop row-key is required\")},Y=()=>{c.value=u.value.filter(q=>q.fixed===!0||q.fixed===\"left\"),m.value=u.value.filter(q=>q.fixed===\"right\"),c.value.length>0&&u.value[0]&&u.value[0].type===\"selection\"&&!u.value[0].fixed&&(u.value[0].fixed=!0,c.value.unshift(u.value[0]));const he=u.value.filter(q=>!q.fixed);s.value=[].concat(c.value).concat(he).concat(m.value);const Ie=Xr(he),K=Xr(c.value),ue=Xr(m.value);y.value=Ie.length,A.value=K.length,w.value=ue.length,i.value=[].concat(K).concat(Ie).concat(ue),r.value=c.value.length>0||m.value.length>0},ge=(he,Ie=!1)=>{he&&Y(),Ie?t.state.doLayout():t.state.debouncedUpdateLayout()},fe=he=>E.value.includes(he),Ee=()=>{F.value=!1,E.value.length&&(E.value=[],t.emit(\"selection-change\",[]))},ne=()=>{let he;if(o.value){he=[];const Ie=_l(E.value,o.value),K=_l(l.value,o.value);for(const ue in Ie)st(Ie,ue)&&!K[ue]&&he.push(Ie[ue].row)}else he=E.value.filter(Ie=>!l.value.includes(Ie));if(he.length){const Ie=E.value.filter(K=>!he.includes(K));E.value=Ie,t.emit(\"selection-change\",Ie.slice())}},ee=()=>(E.value||[]).slice(),xe=(he,Ie=void 0,K=!0)=>{if(Yr(E.value,he,Ie)){const q=(E.value||[]).slice();K&&t.emit(\"select\",q,he),t.emit(\"selection-change\",q)}},$e=()=>{var he,Ie;const K=T.value?!F.value:!(F.value||E.value.length);F.value=K;let ue=!1,q=0;const k=(Ie=(he=t==null?void 0:t.store)==null?void 0:he.states)==null?void 0:Ie.rowKey.value;l.value.forEach((Me,X)=>{const de=X+q;B.value?B.value.call(null,Me,de)&&Yr(E.value,Me,K)&&(ue=!0):Yr(E.value,Me,K)&&(ue=!0),q+=we(Ot(Me,k))}),ue&&t.emit(\"selection-change\",E.value?E.value.slice():[]),t.emit(\"select-all\",E.value)},x=()=>{const he=_l(E.value,o.value);l.value.forEach(Ie=>{const K=Ot(Ie,o.value),ue=he[K];ue&&(E.value[ue.index]=Ie)})},W=()=>{var he,Ie,K;if(((he=l.value)==null?void 0:he.length)===0){F.value=!1;return}let ue;o.value&&(ue=_l(E.value,o.value));const q=function(de){return ue?!!ue[Ot(de,o.value)]:E.value.includes(de)};let k=!0,Me=0,X=0;for(let de=0,Fe=(l.value||[]).length;de<Fe;de++){const At=(K=(Ie=t==null?void 0:t.store)==null?void 0:Ie.states)==null?void 0:K.rowKey.value,De=de+X,Dt=l.value[de],Ln=B.value&&B.value.call(null,Dt,De);if(q(Dt))Me++;else if(!B.value||Ln){k=!1;break}X+=we(Ot(Dt,At))}Me===0&&(k=!1),F.value=k},we=he=>{var Ie;if(!t||!t.store)return 0;const{treeData:K}=t.store.states;let ue=0;const q=(Ie=K.value[he])==null?void 0:Ie.children;return q&&(ue+=q.length,q.forEach(k=>{ue+=we(k)})),ue},Ae=(he,Ie)=>{Array.isArray(he)||(he=[he]);const K={};return he.forEach(ue=>{P.value[ue.id]=Ie,K[ue.columnKey||ue.id]=Ie}),K},ke=(he,Ie,K)=>{I.value&&I.value!==he&&(I.value.order=null),I.value=he,j.value=Ie,Z.value=K},ve=()=>{let he=_(a);Object.keys(P.value).forEach(Ie=>{const K=P.value[Ie];if(!K||K.length===0)return;const ue=e6({columns:i.value},Ie);ue&&ue.filterMethod&&(he=he.filter(q=>K.some(k=>ue.filterMethod.call(null,k,q,ue))))}),H.value=he},ze=()=>{l.value=Zle(H.value,{sortingColumn:I.value,sortProp:j.value,sortOrder:Z.value})},Ke=(he=void 0)=>{he&&he.filter||ve(),ze()},se=he=>{const{tableHeaderRef:Ie}=t.refs;if(!Ie)return;const K=Object.assign({},Ie.filterPanels),ue=Object.keys(K);if(!!ue.length)if(typeof he==\"string\"&&(he=[he]),Array.isArray(he)){const q=he.map(k=>Wle({columns:i.value},k));ue.forEach(k=>{const Me=q.find(X=>X.id===k);Me&&(Me.filteredValue=[])}),t.store.commit(\"filterChange\",{column:q,values:[],silent:!0,multi:!0})}else ue.forEach(q=>{const k=i.value.find(Me=>Me.id===q);k&&(k.filteredValue=[])}),P.value={},t.store.commit(\"filterChange\",{column:{},values:[],silent:!0})},le=()=>{!I.value||(ke(null,null,null),t.store.commit(\"changeSortCondition\",{silent:!0}))},{setExpandRowKeys:L,toggleRowExpansion:S,updateExpandRows:V,states:O,isRowExpanded:te}=Xle({data:l,rowKey:o}),{updateTreeExpandKeys:_e,toggleTreeExpansion:pe,updateTreeData:Ce,loadOrToggle:be,states:re}=Qle({data:l,rowKey:o}),{updateCurrentRowData:me,updateCurrentRow:Re,setCurrentRowKey:Q,states:Pe}=Jle({data:l,rowKey:o});return{assertRowKey:N,updateColumns:Y,scheduleLayout:ge,isSelected:fe,clearSelection:Ee,cleanSelection:ne,getSelectionRows:ee,toggleRowSelection:xe,_toggleAllSelection:$e,toggleAllSelection:null,updateSelectionByRowKey:x,updateAllSelected:W,updateFilters:Ae,updateCurrentRow:Re,updateSort:ke,execFilter:ve,execSort:ze,execQuery:Ke,clearFilter:se,clearSort:le,toggleRowExpansion:S,setExpandRowKeysAdapter:he=>{L(he),_e(he)},setCurrentRowKey:Q,toggleRowExpansionAdapter:(he,Ie)=>{i.value.some(({type:ue})=>ue===\"expand\")?S(he,Ie):pe(he,Ie)},isRowExpanded:te,updateExpandRows:V,updateCurrentRowData:me,loadOrToggle:be,updateTreeData:Ce,states:{tableSize:n,rowKey:o,data:l,_data:a,isComplex:r,_columns:u,originColumns:s,columns:i,fixedColumns:c,rightFixedColumns:m,leafColumns:h,fixedLeafColumns:v,rightFixedLeafColumns:g,leafColumnsLength:y,fixedLeafColumnsLength:A,rightFixedLeafColumnsLength:w,isAllSelected:F,selection:E,reserveSelection:$,selectOnIndeterminate:T,selectable:B,filters:P,filteredData:H,sortingColumn:I,sortProp:j,sortOrder:Z,hoverRow:G,...O,...re,...Pe}}}function di(e,t){return e.map(n=>{var o;return n.id===t.id?t:((o=n.children)!=null&&o.length&&(n.children=di(n.children,t)),n)})}function o6(e){e.forEach(t=>{var n,o;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(o=t.children)!=null&&o.length&&o6(t.children)}),e.sort((t,n)=>t.no-n.no)}function tae(){const e=ft(),t=eae();return{ns:He(\"table\"),...t,mutations:{setData(r,u){const s=_(r._data)!==u;r.data.value=u,r._data.value=u,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),_(r.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):s?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(r,u,s){const i=_(r._columns);let c=[];s?(s&&!s.children&&(s.children=[]),s.children.push(u),c=di(i,s)):(i.push(u),c=i),o6(c),r._columns.value=c,u.type===\"selection\"&&(r.selectable.value=u.selectable,r.reserveSelection.value=u.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(r,u,s){const i=_(r._columns)||[];if(s)s.children.splice(s.children.findIndex(c=>c.id===u.id),1),s.children.length===0&&delete s.children,r._columns.value=di(i,s);else{const c=i.indexOf(u);c>-1&&(i.splice(c,1),r._columns.value=i)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(r,u){const{prop:s,order:i,init:c}=u;if(s){const m=_(r.columns).find(h=>h.property===s);m&&(m.order=i,e.store.updateSort(m,s,i),e.store.commit(\"changeSortCondition\",{init:c}))}},changeSortCondition(r,u){const{sortingColumn:s,sortProp:i,sortOrder:c}=r,m=_(s),h=_(i),v=_(c);v===null&&(r.sortingColumn.value=null,r.sortProp.value=null);const g={filter:!0};e.store.execQuery(g),(!u||!(u.silent||u.init))&&e.emit(\"sort-change\",{column:m,prop:h,order:v}),e.store.updateTableScrollY()},filterChange(r,u){const{column:s,values:i,silent:c}=u,m=e.store.updateFilters(s,i);e.store.execQuery(),c||e.emit(\"filter-change\",m),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(r,u){e.store.toggleRowSelection(u),e.store.updateAllSelected()},setHoverRow(r,u){r.hoverRow.value=u},setCurrentRow(r,u){e.store.updateCurrentRow(u)}},commit:function(r,...u){const s=e.store.mutations;if(s[r])s[r].apply(e,[e.store.states].concat(u));else throw new Error(`Action not found: ${r}`)},updateTableScrollY:function(){rt(()=>e.layout.updateScrollY.apply(e.layout))}}}const Ia={rowKey:\"rowKey\",defaultExpandAll:\"defaultExpandAll\",selectOnIndeterminate:\"selectOnIndeterminate\",indent:\"indent\",lazy:\"lazy\",data:\"data\",[\"treeProps.hasChildren\"]:{key:\"lazyColumnIdentifier\",default:\"hasChildren\"},[\"treeProps.children\"]:{key:\"childrenColumnName\",default:\"children\"}};function nae(e,t){if(!e)throw new Error(\"Table is required.\");const n=tae();return n.toggleAllSelection=Jl(n._toggleAllSelection,10),Object.keys(Ia).forEach(o=>{l6(a6(t,o),o,n)}),oae(n,t),n}function oae(e,t){Object.keys(Ia).forEach(n=>{Ve(()=>a6(t,n),o=>{l6(o,n,e)})})}function l6(e,t,n){let o=e,l=Ia[t];typeof Ia[t]==\"object\"&&(l=l.key,o=o||Ia[t].default),n.states[l].value=o}function a6(e,t){if(t.includes(\".\")){const n=t.split(\".\");let o=e;return n.forEach(l=>{o=o[l]}),o}else return e[t]}class lae{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=z(null),this.scrollX=z(!1),this.scrollY=z(!1),this.bodyWidth=z(null),this.fixedWidth=z(null),this.rightFixedWidth=z(null),this.gutterWidth=0;for(const n in t)st(t,n)&&(gt(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error(\"Table is required for Table Layout\");if(!this.store)throw new Error(\"Store is required for Table Layout\")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&n){let o=!0;const l=this.scrollY.value;return o=n.wrap$.scrollHeight>n.wrap$.clientHeight,this.scrollY.value=o,l!==o}return!1}setHeight(t,n=\"height\"){if(!_t)return;const o=this.table.vnode.el;if(t=jle(t),this.height.value=Number(t),!o&&(t||t===0))return rt(()=>this.setHeight(t,n));typeof t==\"number\"?(o.style[n]=`${t}px`,this.updateElsHeight()):typeof t==\"string\"&&(o.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,\"max-height\")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(o=>{o.isColumnGroup?t.push.apply(t,o.columns):t.push(o)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers(\"scrollable\")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!==\"DIV\";){if(getComputedStyle(n).display===\"none\")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!_t)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let o=0;const l=this.getFlattenColumns(),a=l.filter(s=>typeof s.width!=\"number\");if(l.forEach(s=>{typeof s.width==\"number\"&&s.realWidth&&(s.realWidth=null)}),a.length>0&&t){if(l.forEach(s=>{o+=Number(s.width||s.minWidth||80)}),o<=n){this.scrollX.value=!1;const s=n-o;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+s;else{const i=a.reduce((h,v)=>h+Number(v.minWidth||80),0),c=s/i;let m=0;a.forEach((h,v)=>{if(v===0)return;const g=Math.floor(Number(h.minWidth||80)*c);m+=g,h.realWidth=Number(h.minWidth||80)+g}),a[0].realWidth=Number(a[0].minWidth||80)+s-m}}else this.scrollX.value=!0,a.forEach(s=>{s.realWidth=Number(s.minWidth)});this.bodyWidth.value=Math.max(o,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(s=>{!s.width&&!s.minWidth?s.realWidth=80:s.realWidth=Number(s.width||s.minWidth),o+=s.realWidth}),this.scrollX.value=o>n,this.bodyWidth.value=o;const r=this.store.states.fixedColumns.value;if(r.length>0){let s=0;r.forEach(i=>{s+=Number(i.realWidth||i.width)}),this.fixedWidth.value=s}const u=this.store.states.rightFixedColumns.value;if(u.length>0){let s=0;u.forEach(i=>{s+=Number(i.realWidth||i.width)}),this.rightFixedWidth.value=s}this.notifyObservers(\"columns\")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(o=>{var l,a;switch(t){case\"columns\":(l=o.state)==null||l.onColumnsChange(this);break;case\"scrollable\":(a=o.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:aae}=$o,rae=Le({name:\"ElTableFilterPanel\",components:{ElCheckbox:$o,ElCheckboxGroup:aae,ElScrollbar:un,ElTooltip:Sn,ElIcon:ut,ArrowDown:sr,ArrowUp:Qi},directives:{ClickOutside:h4},props:{placement:{type:String,default:\"bottom-start\"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=ft(),{t:n}=bn(),o=He(\"table-filter\"),l=t==null?void 0:t.parent;l.filterPanels.value[e.column.id]||(l.filterPanels.value[e.column.id]=t);const a=z(!1),r=z(null),u=R(()=>e.column&&e.column.filters),s=R({get:()=>{var $;return((($=e.column)==null?void 0:$.filteredValue)||[])[0]},set:$=>{i.value&&(typeof $!=\"undefined\"&&$!==null?i.value.splice(0,1,$):i.value.splice(0,1))}}),i=R({get(){return e.column?e.column.filteredValue||[]:[]},set($){e.column&&e.upDataColumn(\"filteredValue\",$)}}),c=R(()=>e.column?e.column.filterMultiple:!0),m=$=>$.value===s.value,h=()=>{a.value=!1},v=$=>{$.stopPropagation(),a.value=!a.value},g=()=>{a.value=!1},y=()=>{F(i.value),h()},A=()=>{i.value=[],F(i.value),h()},w=$=>{s.value=$,F(typeof $!=\"undefined\"&&$!==null?i.value:[]),h()},F=$=>{e.store.commit(\"filterChange\",{column:e.column,values:$}),e.store.updateAllSelected()};Ve(a,$=>{e.column&&e.upDataColumn(\"filterOpened\",$)},{immediate:!0});const E=R(()=>{var $,T;return(T=($=r.value)==null?void 0:$.popperRef)==null?void 0:T.contentRef});return{tooltipVisible:a,multiple:c,filteredValue:i,filterValue:s,filters:u,handleConfirm:y,handleReset:A,handleSelect:w,isActive:m,t:n,ns:o,showFilterPanel:v,hideFilterPanel:g,popperPaneRef:E,tooltip:r}}}),uae={key:0},sae=[\"disabled\"],iae=[\"label\",\"onClick\"];function cae(e,t,n,o,l,a){const r=Qe(\"el-checkbox\"),u=Qe(\"el-checkbox-group\"),s=Qe(\"el-scrollbar\"),i=Qe(\"arrow-up\"),c=Qe(\"arrow-down\"),m=Qe(\"el-icon\"),h=Qe(\"el-tooltip\"),v=Mi(\"click-outside\");return b(),ae(h,{ref:\"tooltip\",visible:e.tooltipVisible,offset:0,placement:e.placement,\"show-arrow\":!1,\"stop-popper-mouse-event\":!1,teleported:\"\",effect:\"light\",pure:\"\",\"popper-class\":e.ns.b(),persistent:\"\"},{content:p(()=>[e.multiple?(b(),C(\"div\",uae,[f(\"div\",{class:U(e.ns.e(\"content\"))},[d(s,{\"wrap-class\":e.ns.e(\"wrap\")},{default:p(()=>[d(u,{modelValue:e.filteredValue,\"onUpdate:modelValue\":t[0]||(t[0]=g=>e.filteredValue=g),class:U(e.ns.e(\"checkbox-group\"))},{default:p(()=>[(b(!0),C(We,null,pt(e.filters,g=>(b(),ae(r,{key:g.value,label:g.value},{default:p(()=>[D(ce(g.text),1)]),_:2},1032,[\"label\"]))),128))]),_:1},8,[\"modelValue\",\"class\"])]),_:1},8,[\"wrap-class\"])],2),f(\"div\",{class:U(e.ns.e(\"bottom\"))},[f(\"button\",{class:U({[e.ns.is(\"disabled\")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:\"button\",onClick:t[1]||(t[1]=(...g)=>e.handleConfirm&&e.handleConfirm(...g))},ce(e.t(\"el.table.confirmFilter\")),11,sae),f(\"button\",{type:\"button\",onClick:t[2]||(t[2]=(...g)=>e.handleReset&&e.handleReset(...g))},ce(e.t(\"el.table.resetFilter\")),1)],2)])):(b(),C(\"ul\",{key:1,class:U(e.ns.e(\"list\"))},[f(\"li\",{class:U([e.ns.e(\"list-item\"),{[e.ns.is(\"active\")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=g=>e.handleSelect(null))},ce(e.t(\"el.table.clearFilter\")),3),(b(!0),C(We,null,pt(e.filters,g=>(b(),C(\"li\",{key:g.value,class:U([e.ns.e(\"list-item\"),e.ns.is(\"active\",e.isActive(g))]),label:g.value,onClick:y=>e.handleSelect(g.value)},ce(g.text),11,iae))),128))],2))]),default:p(()=>[ye((b(),C(\"span\",{class:U([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...g)=>e.showFilterPanel&&e.showFilterPanel(...g))},[d(m,null,{default:p(()=>[e.column.filterOpened?(b(),ae(i,{key:0})):(b(),ae(c,{key:1}))]),_:1})],2)),[[v,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,[\"visible\",\"placement\",\"popper-class\"])}var dae=je(rae,[[\"render\",cae],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue\"]]);function r6(e){const t=ft();$u(()=>{n.value.addObserver(t)}),at(()=>{o(n.value),l(n.value)}),xl(()=>{o(n.value),l(n.value)}),Bo(()=>{n.value.removeObserver(t)});const n=R(()=>{const a=e.layout;if(!a)throw new Error(\"Can not find table layout.\");return a}),o=a=>{var r;const u=((r=e.vnode.el)==null?void 0:r.querySelectorAll(\"colgroup > col\"))||[];if(!u.length)return;const s=a.getFlattenColumns(),i={};s.forEach(c=>{i[c.id]=c});for(let c=0,m=u.length;c<m;c++){const h=u[c],v=h.getAttribute(\"name\"),g=i[v];g&&h.setAttribute(\"width\",g.realWidth||g.width)}},l=a=>{var r,u;const s=((r=e.vnode.el)==null?void 0:r.querySelectorAll(\"colgroup > col[name=gutter]\"))||[];for(let c=0,m=s.length;c<m;c++)s[c].setAttribute(\"width\",a.scrollY.value?a.gutterWidth:\"0\");const i=((u=e.vnode.el)==null?void 0:u.querySelectorAll(\"th.gutter\"))||[];for(let c=0,m=i.length;c<m;c++){const h=i[c];h.style.width=a.scrollY.value?`${a.gutterWidth}px`:\"0\",h.style.display=a.scrollY.value?\"\":\"none\"}};return{tableLayout:n.value,onColumnsChange:o,onScrollableChange:l}}const io=Symbol(\"ElTable\");function fae(e,t){const n=ft(),o=Ze(io),l=y=>{y.stopPropagation()},a=(y,A)=>{!A.filters&&A.sortable?g(y,A,!1):A.filterable&&!A.sortable&&l(y),o==null||o.emit(\"header-click\",A,y)},r=(y,A)=>{o==null||o.emit(\"header-contextmenu\",A,y)},u=z(null),s=z(!1),i=z({}),c=(y,A)=>{if(!!_t&&!(A.children&&A.children.length>0)&&u.value&&e.border){s.value=!0;const w=o;t(\"set-drag-visible\",!0);const E=(w==null?void 0:w.vnode.el).getBoundingClientRect().left,$=n.vnode.el.querySelector(`th.${A.id}`),T=$.getBoundingClientRect(),B=T.left-E+30;go($,\"noclick\"),i.value={startMouseLeft:y.clientX,startLeft:T.right-E,startColumnLeft:T.left-E,tableLeft:E};const P=w==null?void 0:w.refs.resizeProxy;P.style.left=`${i.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const H=j=>{const Z=j.clientX-i.value.startMouseLeft,G=i.value.startLeft+Z;P.style.left=`${Math.max(B,G)}px`},I=()=>{if(s.value){const{startColumnLeft:j,startLeft:Z}=i.value,N=Number.parseInt(P.style.left,10)-j;A.width=A.realWidth=N,w==null||w.emit(\"header-dragend\",A.width,Z-j,A,y),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor=\"\",s.value=!1,u.value=null,i.value={},t(\"set-drag-visible\",!1)}document.removeEventListener(\"mousemove\",H),document.removeEventListener(\"mouseup\",I),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{Rn($,\"noclick\")},0)};document.addEventListener(\"mousemove\",H),document.addEventListener(\"mouseup\",I)}},m=(y,A)=>{var w;if(A.children&&A.children.length>0)return;const F=(w=y.target)==null?void 0:w.closest(\"th\");if(!(!A||!A.resizable)&&!s.value&&e.border){const E=F.getBoundingClientRect(),$=document.body.style;E.width>12&&E.right-y.pageX<8?($.cursor=\"col-resize\",bl(F,\"is-sortable\")&&(F.style.cursor=\"col-resize\"),u.value=A):s.value||($.cursor=\"\",bl(F,\"is-sortable\")&&(F.style.cursor=\"pointer\"),u.value=null)}},h=()=>{!_t||(document.body.style.cursor=\"\")},v=({order:y,sortOrders:A})=>{if(y===\"\")return A[0];const w=A.indexOf(y||null);return A[w>A.length-2?0:w+1]},g=(y,A,w)=>{var F;y.stopPropagation();const E=A.order===w?null:w||v(A),$=(F=y.target)==null?void 0:F.closest(\"th\");if($&&bl($,\"noclick\")){Rn($,\"noclick\");return}if(!A.sortable)return;const T=e.store.states;let B=T.sortProp.value,P;const H=T.sortingColumn.value;(H!==A||H===A&&H.order===null)&&(H&&(H.order=null),T.sortingColumn.value=A,B=A.property),E?P=A.order=E:P=A.order=null,T.sortProp.value=B,T.sortOrder.value=P,o==null||o.store.commit(\"changeSortCondition\")};return{handleHeaderClick:a,handleHeaderContextMenu:r,handleMouseDown:c,handleMouseMove:m,handleMouseOut:h,handleSortClick:g,handleFilterClick:l}}function pae(e){const t=Ze(io),n=He(\"table\");return{getHeaderRowStyle:u=>{const s=t==null?void 0:t.props.headerRowStyle;return typeof s==\"function\"?s.call(null,{rowIndex:u}):s},getHeaderRowClass:u=>{const s=[],i=t==null?void 0:t.props.headerRowClassName;return typeof i==\"string\"?s.push(i):typeof i==\"function\"&&s.push(i.call(null,{rowIndex:u})),s.join(\" \")},getHeaderCellStyle:(u,s,i,c)=>{var m;let h=(m=t==null?void 0:t.props.headerCellStyle)!=null?m:{};typeof h==\"function\"&&(h=h.call(null,{rowIndex:u,columnIndex:s,row:i,column:c}));const v=c.isSubColumn?null:$2(s,c.fixed,e.store,i);return aa(v,\"left\"),aa(v,\"right\"),Object.assign({},h,v)},getHeaderCellClass:(u,s,i,c)=>{const m=c.isSubColumn?[]:x2(n.b(),s,c.fixed,e.store,i),h=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...m];c.children||h.push(\"is-leaf\"),c.sortable&&h.push(\"is-sortable\");const v=t==null?void 0:t.props.headerCellClassName;return typeof v==\"string\"?h.push(v):typeof v==\"function\"&&h.push(v.call(null,{rowIndex:u,columnIndex:s,row:i,column:c})),h.push(n.e(\"cell\")),h.filter(g=>Boolean(g)).join(\" \")}}}const u6=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,u6(n.children))):t.push(n)}),t},vae=e=>{let t=1;const n=(a,r)=>{if(r&&(a.level=r.level+1,t<a.level&&(t=a.level)),a.children){let u=0;a.children.forEach(s=>{n(s,a),u+=s.colSpan}),a.colSpan=u}else a.colSpan=1};e.forEach(a=>{a.level=1,n(a,void 0)});const o=[];for(let a=0;a<t;a++)o.push([]);return u6(e).forEach(a=>{a.children?(a.rowSpan=1,a.children.forEach(r=>r.isSubColumn=!0)):a.rowSpan=t-a.level+1,o[a.level-1].push(a)}),o};function hae(e){const t=Ze(io),n=R(()=>vae(e.store.states.originColumns.value));return{isGroup:R(()=>{const a=n.value.length>1;return a&&t&&(t.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),t==null||t.store.commit(\"toggleAllSelection\")},columnRows:n}}var _ae=Le({name:\"ElTableHeader\",components:{ElCheckbox:$o},props:{fixed:{type:String,default:\"\"},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:\"\",order:\"\"})}},setup(e,{emit:t}){const n=ft(),o=Ze(io),l=He(\"table\"),a=z({}),{onColumnsChange:r,onScrollableChange:u}=r6(o);at(async()=>{await rt(),await rt();const{prop:B,order:P}=e.defaultSort;o==null||o.store.commit(\"sort\",{prop:B,order:P,init:!0})});const{handleHeaderClick:s,handleHeaderContextMenu:i,handleMouseDown:c,handleMouseMove:m,handleMouseOut:h,handleSortClick:v,handleFilterClick:g}=fae(e,t),{getHeaderRowStyle:y,getHeaderRowClass:A,getHeaderCellStyle:w,getHeaderCellClass:F}=pae(e),{isGroup:E,toggleAllSelection:$,columnRows:T}=hae(e);return n.state={onColumnsChange:r,onScrollableChange:u},n.filterPanels=a,{ns:l,filterPanels:a,onColumnsChange:r,onScrollableChange:u,columnRows:T,getHeaderRowClass:A,getHeaderRowStyle:y,getHeaderCellClass:F,getHeaderCellStyle:w,handleHeaderClick:s,handleHeaderContextMenu:i,handleMouseDown:c,handleMouseMove:m,handleMouseOut:h,handleSortClick:v,handleFilterClick:g,isGroup:E,toggleAllSelection:$}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:o,getHeaderCellClass:l,getHeaderRowClass:a,getHeaderRowStyle:r,handleHeaderClick:u,handleHeaderContextMenu:s,handleMouseDown:i,handleMouseMove:c,handleSortClick:m,handleMouseOut:h,store:v,$parent:g}=this;let y=1;return Ne(\"thead\",{class:{[e.is(\"group\")]:t}},n.map((A,w)=>Ne(\"tr\",{class:a(w),key:w,style:r(w)},A.map((F,E)=>(F.rowSpan>y&&(y=F.rowSpan),Ne(\"th\",{class:l(w,E,A,F),colspan:F.colSpan,key:`${F.id}-thead`,rowspan:F.rowSpan,style:o(w,E,A,F),onClick:$=>u($,F),onContextmenu:$=>s($,F),onMousedown:$=>i($,F),onMousemove:$=>c($,F),onMouseout:h},[Ne(\"div\",{class:[\"cell\",F.filteredValue&&F.filteredValue.length>0?\"highlight\":\"\"]},[F.renderHeader?F.renderHeader({column:F,$index:E,store:v,_self:g}):F.label,F.sortable&&Ne(\"span\",{onClick:$=>m($,F),class:\"caret-wrapper\"},[Ne(\"i\",{onClick:$=>m($,F,\"ascending\"),class:\"sort-caret ascending\"}),Ne(\"i\",{onClick:$=>m($,F,\"descending\"),class:\"sort-caret descending\"})]),F.filterable&&Ne(dae,{store:v,placement:F.filterPlacement||\"bottom-start\",column:F,upDataColumn:($,T)=>{F[$]=T}})])]))))))}});function mae(e){const t=Ze(io),n=z(\"\"),o=z(Ne(\"div\")),l=(h,v,g)=>{var y;const A=t,w=gs(h);let F;const E=(y=A==null?void 0:A.vnode.el)==null?void 0:y.dataset.prefix;w&&(F=ed({columns:e.store.states.columns.value},w,E),F&&(A==null||A.emit(`cell-${g}`,v,F,w,h))),A==null||A.emit(`row-${g}`,v,F,h)},a=(h,v)=>{l(h,v,\"dblclick\")},r=(h,v)=>{e.store.commit(\"setCurrentRow\",v),l(h,v,\"click\")},u=(h,v)=>{l(h,v,\"contextmenu\")},s=Jl(h=>{e.store.commit(\"setHoverRow\",h)},30),i=Jl(()=>{e.store.commit(\"setHoverRow\",null)},30);return{handleDoubleClick:a,handleClick:r,handleContextMenu:u,handleMouseEnter:s,handleMouseLeave:i,handleCellMouseEnter:(h,v,g)=>{var y;const A=t,w=gs(h),F=(y=A==null?void 0:A.vnode.el)==null?void 0:y.dataset.prefix;if(w){const P=ed({columns:e.store.states.columns.value},w,F),H=A.hoverState={cell:w,column:P,row:v};A==null||A.emit(\"cell-mouse-enter\",H.row,H.column,H.cell,h)}const E=h.target.querySelector(\".cell\");if(!(bl(E,`${F}-tooltip`)&&E.childNodes.length))return;const $=document.createRange();$.setStart(E,0),$.setEnd(E,E.childNodes.length);const T=$.getBoundingClientRect().width,B=(Number.parseInt(mo(E,\"paddingLeft\"),10)||0)+(Number.parseInt(mo(E,\"paddingRight\"),10)||0);(T+B>E.offsetWidth||E.scrollWidth>E.offsetWidth)&&Yle(t==null?void 0:t.refs.tableWrapper,w,w.innerText||w.textContent,{placement:\"top\",strategy:\"fixed\"},g)},handleCellMouseLeave:h=>{if(!gs(h))return;const g=t==null?void 0:t.hoverState;t==null||t.emit(\"cell-mouse-leave\",g==null?void 0:g.row,g==null?void 0:g.column,g==null?void 0:g.cell,h)},tooltipContent:n,tooltipTrigger:o}}function gae(e){const t=Ze(io),n=He(\"table\");return{getRowStyle:(i,c)=>{const m=t==null?void 0:t.props.rowStyle;return typeof m==\"function\"?m.call(null,{row:i,rowIndex:c}):m||null},getRowClass:(i,c)=>{const m=[n.e(\"row\")];(t==null?void 0:t.props.highlightCurrentRow)&&i===e.store.states.currentRow.value&&m.push(\"current-row\"),e.stripe&&c%2===1&&m.push(n.em(\"row\",\"striped\"));const h=t==null?void 0:t.props.rowClassName;return typeof h==\"string\"?m.push(h):typeof h==\"function\"&&m.push(h.call(null,{row:i,rowIndex:c})),m},getCellStyle:(i,c,m,h)=>{const v=t==null?void 0:t.props.cellStyle;let g=v!=null?v:{};typeof v==\"function\"&&(g=v.call(null,{rowIndex:i,columnIndex:c,row:m,column:h}));const y=h.isSubColumn?null:$2(c,e==null?void 0:e.fixed,e.store);return aa(y,\"left\"),aa(y,\"right\"),Object.assign({},g,y)},getCellClass:(i,c,m,h)=>{const v=h.isSubColumn?[]:x2(n.b(),c,e==null?void 0:e.fixed,e.store),g=[h.id,h.align,h.className,...v],y=t==null?void 0:t.props.cellClassName;return typeof y==\"string\"?g.push(y):typeof y==\"function\"&&g.push(y.call(null,{rowIndex:i,columnIndex:c,row:m,column:h})),g.push(n.e(\"cell\")),g.filter(A=>Boolean(A)).join(\" \")},getSpan:(i,c,m,h)=>{let v=1,g=1;const y=t==null?void 0:t.props.spanMethod;if(typeof y==\"function\"){const A=y({row:i,column:c,rowIndex:m,columnIndex:h});Array.isArray(A)?(v=A[0],g=A[1]):typeof A==\"object\"&&(v=A.rowspan,g=A.colspan)}return{rowspan:v,colspan:g}},getColspanRealWidth:(i,c,m)=>{if(c<1)return i[m].realWidth;const h=i.map(({realWidth:v,width:g})=>v||g).slice(m,m+c);return Number(h.reduce((v,g)=>Number(v)+Number(g),-1))}}}function bae(e){const t=Ze(io),n=He(\"table\"),{handleDoubleClick:o,handleClick:l,handleContextMenu:a,handleMouseEnter:r,handleMouseLeave:u,handleCellMouseEnter:s,handleCellMouseLeave:i,tooltipContent:c,tooltipTrigger:m}=mae(e),{getRowStyle:h,getRowClass:v,getCellStyle:g,getCellClass:y,getSpan:A,getColspanRealWidth:w}=gae(e),F=R(()=>e.store.states.columns.value.findIndex(({type:P})=>P===\"default\")),E=(P,H)=>{const I=t.props.rowKey;return I?Ot(P,I):H},$=(P,H,I,j=!1)=>{const{tooltipEffect:Z,store:G}=e,{indent:N,columns:Y}=G.states,ge=v(P,H);let fe=!0;return I&&(ge.push(n.em(\"row\",`level-${I.level}`)),fe=I.display),Ne(\"tr\",{style:[fe?null:{display:\"none\"},h(P,H)],class:ge,key:E(P,H),onDblclick:ne=>o(ne,P),onClick:ne=>l(ne,P),onContextmenu:ne=>a(ne,P),onMouseenter:()=>r(H),onMouseleave:u},Y.value.map((ne,ee)=>{const{rowspan:xe,colspan:$e}=A(P,ne,H,ee);if(!xe||!$e)return null;const x={...ne};x.realWidth=w(Y.value,$e,ee);const W={store:e.store,_self:e.context||t,column:x,row:P,$index:H,cellIndex:ee,expanded:j};ee===F.value&&I&&(W.treeNode={indent:I.level*N.value,level:I.level},typeof I.expanded==\"boolean\"&&(W.treeNode.expanded=I.expanded,\"loading\"in I&&(W.treeNode.loading=I.loading),\"noLazyChildren\"in I&&(W.treeNode.noLazyChildren=I.noLazyChildren)));const we=`${H},${ee}`,Ae=x.columnKey||x.rawColumnKey||\"\",ke=T(ee,ne,W);return Ne(\"td\",{style:g(H,ee,P,ne),class:y(H,ee,P,ne),key:`${Ae}${we}`,rowspan:xe,colspan:$e,onMouseenter:ve=>s(ve,P,Z),onMouseleave:i},[ke])}))},T=(P,H,I)=>H.renderCell(I);return{wrappedRowRender:(P,H)=>{const I=e.store,{isRowExpanded:j,assertRowKey:Z}=I,{treeData:G,lazyTreeNodeMap:N,childrenColumnName:Y,rowKey:ge}=I.states,fe=I.states.columns.value;if(fe.some(({type:ne})=>ne===\"expand\")){const ne=j(P),ee=$(P,H,void 0,ne),xe=t.renderExpanded;return ne?xe?[[ee,Ne(\"tr\",{key:`expanded-row__${ee.key}`},[Ne(\"td\",{colspan:fe.length,class:`${n.e(\"cell\")} ${n.e(\"expanded-cell\")}`},[xe({row:P,$index:H,store:I,expanded:ne})])])]]:(console.error(\"[Element Error]renderExpanded is required.\"),ee):[[ee]]}else if(Object.keys(G.value).length){Z();const ne=Ot(P,ge.value);let ee=G.value[ne],xe=null;ee&&(xe={expanded:ee.expanded,level:ee.level,display:!0},typeof ee.lazy==\"boolean\"&&(typeof ee.loaded==\"boolean\"&&ee.loaded&&(xe.noLazyChildren=!(ee.children&&ee.children.length)),xe.loading=ee.loading));const $e=[$(P,H,xe)];if(ee){let x=0;const W=(Ae,ke)=>{!(Ae&&Ae.length&&ke)||Ae.forEach(ve=>{const ze={display:ke.display&&ke.expanded,level:ke.level+1,expanded:!1,noLazyChildren:!1,loading:!1},Ke=Ot(ve,ge.value);if(Ke==null)throw new Error(\"For nested data item, row-key is required.\");if(ee={...G.value[Ke]},ee&&(ze.expanded=ee.expanded,ee.level=ee.level||ze.level,ee.display=!!(ee.expanded&&ze.display),typeof ee.lazy==\"boolean\"&&(typeof ee.loaded==\"boolean\"&&ee.loaded&&(ze.noLazyChildren=!(ee.children&&ee.children.length)),ze.loading=ee.loading)),x++,$e.push($(ve,H+x,ze)),ee){const se=N.value[Ke]||ve[Y.value];W(se,ee)}})};ee.display=!0;const we=N.value[ne]||P[Y.value];W(we,ee)}return $e}else return $(P,H,void 0)},tooltipContent:c,tooltipTrigger:m}}const yae={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:\"\"},highlight:Boolean};var wae=Le({name:\"ElTableBody\",props:yae,setup(e){const t=ft(),n=Ze(io),o=He(\"table\"),{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:r}=bae(e),{onColumnsChange:u,onScrollableChange:s}=r6(n);return Ve(e.store.states.hoverRow,(i,c)=>{if(!e.store.states.isComplex.value||!_t)return;let m=window.requestAnimationFrame;m||(m=h=>window.setTimeout(h,16)),m(()=>{var h;const v=(h=t==null?void 0:t.vnode.el)==null?void 0:h.querySelectorAll(`.${o.e(\"row\")}`),g=v[c],y=v[i];g&&Rn(g,\"hover-row\"),y&&go(y,\"hover-row\")})}),Bo(()=>{var i;(i=vo)==null||i()}),{ns:o,onColumnsChange:u,onScrollableChange:s,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:r}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return Ne(\"tbody\",{},[n.reduce((o,l)=>o.concat(e(l,o.length)),[])])}});function D2(e){const t=e.tableLayout===\"auto\";let n=e.columns||[];t&&n.every(l=>l.width===void 0)&&(n=[]);const o=l=>{const a={key:`${e.tableLayout}_${l.id}`,style:{},name:void 0};return t?a.style={width:`${l.width}px`}:a.name=l.id,a};return Ne(\"colgroup\",{},n.map(l=>Ne(\"col\",o(l))))}D2.props=[\"columns\",\"tableLayout\"];function Cae(){const e=Ze(io),t=e==null?void 0:e.store,n=R(()=>t.states.fixedLeafColumnsLength.value),o=R(()=>t.states.rightFixedColumns.value.length),l=R(()=>t.states.columns.value.length),a=R(()=>t.states.fixedColumns.value.length),r=R(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:o,columnsCount:l,leftFixedCount:a,rightFixedCount:r,columns:t.states.columns}}function Eae(e){const{columns:t}=Cae(),n=He(\"table\");return{getCellClasses:(a,r)=>{const u=a[r],s=[n.e(\"cell\"),u.id,u.align,u.labelClassName,...x2(n.b(),r,u.fixed,e.store)];return u.className&&s.push(u.className),u.children||s.push(n.is(\"leaf\")),s},getCellStyles:(a,r)=>{const u=$2(r,a.fixed,e.store);return aa(u,\"left\"),aa(u,\"right\"),u},columns:t}}var Aae=Le({name:\"ElTableFooter\",props:{fixed:{type:String,default:\"\"},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:\"\",order:\"\"})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:o}=Eae(e);return{ns:He(\"table\"),getCellClasses:t,getCellStyles:n,columns:o}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:o,sumText:l,ns:a}=this,r=this.store.states.data.value;let u=[];return o?u=o({columns:e,data:r}):e.forEach((s,i)=>{if(i===0){u[i]=l;return}const c=r.map(g=>Number(g[s.property])),m=[];let h=!0;c.forEach(g=>{if(!Number.isNaN(+g)){h=!1;const y=`${g}`.split(\".\")[1];m.push(y?y.length:0)}});const v=Math.max.apply(null,m);h?u[i]=\"\":u[i]=c.reduce((g,y)=>{const A=Number(y);return Number.isNaN(+A)?g:Number.parseFloat((g+y).toFixed(Math.min(v,20)))},0)}),Ne(\"table\",{class:a.e(\"footer\"),cellspacing:\"0\",cellpadding:\"0\",border:\"0\"},[D2({columns:e}),Ne(\"tbody\",[Ne(\"tr\",{},[...e.map((s,i)=>Ne(\"td\",{key:i,colspan:s.colSpan,rowspan:s.rowSpan,class:n(e,i),style:t(s,i)},[Ne(\"div\",{class:[\"cell\",s.labelClassName]},[u[i]])]))])])])}});function Fae(e){return{setCurrentRow:c=>{e.commit(\"setCurrentRow\",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,m)=>{e.toggleRowSelection(c,m,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit(\"toggleAllSelection\")},toggleRowExpansion:(c,m)=>{e.toggleRowExpansionAdapter(c,m)},clearSort:()=>{e.clearSort()},sort:(c,m)=>{e.commit(\"sort\",{prop:c,order:m})}}}function xae(e,t,n,o){const l=z(!1),a=z(null),r=z(!1),u=ne=>{r.value=ne},s=z({width:null,height:null,headerHeight:null}),i=z(!1),c={display:\"inline-block\",verticalAlign:\"middle\"},m=z(),h=z(0),v=z(0),g=z(0),y=z(0);yo(()=>{t.setHeight(e.height)}),yo(()=>{t.setMaxHeight(e.maxHeight)}),Ve(()=>[e.currentRowKey,n.states.rowKey],([ne,ee])=>{!_(ee)||n.setCurrentRowKey(`${ne}`)},{immediate:!0}),Ve(()=>e.data,ne=>{o.store.commit(\"setData\",ne)},{immediate:!0,deep:!0}),yo(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const A=()=>{o.store.commit(\"setHoverRow\",null),o.hoverState&&(o.hoverState=null)},w=(ne,ee)=>{const{pixelX:xe,pixelY:$e}=ee;Math.abs(xe)>=Math.abs($e)&&(o.refs.bodyWrapper.scrollLeft+=ee.pixelX/5)},F=R(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),E=R(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:\"\"})),$=()=>{F.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(H)};at(async()=>{await rt(),n.updateColumns(),I(),requestAnimationFrame($);const ne=o.vnode.el,ee=o.refs.headerWrapper;e.flexible&&ne&&ne.parentElement&&(ne.parentElement.style.minWidth=\"0\"),s.value={width:m.value=ne.offsetWidth,height:ne.offsetHeight,headerHeight:e.showHeader&&ee?ee.offsetHeight:null},n.states.columns.value.forEach(xe=>{xe.filteredValue&&xe.filteredValue.length&&o.store.commit(\"filterChange\",{column:xe,values:xe.filteredValue,silent:!0})}),o.$ready=!0});const T=(ne,ee)=>{if(!ne)return;const xe=Array.from(ne.classList).filter($e=>!$e.startsWith(\"is-scrolling-\"));xe.push(t.scrollX.value?ee:\"is-scrolling-none\"),ne.className=xe.join(\" \")},B=ne=>{const{tableWrapper:ee}=o.refs;T(ee,ne)},P=ne=>{const{tableWrapper:ee}=o.refs;return!!(ee&&ee.classList.contains(ne))},H=function(){if(!o.refs.scrollBarRef)return;if(!t.scrollX.value){const Ae=\"is-scrolling-none\";P(Ae)||B(Ae);return}const ne=o.refs.scrollBarRef.wrap$;if(!ne)return;const{scrollLeft:ee,offsetWidth:xe,scrollWidth:$e}=ne,{headerWrapper:x,footerWrapper:W}=o.refs;x&&(x.scrollLeft=ee),W&&(W.scrollLeft=ee);const we=$e-xe-1;ee>=we?B(\"is-scrolling-right\"):B(ee===0?\"is-scrolling-left\":\"is-scrolling-middle\")},I=()=>{!o.refs.scrollBarRef||(o.refs.scrollBarRef.wrap$&&Kt(o.refs.scrollBarRef.wrap$,\"scroll\",H,{passive:!0}),e.fit?ro(o.vnode.el,j):Kt(window,\"resize\",j),ro(o.refs.bodyWrapper,()=>{var ne,ee;j(),(ee=(ne=o.refs)==null?void 0:ne.scrollBarRef)==null||ee.update()}))},j=()=>{var ne,ee,xe;const $e=o.vnode.el;if(!o.$ready||!$e)return;let x=!1;const{width:W,height:we,headerHeight:Ae}=s.value,ke=m.value=$e.offsetWidth;W!==ke&&(x=!0);const ve=$e.offsetHeight;(e.height||F.value)&&we!==ve&&(x=!0);const ze=e.tableLayout===\"fixed\"?o.refs.headerWrapper:(ne=o.refs.tableHeaderRef)==null?void 0:ne.$el;e.showHeader&&(ze==null?void 0:ze.offsetHeight)!==Ae&&(x=!0),h.value=((ee=o.refs.tableWrapper)==null?void 0:ee.scrollHeight)||0,g.value=(ze==null?void 0:ze.scrollHeight)||0,y.value=((xe=o.refs.footerWrapper)==null?void 0:xe.offsetHeight)||0,v.value=h.value-g.value-y.value,x&&(s.value={width:ke,height:ve,headerHeight:e.showHeader&&(ze==null?void 0:ze.offsetHeight)||0},$())},Z=Qt(),G=R(()=>{const{bodyWidth:ne,scrollY:ee,gutterWidth:xe}=t;return ne.value?`${ne.value-(ee.value?xe:0)}px`:\"\"}),N=R(()=>e.maxHeight?\"fixed\":e.tableLayout),Y=R(()=>{if(e.data&&e.data.length)return null;let ne=\"100%\";e.height&&v.value&&(ne=`${v.value}px`);const ee=m.value;return{width:ee?`${ee}px`:\"\",height:ne}}),ge=R(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),fe=R(()=>{if(e.height)return{height:\"100%\"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${g.value+y.value}px)`};{const ne=e.maxHeight;if(h.value>=Number(ne))return{maxHeight:`${h.value-g.value-y.value}px`}}}return{}});return{isHidden:l,renderExpanded:a,setDragVisible:u,isGroup:i,handleMouseLeave:A,handleHeaderFooterMousewheel:w,tableSize:Z,emptyBlockStyle:Y,handleFixedMousewheel:(ne,ee)=>{const xe=o.refs.bodyWrapper;if(Math.abs(ee.spinY)>0){const $e=xe.scrollTop;ee.pixelY<0&&$e!==0&&ne.preventDefault(),ee.pixelY>0&&xe.scrollHeight-xe.clientHeight>$e&&ne.preventDefault(),xe.scrollTop+=Math.ceil(ee.pixelY/5)}else xe.scrollLeft+=Math.ceil(ee.pixelX/5)},resizeProxyVisible:r,bodyWidth:G,resizeState:s,doLayout:$,tableBodyStyles:E,tableLayout:N,scrollbarViewStyle:c,tableInnerStyle:ge,scrollbarStyle:fe}}var $ae={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:\"hasChildren\",children:\"children\"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:\"\"},tableLayout:{type:String,default:\"fixed\"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const Dae=()=>{const e=z(),t=(a,r)=>{const u=e.value;u&&u.scrollTo(a,r)},n=(a,r)=>{const u=e.value;u&&mt(r)&&[\"Top\",\"Left\"].includes(a)&&u[`setScroll${a}`](r)};return{scrollBarRef:e,scrollTo:t,setScrollTop:a=>n(\"Top\",a),setScrollLeft:a=>n(\"Left\",a)}};let Bae=1;const Sae=Le({name:\"ElTable\",directives:{Mousewheel:nee},components:{TableHeader:_ae,TableBody:wae,TableFooter:Aae,ElScrollbar:un,hColgroup:D2},props:$ae,emits:[\"select\",\"select-all\",\"selection-change\",\"cell-mouse-enter\",\"cell-mouse-leave\",\"cell-contextmenu\",\"cell-click\",\"cell-dblclick\",\"row-click\",\"row-contextmenu\",\"row-dblclick\",\"header-click\",\"header-contextmenu\",\"sort-change\",\"filter-change\",\"current-change\",\"header-dragend\",\"expand-change\"],setup(e){const{t}=bn(),n=He(\"table\"),o=ft();$t(io,o);const l=nae(o,e);o.store=l;const a=new lae({store:o.store,table:o,fit:e.fit,showHeader:e.showHeader});o.layout=a;const r=R(()=>(l.states.data.value||[]).length===0),{setCurrentRow:u,getSelectionRows:s,toggleRowSelection:i,clearSelection:c,clearFilter:m,toggleAllSelection:h,toggleRowExpansion:v,clearSort:g,sort:y}=Fae(l),{isHidden:A,renderExpanded:w,setDragVisible:F,isGroup:E,handleMouseLeave:$,handleHeaderFooterMousewheel:T,tableSize:B,emptyBlockStyle:P,handleFixedMousewheel:H,resizeProxyVisible:I,bodyWidth:j,resizeState:Z,doLayout:G,tableBodyStyles:N,tableLayout:Y,scrollbarViewStyle:ge,tableInnerStyle:fe,scrollbarStyle:Ee}=xae(e,a,l,o),{scrollBarRef:ne,scrollTo:ee,setScrollLeft:xe,setScrollTop:$e}=Dae(),x=Jl(G,50),W=`${n.namespace.value}-table_${Bae++}`;o.tableId=W,o.state={isGroup:E,resizeState:Z,doLayout:G,debouncedUpdateLayout:x};const we=R(()=>e.sumText||t(\"el.table.sumText\")),Ae=R(()=>e.emptyText||t(\"el.table.emptyText\"));return{ns:n,layout:a,store:l,handleHeaderFooterMousewheel:T,handleMouseLeave:$,tableId:W,tableSize:B,isHidden:A,isEmpty:r,renderExpanded:w,resizeProxyVisible:I,resizeState:Z,isGroup:E,bodyWidth:j,tableBodyStyles:N,emptyBlockStyle:P,debouncedUpdateLayout:x,handleFixedMousewheel:H,setCurrentRow:u,getSelectionRows:s,toggleRowSelection:i,clearSelection:c,clearFilter:m,toggleAllSelection:h,toggleRowExpansion:v,clearSort:g,doLayout:G,sort:y,t,setDragVisible:F,context:o,computedSumText:we,computedEmptyText:Ae,tableLayout:Y,scrollbarViewStyle:ge,tableInnerStyle:fe,scrollbarStyle:Ee,scrollBarRef:ne,scrollTo:ee,setScrollLeft:xe,setScrollTop:$e}}}),kae=[\"data-prefix\"],Pae={ref:\"hiddenColumns\",class:\"hidden-columns\"};function Lae(e,t,n,o,l,a){const r=Qe(\"hColgroup\"),u=Qe(\"table-header\"),s=Qe(\"table-body\"),i=Qe(\"el-scrollbar\"),c=Qe(\"table-footer\"),m=Mi(\"mousewheel\");return b(),C(\"div\",{ref:\"tableWrapper\",class:U([{[e.ns.m(\"fit\")]:e.fit,[e.ns.m(\"striped\")]:e.stripe,[e.ns.m(\"border\")]:e.border||e.isGroup,[e.ns.m(\"hidden\")]:e.isHidden,[e.ns.m(\"group\")]:e.isGroup,[e.ns.m(\"fluid-height\")]:e.maxHeight,[e.ns.m(\"scrollable-x\")]:e.layout.scrollX.value,[e.ns.m(\"scrollable-y\")]:e.layout.scrollY.value,[e.ns.m(\"enable-row-hover\")]:!e.store.states.isComplex.value,[e.ns.m(\"enable-row-transition\")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,\"has-footer\":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:nt(e.style),\"data-prefix\":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=h=>e.handleMouseLeave())},[f(\"div\",{class:U(e.ns.e(\"inner-wrapper\")),style:nt(e.tableInnerStyle)},[f(\"div\",Pae,[Te(e.$slots,\"default\")],512),e.showHeader&&e.tableLayout===\"fixed\"?ye((b(),C(\"div\",{key:0,ref:\"headerWrapper\",class:U(e.ns.e(\"header-wrapper\"))},[f(\"table\",{ref:\"tableHeader\",class:U(e.ns.e(\"header\")),style:nt(e.tableBodyStyles),border:\"0\",cellpadding:\"0\",cellspacing:\"0\"},[d(r,{columns:e.store.states.columns.value,\"table-layout\":e.tableLayout},null,8,[\"columns\",\"table-layout\"]),d(u,{ref:\"tableHeaderRef\",border:e.border,\"default-sort\":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,[\"border\",\"default-sort\",\"store\",\"onSetDragVisible\"])],6)],2)),[[m,e.handleHeaderFooterMousewheel]]):oe(\"v-if\",!0),f(\"div\",{ref:\"bodyWrapper\",class:U(e.ns.e(\"body-wrapper\"))},[d(i,{ref:\"scrollBarRef\",\"view-style\":e.scrollbarViewStyle,\"wrap-style\":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:p(()=>[f(\"table\",{ref:\"tableBody\",class:U(e.ns.e(\"body\")),cellspacing:\"0\",cellpadding:\"0\",border:\"0\",style:nt({width:e.bodyWidth,tableLayout:e.tableLayout})},[d(r,{columns:e.store.states.columns.value,\"table-layout\":e.tableLayout},null,8,[\"columns\",\"table-layout\"]),e.showHeader&&e.tableLayout===\"auto\"?(b(),ae(u,{key:0,ref:\"tableHeaderRef\",border:e.border,\"default-sort\":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,[\"border\",\"default-sort\",\"store\",\"onSetDragVisible\"])):oe(\"v-if\",!0),d(s,{context:e.context,highlight:e.highlightCurrentRow,\"row-class-name\":e.rowClassName,\"tooltip-effect\":e.tooltipEffect,\"row-style\":e.rowStyle,store:e.store,stripe:e.stripe},null,8,[\"context\",\"highlight\",\"row-class-name\",\"tooltip-effect\",\"row-style\",\"store\",\"stripe\"])],6),e.isEmpty?(b(),C(\"div\",{key:0,ref:\"emptyBlock\",style:nt(e.emptyBlockStyle),class:U(e.ns.e(\"empty-block\"))},[f(\"span\",{class:U(e.ns.e(\"empty-text\"))},[Te(e.$slots,\"empty\",{},()=>[D(ce(e.computedEmptyText),1)])],2)],6)):oe(\"v-if\",!0),e.$slots.append?(b(),C(\"div\",{key:1,ref:\"appendWrapper\",class:U(e.ns.e(\"append-wrapper\"))},[Te(e.$slots,\"append\")],2)):oe(\"v-if\",!0)]),_:3},8,[\"view-style\",\"wrap-style\",\"always\"])],2),e.showSummary?ye((b(),C(\"div\",{key:1,ref:\"footerWrapper\",class:U(e.ns.e(\"footer-wrapper\"))},[d(c,{border:e.border,\"default-sort\":e.defaultSort,store:e.store,style:nt(e.tableBodyStyles),\"sum-text\":e.computedSumText,\"summary-method\":e.summaryMethod},null,8,[\"border\",\"default-sort\",\"store\",\"style\",\"sum-text\",\"summary-method\"])],2)),[[Be,!e.isEmpty],[m,e.handleHeaderFooterMousewheel]]):oe(\"v-if\",!0),e.border||e.isGroup?(b(),C(\"div\",{key:2,class:U(e.ns.e(\"border-left-patch\"))},null,2)):oe(\"v-if\",!0)],6),ye(f(\"div\",{ref:\"resizeProxy\",class:U(e.ns.e(\"column-resize-proxy\"))},null,2),[[Be,e.resizeProxyVisible]])],46,kae)}var zae=je(Sae,[[\"render\",Lae],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue\"]]);const Tae={selection:\"table-column--selection\",expand:\"table__expand-column\"},Mae={default:{order:\"\"},selection:{width:48,minWidth:48,realWidth:48,order:\"\"},expand:{width:48,minWidth:48,realWidth:48,order:\"\"},index:{width:48,minWidth:48,realWidth:48,order:\"\"}},Vae=e=>Tae[e]||\"\",Hae={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Ne($o,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,\"onUpdate:modelValue\":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:o}){return Ne($o,{disabled:t.selectable?!t.selectable.call(null,e,o):!1,size:n.states.tableSize.value,onChange:()=>{n.commit(\"rowSelectedChanged\",e)},onClick:l=>l.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||\"#\"},renderCell({column:e,$index:t}){let n=t+1;const o=e.index;return typeof o==\"number\"?n=t+o:typeof o==\"function\"&&(n=o(t)),Ne(\"div\",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||\"\"},renderCell({row:e,store:t,expanded:n}){const{ns:o}=t,l=[o.e(\"expand-icon\")];return n&&l.push(o.em(\"expand-icon\",\"expanded\")),Ne(\"div\",{class:l,onClick:function(r){r.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[Ne(ut,null,{default:()=>[Ne(pa)]})]})},sortable:!1,resizable:!1}};function Iae({row:e,column:t,$index:n}){var o;const l=t.property,a=l&&Nr(e,l).value;return t&&t.formatter?t.formatter(e,t,a,n):((o=a==null?void 0:a.toString)==null?void 0:o.call(a))||\"\"}function Rae({row:e,treeNode:t,store:n},o=!1){const{ns:l}=n;if(!t)return o?[Ne(\"span\",{class:l.e(\"placeholder\")})]:null;const a=[],r=function(u){u.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&a.push(Ne(\"span\",{class:l.e(\"indent\"),style:{\"padding-left\":`${t.indent}px`}})),typeof t.expanded==\"boolean\"&&!t.noLazyChildren){const u=[l.e(\"expand-icon\"),t.expanded?l.em(\"expand-icon\",\"expanded\"):\"\"];let s=pa;t.loading&&(s=cr),a.push(Ne(\"div\",{class:u,onClick:r},{default:()=>[Ne(ut,{class:{[l.is(\"loading\")]:t.loading}},{default:()=>[Ne(s)]})]}))}else a.push(Ne(\"span\",{class:l.e(\"placeholder\")}));return a}function nd(e,t){return e.reduce((n,o)=>(n[o]=o,n),t)}function Nae(e,t){const n=ft();return{registerComplexWatchers:()=>{const a=[\"fixed\"],r={realWidth:\"width\",realMinWidth:\"minWidth\"},u=nd(a,r);Object.keys(u).forEach(s=>{const i=r[s];st(t,i)&&Ve(()=>t[i],c=>{let m=c;i===\"width\"&&s===\"realWidth\"&&(m=F2(c)),i===\"minWidth\"&&s===\"realMinWidth\"&&(m=t6(c)),n.columnConfig.value[i]=m,n.columnConfig.value[s]=m;const h=i===\"fixed\";e.value.store.scheduleLayout(h)})})},registerNormalWatchers:()=>{const a=[\"label\",\"filters\",\"filterMultiple\",\"sortable\",\"index\",\"formatter\",\"className\",\"labelClassName\",\"showOverflowTooltip\"],r={property:\"prop\",align:\"realAlign\",headerAlign:\"realHeaderAlign\"},u=nd(a,r);Object.keys(u).forEach(s=>{const i=r[s];st(t,i)&&Ve(()=>t[i],c=>{n.columnConfig.value[s]=c})})}}}function Oae(e,t,n){const o=ft(),l=z(\"\"),a=z(!1),r=z(),u=z(),s=He(\"table\");yo(()=>{r.value=e.align?`is-${e.align}`:null,r.value}),yo(()=>{u.value=e.headerAlign?`is-${e.headerAlign}`:r.value,u.value});const i=R(()=>{let E=o.vnode.vParent||o.parent;for(;E&&!E.tableId&&!E.columnId;)E=E.vnode.vParent||E.parent;return E}),c=R(()=>{const{store:E}=o.parent;if(!E)return!1;const{treeData:$}=E.states,T=$.value;return T&&Object.keys(T).length>0}),m=z(F2(e.width)),h=z(t6(e.minWidth)),v=E=>(m.value&&(E.width=m.value),h.value&&(E.minWidth=h.value),!m.value&&h.value&&(E.width=void 0),E.minWidth||(E.minWidth=80),E.realWidth=Number(E.width===void 0?E.minWidth:E.width),E),g=E=>{const $=E.type,T=Hae[$]||{};Object.keys(T).forEach(P=>{const H=T[P];P!==\"className\"&&H!==void 0&&(E[P]=H)});const B=Vae($);if(B){const P=`${_(s.namespace)}-${B}`;E.className=E.className?`${E.className} ${P}`:P}return E},y=E=>{Array.isArray(E)?E.forEach(T=>$(T)):$(E);function $(T){var B;((B=T==null?void 0:T.type)==null?void 0:B.name)===\"ElTableColumn\"&&(T.vParent=o)}};return{columnId:l,realAlign:r,isSubColumn:a,realHeaderAlign:u,columnOrTableParent:i,setColumnWidth:v,setColumnForcedProps:g,setColumnRenders:E=>{e.renderHeader||E.type!==\"selection\"&&(E.renderHeader=T=>{o.columnConfig.value.label;const B=t.header;return B?B(T):E.label});let $=E.renderCell;return E.type===\"expand\"?(E.renderCell=T=>Ne(\"div\",{class:\"cell\"},[$(T)]),n.value.renderExpanded=T=>t.default?t.default(T):t.default):($=$||Iae,E.renderCell=T=>{let B=null;if(t.default){const j=t.default(T);B=j.some(Z=>Z.type!==on)?j:$(T)}else B=$(T);const P=c.value&&T.cellIndex===0&&T.column.type!==\"selection\",H=Rae(T,P),I={class:\"cell\",style:{}};return E.showOverflowTooltip&&(I.class=`${I.class} ${_(s.namespace)}-tooltip`,I.style={width:`${(T.column.realWidth||Number(T.column.width))-1}px`}),y(B),Ne(\"div\",I,[H,B])}),E},getPropsData:(...E)=>E.reduce(($,T)=>(Array.isArray(T)&&T.forEach(B=>{$[B]=e[B]}),$),{}),getColumnElIndex:(E,$)=>Array.prototype.indexOf.call(E,$)}}var Uae={type:{type:String,default:\"default\"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:\"\"},minWidth:{type:[String,Number],default:\"\"},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>[\"ascending\",\"descending\",null],validator:e=>e.every(t=>[\"ascending\",\"descending\",null].includes(t))}};let Wae=1;var s6=Le({name:\"ElTableColumn\",components:{ElCheckbox:$o},props:Uae,setup(e,{slots:t}){const n=ft(),o=z({}),l=R(()=>{let F=n.parent;for(;F&&!F.tableId;)F=F.parent;return F}),{registerNormalWatchers:a,registerComplexWatchers:r}=Nae(l,e),{columnId:u,isSubColumn:s,realHeaderAlign:i,columnOrTableParent:c,setColumnWidth:m,setColumnForcedProps:h,setColumnRenders:v,getPropsData:g,getColumnElIndex:y,realAlign:A}=Oae(e,t,l),w=c.value;u.value=`${w.tableId||w.columnId}_column_${Wae++}`,$u(()=>{s.value=l.value!==w;const F=e.type||\"default\",E=e.sortable===\"\"?!0:e.sortable,$={...Mae[F],id:u.value,type:F,property:e.prop||e.property,align:A,headerAlign:i,showOverflowTooltip:e.showOverflowTooltip||e.showTooltipWhenOverflow,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:\"\",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:E,index:e.index,rawColumnKey:n.vnode.key};let I=g([\"columnKey\",\"label\",\"className\",\"labelClassName\",\"type\",\"renderHeader\",\"formatter\",\"fixed\",\"resizable\"],[\"sortMethod\",\"sortBy\",\"sortOrders\"],[\"selectable\",\"reserveSelection\"],[\"filterMethod\",\"filters\",\"filterMultiple\",\"filterOpened\",\"filteredValue\",\"filterPlacement\"]);I=qle($,I),I=Kle(v,m,h)(I),o.value=I,a(),r()}),at(()=>{var F;const E=c.value,$=s.value?E.vnode.el.children:(F=E.refs.hiddenColumns)==null?void 0:F.children,T=()=>y($||[],n.vnode.el);o.value.getColumnIndex=T,T()>-1&&l.value.store.commit(\"insertColumn\",o.value,s.value?E.columnConfig.value:null)}),Rt(()=>{l.value.store.commit(\"removeColumn\",o.value,s.value?w.columnConfig.value:null)}),n.columnId=u.value,n.columnConfig=o},render(){var e,t,n;try{const o=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),l=[];if(Array.isArray(o))for(const r of o)((n=r.type)==null?void 0:n.name)===\"ElTableColumn\"||r.shapeFlag&2?l.push(r):r.type===We&&Array.isArray(r.children)&&r.children.forEach(u=>{(u==null?void 0:u.patchFlag)!==1024&&!tt(u==null?void 0:u.children)&&l.push(u)});return Ne(\"div\",l)}catch{return Ne(\"div\",[])}}});const i6=Et(zae,{TableColumn:s6}),c6=Nt(s6),qae=\"ElUpload\";class jae extends Error{constructor(t,n,o,l){super(t),this.name=\"UploadAjaxError\",this.status=n,this.method=o,this.url=l}}function od(e,t,n){let o;return n.response?o=`${n.response.error||n.response}`:n.responseText?o=`${n.responseText}`:o=`fail to ${t.method} ${e} ${n.status}`,new jae(o,n.status,t.method,e)}function Kae(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}const Gae=e=>{typeof XMLHttpRequest==\"undefined\"&&gn(qae,\"XMLHttpRequest is undefined\");const t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener(\"progress\",a=>{const r=a;r.percent=a.total>0?a.loaded/a.total*100:0,e.onProgress(r)});const o=new FormData;if(e.data)for(const[a,r]of Object.entries(e.data))Array.isArray(r)?o.append(a,...r):o.append(a,r);o.append(e.filename,e.file,e.file.name),t.addEventListener(\"error\",()=>{e.onError(od(n,e,t))}),t.addEventListener(\"load\",()=>{if(t.status<200||t.status>=300)return e.onError(od(n,e,t));e.onSuccess(Kae(t))}),t.open(e.method,n,!0),e.withCredentials&&\"withCredentials\"in t&&(t.withCredentials=!0);const l=e.headers||{};if(l instanceof Headers)l.forEach((a,r)=>t.setRequestHeader(r,a));else for(const[a,r]of Object.entries(l))no(r)||t.setRequestHeader(a,String(r));return t.send(o),t},d6=[\"text\",\"picture\",\"picture-card\"];let Yae=1;const f6=()=>Date.now()+Yae++,p6=et({action:{type:String,default:\"#\"},headers:{type:Ue(Object)},method:{type:String,default:\"post\"},data:{type:Object,default:()=>Fo({})},multiple:{type:Boolean,default:!1},name:{type:String,default:\"file\"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:\"\"},type:{type:String,default:\"select\"},fileList:{type:Ue(Array),default:()=>Fo([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:d6,default:\"text\"},httpRequest:{type:Ue(Function),default:Gae},disabled:Boolean,limit:Number}),Xae=et({...p6,beforeUpload:{type:Ue(Function),default:vt},beforeRemove:{type:Ue(Function)},onRemove:{type:Ue(Function),default:vt},onChange:{type:Ue(Function),default:vt},onPreview:{type:Ue(Function),default:vt},onSuccess:{type:Ue(Function),default:vt},onProgress:{type:Ue(Function),default:vt},onError:{type:Ue(Function),default:vt},onExceed:{type:Ue(Function),default:vt}}),Jae=et({files:{type:Ue(Array),default:()=>Fo([])},disabled:{type:Boolean,default:!1},handlePreview:{type:Ue(Function),default:vt},listType:{type:String,values:d6,default:\"text\"}}),Qae={remove:e=>!!e},Zae=[\"onKeydown\"],ere=[\"src\"],tre=[\"onClick\"],nre=[\"onClick\"],ore=[\"onClick\"],lre={name:\"ElUploadList\"},are=Le({...lre,props:Jae,emits:Qae,setup(e,{emit:t}){const{t:n}=bn(),o=He(\"upload\"),l=He(\"icon\"),a=He(\"list\"),r=z(!1),u=s=>{t(\"remove\",s)};return(s,i)=>(b(),ae(d8,{tag:\"ul\",class:U([_(o).b(\"list\"),_(o).bm(\"list\",s.listType),_(o).is(\"disabled\",s.disabled)]),name:_(a).b()},{default:p(()=>[(b(!0),C(We,null,pt(s.files,c=>(b(),C(\"li\",{key:c.uid||c.name,class:U([_(o).be(\"list\",\"item\"),_(o).is(c.status),{focusing:r.value}]),tabindex:\"0\",onKeydown:Bt(m=>!s.disabled&&u(c),[\"delete\"]),onFocus:i[0]||(i[0]=m=>r.value=!0),onBlur:i[1]||(i[1]=m=>r.value=!1),onClick:i[2]||(i[2]=m=>r.value=!1)},[Te(s.$slots,\"default\",{file:c},()=>[s.listType===\"picture\"||c.status!==\"uploading\"&&s.listType===\"picture-card\"?(b(),C(\"img\",{key:0,class:U(_(o).be(\"list\",\"item-thumbnail\")),src:c.url,alt:\"\"},null,10,ere)):oe(\"v-if\",!0),c.status===\"uploading\"||s.listType!==\"picture-card\"?(b(),C(\"div\",{key:1,class:U(_(o).be(\"list\",\"item-info\"))},[f(\"a\",{class:U(_(o).be(\"list\",\"item-name\")),onClick:ht(m=>s.handlePreview(c),[\"prevent\"])},[d(_(ut),{class:U(_(l).m(\"document\"))},{default:p(()=>[d(_(bf))]),_:1},8,[\"class\"]),f(\"span\",{class:U(_(o).be(\"list\",\"item-file-name\"))},ce(c.name),3)],10,tre),c.status===\"uploading\"?(b(),ae(_(Dle),{key:0,type:s.listType===\"picture-card\"?\"circle\":\"line\",\"stroke-width\":s.listType===\"picture-card\"?6:2,percentage:Number(c.percentage),style:nt(s.listType===\"picture-card\"?\"\":\"margin-top: 0.5rem\")},null,8,[\"type\",\"stroke-width\",\"percentage\",\"style\"])):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"label\",{class:U(_(o).be(\"list\",\"item-status-label\"))},[s.listType===\"text\"?(b(),ae(_(ut),{key:0,class:U([_(l).m(\"upload-success\"),_(l).m(\"circle-check\")])},{default:p(()=>[d(_(Mu))]),_:1},8,[\"class\"])):[\"picture-card\",\"picture\"].includes(s.listType)?(b(),ae(_(ut),{key:1,class:U([_(l).m(\"upload-success\"),_(l).m(\"check\")])},{default:p(()=>[d(_(Zi))]),_:1},8,[\"class\"])):oe(\"v-if\",!0)],2),s.disabled?oe(\"v-if\",!0):(b(),ae(_(ut),{key:2,class:U(_(l).m(\"close\")),onClick:m=>u(c)},{default:p(()=>[d(_(Cl))]),_:2},1032,[\"class\",\"onClick\"])),oe(\" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn\"),oe(\" This is a bug which needs to be fixed \"),oe(\" TODO: Fix the incorrect navigation interaction \"),s.disabled?oe(\"v-if\",!0):(b(),C(\"i\",{key:3,class:U(_(l).m(\"close-tip\"))},ce(_(n)(\"el.upload.deleteTip\")),3)),s.listType===\"picture-card\"?(b(),C(\"span\",{key:4,class:U(_(o).be(\"list\",\"item-actions\"))},[f(\"span\",{class:U(_(o).be(\"list\",\"item-preview\")),onClick:m=>s.handlePreview(c)},[d(_(ut),{class:U(_(l).m(\"zoom-in\"))},{default:p(()=>[d(_(Ff))]),_:1},8,[\"class\"])],10,nre),s.disabled?oe(\"v-if\",!0):(b(),C(\"span\",{key:0,class:U(_(o).be(\"list\",\"item-delete\")),onClick:m=>u(c)},[d(_(ut),{class:U(_(l).m(\"delete\"))},{default:p(()=>[d(_(gf))]),_:1},8,[\"class\"])],10,ore))],2)):oe(\"v-if\",!0)])],42,Zae))),128)),Te(s.$slots,\"append\")]),_:3},8,[\"class\",\"name\"]))}});var ld=je(are,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-list.vue\"]]);const rre=et({disabled:{type:Boolean,default:!1}}),ure={file:e=>Ye(e)},sre=[\"onDrop\",\"onDragover\"],ire={name:\"ElUploadDrag\"},cre=Le({...ire,props:rre,emits:ure,setup(e,{emit:t}){const n=e,o=\"ElUploadDrag\",l=Ze(Hf);l||gn(o,\"usage: <el-upload><el-upload-dragger /></el-upload>\");const a=He(\"upload\"),r=z(!1),u=i=>{if(n.disabled)return;r.value=!1;const c=Array.from(i.dataTransfer.files),m=l.accept.value;if(!m){t(\"file\",c);return}const h=c.filter(v=>{const{type:g,name:y}=v,A=y.includes(\".\")?`.${y.split(\".\").pop()}`:\"\",w=g.replace(/\\/.*$/,\"\");return m.split(\",\").map(F=>F.trim()).filter(F=>F).some(F=>F.startsWith(\".\")?A===F:/\\/\\*$/.test(F)?w===F.replace(/\\/\\*$/,\"\"):/^[^/]+\\/[^/]+$/.test(F)?g===F:!1)});t(\"file\",h)},s=()=>{n.disabled||(r.value=!0)};return(i,c)=>(b(),C(\"div\",{class:U([_(a).b(\"dragger\"),_(a).is(\"dragover\",r.value)]),onDrop:ht(u,[\"prevent\"]),onDragover:ht(s,[\"prevent\"]),onDragleave:c[0]||(c[0]=ht(m=>r.value=!1,[\"prevent\"]))},[Te(i.$slots,\"default\")],42,sre))}});var dre=je(cre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue\"]]);const fre=et({...p6,beforeUpload:{type:Ue(Function),default:vt},onRemove:{type:Ue(Function),default:vt},onStart:{type:Ue(Function),default:vt},onSuccess:{type:Ue(Function),default:vt},onProgress:{type:Ue(Function),default:vt},onError:{type:Ue(Function),default:vt},onExceed:{type:Ue(Function),default:vt}}),pre=[\"onKeydown\"],vre=[\"name\",\"multiple\",\"accept\"],hre={name:\"ElUploadContent\",inheritAttrs:!1},_re=Le({...hre,props:fre,setup(e,{expose:t}){const n=e,o=He(\"upload\"),l=In({}),a=In(),r=v=>{if(v.length===0)return;const{autoUpload:g,limit:y,fileList:A,multiple:w,onStart:F,onExceed:E}=n;if(y&&A.length+v.length>y){E(v,A);return}w||(v=v.slice(0,1));for(const $ of v){const T=$;T.uid=f6(),F(T),g&&u(T)}},u=async v=>{if(a.value.value=\"\",!n.beforeUpload)return s(v);let g;try{g=await n.beforeUpload(v)}catch{g=!1}if(g===!1){n.onRemove(v);return}let y=v;g instanceof Blob&&(g instanceof File?y=g:y=new File([g],v.name,{type:v.type})),s(Object.assign(y,{uid:v.uid}))},s=v=>{const{headers:g,data:y,method:A,withCredentials:w,name:F,action:E,onProgress:$,onSuccess:T,onError:B,httpRequest:P}=n,{uid:H}=v,I={headers:g||{},withCredentials:w,file:v,data:y,method:A,filename:F,action:E,onProgress:Z=>{$(Z,v)},onSuccess:Z=>{T(Z,v),delete l.value[H]},onError:Z=>{B(Z,v),delete l.value[H]}},j=P(I);l.value[H]=j,j instanceof Promise&&j.then(I.onSuccess,I.onError)},i=v=>{const g=v.target.files;!g||r(Array.from(g))},c=()=>{n.disabled||(a.value.value=\"\",a.value.click())},m=()=>{c()};return t({abort:v=>{Ym(l.value).filter(v?([y])=>String(v.uid)===y:()=>!0).forEach(([y,A])=>{A instanceof XMLHttpRequest&&A.abort(),delete l.value[y]})},upload:u}),(v,g)=>(b(),C(\"div\",{class:U([_(o).b(),_(o).m(v.listType),_(o).is(\"drag\",v.drag)]),tabindex:\"0\",onClick:c,onKeydown:Bt(ht(m,[\"self\"]),[\"enter\",\"space\"])},[v.drag?(b(),ae(dre,{key:0,disabled:v.disabled,onFile:r},{default:p(()=>[Te(v.$slots,\"default\")]),_:3},8,[\"disabled\"])):Te(v.$slots,\"default\",{key:1}),f(\"input\",{ref_key:\"inputRef\",ref:a,class:U(_(o).e(\"input\")),name:v.name,multiple:v.multiple,accept:v.accept,type:\"file\",onChange:i,onClick:g[0]||(g[0]=ht(()=>{},[\"stop\"]))},null,42,vre)],42,pre))}});var ad=je(_re,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-content.vue\"]]);const rd=\"ElUpload\",mre=e=>{var t;(t=e.url)!=null&&t.startsWith(\"blob:\")&&URL.revokeObjectURL(e.url)},gre=(e,t)=>{const n=jm(e,\"fileList\",void 0,{passive:!0}),o=h=>n.value.find(v=>v.uid===h.uid);function l(h){var v;(v=t.value)==null||v.abort(h)}function a(h=[\"ready\",\"uploading\",\"success\",\"fail\"]){n.value=n.value.filter(v=>!h.includes(v.status))}const r=(h,v)=>{const g=o(v);!g||(console.error(h),g.status=\"fail\",n.value.splice(n.value.indexOf(g),1),e.onError(h,g,n.value),e.onChange(g,n.value))},u=(h,v)=>{const g=o(v);!g||(e.onProgress(h,g,n.value),g.status=\"uploading\",g.percentage=Math.round(h.percent))},s=(h,v)=>{const g=o(v);!g||(g.status=\"success\",g.response=h,e.onSuccess(h,g,n.value),e.onChange(g,n.value))},i=h=>{const v={name:h.name,percentage:0,status:\"ready\",size:h.size,raw:h,uid:h.uid};if(e.listType===\"picture-card\"||e.listType===\"picture\")try{v.url=URL.createObjectURL(h)}catch(g){g.message,e.onError(g,v,n.value)}n.value=[...n.value,v],e.onChange(v,n.value)},c=async h=>{const v=h instanceof File?o(h):h;v||gn(rd,\"file to be removed not found\");const g=y=>{l(y);const A=n.value;A.splice(A.indexOf(y),1),e.onRemove(y,A),mre(y)};e.beforeRemove?await e.beforeRemove(v,n.value)!==!1&&g(v):g(v)};function m(){n.value.filter(({status:h})=>h===\"ready\").forEach(({raw:h})=>{var v;return h&&((v=t.value)==null?void 0:v.upload(h))})}return Ve(()=>e.listType,h=>{h!==\"picture-card\"&&h!==\"picture\"||(n.value=n.value.map(v=>{const{raw:g,url:y}=v;if(!y&&g)try{v.url=URL.createObjectURL(g)}catch(A){e.onError(A,v,n.value)}return v}))}),Ve(n,h=>{for(const v of h)v.uid||(v.uid=f6()),v.status||(v.status=\"success\")},{immediate:!0,deep:!0}),{uploadFiles:n,abort:l,clearFiles:a,handleError:r,handleProgress:u,handleStart:i,handleSuccess:s,handleRemove:c,submit:m}},bre={name:\"ElUpload\"},yre=Le({...bre,props:Xae,setup(e,{expose:t}){const n=e,o=So(),l=Bl(),a=In(),{abort:r,submit:u,clearFiles:s,uploadFiles:i,handleStart:c,handleError:m,handleRemove:h,handleSuccess:v,handleProgress:g}=gre(n,a),y=R(()=>n.listType===\"picture-card\"),A=R(()=>({...n,fileList:i.value,onStart:c,onProgress:g,onSuccess:v,onError:m,onRemove:h}));return Rt(()=>{i.value.forEach(({url:w})=>{w!=null&&w.startsWith(\"blob:\")&&URL.revokeObjectURL(w)})}),$t(Hf,{accept:$n(n,\"accept\")}),t({abort:r,submit:u,clearFiles:s,handleStart:c,handleRemove:h}),(w,F)=>(b(),C(\"div\",null,[_(y)&&w.showFileList?(b(),ae(ld,{key:0,disabled:_(l),\"list-type\":w.listType,files:_(i),\"handle-preview\":w.onPreview,onRemove:_(h)},jl({append:p(()=>[d(ad,An({ref_key:\"uploadRef\",ref:a},_(A)),{default:p(()=>[_(o).trigger?Te(w.$slots,\"trigger\",{key:0}):oe(\"v-if\",!0),!_(o).trigger&&_(o).default?Te(w.$slots,\"default\",{key:1}):oe(\"v-if\",!0)]),_:3},16)]),_:2},[w.$slots.file?{name:\"default\",fn:p(({file:E})=>[Te(w.$slots,\"file\",{file:E})])}:void 0]),1032,[\"disabled\",\"list-type\",\"files\",\"handle-preview\",\"onRemove\"])):oe(\"v-if\",!0),!_(y)||_(y)&&!w.showFileList?(b(),ae(ad,An({key:1,ref_key:\"uploadRef\",ref:a},_(A)),{default:p(()=>[_(o).trigger?Te(w.$slots,\"trigger\",{key:0}):oe(\"v-if\",!0),!_(o).trigger&&_(o).default?Te(w.$slots,\"default\",{key:1}):oe(\"v-if\",!0)]),_:3},16)):oe(\"v-if\",!0),w.$slots.trigger?Te(w.$slots,\"default\",{key:2}):oe(\"v-if\",!0),Te(w.$slots,\"tip\"),!_(y)&&w.showFileList?(b(),ae(ld,{key:3,disabled:_(l),\"list-type\":w.listType,files:_(i),\"handle-preview\":w.onPreview,onRemove:_(h)},jl({_:2},[w.$slots.file?{name:\"default\",fn:p(({file:E})=>[Te(w.$slots,\"file\",{file:E})])}:void 0]),1032,[\"disabled\",\"list-type\",\"files\",\"handle-preview\",\"onRemove\"])):oe(\"v-if\",!0)]))}});var wre=je(yre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload.vue\"]]);const v6=Et(wre);function Cre(e){let t;const n=He(\"loading\"),o=z(!1),l=It({...e,originalPosition:\"\",originalOverflow:\"\",visible:!1});function a(v){l.text=v}function r(){const v=l.parent;if(!v.vLoadingAddClassList){let g=v.getAttribute(\"loading-number\");g=Number.parseInt(g)-1,g?v.setAttribute(\"loading-number\",g.toString()):(Rn(v,n.bm(\"parent\",\"relative\")),v.removeAttribute(\"loading-number\")),Rn(v,n.bm(\"parent\",\"hidden\"))}u(),m.unmount()}function u(){var v,g;(g=(v=h.$el)==null?void 0:v.parentNode)==null||g.removeChild(h.$el)}function s(){var v;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(t),t=window.setTimeout(i,400),l.visible=!1,(v=e.closed)==null||v.call(e))}function i(){if(!o.value)return;const v=l.parent;o.value=!1,v.vLoadingAddClassList=void 0,r()}const m=H1({name:\"ElLoading\",setup(){return()=>{const v=l.spinner||l.svg,g=Ne(\"svg\",{class:\"circular\",viewBox:l.svgViewBox?l.svgViewBox:\"25 25 50 50\",...v?{innerHTML:v}:{}},[Ne(\"circle\",{class:\"path\",cx:\"50\",cy:\"50\",r:\"20\",fill:\"none\"})]),y=l.text?Ne(\"p\",{class:n.b(\"text\")},[l.text]):void 0;return Ne(Zt,{name:n.b(\"fade\"),onAfterLeave:i},{default:p(()=>[ye(d(\"div\",{style:{backgroundColor:l.background||\"\"},class:[n.b(\"mask\"),l.customClass,l.fullscreen?\"is-fullscreen\":\"\"]},[Ne(\"div\",{class:n.b(\"spinner\")},[g,y])]),[[Be,l.visible]])])})}}}),h=m.mount(document.createElement(\"div\"));return{...On(l),setText:a,removeElLoadingChild:u,close:s,handleAfterLeave:i,vm:h,get $el(){return h.$el}}}let kr;const Ere=function(e={}){if(!_t)return;const t=Are(e);if(t.fullscreen&&kr)return kr;const n=Cre({...t,closed:()=>{var l;(l=t.closed)==null||l.call(t),t.fullscreen&&(kr=void 0)}});Fre(t,t.parent,n),ud(t,t.parent,n),t.parent.vLoadingAddClassList=()=>ud(t,t.parent,n);let o=t.parent.getAttribute(\"loading-number\");return o?o=`${Number.parseInt(o)+1}`:o=\"1\",t.parent.setAttribute(\"loading-number\",o),t.parent.appendChild(n.$el),rt(()=>n.visible.value=t.visible),t.fullscreen&&(kr=n),n},Are=e=>{var t,n,o,l;let a;return tt(e.target)?a=(t=document.querySelector(e.target))!=null?t:document.body:a=e.target||document.body,{parent:a===document.body||e.body?document.body:a,background:e.background||\"\",svg:e.svg||\"\",svgViewBox:e.svgViewBox||\"\",spinner:e.spinner||!1,text:e.text||\"\",fullscreen:a===document.body&&((n=e.fullscreen)!=null?n:!0),lock:(o=e.lock)!=null?o:!1,customClass:e.customClass||\"\",visible:(l=e.visible)!=null?l:!0,target:a}},Fre=async(e,t,n)=>{const{nextZIndex:o}=kl(),l={};if(e.fullscreen)n.originalPosition.value=mo(document.body,\"position\"),n.originalOverflow.value=mo(document.body,\"overflow\"),l.zIndex=o();else if(e.parent===document.body){n.originalPosition.value=mo(document.body,\"position\"),await rt();for(const a of[\"top\",\"left\"]){const r=a===\"top\"?\"scrollTop\":\"scrollLeft\";l[a]=`${e.target.getBoundingClientRect()[a]+document.body[r]+document.documentElement[r]-Number.parseInt(mo(document.body,`margin-${a}`),10)}px`}for(const a of[\"height\",\"width\"])l[a]=`${e.target.getBoundingClientRect()[a]}px`}else n.originalPosition.value=mo(t,\"position\");for(const[a,r]of Object.entries(l))n.$el.style[a]=r},ud=(e,t,n)=>{const o=He(\"loading\");[\"absolute\",\"fixed\",\"sticky\"].includes(n.originalPosition.value)?Rn(t,o.bm(\"parent\",\"relative\")):go(t,o.bm(\"parent\",\"relative\")),e.fullscreen&&e.lock?go(t,o.bm(\"parent\",\"hidden\")):Rn(t,o.bm(\"parent\",\"hidden\"))},fi=Symbol(\"ElLoading\"),sd=(e,t)=>{var n,o,l,a;const r=t.instance,u=h=>ct(t.value)?t.value[h]:void 0,s=h=>{const v=tt(h)&&(r==null?void 0:r[h])||h;return v&&z(v)},i=h=>s(u(h)||e.getAttribute(`element-loading-${el(h)}`)),c=(n=u(\"fullscreen\"))!=null?n:t.modifiers.fullscreen,m={text:i(\"text\"),svg:i(\"svg\"),svgViewBox:i(\"svgViewBox\"),spinner:i(\"spinner\"),background:i(\"background\"),customClass:i(\"customClass\"),fullscreen:c,target:(o=u(\"target\"))!=null?o:c?void 0:e,body:(l=u(\"body\"))!=null?l:t.modifiers.body,lock:(a=u(\"lock\"))!=null?a:t.modifiers.lock};e[fi]={options:m,instance:Ere(m)}},xre=(e,t)=>{for(const n of Object.keys(t))gt(t[n])&&(t[n].value=e[n])},Ku={mounted(e,t){t.value&&sd(e,t)},updated(e,t){const n=e[fi];t.oldValue!==t.value&&(t.value&&!t.oldValue?sd(e,t):t.value&&t.oldValue?ct(t.value)&&xre(t.value,n.options):n==null||n.instance.close())},unmounted(e){var t;(t=e[fi])==null||t.instance.close()}},h6=[\"success\",\"info\",\"warning\",\"error\"],tn=Fo({customClass:\"\",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:\"\",message:\"\",onClose:void 0,showClose:!1,type:\"info\",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:_t?document.body:void 0}),$re=et({customClass:{type:String,default:tn.customClass},center:{type:Boolean,default:tn.center},dangerouslyUseHTMLString:{type:Boolean,default:tn.dangerouslyUseHTMLString},duration:{type:Number,default:tn.duration},icon:{type:Lt,default:tn.icon},id:{type:String,default:tn.id},message:{type:Ue([String,Object,Function]),default:tn.message},onClose:{type:Ue(Function),required:!1},showClose:{type:Boolean,default:tn.showClose},type:{type:String,values:h6,default:tn.type},offset:{type:Number,default:tn.offset},zIndex:{type:Number,default:tn.zIndex},grouping:{type:Boolean,default:tn.grouping},repeatNum:{type:Number,default:tn.repeatNum}}),Dre={destroy:()=>!0},eo=Ud([]),Bre=e=>{const t=eo.findIndex(l=>l.id===e),n=eo[t];let o;return t>0&&(o=eo[t-1]),{current:n,prev:o}},Sre=e=>{const{prev:t}=Bre(e);return t?t.vm.exposed.bottom.value:0},kre=[\"id\"],Pre=[\"innerHTML\"],Lre={name:\"ElMessage\"},zre=Le({...Lre,props:$re,emits:Dre,setup(e,{expose:t}){const n=e,{Close:o}=Df,l=He(\"message\"),a=z(),r=z(!1),u=z(0);let s;const i=R(()=>n.type?n.type===\"error\"?\"danger\":n.type:\"info\"),c=R(()=>{const $=n.type;return{[l.bm(\"icon\",$)]:$&&Zl[$]}}),m=R(()=>n.icon||Zl[n.type]||\"\"),h=R(()=>Sre(n.id)),v=R(()=>n.offset+h.value),g=R(()=>u.value+v.value),y=R(()=>({top:`${v.value}px`,zIndex:n.zIndex}));function A(){n.duration!==0&&({stop:s}=Ql(()=>{F()},n.duration))}function w(){s==null||s()}function F(){r.value=!1}function E({code:$}){$===Pt.esc&&F()}return at(()=>{A(),r.value=!0}),Ve(()=>n.repeatNum,()=>{w(),A()}),Kt(document,\"keydown\",E),ro(a,()=>{u.value=a.value.getBoundingClientRect().height}),t({visible:r,bottom:g,close:F}),($,T)=>(b(),ae(Zt,{name:_(l).b(\"fade\"),onBeforeLeave:$.onClose,onAfterLeave:T[0]||(T[0]=B=>$.$emit(\"destroy\")),persisted:\"\"},{default:p(()=>[ye(f(\"div\",{id:$.id,ref_key:\"messageRef\",ref:a,class:U([_(l).b(),{[_(l).m($.type)]:$.type&&!$.icon},_(l).is(\"center\",$.center),_(l).is(\"closable\",$.showClose),$.customClass]),style:nt(_(y)),role:\"alert\",onMouseenter:w,onMouseleave:A},[$.repeatNum>1?(b(),ae(_(CZ),{key:0,value:$.repeatNum,type:_(i),class:U(_(l).e(\"badge\"))},null,8,[\"value\",\"type\",\"class\"])):oe(\"v-if\",!0),_(m)?(b(),ae(_(ut),{key:1,class:U([_(l).e(\"icon\"),_(c)])},{default:p(()=>[(b(),ae(yt(_(m))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),Te($.$slots,\"default\",{},()=>[$.dangerouslyUseHTMLString?(b(),C(We,{key:1},[oe(\" Caution here, message could've been compromised, never use user's input as message \"),f(\"p\",{class:U(_(l).e(\"content\")),innerHTML:$.message},null,10,Pre)],2112)):(b(),C(\"p\",{key:0,class:U(_(l).e(\"content\"))},ce($.message),3))]),$.showClose?(b(),ae(_(ut),{key:2,class:U(_(l).e(\"closeBtn\")),onClick:ht(F,[\"stop\"])},{default:p(()=>[d(_(o))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],46,kre),[[Be,r.value]])]),_:3},8,[\"name\",\"onBeforeLeave\"]))}});var Tre=je(zre,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue\"]]);let Mre=1;const _6=e=>{const t=!e||tt(e)||mn(e)||Je(e)?{message:e}:e,n={...tn,...t};if(!n.appendTo)n.appendTo=document.body;else if(tt(n.appendTo)){let o=document.querySelector(n.appendTo);Qo(o)||(o=document.body),n.appendTo=o}return n},Vre=e=>{const t=eo.indexOf(e);if(t===-1)return;eo.splice(t,1);const{handler:n}=e;n.close()},Hre=({appendTo:e,...t},n)=>{const{nextZIndex:o}=kl(),l=`message_${Mre++}`,a=t.onClose,r=document.createElement(\"div\"),u={...t,zIndex:o()+t.zIndex,id:l,onClose:()=>{a==null||a(),Vre(m)},onDestroy:()=>{Yl(null,r)}},s=d(Tre,u,Je(u.message)||mn(u.message)?{default:Je(u.message)?u.message:()=>u.message}:null);s.appContext=n||ra._context,Yl(s,r),e.appendChild(r.firstElementChild);const i=s.component,m={id:l,vnode:s,vm:i,handler:{close:()=>{i.exposed.visible.value=!1}},props:s.component.props};return m},ra=(e={},t)=>{if(!_t)return{close:()=>{}};if(mt(ai.max)&&eo.length>=ai.max)return{close:()=>{}};const n=_6(e);if(n.grouping&&eo.length){const l=eo.find(({vnode:a})=>{var r;return((r=a.props)==null?void 0:r.message)===n.message});if(l)return l.props.repeatNum+=1,l.props.type=n.type,l.handler}const o=Hre(n,t);return eo.push(o),o.handler};h6.forEach(e=>{ra[e]=(t={},n)=>{const o=_6(t);return ra({...o,type:e},n)}});function Ire(e){for(const t of eo)(!e||e===t.props.type)&&t.handler.close()}ra.closeAll=Ire;ra._context=null;const m6=Bf(ra,\"$message\"),Rre=Le({name:\"ElMessageBox\",directives:{TrapFocus:YZ},components:{ElButton:kn,ElFocusTrap:_2,ElInput:yn,ElOverlay:O4,ElIcon:ut,...Df},inheritAttrs:!1,props:{buttonSize:{type:String,validator:o2},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:\"body\"},boxType:{type:String,default:\"\"}},emits:[\"vanish\",\"action\"],setup(e,{emit:t}){const{t:n}=bn(),o=He(\"message-box\"),l=z(!1),{nextZIndex:a}=kl(),r=It({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:\"\",cancelButtonClass:\"\",confirmButtonText:\"\",confirmButtonClass:\"\",customClass:\"\",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:\"\",inputPattern:null,inputPlaceholder:\"\",inputType:\"text\",inputValue:null,inputValidator:null,inputErrorMessage:\"\",message:null,modalFade:!0,modalClass:\"\",showCancelButton:!1,showConfirmButton:!0,type:\"\",title:void 0,showInput:!1,action:\"\",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:\"\",validateError:!1,zIndex:a()}),u=R(()=>{const N=r.type;return{[o.bm(\"icon\",N)]:N&&Zl[N]}}),s=Zo(),i=Zo(),c=Qt(R(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),m=R(()=>r.icon||Zl[r.type]||\"\"),h=R(()=>!!r.message),v=z(),g=z(),y=z(),A=z(),w=z(),F=R(()=>r.confirmButtonClass);Ve(()=>r.inputValue,async N=>{await rt(),e.boxType===\"prompt\"&&N!==null&&I()},{immediate:!0}),Ve(()=>l.value,N=>{var Y,ge;N&&(e.boxType!==\"prompt\"&&(r.autofocus?y.value=(ge=(Y=w.value)==null?void 0:Y.$el)!=null?ge:v.value:y.value=v.value),r.zIndex=a()),e.boxType===\"prompt\"&&(N?rt().then(()=>{var fe;A.value&&A.value.$el&&(r.autofocus?y.value=(fe=j())!=null?fe:v.value:y.value=v.value)}):(r.editorErrorMessage=\"\",r.validateError=!1))});const E=R(()=>e.draggable);Nf(v,g,E),at(async()=>{await rt(),e.closeOnHashChange&&window.addEventListener(\"hashchange\",$)}),Rt(()=>{e.closeOnHashChange&&window.removeEventListener(\"hashchange\",$)});function $(){!l.value||(l.value=!1,rt(()=>{r.action&&t(\"action\",r.action)}))}const T=()=>{e.closeOnClickModal&&H(r.distinguishCancelAndClose?\"close\":\"cancel\")},B=u2(T),P=N=>{if(r.inputType!==\"textarea\")return N.preventDefault(),H(\"confirm\")},H=N=>{var Y;e.boxType===\"prompt\"&&N===\"confirm\"&&!I()||(r.action=N,r.beforeClose?(Y=r.beforeClose)==null||Y.call(r,N,r,$):$())},I=()=>{if(e.boxType===\"prompt\"){const N=r.inputPattern;if(N&&!N.test(r.inputValue||\"\"))return r.editorErrorMessage=r.inputErrorMessage||n(\"el.messagebox.error\"),r.validateError=!0,!1;const Y=r.inputValidator;if(typeof Y==\"function\"){const ge=Y(r.inputValue);if(ge===!1)return r.editorErrorMessage=r.inputErrorMessage||n(\"el.messagebox.error\"),r.validateError=!0,!1;if(typeof ge==\"string\")return r.editorErrorMessage=ge,r.validateError=!0,!1}}return r.editorErrorMessage=\"\",r.validateError=!1,!0},j=()=>{const N=A.value.$refs;return N.input||N.textarea},Z=()=>{H(\"close\")},G=()=>{e.closeOnPressEscape&&Z()};return e.lockScroll&&Of(l),LX(l),{...On(r),ns:o,overlayEvent:B,visible:l,hasMessage:h,typeClass:u,contentId:s,inputId:i,btnSize:c,iconComponent:m,confirmButtonClasses:F,rootRef:v,focusStartRef:y,headerRef:g,inputRef:A,confirmRef:w,doClose:$,handleClose:Z,onCloseRequested:G,handleWrapperClick:T,handleInputEnter:P,handleAction:H,t:n}}}),Nre=[\"aria-label\",\"aria-describedby\"],Ore=[\"aria-label\"],Ure=[\"id\"];function Wre(e,t,n,o,l,a){const r=Qe(\"el-icon\"),u=Qe(\"close\"),s=Qe(\"el-input\"),i=Qe(\"el-button\"),c=Qe(\"el-focus-trap\"),m=Qe(\"el-overlay\");return b(),ae(Zt,{name:\"fade-in-linear\",onAfterLeave:t[11]||(t[11]=h=>e.$emit(\"vanish\")),persisted:\"\"},{default:p(()=>[ye(d(m,{\"z-index\":e.zIndex,\"overlay-class\":[e.ns.is(\"message-box\"),e.modalClass],mask:e.modal},{default:p(()=>[f(\"div\",{role:\"dialog\",\"aria-label\":e.title,\"aria-modal\":\"true\",\"aria-describedby\":e.showInput?void 0:e.contentId,class:U(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...h)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...h)),onMousedown:t[9]||(t[9]=(...h)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...h)),onMouseup:t[10]||(t[10]=(...h)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...h))},[d(c,{loop:\"\",trapped:e.visible,\"focus-trap-el\":e.rootRef,\"focus-start-el\":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:p(()=>[f(\"div\",{ref:\"rootRef\",class:U([e.ns.b(),e.customClass,e.ns.is(\"draggable\",e.draggable),{[e.ns.m(\"center\")]:e.center}]),style:nt(e.customStyle),tabindex:\"-1\",onClick:t[7]||(t[7]=ht(()=>{},[\"stop\"]))},[e.title!==null&&e.title!==void 0?(b(),C(\"div\",{key:0,ref:\"headerRef\",class:U(e.ns.e(\"header\"))},[f(\"div\",{class:U(e.ns.e(\"title\"))},[e.iconComponent&&e.center?(b(),ae(r,{key:0,class:U([e.ns.e(\"status\"),e.typeClass])},{default:p(()=>[(b(),ae(yt(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),f(\"span\",null,ce(e.title),1)],2),e.showClose?(b(),C(\"button\",{key:0,type:\"button\",class:U(e.ns.e(\"headerbtn\")),\"aria-label\":e.t(\"el.messagebox.close\"),onClick:t[0]||(t[0]=h=>e.handleAction(e.distinguishCancelAndClose?\"close\":\"cancel\")),onKeydown:t[1]||(t[1]=Bt(ht(h=>e.handleAction(e.distinguishCancelAndClose?\"close\":\"cancel\"),[\"prevent\"]),[\"enter\"]))},[d(r,{class:U(e.ns.e(\"close\"))},{default:p(()=>[d(u)]),_:1},8,[\"class\"])],42,Ore)):oe(\"v-if\",!0)],2)):oe(\"v-if\",!0),f(\"div\",{id:e.contentId,class:U(e.ns.e(\"content\"))},[f(\"div\",{class:U(e.ns.e(\"container\"))},[e.iconComponent&&!e.center&&e.hasMessage?(b(),ae(r,{key:0,class:U([e.ns.e(\"status\"),e.typeClass])},{default:p(()=>[(b(),ae(yt(e.iconComponent)))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),e.hasMessage?(b(),C(\"div\",{key:1,class:U(e.ns.e(\"message\"))},[Te(e.$slots,\"default\",{},()=>[e.dangerouslyUseHTMLString?(b(),ae(yt(e.showInput?\"label\":\"p\"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,[\"for\",\"innerHTML\"])):(b(),ae(yt(e.showInput?\"label\":\"p\"),{key:0,for:e.showInput?e.inputId:void 0},{default:p(()=>[D(ce(e.dangerouslyUseHTMLString?\"\":e.message),1)]),_:1},8,[\"for\"]))])],2)):oe(\"v-if\",!0)],2),ye(f(\"div\",{class:U(e.ns.e(\"input\"))},[d(s,{id:e.inputId,ref:\"inputRef\",modelValue:e.inputValue,\"onUpdate:modelValue\":t[2]||(t[2]=h=>e.inputValue=h),type:e.inputType,placeholder:e.inputPlaceholder,\"aria-invalid\":e.validateError,class:U({invalid:e.validateError}),onKeydown:Bt(e.handleInputEnter,[\"enter\"])},null,8,[\"id\",\"modelValue\",\"type\",\"placeholder\",\"aria-invalid\",\"class\",\"onKeydown\"]),f(\"div\",{class:U(e.ns.e(\"errormsg\")),style:nt({visibility:e.editorErrorMessage?\"visible\":\"hidden\"})},ce(e.editorErrorMessage),7)],2),[[Be,e.showInput]])],10,Ure),f(\"div\",{class:U(e.ns.e(\"btns\"))},[e.showCancelButton?(b(),ae(i,{key:0,loading:e.cancelButtonLoading,class:U([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=h=>e.handleAction(\"cancel\")),onKeydown:t[4]||(t[4]=Bt(ht(h=>e.handleAction(\"cancel\"),[\"prevent\"]),[\"enter\"]))},{default:p(()=>[D(ce(e.cancelButtonText||e.t(\"el.messagebox.cancel\")),1)]),_:1},8,[\"loading\",\"class\",\"round\",\"size\"])):oe(\"v-if\",!0),ye(d(i,{ref:\"confirmRef\",type:\"primary\",loading:e.confirmButtonLoading,class:U([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=h=>e.handleAction(\"confirm\")),onKeydown:t[6]||(t[6]=Bt(ht(h=>e.handleAction(\"confirm\"),[\"prevent\"]),[\"enter\"]))},{default:p(()=>[D(ce(e.confirmButtonText||e.t(\"el.messagebox.confirm\")),1)]),_:1},8,[\"loading\",\"class\",\"round\",\"disabled\",\"size\"]),[[Be,e.showConfirmButton]])],2)],6)]),_:3},8,[\"trapped\",\"focus-trap-el\",\"focus-start-el\",\"onReleaseRequested\"])],42,Nre)]),_:3},8,[\"z-index\",\"overlay-class\",\"mask\"]),[[Be,e.visible]])]),_:3})}var qre=je(Rre,[[\"render\",Wre],[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue\"]]);const or=new Map,jre=(e,t,n=null)=>{const o=d(qre,e,Je(e.message)||mn(e.message)?{default:Je(e.message)?e.message:()=>e.message}:null);return o.appContext=n,Yl(o,t),document.body.appendChild(t.firstElementChild),o.component},Kre=()=>document.createElement(\"div\"),Gre=(e,t)=>{const n=Kre();e.onVanish=()=>{Yl(null,n),or.delete(l)},e.onAction=a=>{const r=or.get(l);let u;e.showInput?u={value:l.inputValue,action:a}:u=a,e.callback?e.callback(u,o.proxy):a===\"cancel\"||a===\"close\"?e.distinguishCancelAndClose&&a!==\"cancel\"?r.reject(\"close\"):r.reject(\"cancel\"):r.resolve(u)};const o=jre(e,n,t),l=o.proxy;for(const a in e)st(e,a)&&!st(l.$props,a)&&(l[a]=e[a]);return l.visible=!0,l};function ba(e,t=null){if(!_t)return Promise.reject();let n;return tt(e)||mn(e)?e={message:e}:n=e.callback,new Promise((o,l)=>{const a=Gre(e,t!=null?t:ba._context);or.set(a,{options:e,callback:n,resolve:o,reject:l})})}const Yre=[\"alert\",\"confirm\",\"prompt\"],Xre={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};Yre.forEach(e=>{ba[e]=Jre(e)});function Jre(e){return(t,n,o,l)=>{let a=\"\";return ct(n)?(o=n,a=\"\"):Ko(n)?a=\"\":a=n,ba(Object.assign({title:a,message:t,type:\"\",...Xre[e]},o,{boxType:e}),l)}}ba.close=()=>{or.forEach((e,t)=>{t.doClose()}),or.clear()};ba._context=null;const Oo=ba;Oo.install=e=>{Oo._context=e._context,e.config.globalProperties.$msgbox=Oo,e.config.globalProperties.$messageBox=Oo,e.config.globalProperties.$alert=Oo.alert,e.config.globalProperties.$confirm=Oo.confirm,e.config.globalProperties.$prompt=Oo.prompt};const zt=Oo,g6=[\"success\",\"info\",\"warning\",\"error\"],Qre=et({customClass:{type:String,default:\"\"},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},icon:{type:Lt},id:{type:String,default:\"\"},message:{type:Ue([String,Object]),default:\"\"},offset:{type:Number,default:0},onClick:{type:Ue(Function),default:()=>{}},onClose:{type:Ue(Function),required:!0},position:{type:String,values:[\"top-right\",\"top-left\",\"bottom-right\",\"bottom-left\"],default:\"top-right\"},showClose:{type:Boolean,default:!0},title:{type:String,default:\"\"},type:{type:String,values:[...g6,\"\"],default:\"\"},zIndex:{type:Number,default:0}}),Zre={destroy:()=>!0},eue=[\"id\"],tue=[\"textContent\"],nue={key:0},oue=[\"innerHTML\"],lue={name:\"ElNotification\"},aue=Le({...lue,props:Qre,emits:Zre,setup(e,{expose:t}){const n=e,o=He(\"notification\"),{Close:l}=$f,a=z(!1);let r;const u=R(()=>{const A=n.type;return A&&Zl[n.type]?o.m(A):\"\"}),s=R(()=>n.type&&Zl[n.type]||n.icon),i=R(()=>n.position.endsWith(\"right\")?\"right\":\"left\"),c=R(()=>n.position.startsWith(\"top\")?\"top\":\"bottom\"),m=R(()=>({[c.value]:`${n.offset}px`,zIndex:n.zIndex}));function h(){n.duration>0&&({stop:r}=Ql(()=>{a.value&&g()},n.duration))}function v(){r==null||r()}function g(){a.value=!1}function y({code:A}){A===Pt.delete||A===Pt.backspace?v():A===Pt.esc?a.value&&g():h()}return at(()=>{h(),a.value=!0}),Kt(document,\"keydown\",y),t({visible:a,close:g}),(A,w)=>(b(),ae(Zt,{name:_(o).b(\"fade\"),onBeforeLeave:A.onClose,onAfterLeave:w[1]||(w[1]=F=>A.$emit(\"destroy\")),persisted:\"\"},{default:p(()=>[ye(f(\"div\",{id:A.id,class:U([_(o).b(),A.customClass,_(i)]),style:nt(_(m)),role:\"alert\",onMouseenter:v,onMouseleave:h,onClick:w[0]||(w[0]=(...F)=>A.onClick&&A.onClick(...F))},[_(s)?(b(),ae(_(ut),{key:0,class:U([_(o).e(\"icon\"),_(u)])},{default:p(()=>[(b(),ae(yt(_(s))))]),_:1},8,[\"class\"])):oe(\"v-if\",!0),f(\"div\",{class:U(_(o).e(\"group\"))},[f(\"h2\",{class:U(_(o).e(\"title\")),textContent:ce(A.title)},null,10,tue),ye(f(\"div\",{class:U(_(o).e(\"content\")),style:nt(A.title?void 0:{margin:0})},[Te(A.$slots,\"default\",{},()=>[A.dangerouslyUseHTMLString?(b(),C(We,{key:1},[oe(\" Caution here, message could've been compromised, never use user's input as message \"),f(\"p\",{innerHTML:A.message},null,8,oue)],2112)):(b(),C(\"p\",nue,ce(A.message),1))])],6),[[Be,A.message]]),A.showClose?(b(),ae(_(ut),{key:0,class:U(_(o).e(\"closeBtn\")),onClick:ht(g,[\"stop\"])},{default:p(()=>[d(_(l))]),_:1},8,[\"class\",\"onClick\"])):oe(\"v-if\",!0)],2)],46,eue),[[Be,a.value]])]),_:3},8,[\"name\",\"onBeforeLeave\"]))}});var rue=je(aue,[[\"__file\",\"/home/runner/work/element-plus/element-plus/packages/components/notification/src/notification.vue\"]]);const hu={\"top-left\":[],\"top-right\":[],\"bottom-left\":[],\"bottom-right\":[]},pi=16;let uue=1;const ua=function(e={},t=null){if(!_t)return{close:()=>{}};(typeof e==\"string\"||mn(e))&&(e={message:e});const n=e.position||\"top-right\";let o=e.offset||0;hu[n].forEach(({vm:m})=>{var h;o+=(((h=m.el)==null?void 0:h.offsetHeight)||0)+pi}),o+=pi;const{nextZIndex:l}=kl(),a=`notification_${uue++}`,r=e.onClose,u={...e,zIndex:l(),offset:o,id:a,onClose:()=>{sue(a,n,r)}};let s=document.body;Qo(e.appendTo)?s=e.appendTo:tt(e.appendTo)&&(s=document.querySelector(e.appendTo)),Qo(s)||(s=document.body);const i=document.createElement(\"div\"),c=d(rue,u,mn(u.message)?{default:()=>u.message}:null);return c.appContext=t!=null?t:ua._context,c.props.onDestroy=()=>{Yl(null,i)},Yl(c,i),hu[n].push({vm:c}),s.appendChild(i.firstElementChild),{close:()=>{c.component.exposed.visible.value=!1}}};g6.forEach(e=>{ua[e]=(t={})=>((typeof t==\"string\"||mn(t))&&(t={message:t}),ua({...t,type:e}))});function sue(e,t,n){const o=hu[t],l=o.findIndex(({vm:i})=>{var c;return((c=i.component)==null?void 0:c.props.id)===e});if(l===-1)return;const{vm:a}=o[l];if(!a)return;n==null||n(a);const r=a.el.offsetHeight,u=t.split(\"-\")[0];o.splice(l,1);const s=o.length;if(!(s<1))for(let i=l;i<s;i++){const{el:c,component:m}=o[i].vm,h=Number.parseInt(c.style[u],10)-r-pi;m.props.offset=h}}function iue(){for(const e of Object.values(hu))e.forEach(({vm:t})=>{t.component.exposed.visible.value=!1})}ua.closeAll=iue;ua._context=null;const cue=Bf(ua,\"$notify\");var B2={exports:{}},b6=function(t,n){return function(){for(var l=new Array(arguments.length),a=0;a<l.length;a++)l[a]=arguments[a];return t.apply(n,l)}},due=b6,S2=Object.prototype.toString,k2=function(e){return function(t){var n=S2.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())}}(Object.create(null));function Pl(e){return e=e.toLowerCase(),function(n){return k2(n)===e}}function P2(e){return Array.isArray(e)}function _u(e){return typeof e==\"undefined\"}function fue(e){return e!==null&&!_u(e)&&e.constructor!==null&&!_u(e.constructor)&&typeof e.constructor.isBuffer==\"function\"&&e.constructor.isBuffer(e)}var y6=Pl(\"ArrayBuffer\");function pue(e){var t;return typeof ArrayBuffer!=\"undefined\"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&y6(e.buffer),t}function vue(e){return typeof e==\"string\"}function hue(e){return typeof e==\"number\"}function w6(e){return e!==null&&typeof e==\"object\"}function Jr(e){if(k2(e)!==\"object\")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}var _ue=Pl(\"Date\"),mue=Pl(\"File\"),gue=Pl(\"Blob\"),bue=Pl(\"FileList\");function L2(e){return S2.call(e)===\"[object Function]\"}function yue(e){return w6(e)&&L2(e.pipe)}function wue(e){var t=\"[object FormData]\";return e&&(typeof FormData==\"function\"&&e instanceof FormData||S2.call(e)===t||L2(e.toString)&&e.toString()===t)}var Cue=Pl(\"URLSearchParams\");function Eue(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function Aue(){return typeof navigator!=\"undefined\"&&(navigator.product===\"ReactNative\"||navigator.product===\"NativeScript\"||navigator.product===\"NS\")?!1:typeof window!=\"undefined\"&&typeof document!=\"undefined\"}function z2(e,t){if(!(e===null||typeof e==\"undefined\"))if(typeof e!=\"object\"&&(e=[e]),P2(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&t.call(null,e[l],l,e)}function vi(){var e={};function t(l,a){Jr(e[a])&&Jr(l)?e[a]=vi(e[a],l):Jr(l)?e[a]=vi({},l):P2(l)?e[a]=l.slice():e[a]=l}for(var n=0,o=arguments.length;n<o;n++)z2(arguments[n],t);return e}function Fue(e,t,n){return z2(t,function(l,a){n&&typeof l==\"function\"?e[a]=due(l,n):e[a]=l}),e}function xue(e){return e.charCodeAt(0)===65279&&(e=e.slice(1)),e}function $ue(e,t,n,o){e.prototype=Object.create(t.prototype,o),e.prototype.constructor=e,n&&Object.assign(e.prototype,n)}function Due(e,t,n){var o,l,a,r={};t=t||{};do{for(o=Object.getOwnPropertyNames(e),l=o.length;l-- >0;)a=o[l],r[a]||(t[a]=e[a],r[a]=!0);e=Object.getPrototypeOf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t}function Bue(e,t,n){e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;var o=e.indexOf(t,n);return o!==-1&&o===n}function Sue(e){if(!e)return null;var t=e.length;if(_u(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n}var kue=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array!=\"undefined\"&&Object.getPrototypeOf(Uint8Array)),Wt={isArray:P2,isArrayBuffer:y6,isBuffer:fue,isFormData:wue,isArrayBufferView:pue,isString:vue,isNumber:hue,isObject:w6,isPlainObject:Jr,isUndefined:_u,isDate:_ue,isFile:mue,isBlob:gue,isFunction:L2,isStream:yue,isURLSearchParams:Cue,isStandardBrowserEnv:Aue,forEach:z2,merge:vi,extend:Fue,trim:Eue,stripBOM:xue,inherits:$ue,toFlatObject:Due,kindOf:k2,kindOfTest:Pl,endsWith:Bue,toArray:Sue,isTypedArray:kue,isFileList:bue},Tl=Wt;function id(e){return encodeURIComponent(e).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}var C6=function(t,n,o){if(!n)return t;var l;if(o)l=o(n);else if(Tl.isURLSearchParams(n))l=n.toString();else{var a=[];Tl.forEach(n,function(s,i){s===null||typeof s==\"undefined\"||(Tl.isArray(s)?i=i+\"[]\":s=[s],Tl.forEach(s,function(m){Tl.isDate(m)?m=m.toISOString():Tl.isObject(m)&&(m=JSON.stringify(m)),a.push(id(i)+\"=\"+id(m))}))}),l=a.join(\"&\")}if(l){var r=t.indexOf(\"#\");r!==-1&&(t=t.slice(0,r)),t+=(t.indexOf(\"?\")===-1?\"?\":\"&\")+l}return t},Pue=Wt;function Gu(){this.handlers=[]}Gu.prototype.use=function(t,n,o){return this.handlers.push({fulfilled:t,rejected:n,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1};Gu.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};Gu.prototype.forEach=function(t){Pue.forEach(this.handlers,function(o){o!==null&&t(o)})};var Lue=Gu,zue=Wt,Tue=function(t,n){zue.forEach(t,function(l,a){a!==n&&a.toUpperCase()===n.toUpperCase()&&(t[n]=l,delete t[a])})},E6=Wt;function sa(e,t,n,o,l){Error.call(this),this.message=e,this.name=\"AxiosError\",t&&(this.code=t),n&&(this.config=n),o&&(this.request=o),l&&(this.response=l)}E6.inherits(sa,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var A6=sa.prototype,F6={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\"].forEach(function(e){F6[e]={value:e}});Object.defineProperties(sa,F6);Object.defineProperty(A6,\"isAxiosError\",{value:!0});sa.from=function(e,t,n,o,l,a){var r=Object.create(A6);return E6.toFlatObject(e,r,function(s){return s!==Error.prototype}),sa.call(r,e.message,t,n,o,l),r.name=e.name,a&&Object.assign(r,a),r};var ya=sa,x6={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Tn=Wt;function Mue(e,t){t=t||new FormData;var n=[];function o(a){return a===null?\"\":Tn.isDate(a)?a.toISOString():Tn.isArrayBuffer(a)||Tn.isTypedArray(a)?typeof Blob==\"function\"?new Blob([a]):Buffer.from(a):a}function l(a,r){if(Tn.isPlainObject(a)||Tn.isArray(a)){if(n.indexOf(a)!==-1)throw Error(\"Circular reference detected in \"+r);n.push(a),Tn.forEach(a,function(s,i){if(!Tn.isUndefined(s)){var c=r?r+\".\"+i:i,m;if(s&&!r&&typeof s==\"object\"){if(Tn.endsWith(i,\"{}\"))s=JSON.stringify(s);else if(Tn.endsWith(i,\"[]\")&&(m=Tn.toArray(s))){m.forEach(function(h){!Tn.isUndefined(h)&&t.append(c,o(h))});return}}l(s,c)}}),n.pop()}else t.append(r,o(a))}return l(e),t}var $6=Mue,bs=ya,Vue=function(t,n,o){var l=o.config.validateStatus;!o.status||!l||l(o.status)?t(o):n(new bs(\"Request failed with status code \"+o.status,[bs.ERR_BAD_REQUEST,bs.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o))},Pr=Wt,Hue=Pr.isStandardBrowserEnv()?function(){return{write:function(n,o,l,a,r,u){var s=[];s.push(n+\"=\"+encodeURIComponent(o)),Pr.isNumber(l)&&s.push(\"expires=\"+new Date(l).toGMTString()),Pr.isString(a)&&s.push(\"path=\"+a),Pr.isString(r)&&s.push(\"domain=\"+r),u===!0&&s.push(\"secure\"),document.cookie=s.join(\"; \")},read:function(n){var o=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+n+\")=([^;]*)\"));return o?decodeURIComponent(o[3]):null},remove:function(n){this.write(n,\"\",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),Iue=function(t){return/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t)},Rue=function(t,n){return n?t.replace(/\\/+$/,\"\")+\"/\"+n.replace(/^\\/+/,\"\"):t},Nue=Iue,Oue=Rue,D6=function(t,n){return t&&!Nue(n)?Oue(t,n):n},ys=Wt,Uue=[\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"],Wue=function(t){var n={},o,l,a;return t&&ys.forEach(t.split(`\n`),function(u){if(a=u.indexOf(\":\"),o=ys.trim(u.substr(0,a)).toLowerCase(),l=ys.trim(u.substr(a+1)),o){if(n[o]&&Uue.indexOf(o)>=0)return;o===\"set-cookie\"?n[o]=(n[o]?n[o]:[]).concat([l]):n[o]=n[o]?n[o]+\", \"+l:l}}),n},cd=Wt,que=cd.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement(\"a\"),o;function l(a){var r=a;return t&&(n.setAttribute(\"href\",r),r=n.href),n.setAttribute(\"href\",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,\"\"):\"\",host:n.host,search:n.search?n.search.replace(/^\\?/,\"\"):\"\",hash:n.hash?n.hash.replace(/^#/,\"\"):\"\",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)===\"/\"?n.pathname:\"/\"+n.pathname}}return o=l(window.location.href),function(r){var u=cd.isString(r)?l(r):r;return u.protocol===o.protocol&&u.host===o.host}}():function(){return function(){return!0}}(),hi=ya,jue=Wt;function B6(e){hi.call(this,e==null?\"canceled\":e,hi.ERR_CANCELED),this.name=\"CanceledError\"}jue.inherits(B6,hi,{__CANCEL__:!0});var Yu=B6,Kue=function(t){var n=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(t);return n&&n[1]||\"\"},Da=Wt,Gue=Vue,Yue=Hue,Xue=C6,Jue=D6,Que=Wue,Zue=que,ese=x6,fo=ya,tse=Yu,nse=Kue,dd=function(t){return new Promise(function(o,l){var a=t.data,r=t.headers,u=t.responseType,s;function i(){t.cancelToken&&t.cancelToken.unsubscribe(s),t.signal&&t.signal.removeEventListener(\"abort\",s)}Da.isFormData(a)&&Da.isStandardBrowserEnv()&&delete r[\"Content-Type\"];var c=new XMLHttpRequest;if(t.auth){var m=t.auth.username||\"\",h=t.auth.password?unescape(encodeURIComponent(t.auth.password)):\"\";r.Authorization=\"Basic \"+btoa(m+\":\"+h)}var v=Jue(t.baseURL,t.url);c.open(t.method.toUpperCase(),Xue(v,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function g(){if(!!c){var w=\"getAllResponseHeaders\"in c?Que(c.getAllResponseHeaders()):null,F=!u||u===\"text\"||u===\"json\"?c.responseText:c.response,E={data:F,status:c.status,statusText:c.statusText,headers:w,config:t,request:c};Gue(function(T){o(T),i()},function(T){l(T),i()},E),c=null}}if(\"onloadend\"in c?c.onloadend=g:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf(\"file:\")===0)||setTimeout(g)},c.onabort=function(){!c||(l(new fo(\"Request aborted\",fo.ECONNABORTED,t,c)),c=null)},c.onerror=function(){l(new fo(\"Network Error\",fo.ERR_NETWORK,t,c,c)),c=null},c.ontimeout=function(){var F=t.timeout?\"timeout of \"+t.timeout+\"ms exceeded\":\"timeout exceeded\",E=t.transitional||ese;t.timeoutErrorMessage&&(F=t.timeoutErrorMessage),l(new fo(F,E.clarifyTimeoutError?fo.ETIMEDOUT:fo.ECONNABORTED,t,c)),c=null},Da.isStandardBrowserEnv()){var y=(t.withCredentials||Zue(v))&&t.xsrfCookieName?Yue.read(t.xsrfCookieName):void 0;y&&(r[t.xsrfHeaderName]=y)}\"setRequestHeader\"in c&&Da.forEach(r,function(F,E){typeof a==\"undefined\"&&E.toLowerCase()===\"content-type\"?delete r[E]:c.setRequestHeader(E,F)}),Da.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),u&&u!==\"json\"&&(c.responseType=t.responseType),typeof t.onDownloadProgress==\"function\"&&c.addEventListener(\"progress\",t.onDownloadProgress),typeof t.onUploadProgress==\"function\"&&c.upload&&c.upload.addEventListener(\"progress\",t.onUploadProgress),(t.cancelToken||t.signal)&&(s=function(w){!c||(l(!w||w&&w.type?new tse:w),c.abort(),c=null)},t.cancelToken&&t.cancelToken.subscribe(s),t.signal&&(t.signal.aborted?s():t.signal.addEventListener(\"abort\",s))),a||(a=null);var A=nse(v);if(A&&[\"http\",\"https\",\"file\"].indexOf(A)===-1){l(new fo(\"Unsupported protocol \"+A+\":\",fo.ERR_BAD_REQUEST,t));return}c.send(a)})},ose=null,Mt=Wt,fd=Tue,pd=ya,lse=x6,ase=$6,rse={\"Content-Type\":\"application/x-www-form-urlencoded\"};function vd(e,t){!Mt.isUndefined(e)&&Mt.isUndefined(e[\"Content-Type\"])&&(e[\"Content-Type\"]=t)}function use(){var e;return(typeof XMLHttpRequest!=\"undefined\"||typeof process!=\"undefined\"&&Object.prototype.toString.call(process)===\"[object process]\")&&(e=dd),e}function sse(e,t,n){if(Mt.isString(e))try{return(t||JSON.parse)(e),Mt.trim(e)}catch(o){if(o.name!==\"SyntaxError\")throw o}return(n||JSON.stringify)(e)}var Xu={transitional:lse,adapter:use(),transformRequest:[function(t,n){if(fd(n,\"Accept\"),fd(n,\"Content-Type\"),Mt.isFormData(t)||Mt.isArrayBuffer(t)||Mt.isBuffer(t)||Mt.isStream(t)||Mt.isFile(t)||Mt.isBlob(t))return t;if(Mt.isArrayBufferView(t))return t.buffer;if(Mt.isURLSearchParams(t))return vd(n,\"application/x-www-form-urlencoded;charset=utf-8\"),t.toString();var o=Mt.isObject(t),l=n&&n[\"Content-Type\"],a;if((a=Mt.isFileList(t))||o&&l===\"multipart/form-data\"){var r=this.env&&this.env.FormData;return ase(a?{\"files[]\":t}:t,r&&new r)}else if(o||l===\"application/json\")return vd(n,\"application/json\"),sse(t);return t}],transformResponse:[function(t){var n=this.transitional||Xu.transitional,o=n&&n.silentJSONParsing,l=n&&n.forcedJSONParsing,a=!o&&this.responseType===\"json\";if(a||l&&Mt.isString(t)&&t.length)try{return JSON.parse(t)}catch(r){if(a)throw r.name===\"SyntaxError\"?pd.from(r,pd.ERR_BAD_RESPONSE,this,null,this.response):r}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ose},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\"}}};Mt.forEach([\"delete\",\"get\",\"head\"],function(t){Xu.headers[t]={}});Mt.forEach([\"post\",\"put\",\"patch\"],function(t){Xu.headers[t]=Mt.merge(rse)});var T2=Xu,ise=Wt,cse=T2,dse=function(t,n,o){var l=this||cse;return ise.forEach(o,function(r){t=r.call(l,t,n)}),t},S6=function(t){return!!(t&&t.__CANCEL__)},hd=Wt,ws=dse,fse=S6,pse=T2,vse=Yu;function Cs(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new vse}var hse=function(t){Cs(t),t.headers=t.headers||{},t.data=ws.call(t,t.data,t.headers,t.transformRequest),t.headers=hd.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),hd.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],function(l){delete t.headers[l]});var n=t.adapter||pse.adapter;return n(t).then(function(l){return Cs(t),l.data=ws.call(t,l.data,l.headers,t.transformResponse),l},function(l){return fse(l)||(Cs(t),l&&l.response&&(l.response.data=ws.call(t,l.response.data,l.response.headers,t.transformResponse))),Promise.reject(l)})},cn=Wt,k6=function(t,n){n=n||{};var o={};function l(c,m){return cn.isPlainObject(c)&&cn.isPlainObject(m)?cn.merge(c,m):cn.isPlainObject(m)?cn.merge({},m):cn.isArray(m)?m.slice():m}function a(c){if(cn.isUndefined(n[c])){if(!cn.isUndefined(t[c]))return l(void 0,t[c])}else return l(t[c],n[c])}function r(c){if(!cn.isUndefined(n[c]))return l(void 0,n[c])}function u(c){if(cn.isUndefined(n[c])){if(!cn.isUndefined(t[c]))return l(void 0,t[c])}else return l(void 0,n[c])}function s(c){if(c in n)return l(t[c],n[c]);if(c in t)return l(void 0,t[c])}var i={url:r,method:r,data:r,baseURL:u,transformRequest:u,transformResponse:u,paramsSerializer:u,timeout:u,timeoutMessage:u,withCredentials:u,adapter:u,responseType:u,xsrfCookieName:u,xsrfHeaderName:u,onUploadProgress:u,onDownloadProgress:u,decompress:u,maxContentLength:u,maxBodyLength:u,beforeRedirect:u,transport:u,httpAgent:u,httpsAgent:u,cancelToken:u,socketPath:u,responseEncoding:u,validateStatus:s};return cn.forEach(Object.keys(t).concat(Object.keys(n)),function(m){var h=i[m]||a,v=h(m);cn.isUndefined(v)&&h!==s||(o[m]=v)}),o},P6={version:\"0.27.2\"},_se=P6.version,Wo=ya,M2={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach(function(e,t){M2[e]=function(o){return typeof o===e||\"a\"+(t<1?\"n \":\" \")+e}});var _d={};M2.transitional=function(t,n,o){function l(a,r){return\"[Axios v\"+_se+\"] Transitional option '\"+a+\"'\"+r+(o?\". \"+o:\"\")}return function(a,r,u){if(t===!1)throw new Wo(l(r,\" has been removed\"+(n?\" in \"+n:\"\")),Wo.ERR_DEPRECATED);return n&&!_d[r]&&(_d[r]=!0,console.warn(l(r,\" has been deprecated since v\"+n+\" and will be removed in the near future\"))),t?t(a,r,u):!0}};function mse(e,t,n){if(typeof e!=\"object\")throw new Wo(\"options must be an object\",Wo.ERR_BAD_OPTION_VALUE);for(var o=Object.keys(e),l=o.length;l-- >0;){var a=o[l],r=t[a];if(r){var u=e[a],s=u===void 0||r(u,a,e);if(s!==!0)throw new Wo(\"option \"+a+\" must be \"+s,Wo.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Wo(\"Unknown option \"+a,Wo.ERR_BAD_OPTION)}}var gse={assertOptions:mse,validators:M2},L6=Wt,bse=C6,md=Lue,gd=hse,Ju=k6,yse=D6,z6=gse,Ml=z6.validators;function ia(e){this.defaults=e,this.interceptors={request:new md,response:new md}}ia.prototype.request=function(t,n){typeof t==\"string\"?(n=n||{},n.url=t):n=t||{},n=Ju(this.defaults,n),n.method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method=\"get\";var o=n.transitional;o!==void 0&&z6.assertOptions(o,{silentJSONParsing:Ml.transitional(Ml.boolean),forcedJSONParsing:Ml.transitional(Ml.boolean),clarifyTimeoutError:Ml.transitional(Ml.boolean)},!1);var l=[],a=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen==\"function\"&&v.runWhen(n)===!1||(a=a&&v.synchronous,l.unshift(v.fulfilled,v.rejected))});var r=[];this.interceptors.response.forEach(function(v){r.push(v.fulfilled,v.rejected)});var u;if(!a){var s=[gd,void 0];for(Array.prototype.unshift.apply(s,l),s=s.concat(r),u=Promise.resolve(n);s.length;)u=u.then(s.shift(),s.shift());return u}for(var i=n;l.length;){var c=l.shift(),m=l.shift();try{i=c(i)}catch(h){m(h);break}}try{u=gd(i)}catch(h){return Promise.reject(h)}for(;r.length;)u=u.then(r.shift(),r.shift());return u};ia.prototype.getUri=function(t){t=Ju(this.defaults,t);var n=yse(t.baseURL,t.url);return bse(n,t.params,t.paramsSerializer)};L6.forEach([\"delete\",\"get\",\"head\",\"options\"],function(t){ia.prototype[t]=function(n,o){return this.request(Ju(o||{},{method:t,url:n,data:(o||{}).data}))}});L6.forEach([\"post\",\"put\",\"patch\"],function(t){function n(o){return function(a,r,u){return this.request(Ju(u||{},{method:t,headers:o?{\"Content-Type\":\"multipart/form-data\"}:{},url:a,data:r}))}}ia.prototype[t]=n(),ia.prototype[t+\"Form\"]=n(!0)});var wse=ia,Cse=Yu;function ca(e){if(typeof e!=\"function\")throw new TypeError(\"executor must be a function.\");var t;this.promise=new Promise(function(l){t=l});var n=this;this.promise.then(function(o){if(!!n._listeners){var l,a=n._listeners.length;for(l=0;l<a;l++)n._listeners[l](o);n._listeners=null}}),this.promise.then=function(o){var l,a=new Promise(function(r){n.subscribe(r),l=r}).then(o);return a.cancel=function(){n.unsubscribe(l)},a},e(function(l){n.reason||(n.reason=new Cse(l),t(n.reason))})}ca.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};ca.prototype.subscribe=function(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]};ca.prototype.unsubscribe=function(t){if(!!this._listeners){var n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}};ca.source=function(){var t,n=new ca(function(l){t=l});return{token:n,cancel:t}};var Ese=ca,Ase=function(t){return function(o){return t.apply(null,o)}},Fse=Wt,xse=function(t){return Fse.isObject(t)&&t.isAxiosError===!0},bd=Wt,$se=b6,Qr=wse,Dse=k6,Bse=T2;function T6(e){var t=new Qr(e),n=$se(Qr.prototype.request,t);return bd.extend(n,Qr.prototype,t),bd.extend(n,t),n.create=function(l){return T6(Dse(e,l))},n}var rn=T6(Bse);rn.Axios=Qr;rn.CanceledError=Yu;rn.CancelToken=Ese;rn.isCancel=S6;rn.VERSION=P6.version;rn.toFormData=$6;rn.AxiosError=ya;rn.Cancel=rn.CanceledError;rn.all=function(t){return Promise.all(t)};rn.spread=Ase;rn.isAxiosError=xse;B2.exports=rn;B2.exports.default=rn;var Sse=B2.exports;console.log(\"vue run mode production\");var kse=\"/\";const ot=Sse.create({baseURL:kse,timeout:5e3,withCredentials:!1,headers:{\"Content-Type\":\"application/json\"}});ot.interceptors.request.use(function(e){return e},function(e){return console.log(e),Promise.reject(e)});ot.interceptors.response.use(function(e){const t=e.data;return t.reset,t.ret!=null&&t.ret==-1&&(console.log(\"\\u767B\\u5F55\\u5931\\u6548\"),location.hash=\"#login\"),t},function(e){return console.log(e),Promise.reject(e)});var lr={getStorage(){return JSON.parse(window.localStorage.getItem(\"lucky\")||\"{}\")},setItem(e,t){let n=this.getStorage();n[e]=t,window.localStorage.setItem(\"lucky\",JSON.stringify(n))},getItem(e){return this.getStorage()[e]},clearItem(e){let t=this.getStorage();delete t[e],window.localStorage.setItem(config.namespace,JSON.stringify(t))},clearAll(){window.localStorage.clear()}};function yd(e){location.hash=e}function lt(){return lr.getItem(\"token\")==null?\"\":lr.getItem(\"token\")}function Pse(){return ot({url:\"/api/status\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Lse(e){return ot({url:\"/api/logs\",method:\"get\",headers:{Authorization:lt()},params:{pre:e,_:new Date().valueOf()}})}function zse(e){return ot({url:\"/api/ddns\",method:\"post\",headers:{Authorization:lt()},data:e})}function Tse(e,t){return ot({url:\"/api/ddns\",method:\"put\",headers:{Authorization:lt()},data:t,params:{key:e}})}function Mse(e){return ot({url:\"/api/ddns\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e}})}function Vse(){return ot({url:\"/api/ddnstasklist\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Hse(e,t){return ot({url:\"/api/ddns/enable\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),enable:t,key:e}})}function Ise(){return ot({url:\"/api/baseconfigure\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Rse(){return ot({url:\"/api/ddns/configure\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Nse(e){return ot({url:\"/api/baseconfigure\",method:\"put\",headers:{Authorization:lt()},data:e})}function Ose(e){return ot({url:\"/api/ddns/configure\",method:\"put\",headers:{Authorization:lt()},data:e})}function Use(e){return ot({url:\"/api/login\",method:\"post\",data:e})}function Wse(){return ot({url:\"/api/reboot_program\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function qse(e){return ot({url:\"/api/whitelist/configure\",method:\"put\",headers:{Authorization:lt()},data:e})}function jse(e){return ot({url:\"/api/whitelist/configure\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Kse(e){return ot({url:\"/api/whitelist\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function wd(e,t){return ot({url:\"/api/whitelist/flush\",method:\"put\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),ip:e,life:t}})}function Gse(e,t){return ot({url:\"/api/whitelist\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),ip:e}})}function Yse(e){return ot({url:\"/api/blacklist\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function Cd(e,t){return ot({url:\"/api/blacklist/flush\",method:\"put\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),ip:e,life:t}})}function Xse(e,t){return ot({url:\"/api/blacklist\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),ip:e}})}function Jse(){return ot({url:\"/version\",method:\"get\",params:{_:new Date().valueOf()}})}function Qse(){return ot({url:\"/api/logout\",method:\"put\",headers:{Authorization:lt()}})}function Zse(){return ot({url:\"/api/netinterfaces\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function eie(e,t,n){return ot({url:\"/api/ipregtest\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),iptype:e,netinterface:t,ipreg:n}})}function tie(e,t){return ot({url:\"api/webhooktest\",headers:{Authorization:lt()},method:\"post\",data:t,params:{key:e}})}function nie(){return ot({url:\"/api/info\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function oie(e){return ot({url:\"/api/restoreconfigureconfirm\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e}})}function lie(){return ot({url:\"/api/configure\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function aie(e){return ot({url:\"/api/ssl\",method:\"delete\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e}})}function rie(e){return ot({url:\"/api/ssl\",method:\"post\",headers:{Authorization:lt()},data:e})}function Ed(e,t,n){return ot({url:\"/api/ssl\",method:\"put\",headers:{Authorization:lt()},params:{key:e,field:t,value:n}})}function uie(e){return ot({url:\"/api/ssl\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function sie(e){return ot({url:\"/api/reverseproxyrule\",method:\"post\",headers:{Authorization:lt()},data:e})}function iie(){return ot({url:\"/api/reverseproxyrules\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function cie(e){return ot({url:\"/api/reverseproxyrule\",method:\"put\",headers:{Authorization:lt()},data:e,params:{_:new Date().valueOf()}})}function die(e){return ot({url:\"/api/reverseproxyrule\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e}})}function Ad(e,t,n){return ot({url:\"/api/reverseproxyrule/enable\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),enable:n,ruleKey:e,proxyKey:t}})}function Es(e,t,n,o){return ot({url:\"/api/reverseproxyrule/logs\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),ruleKey:e,proxyKey:t,pageSize:n,page:o}})}function fie(){return ot({url:\"/api/portforwards\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function pie(e){return ot({url:\"/api/portforward\",method:\"post\",headers:{Authorization:lt()},data:e})}function vie(e){return ot({url:\"/api/portforward\",method:\"delete\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e}})}function hie(e){return ot({url:\"/api/portforward\",method:\"put\",headers:{Authorization:lt()},data:e})}function _ie(e,t){return ot({url:\"/api/portforward/enable\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),enable:t,key:e}})}function mie(){return ot({url:\"/api/portforward/configure\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf()}})}function gie(e){return ot({url:\"/api/portforward/configure\",method:\"put\",headers:{Authorization:lt()},data:e})}function As(e,t,n){return ot({url:\"/api/portforward/logs\",method:\"get\",headers:{Authorization:lt()},params:{_:new Date().valueOf(),key:e,pageSize:t,page:n}})}function qo(e){zt.alert(e,{confirmButtonText:\"\\u597D\\u7684\",callback:()=>{}})}function ie(e,t){m6({message:t,type:e})}function to(e,t,n){cue({title:e.substring(0,1).toUpperCase()+e.substring(1),message:t,type:e,duration:n})}var wn=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};const bie={class:\"PageRadius\",style:{borderRadius:\"base\"},\"element-loading-background\":\"transparent\"},yie={class:\"formradius\",style:{borderRadius:\"base\"}},wie={class:\"AdminListenDivRadius\"},Cie=Le({__name:\"PortForwardSet\",setup(e){const t=z(!0),n={PortForwardsLimit:0,TCPPortforwardMaxConnections:0,UDPReadTargetDataMaxgoroutineCount:0},o=z(n),l=z(n),a=()=>{o.value.PortForwardsLimit=l.value.PortForwardsLimit,o.value.TCPPortforwardMaxConnections=l.value.TCPPortforwardMaxConnections},r=i=>{l.value.PortForwardsLimit=i.value.PortForwardsLimit,l.value.TCPPortforwardMaxConnections=i.TCPPortforwardMaxConnections},u=()=>{mie().then(i=>{if(i.ret==0){t.value=!1,o.value=i.configure,r(o);return}ie(\"error\",\"\\u83B7\\u53D6\\u7AEF\\u53E3\\u8F6C\\u53D1\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(i=>{ie(\"error\",\"\\u83B7\\u53D6\\u7AEF\\u53E3\\u8F6C\\u53D1\\u914D\\u7F6E\\u51FA\\u9519\")})},s=()=>{gie(o.value).then(i=>{if(i.ret==0){ie(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\"),u();return}a(),ie(\"error\",i.msg)}).catch(i=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ie(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\"),a()})};return at(()=>{u()}),(i,c)=>{const m=To,h=jn,v=Sn,g=qn,y=kn,A=un,w=Ku;return ye((b(),C(\"div\",bie,[d(A,{height:\"100%\"},{default:p(()=>[f(\"div\",yie,[d(g,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:p(()=>[f(\"div\",wie,[d(v,{content:\"\\u540C\\u4E00\\u7AEF\\u53E3tcp\\u548Cudp\\u7C7B\\u578B\\u5404\\u7B97\\u4E00\\u4E2A,(0-1024)\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u5168\\u5C40\\u7AEF\\u53E3\\u8F6C\\u53D1\\u6700\\u5927\\u6570\\u91CF\",\"label-width\":\"auto\",min:\"0\",max:\"1024\"},{default:p(()=>[d(m,{modelValue:o.value.PortForwardsLimit,\"onUpdate:modelValue\":c[0]||(c[0]=F=>o.value.PortForwardsLimit=F),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(v,{content:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40TCP\\u6700\\u5927\\u5E76\\u53D1\\u8FDE\\u63A5\\u6570,(0-4096)\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40TCP\\u6700\\u5927\\u5E76\\u53D1\\u8FDE\\u63A5\\u6570\",\"label-width\":\"auto\",min:\"0\",max:\"4096\"},{default:p(()=>[d(m,{modelValue:o.value.TCPPortforwardMaxConnections,\"onUpdate:modelValue\":c[1]||(c[1]=F=>o.value.TCPPortforwardMaxConnections=F),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(v,{content:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236,(0-4096)\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236\",\"label-width\":\"auto\",min:\"0\",max:\"4096\"},{default:p(()=>[d(m,{modelValue:o.value.UDPReadTargetDataMaxgoroutineCount,\"onUpdate:modelValue\":c[2]||(c[2]=F=>o.value.UDPReadTargetDataMaxgoroutineCount=F),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])]),_:1},8,[\"model\"]),d(y,{type:\"primary\",round:\"\",onClick:s},{default:p(()=>[D(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1})])]),_:1})])),[[w,t.value]])}}});var Eie=wn(Cie,[[\"__scopeId\",\"data-v-5c315195\"]]),M6={exports:{}};/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */(function(e,t){(function(o,l){e.exports=l()})(Hl,function(){return function(){var n={686:function(a,r,u){u.d(r,{default:function(){return $e}});var s=u(279),i=u.n(s),c=u(370),m=u.n(c),h=u(817),v=u.n(h);function g(x){try{return document.execCommand(x)}catch{return!1}}var y=function(W){var we=v()(W);return g(\"cut\"),we},A=y;function w(x){var W=document.documentElement.getAttribute(\"dir\")===\"rtl\",we=document.createElement(\"textarea\");we.style.fontSize=\"12pt\",we.style.border=\"0\",we.style.padding=\"0\",we.style.margin=\"0\",we.style.position=\"absolute\",we.style[W?\"right\":\"left\"]=\"-9999px\";var Ae=window.pageYOffset||document.documentElement.scrollTop;return we.style.top=\"\".concat(Ae,\"px\"),we.setAttribute(\"readonly\",\"\"),we.value=x,we}var F=function(W,we){var Ae=w(W);we.container.appendChild(Ae);var ke=v()(Ae);return g(\"copy\"),Ae.remove(),ke},E=function(W){var we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},Ae=\"\";return typeof W==\"string\"?Ae=F(W,we):W instanceof HTMLInputElement&&![\"text\",\"search\",\"url\",\"tel\",\"password\"].includes(W==null?void 0:W.type)?Ae=F(W.value,we):(Ae=v()(W),g(\"copy\")),Ae},$=E;function T(x){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?T=function(we){return typeof we}:T=function(we){return we&&typeof Symbol==\"function\"&&we.constructor===Symbol&&we!==Symbol.prototype?\"symbol\":typeof we},T(x)}var B=function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},we=W.action,Ae=we===void 0?\"copy\":we,ke=W.container,ve=W.target,ze=W.text;if(Ae!==\"copy\"&&Ae!==\"cut\")throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');if(ve!==void 0)if(ve&&T(ve)===\"object\"&&ve.nodeType===1){if(Ae===\"copy\"&&ve.hasAttribute(\"disabled\"))throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');if(Ae===\"cut\"&&(ve.hasAttribute(\"readonly\")||ve.hasAttribute(\"disabled\")))throw new Error(`Invalid \"target\" attribute. You can't cut text from elements with \"readonly\" or \"disabled\" attributes`)}else throw new Error('Invalid \"target\" value, use a valid Element');if(ze)return $(ze,{container:ke});if(ve)return Ae===\"cut\"?A(ve):$(ve,{container:ke})},P=B;function H(x){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?H=function(we){return typeof we}:H=function(we){return we&&typeof Symbol==\"function\"&&we.constructor===Symbol&&we!==Symbol.prototype?\"symbol\":typeof we},H(x)}function I(x,W){if(!(x instanceof W))throw new TypeError(\"Cannot call a class as a function\")}function j(x,W){for(var we=0;we<W.length;we++){var Ae=W[we];Ae.enumerable=Ae.enumerable||!1,Ae.configurable=!0,\"value\"in Ae&&(Ae.writable=!0),Object.defineProperty(x,Ae.key,Ae)}}function Z(x,W,we){return W&&j(x.prototype,W),we&&j(x,we),x}function G(x,W){if(typeof W!=\"function\"&&W!==null)throw new TypeError(\"Super expression must either be null or a function\");x.prototype=Object.create(W&&W.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),W&&N(x,W)}function N(x,W){return N=Object.setPrototypeOf||function(Ae,ke){return Ae.__proto__=ke,Ae},N(x,W)}function Y(x){var W=Ee();return function(){var Ae=ne(x),ke;if(W){var ve=ne(this).constructor;ke=Reflect.construct(Ae,arguments,ve)}else ke=Ae.apply(this,arguments);return ge(this,ke)}}function ge(x,W){return W&&(H(W)===\"object\"||typeof W==\"function\")?W:fe(x)}function fe(x){if(x===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return x}function Ee(){if(typeof Reflect==\"undefined\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function ne(x){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(we){return we.__proto__||Object.getPrototypeOf(we)},ne(x)}function ee(x,W){var we=\"data-clipboard-\".concat(x);if(!!W.hasAttribute(we))return W.getAttribute(we)}var xe=function(x){G(we,x);var W=Y(we);function we(Ae,ke){var ve;return I(this,we),ve=W.call(this),ve.resolveOptions(ke),ve.listenClick(Ae),ve}return Z(we,[{key:\"resolveOptions\",value:function(){var ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof ke.action==\"function\"?ke.action:this.defaultAction,this.target=typeof ke.target==\"function\"?ke.target:this.defaultTarget,this.text=typeof ke.text==\"function\"?ke.text:this.defaultText,this.container=H(ke.container)===\"object\"?ke.container:document.body}},{key:\"listenClick\",value:function(ke){var ve=this;this.listener=m()(ke,\"click\",function(ze){return ve.onClick(ze)})}},{key:\"onClick\",value:function(ke){var ve=ke.delegateTarget||ke.currentTarget,ze=this.action(ve)||\"copy\",Ke=P({action:ze,container:this.container,target:this.target(ve),text:this.text(ve)});this.emit(Ke?\"success\":\"error\",{action:ze,text:Ke,trigger:ve,clearSelection:function(){ve&&ve.focus(),window.getSelection().removeAllRanges()}})}},{key:\"defaultAction\",value:function(ke){return ee(\"action\",ke)}},{key:\"defaultTarget\",value:function(ke){var ve=ee(\"target\",ke);if(ve)return document.querySelector(ve)}},{key:\"defaultText\",value:function(ke){return ee(\"text\",ke)}},{key:\"destroy\",value:function(){this.listener.destroy()}}],[{key:\"copy\",value:function(ke){var ve=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return $(ke,ve)}},{key:\"cut\",value:function(ke){return A(ke)}},{key:\"isSupported\",value:function(){var ke=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[\"copy\",\"cut\"],ve=typeof ke==\"string\"?[ke]:ke,ze=!!document.queryCommandSupported;return ve.forEach(function(Ke){ze=ze&&!!document.queryCommandSupported(Ke)}),ze}}]),we}(i()),$e=xe},828:function(a){var r=9;if(typeof Element!=\"undefined\"&&!Element.prototype.matches){var u=Element.prototype;u.matches=u.matchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector||u.webkitMatchesSelector}function s(i,c){for(;i&&i.nodeType!==r;){if(typeof i.matches==\"function\"&&i.matches(c))return i;i=i.parentNode}}a.exports=s},438:function(a,r,u){var s=u(828);function i(h,v,g,y,A){var w=m.apply(this,arguments);return h.addEventListener(g,w,A),{destroy:function(){h.removeEventListener(g,w,A)}}}function c(h,v,g,y,A){return typeof h.addEventListener==\"function\"?i.apply(null,arguments):typeof g==\"function\"?i.bind(null,document).apply(null,arguments):(typeof h==\"string\"&&(h=document.querySelectorAll(h)),Array.prototype.map.call(h,function(w){return i(w,v,g,y,A)}))}function m(h,v,g,y){return function(A){A.delegateTarget=s(A.target,v),A.delegateTarget&&y.call(h,A)}}a.exports=c},879:function(a,r){r.node=function(u){return u!==void 0&&u instanceof HTMLElement&&u.nodeType===1},r.nodeList=function(u){var s=Object.prototype.toString.call(u);return u!==void 0&&(s===\"[object NodeList]\"||s===\"[object HTMLCollection]\")&&\"length\"in u&&(u.length===0||r.node(u[0]))},r.string=function(u){return typeof u==\"string\"||u instanceof String},r.fn=function(u){var s=Object.prototype.toString.call(u);return s===\"[object Function]\"}},370:function(a,r,u){var s=u(879),i=u(438);function c(g,y,A){if(!g&&!y&&!A)throw new Error(\"Missing required arguments\");if(!s.string(y))throw new TypeError(\"Second argument must be a String\");if(!s.fn(A))throw new TypeError(\"Third argument must be a Function\");if(s.node(g))return m(g,y,A);if(s.nodeList(g))return h(g,y,A);if(s.string(g))return v(g,y,A);throw new TypeError(\"First argument must be a String, HTMLElement, HTMLCollection, or NodeList\")}function m(g,y,A){return g.addEventListener(y,A),{destroy:function(){g.removeEventListener(y,A)}}}function h(g,y,A){return Array.prototype.forEach.call(g,function(w){w.addEventListener(y,A)}),{destroy:function(){Array.prototype.forEach.call(g,function(w){w.removeEventListener(y,A)})}}}function v(g,y,A){return i(document.body,g,y,A)}a.exports=c},817:function(a){function r(u){var s;if(u.nodeName===\"SELECT\")u.focus(),s=u.value;else if(u.nodeName===\"INPUT\"||u.nodeName===\"TEXTAREA\"){var i=u.hasAttribute(\"readonly\");i||u.setAttribute(\"readonly\",\"\"),u.select(),u.setSelectionRange(0,u.value.length),i||u.removeAttribute(\"readonly\"),s=u.value}else{u.hasAttribute(\"contenteditable\")&&u.focus();var c=window.getSelection(),m=document.createRange();m.selectNodeContents(u),c.removeAllRanges(),c.addRange(m),s=c.toString()}return s}a.exports=r},279:function(a){function r(){}r.prototype={on:function(u,s,i){var c=this.e||(this.e={});return(c[u]||(c[u]=[])).push({fn:s,ctx:i}),this},once:function(u,s,i){var c=this;function m(){c.off(u,m),s.apply(i,arguments)}return m._=s,this.on(u,m,i)},emit:function(u){var s=[].slice.call(arguments,1),i=((this.e||(this.e={}))[u]||[]).slice(),c=0,m=i.length;for(c;c<m;c++)i[c].fn.apply(i[c].ctx,s);return this},off:function(u,s){var i=this.e||(this.e={}),c=i[u],m=[];if(c&&s)for(var h=0,v=c.length;h<v;h++)c[h].fn!==s&&c[h].fn._!==s&&m.push(c[h]);return m.length?i[u]=m:delete i[u],this}},a.exports=r,a.exports.TinyEmitter=r}},o={};function l(a){if(o[a])return o[a].exports;var r=o[a]={exports:{}};return n[a](r,r.exports,l),r.exports}return function(){l.n=function(a){var r=a&&a.__esModule?function(){return a.default}:function(){return a};return l.d(r,{a:r}),r}}(),function(){l.d=function(a,r){for(var u in r)l.o(r,u)&&!l.o(a,u)&&Object.defineProperty(a,u,{enumerable:!0,get:r[u]})}}(),function(){l.o=function(a,r){return Object.prototype.hasOwnProperty.call(a,r)}}(),l(686)}().default})})(M6);var Aie=jZ(M6.exports),Fie=e=>{const t=(e==null?void 0:e.appendToBody)===void 0?!0:e.appendToBody;return{toClipboard(n,o){return new Promise((l,a)=>{const r=document.createElement(\"button\"),u=new Aie(r,{text:()=>n,action:()=>\"copy\",container:o!==void 0?o:document.body});u.on(\"success\",s=>{u.destroy(),l(s)}),u.on(\"error\",s=>{u.destroy(),a(s)}),t&&document.body.appendChild(r),r.click(),t&&document.body.removeChild(r)})}}};function _i(e){Fie().toClipboard(e)}const xie=/^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){6}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^::([\\da-fA-F]{1,4}:){0,4}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:):([\\da-fA-F]{1,4}:){0,3}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){2}:([\\da-fA-F]{1,4}:){0,2}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){3}:([\\da-fA-F]{1,4}:){0,1}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){4}:((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){7}[\\da-fA-F]{1,4}$|^:((:[\\da-fA-F]{1,4}){1,6}|:)$|^[\\da-fA-F]{1,4}:((:[\\da-fA-F]{1,4}){1,5}|:)$|^([\\da-fA-F]{1,4}:){2}((:[\\da-fA-F]{1,4}){1,4}|:)$|^([\\da-fA-F]{1,4}:){3}((:[\\da-fA-F]{1,4}){1,3}|:)$|^([\\da-fA-F]{1,4}:){4}((:[\\da-fA-F]{1,4}){1,2}|:)$|^([\\da-fA-F]{1,4}:){5}:([\\da-fA-F]{1,4})?$|^([\\da-fA-F]{1,4}:){6}:$/;function $ie(e){return xie.test(e)}const Fd=[\"#status\",\"#log\",\"#whitelistset\",\"#whitelists\",\"#blacklists\",\"#set\",\"#login\",\"#ddns\",\"#ddnstasklist\",\"#ddnsset\",\"#about\",\"#reverseproxylist\",\"#ssl\",\"#portforward\",\"#portforwardset\"];function V6(e){for(let t in Fd)if(Fd[t]==e)return!0;return!1}const Die=z(\"\");function St(e){let t=e.split(`\n`),n=new Array;for(let o in t){let l=t[o].replace(/^\\s+|\\s+$/g,\"\").replace(/<\\/?.+?>/g,\"\").replace(/[\\r\\n]/g,\"\");l!=\"\"&&n.push(l)}return n}function Ra(e){var t=\"\";for(let n in e)t+=e[n]+\"<br />\";return t}function Xn(e){var t=\"\";for(let n in e)n!=\"0\"&&(t+=`\n`),t+=e[n];return t}const mi=[{value:2,label:\"Error\"},{value:3,label:\"Warn\"},{value:4,label:\"Info\"},{value:5,label:\"Debug\"},{value:6,label:\"Trace\"}],xd=e=>{if(e===0)return\"0 B\";var t=1e3,n=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],o=Math.floor(Math.log(e)/Math.log(t));return(e/Math.pow(t,o)).toPrecision(3)+\" \"+n[o]},Pn=e=>(ar(\"data-v-44f77ba6\"),e=e(),rr(),e),Bie={class:\"PageRadius\",style:{borderRadius:\"base\"}},Sie={class:\"itemradius\",style:{borderRadius:\"base\"}},kie=[\"innerHTML\"],Pie=[\"innerHTML\"],Lie=Pn(()=>f(\"br\",null,null,-1)),zie=Pn(()=>f(\"br\",null,null,-1)),Tie=Pn(()=>f(\"br\",null,null,-1)),Mie=Pn(()=>f(\"br\",null,null,-1)),Vie=Pn(()=>f(\"br\",null,null,-1)),Hie=Pn(()=>f(\"br\",null,null,-1)),Iie=Pn(()=>f(\"br\",null,null,-1)),Rie=Pn(()=>f(\"br\",null,null,-1)),Nie={class:\"dialogRadius\"},Oie={class:\"dialogRadius\"},Uie=Pn(()=>f(\"br\",null,null,-1)),Wie=Pn(()=>f(\"br\",null,null,-1)),qie=Pn(()=>f(\"br\",null,null,-1)),jie=Pn(()=>f(\"br\",null,null,-1)),Kie={class:\"dialog-footer\"},Gie=Le({__name:\"PortForward\",setup(e){const t=z(50),n=z(0),o=z([{ProxyKey:\"\",ClientIP:\"\",LogContent:\"\",LogTime:\"\"}]),l=z(\"\"),a=z(1),r=z(!1),u=z(\"\"),s=z(!1),i=z(!0),c=z([\"\"]),m=z(\"\"),h=z(!1),v=z(!1),g=[\"tcp4\",\"tcp6\",\"udp4\",\"udp6\"],y=S=>{W.value.ForwardTypes=S?[\"tcp\",\"udp\"]:[],c.value=S?[\"tcp4\",\"tcp6\",\"udp4\",\"udp6\"]:[],i.value=!1,ne(),ee()},A=S=>{const V=S.length;s.value=V===g.length,i.value=V>0&&V<g.length,W.value.ForwardTypes=Ee(S),ne(),ee()},w=S=>{let V=0;for(let O in S.ProxyList)V+=S.ProxyList[O].TrafficIn;return xd(V)},F=S=>{let V=0;for(let O in S.ProxyList)V+=S.ProxyList[O].TrafficOut;return xd(V)},E=S=>{for(let V in S.ForwardTypes)if(S.ForwardTypes[V].indexOf(\"tcp\")==0)return!0;return!1},$=S=>{for(let V in S.ForwardTypes)if(S.ForwardTypes[V].indexOf(\"udp\")==0)return!0;return!1},T=S=>{let V=0;for(let O in S.ProxyList)S.ProxyList[O].Proxy.indexOf(\"tcp\")==0&&(V+=S.ProxyList[O].CurrentConnections);return V},B=S=>{let V=0;for(let O in S.ProxyList)S.ProxyList[O].Proxy.indexOf(\"udp\")==0&&(V+=S.ProxyList[O].CurrentConnections);return V},P=S=>{var V=[\"\"];V.splice(0,1);for(let O of S){if(O==\"tcp\"){V.push(\"tcp4\"),V.push(\"tcp6\");continue}if(O==\"udp\"){V.push(\"udp4\"),V.push(\"udp6\");continue}V.push(O+\"\")}return V},H=S=>{for(let V in S.ForwardTypes)if(S.ForwardTypes[V].indexOf(\"udp\")!=-1)return!0;return!1},I=S=>{console.log(\"alterRule \"+S),we.value=\"alter\",W.value={Name:S.Name,Key:S.Key,ListenAddress:S.ListenAddress,ListenPorts:S.ListenPorts,TargetAddressList:S.TargetAddressList,TargetPorts:S.TargetPorts,ForwardTypes:S.ForwardTypes,Enable:S.Enable,LogLevel:S.LogLevel,LogOutputToConsole:S.LogOutputToConsole,AccessLogMaxNum:S.AccessLogMaxNum,WebListShowLastLogMaxCount:S.WebListShowLastLogMaxCount,Options:{SingleProxyMaxUDPReadTargetDatagoroutineCount:S.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount,SingleProxyMaxTCPConnections:S.Options.SingleProxyMaxTCPConnections,UDPPackageSize:S.Options.UDPPackageSize,UDPShortMode:S.Options.UDPShortMode==!0,UDPProxyPerformanceMode:S.Options.UDPProxyPerformanceMode==!0,SafeMode:S.Options.SafeMode}},c.value=P(S.ForwardTypes),m.value=Xn(S.TargetAddressList),ne(),ee(),Ae.value=\"\\u7F16\\u8F91\\u8F6C\\u53D1\\u89C4\\u5219\",$e.value=!0,ke.value=\"\\u786E\\u8BA4\\u4FEE\\u6539\"},j=S=>{var V=\"\";if(S.LastLogs==null||S.LastLogs.length==0)return V=\"\\u6682\\u65E0\\u65E5\\u5FD7\",V;for(var O in S.LastLogs){let te=S.LastLogs[O].LogTime,_e=S.LastLogs[O].LogContent;V+=te+\"&nbsp;&nbsp;&nbsp;\"+_e+\"<br />\"}return V==\"\"&&(V=\"\\u6682\\u65E0\\u65E5\\u5FD7\"),V},Z=S=>{r.value=!0,a.value=1,n.value=0,t.value=25,l.value=S,As(S,t.value,a.value).then(V=>{if(V.ret==0){t.value=V.pageSize,n.value=V.total,o.value=V.logs,fe();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(V=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+V),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},G=S=>{a.value=S-1},N=S=>{a.value=S+1},Y=S=>{t.value=S,a.value=1,As(l.value,t.value,a.value).then(V=>{if(V.ret==0){t.value=V.pageSize,n.value=V.total,o.value=V.logs,fe();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(V=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+V),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},ge=S=>{a.value=S,As(l.value,t.value,a.value).then(V=>{if(V.ret==0){t.value=V.pageSize,n.value=V.total,o.value=V.logs,fe();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(V=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+V),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},fe=()=>{u.value=\"\";for(let S in o.value){let V=o.value[S];u.value+=V.LogTime+\"\t\"+V.LogContent+`\n`}},Ee=S=>{var V=[\"\"];V.splice(0,1);let O=!1,te=!1,_e=!1,pe=!1,Ce=!1,be=!1;for(let re of S)switch(re){case\"tcp4\":O=!0;break;case\"tcp6\":te=!0;break;case\"udp4\":_e=!0;break;case\"udp6\":pe=!0;break}return O&&te&&(be=!0),_e&&pe&&(Ce=!0),be?V.push(\"tcp\"):O?V.push(\"tcp4\"):te&&V.push(\"tcp6\"),Ce?V.push(\"udp\"):_e?V.push(\"udp4\"):pe&&V.push(\"udp6\"),V};var ne=()=>{for(let S of W.value.ForwardTypes)if(S==\"udp4\"||S==\"udp6\"||S==\"udp\"){h.value=!0;return}h.value=!1},ee=()=>{for(let S of W.value.ForwardTypes)if(S==\"tcp4\"||S==\"tcp6\"||S==\"tcp\"){v.value=!0;return}v.value=!1},xe=z([{Name:\"\",Key:\"\",ForwardTypes:[\"\"],ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",Enable:!1,LogLevel:1,LogOutputToConsole:!1,AccessLogMaxNum:1024,WebListShowLastLogMaxCount:20,Options:{UDPPackageSize:1500,SingleProxyMaxUDPReadTargetDatagoroutineCount:64,SingleProxyMaxTCPConnections:128,UDPProxyPerformanceMode:!0,UDPShortMode:!0,SafeMode:\"blacklist\"}}]);xe.value.splice(0,1);const $e=z(!1),x=\"160px\",W=z({Name:\"\",Key:\"\",ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",ForwardTypes:[\"\"],Enable:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:20,Options:{SingleProxyMaxTCPConnections:128,SingleProxyMaxUDPReadTargetDatagoroutineCount:32,UDPPackageSize:1500,UDPShortMode:!0,UDPProxyPerformanceMode:!0,SafeMode:\"blacklist\"}}),we=z(\"\"),Ae=z(\"\"),ke=z(\"\"),ve=()=>{we.value=\"add\",W.value={Name:\"\",Key:\"\",ListenAddress:\"\",ListenPorts:\"\",TargetAddressList:[\"\"],TargetPorts:\"\",ForwardTypes:[\"tcp6\"],Enable:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1024,WebListShowLastLogMaxCount:20,Options:{SingleProxyMaxTCPConnections:256,SingleProxyMaxUDPReadTargetDatagoroutineCount:32,UDPPackageSize:1500,UDPShortMode:!1,UDPProxyPerformanceMode:!1,SafeMode:\"blacklist\"}},Ae.value=\"\\u6DFB\\u52A0\\u8F6C\\u53D1\\u89C4\\u5219\",$e.value=!0,ke.value=\"\\u6DFB\\u52A0\",c.value=[\"tcp6\"],ne(),ee()},ze=()=>{if(W.value.TargetAddressList=St(m.value),!!le())switch(we.value){case\"add\":console.log(JSON.stringify(W.value)),pie(W.value).then(S=>{if(S.ret==0){$e.value=!1,ie(\"success\",\"\\u89C4\\u5219\\u6DFB\\u52A0\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0\\u89C4\\u5219\\u5217\\u8868\"),L(),S.syncres!=null&&S.syncres!=\"\"&&to(\"warn\",S.syncres,0);return}ie(\"error\",S.msg)}).catch(S=>{console.log(\"\\u6DFB\\u52A0\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+S),ie(\"error\",\"\\u6DFB\\u52A0\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;case\"alter\":hie(W.value).then(S=>{if(S.ret==0){$e.value=!1,ie(\"success\",\"\\u89C4\\u5219\\u4FEE\\u6539\\u6210\\u529F\"),L(),S.syncres!=null&&S.syncres!=\"\"&&to(\"warn\",S.syncres,0);return}ie(\"error\",S.msg)}).catch(S=>{console.log(\"\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+S),ie(\"error\",\"\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break}},Ke=(S,V)=>{const O=S==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",te=\"[\"+V.Name+\"]\",_e=\"[\"+V.Mainconfigure+\"]\";return new Promise((pe,Ce)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\"+O+\"\\u89C4\\u5219 \"+te+\" \"+_e+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{_ie(V.Key,!S).then(be=>{if(be.ret==0){pe(!0),ie(\"success\",\"\\u89C4\\u5219 \"+te+\" \"+_e+O+\"\\u6210\\u529F\");return}pe(!1),ie(\"error\",\"\\u89C4\\u5219 \"+te+\" \"+_e+O+\"\\u5931\\u8D25\"),be.syncres!=null&&be.syncres!=\"\"&&to(\"warn\",be.syncres,0)}).catch(be=>{pe(!1),console.log(\"\\u89C4\\u5219 \"+te+\" \"+_e+O+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+be),ie(\"error\",\"\\u89C4\\u5219 \"+te+\" \"+_e+O+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{pe(!1)})})},se=S=>{const O=\"[\"+S.Name+\"]\";zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664\\u8F6C\\u53D1\\u89C4\\u5219 \"+O+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{console.log(\"\\u786E\\u8BA4\\u5220\\u9664 \"+O),vie(S.Key).then(te=>{te.ret==0?(L(),ie(\"success\",\"\\u5220\\u9664\\u6210\\u529F\"),te.syncres!=null&&te.syncres!=\"\"&&to(\"warn\",te.syncres,0)):ie(\"error\",te.msg)}).catch(te=>{console.log(\"\\u5220\\u9664\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+te),ie(\"error\",\"\\u5220\\u9664\\u89C4\\u5219\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{})},le=()=>W.value.ForwardTypes.length<=0?(qo(\"\\u8F6C\\u53D1\\u7C7B\\u578B\\u81F3\\u5C11\\u9009\\u62E9\\u4E00\\u7C7B\"),!1):W.value.ListenAddress.length!=0&&!$ie(W.value.ListenAddress)?(qo(\"\\u76D1\\u542C\\u5730\\u5740IP[\"+W.value.ListenAddress+\"]\\u683C\\u5F0F\\u6709\\u8BEF\"),!1):W.value.ListenPorts.length==0?(qo(`\\u76D1\\u542C\\u7AEF\\u53E3\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u7AEF\\u53E3\\u548C\\u7AEF\\u53E3\\u6216\\u8005\\u7AEF\\u53E3\\u548C\\u7AEF\\u53E3\\u8303\\u56F4\\u4E4B\\u95F4\\u7528\\u82F1\\u6587\\u72B6\\u6001\\u9017\\u53F7,\\u5206\\u5F00\n\\u4F8B\\u5982 [22,80,443,2000-2010]`),!1):W.value.TargetAddressList.length==0?(qo(\"\\u76EE\\u6807\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\"),!1):W.value.TargetPorts.length==0?(qo(\"\\u76EE\\u6807\\u7AEF\\u53E3\\u4E0D\\u80FD\\u4E3A\\u7A7A\"),!1):W.value.WebListShowLastLogMaxCount>64||W.value.WebListShowLastLogMaxCount<=0?(qo(\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570 \\u8303\\u56F41-64\"),!1):!0,L=()=>{fie().then(S=>{xe.value=S.list}).catch(S=>{console.log(\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+S),ie(\"error\",\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519\")})};return at(()=>{L(),setInterval(()=>{L()},2e3)}),(S,V)=>{const O=kn,te=Uu,_e=ga,pe=Sn,Ce=Qe(\"Download\"),be=ut,re=Qe(\"Upload\"),me=Qe(\"Connection\"),Re=Ou,Q=un,Pe=Qe(\"Plus\"),Ge=ha,Xe=yn,he=jn,Ie=$o,K=D4,ue=b2,q=y2,k=To,Me=ju,X=qu,de=qn,Fe=ma,At=Z4;return b(),C(\"div\",Bie,[d(Q,{height:\"100%\"},{default:p(()=>[(b(!0),C(We,null,pt(_(xe),De=>(b(),C(\"div\",Sie,[d(Re,{column:4,border:\"\"},{default:p(()=>[d(te,{label:\"\\u89C4\\u5219\\u540D\\u79F0\"},{default:p(()=>[ye(d(O,{size:\"default\"},{default:p(()=>[D(ce(De.Name==\"\"?\"\\u672A\\u547D\\u540D\\u89C4\\u5219\":De.Name),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(te,{label:\"\\u8F6C\\u53D1\\u7C7B\\u578B\"},{default:p(()=>[(b(!0),C(We,null,pt(De.ForwardTypes,Dt=>ye((b(),ae(O,{color:\"#0059b3\",size:\"small\"},{default:p(()=>[D(ce(Dt),1)]),_:2},1536)),[[Be,!0]])),256))]),_:2},1024),d(te,{label:\"\\u64CD\\u4F5C\",span:2},{default:p(()=>[d(pe,{content:De.Enable==!0?\"\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:p(()=>[d(_e,{modelValue:De.Enable,\"onUpdate:modelValue\":Dt=>De.Enable=Dt,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":Ke.bind(this,De.Enable,De),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),D(\" \\xA0\\xA0 \"),d(pe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:j(De)},null,8,kie)]),default:p(()=>[ye(d(O,{type:\"info\",plain:\"\",size:\"small\",onClick:Dt=>Z(De.Key)},{default:p(()=>[D(\" \\u65E5\\u5FD7 \")]),_:2},1032,[\"onClick\"]),[[Be,!0]])]),_:2},1024),d(O,{type:\"primary\",onClick:Dt=>I(De)},{default:p(()=>[D(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),d(O,{type:\"danger\",onClick:Dt=>se(De)},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),d(te,{label:\"\\u76D1\\u542CIP\"},{default:p(()=>[ye(d(O,{color:\"#D4D7DE\",size:\"small\"},{default:p(()=>[D(ce(De.ListenAddress==\"\"?\"\\u6240\\u6709IP\":De.ListenAddress),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(te,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\"},{default:p(()=>[ye(d(O,{color:\"#D4D7DE\",size:\"small\"},{default:p(()=>[D(ce(De.ListenPorts),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(te,{label:\"\\u5176\\u5B83\\u53C2\\u6570\",span:2},{default:p(()=>[d(pe,{class:\"box-item\",effect:\"dark\",content:\"\\u5B89\\u5168\\u6A21\\u5F0F\",placement:\"bottom\"},{default:p(()=>[ye(d(O,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(De.Options.SafeMode==\"whitelist\"?\"\\u767D\\u540D\\u5355\":\"\\u9ED1\\u540D\\u5355\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(pe,{class:\"box-item\",effect:\"dark\",content:\"\\u5355\\u7AEF\\u53E3TCP\\u6700\\u5927\\u8FDE\\u63A5\\u6570\",placement:\"bottom\"},{default:p(()=>[ye(d(O,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(De.Options.SingleProxyMaxTCPConnections),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(pe,{class:\"box-item\",effect:\"dark\",content:\"UDP\\u5305\\u6700\\u5927\\u957F\\u5EA6\",placement:\"bottom\"},{default:p(()=>[ye(d(O,{color:\"#626aef\",size:\"small\"},{default:p(()=>[D(ce(De.Options.UDPPackageSize),1)]),_:2},1536),[[Be,H(De)]])]),_:2},1024),d(pe,{class:\"box-item\",effect:\"dark\",content:De.Options.UDPProxyPerformanceMode==!0?\"UDP\\u6027\\u80FD\\u6A21\\u5F0F\\u5F00\\u542F\":\"\\u6027\\u80FD\\u6A21\\u5F0F\\u5173\\u95ED\",placement:\"bottom\"},{default:p(()=>[ye(d(O,{color:\"#626aef\",size:\"small\",disabled:De.Options.UDPProxyPerformanceMode!=!0},{default:p(()=>[D(\" \\u6027\\u80FD\\u6A21\\u5F0F \")]),_:2},1032,[\"disabled\"]),[[Be,H(De)]])]),_:2},1032,[\"content\"]),d(pe,{class:\"box-item\",effect:\"dark\",content:De.Options.UDPShortMode==!0?\"UDP\\u8F6C\\u53D1 shortMode\\u542F\\u7528\":\"UDP\\u8F6C\\u53D1 shortMode\\u7981\\u7528\",placement:\"bottom\"},{default:p(()=>[ye(d(O,{color:\"#626aef\",size:\"small\",disabled:De.Options.UDPShortMode!=!0},{default:p(()=>[D(\" ShortMode \")]),_:2},1032,[\"disabled\"]),[[Be,H(De)]])]),_:2},1032,[\"content\"])]),_:2},1024),d(te,{label:\"\\u76EE\\u6807\\u5730\\u5740\"},{default:p(()=>[d(pe,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:_(Ra)(De.TargetAddressList)},null,8,Pie)]),default:p(()=>[ye(d(O,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(De.TargetAddressList==null||De.TargetAddressList==null||De.TargetAddressList.length<=0?\"\\u672A\\u8BBE\\u7F6E\":De.TargetAddressList.length==1?De.TargetAddressList[0]:De.TargetAddressList[0]+\"...\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(te,{label:\"\\u76EE\\u6807\\u7AEF\\u53E3\"},{default:p(()=>[d(pe,{class:\"box-item oneLine\",effect:\"dark\",placement:\"bottom\",content:De.TargetPorts},{default:p(()=>[d(O,{color:\"#D4D7DE\",size:\"small\"},{default:p(()=>[D(ce(De.TargetPorts),1)]),_:2},1024)]),_:2},1032,[\"content\"])]),_:2},1024),d(te,{label:\"\\u7EDF\\u8BA1\",span:2},{default:p(()=>[d(pe,{class:\"box-item\",effect:\"dark\",content:\"\\u5DF2\\u63A5\\u6536 \"+w(De),placement:\"bottom\"},{default:p(()=>[d(O,{color:\"#F2F6FC\",size:\"small\"},{default:p(()=>[d(be,null,{default:p(()=>[d(Ce)]),_:1}),D(\" \"+ce(w(De)),1)]),_:2},1024)]),_:2},1032,[\"content\"]),d(pe,{class:\"box-item\",effect:\"dark\",content:\"\\u5DF2\\u53D1\\u9001 \"+F(De),placement:\"bottom\"},{default:p(()=>[d(O,{color:\"#F2F6FC\",size:\"small\"},{default:p(()=>[d(be,null,{default:p(()=>[d(re)]),_:1}),D(\" \"+ce(F(De)),1)]),_:2},1024)]),_:2},1032,[\"content\"]),d(pe,{class:\"box-item\",effect:\"dark\",content:\"\\u5F53\\u524DTCP\\u8FDE\\u63A5\\u6570 \"+T(De),placement:\"bottom\"},{default:p(()=>[E(De)?(b(),ae(O,{key:0,color:\"#F2F6FC\",size:\"small\"},{default:p(()=>[D(\" TCP\\xA0 \\xA0 \"),d(be,null,{default:p(()=>[d(me)]),_:1}),D(\" \"+ce(T(De)),1)]),_:2},1024)):oe(\"\",!0)]),_:2},1032,[\"content\"]),d(pe,{class:\"box-item\",effect:\"dark\",content:\"UDP\\u8F6C\\u53D1\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570 \"+B(De),placement:\"bottom\"},{default:p(()=>[$(De)?(b(),ae(O,{key:0,color:\"#F2F6FC\",size:\"small\"},{default:p(()=>[D(\" UDP\\xA0 \\xA0 \"),d(be,null,{default:p(()=>[d(me)]),_:1}),D(\" \"+ce(B(De)),1)]),_:2},1024)):oe(\"\",!0)]),_:2},1032,[\"content\"])]),_:2},1024)]),_:2},1024)]))),256))]),_:1}),d(Ge,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:p(()=>[d(O,{type:\"primary\",onClick:ve},{default:p(()=>[D(\"\\u6DFB\\u52A0\\u8F6C\\u53D1\\u89C4\\u5219 \"),d(be,null,{default:p(()=>[d(Pe)]),_:1})]),_:1})]),_:1}),d(Fe,{modelValue:$e.value,\"onUpdate:modelValue\":V[18]||(V[18]=De=>$e.value=De),title:Ae.value,draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"650px\"},{footer:p(()=>[f(\"span\",Kie,[d(O,{onClick:V[17]||(V[17]=De=>$e.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(O,{type:\"primary\",onClick:ze},{default:p(()=>[D(ce(ke.value),1)]),_:1})])]),default:p(()=>[d(de,{model:W.value},{default:p(()=>[d(he,{label:\"\\u540D\\u79F0\",\"label-width\":x},{default:p(()=>[d(Xe,{modelValue:W.value.Name,\"onUpdate:modelValue\":V[0]||(V[0]=De=>W.value.Name=De),placeholder:\"\\u8F6C\\u53D1\\u89C4\\u5219\\u540D\\u79F0\\uFF0C\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(he,{label:\"\\u8F6C\\u53D1\\u7C7B\\u578B\",\"label-width\":x},{default:p(()=>[d(Ie,{modelValue:s.value,\"onUpdate:modelValue\":V[1]||(V[1]=De=>s.value=De),indeterminate:i.value,onChange:y},{default:p(()=>[D(\"\\u5168\\u9009 \\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\")]),_:1},8,[\"modelValue\",\"indeterminate\"]),Lie,d(K,{modelValue:c.value,\"onUpdate:modelValue\":V[2]||(V[2]=De=>c.value=De),onChange:A},{default:p(()=>[(b(),C(We,null,pt(g,De=>d(Ie,{key:De,label:De},{default:p(()=>[D(ce(De),1)]),_:2},1032,[\"label\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),d(he,{label:\"\\u5B89\\u5168\\u6A21\\u5F0F\",\"label-width\":x},{default:p(()=>[d(q,{modelValue:W.value.Options.SafeMode,\"onUpdate:modelValue\":V[3]||(V[3]=De=>W.value.Options.SafeMode=De),class:\"ml-4\"},{default:p(()=>[d(ue,{label:\"blacklist\"},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\")]),_:1}),d(ue,{label:\"whitelist\"},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\\u6A21\\u5F0F\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),d(he,{label:\"\\u76D1\\u542C\\u5730\\u5740\",\"label-width\":x},{default:p(()=>[d(Xe,{modelValue:W.value.ListenAddress,\"onUpdate:modelValue\":V[4]||(V[4]=De=>W.value.ListenAddress=De),autocomplete:\"off\",placeholder:\"\\u7559\\u7A7A\\u8868\\u793A\\u76D1\\u542C\\u4EFB\\u610F\\u5730\\u5740,\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u591A\\u6570\\u60C5\\u51B5\\u4E0B\\u7559\\u7A7A\\u5373\\u53EF\"},null,8,[\"modelValue\"])]),_:1}),d(he,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",\"label-width\":x},{default:p(()=>[d(pe,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,2000-20010\"),zie,D(\" \\u8868\\u793A\\u76D1\\u542C80\\u7AEF\\u53E3,22\\u7AEF\\u53E3,20000-20010\\u8303\\u56F4\\u5185\\u768411\\u4E2A\\u7AEF\\u53E3\"),Tie]),default:p(()=>[d(Xe,{modelValue:W.value.ListenPorts,\"onUpdate:modelValue\":V[5]||(V[5]=De=>W.value.ListenPorts=De),autocomplete:\"off\",placeholder:\"\\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,20000-20010\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(he,{label:\"\\u76EE\\u6807\\u5730\\u5740\",\"label-width\":x},{default:p(()=>[d(pe,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u6CA1\\u7279\\u6B8A\\u9700\\u8981\\u586B\\u4E00\\u884C\\u5373\\u53EF\"),Mie,D(\" \\u591A\\u884C\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u6BCF\\u6B21\\u9009\\u62E9\\u4E0D\\u540C\\u7684\\u76EE\\u6807\\u5730\\u5740\"),Vie,D(\" \\u53EF\\u586B\\u5199IP\\u6216\\u8005\\u57DF\\u540D\"),Hie]),default:p(()=>[d(Xe,{modelValue:m.value,\"onUpdate:modelValue\":V[6]||(V[6]=De=>m.value=De),autosize:\"\",placeholder:\"\\u4E00\\u884C\\u586B\\u4E00\\u4E2A\\u5730\\u5740IP\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(he,{label:\"\\u76EE\\u6807\\u7AEF\\u53E3\",\"label-width\":x},{default:p(()=>[d(pe,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u591A\\u4E2A\\u7AEF\\u53E3\\u7528,\\u53F7\\u5206\\u5272,\\u7AEF\\u53E3\\u8303\\u56F4\\u7528-\\u8868\\u793A,\\u6BD4\\u5982 80,22,2000-20010\"),Iie,D(\" \\u8868\\u793A\\u76D1\\u542C80\\u7AEF\\u53E3,22\\u7AEF\\u53E3,20000-20010\\u8303\\u56F4\\u5185\\u768411\\u4E2A\\u7AEF\\u53E3\"),Rie]),default:p(()=>[d(Xe,{modelValue:W.value.TargetPorts,\"onUpdate:modelValue\":V[7]||(V[7]=De=>W.value.TargetPorts=De),autocomplete:\"off\",placeholder:\"\\u76D1\\u542C\\u7AEF\\u53E3\\u7684\\u6570\\u91CF\\u548C\\u76EE\\u6807\\u7AEF\\u53E3\\u7684\\u6570\\u91CF\\u8981\\u4E00\\u81F4\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",Nie,[d(he,{label:\"\\u5355\\u7AEF\\u53E3TCP\\u6700\\u5927\\u8FDE\\u63A5\\u6570\",\"label-width\":x},{default:p(()=>[d(k,{modelValue:W.value.Options.SingleProxyMaxTCPConnections,\"onUpdate:modelValue\":V[8]||(V[8]=De=>W.value.Options.SingleProxyMaxTCPConnections=De),min:1,max:65535},null,8,[\"modelValue\"])]),_:1})],512),[[Be,v.value]]),ye(f(\"div\",Oie,[ye(d(he,{label:\"\\u5355\\u7AEF\\u53E3UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570\\u9650\\u5236\",\"label-width\":\"auto\"},{default:p(()=>[d(k,{modelValue:W.value.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount,\"onUpdate:modelValue\":V[9]||(V[9]=De=>W.value.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount=De),min:0,max:4096},null,8,[\"modelValue\"]),D(\" \\xA0\\xA0\\xA0 \")]),_:1},512),[[Be,h.value]]),ye(d(he,{label:\"UDP\\u6700\\u5927\\u5305\\u957F\\u5EA6\",\"label-width\":x},{default:p(()=>[d(k,{modelValue:W.value.Options.UDPPackageSize,\"onUpdate:modelValue\":V[10]||(V[10]=De=>W.value.Options.UDPPackageSize=De),min:1,max:99999},null,8,[\"modelValue\"]),D(\" \\xA0\\xA0\\xA0 \")]),_:1},512),[[Be,h.value]]),d(he,{label:\"\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\"},{default:p(()=>[d(pe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u901A\\u8FC7\\u589E\\u52A0\\u534F\\u7A0B\\u6570\\u81F3\\u4E0ECPU\\u6838\\u6570\\u4E00\\u81F4\\u63D0\\u9AD8udp\\u5C0F\\u5305\\u8F6C\\u53D1\\u6027\\u80FD\"),Uie,D(\" \\u4E00\\u822C\\u60C5\\u51B5\\u4E0D\\u8981\\u5F00\\u542F\"),Wie]),default:p(()=>[d(Ie,{label:\"UDP\\u8F6C\\u53D1\\u6027\\u80FD\\u6A21\\u5F0F\",modelValue:W.value.Options.UDPProxyPerformanceMode,\"onUpdate:modelValue\":V[11]||(V[11]=De=>W.value.Options.UDPProxyPerformanceMode=De)},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(he,{label:\"\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\"},{default:p(()=>[d(pe,{class:\"box-item\",effect:\"dark\",content:\"DNS\\u8F6C\\u53D1\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\\u4EE5\\u8282\\u7EA6\\u8D44\\u6E90,\\u5176\\u5B83\\u573A\\u666F\\u81EA\\u884C\\u6D4B\\u8BD5\"},{default:p(()=>[d(Ie,{label:\"UDP short mode\",modelValue:W.value.Options.UDPShortMode,\"onUpdate:modelValue\":V[12]||(V[12]=De=>W.value.Options.UDPShortMode=De)},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,h.value]]),d(he,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":x},{default:p(()=>[d(X,{modelValue:W.value.LogLevel,\"onUpdate:modelValue\":V[13]||(V[13]=De=>W.value.LogLevel=De),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(!0),C(We,null,pt(_(mi),De=>(b(),ae(Me,{key:De.value,label:De.label,value:De.value},null,8,[\"label\",\"value\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),d(he,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":x},{default:p(()=>[d(_e,{modelValue:W.value.LogOutputToConsole,\"onUpdate:modelValue\":V[14]||(V[14]=De=>W.value.LogOutputToConsole=De),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),d(pe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),qie]),default:p(()=>[d(he,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":x,min:0,max:102400},{default:p(()=>[d(k,{modelValue:W.value.AccessLogMaxNum,\"onUpdate:modelValue\":V[15]||(V[15]=De=>W.value.AccessLogMaxNum=De),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(pe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(1-64)\"),jie]),default:p(()=>[d(he,{label:\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":x,min:1,max:64},{default:p(()=>[d(k,{modelValue:W.value.WebListShowLastLogMaxCount,\"onUpdate:modelValue\":V[16]||(V[16]=De=>W.value.WebListShowLastLogMaxCount=De),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"]),r.value?(b(),ae(Fe,{key:0,modelValue:r.value,\"onUpdate:modelValue\":V[19]||(V[19]=De=>r.value=De),\"close-on-click-modal\":!1,width:\"1100px\"},{default:p(()=>[f(\"div\",null,[d(Q,{\"max-height\":\"95vh\",class:\"portforwardLogs\",\"element-loading-background\":\"transparent\"},{default:p(()=>[D(ce(u.value),1)]),_:1}),d(At,{\"page-size\":t.value,\"page-sizes\":[10,25,50,100,200,300,400,500],small:!1,disabled:!1,background:!1,layout:\"total, sizes, prev, pager, next, jumper\",\"current-page\":a.value,total:n.value,onSizeChange:Y,onCurrentChange:ge,onPrevClick:G,onNextClick:N},null,8,[\"page-size\",\"current-page\",\"total\"])])]),_:1},8,[\"modelValue\"])):oe(\"\",!0)])}}});var Yie=wn(Gie,[[\"__scopeId\",\"data-v-44f77ba6\"]]);const V2=e=>(ar(\"data-v-ff97a846\"),e=e(),rr(),e),Xie={class:\"PageRadius\",style:{borderRadius:\"base\"}},Jie={class:\"InfoDivRadius\"},Qie={class:\"line\"},Zie=V2(()=>f(\"div\",{class:\"line\"},null,-1)),e2e={class:\"line\"},t2e={class:\"line\"},n2e=V2(()=>f(\"div\",{class:\"line\"},\" Lukcy\\u4EA4\\u6D41 QQ\\u7FA4:\\xA0\\xA0602427029 \",-1)),o2e={class:\"line\"},l2e={class:\"line\"},a2e=V2(()=>f(\"div\",{class:\"line\"},null,-1)),r2e=Le({__name:\"About\",setup(e){var t=z({AppName:\"Lucky\",Version:\"1.0.0\",OS:\"unknow\",ARCH:\"unknow\",Date:\"2022-07-25\",GoVersion:\"\"});const n=()=>{nie().then(o=>{if(o.ret==0){t.value=o.info;return}ie(\"error\",\"\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519\")}).catch(o=>{console.log(\"\\u83B7\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519:\"+o),ie(\"error\",\"\\u83B7\\u53D6App\\u4FE1\\u606F\\u51FA\\u9519\")})};return at(()=>{n()}),(o,l)=>{const a=j4;return b(),C(\"div\",Xie,[f(\"div\",Jie,[f(\"div\",Qie,ce(_(t).AppName)+\"\\xA0\\xA0\\xA0version:\"+ce(_(t).Version)+\"\\xA0 \"+ce(_(t).OS)+\"(\"+ce(_(t).ARCH)+\") \",1),Zie,f(\"div\",e2e,\" \\u4F5C\\u8005:\\u53E4\\u5927\\u7F8A \\xA0\"+ce(_(t).GoVersion)+\"\\xA0\\u7F16\\u8BD1\\u65F6\\u95F4:\"+ce(_(t).Date),1),f(\"div\",t2e,[d(a,{type:\"primary\",href:\"tencent://message/?uin=272288813&Site=&Menu=yes\",target:\"_blank\"},{default:p(()=>[D(\"QQ\\u8054\\u7CFB\\u4F5C\\u8005\")]),_:1}),D(\" \\xA0\\xA0\\xA0\\u90AE\\u7BB1: 272288813@qq.com \")]),n2e,f(\"div\",o2e,[D(\" Github\\xA0\\xA0\"),d(a,{type:\"primary\",href:\"https://github.com/gdy666/lucky\",target:\"_blank\"},{default:p(()=>[D(\"https://github.com/gdy666/lucky\")]),_:1})]),f(\"div\",l2e,[D(\" Gitee\\xA0\\xA0\"),d(a,{type:\"primary\",href:\"https://gitee.com/gdy666/lucky\",target:\"_blank\"},{default:p(()=>[D(\"https://gitee.com/gdy666/lucky\")]),_:1})]),f(\"div\",null,[D(\" \\u672C\\u9879\\u76EE\\u501F\\u9274\\u5F15\\u7528\\u6216\\u53C2\\u8003\\u7684\\u7B2C\\u4E09\\u65B9\\u5F00\\u6E90\\u9879\\u76EE: \"),d(a,{type:\"primary\",href:\"https://github.com/fatedier/frp\",target:\"_blank\"},{default:p(()=>[D(\"frp\")]),_:1}),D(),d(a,{type:\"primary\",href:\"https://github.com/jeessy2/ddns-go\",target:\"_blank\"},{default:p(()=>[D(\"ddns-go\")]),_:1})]),a2e])])}}});var u2e=wn(r2e,[[\"__scopeId\",\"data-v-ff97a846\"]]);const s2e={id:\"status\",\"element-loading-background\":\"transparent\"},i2e={class:\"status\"},c2e={class:\"status\"},d2e={class:\"status\"},f2e={class:\"status\"},p2e={class:\"status\"},v2e={class:\"status\"},h2e={class:\"status\"},_2e={class:\"status\"},m2e=Le({__name:\"status\",setup(e){const t=Ze(\"global\");var n=z(!0),o=z({totleMem:\"0m\",usedMem:\"0m\",unusedMem:\"0m\",usedCPU:\"0%\",currentProcessUsedCPU:\"0%\",goroutine:\"0\",processUsedMem:\"0m\",currentTCPConnections:0,currentUDPConnections:0,maxTCPConnections:0,proxysStatus:\"\",runTime:\"\"}),l;function a(){t.currentPage.value==\"#status\"&&Pse().then(r=>{n.value=!1,o.value=r.data})}return at(()=>{a(),l=setInterval(()=>{a()},3e3)}),Bo(()=>{clearInterval(l)}),(r,u)=>{const s=Ku;return ye((b(),C(\"div\",s2e,[f(\"p\",i2e,\"\\u603B\\u5185\\u5B58:\"+ce(_(o).totleMem)+\" \\u5DF2\\u7528:\"+ce(_(o).usedMem)+\" \\u672A\\u7528:\"+ce(_(o).unusedMem),1),f(\"p\",c2e,\"CPU\\u5168\\u5C40\\u4F7F\\u7528\\u7387:\"+ce(_(o).usedCPU),1),f(\"p\",d2e,\"\\u5F53\\u524D\\u8FDB\\u7A0BCPU\\u4F7F\\u7528\\u7387:\"+ce(_(o).currentProcessUsedCPU),1),f(\"p\",f2e,\"\\u8FDB\\u7A0B\\u534F\\u7A0B\\u6570:\"+ce(_(o).goroutine)+\" \\u5360\\u7528\\u5185\\u5B58:\"+ce(_(o).processUsedMem),1),f(\"p\",p2e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1TCP\\u603B\\u8FDE\\u63A5\\u6570:\"+ce(_(o).currentTCPConnections),1),f(\"p\",v2e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1\\u5168\\u5C40UDP\\u8BFB\\u53D6\\u76EE\\u6807\\u5730\\u5740\\u6570\\u636E\\u534F\\u7A0B\\u6570:\"+ce(_(o).currentUDPConnections),1),f(\"p\",h2e,\"\\u7AEF\\u53E3\\u8F6C\\u53D1TCP\\u5168\\u5C40\\u9650\\u5236\\u8FDE\\u63A5\\u6570:\"+ce(_(o).maxTCPConnections),1),f(\"p\",_2e,\"Lucky \\u542F\\u52A8\\u65F6\\u95F4:\"+ce(_(o).runTime),1)])),[[s,_(n)]])}}}),g2e=f(\"br\",null,null,-1),b2e=f(\"br\",null,null,-1),y2e=f(\"br\",null,null,-1),w2e=f(\"br\",null,null,-1),C2e=f(\"br\",null,null,-1),E2e=f(\"br\",null,null,-1),A2e=Le({__name:\"log\",setup(e){Ze(\"global\");var t=\"\",n=\"\";const o=z(\"\");var l=z(!0);function a(){Lse(t).then(u=>{if(l.value=!1,n!=u.starttime&&(o.value=\"\",n=u.starttime),u.logs!=null&&u.logs.length>0){t=u.logs[u.logs.length-1].timestamp,console.log(\"fff \"+u.logs[u.logs.length-1].log),console.log(\"\\u8FFD\\u52A0\\u65E5\\u5FD7 \"+t);for(var s=0;s<u.logs.length;s++)o.value+=u.logs[s].log+`\n`}})}var r;return at(()=>{a(),r=setInterval(()=>{a()},1e3)}),Bo(()=>{clearInterval(r)}),(u,s)=>{const i=un,c=Ku;return ye((b(),ae(i,{\"max-height\":\"95vh\",class:\"logtermv2\",\"element-loading-background\":\"transparent\"},{default:p(()=>[D(ce(o.value)+\" \",1),g2e,b2e,y2e,w2e,C2e,E2e]),_:1})),[[c,_(l)]])}}}),F2e=f(\"span\",null,\"\\u83DC\\u5355\",-1),x2e=f(\"span\",null,\"\\u7AEF\\u53E3\\u8F6C\\u53D1\",-1),$2e=f(\"span\",null,\"\\u53CD\\u5411\\u4EE3\\u7406\",-1),D2e=f(\"span\",null,\"\\u52A8\\u6001\\u57DF\\u540D\",-1),B2e=f(\"span\",null,\"IP\\u8FC7\\u6EE4\\u8BBE\\u7F6E\",-1),S2e=f(\"div\",{class:\"flex-grow\"},null,-1),k2e=Le({__name:\"pmenu\",setup(e){const t=Ze(\"global\"),n=z(\"#set\"),o=z(\"\");console.log(\"currentPage[menu]:\"+t.currentPage.value);const l=()=>{Jse().then(r=>{if(r.ret==0){o.value=r.version;return}}).catch(r=>{})};function a(r,u,s,i){switch(r){case\"#logout\":zt.confirm(\"\\u786E\\u5B9A\\u8981\\u6CE8\\u9500\\u767B\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u70B9\\u9519\\u4E86\",type:\"warning\"}).then(()=>{yd(r)}).catch(()=>{});break;case\"#logo\":location.hash=\"#about\";break;default:yd(r);break}}return at(()=>{l()}),(r,u)=>{const s=Qe(\"Menu\"),i=ut,c=Qe(\"DataAnalysis\"),m=moe,h=Qe(\"document\"),v=Kte,g=Qe(\"Position\"),y=Qe(\"List\"),A=goe,w=Qe(\"Connection\"),F=Qe(\"Promotion\"),E=Qe(\"Setting\"),$=Qe(\"Guide\"),T=Qe(\"Lock\"),B=Qe(\"setting\"),P=Qe(\"Pointer\"),H=Qe(\"Close\"),I=_oe;return b(),ae(I,{\"default-active\":n.value,class:\"el-menu-demo menu\",mode:\"horizontal\",ellipsis:!1,onSelect:a},{default:p(()=>[_(t).currentPage.value!=\"#login\"?(b(),ae(A,{key:0,index:\"#menu\"},{title:p(()=>[d(i,null,{default:p(()=>[d(s)]),_:1}),F2e]),default:p(()=>[d(m,{index:\"#status\"},{title:p(()=>[D(\"\\u603B\\u89C8\")]),default:p(()=>[d(i,null,{default:p(()=>[d(c)]),_:1})]),_:1}),d(m,{index:\"#log\"},{title:p(()=>[D(\"\\u7A0B\\u5E8F\\u65E5\\u5FD7\")]),default:p(()=>[d(i,null,{default:p(()=>[d(h)]),_:1})]),_:1}),d(v,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),d(A,{index:\"#relay\"},{title:p(()=>[d(i,null,{default:p(()=>[d(g)]),_:1}),x2e]),default:p(()=>[d(m,{index:\"#portforward\"},{title:p(()=>[D(\"\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1}),d(m,{index:\"#portforwardset\"},{title:p(()=>[D(\"\\u8BBE\\u7F6E\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1})]),_:1}),d(A,{index:\"#reverseproxy\"},{title:p(()=>[d(i,null,{default:p(()=>[d(w)]),_:1}),$2e]),default:p(()=>[d(m,{index:\"#reverseproxylist\"},{title:p(()=>[D(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1})]),_:1}),d(A,{index:\"#ddns\"},{title:p(()=>[d(i,null,{default:p(()=>[d(F)]),_:1}),D2e]),default:p(()=>[d(m,{index:\"#ddnstasklist\"},{title:p(()=>[D(\"\\u52A8\\u6001\\u57DF\\u540D\\u4EFB\\u52A1\\u5217\\u8868\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1}),d(m,{index:\"#ddnsset\"},{title:p(()=>[D(\"\\u52A8\\u6001\\u57DF\\u540D\\u8BBE\\u7F6E\")]),default:p(()=>[d(i,null,{default:p(()=>[d(E)]),_:1})]),_:1})]),_:1}),d(v,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),d(A,{index:\"#safe\"},{title:p(()=>[d(i,null,{default:p(()=>[d($)]),_:1}),B2e]),default:p(()=>[d(m,{index:\"#whitelistset\"},{title:p(()=>[D(\"\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\")]),default:p(()=>[d(i,null,{default:p(()=>[d(E)]),_:1})]),_:1}),d(m,{index:\"#whitelists\"},{title:p(()=>[D(\"\\u767D\\u540D\\u5355\\u5217\\u8868\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1}),d(m,{index:\"#blacklists\"},{title:p(()=>[D(\"\\u9ED1\\u540D\\u5355\\u5217\\u8868\")]),default:p(()=>[d(i,null,{default:p(()=>[d(y)]),_:1})]),_:1})]),_:1}),d(m,{index:\"#ssl\"},{title:p(()=>[D(\"SSL\\u8BC1\\u4E66\")]),default:p(()=>[d(i,null,{default:p(()=>[d(T)]),_:1})]),_:1}),d(m,{index:\"#set\"},{title:p(()=>[D(\"\\u8BBE\\u7F6E\")]),default:p(()=>[d(i,null,{default:p(()=>[d(B)]),_:1})]),_:1}),d(m,{index:\"#about\"},{title:p(()=>[D(\"\\u5173\\u4E8E\")]),default:p(()=>[d(i,null,{default:p(()=>[d(P)]),_:1})]),_:1}),d(v,{style:{\"margin-top\":\"0px\",\"margin-bottom\":\"0px\"}}),d(m,{index:\"#logout\"},{title:p(()=>[D(\"\\u9000\\u51FA\\u767B\\u5F55\")]),default:p(()=>[d(i,null,{default:p(()=>[d(H)]),_:1})]),_:1})]),_:1})):oe(\"\",!0),S2e,d(m,{index:\"#logo\"},{default:p(()=>[D(\"Lucky \"+ce(o.value),1)]),_:1})]),_:1},8,[\"default-active\"])}}});var H6={exports:{}};(function(e,t){(function(n,o){o()})(Hl,function(){function n(i,c){return typeof c==\"undefined\"?c={autoBom:!1}:typeof c!=\"object\"&&(console.warn(\"Deprecated: Expected third argument to be a object\"),c={autoBom:!c}),c.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(i.type)?new Blob([\"\\uFEFF\",i],{type:i.type}):i}function o(i,c,m){var h=new XMLHttpRequest;h.open(\"GET\",i),h.responseType=\"blob\",h.onload=function(){s(h.response,c,m)},h.onerror=function(){console.error(\"could not download file\")},h.send()}function l(i){var c=new XMLHttpRequest;c.open(\"HEAD\",i,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function a(i){try{i.dispatchEvent(new MouseEvent(\"click\"))}catch{var c=document.createEvent(\"MouseEvents\");c.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),i.dispatchEvent(c)}}var r=typeof window==\"object\"&&window.window===window?window:typeof self==\"object\"&&self.self===self?self:typeof Hl==\"object\"&&Hl.global===Hl?Hl:void 0,u=r.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=r.saveAs||(typeof window!=\"object\"||window!==r?function(){}:\"download\"in HTMLAnchorElement.prototype&&!u?function(i,c,m){var h=r.URL||r.webkitURL,v=document.createElement(\"a\");c=c||i.name||\"download\",v.download=c,v.rel=\"noopener\",typeof i==\"string\"?(v.href=i,v.origin===location.origin?a(v):l(v.href)?o(i,c,m):a(v,v.target=\"_blank\")):(v.href=h.createObjectURL(i),setTimeout(function(){h.revokeObjectURL(v.href)},4e4),setTimeout(function(){a(v)},0))}:\"msSaveOrOpenBlob\"in navigator?function(i,c,m){if(c=c||i.name||\"download\",typeof i!=\"string\")navigator.msSaveOrOpenBlob(n(i,m),c);else if(l(i))o(i,c,m);else{var h=document.createElement(\"a\");h.href=i,h.target=\"_blank\",setTimeout(function(){a(h)})}}:function(i,c,m,h){if(h=h||open(\"\",\"_blank\"),h&&(h.document.title=h.document.body.innerText=\"downloading...\"),typeof i==\"string\")return o(i,c,m);var v=i.type===\"application/octet-stream\",g=/constructor/i.test(r.HTMLElement)||r.safari,y=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((y||v&&g||u)&&typeof FileReader!=\"undefined\"){var A=new FileReader;A.onloadend=function(){var E=A.result;E=y?E:E.replace(/^data:[^;]*;/,\"data:attachment/file;\"),h?h.location.href=E:location=E,h=null},A.readAsDataURL(i)}else{var w=r.URL||r.webkitURL,F=w.createObjectURL(i);h?h.location=F:location.href=F,h=null,setTimeout(function(){w.revokeObjectURL(F)},4e4)}});r.saveAs=s.saveAs=s,e.exports=s})})(H6);var P2e=H6.exports;const Qu=e=>(ar(\"data-v-3da206be\"),e=e(),rr(),e),L2e={class:\"PageRadius\",style:{borderRadius:\"base\"}},z2e={class:\"formradius\",style:{borderRadius:\"base\"}},T2e={class:\"AdminListenDivRadius\"},M2e=Qu(()=>f(\"p\",null,\"\\u540E\\u53F0\\u7BA1\\u7406\\u5165\\u53E3\\u8BBE\\u7F6E\",-1)),V2e=Qu(()=>f(\"br\",null,null,-1)),H2e=Qu(()=>f(\"br\",null,null,-1)),I2e=Qu(()=>f(\"br\",null,null,-1)),R2e={class:\"AdminListenDivRadius\"},N2e={class:\"AdminListenDivRadius\"},O2e=Le({__name:\"pset\",setup(e){console.log(\"window.location.href \"+window.location.href),console.log(\"window.location.port \"+window.location.port),console.log(\"window.location.host \"+window.location.host),console.log(\"window.location \"+JSON.stringify(window.location));const t=z(!1),n=()=>window.location.protocol+\"//\"+window.location.hostname+\":\"+u.value.AdminWebListenPort,o=()=>{var g=\"/\";return g+\"api/configure\"},l=(g,y,A)=>{if(g.ret!=0){ie(\"error\",g.msg);return}console.log(\"restoreKey: \"+g.restoreConfigureKey);let w=g.file;zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5C06[\"+w+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E?\\u66FF\\u6362\\u5B8C\\u6210\\u540ELucky\\u4F1A\\u81EA\\u52A8\\u91CD\\u542F\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{oie(g.restoreConfigureKey).then(F=>{if(F.ret!=0){ie(\"error\",\"\\u5C06[\"+w+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u51FA\\u9519:\"+F.msg);return}ie(\"success\",\"\\u5C06[\"+w+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u6210\\u529F\"),setTimeout(()=>{window.location.href=window.location.protocol+\"//\"+window.location.hostname+\":\"+F.port},2e3)}).catch(F=>{console.log(\"\\u7F51\\u7EDC\\u51FA\\u9519:\"+F),ie(\"error\",\"\\u5C06[\"+g.file+\"]\\u66FF\\u6362\\u4E3ALucky\\u73B0\\u6709\\u914D\\u7F6E\\u51FA\\u9519:\"+F)})}).catch(()=>{})},a={AdminWebListenPort:1,AdminWebListenTLS:!1,AdminWebListenHttpsPort:16626,AdminAccount:\"\",AdminPassword:\"\",AllowInternetaccess:!1,LogMaxSize:1024},r=z(a),u=z(a),s=()=>{lie().then(g=>{if(g.ret!=0){ie(\"error\",\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519\");return}let y=new Blob([g.configure],{type:\"application/json\"});P2e.saveAs(y,\"lucky_\"+g.time+\".conf\")}).catch(g=>{console.log(\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519:\"+g),ie(\"error\",\"\\u83B7\\u53D6\\u914D\\u7F6E\\u51FA\\u9519\")})},i=()=>{r.value.AdminWebListenPort=u.value.AdminWebListenPort,r.value.AdminAccount=u.value.AdminAccount,r.value.AdminPassword=u.value.AdminPassword,r.value.AllowInternetaccess=u.value.AllowInternetaccess},c=g=>{u.value.AdminWebListenPort=g.value.AdminWebListenPort,u.value.AdminAccount=g.value.AdminAccount,u.value.AdminPassword=g.value.AdminPassword,u.value.AllowInternetaccess=g.value.AllowInternetaccess},m=()=>{t.value=!0,zt.confirm(\"\\u786E\\u5B9A\\u8981\\u91CD\\u542Flucky?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u70B9\\u9519\\u4E86\",type:\"warning\"}).then(()=>{Wse().then(g=>{ie(\"success\",\"\\u91CD\\u542F\\u6210\\u529F,3\\u79D2\\u540E\\u81EA\\u52A8\\u8DF3\\u8F6C\\u5230\\u65B0\\u767B\\u5F55\\u8FDE\\u63A5\"),setTimeout(()=>{window.location.href=n()},3e3)}).catch(g=>{t.value=!1,console.log(\"\\u91CD\\u542F\\u64CD\\u4F5C\\u51FA\\u9519:\"+g),ie(\"error\",\"\\u91CD\\u542F\\u64CD\\u4F5C\\u51FA\\u9519\")})}).catch(()=>{t.value=!1})},h=()=>{Ise().then(g=>{if(g.ret==0){r.value=g.baseconfigure,c(r);return}ie(\"error\",\"\\u83B7\\u53D6\\u57FA\\u672C\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(g=>{console.log(\"\\u83B7\\u53D6\\u8F6C\\u53D1\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+g),ie(\"error\",\"\\u83B7\\u53D6\\u57FA\\u672C\\u914D\\u7F6E\\u51FA\\u9519\")})},v=()=>{Nse(r.value).then(g=>{if(g.ret==0){ie(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\"),c(r);return}ie(\"error\",g.msg)}).catch(g=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+g),ie(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})};return at(()=>{h()}),(g,y)=>{const A=ga,w=jn,F=To,E=Sn,$=yn,T=qn,B=kn,P=v6,H=un;return b(),C(\"div\",L2e,[d(H,{height:\"100%\"},{default:p(()=>[f(\"div\",z2e,[d(T,{model:r.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:p(()=>[f(\"div\",T2e,[M2e,d(w,{label:\"\\u5916\\u7F51\\u8BBF\\u95EE\",id:\"adminListen\"},{default:p(()=>[d(A,{modelValue:r.value.AllowInternetaccess,\"onUpdate:modelValue\":y[0]||(y[0]=I=>r.value.AllowInternetaccess=I),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5141\\u8BB8\",\"inactive-text\":\"\\u7981\\u6B62\"},null,8,[\"modelValue\"])]),_:1}),d(w,{label:\"\\u7AEF\\u53E3(http)\",id:\"adminListen\"},{default:p(()=>[d(F,{modelValue:r.value.AdminWebListenPort,\"onUpdate:modelValue\":y[1]||(y[1]=I=>r.value.AdminWebListenPort=I),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(w,{label:\"TLS\\u7AEF\\u53E3(https)\",id:\"adminListen\"},{default:p(()=>[d(E,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5916\\u7F51\\u8BBF\\u95EE\\u65F6\\u5EFA\\u8BAE\\u4F7F\\u7528https\\u7AEF\\u53E3\\u8BBF\\u95EE\"),V2e,D(\" \\u81EA\\u884C\\u786E\\u8BA4\\u542F\\u7528\\u524D\\u5148\\u6DFB\\u52A0\\u5BF9\\u5E94\\u57DF\\u540D\\u7684SSL\\u8BC1\\u4E66\"),H2e,D(\" \\u4FDD\\u5B58\\u4FEE\\u6539\\u6216\\u589E\\u5220SSL\\u8BC1\\u4E66\\u540E\\u8BF7\\u624B\\u52A8\\u91CD\\u542F\\u7A0B\\u5E8F\\u4F7F\\u5F97\\u8BBE\\u7F6E\\u6216\\u8BC1\\u4E66\\u751F\\u6548\"),I2e]),default:p(()=>[d(A,{modelValue:r.value.AdminWebListenTLS,\"onUpdate:modelValue\":y[2]||(y[2]=I=>r.value.AdminWebListenTLS=I),class:\"mb-1\",\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(d(w,{label:\"\\u7AEF\\u53E3(https)\",id:\"adminListen\"},{default:p(()=>[d(F,{modelValue:r.value.AdminWebListenHttpsPort,\"onUpdate:modelValue\":y[3]||(y[3]=I=>r.value.AdminWebListenHttpsPort=I),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},512),[[Be,r.value.AdminWebListenTLS]])]),f(\"div\",R2e,[d(w,{label:\"\\u7BA1\\u7406\\u767B\\u5F55\\u8D26\\u53F7\",id:\"adminAccount\"},{default:p(()=>[d($,{modelValue:r.value.AdminAccount,\"onUpdate:modelValue\":y[4]||(y[4]=I=>r.value.AdminAccount=I),placeholder:\"\\u7BA1\\u7406\\u767B\\u5F55\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),d(w,{label:\"\\u7BA1\\u7406\\u767B\\u5F55\\u5BC6\\u7801\",id:\"adminPassword\"},{default:p(()=>[d($,{modelValue:r.value.AdminPassword,\"onUpdate:modelValue\":y[5]||(y[5]=I=>r.value.AdminPassword=I),placeholder:\"\\u7BA1\\u7406\\u767B\\u5F55\\u5BC6\\u7801\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),f(\"div\",N2e,[d(w,{label:\"\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",id:\"logMaxSize\"},{default:p(()=>[d(F,{modelValue:r.value.LogMaxSize,\"onUpdate:modelValue\":y[6]||(y[6]=I=>r.value.LogMaxSize=I),autocomplete:\"off\",min:1024,max:40960},null,8,[\"modelValue\"])]),_:1})])]),_:1},8,[\"model\"]),d(B,{type:\"primary\",round:\"\",onClick:v},{default:p(()=>[D(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1}),d(B,{type:\"info\",round:\"\",onClick:i},{default:p(()=>[D(\"\\u64A4\\u9500\\u6539\\u52A8\")]),_:1}),d(B,{type:\"danger\",round:\"\",onClick:m,disabled:t.value},{default:p(()=>[D(\"\\u91CD\\u542F\\u7A0B\\u5E8F\")]),_:1},8,[\"disabled\"]),d(B,{type:\"success\",round:\"\",onClick:s},{default:p(()=>[D(\"\\u5907\\u4EFD\\u914D\\u7F6E\")]),_:1}),d(P,{class:\"inline-block\",action:o(),\"show-file-list\":!1,headers:{Authorization:_(lt)()},limit:1,\"on-success\":l},{default:p(()=>[d(B,{round:\"\",class:\"margin-change\"},{default:p(()=>[D(\"\\u6062\\u590D\\u914D\\u7F6E\")]),_:1})]),_:1},8,[\"action\",\"headers\"])])]),_:1})])}}});var U2e=wn(O2e,[[\"__scopeId\",\"data-v-3da206be\"]]);const W2e={class:\"PageRadius\",style:{borderRadius:\"base\"}},q2e={class:\"formradius\",style:{borderRadius:\"base\"}},j2e=Le({__name:\"login\",setup(e){const t=z(!0),n=Ze(\"global\"),o=z({Account:\"\",Password:\"\"}),l=i=>{a(i)},a=i=>{if(n.storage.setItem(\"rememberPassword\",i),i){n.storage.setItem(\"loginAccount\",o.value.Account),n.storage.setItem(\"loginPassword\",o.value.Password);return}n.storage.setItem(\"loginAccount\",\"\"),n.storage.setItem(\"loginPassword\",\"\")},r=()=>{let i=n.storage.getItem(\"rememberPassword\");t.value=!(i==null||i==!1),i&&(o.value.Account=n.storage.getItem(\"loginAccount\")==null?\"\":n.storage.getItem(\"loginAccount\"),o.value.Password=n.storage.getItem(\"loginPassword\")==null?\"\":n.storage.getItem(\"loginPassword\"))},u=()=>{if(o.value.Account==\"\"||o.value.Password==\"\"){ie(\"error\",\"\\u8D26\\u53F7\\u6216\\u5BC6\\u7801\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}a(t.value),Use(o.value).then(i=>{if(i.ret==0){ie(\"success\",\"\\u767B\\u5F55\\u6210\\u529F\"),n.storage.setItem(\"token\",i.token),location.hash=\"#set\";return}ie(\"error\",i.msg)}).catch(i=>{console.log(\"\\u767B\\u5F55\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ie(\"error\",\"\\u767B\\u5F55\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})},s=i=>{if(i.keyCode==13&&n.currentPage.value==\"#login\"){u();return}};return at(()=>{window.addEventListener(\"keydown\",s),r()}),(i,c)=>{const m=yn,h=jn,v=$o,g=qn,y=kn;return b(),C(\"div\",W2e,[f(\"div\",q2e,[d(g,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:p(()=>[d(h,{label:\"\\u7BA1\\u7406\\u8D26\\u53F7\",id:\"account\"},{default:p(()=>[d(m,{modelValue:o.value.Account,\"onUpdate:modelValue\":c[0]||(c[0]=A=>o.value.Account=A),placeholder:\"\\u7BA1\\u7406\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),d(h,{label:\"\\u7BA1\\u7406\\u5BC6\\u7801\",id:\"account\"},{default:p(()=>[d(m,{\"show-password\":\"\",modelValue:o.value.Password,\"onUpdate:modelValue\":c[1]||(c[1]=A=>o.value.Password=A),placeholder:\"\\u7BA1\\u7406\\u5BC6\\u7801\",autocomplete:\"off\",style:{witdh:\"390px\"}},null,8,[\"modelValue\"])]),_:1}),d(h,null,{default:p(()=>[d(v,{modelValue:t.value,\"onUpdate:modelValue\":c[2]||(c[2]=A=>t.value=A),label:\"\\u8BB0\\u4F4F\\u5BC6\\u7801\",size:\"large\",onChange:l},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"]),d(y,{type:\"primary\",round:\"\",onClick:u},{default:p(()=>[D(\"\\u767B\\u5F55\")]),_:1})])])}}});var K2e=wn(j2e,[[\"__scopeId\",\"data-v-ee7bc046\"]]);const G2e={class:\"PageRadius\",style:{borderRadius:\"base\"}},Y2e={class:\"formradius\",style:{borderRadius:\"base\"}},X2e={class:\"whitelistConfigure\"},J2e=Le({__name:\"WhiteListSet\",setup(e){const t=z({URL:\"\",ActivelifeDuration:36,BasicAccount:\"\",BasicPassword:\"\"}),n=z({URL:\"\",ActivelifeDuration:36,BasicAccount:\"\",BasicPassword:\"\"}),o=R(()=>n.value.URL==null||n.value.URL==\"\"?window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl\":window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl/\"+n.value.URL),l=R(()=>t.value.URL==null||t.value.URL==\"\"?window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl\":window.location.protocol+\"//\"+window.location.hostname+\":\"+window.location.port+\"/wl/\"+t.value.URL),a=s=>{_i(s),ie(\"success\",\"\\u767D\\u540D\\u5355\\u8BA4\\u8BC1\\u5730\\u5740 \"+s+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\")},r=()=>{qse(t.value).then(s=>{if(s.ret==0){ie(\"success\",\"\\u4FDD\\u5B58\\u6210\\u529F\"),n.value=t.value;return}ie(\"error\",s.msg)}).catch(s=>{ie(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\\u51FA\\u9519\")})},u=()=>{jse().then(s=>{if(s.ret==0){t.value=z(s.data).value,n.value.URL=t.value.URL,n.value.ActivelifeDuration=t.value.ActivelifeDuration,n.value.BasicAccount=t.value.BasicAccount,n.value.BasicPassword=t.value.BasicPassword;return}ie(\"error\",s.msg)}).catch(s=>{ie(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u8BBE\\u7F6E\\u51FA\\u9519\")})};return at(()=>{u()}),(s,i)=>{const c=yn,m=kn,h=Sn,v=jn,g=To,y=qn,A=un;return b(),C(\"div\",G2e,[d(A,{height:\"100%\"},{default:p(()=>[f(\"div\",Y2e,[f(\"div\",X2e,[d(y,{model:t.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:p(()=>[d(v,{label:\"\\u81EA\\u5B9A\\u4E49URL\",id:\"whitelisturl\"},{default:p(()=>[d(c,{modelValue:t.value.URL,\"onUpdate:modelValue\":i[0]||(i[0]=w=>t.value.URL=w),placeholder:\"\\u81EA\\u5B9A\\u4E49URL\",autocomplete:\"off\",style:{witdh:\"250px\",\"margin-bottom\":\"4px\"}},null,8,[\"modelValue\"]),d(h,{class:\"box-item oneLine\",effect:\"dark\",placement:\"bottom\",content:_(o)},{default:p(()=>[d(m,{type:\"info\",round:\"\",onClick:i[1]||(i[1]=w=>a(_(o))),style:{\"margin-right\":\"10px\"}},{default:p(()=>[D(\"\\u590D\\u5236\")]),_:1})]),_:1},8,[\"content\"]),f(\"a\",null,ce(_(l)),1)]),_:1}),d(v,{label:\"\\u6709\\u6548\\u65F6\\u957F(\\u5C0F\\u65F6)\",id:\"whitelistActivelifeDuration\"},{default:p(()=>[d(g,{modelValue:t.value.ActivelifeDuration,\"onUpdate:modelValue\":i[2]||(i[2]=w=>t.value.ActivelifeDuration=w),autocomplete:\"off\",min:1,max:99999},null,8,[\"modelValue\"])]),_:1}),d(v,{label:\"\\u8BA4\\u8BC1\\u8D26\\u53F7\",id:\"basicAccount\"},{default:p(()=>[d(c,{modelValue:t.value.BasicAccount,\"onUpdate:modelValue\":i[3]||(i[3]=w=>t.value.BasicAccount=w),placeholder:\"\\u8BA4\\u8BC1\\u8D26\\u53F7\",autocomplete:\"off\",style:{witdh:\"250px\"}},null,8,[\"modelValue\"])]),_:1}),d(v,{label:\"\\u8BA4\\u8BC1\\u5BC6\\u7801\",id:\"basicPassword\"},{default:p(()=>[d(c,{modelValue:t.value.BasicPassword,\"onUpdate:modelValue\":i[4]||(i[4]=w=>t.value.BasicPassword=w),placeholder:\"\\u8BA4\\u8BC1\\u5BC6\\u7801\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"]),d(m,{type:\"primary\",round:\"\",onClick:r},{default:p(()=>[D(\"\\u4FDD\\u5B58\\u914D\\u7F6E\")]),_:1})])])]),_:1})])}}});var Q2e=wn(J2e,[[\"__scopeId\",\"data-v-52b01d33\"]]);const Z2e={class:\"PageRadius\",style:{borderRadius:\"base\"}},ece={class:\"formradius\",style:{borderRadius:\"base\"}},tce={class:\"dialog-footer\"},nce=Le({__name:\"WhiteLists\",setup(e){var t=z([{IP:\"\",Effectivetime:\"\"}]);t.value.splice(0,1);const n=z(!1),o=z({IP:\"\",Life:0}),l=()=>{n.value=!0,o.value.IP=\"\",o.value.Life=24},a=(m,h,v,g)=>{zt.confirm(g,\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{r(m,h.IP,v)}).catch(()=>{})},r=(m,h,v)=>{wd(h,v).then(g=>{if(g.ret==0){t.value[m].Effectivetime=g.data;return}ie(\"error\",g.msg)}).catch(g=>{console.log(\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519 \"+g),ie(\"error\",\"\\u5237\\u65B0IP[\"+h+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},u=()=>{wd(o.value.IP,o.value.Life).then(m=>{if(m.ret==0){let h={IP:o.value.IP,Effectivetime:m.data};t.value.push(h),n.value=!1;return}ie(\"error\",m.msg)}).catch(m=>{console.log(\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519 \"+m),ie(\"error\",\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},s=(m,h)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664IP [\"+h.IP+\"]\\u7684\\u767D\\u540D\\u5355\\u8BB0\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Gse(h.IP).then(v=>{if(v.ret==0){t.value.splice(m,1);return}ie(\"error\",v.msg)}).catch(v=>{ie(\"error\",\"\\u5220\\u9664[\"+h.IP+\"]\\u7684\\u767D\\u540D\\u5355\\u8BB0\\u5F55\\u51FA\\u9519\")})}).catch(()=>{})},i=()=>{Kse().then(m=>{if(m.ret==0){m.data!=null?t.value=m.data:t.value=[];return}ie(\"error\",m.msg)}).catch(m=>{ie(\"error\",\"\\u67E5\\u8BE2\\u767D\\u540D\\u5355\\u5217\\u8868\\u51FA\\u9519\")})},c=m=>{m.keyCode==13&&(!n.value||u())};return at(()=>{i(),window.addEventListener(\"keydown\",c)}),(m,h)=>{const v=Qe(\"Plus\"),g=ut,y=kn,A=ha,w=c6,F=i6,E=un,$=yn,T=jn,B=To,P=qn,H=ma;return b(),C(\"div\",Z2e,[d(A,{position:\"bottom\",offset:0,class:\"affix-container\"},{default:p(()=>[d(y,{type:\"primary\",onClick:l},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\\u6DFB\\u52A0 \"),d(g,null,{default:p(()=>[d(v)]),_:1})]),_:1})]),_:1}),d(E,{height:\"100%\"},{default:p(()=>[f(\"div\",ece,[d(F,{data:_(t),style:{width:\"700px\"},height:\"85vh\"},{default:p(()=>[d(w,{prop:\"IP\",label:\"IP\",width:\"200\"}),d(w,{prop:\"Effectivetime\",label:\"\\u6709\\u6548\\u65F6\\u95F4\",width:\"200\"}),d(w,{fixed:\"right\",label:\"\\u64CD\\u4F5C\",width:\"300\"},{default:p(I=>[d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>a(I.$index,_(t)[I.$index],0,\"\\u786E\\u8BA4\\u8981\\u5237\\u65B0IP[\"+_(t)[I.$index].IP+\"]\\u7684\\u6709\\u6548\\u65F6\\u95F4?\")},{default:p(()=>[D(\" \\u5237\\u65B0\\u6709\\u6548\\u65F6\\u95F4\")]),_:2},1032,[\"onClick\"]),d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>a(I.$index,_(t)[I.$index],666666,\"\\u786E\\u8BA4\\u8981\\u8BBE\\u7F6EIP[\"+_(t)[I.$index].IP+\"]\\u4E3A\\u957F\\u671F\\u6709\\u6548?\")},{default:p(()=>[D(\" \\u8BBE\\u7F6E\\u6C38\\u4E45\\u6709\\u6548\")]),_:2},1032,[\"onClick\"]),d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>s(I.$index,_(t)[I.$index])},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:1})]),_:1},8,[\"data\"])])]),_:1}),d(H,{modelValue:n.value,\"onUpdate:modelValue\":h[3]||(h[3]=I=>n.value=I),title:\"\\u6DFB\\u52A0\\u767D\\u540D\\u5355IP\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:p(()=>[f(\"span\",tce,[d(y,{onClick:h[2]||(h[2]=I=>n.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(y,{type:\"primary\",onClick:u},{default:p(()=>[D(\"\\u6DFB\\u52A0\")]),_:1})])]),default:p(()=>[d(P,{model:o.value},{default:p(()=>[d(T,{label:\"IP\",\"label-width\":\"auto\"},{default:p(()=>[d($,{modelValue:o.value.IP,\"onUpdate:modelValue\":h[0]||(h[0]=I=>o.value.IP=I),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(T,{label:\"\\u6709\\u6548\\u65F6\\u95F4(\\u5C0F\\u65F6)\",\"label-width\":\"auto\"},{default:p(()=>[d(B,{modelValue:o.value.Life,\"onUpdate:modelValue\":h[1]||(h[1]=I=>o.value.Life=I),min:1,max:999999},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])])}}});var oce=wn(nce,[[\"__scopeId\",\"data-v-d9c87ebe\"]]);const lce={class:\"PageRadius\",style:{borderRadius:\"base\"}},ace={class:\"formradius\",style:{borderRadius:\"base\"}},rce={class:\"dialog-footer\"},uce=Le({__name:\"BlackLists\",setup(e){var t=z([{IP:\"\",Effectivetime:\"\"}]);t.value.splice(0,1);const n=z(!1),o=z({IP:\"\",Life:0}),l=()=>{n.value=!0,o.value.IP=\"\",o.value.Life=666666},a=(m,h,v,g)=>{zt.confirm(g,\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{r(m,h.IP,v)}).catch(()=>{})},r=(m,h,v)=>{Cd(h,v).then(g=>{if(g.ret==0){t.value[m].Effectivetime=g.data;return}ie(\"error\",g.msg)}).catch(g=>{ie(\"error\",\"\\u5237\\u65B0IP[\"+h+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},u=()=>{Cd(o.value.IP,o.value.Life).then(m=>{if(m.ret==0){let h={IP:o.value.IP,Effectivetime:m.data};t.value.push(h),n.value=!1;return}ie(\"error\",m.msg)}).catch(m=>{ie(\"error\",\"\\u5237\\u65B0IP[\"+o.value.IP+\"]\\u6709\\u6548\\u65F6\\u95F4\\u51FA\\u9519\")})},s=(m,h)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664IP [\"+h.IP+\"]\\u7684\\u9ED1\\u540D\\u5355\\u8BB0\\u5F55?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Xse(h.IP).then(v=>{if(v.ret==0){t.value.splice(m,1);return}ie(\"error\",v.msg)}).catch(v=>{ie(\"error\",\"\\u5220\\u9664[\"+h.IP+\"]\\u7684\\u9ED1\\u540D\\u5355\\u8BB0\\u5F55\\u51FA\\u9519\")})}).catch(()=>{})},i=()=>{Yse().then(m=>{if(m.ret==0){m.data!=null?t.value=m.data:t.value=[];return}ie(\"error\",m.msg)}).catch(m=>{ie(\"error\",\"\\u67E5\\u8BE2\\u9ED1\\u540D\\u5355\\u5217\\u8868\\u51FA\\u9519\")})},c=m=>{m.keyCode==13&&(!n.value||u())};return at(()=>{i(),window.addEventListener(\"keydown\",c)}),(m,h)=>{const v=Qe(\"Plus\"),g=ut,y=kn,A=ha,w=c6,F=i6,E=un,$=yn,T=jn,B=To,P=qn,H=ma;return b(),C(\"div\",lce,[d(A,{position:\"top\",offset:0,class:\"affix-container\"},{default:p(()=>[d(y,{type:\"primary\",onClick:l},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\\u6DFB\\u52A0 \"),d(g,null,{default:p(()=>[d(v)]),_:1})]),_:1})]),_:1}),d(E,{height:\"100%\"},{default:p(()=>[f(\"div\",ace,[d(F,{data:_(t),style:{width:\"700px\"},height:\"85vh\"},{default:p(()=>[d(w,{prop:\"IP\",label:\"IP\",width:\"200\"}),d(w,{prop:\"Effectivetime\",label:\"\\u6709\\u6548\\u65F6\\u95F4\",width:\"200\"}),d(w,{fixed:\"right\",label:\"\\u64CD\\u4F5C\",width:\"300\"},{default:p(I=>[d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>a(I.$index,_(t)[I.$index],0,\"\\u786E\\u8BA4\\u8981\\u5237\\u65B0IP[\"+_(t)[I.$index].IP+\"]\\u7684\\u6709\\u6548\\u65F6\\u95F4?\")},{default:p(()=>[D(\" \\u5237\\u65B0\\u6709\\u6548\\u65F6\\u95F4\")]),_:2},1032,[\"onClick\"]),d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>a(I.$index,_(t)[I.$index],666666,\"\\u786E\\u8BA4\\u8981\\u8BBE\\u7F6EIP[\"+_(t)[I.$index].IP+\"]\\u4E3A\\u957F\\u671F\\u6709\\u6548?\")},{default:p(()=>[D(\" \\u8BBE\\u7F6E\\u6C38\\u4E45\\u6709\\u6548\")]),_:2},1032,[\"onClick\"]),d(y,{link:\"\",type:\"primary\",size:\"small\",onClick:j=>s(I.$index,_(t)[I.$index])},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:1})]),_:1},8,[\"data\"])])]),_:1}),d(H,{modelValue:n.value,\"onUpdate:modelValue\":h[3]||(h[3]=I=>n.value=I),title:\"\\u6DFB\\u52A0\\u9ED1\\u540D\\u5355IP\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:p(()=>[f(\"span\",rce,[d(y,{onClick:h[2]||(h[2]=I=>n.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(y,{type:\"primary\",onClick:u},{default:p(()=>[D(\"\\u6DFB\\u52A0\")]),_:1})])]),default:p(()=>[d(P,{model:o.value},{default:p(()=>[d(T,{label:\"IP\",\"label-width\":\"auto\"},{default:p(()=>[d($,{modelValue:o.value.IP,\"onUpdate:modelValue\":h[0]||(h[0]=I=>o.value.IP=I),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(T,{label:\"\\u6709\\u6548\\u65F6\\u95F4(\\u5C0F\\u65F6)\",\"label-width\":\"auto\"},{default:p(()=>[d(B,{modelValue:o.value.Life,\"onUpdate:modelValue\":h[1]||(h[1]=I=>o.value.Life=I),min:1,max:999999},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])])}}});var sce=wn(uce,[[\"__scopeId\",\"data-v-4c99c1a8\"]]);const Oe=e=>(ar(\"data-v-0efebb96\"),e=e(),rr(),e),ice={class:\"PageRadius\",style:{borderRadius:\"base\"}},cce={class:\"itemradius\",style:{borderRadius:\"base\"}},dce=[\"innerHTML\"],fce={key:0},pce=[\"innerHTML\"],vce=[\"innerHTML\"],hce=[\"innerHTML\"],_ce=[\"innerHTML\"],mce={class:\"fromitemDivRadius\"},gce=Oe(()=>f(\"p\",null,\"DNS\\u670D\\u52A1\\u5546\\u8BBE\\u7F6E\",-1)),bce={class:\"fromitemChildDivRadius\"},yce={key:0},wce={key:1},Cce={key:2},Ece={key:3},Ace={key:4},Fce={key:5},xce={key:6},$ce=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u652F\\u6301\\u7684\\u53D8\\u91CF #{ip}, #{domain}, #{recordType}, #{ttl}\",-1)),Dce=Oe(()=>f(\"br\",null,null,-1)),Bce={class:\"fromitemChildDivRadius\"},Sce={key:0,style:{\"font-size\":\"small\"}},kce={key:1,style:{\"font-size\":\"small\"}},Pce={key:2,style:{\"font-size\":\"small\"}},Lce={key:3,style:{\"font-size\":\"small\"}},zce=Oe(()=>f(\"br\",null,null,-1)),Tce=Oe(()=>f(\"br\",null,null,-1)),Mce=Oe(()=>f(\"br\",null,null,-1)),Vce=Oe(()=>f(\"br\",null,null,-1)),Hce=Oe(()=>f(\"br\",null,null,-1)),Ice=Oe(()=>f(\"br\",null,null,-1)),Rce=Oe(()=>f(\"br\",null,null,-1)),Nce=Oe(()=>f(\"br\",null,null,-1)),Oce=Oe(()=>f(\"br\",null,null,-1)),Uce=Oe(()=>f(\"br\",null,null,-1)),Wce=Oe(()=>f(\"br\",null,null,-1)),qce=Oe(()=>f(\"br\",null,null,-1)),jce=Oe(()=>f(\"br\",null,null,-1)),Kce=Oe(()=>f(\"br\",null,null,-1)),Gce=Oe(()=>f(\"br\",null,null,-1)),Yce=Oe(()=>f(\"br\",null,null,-1)),Xce=Oe(()=>f(\"br\",null,null,-1)),Jce=Oe(()=>f(\"br\",null,null,-1)),Qce=Oe(()=>f(\"br\",null,null,-1)),Zce=Oe(()=>f(\"br\",null,null,-1)),e0e=Oe(()=>f(\"br\",null,null,-1)),t0e=Oe(()=>f(\"br\",null,null,-1)),n0e=Oe(()=>f(\"br\",null,null,-1)),o0e={class:\"fromitemChildDivRadius\"},l0e=Oe(()=>f(\"p\",null,\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u989D\\u5916\\u8BBE\\u7F6E\",-1)),a0e={class:\"fromitemChildDivRadius\"},r0e=Oe(()=>f(\"p\",null,\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u4EE3\\u7406\\u8BBE\\u7F6E\",-1)),u0e={class:\"fromitemChildDivRadius\"},s0e={class:\"fromitemDivRadius\"},i0e={key:0},c0e={key:1},d0e={class:\"fromitemDivRadius\"},f0e={class:\"fromitemChildDivRadius\"},p0e={style:{color:\"blue\"}},v0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" \\u652F\\u6301\\u81EA\\u5B9A\\u4E49webhook \",-1)),h0e={style:{color:\"blue\"}},_0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" https://sctapi.ftqq.com/[SendKey].send?title=\\u4E3B\\u4EBAIP\\u53D8\\u4E86#{ipAddr},\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86#{ipAddr},\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomains},\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomains} \",-1)),m0e={style:{color:\"blue\"}},g0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" https://api.day.app/[YOUR_KEY]/\\u4E3B\\u4EBAIP\\u53D8\\u4E86#{ipAddr},\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86#{ipAddr},\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomains},\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomains} \",-1)),b0e={style:{color:\"blue\"}},y0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u9489\\u9489\\u7535\\u8111\\u7AEF -> \\u7FA4\\u8BBE\\u7F6E -> \\u667A\\u80FD\\u7FA4\\u52A9\\u624B -> \\u6DFB\\u52A0\\u673A\\u5668\\u4EBA -> \\u81EA\\u5B9A\\u4E49\",-1)),w0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u53EA\\u52FE\\u9009\\u81EA\\u5B9A\\u4E49\\u5173\\u952E\\u8BCD,\\u8F93\\u5165\\u7684\\u5173\\u952E\\u5B57\\u5FC5\\u987B\\u5305\\u542B\\u5728RequestBody\\u7684content\\u4E2D,\\u5982:\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86 \",-1)),C0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),E0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),A0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),F0e={style:{color:\"blue\"}},x0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u98DE\\u4E66\\u7535\\u8111\\u7AEF -> \\u7FA4\\u8BBE\\u7F6E -> \\u6DFB\\u52A0\\u673A\\u5668\\u4EBA -> \\u81EA\\u5B9A\\u4E49\\u673A\\u5668\\u4EBA\",-1)),$0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\" \\u5B89\\u5168\\u8BBE\\u7F6E\\u53EA\\u52FE\\u9009\\u81EA\\u5B9A\\u4E49\\u5173\\u952E\\u8BCD,\\u8F93\\u5165\\u7684\\u5173\\u952E\\u5B57\\u5FC5\\u987B\\u5305\\u542B\\u5728RequestBody\\u7684content\\u4E2D,\\u5982\\uFF1A\\u4F60\\u7684\\u516C\\u7F51IP\\u53D8\\u4E86\",-1)),D0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"StatusCode\":0,\"StatusMessage\":\"success\"}',-1)),B0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),S0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"StatusCode\":0,\"StatusMessage\":\"success\"} ',-1)),k0e={style:{color:\"blue\"}},P0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u4E0B\\u8F7D\\u4F01\\u4E1A\\u5FAE\\u4FE1\\u2192\\u5DE6\\u4E0A\\u89D2\\u4E09\\u6A2A\\u6760\\u2192\\u5168\\u65B0\\u521B\\u5EFA\\u4F01\\u4E1A\\u2192\\u4E2A\\u4EBA\\u7EC4\\u4EF6\\u56E2\\u961F(\\u521B\\u5EFA\\u4E2A\\u4EBA\\u7684\\u4F01\\u4E1A\\u7FA4\\u804A)\",-1)),L0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u8FDB\\u5165\\u7FA4\\u804A\\u6DFB\\u52A0 [\\u7FA4\\u673A\\u5668\\u4EBA] \\u590D\\u5236\\u673A\\u5668\\u4EBAWebhook\\u5730\\u5740\",-1)),z0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},\"\\u65B9\\u6CD5\\u8BF7\\u6C42\\u9009\\u62E9POST,RequestBody \\u793A\\u4F8B\\u5982\\u4E0B\",-1)),T0e=Oe(()=>f(\"p\",{style:{\"font-size\":\"1px\"}},'\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u586B\\u5165 {\"errcode\":0,\"errmsg\":\"ok\"}',-1)),M0e={class:\"fromitemChildDivRadius\"},V0e=Oe(()=>f(\"br\",null,null,-1)),H0e=Oe(()=>f(\"br\",null,null,-1)),I0e=Oe(()=>f(\"br\",null,null,-1)),R0e=Oe(()=>f(\"br\",null,null,-1)),N0e=Oe(()=>f(\"br\",null,null,-1)),O0e=Oe(()=>f(\"br\",null,null,-1)),U0e=Oe(()=>f(\"br\",null,null,-1)),W0e=Oe(()=>f(\"br\",null,null,-1)),q0e=Oe(()=>f(\"br\",null,null,-1)),j0e=Oe(()=>f(\"br\",null,null,-1)),K0e=Oe(()=>f(\"br\",null,null,-1)),G0e=Oe(()=>f(\"br\",null,null,-1)),Y0e=Oe(()=>f(\"br\",null,null,-1)),X0e=Oe(()=>f(\"br\",null,null,-1)),J0e=Oe(()=>f(\"br\",null,null,-1)),Q0e=Oe(()=>f(\"br\",null,null,-1)),Z0e=Oe(()=>f(\"br\",null,null,-1)),ede=Oe(()=>f(\"br\",null,null,-1)),tde=Oe(()=>f(\"br\",null,null,-1)),nde=Oe(()=>f(\"br\",null,null,-1)),ode=Oe(()=>f(\"br\",null,null,-1)),lde=Oe(()=>f(\"br\",null,null,-1)),ade=Oe(()=>f(\"br\",null,null,-1)),rde=Oe(()=>f(\"br\",null,null,-1)),ude=Oe(()=>f(\"br\",null,null,-1)),sde=Oe(()=>f(\"br\",null,null,-1)),ide=Oe(()=>f(\"br\",null,null,-1)),cde=Oe(()=>f(\"br\",null,null,-1)),dde=Oe(()=>f(\"br\",null,null,-1)),fde={class:\"fromitemChildDivRadius\"},pde={class:\"fromitemDivRadius\",style:{\"padding-top\":\"10px\"}},vde={class:\"dialog-footer\"},hde=Le({__name:\"DDNS\",setup(e){const t=z(!1),n=z(\"\"),o=q=>{t.value=!0,n.value=q};var l=z({IPv6NewInterfaces:[{NetInterfaceName:\"\",AddressList:[\"\"]}],IPv4NewInterfaces:[{NetInterfaceName:\"\",AddressList:[\"\"]}]}),a=z([{NetInterfaceName:\"\",AddressList:[\"\"]}]),r=z([{TaskName:\"\",TaskKey:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:20,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:600,ResolverDoaminCheck:!1,DNSServerList:[\"\"],HttpClientProxyType:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\",TaskState:{WebhookCallTime:\"\",WebhookCallResult:!1,WebhookCallErrorMsg:\"\",IPAddrHistory:[{IPaddr:\"\",RecordTime:\"\"}],WebhookCallHistroy:[{CallTime:\"\",CallResult:\"\"}],IpAddr:\"\",Domains:[{DomainName:\"\",SubDomain:\"\",UpdateStatus:\"\",LastUpdateStatusTime:\"\",Message:\"\",UpdateHistroy:[{UpdateStatus:\"\",UpdateTime:\"\"}]}]}}]);r.value.splice(0,1);const u=z(\"\"),s=z(\"\"),i=z(\"\");u.value=' <el-link type=\"info\">info</el-link>';const c=[{value:\"\",label:\"\\u7981\\u7528\"},{value:\"http\",label:\"HTTP\"},{value:\"https\",label:\"HTTPS\"},{value:\"socks5\",label:\"SOCKS5\"}],m=[{value:\"\",label:\"\\u7981\\u7528\"},{value:\"dns\",label:\"\\u4F7F\\u7528DNS\\u670D\\u52A1\\u5546\\u540C\\u6837\\u8BBE\\u7F6E\"},{value:\"http\",label:\"HTTP\"},{value:\"https\",label:\"HTTPS\"},{value:\"socks5\",label:\"SOCKS5\"}],h=[{value:\"\",label:\"\\u81EA\\u52A8\"},{value:\"1\",label:\"1\\u79D2\"},{value:\"5\",label:\"5\\u79D2\"},{value:\"10\",label:\"10\\u79D2\"},{value:\"60\",label:\"1\\u5206\\u949F\"},{value:\"120\",label:\"2\\u5206\\u949F\"},{value:\"600\",label:\"10\\u5206\\u949F\"},{value:\"1800\",label:\"30\\u5206\\u949F\"},{value:\"3600\",label:\"1\\u5C0F\\u65F6\"}],v=q=>{for(let k in h)if(h[k].value==q)return h[k].label;return q+\"\\u79D2\"},g=[{value:\"meibu\",label:\"\\u6BCF\\u6B65\"},{value:\"noip\",label:\"No-IP\"},{value:\"dynv6\",label:\"Dynv6\"},{value:\"dynu\",label:\"Dynu\"},{value:\"other\",label:\"\\u5176\\u5B83\"}],y=[{value:\"\",label:\"tcp\"},{value:\"tcp4\",label:\"tcp4\"},{value:\"tcp6\",label:\"tcp6\"}],A=()=>{console.log(\"WebHookTest\");let q={WebhookURL:x.value.WebhookURL,WebhookMethod:x.value.WebhookMethod,WebhookRequestBody:x.value.WebhookRequestBody,WebhookProxy:x.value.WebhookProxy,WebhookProxyAddr:x.value.WebhookProxyAddr,WebhookProxyUser:x.value.WebhookProxyUser,WebhookProxyPassword:x.value.WebhookProxyPassword,WebhookHeaders:St(ke.value),WebhookSuccessContent:St(ve.value)};tie($e.value,q).then(k=>{if(k.ret==0){console.log(\"apiWebhookTest: \"+JSON.stringify(k));let Me=`Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u7ED3\\u679C:\n`+k.msg;Me+=`\n\n\n`,Me+=`Web\\u63A5\\u53E3\\u53CD\\u9988\\u7684\\u5B8C\\u6574\\u5185\\u5BB9:\n`+k.Response,o(Me);return}ie(\"error\",k.msg)}).catch(k=>{console.log(\"webhook\\u63A5\\u53E3\\u8C03\\u7528\\u51FA\\u9519,error:\"+k),ie(\"error\",\"webhook\\u63A5\\u53E3\\u8C03\\u7528\\u51FA\\u9519\")})},w=q=>{for(let k in g)if(g[k].value==q)return g[k].label;return\"\\u672A\\u652F\\u6301\\u7684DNSCallbackServerLaber\"},F=[\"[2001:4860:4860::8888]:53\",\"[2001:4860:4860::8844]:53\",\"[2606:4700:4700::64]:53\",\"[2606:4700:4700::6400]:53\",\"[240C::6666]:53\",\"[240C::6644]:53\",\"[2402:4e00::]:53\",\"[240e:4c:4008::1]:53\",\"[240e:4c:4808::1]:53\",\"[2408:8899::8]:53\",\"[2408:8888::8]:53\",\"[2409:8088::a]:53\",\"[2409:8088::b]:53\",\"[2001:dc7:1000::1]:53\",\"[2400:da00::6666]:53\"],E=[\"1.1.1.1:53\",\"1.2.4.8:53\",\"8.8.8.8:53\",\"9.9.9.9:53\",\"8.8.4.4:53\",\"114.114.114.114:53\",\"223.5.5.5:53\",\"223.6.6.6:53\",\"101.226.4.6:53\",\"218.30.118.6:53\",\"119.28.28.28:53\"],$=[{value:\"serverjiang\",label:\"Server\\u9171\"},{value:\"bark\",label:\"Bark\"},{value:\"dingding\",label:\"\\u9489\\u9489\"},{value:\"feishu\",label:\"\\u98DE\\u4E66\"},{value:\"weixinpro\",label:\"\\u4F01\\u4E1A\\u5FAE\\u4FE1\"},{value:\"custom\",label:\"\\u81EA\\u5B9A\\u4E49\"}],T=[{value:\"alidns\",label:\"Alidns(\\u963F\\u91CC\\u4E91)\"},{value:\"baiducloud\",label:\"\\u767E\\u5EA6\\u4E91\"},{value:\"cloudflare\",label:\"Cloudflare\"},{value:\"dnspod\",label:\"Dnspod(\\u817E\\u8BAF\\u4E91)\"},{value:\"huaweicloud\",label:\"\\u534E\\u4E3A\\u4E91\"},{value:\"porkbun\",label:\"Porkbun\"},{value:\"callback\",label:\"\\u81EA\\u5B9A\\u4E49(Callback)\"}],B=[{value:\"get\",label:\"GET\"},{value:\"post\",label:\"POST\"},{value:\"put\",label:\"PUT\"}],P=q=>{let k=\"\";for(let Me in q){let X=q[Me].IPaddr;X==\"\"&&(X=\"\\u83B7\\u53D6IP\\u5931\\u8D25\"),k+=q[Me].RecordTime+\"&nbsp; &nbsp; &nbsp;\"+X+\"<br />\"}return k},H=q=>{let k=\"\";for(let Me in q){let X=q[Me].UpdateStatus;k+=q[Me].UpdateTime+\"&nbsp; &nbsp; &nbsp;\"+X+\"<br />\"}return k},I=q=>{let k=\"\\u4EC5\\u8BB0\\u5F55\\u7A0B\\u5E8F\\u672C\\u6B21\\u542F\\u52A8\\u4EE5\\u6765\\u7684Webhook\\u8C03\\u7528\\u8BB0\\u5F55<br />\";for(let Me in q){let X=q[Me].CallResult;k+=q[Me].CallTime+\"&nbsp; &nbsp; &nbsp;\"+X+\"<br />\"}return k},j=q=>{switch(q){case\"dingding\":let k={msgtype:\"markdown\",markdown:{title:\"DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988\",text:`#### DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988 \n - IP\\u5730\\u5740\\uFF1A#{ipAddr} \n - \\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{successDomainsLine}\n - \\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomainsLine}\n - Webhook\\u89E6\\u53D1\\u65F6\\u95F4:  \n  #{time}`}};i.value=JSON.stringify(k,null,2);break;case\"feishu\":let Me={msg_type:\"post\",content:{post:{zh_cn:{title:\"DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988\",content:[[{tag:\"text\",text:\"IP\\u5730\\u5740\\uFF1A#{ipAddr}\"}],[{tag:\"text\",text:\"\\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A#{su.ccessDomainsLine}\"}],[{tag:\"text\",text:\"\\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A#{failedDomainsLine}\"}],[{tag:\"text\",text:`Webhook\\u89E6\\u53D1\\u65F6\\u95F4: \n#{time}`}]]}}}};i.value=JSON.stringify(Me,null,2);break;case\"weixinpro\":let X={msgtype:\"markdown\",markdown:{content:`#### DDNS\\u57DF\\u540D\\u540C\\u6B65\\u53CD\\u9988 \n##### IP\\u5730\\u5740\\uFF1A\n#{ipAddr} \n##### \\u57DF\\u540D\\u66F4\\u65B0\\u6210\\u529F\\u5217\\u8868\\uFF1A\n#{successDomainsLine}\n##### \\u57DF\\u540D\\u66F4\\u65B0\\u5931\\u8D25\\u5217\\u8868\\uFF1A\n#{failedDomainsLine}\n##### Webhook\\u89E6\\u53D1\\u65F6\\u95F4: \n#{time}`}};i.value=JSON.stringify(X,null,2);break}},Z=(q,k)=>{let Me=q==\"\"?k:q+\".\"+k;_i(Me),ie(\"success\",\"\\u57DF\\u540D \"+Me+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\")},G=q=>{q!=\"\"&&(_i(q),ie(\"success\",\"IP \"+q+\" \\u5DF2\\u590D\\u5236\\u5230\\u526A\\u5207\\u677F\"))},N=()=>{eie(x.value.TaskType,x.value.NetInterface,x.value.IPReg).then(q=>{if(q.ret==0){console.log(\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u7ED3\\u679C:\"+q.ip);let k=\"\";q.ip==\"\"?k=\"IP\\u9009\\u62E9\\u5339\\u914D\\u4E0D\\u5230\\u4EFB\\u4F55IP\":k=\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u7ED3\\u679C: \"+q.ip,qo(k);return}ie(\"error\",\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519\")}).catch(q=>{console.log(\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519:\"+q),ie(\"error\",\"IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5\\u51FA\\u9519\")})},Y=q=>{for(let k in T)if(T[k].value==q.Name)return q.Name!=\"callback\"?T[k].label:w(q.Callback.Server)+\" (\\u81EA\\u5B9A\\u4E49)\";return\"\\u672A\\u77E5DNS\\u670D\\u52A1\\u5546\"},ge=()=>{switch(x.value.DNS.Name){case\"alidns\":return\"AccessKey ID\";case\"dnspod\":return\"ID\";case\"cloudflare\":return\"\";case\"huaweicloud\":return\"Access Key Id\";case\"baiducloud\":return\"AccessKey ID\";case\"porkbun\":return\"API Key\";case\"callback\":return\"URL\";default:return\"\\u672A\\u652F\\u6301\\u670D\\u52A1\\u5546\\u7C7B\\u578B\"}},fe=()=>{switch(x.value.DNS.Name){case\"alidns\":return\"AccessKey Secret\";case\"dnspod\":return\"Token\";case\"cloudflare\":return\"Token\";case\"huaweicloud\":return\"Secret Access Key\";case\"baiducloud\":return\"AccessKey Secret\";case\"porkbun\":return\"Secret Key\";case\"callback\":return\"RequestBody\";default:return\"\\u672A\\u652F\\u6301\\u670D\\u52A1\\u5546\\u7C7B\\u578B\"}},Ee=()=>{switch(x.value.DNS.Name){case\"alidns\":return!0;case\"dnspod\":return!0;case\"cloudflare\":return!1;case\"huaweicloud\":return!0;case\"baiducloud\":return!0;case\"porkbun\":return!0;case\"callback\":return!1;default:return!1}},ne=()=>{switch(x.value.DNS.Name){case\"alidns\":return!0;case\"dnspod\":return!0;case\"cloudflare\":return!0;case\"huaweicloud\":return!0;case\"baiducloud\":return!0;case\"porkbun\":return!0;case\"callback\":return!1;default:return!1}},ee=q=>{console.log(\"ddnsTaskTypeChange label:\"+q),x.value.TaskType!=W.value.TaskType?(x.value.URL=[],x.value.DNS.DNSServerList=[]):(x.value.URL=W.value.URL,x.value.DNS.DNSServerList=W.value.DNS.DNSServerList),Ae.value=Q(),ze.value=Pe(),be()},xe=z(!1),$e=z(\"\"),x=z({TaskName:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:60,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!1,CallAPINetwork:\"\",DNSServerList:[\"\"],HttpClientProxyType:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookCallOnGetIPfail:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\"}),W=z({TaskName:\"\",TaskType:\"IPv6\",Enable:!0,GetType:\"url\",URL:[\"\"],NetInterface:\"\",IPReg:\"\",Domains:[\"\"],HttpClientTimeout:20,DNS:{Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!1,DNSServerList:[\"\"],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"\",Headers:[\"\"],RequestBody:\"\",Server:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[\"\"]}},WebhookEnable:!1,WebhookCallOnGetIPfail:!1,WebhookURL:\"\",WebhookMethod:\"\",WebhookHeaders:[\"\"],WebhookRequestBody:\"\",WebhookDisableCallbackSuccessContentCheck:!1,WebhookSuccessContent:[\"\"],WebhookProxy:\"\",WebhookProxyAddr:\"\",WebhookProxyUser:\"\",WebhookProxyPassword:\"\",TTL:\"\"}),we=z(\"\"),Ae=z(\"\"),ke=z(\"\"),ve=z(\"\"),ze=z(\"\"),Ke=z(\"\"),se=z(\"\"),le=z(\"\"),L=[\"https://4.ipw.cn\",\"http://v4.ip.zxinc.org/getip\",\"https://myip4.ipip.net\",\"https://www.taobao.com/help/getip.php\",\"https://ddns.oray.com/checkip\",\"https://ip.3322.net\",\"https://v4.myip.la\"],S=[\"https://6.ipw.cn\",\"https://ipv6.ddnspod.com\",\"http://v6.ip.zxinc.org/getip\",\"https://speed.neu6.edu.cn/getIP.php\",\"https://v6.ident.me\",\"https://v6.myip.la\"],V=(q,k)=>{s.value=\"\",be(),le.value=q,q==\"add\"?(x.value.TaskName=\"\",x.value.TaskType=\"IPv6\",x.value.Enable=!0,x.value.GetType=\"url\",x.value.URL=S,x.value.NetInterface=\"\",x.value.IPReg=\"\",x.value.Domains=[\"\"],x.value.HttpClientTimeout=20,x.value.DNS={Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!0,DNSServerList:[],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"get\",Headers:[\"\"],RequestBody:\"\",Server:\"other\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[]}},x.value.WebhookEnable=!1,x.value.WebhookCallOnGetIPfail=!1,x.value.WebhookURL=\"\",x.value.WebhookMethod=\"get\",x.value.WebhookHeaders=[],x.value.WebhookRequestBody=\"\",x.value.WebhookDisableCallbackSuccessContentCheck=!1,x.value.WebhookSuccessContent=[],x.value.WebhookProxy=\"\",x.value.WebhookProxyAddr=\"\",x.value.WebhookProxyUser=\"\",x.value.WebhookProxyPassword=\"\",x.value.TTL=\"\",Ae.value=Q(),ze.value=Pe(),ke.value=he(),ke.value=\"\",ve.value=\"\",se.value=\"\",Ke.value=\"\",W.value.TaskName=\"\",W.value.TaskType=\"IPv6\",W.value.Enable=!0,W.value.GetType=\"url\",W.value.URL=St(Ae.value),W.value.NetInterface=\"\",W.value.IPReg=\"\",W.value.Domains=[\"\"],W.value.HttpClientTimeout=20,W.value.DNS={Name:\"alidns\",ID:\"\",Secret:\"\",ForceInterval:3600,ResolverDoaminCheck:!0,DNSServerList:[],HttpClientProxyType:\"\",CallAPINetwork:\"\",HttpClientProxyAddr:\"\",HttpClientProxyUser:\"\",HttpClientProxyPassword:\"\",Callback:{URL:\"\",Method:\"get\",Headers:[\"\"],RequestBody:\"\",DisableCallbackSuccessContentCheck:!1,CallbackSuccessContent:[],Server:\"other\"}},W.value.WebhookEnable=!1,W.value.WebhookCallOnGetIPfail=!1,W.value.WebhookURL=\"\",W.value.WebhookMethod=\"get\",W.value.WebhookHeaders=[],W.value.WebhookRequestBody=\"\",W.value.WebhookDisableCallbackSuccessContentCheck=!1,W.value.WebhookSuccessContent=[],W.value.WebhookProxy=\"\",W.value.WebhookProxyAddr=\"\",W.value.WebhookProxyUser=\"\",W.value.WebhookProxyPassword=\"\",W.value.TTL=\"\"):(x.value.TaskName=k.TaskName,x.value.TaskType=k.TaskType,x.value.Enable=k.Enable,x.value.GetType=k.GetType,x.value.URL=k.URL,x.value.NetInterface=k.NetInterface,x.value.IPReg=k.IPReg,x.value.Domains=k.Domains,x.value.HttpClientTimeout=k.HttpClientTimeout,x.value.DNS={Name:k.DNS.Name,ID:k.DNS.ID,Secret:k.DNS.Secret,ForceInterval:k.DNS.ForceInterval,ResolverDoaminCheck:k.DNS.ResolverDoaminCheck,DNSServerList:k.DNS.DNSServerList,HttpClientProxyType:k.DNS.HttpClientProxyType,CallAPINetwork:k.DNS.CallAPINetwork,HttpClientProxyAddr:k.DNS.HttpClientProxyAddr,HttpClientProxyUser:k.DNS.HttpClientProxyUser,HttpClientProxyPassword:k.DNS.HttpClientProxyPassword,Callback:{URL:k.DNS.Callback.URL,Method:k.DNS.Callback.Method,Headers:k.DNS.Callback.Headers,RequestBody:k.DNS.Callback.RequestBody,Server:k.DNS.Callback.Server,DisableCallbackSuccessContentCheck:k.DNS.Callback.DisableCallbackSuccessContentCheck,CallbackSuccessContent:k.DNS.Callback.CallbackSuccessContent}},x.value.WebhookEnable=k.WebhookEnable,x.value.WebhookCallOnGetIPfail=k.WebhookCallOnGetIPfail,x.value.WebhookURL=k.WebhookURL,x.value.WebhookRequestBody=k.WebhookRequestBody,x.value.WebhookMethod=k.WebhookMethod,x.value.WebhookHeaders=k.WebhookHeaders,x.value.WebhookDisableCallbackSuccessContentCheck=k.WebhookDisableCallbackSuccessContentCheck,x.value.WebhookSuccessContent=k.WebhookSuccessContent,x.value.WebhookProxy=k.WebhookProxy,x.value.WebhookProxyAddr=k.WebhookProxyAddr,x.value.WebhookProxyUser=k.WebhookProxyUser,x.value.WebhookProxyPassword=k.WebhookProxyPassword,x.value.TTL=k.TTL,Ae.value=Q(),se.value=Ge(),we.value=Xe(),Ke.value=Ie(),ze.value=Pe(),ke.value=he(),ve.value=K(),W.value.TaskName=k.TaskName,W.value.TaskType=k.TaskType,W.value.Enable=k.Enable,W.value.GetType=k.GetType,W.value.URL=St(Ae.value),W.value.NetInterface=k.NetInterface,W.value.IPReg=k.IPReg,W.value.Domains=k.Domains,W.value.HttpClientTimeout=k.HttpClientTimeout,W.value.DNS={Name:k.DNS.Name,ID:k.DNS.ID,Secret:k.DNS.Secret,ForceInterval:k.DNS.ForceInterval,ResolverDoaminCheck:k.DNS.ResolverDoaminCheck,DNSServerList:k.DNS.DNSServerList,HttpClientProxyType:k.DNS.HttpClientProxyType,CallAPINetwork:k.DNS.CallAPINetwork,HttpClientProxyAddr:k.DNS.HttpClientProxyAddr,HttpClientProxyUser:k.DNS.HttpClientProxyUser,HttpClientProxyPassword:k.DNS.HttpClientProxyPassword,Callback:{URL:k.DNS.Callback.URL,Method:k.DNS.Callback.Method,Headers:k.DNS.Callback.Headers,RequestBody:k.DNS.Callback.RequestBody,CallbackSuccessContent:k.DNS.Callback.CallbackSuccessContent,DisableCallbackSuccessContentCheck:k.DNS.Callback.DisableCallbackSuccessContentCheck,Server:k.DNS.Callback.Server}},W.value.WebhookEnable=k.WebhookEnable,W.value.WebhookMethod=k.WebhookMethod,W.value.WebhookHeaders=k.WebhookHeaders,W.value.WebhookCallOnGetIPfail=k.WebhookCallOnGetIPfail,W.value.WebhookURL=k.WebhookURL,W.value.WebhookDisableCallbackSuccessContentCheck=k.WebhookDisableCallbackSuccessContentCheck,W.value.WebhookSuccessContent=k.WebhookSuccessContent,W.value.WebhookRequestBody=k.WebhookRequestBody,W.value.WebhookProxy=k.WebhookProxy,W.value.WebhookProxyAddr=k.WebhookProxyAddr,W.value.WebhookProxyUser=k.WebhookProxyUser,W.value.WebhookProxyPassword=k.WebhookProxyPassword,W.value.TTL=k.TTL,$e.value=k.TaskKey),xe.value=!0},O=q=>{console.log(\"ResolverDoaminCheckChange: \"+q)},te=(q,k)=>{const Me=q==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",X=\"[\"+k.TaskName+\"]\";return new Promise((de,Fe)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\"+Me+\"DDNS\\u4EFB\\u52A1 \"+X+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Hse(k.TaskKey,!q).then(At=>{if(At.ret==0){de(!0),ie(\"success\",\"DDNS\\u4EFB\\u52A1  \"+X+Me+\"\\u6210\\u529F\");return}de(!1),ie(\"error\",\"DDNS\\u4EFB\\u52A1 \"+X+Me+\"\\u5931\\u8D25\"),At.syncres!=null&&At.syncres!=\"\"&&to(\"warn\",At.syncres,0)}).catch(At=>{de(!1),console.log(\"DDNS\\u4EFB\\u52A1 \"+X+Me+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+At),ie(\"error\",\"DDNS\\u4EFB\\u52A1 \"+X+Me+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{de(!1)})})},_e=q=>{const Me=\"[\"+q.TaskName+\"]\";zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664DDNS\\u4EFB\\u52A1 \"+Me+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{console.log(\"\\u786E\\u8BA4\\u5220\\u9664DDNS\\u4EFB\\u52A1 \"+Me),Mse(q.TaskKey).then(X=>{X.ret==0?(Ce(),ie(\"success\",\"\\u5220\\u9664\\u6210\\u529F\"),X.syncres!=null&&X.syncres!=\"\"&&to(\"warn\",X.syncres,0)):ie(\"error\",X.msg)}).catch(X=>{console.log(\"\\u5220\\u9664DDNS\\u4EFB\\u52A1\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+X),ie(\"error\",\"\\u5220\\u9664DDNS\\u4EFB\\u52A1\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{})},pe=()=>{x.value.URL=St(Ae.value),x.value.Domains=St(se.value),x.value.DNS.Callback.Headers=St(we.value),x.value.DNS.Callback.CallbackSuccessContent=St(Ke.value),x.value.DNS.DNSServerList=St(ze.value),x.value.WebhookHeaders=St(ke.value),x.value.WebhookSuccessContent=St(ve.value),x.value.URL.length==0&&(x.value.TaskType==\"IPv6\"?x.value.URL=S:x.value.URL=L,Ae.value=Q());let q=re();if(q.length>0){qo(q);return}le.value==\"add\"?(console.log(\"add DDNS\\u4EFB\\u52A1\"),zse(x.value).then(k=>{if(k.ret==0){xe.value=!1,ie(\"success\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0DDNS\\u4EFB\\u52A1\\u5217\\u8868\"),Ce(),k.syncres!=null&&k.syncres!=\"\"&&to(\"warn\",k.syncres,0);return}ie(\"error\",k.msg)}).catch(k=>{console.log(\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+k),ie(\"error\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})):Tse($e.value,x.value).then(k=>{if(k.ret==0){xe.value=!1,ie(\"success\",\"DDNS\\u4EFB\\u52A1\\u4FEE\\u6539\\u6210\\u529F\"),console.log(\"\\u5237\\u65B0DDNS\\u4EFB\\u52A1\\u5217\\u8868\"),Ce(),k.syncres!=null&&k.syncres!=\"\"&&to(\"warn\",k.syncres,0);return}ie(\"error\",k.msg)}).catch(k=>{console.log(\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+k),ie(\"error\",\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})},Ce=()=>{Vse().then(q=>{if(q.ret==0){r.value=q.data;return}if(q.ret==6){ie(\"warning\",\"\\u8BF7\\u5148\\u5728\\u52A8\\u6001\\u57DF\\u540D\\u8BBE\\u7F6E\\u4E2D\\u542F\\u7528DDNS\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\"),location.hash=\"#ddnsset\";return}}).catch(q=>{console.log(\"\\u83B7\\u53D6DDNS\\u4EFB\\u52A1\\u5217\\u8868\\u51FA\\u9519:\"+q),ie(\"error\",\"\\u83B7\\u53D6DDNS\\u4EFB\\u52A1\\u5217\\u8868\\u51FA\\u9519\")})},be=()=>{Zse().then(q=>{q.ret==0&&(l.value=q.data,x.value.TaskType==\"IPv6\"?a.value=l.value.IPv6NewInterfaces:a.value=l.value.IPv4NewInterfaces,x.value.NetInterface==\"\"&&a.value.length>0&&(x.value.NetInterface=a.value[0].NetInterfaceName))}).catch(q=>{console.log(\"\\u83B7\\u53D6\\u7F51\\u5361\\u5217\\u8868\\u51FA\\u9519:\"+q),ie(\"error\",\"\\u83B7\\u53D6\\u7F51\\u5361\\u5217\\u8868\\u51FA\\u9519\")})},re=()=>{let q=x.value,k=me(q.DNS);if(k.length>0)return k;if(q.Domains.length==0)return\"\\u57DF\\u540D\\u5217\\u8868\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(q.GetType==\"url\"&&q.URL.length<=0)return\"\\u63A5\\u53E3\\u5217\\u8868\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(q.GetType==\"netInterface\"&&q.NetInterface==\"\")return\"\\u8BF7\\u9009\\u62E9\\u83B7\\u53D6IP\\u7684\\u7F51\\u5361\";if(q.DNS.HttpClientProxyType!=\"\"&&q.DNS.HttpClientProxyAddr==\"\")return\"DNS \\u4EE3\\u7406\\u8BBE\\u7F6E\\u670D\\u52A1\\u5668\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(q.WebhookEnable){if(q.WebhookURL==\"\")return\"\\u8BF7\\u586B\\u5199Webhook \\u63A5\\u53E3\\u5730\\u5740\";if(q.WebhookMethod==\"\")return\"\\u8BF7\\u9009\\u62E9Webhook \\u8BF7\\u6C42\\u65B9\\u6CD5\";if(q.WebhookProxy!=\"\"&&q.WebhookProxy!=\"dns\"&&q.WebhookProxyAddr==\"\")return\"Webhook \\u4EE3\\u7406\\u8BBE\\u7F6E\\u670D\\u52A1\\u5668\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(!q.WebhookDisableCallbackSuccessContentCheck&&q.WebhookSuccessContent.length==0)return\"Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u5982\\u679C\\u8981\\u6307\\u5B9A\\u4E3A\\u7A7A\\u8BF7\\u7981\\u7528\\u68C0\\u6D4B\"}return q.DNS.Name==\"callback\"?(q.DNS.ID=\"\",q.DNS.Secret=\"\",q.DNS.Callback.Method==\"get\"&&(q.DNS.Callback.RequestBody=\"\")):q.DNS.Callback={URL:\"\",Method:\"\",Headers:[],RequestBody:\"\",Server:\"\",CallbackSuccessContent:[],DisableCallbackSuccessContentCheck:!1},q.WebhookEnable&&q.WebhookMethod==\"get\"&&(q.WebhookRequestBody=\"\"),\"\"},me=q=>{switch(q.Name){case\"cloudflare\":if(q.Secret==\"\")return\"Cloudflare Token\\u4E0D\\u80FD\\u4E3A\\u7A7A\";break;case\"callback\":if(q.Callback.Method==\"\")return\"\\u8BF7\\u9009\\u62E9Callback\\u7684\\u8BF7\\u6C42\\u65B9\\u6CD5\";if(q.Callback.URL==\"\")return\"Callback \\u63A5\\u53E3\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\";if(!q.Callback.DisableCallbackSuccessContentCheck&&q.Callback.CallbackSuccessContent.length==0)return\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\\u4E0D\\u80FD\\u4E3A\\u7A7A,\\u5982\\u679C\\u8981\\u6307\\u5B9A\\u4E3A\\u7A7A\\u8BF7\\u7981\\u7528\\u68C0\\u6D4B\";break;default:if(q.Secret==\"\"||q.ID==\"\")return\"DNS\\u670D\\u52A1\\u5546\\u76F8\\u5173\\u53C2\\u6570\\u4E0D\\u80FD\\u4E3A\\u7A7A\"}return\"\"},Re=()=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\\u6839\\u636ECallback DNS\\u670D\\u52A1\\u5546[\"+w(x.value.DNS.Callback.Server)+\"]\\u548C\\u516C\\u7F51IP\\u7C7B\\u578B:[\"+x.value.TaskType+\"]\\u81EA\\u52A8\\u586B\\u5145\\u53C2\\u6570\\u6A21\\u7248?\",\"Warning\",{confirmButtonText:\"\\u81EA\\u52A8\\u586B\\u5145\",cancelButtonText:\"\\u4E0D\\u9700\\u8981\",type:\"warning\"}).then(()=>{switch(x.value.DNS.Callback.Server){case\"meibu\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"http://v6.meibu.com/v6.asp?name=#{domain}&pwd=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684\\u5BC6\\u7801\":x.value.DNS.Callback.URL=\"http://ipv4.meibu.com/ipv4.asp?ID=lucky&name=#{domain}&pwd=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684\\u5BC6\\u7801\",we.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"chenggong\",\"chongfu\",\"ok\"],Ke.value=`chenggong\nchongfu\nok`;break;case\"noip\":x.value.DNS.Callback.URL=\"http://\\u4F60\\u7684\\u8D26\\u53F7:\\u4F60\\u7684\\u5BC6\\u7801@dynupdate.no-ip.com/nic/update?hostname=#{domain}&myip=#{ip}\",we.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"nochg #{ip}\",\"good #{ip}\"],Ke.value=`nochg #{ip}\ngood #{ip}`;break;case\"dynv6\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"https://dynv6.com/api/update?hostname=#{domain}&token=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684Token&ipv6=#{ip}\":x.value.DNS.Callback.URL=\"https://dynv6.com/api/update?hostname=#{domain}&token=\\u8FD9\\u91CC\\u66FF\\u6362\\u4E3A\\u4F60\\u7684Token&ipv4=#{ip}\",we.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"addresses updated\"],Ke.value=`addresses updated\n`;break;case\"dynu\":x.value.TaskType==\"IPv6\"?x.value.DNS.Callback.URL=\"https://api.dynu.com/nic/update?hostname=#{domain}&myip=no&myipv6=#{ip}&username=\\u7528\\u6237\\u540D&password=\\u767B\\u5F55\\u5BC6\\u7801\\u6216IP\\u66F4\\u65B0\\u5BC6\\u7801\":x.value.DNS.Callback.URL=\"https://api.dynu.com/nic/update?hostname=#{domain}&myip=#{ip}&myipv6=no}&username=\\u7528\\u6237\\u540D&password=\\u767B\\u5F55\\u5BC6\\u7801\\u6216IP\\u66F4\\u65B0\\u5BC6\\u7801\",we.value=\"\",x.value.DNS.Callback.Headers=[],x.value.DNS.Callback.Method=\"get\",x.value.DNS.Callback.RequestBody=\"\",x.value.DNS.Callback.DisableCallbackSuccessContentCheck=!1,x.value.DNS.Callback.CallbackSuccessContent=[\"nochg\",\"good #{ip}\"],Ke.value=`nochg\ngood #{ip}`;break}}).catch(()=>{})},Q=()=>{(x.value.URL==null||x.value.URL.length<=0||x.value.URL.length==1&&x.value.URL[0]==\"\")&&(x.value.TaskType==\"IPv6\"?x.value.URL=S:x.value.URL=L);var q=\"\";for(let k in x.value.URL)k==\"0\"?q=x.value.URL[k]:q+=`\n`+x.value.URL[k];return q},Pe=()=>{(x.value.DNS.DNSServerList==null||x.value.DNS.DNSServerList.length<=0||x.value.DNS.DNSServerList.length==1&&x.value.DNS.DNSServerList[0]==\"\")&&(x.value.TaskType==\"IPv6\"?x.value.DNS.DNSServerList=F:x.value.DNS.DNSServerList=E);var q=\"\";for(let k in x.value.DNS.DNSServerList)k==\"0\"?q=x.value.DNS.DNSServerList[k]:q+=`\n`+x.value.DNS.DNSServerList[k];return q},Ge=()=>{if(x.value.Domains==null||x.value.Domains.length==0)return\"\";var q=\"\";for(let k in x.value.Domains)k==\"0\"?q=x.value.Domains[k]:q+=`\n`+x.value.Domains[k];return q},Xe=()=>{if(x.value.DNS.Callback.Headers==null||x.value.DNS.Callback.Headers.length==0)return\"\";var q=\"\";for(let k in x.value.DNS.Callback.Headers)k==\"0\"?q=x.value.DNS.Callback.Headers[k]:q+=`\n`+x.value.DNS.Callback.Headers[k];return q},he=()=>{if(x.value.WebhookHeaders==null||x.value.WebhookHeaders.length==0)return\"\";var q=\"\";for(let k in x.value.WebhookHeaders)k==\"0\"?q=x.value.WebhookHeaders[k]:q+=`\n`+x.value.WebhookHeaders[k];return q},Ie=()=>{if(x.value.DNS.Callback.CallbackSuccessContent==null||x.value.DNS.Callback.CallbackSuccessContent.length==0)return\"\";var q=\"\";for(let k in x.value.DNS.Callback.CallbackSuccessContent)k==\"0\"?q=x.value.DNS.Callback.CallbackSuccessContent[k]:q+=`\n`+x.value.DNS.Callback.CallbackSuccessContent[k];return q},K=()=>{if(x.value.WebhookSuccessContent==null||x.value.WebhookSuccessContent.length==0)return\"\";var q=\"\";for(let k in x.value.WebhookSuccessContent)k==\"0\"?q=x.value.WebhookSuccessContent[k]:q+=`\n`+x.value.WebhookSuccessContent[k];return q};var ue;return at(()=>{Ce(),ue=setInterval(()=>{Ce()},500)}),Bo(()=>{clearInterval(ue)}),(q,k)=>{const Me=kn,X=Uu,de=ga,Fe=Sn,At=Ou,De=un,Dt=Qe(\"Plus\"),Ln=ut,R6=ha,Ft=yn,H2=ma,qe=jn,Kn=ju,Gn=qu,sn=j4,I2=To,_r=b2,R2=y2,N6=qn;return b(),C(\"div\",ice,[d(De,{height:\"100%\"},{default:p(()=>[(b(!0),C(We,null,pt(_(r),(J,wa)=>(b(),C(\"div\",cce,[d(At,{column:4,border:\"\"},{default:p(()=>[d(X,{label:\"DDNS\\u4EFB\\u52A1\\u540D\\u79F0\"},{default:p(()=>[ye(d(Me,{type:\"\",size:\"default\"},{default:p(()=>[D(ce(J.TaskName==\"\"?\"\\u672A\\u547D\\u540D\\u4EFB\\u52A1\":J.TaskName),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(X,{label:\"DDNS\\u7C7B\\u578B\"},{default:p(()=>[ye(d(Me,{color:\"#409eff\",size:\"default\"},{default:p(()=>[D(ce(J.TaskType),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(X,{label:\"\\u4EFB\\u52A1\\u64CD\\u4F5C\",span:2},{default:p(()=>[d(Fe,{content:J.Enable==!0?\"\\u4EFB\\u52A1\\u5DF2\\u542F\\u7528\":\"\\u4EFB\\u52A1\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:p(()=>[d(de,{modelValue:J.Enable,\"onUpdate:modelValue\":kt=>J.Enable=kt,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":te.bind(this,J.Enable,J),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),D(\" \\xA0\\xA0 \"),d(Me,{type:\"primary\",onClick:kt=>V(\"alter\",J)},{default:p(()=>[D(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),d(Me,{type:\"danger\",onClick:kt=>_e(J)},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),d(X,{label:\"DNS\\u670D\\u52A1\\u5546\"},{default:p(()=>[ye(d(Me,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(Y(J.DNS)),1)]),_:2},1536),[[Be,!0]]),d(Fe,{\"v-if\":J.DNS.HttpClientProxyType!=\"\",content:J.DNS.HttpClientProxyType==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u7C7B\\u578B:[\"+J.DNS.HttpClientProxyType+\"] \\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u5730\\u5740:[\"+J.DNS.HttpClientProxyAddr+\"]\",placement:\"top\"},{default:p(()=>[d(Me,{type:J.DNS.HttpClientProxyType==\"\"?\"\":\"success\",size:\"small\"},{default:p(()=>[D(ce(J.DNS.HttpClientProxyType==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u5DF2\\u8BBE\\u7F6E\\u4EE3\\u7406\"),1)]),_:2},1032,[\"type\"])]),_:2},1032,[\"v-if\",\"content\"])]),_:2},1024),d(X,{label:\"\\u83B7\\u53D6\\u516C\\u7F51IP\\u65B9\\u5F0F\"},{default:p(()=>[ye(d(Me,{color:\"#409eff\",size:\"default\"},{default:p(()=>[D(ce(J.GetType==\"url\"?\"URL\":\"\\u7F51\\u5361\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(X,{label:\"\\u516C\\u7F51IP\"},{default:p(()=>[d(Fe,{placement:wa==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:P(J.TaskState.IPAddrHistory)},null,8,dce)]),default:p(()=>[ye(d(Me,{color:\"#409eff\",size:\"default\",onClick:kt=>G(J.TaskState.IpAddr)},{default:p(()=>[D(ce(J.TaskState.IpAddr==\"\"?\"\\u5C1A\\u672A\\u83B7\\u53D6\\u5230\\u516C\\u7F51IP\":J.TaskState.IpAddr),1)]),_:2},1032,[\"onClick\"]),[[Be,!0]])]),_:2},1032,[\"placement\"])]),_:2},1024),d(X,{label:\"TTL\"},{default:p(()=>[ye(d(Me,{size:\"small\",type:\"\"},{default:p(()=>[D(ce(v(J.TTL)),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),J.WebhookEnable?(b(),C(\"div\",fce,[d(X,{label:\"WebHook\",span:1},{default:p(()=>[d(Me,{type:\"success\",size:\"small\"},{default:p(()=>[D(\" \\u5DF2\\u542F\\u7528 \")]),_:1}),d(Me,{type:J.WebhookProxy==\"\"?\"\":\"success\",size:\"small\"},{default:p(()=>[D(ce(J.WebhookProxy==\"\"?\"\\u672A\\u8BBE\\u7F6E\\u4EE3\\u7406\":\"\\u5DF2\\u8BBE\\u7F6E\\u4EE3\\u7406\"),1)]),_:2},1032,[\"type\"])]),_:2},1024),d(X,{label:\"WebHook \\u89E6\\u53D1\\u65F6\\u95F4\",span:J.TaskState.WebhookCallTime==\"\"?3:1},{default:p(()=>[d(Fe,{placement:wa==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:I(J.TaskState.WebhookCallHistroy)},null,8,pce)]),default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\"},{default:p(()=>[D(ce(J.TaskState.WebhookCallTime==\"\"?\"\\u4ECE\\u672A\\u89E6\\u53D1\":J.TaskState.WebhookCallTime),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"]),J.TaskState.WebhookCallTime!=\"\"?(b(),ae(X,{key:0,label:\"WebHook \\u89E6\\u53D1\\u7ED3\\u679C\",span:J.TaskState.WebhookCallErrorMsg==\"\"?2:1},{default:p(()=>[d(Fe,{placement:wa==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:I(J.TaskState.WebhookCallHistroy)},null,8,vce)]),default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\"},{default:p(()=>[D(ce(J.TaskState.WebhookCallResult==!0?\"\\u6210\\u529F\":\"\\u5931\\u8D25\"),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"])):oe(\"\",!0),J.TaskState.WebhookCallErrorMsg!=\"\"?(b(),ae(X,{key:1,label:\"WebHook \\u89E6\\u53D1\\u9519\\u8BEF\\u539F\\u56E0\",span:1},{default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\",onClick:kt=>o(J.TaskState.WebhookCallErrorMsg)},{default:p(()=>[D(\" \\u70B9\\u51FB\\u67E5\\u770B \")]),_:2},1032,[\"onClick\"])]),_:2},1024)):oe(\"\",!0)])):oe(\"\",!0),(b(!0),C(We,null,pt(J.TaskState.Domains,kt=>(b(),C(\"div\",null,[d(X,{label:\"\\u57DF\\u540D\"},{default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\",onClick:O6=>Z(kt.SubDomain,kt.DomainName)},{default:p(()=>[D(ce(kt.SubDomain==\"\"?kt.DomainName:kt.SubDomain+\".\"+kt.DomainName),1)]),_:2},1032,[\"onClick\"])]),_:2},1024),d(X,{label:\"\\u540C\\u6B65\\u7ED3\\u679C\"},{default:p(()=>[d(Fe,{placement:wa==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:H(kt.UpdateHistroy)},null,8,hce)]),default:p(()=>[d(Me,{type:kt.UpdateStatus==\"\\u5931\\u8D25\"?\"danger\":J.Enable?\"success\":\"info\",size:\"small\"},{default:p(()=>[D(ce(J.Enable?kt.UpdateStatus:\"\\u505C\\u6B62\\u540C\\u6B65\"),1)]),_:2},1032,[\"type\"])]),_:2},1032,[\"placement\"])]),_:2},1024),d(X,{label:\"\\u6700\\u540E\\u68C0\\u6D4B\\u65F6\\u95F4\",span:kt.Message==\"\"?2:1},{default:p(()=>[d(Fe,{placement:wa==0?\"bottom\":\"top\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:H(kt.UpdateHistroy)},null,8,_ce)]),default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\"},{default:p(()=>[D(ce(kt.LastUpdateStatusTime),1)]),_:2},1024)]),_:2},1032,[\"placement\"])]),_:2},1032,[\"span\"]),kt.Message!=\"\"?(b(),ae(X,{key:0,label:\"\\u9519\\u8BEF\\u4FE1\\u606F\"},{default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\",onClick:O6=>o(kt.Message)},{default:p(()=>[D(\" \\u70B9\\u51FB\\u67E5\\u770B \")]),_:2},1032,[\"onClick\"])]),_:2},1024)):oe(\"\",!0)]))),256))]),_:2},1024)]))),256))]),_:1}),d(R6,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:p(()=>[d(Me,{type:\"primary\",onClick:k[0]||(k[0]=J=>V(\"add\",null))},{default:p(()=>[D(\"\\u6DFB\\u52A0DDNS\\u4EFB\\u52A1 \"),d(Ln,null,{default:p(()=>[d(Dt)]),_:1})]),_:1})]),_:1}),d(H2,{modelValue:t.value,\"onUpdate:modelValue\":k[2]||(k[2]=J=>t.value=J),title:\"\\u8BE6\\u7EC6\\u4FE1\\u606F\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{default:p(()=>[d(Ft,{modelValue:n.value,\"onUpdate:modelValue\":k[1]||(k[1]=J=>n.value=J),autosize:{minRows:3,maxRows:10},type:\"textarea\"},null,8,[\"modelValue\"])]),_:1},8,[\"modelValue\"]),d(H2,{modelValue:xe.value,\"onUpdate:modelValue\":k[48]||(k[48]=J=>xe.value=J),title:le.value==\"add\"?\"DDNS\\u4EFB\\u52A1\\u6DFB\\u52A0\":\"DDNS\\u4EFB\\u52A1\\u4FEE\\u6539\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{footer:p(()=>[f(\"span\",vde,[d(Me,{onClick:k[47]||(k[47]=J=>xe.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(Me,{type:\"primary\",onClick:pe},{default:p(()=>[D(ce(le.value==\"add\"?\"\\u6DFB\\u52A0\":\"\\u4FEE\\u6539\"),1)]),_:1})])]),default:p(()=>[d(N6,{model:x.value},{default:p(()=>[d(qe,{label:\"DDNS\\u4EFB\\u52A1\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.TaskName,\"onUpdate:modelValue\":k[3]||(k[3]=J=>x.value.TaskName=J),placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u4EFB\\u52A1\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:p(()=>[d(de,{modelValue:x.value.Enable,\"onUpdate:modelValue\":k[4]||(k[4]=J=>x.value.Enable=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[f(\"div\",mce,[gce,f(\"div\",bce,[d(qe,{label:\"DNS\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.DNS.Name,\"onUpdate:modelValue\":k[5]||(k[5]=J=>x.value.DNS.Name=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(T,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),x.value.DNS.Name==\"alidns\"?(b(),C(\"div\",yce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://ram.console.aliyun.com/manage/ak?spm=5176.12818093.nav-right.dak.488716d0mHaMgg\",target:\"_blank\"},{default:p(()=>[D(\" \\u521B\\u5EFA AccessKey \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"baiducloud\"?(b(),C(\"div\",wce,[d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\\u9700\\u8C03\\u7528 API,\\u800C\\u767E\\u5EA6\\u4E91\\u76F8\\u5173API\\u4EC5\\u5BF9\\u7533\\u8BF7\\u7528\\u6237\\u5F00\\u653E\\uFF0C\\u4F7F\\u7528\\u524D\\u8BF7\\u5148\\u63D0\\u4EA4\\u5DE5\\u5355\\u7533\\u8BF7\\u3002\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.bce.baidu.com/iam/?_=1651763238057#/iam/accesslist\",target:\"_blank\"},{default:p(()=>[D(\" \\u521B\\u5EFA AccessKey \")]),_:1}),D(\" \\xA0 \\xA0 \\xA0 \"),d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://ticket.bce.baidu.com/#/ticket/create~productId=60&questionId=393&channel=2\",target:\"_blank\"},{default:p(()=>[D(\" \\u7533\\u8BF7\\u5DE5\\u5355 \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"cloudflare\"?(b(),C(\"div\",Cce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dash.cloudflare.com/profile/api-tokens\",target:\"_blank\"},{default:p(()=>[D(\" \\u521B\\u5EFA\\u4EE4\\u724C->\\u7F16\\u8F91\\u533A\\u57DF DNS (\\u4F7F\\u7528\\u6A21\\u677F) \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"dnspod\"?(b(),C(\"div\",Ece,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.dnspod.cn/account/token\",target:\"_blank\"},{default:p(()=>[D(\" \\u521B\\u5EFA\\u5BC6\\u94A5 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"huaweicloud\"?(b(),C(\"div\",Ace,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey\",target:\"_blank\"},{default:p(()=>[D(\" \\u65B0\\u589E\\u8BBF\\u95EE\\u5BC6\\u94A5 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"porkbun\"?(b(),C(\"div\",Fce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://porkbun.com/account/api\",target:\"_blank\"},{default:p(()=>[D(\" \\u521B\\u5EFA Access \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Name==\"callback\"?(b(),C(\"div\",xce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[$ce]),_:1})])):oe(\"\",!0),ye(d(qe,{label:ge(),\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.ID,\"onUpdate:modelValue\":k[6]||(k[6]=J=>x.value.DNS.ID=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"]),[[Be,Ee()]]),ye(d(qe,{label:fe(),\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.Secret,\"onUpdate:modelValue\":k[7]||(k[7]=J=>x.value.DNS.Secret=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"]),[[Be,ne()]]),d(Fe,{placement:\"top\"},{content:p(()=>[D(\" \\u5F3A\\u5236\\u540C\\u6B65,\\u5F53DNS\\u89E3\\u6790\\u57DF\\u540D\\u5F00\\u5173\\u6253\\u5F00\\u65F6\\u4F1A\\u5148\\u901A\\u8FC7DNS\\u89E3\\u6790\\u8FDB\\u884CIP\\u6BD4\\u5BF9,\\u6BD4\\u5BF9\\u4E00\\u81F4\\u4F9D\\u7136\\u4E0D\\u4F1A\\u5F3A\\u5236\\u540C\\u6B65,\\u53EA\\u8981\\u4E0D\\u624B\\u52A8\\u4FEE\\u6539\\u57DF\\u540DIP\\u8FD9\\u4E2A\\u503C\\u8BBE\\u7F6E\\u5927\\u4E00\\u4E9B\\u5B8C\\u5168\\u6CA1\\u95EE\\u9898,\\u53EF\\u8BBE\\u8303\\u56F4(60-360000)\"),Dce,D(\" \\u5F3A\\u5236\\u540C\\u6B65\\u68C0\\u67E5\\u4F1A\\u5728\\u6BCF\\u4E00\\u8F6E\\u5B9A\\u65F6\\u6279\\u91CF\\u6267\\u884CDDNS\\u4EFB\\u52A1\\u4E2D\\u8FDB\\u884C,\\u6240\\u4EE5\\u5B9E\\u9645\\u5F3A\\u5236\\u540C\\u6B65\\u65F6\\u95F4\\u4E0D\\u4F1A\\u5F88\\u7CBE\\u786E \")]),default:p(()=>[d(qe,{label:\"\\u5F3A\\u5236\\u540C\\u6B65(\\u79D2)\",\"label-width\":\"auto\",min:60,max:36e4},{default:p(()=>[d(I2,{modelValue:x.value.DNS.ForceInterval,\"onUpdate:modelValue\":k[8]||(k[8]=J=>x.value.DNS.ForceInterval=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),ye(f(\"p\",null,\"\\u81EA\\u5B9A\\u4E49(Callback)\\u670D\\u52A1\\u5546\\u8BBE\\u7F6E\",512),[[Be,x.value.DNS.Name==\"callback\"]]),ye(f(\"div\",Bce,[d(qe,{label:\"Callback DNS\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.DNS.Callback.Server,\"onUpdate:modelValue\":k[9]||(k[9]=J=>x.value.DNS.Callback.Server=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(g,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[x.value.DNS.Callback.Server==\"meibu\"?(b(),C(\"div\",Sce,[d(Fe,{content:\"\\u6CE8\\u610F:\\u6BCF\\u6B65 IPv4\\u548CIPv6\\u7684\\u63A5\\u53E3\\u4E0D\\u76F8\\u540C,\\u514D\\u8D39\\u4E8C\\u7EA7\\u57DF\\u540D\\u4E0D\\u80FD\\u540C\\u65F6\\u652F\\u6301IPv4\\u548CIPv6\",placement:\"top\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"http://www.meibu.com/regedit.shtml\",target:\"_blank\"},{default:p(()=>[D(\" \\u6BCF\\u6B65-\\u514D\\u8D39\\u4E8C\\u7EA7\\u57DF\\u540D\\u6CE8\\u518C \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"noip\"?(b(),C(\"div\",kce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.noip.com\",target:\"_blank\"},{default:p(()=>[D(\" No-IP\\u5B98\\u7F51 \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"dynv6\"?(b(),C(\"div\",Pce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dynv6.com/\",target:\"_blank\"},{default:p(()=>[D(\" Dynv6\\u5B98\\u7F51 \")]),_:1}),D(\" \\xA0 \\xA0 \\xA0 \"),d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://dynv6.com/keys\",target:\"_blank\"},{default:p(()=>[D(\" Token\\u521B\\u5EFA \")]),_:1})]),_:1})])):oe(\"\",!0),x.value.DNS.Callback.Server==\"dynu\"?(b(),C(\"div\",Lce,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.dynu.com/\",target:\"_blank\"},{default:p(()=>[D(\" Dynu\\u5B98\\u7F51 \")]),_:1}),D(\" \\xA0 \\xA0 \\xA0 \"),d(sn,{type:\"primary\",style:{\"font-size\":\"small\"},href:\"https://www.dynu.com/zh-CN/ControlPanel/ManageCredentials\",target:\"_blank\"},{default:p(()=>[D(\" IP\\u66F4\\u65B0\\u5BC6\\u7801\\u8BBE\\u7F6E \")]),_:1})]),_:1})])):oe(\"\",!0),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(Me,{color:\"#409eff\",size:\"default\",onClick:Re},{default:p(()=>[D(\" \\u6839\\u636EDNS\\u670D\\u52A1\\u5546\\u81EA\\u52A8\\u586B\\u5145\\u53C2\\u6570\\u6A21\\u7248 \")]),_:1})]),_:1})],512),[[Be,x.value.DNS.Callback.Server!=\"other\"]]),d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\"},{content:p(()=>[D(\"\\u63A5\\u53E3\\u5730\\u5740\"),zce,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Tce,D(\" #{ip} : \\u5916\\u7F51IP\"),Mce,D(\" #{domain} : \\u57DF\\u540D\"),Vce,D(\" #{recordType} : A \\u6216\\u8005 AAAA \"),Hce,D(\" #{ttl} : TTL\\u503C\")]),default:p(()=>[d(qe,{label:\"\\u63A5\\u53E3\\u5730\\u5740\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.Callback.URL,\"onUpdate:modelValue\":k[10]||(k[10]=J=>x.value.DNS.Callback.URL=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(qe,{label:\"\\u8BF7\\u6C42\\u65B9\\u6CD5\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.DNS.Callback.Method,\"onUpdate:modelValue\":k[11]||(k[11]=J=>x.value.DNS.Callback.Method=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(B,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E00\\u884C\\u4E00\\u6761Header(key:value)\"),Ice,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Rce,D(\" #{ip} : \\u5916\\u7F51IP\"),Nce,D(\" #{domain} : \\u57DF\\u540D\"),Oce,D(\" #{recordType} : A \\u6216\\u8005 AAAA \"),Uce,D(\" #{ttl} : TTL\\u503C\"),Wce,D(\" \\u5982\\u679C\\u9700\\u8981\\u4F7F\\u7528BasicAuth,\\u8BF7\\u4F7F\\u7528\\u4E0B\\u9762\\u4E24\\u884CHeader\\u8BBE\\u7F6EBasicAuth\\u7684\\u8D26\\u53F7\\u548C\\u5BC6\\u7801\"),qce,D(\" BasicAuthUserName:\\u4F60\\u7684\\u8D26\\u53F7\"),jce,D(\" BasicAuthPassword:\\u4F60\\u7684\\u5BC6\\u7801\")]),default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"\\u8BF7\\u6C42Headers\"},{default:p(()=>[d(Ft,{modelValue:we.value,\"onUpdate:modelValue\":k[12]||(k[12]=J=>we.value=J),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\"\\u8BF7\\u6C42\\u4E3B\\u4F53 requestBody\"),Kce,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Gce,D(\" #{ip} : \\u5916\\u7F51IP\"),Yce,D(\" #{domain} : \\u57DF\\u540D\"),Xce,D(\" #{recordType} : A \\u6216\\u8005 AAAA \"),Jce,D(\" #{ttl} : TTL\\u503C\")]),default:p(()=>[ye(d(qe,{\"label-width\":\"auto\",label:\"\\u8BF7\\u6C42\\u4E3B\\u4F53\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.Callback.RequestBody,\"onUpdate:modelValue\":k[13]||(k[13]=J=>x.value.DNS.Callback.RequestBody=J),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1},512),[[Be,x.value.DNS.Callback.Method!=\"get\"]])]),_:1}),d(Fe,{content:\"\\u7981\\u7528\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B,\\u5F00\\u542F\\u540E\\u4EC5\\u4EE5http StatusCode==200\\u5224\\u65AD\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528.\",placement:\"top\"},{default:p(()=>[d(qe,{label:\"\\u7981\\u7528\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B\",\"label-width\":\"auto\"},{default:p(()=>[d(de,{modelValue:x.value.DNS.Callback.DisableCallbackSuccessContentCheck,\"onUpdate:modelValue\":k[14]||(k[14]=J=>x.value.DNS.Callback.DisableCallbackSuccessContentCheck=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u662F\",\"inactive-text\":\"\\u5426\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\"\\u7528\\u4E8E\\u5224\\u65AD\\u8BB0\\u5F55\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528,\\u591A\\u79CD\\u8868\\u793A\\u6210\\u529F\\u7684\\u4E0D\\u540C\\u5B57\\u7B26\\u4E32\\u8BF7\\u5206\\u591A\\u884C\\u5199\"),Qce,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Zce,D(\" #{ip} : \\u5916\\u7F51IP\"),e0e,D(\" #{domain} : \\u57DF\\u540D\"),t0e,D(\" #{recordType} : A \\u6216\\u8005 AAAA \"),n0e,D(\" #{ttl} : TTL\\u503C\")]),default:p(()=>[d(qe,{label:\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:Ke.value,\"onUpdate:modelValue\":k[15]||(k[15]=J=>Ke.value=J),autosize:{minRows:3,maxRows:5},type:\"textarea\",autocomplete:\"off\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,!x.value.DNS.Callback.DisableCallbackSuccessContentCheck]])],512),[[Be,x.value.DNS.Name==\"callback\"]]),f(\"div\",o0e,[d(Fe,{content:\"\\u8C03\\u7528DNS\\u670D\\u52A1\\u5546\\u63A5\\u53E3\\u66F4\\u65B0\\u6216\\u589E\\u52A0\\u57DF\\u540D\\u4E4B\\u524D\\u5148\\u901A\\u8FC7DNS\\u67E5\\u8BE2\\u57DF\\u540D\\u5BF9\\u5E94IP,\\u964D\\u4F4E\\u5BF9DNS\\u670D\\u52A1\\u5546\\u63A5\\u53E3\\u7684\\u8BBF\\u95EE\\u9891\\u7387,\\u5EFA\\u8BAE\\u542F\\u7528\",placement:\"top\"},{default:p(()=>[d(qe,{label:\"DNS\\u89E3\\u6790\\u68C0\\u6D4B\\u57DF\\u540D\",\"label-width\":\"auto\"},{default:p(()=>[d(de,{modelValue:x.value.DNS.ResolverDoaminCheck,\"onUpdate:modelValue\":k[16]||(k[16]=J=>x.value.DNS.ResolverDoaminCheck=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u7981\\u7528\",onChange:O},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(Fe,{class:\"box-item\",\"trigger-keys\":[],effect:\"dark\",content:\"\\u4E00\\u884C\\u4E00\\u4E2ADNS\\u670D\\u52A1\\u5668\\u5730\\u5740(\\u5E26\\u7AEF\\u53E3)\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"DNS\\u670D\\u52A1\\u5668\\u5217\\u8868\"},{default:p(()=>[d(Ft,{modelValue:ze.value,\"onUpdate:modelValue\":k[17]||(k[17]=J=>ze.value=J),autosize:{minRows:3,maxRows:5},placeholder:\"\\u4E00\\u884C\\u4E00\\u4E2ADNS\\u670D\\u52A1\\u5668\\u5730\\u5740(\\u5E26\\u7AEF\\u53E3)\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,x.value.DNS.ResolverDoaminCheck]])]),l0e,f(\"div\",a0e,[d(qe,{label:\"DNS\\u63A5\\u53E3\\u8C03\\u7528\\u4F7F\\u7528\\u7684\\u7F51\\u7EDC\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.DNS.CallAPINetwork,\"onUpdate:modelValue\":k[18]||(k[18]=J=>x.value.DNS.CallAPINetwork=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(y,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1})]),r0e,f(\"div\",u0e,[d(qe,{label:\"DNS\\u63A5\\u53E3\\u8C03\\u7528 \\u4EE3\\u7406\\u8BBE\\u7F6E\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.DNS.HttpClientProxyType,\"onUpdate:modelValue\":k[19]||(k[19]=J=>x.value.DNS.HttpClientProxyType=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(c,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668IP\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.HttpClientProxyAddr,\"onUpdate:modelValue\":k[20]||(k[20]=J=>x.value.DNS.HttpClientProxyAddr=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u7528\\u6237\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.HttpClientProxyUser,\"onUpdate:modelValue\":k[21]||(k[21]=J=>x.value.DNS.HttpClientProxyUser=J),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u5BC6\\u7801\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.DNS.HttpClientProxyPassword,\"onUpdate:modelValue\":k[22]||(k[22]=J=>x.value.DNS.HttpClientProxyPassword=J),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1})],512),[[Be,x.value.DNS.HttpClientProxyType!=\"\"]])])]),f(\"div\",s0e,[d(qe,{label:\"\\u516C\\u7F51IP\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:p(()=>[d(R2,{modelValue:x.value.TaskType,\"onUpdate:modelValue\":k[23]||(k[23]=J=>x.value.TaskType=J),class:\"ml-4\",onChange:ee},{default:p(()=>[d(_r,{label:\"IPv4\"},{default:p(()=>[D(\"IPv4\")]),_:1}),d(_r,{label:\"IPv6\"},{default:p(()=>[D(\"IPv6\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u83B7\\u53D6\\u516C\\u7F51IP\\u65B9\\u5F0F\",\"label-width\":\"auto\"},{default:p(()=>[d(R2,{modelValue:x.value.GetType,\"onUpdate:modelValue\":k[24]||(k[24]=J=>x.value.GetType=J),class:\"ml-4\"},{default:p(()=>[d(_r,{label:\"url\"},{default:p(()=>[D(\"\\u901A\\u8FC7\\u63A5\\u53E3\\u83B7\\u53D6\")]),_:1}),d(_r,{label:\"netInterface\"},{default:p(()=>[D(\"\\u901A\\u8FC7\\u7F51\\u5361\\u83B7\\u53D6\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1}),x.value.GetType==\"url\"?(b(),C(\"div\",i0e,[d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\\u4E00\\u884C\\u4E00\\u4E2A\\u63A5\\u53E3\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"\\u63A5\\u53E3\\u5217\\u8868\"},{default:p(()=>[d(Ft,{modelValue:Ae.value,\"onUpdate:modelValue\":k[25]||(k[25]=J=>Ae.value=J),autosize:{minRows:5,maxRows:20},placeholder:\"\\u4E00\\u884C\\u4E00\\u4E2A\\u63A5\\u53E3\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])):oe(\"\",!0),x.value.GetType==\"netInterface\"?(b(),C(\"div\",c0e,[d(qe,{\"label-width\":\"auto\",label:\"\\u7F51\\u5361\\u5217\\u8868\"},{default:p(()=>[d(Gn,{modelValue:x.value.NetInterface,\"onUpdate:modelValue\":k[26]||(k[26]=J=>x.value.NetInterface=J),class:\"m-2\"},{default:p(()=>[(b(!0),C(We,null,pt(_(a),J=>(b(),ae(Fe,{class:\"box-item\",effect:\"dark\",key:J.NetInterfaceName,content:JSON.stringify(J.AddressList)},{default:p(()=>[d(Kn,{label:J.NetInterfaceName,value:J.NetInterfaceName},null,8,[\"label\",\"value\"])]),_:2},1032,[\"content\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\\u7559\\u7A7A\\u8868\\u793A\\u5339\\u914D\\u9009\\u4E2D\\u7F51\\u5361\\u7B2C1\\u4E2AIP, \\u7EAF\\u6570\\u5B57n\\u8868\\u793A\\u5339\\u914D\\u7B2Cn\\u4E2AIP, 24*\\u8868\\u793A\\u5339\\u914D\\u4EE524\\u5F00\\u5934\\u7684\\u7B2C\\u4E00\\u4E2AIP, *24\\u8868\\u793A\\u5339\\u914D\\u4EE524\\u7ED3\\u5C3E\\u7684\\u7B2C\\u4E00\\u4E2AIP, \\u8FD8\\u53EF\\u4EE5\\u586B\\u5199\\u6B63\\u5219\\u8868\\u8FBE\\u5F0F\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"IP\\u9009\\u62E9\\u5339\\u914D\\u89C4\\u5219\"},{default:p(()=>[d(Ft,{modelValue:x.value.IPReg,\"onUpdate:modelValue\":k[27]||(k[27]=J=>x.value.IPReg=J),autosize:{minRows:5,maxRows:20},placeholder:\"\\u7559\\u7A7A\\u8868\\u793A\\u9009\\u62E9\\u5F53\\u524D\\u7F51\\u5361\\u7B2C\\u4E00\\u4E2AIP\"},null,8,[\"modelValue\"]),d(Me,{color:\"#409eff\",size:\"small\",onClick:N},{default:p(()=>[D(\" IP\\u9009\\u62E9\\u5339\\u914D\\u6D4B\\u8BD5 \")]),_:1})]),_:1})]),_:1})])):oe(\"\",!0),d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"\\u57DF\\u540D\\u5217\\u8868\"},{default:p(()=>[d(Ft,{modelValue:se.value,\"onUpdate:modelValue\":k[28]||(k[28]=J=>se.value=J),autosize:{minRows:3,maxRows:9},placeholder:\"\\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\\u5982\\u8D26\\u53F7\\u652F\\u6301\\u66F4\\u5C0F\\u7684 TTL , \\u53EF\\u4FEE\\u6539\\u3002 IP \\u6709\\u53D8\\u5316\\u65F6\\u624D\\u4F1A\\u66F4\\u65B0 TTL\"},{default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"TTL\"},{default:p(()=>[d(Gn,{modelValue:x.value.TTL,\"onUpdate:modelValue\":k[29]||(k[29]=J=>x.value.TTL=J),class:\"m-2\"},{default:p(()=>[(b(),C(We,null,pt(h,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1})]),_:1})]),f(\"div\",d0e,[d(qe,{label:\"Webhook\",\"label-width\":\"auto\"},{default:p(()=>[d(Fe,{class:\"box-item\",effect:\"dark\",content:\"Webhook \\u4EC5\\u5F53IP\\u6539\\u53D8,\\u57DF\\u540D\\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u6216\\u5931\\u8D25\\u65F6\\u624D\\u4F1A\\u89E6\\u53D1Webhook\"},{default:p(()=>[d(de,{modelValue:x.value.WebhookEnable,\"onUpdate:modelValue\":k[30]||(k[30]=J=>x.value.WebhookEnable=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\\u5982\\u679C\\u9009\\u62E9\\u4E86DNS\\u4EE3\\u7406\\u8BBE\\u7F6E\\u5148\\u8BF7\\u4FDD\\u5B58\\u4EFB\\u52A1\\u518D\\u624B\\u52A8\\u89E6\\u53D1\\u6D4B\\u8BD5,\\u5426\\u5219\\u5728\\u6D4B\\u8BD5\\u4E2D\\u53EF\\u80FD\\u4EE3\\u7406\\u8BBE\\u7F6E\\u4E0D\\u751F\\u6548\"},{default:p(()=>[ye(d(Me,{color:\"#409eff\",size:\"small\",onClick:A,style:{\"margin-left\":\"30px\"}},{default:p(()=>[D(\" Webhook\\u624B\\u52A8\\u89E6\\u53D1\\u6D4B\\u8BD5 \")]),_:1},512),[[Be,x.value.WebhookEnable]])]),_:1})]),_:1}),ye(f(\"div\",null,[d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\\u83B7\\u53D6IP\\u5931\\u8D25\\u65F6\\u540C\\u6837\\u89E6\\u53D1Webhook,\\u9ED8\\u8BA4\\u4E0D\\u5F00\\u542F\"},{default:p(()=>[d(qe,{label:\"\\u83B7\\u53D6IP\\u5931\\u8D25\\u65F6\\u89E6\\u53D1Webhook\",\"label-width\":\"auto\"},{default:p(()=>[d(de,{modelValue:x.value.WebhookCallOnGetIPfail,\"onUpdate:modelValue\":k[31]||(k[31]=J=>x.value.WebhookCallOnGetIPfail=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),f(\"div\",f0e,[d(qe,{label:\"\\u5E38\\u89C1Webhook(\\u6D88\\u606F\\u63A8\\u9001)\\u670D\\u52A1\\u5546\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:s.value,\"onUpdate:modelValue\":k[32]||(k[32]=J=>s.value=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\",onChange:j},{default:p(()=>[(b(),C(We,null,pt($,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"]),D(\"\\u8BF4\\u660E \")]),_:1}),ye(f(\"div\",p0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[v0e]),_:1})],512),[[Be,s.value==\"custom\"]]),ye(f(\"div\",h0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[_0e]),_:1})],512),[[Be,s.value==\"serverjiang\"]]),ye(f(\"div\",m0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[g0e]),_:1})],512),[[Be,s.value==\"bark\"]]),ye(f(\"div\",b0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[y0e,w0e,C0e,E0e]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:i.value,\"onUpdate:modelValue\":k[33]||(k[33]=J=>i.value=J),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[A0e]),_:1})],512),[[Be,s.value==\"dingding\"]]),ye(f(\"div\",F0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[x0e,$0e,D0e,B0e]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:i.value,\"onUpdate:modelValue\":k[34]||(k[34]=J=>i.value=J),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[S0e]),_:1})],512),[[Be,s.value==\"feishu\"]]),ye(f(\"div\",k0e,[d(qe,{\"label-width\":\"auto\"},{default:p(()=>[P0e,L0e,z0e]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:i.value,\"onUpdate:modelValue\":k[35]||(k[35]=J=>i.value=J),type:\"textarea\",rows:\"5\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{\"label-width\":\"auto\"},{default:p(()=>[T0e]),_:1})],512),[[Be,s.value==\"weixinpro\"]])]),f(\"div\",M0e,[d(Fe,{class:\"box-item\",effect:\"dark\",content:\"\"},{content:p(()=>[D(\"\\u652F\\u6301\\u7684\\u53D8\\u91CF \"),V0e,D(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),H0e,D(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),I0e,D(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),R0e,D(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),N0e,D(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),O0e,D(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:p(()=>[d(qe,{label:\"\\u63A5\\u53E3\\u5730\\u5740\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.WebhookURL,\"onUpdate:modelValue\":k[36]||(k[36]=J=>x.value.WebhookURL=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(qe,{label:\"\\u8BF7\\u6C42\\u65B9\\u6CD5\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.WebhookMethod,\"onUpdate:modelValue\":k[37]||(k[37]=J=>x.value.WebhookMethod=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(B,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E00\\u884C\\u4E00\\u6761Header(key:value) \"),U0e,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF :\"),W0e,D(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),q0e,D(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP \"),j0e,D(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),K0e,D(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),G0e,D(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),Y0e,D(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),X0e,D(\" \\u5982\\u679C\\u9700\\u8981\\u4F7F\\u7528BasicAuth,\\u8BF7\\u4F7F\\u7528\\u4E0B\\u9762\\u4E24\\u884CHeader\\u8BBE\\u7F6EBasicAuth\\u7684\\u8D26\\u53F7\\u548C\\u5BC6\\u7801\"),J0e,D(\" BasicAuthUserName:\\u4F60\\u7684\\u8D26\\u53F7\"),Q0e,D(\" BasicAuthPassword:\\u4F60\\u7684\\u5BC6\\u7801\")]),default:p(()=>[d(qe,{\"label-width\":\"auto\",label:\"Headers\"},{default:p(()=>[d(Ft,{modelValue:ke.value,\"onUpdate:modelValue\":k[38]||(k[38]=J=>ke.value=J),autosize:{minRows:3,maxRows:5},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\"\\u652F\\u6301\\u7684\\u53D8\\u91CF\"),Z0e,D(\" #{time} : \\u89E6\\u53D1Webhook\\u7684\\u65F6\\u95F4 \"),ede,D(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),tde,D(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),nde,D(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),ode,D(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),lde,D(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:p(()=>[ye(d(qe,{label:\"RequestBody\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.WebhookRequestBody,\"onUpdate:modelValue\":k[39]||(k[39]=J=>x.value.WebhookRequestBody=J),type:\"textarea\",rows:\"5\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1},512),[[Be,x.value.WebhookMethod!=\"get\"]])]),_:1}),d(Fe,{content:\"\\u7981\\u7528Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B,\\u5F00\\u542F\\u540E\\u4EC5\\u4EE5http StatusCode==200\\u5224\\u65AD\\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528.\",placement:\"top\"},{default:p(()=>[d(qe,{label:\"\\u7981\\u7528Webhook\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5B57\\u7B26\\u4E32\\u68C0\\u6D4B\",\"label-width\":\"auto\"},{default:p(()=>[d(de,{modelValue:x.value.WebhookDisableCallbackSuccessContentCheck,\"onUpdate:modelValue\":k[40]||(k[40]=J=>x.value.WebhookDisableCallbackSuccessContentCheck=J),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u662F\",\"inactive-text\":\"\\u5426\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(Fe,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\"\\u7528\\u4E8E\\u5224\\u65AD\\u8BB0\\u5F55Webhook \\u63A5\\u53E3\\u662F\\u5426\\u6210\\u529F\\u8C03\\u7528\"),ade,D(\" \\u591A\\u79CD\\u8868\\u793A\\u6210\\u529F\\u7684\\u4E0D\\u540C\\u5B57\\u7B26\\u4E32\\u8BF7\\u5206\\u591A\\u884C\\u5199\"),rde,D(\" \\u652F\\u6301\\u7684\\u53D8\\u91CF \"),ude,D(\" #{ipAddr} : \\u5F53\\u524D\\u516C\\u7F51IP\"),sde,D(\" #{successDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),ide,D(\" #{successDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u6210\\u529F\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\"),cde,D(\" #{failedDomains} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528,\\u53F7\\u5206\\u9694\"),dde,D(\" #{failedDomainsLine} : \\u66F4\\u65B0/\\u6DFB\\u52A0\\u5931\\u8D25\\u7684\\u57DF\\u540D\\u5217\\u8868,\\u57DF\\u540D\\u4E4B\\u95F4\\u7528'\\\\n'\\u5206\\u9694\")]),default:p(()=>[d(qe,{label:\"\\u63A5\\u53E3\\u8C03\\u7528\\u6210\\u529F\\u5305\\u542B\\u7684\\u5B57\\u7B26\\u4E32\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:ve.value,\"onUpdate:modelValue\":k[41]||(k[41]=J=>ve.value=J),autosize:{minRows:3,maxRows:5},type:\"textarea\",autocomplete:\"off\",placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,!x.value.WebhookDisableCallbackSuccessContentCheck]])]),f(\"div\",fde,[d(qe,{label:\"\\u4EE3\\u7406\\u8BBE\\u7F6E\",\"label-width\":\"auto\"},{default:p(()=>[d(Gn,{modelValue:x.value.WebhookProxy,\"onUpdate:modelValue\":k[42]||(k[42]=J=>x.value.WebhookProxy=J),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(),C(We,null,pt(m,J=>d(Kn,{key:J.value,label:J.label,value:J.value},null,8,[\"label\",\"value\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668IP\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.WebhookProxyAddr,\"onUpdate:modelValue\":k[43]||(k[43]=J=>x.value.WebhookProxyAddr=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u7528\\u6237\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.WebhookProxyUser,\"onUpdate:modelValue\":k[44]||(k[44]=J=>x.value.WebhookProxyUser=J),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1}),d(qe,{label:\"\\u4EE3\\u7406\\u670D\\u52A1\\u5668\\u8BA4\\u8BC1\\u5BC6\\u7801\",\"label-width\":\"auto\"},{default:p(()=>[d(Ft,{modelValue:x.value.WebhookProxyPassword,\"onUpdate:modelValue\":k[45]||(k[45]=J=>x.value.WebhookProxyPassword=J),autocomplete:\"off\",placeholder:\"\\u6CA1\\u6709\\u53EF\\u7559\\u7A7A\"},null,8,[\"modelValue\"])]),_:1})],512),[[Be,!(x.value.WebhookProxy==\"\"||x.value.WebhookProxy==\"dns\")]])])],512),[[Be,x.value.WebhookEnable]])]),f(\"div\",pde,[d(Fe,{content:\"Http Client \\u8D85\\u65F6\\u65F6\\u95F4,\\u6CA1\\u5FC5\\u8981\\u4E0D\\u8981\\u6539,\\u53EF\\u8BBE\\u7F6E\\u8303\\u56F4 (3-60)\",placement:\"top\"},{default:p(()=>[d(qe,{label:\"HttpClient timeout(\\u79D2)\",\"label-width\":\"auto\",min:3,max:60},{default:p(()=>[d(I2,{modelValue:x.value.HttpClientTimeout,\"onUpdate:modelValue\":k[46]||(k[46]=J=>x.value.HttpClientTimeout=J),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})])],512),[[Be,x.value.Enable]])]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"])])}}});var _de=wn(hde,[[\"__scopeId\",\"data-v-0efebb96\"]]);const Se=e=>(ar(\"data-v-79bf589c\"),e=e(),rr(),e),mde={class:\"ReverseProxyPageRadius\",style:{borderRadius:\"base\"}},gde={class:\"itemradius\",style:{borderRadius:\"base\"}},bde=Se(()=>f(\"br\",null,null,-1)),yde=[\"innerHTML\"],wde=[\"innerHTML\"],Cde=Se(()=>f(\"br\",null,null,-1)),Ede=Se(()=>f(\"br\",null,null,-1)),Ade=Se(()=>f(\"br\",null,null,-1)),Fde=Se(()=>f(\"br\",null,null,-1)),xde=Se(()=>f(\"br\",null,null,-1)),$de=[\"innerHTML\"],Dde=[\"innerHTML\"],Bde=[\"innerHTML\"],Sde=Se(()=>f(\"br\",null,null,-1)),kde=Se(()=>f(\"br\",null,null,-1)),Pde=Se(()=>f(\"br\",null,null,-1)),Lde=Se(()=>f(\"br\",null,null,-1)),zde=Se(()=>f(\"br\",null,null,-1)),Tde={class:\"fromitemDivRadius\"},Mde=Se(()=>f(\"br\",null,null,-1)),Vde=Se(()=>f(\"br\",null,null,-1)),Hde=Se(()=>f(\"br\",null,null,-1)),Ide={class:\"fromitemDivRadius\"},Rde={class:\"fromitemChildDivRadius\"},Nde=Se(()=>f(\"br\",null,null,-1)),Ode=Se(()=>f(\"br\",null,null,-1)),Ude=Se(()=>f(\"br\",null,null,-1)),Wde=Se(()=>f(\"br\",null,null,-1)),qde=Se(()=>f(\"br\",null,null,-1)),jde=Se(()=>f(\"br\",null,null,-1)),Kde=Se(()=>f(\"br\",null,null,-1)),Gde=Se(()=>f(\"br\",null,null,-1)),Yde=Se(()=>f(\"br\",null,null,-1)),Xde=Se(()=>f(\"br\",null,null,-1)),Jde=Se(()=>f(\"br\",null,null,-1)),Qde=Se(()=>f(\"br\",null,null,-1)),Zde=Se(()=>f(\"br\",null,null,-1)),e1e=Se(()=>f(\"br\",null,null,-1)),t1e=Se(()=>f(\"br\",null,null,-1)),n1e={class:\"fromitemChildSafeDivRadius\"},o1e=Se(()=>f(\"p\",null,\"\\u5BA2\\u6237\\u7AEFIP\\u83B7\\u53D6\\u8BBE\\u7F6E\",-1)),l1e=Se(()=>f(\"br\",null,null,-1)),a1e=Se(()=>f(\"br\",null,null,-1)),r1e=Se(()=>f(\"br\",null,null,-1)),u1e=Se(()=>f(\"br\",null,null,-1)),s1e=Se(()=>f(\"br\",null,null,-1)),i1e=Se(()=>f(\"br\",null,null,-1)),c1e=Se(()=>f(\"br\",null,null,-1)),d1e=Se(()=>f(\"br\",null,null,-1)),f1e=Se(()=>f(\"br\",null,null,-1)),p1e={class:\"fromitemChildSafeDivRadius\"},v1e=Se(()=>f(\"p\",null,\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",-1)),h1e=Se(()=>f(\"br\",null,null,-1)),_1e=Se(()=>f(\"br\",null,null,-1)),m1e=Se(()=>f(\"br\",null,null,-1)),g1e=Se(()=>f(\"br\",null,null,-1)),b1e={class:\"fromitemChildSafeDivRadius\"},y1e=Se(()=>f(\"p\",null,\"\\u5B89\\u5168\\u8BBE\\u7F6E\",-1)),w1e=Se(()=>f(\"br\",null,null,-1)),C1e=Se(()=>f(\"br\",null,null,-1)),E1e=Se(()=>f(\"br\",null,null,-1)),A1e=Se(()=>f(\"br\",null,null,-1)),F1e=Se(()=>f(\"br\",null,null,-1)),x1e=Se(()=>f(\"br\",null,null,-1)),$1e=Se(()=>f(\"br\",null,null,-1)),D1e={class:\"fromitemChildSafeDivRadius\"},B1e=Se(()=>f(\"p\",null,\"\\u9690\\u79C1\\u8BBE\\u7F6E\",-1)),S1e=Se(()=>f(\"br\",null,null,-1)),k1e={class:\"fromitemDivRadius\"},P1e=Se(()=>f(\"p\",null,\"\\u53CD\\u5411\\u4EE3\\u7406\\u5B50\\u89C4\\u5219\\u5217\\u8868\",-1)),L1e={class:\"fromitemChildDivRadius\"},z1e=Se(()=>f(\"br\",null,null,-1)),T1e=Se(()=>f(\"br\",null,null,-1)),M1e=Se(()=>f(\"br\",null,null,-1)),V1e=Se(()=>f(\"br\",null,null,-1)),H1e=Se(()=>f(\"br\",null,null,-1)),I1e=Se(()=>f(\"br\",null,null,-1)),R1e=Se(()=>f(\"br\",null,null,-1)),N1e=Se(()=>f(\"br\",null,null,-1)),O1e=Se(()=>f(\"br\",null,null,-1)),U1e=Se(()=>f(\"br\",null,null,-1)),W1e=Se(()=>f(\"br\",null,null,-1)),q1e=Se(()=>f(\"br\",null,null,-1)),j1e=Se(()=>f(\"br\",null,null,-1)),K1e=Se(()=>f(\"br\",null,null,-1)),G1e=Se(()=>f(\"br\",null,null,-1)),Y1e=Se(()=>f(\"br\",null,null,-1)),X1e=Se(()=>f(\"br\",null,null,-1)),J1e={class:\"fromitemChildSafeDivRadius\"},Q1e=Se(()=>f(\"p\",null,\"\\u5BA2\\u6237\\u7AEFIP\\u83B7\\u53D6\\u8BBE\\u7F6E\",-1)),Z1e=Se(()=>f(\"br\",null,null,-1)),efe=Se(()=>f(\"br\",null,null,-1)),tfe=Se(()=>f(\"br\",null,null,-1)),nfe=Se(()=>f(\"br\",null,null,-1)),ofe=Se(()=>f(\"br\",null,null,-1)),lfe=Se(()=>f(\"br\",null,null,-1)),afe=Se(()=>f(\"br\",null,null,-1)),rfe=Se(()=>f(\"br\",null,null,-1)),ufe=Se(()=>f(\"br\",null,null,-1)),sfe={class:\"fromitemChildSafeDivRadius\"},ife=Se(()=>f(\"p\",null,\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",-1)),cfe=Se(()=>f(\"br\",null,null,-1)),dfe=Se(()=>f(\"br\",null,null,-1)),ffe=Se(()=>f(\"br\",null,null,-1)),pfe=Se(()=>f(\"br\",null,null,-1)),vfe={class:\"fromitemChildSafeDivRadius\"},hfe=Se(()=>f(\"p\",null,\"\\u5B89\\u5168\\u8BBE\\u7F6E\",-1)),_fe=Se(()=>f(\"br\",null,null,-1)),mfe=Se(()=>f(\"br\",null,null,-1)),gfe=Se(()=>f(\"br\",null,null,-1)),bfe=Se(()=>f(\"br\",null,null,-1)),yfe=Se(()=>f(\"br\",null,null,-1)),wfe=Se(()=>f(\"br\",null,null,-1)),Cfe=Se(()=>f(\"br\",null,null,-1)),Efe={class:\"fromitemChildSafeDivRadius\"},Afe=Se(()=>f(\"p\",null,\"\\u9690\\u79C1\\u8BBE\\u7F6E\",-1)),Ffe=Se(()=>f(\"br\",null,null,-1)),xfe={class:\"dialog-footer\"},$fe=Le({__name:\"reverseproxy\",setup(e){const t=z(!1),n=z(!1),o=z(\"\"),l=z(0),a=z(50),r=z(0),u=z([{ProxyKey:\"\",ClientIP:\"\",LogContent:\"\",LogTime:\"\"}]),s=z(\"\"),i=z(\"\"),c=z(1),m=z(\"\"),h=z([{RuleName:\"\",RuleKey:\"\",Enable:!1,Network:\"\",ListenIP:\"\",ListenPort:666,EnableTLS:!1,DefaultProxy:{Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:100,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!0,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"},ProxyList:[{Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"}]}]),v=z({RuleName:\"\",RuleKey:\"\",Enable:!1,Network:\"\",ListenIP:\"\",ListenPort:666,EnableTLS:!1,DefaultProxy:{Key:\"\",Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:100,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!0,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"},ProxyList:[{Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:30,RequestInfoLogFormat:\"\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"\",SafeUserAgentMode:\"\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:\"\"}]}),g=z(\"\"),y=z(\"\"),A=z(\"\"),w=z(\"\"),F=z([\"\"]),E=z([\"\"]),$=z([\"\"]),T=z([\"\"]),B=z([\"\"]),P=z([\"\"]),H=(se,le)=>{n.value=!0,c.value=1,r.value=0,a.value=10,s.value=se,i.value=le,Es(se,le,a.value,c.value).then(L=>{if(L.ret==0){a.value=L.pageSize,r.value=L.total,u.value=L.logs,N();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(L=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+L),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},I=se=>{c.value=se-1},j=se=>{c.value=se+1},Z=se=>{a.value=se,c.value=1,Es(s.value,i.value,a.value,c.value).then(le=>{if(le.ret==0){a.value=le.pageSize,r.value=le.total,u.value=le.logs,N();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(le=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+le),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},G=se=>{c.value=se,Es(s.value,i.value,a.value,c.value).then(le=>{if(le.ret==0){a.value=le.pageSize,r.value=le.total,u.value=le.logs,N();return}ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")}).catch(le=>{console.log(\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519:\"+le),ie(\"error\",\"\\u83B7\\u53D6\\u65E5\\u5FD7\\u51FA\\u9519\")})},N=()=>{m.value=\"\";for(let se in u.value){let le=u.value[se];se!=\"0\"&&(m.value+=`\n`),m.value+=le.LogTime+\"\t\"+le.LogContent+`\n`}},Y=(se,le)=>{switch(t.value=!0,o.value=se,l.value=-1,se){case\"add\":v.value={RuleName:\"\",RuleKey:\"\",Enable:!0,Network:\"tcp6\",ListenIP:\"\",ListenPort:16666,EnableTLS:!1,DefaultProxy:{Key:\"default\",Locations:[],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:10,RequestInfoLogFormat:\"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"blacklist\",SafeUserAgentMode:\"blacklist\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:`User-agent:  *\nDisallow:  /`},ProxyList:[]},E.value=[],$.value=[],T.value=[],B.value=[],P.value=[],g.value=`0.0.0.0/0\n::/0`,y.value=`X-Forwarded-For\nX-Real-IP`,A.value=\"\",w.value=\"\";break;case\"alter\":{v.value=le,E.value=[],$.value=[],T.value=[],B.value=[],P.value=[],g.value=Xn(v.value.DefaultProxy.TrustedCIDRsStrList),y.value=Xn(v.value.DefaultProxy.RemoteIPHeaders),w.value=Xn(v.value.DefaultProxy.Locations),A.value=Xn(v.value.DefaultProxy.UserAgentfilter);for(let L in v.value.ProxyList)E.value.push(Xn(v.value.ProxyList[L].Domains)),$.value.push(Xn(v.value.ProxyList[L].Locations)),T.value.push(Xn(v.value.ProxyList[L].UserAgentfilter)),B.value.push(Xn(v.value.ProxyList[L].TrustedCIDRsStrList)),P.value.push(Xn(v.value.ProxyList[L].RemoteIPHeaders))}break}v.value.Network==\"tcp4\"?F.value=[\"tcp4\"]:v.value.Network==\"tcp6\"?F.value=[\"tcp6\"]:v.value.Network==\"tcp\"&&(F.value=[\"tcp4\",\"tcp6\"])},ge=()=>{E.value.push(\"\"),$.value.push(\"\"),T.value.push(\"\"),B.value.push(`0.0.0.0/0\n::/0`),P.value.push(`X-Forwarded-For\nX-Real-IP`),v.value.ProxyList.push({Enable:!0,Key:\"\",Remark:\"\",Domains:[\"\"],Locations:[\"\"],EnableAccessLog:!0,LogLevel:4,LogOutputToConsole:!1,AccessLogMaxNum:1e3,WebListShowLastLogMaxCount:10,RequestInfoLogFormat:\"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",ForwardedByClientIP:!1,TrustedCIDRsStrList:[\"\"],RemoteIPHeaders:[\"\"],AddRemoteIPToHeader:!1,AddRemoteIPHeaderKey:\"\",EnableBasicAuth:!1,BasicAuthUser:\"\",BasicAuthPasswd:\"\",SafeIPMode:\"blacklist\",SafeUserAgentMode:\"blacklist\",UserAgentfilter:[\"\"],CustomRobotTxt:!1,RobotTxt:`User-agent:  *\nDisallow:  /`});var se=v.value.ProxyList.length;l.value=se-1},fe=se=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664\\u7B2C \"+(se+1)+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8BBE\\u7F6E?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{v.value.ProxyList.splice(se,1),E.value.splice(se,1),$.value.splice(se,1),T.value.splice(se,1),B.value.splice(se,1),P.value.splice(se,1)})},Ee=se=>{var le=se.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":se.RuleName;zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664 \"+le+\" \\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{die(se.RuleKey).then(L=>{if(L.ret==0){ie(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u6210\\u529F\"),$e();return}ie(\"error\",L.msg)}).catch(L=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+L),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},ne=(se,le)=>{const L=se==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",S=\"[\"+(le.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":le.RuleName)+\"]\";return new Promise((V,O)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\"+L+\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+S+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Ad(le.RuleKey,\"\",!se).then(te=>{if(te.ret==0){V(!0),ie(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219  \"+S+L+\"\\u6210\\u529F\");return}V(!1),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+S+L+\"\\u5931\\u8D25: \"+te.msg),te.syncres!=null&&te.syncres!=\"\"&&to(\"warn\",te.syncres,0)}).catch(te=>{V(!1),console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+S+L+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+te),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+S+L+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{V(!1)})})},ee=(se,le,L)=>{const S=se==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",V=\"[\"+(le.RuleName==\"\"?\"\\u672A\\u547D\\u540D\":le.RuleName)+\"]\",O=\"[\"+(L.Remark==\"\"?\"\\u672A\\u547D\\u540D\":L.Remark)+\"]\";return new Promise((te,_e)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\"+S+\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+V+\"\\u7684\\u5B50\\u89C4\\u5219 \"+O+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Ad(le.RuleKey,L.Key,!se).then(pe=>{if(pe.ret==0){te(!0),ie(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219  \"+V+\"\\u7684\\u5B50\\u89C4\\u5219 \"+O+S+\"\\u6210\\u529F\");return}te(!1),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+V+\"\\u7684\\u5B50\\u89C4\\u5219 \"+O+S+\"\\u5931\\u8D25: \"+pe.msg),pe.syncres!=null&&pe.syncres!=\"\"&&to(\"warn\",pe.syncres,0)}).catch(pe=>{te(!1),console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+V+\"\\u7684\\u5B50\\u89C4\\u5219 \"+O+S+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+pe),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"+V+\"\\u7684\\u5B50\\u89C4\\u5219 \"+O+S+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{te(!1)})})},xe=()=>{v.value.DefaultProxy.TrustedCIDRsStrList=St(g.value),v.value.DefaultProxy.RemoteIPHeaders=St(y.value),v.value.DefaultProxy.UserAgentfilter=St(A.value),v.value.DefaultProxy.Locations=St(w.value);for(let se in v.value.ProxyList)v.value.ProxyList[se].Domains=St(E.value[se]),v.value.ProxyList[se].Locations=St($.value[se]),v.value.ProxyList[se].UserAgentfilter=St(T.value[se]),v.value.ProxyList[se].TrustedCIDRsStrList=St(B.value[se]),v.value.ProxyList[se].RemoteIPHeaders=St(P.value[se]);for(let se in v.value.ProxyList){let le=parseInt(se)+1,L=v.value.ProxyList[se];if(console.log(\"proxy domains length: \"+L.Domains.length),L.Domains.length<=0){ie(\"error\",\"\\u7B2C \"+le+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u89C4\\u5219\\u4E2D\\u57DF\\u540D\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}if(L.Locations.length<=0){ie(\"error\",\"\\u7B2C \"+le+\" \\u6761\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u89C4\\u5219\\u4E2D\\u540E\\u7AEF\\u5730\\u5740\\u4E0D\\u80FD\\u4E3A\\u7A7A\");return}}switch(o.value){case\"add\":sie(v.value).then(se=>{if(se.ret==0){t.value=!1,ie(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u6210\\u529F\"),$e();return}ie(\"error\",se.msg)}).catch(se=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+se),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;case\"alter\":cie(v.value).then(se=>{if(se.ret==0){t.value=!1,ie(\"success\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u6210\\u529F\"),$e();return}ie(\"error\",se.msg)}).catch(se=>{console.log(\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+se),ie(\"error\",\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")});break;default:console.log(\"\\u9519\\u8BEF\\u7684ruleFormOptionType \"+o.value)}},$e=()=>{iie().then(se=>{if(se.ret==0){se.list==null||se.list==null?h.value=[]:h.value=se.list;return}}).catch(se=>{console.log(\"\\u83B7\\u53D6\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519:\"+se),ie(\"error\",\"\\u83B7\\u53D6\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u5217\\u8868\\u51FA\\u9519\")})},x=(se,le)=>{var L=\"\";if(se.AccessLogs==null||se.AccessLogs==null)return L=\"\\u6682\\u65E0\\u65E5\\u5FD7\",L;console.log();for(var S of Object.keys(se.AccessLogs))if(console.log(\"key:\"+S+\"   proxyKey:\"+le),S==le){if(se.AccessLogs[S]==null||se.AccessLogs[S]==null||se.AccessLogs[S].lengh==0)break;for(let V in se.AccessLogs[S]){let O=se.AccessLogs[S][V];V!=\"0\"&&(L+=\"<br />\"),L+=O.LogTime+\"&nbsp;&nbsp;&nbsp;\"+O.LogContent+\"<br />\"}}return L==\"\"&&(L=\"\\u6682\\u65E0\\u65E5\\u5FD7\"),L},W=z(!1),we=z(!0),Ae=[\"tcp4\",\"tcp6\"],ke=se=>{v.value.Network=se?\"tcp\":\"\",F.value=se?[\"tcp4\",\"tcp6\"]:[],we.value=!1},ve=se=>{const le=se.length;W.value=le===Ae.length,we.value=le>0&&le<Ae.length,v.value.Network=ze(se)},ze=se=>{switch(se.length){case 0:return\"\";case 1:return se[0]+\"\";case 2:return\"tcp\";default:return\"\"}};var Ke;return at(()=>{$e(),Ke=setInterval(()=>{$e()},1500)}),Bo(()=>{clearInterval(Ke)}),(se,le)=>{const L=kn,S=Uu,V=ga,O=Sn,te=Ou,_e=un,pe=Qe(\"Plus\"),Ce=ut,be=ha,re=yn,me=jn,Re=$o,Q=D4,Pe=To,Ge=ju,Xe=qu,he=b2,Ie=y2,K=nte,ue=tte,q=qn,k=ma,Me=Z4;return b(),C(We,null,[f(\"div\",mde,[d(_e,{height:\"100%\"},{default:p(()=>[(b(!0),C(We,null,pt(h.value,X=>(b(),C(\"div\",gde,[d(te,{column:8,border:\"\"},{default:p(()=>[d(S,{label:\"\\u89C4\\u5219\\u540D\\u79F0\",span:1},{default:p(()=>[ye(d(L,{size:\"small\"},{default:p(()=>[D(ce(X.RuleName==\"\"?\"\\u672A\\u547D\\u540D\\u89C4\\u5219\":X.RuleName),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(S,{label:\"\\u76D1\\u542C\\u7C7B\\u578B\",span:2},{default:p(()=>[ye(d(L,{color:\"#0059b3\",size:\"small\"},{default:p(()=>[D(ce(X.Network),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(S,{label:\"\\u76D1\\u542C\\u5730\\u5740\",span:2},{default:p(()=>[ye(d(L,{type:\"success\",size:\"small\"},{default:p(()=>[D(ce(X.ListenIP==\"\"?\"\\u6240\\u6709\\u5730\\u5740\":X.ListenIP),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(S,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",span:1},{default:p(()=>[ye(d(L,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(X.ListenPort),1)]),_:2},1536),[[Be,!0]]),ye(d(L,{type:X.EnableTLS!=!0?\"info\":\"primary\",size:\"small\"},{default:p(()=>[D(ce(X.EnableTLS==!0?\"TLS\\u5DF2\\u542F\\u7528\":\"TLS\\u672A\\u542F\\u7528\"),1)]),_:2},1032,[\"type\"]),[[Be,!0]])]),_:2},1024),d(S,{label:\"\\u89C4\\u5219\\u64CD\\u4F5C\",span:2},{default:p(()=>[d(O,{content:X.Enable==!0?\"\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:p(()=>[d(V,{modelValue:X.Enable,\"onUpdate:modelValue\":de=>X.Enable=de,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":ne.bind(this,X.Enable,X),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),D(\" \\xA0\\xA0 \"),d(L,{size:\"default\",type:\"primary\",onClick:de=>Y(\"alter\",X)},{default:p(()=>[D(\"\\u7F16\\u8F91\")]),_:2},1032,[\"onClick\"]),d(L,{size:\"default\",type:\"danger\",onClick:de=>Ee(X)},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024)]),_:2},1024),d(te,{column:8,border:\"\"},{default:p(()=>[d(S,{label:\"\\u9ED8\\u8BA4\\u5B50\\u89C4\\u5219\",span:1},{default:p(()=>[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u9ED8\\u8BA4\\u89C4\\u5219\"),bde]),default:p(()=>[ye(d(L,{type:\"info\",size:\"small\"},{default:p(()=>[D(\" \\u9ED8\\u8BA4\\u89C4\\u5219 \")]),_:1},512),[[Be,!0]])]),_:1})]),_:1}),d(S,{label:\"\\u524D\\u7AEF\\u57DF\\u540D\",span:1},{default:p(()=>[d(O,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u672A\\u5339\\u914D\\u5B50\\u89C4\\u5219\\u7684\\u4EFB\\u610F\\u57DF\\u540D \")]),default:p(()=>[ye(d(L,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(\" \\u672A\\u5339\\u914D\\u7684\\u57DF\\u540D \")]),_:1},512),[[Be,!0]])]),_:1})]),_:1}),d(S,{label:\"\\u540E\\u7AEF\\u5730\\u5740\",span:2},{default:p(()=>[d(O,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:_(Ra)(X.DefaultProxy.Locations)},null,8,yde)]),default:p(()=>[ye(d(L,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(X.DefaultProxy.Locations==null||X.DefaultProxy.Locations==null||X.DefaultProxy.Locations.length<=0?\"\\u672A\\u8BBE\\u7F6E\":X.DefaultProxy.Locations.length==1?X.DefaultProxy.Locations[0]:X.DefaultProxy.Locations[0]+\"...\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(S,{label:\"\\u65E5\\u5FD7\",span:2},{default:p(()=>[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:x(X,\"default\")},null,8,wde)]),default:p(()=>[ye(d(L,{type:\"info\",size:\"small\",onClick:de=>H(X.RuleKey,\"default\")},{default:p(()=>[D(\" \\u67E5\\u770B \")]),_:2},1032,[\"onClick\"]),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(S,{label:\"\\u5B89\\u5168\\u8BBE\\u7F6E\",span:2},{default:p(()=>[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},jl({default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\",disabled:X.DefaultProxy.EnableBasicAuth!=!0},{default:p(()=>[D(ce(X.DefaultProxy.EnableBasicAuth==!1?\"Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\":\"Basic\\u8BA4\\u8BC1\\u5DF2\\u542F\\u7528\"),1)]),_:2},1032,[\"disabled\"]),[[Be,!0]])]),_:2},[X.DefaultProxy.EnableBasicAuth?{name:\"content\",fn:p(()=>[D(\" \\u7528\\u6237\\u540D:\"+ce(X.DefaultProxy.BasicAuthUser),1),Cde,D(\" \\u5BC6\\u7801:\"+ce(X.DefaultProxy.BasicAuthPasswd),1),Ede]),key:\"0\"}:void 0,X.DefaultProxy.EnableBasicAuth?void 0:{name:\"content\",fn:p(()=>[D(\" Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\"),Ade]),key:\"1\"}]),1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),Fde]),default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(X.DefaultProxy.SafeIPMode==\"blacklist\"?\"IP\\u9ED1\\u540D\\u5355\":\"IP\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),xde]),default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(X.DefaultProxy.SafeUserAgentMode==\"blacklist\"?\"UA\\u9ED1\\u540D\\u5355\":\"UA\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),(b(!0),C(We,null,pt(X.ProxyList,de=>(b(),C(\"div\",null,[d(S,{label:\"\\u81EA\\u5B9A\\u4E49\\u5B50\\u89C4\\u5219\",span:1},{default:p(()=>[ye(d(L,{size:\"small\"},{default:p(()=>[D(ce(de.Remark==\"\"?\"\\u672A\\u547D\\u540D\\u5B50\\u89C4\\u5219\":de.Remark),1)]),_:2},1536),[[Be,!0]]),D(\" \\xA0 \"),d(O,{content:de.Enable==!0?\"\\u5B50\\u89C4\\u5219\\u5DF2\\u542F\\u7528\":\"\\u5B50\\u89C4\\u5219\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:p(()=>[d(V,{modelValue:de.Enable,\"onUpdate:modelValue\":Fe=>de.Enable=Fe,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":ee.bind(this,de.Enable,X,de),size:\"small\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"])]),_:2},1024),d(S,{label:\"\\u524D\\u7AEF\\u57DF\\u540D\",span:1},{default:p(()=>[d(O,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:_(Ra)(de.Domains)},null,8,$de)]),default:p(()=>[ye(d(L,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(de.Domains.length==1?de.Domains[0]:de.Domains[0]+\" ...\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(S,{label:\"\\u540E\\u7AEF\\u5730\\u5740\",span:2},{default:p(()=>[d(O,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:_(Ra)(de.Locations)},null,8,Dde)]),default:p(()=>[ye(d(L,{color:\"#409eff\",size:\"small\"},{default:p(()=>[D(ce(de.Locations.length==1?de.Locations[0]:de.Locations[0]+\" ...\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(S,{label:\"\\u65E5\\u5FD7\",span:2},{default:p(()=>[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:x(X,de.Key)},null,8,Bde)]),default:p(()=>[ye(d(L,{type:\"info\",size:\"small\",onClick:Fe=>H(X.RuleKey,de.Key)},{default:p(()=>[D(\" \\u67E5\\u770B \")]),_:2},1032,[\"onClick\"]),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(S,{label:\"\\u5B89\\u5168\\u8BBE\\u7F6E\",span:2},{default:p(()=>[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},jl({default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\",disabled:de.EnableBasicAuth!=!0},{default:p(()=>[D(ce(de.EnableBasicAuth==!1?\"Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\":\"Basic\\u8BA4\\u8BC1\\u5DF2\\u542F\\u7528\"),1)]),_:2},1032,[\"disabled\"]),[[Be,!0]])]),_:2},[de.EnableBasicAuth?{name:\"content\",fn:p(()=>[D(\" \\u7528\\u6237\\u540D:\"+ce(de.BasicAuthUser),1),Sde,D(\" \\u5BC6\\u7801:\"+ce(de.BasicAuthPasswd),1),kde]),key:\"0\"}:void 0,de.EnableBasicAuth?void 0:{name:\"content\",fn:p(()=>[D(\" Basic\\u8BA4\\u8BC1\\u672A\\u542F\\u7528\"),Pde]),key:\"1\"}]),1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),Lde]),default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(de.SafeIPMode==\"blacklist\"?\"IP\\u9ED1\\u540D\\u5355\":\"IP\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"),zde]),default:p(()=>[ye(d(L,{color:\"#6666ff\",size:\"small\"},{default:p(()=>[D(ce(de.SafeUserAgentMode==\"blacklist\"?\"UA\\u9ED1\\u540D\\u5355\":\"UA\\u767D\\u540D\\u5355\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024)]))),256))]),_:2},1024)]))),256))]),_:1}),d(be,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:p(()=>[d(L,{type:\"primary\",round:!0,onClick:le[0]||(le[0]=X=>Y(\"add\",null))},{default:p(()=>[D(\"\\u6DFB\\u52A0\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219 \"),d(Ce,{class:\"el-icon--right\"},{default:p(()=>[d(pe)]),_:1})]),_:1})]),_:1})]),t.value?(b(),ae(k,{key:0,modelValue:t.value,\"onUpdate:modelValue\":le[30]||(le[30]=X=>t.value=X),title:o.value==\"add\"?\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u6DFB\\u52A0\":\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u4FEE\\u6539\",draggable:\"\",\"show-close\":!0,\"close-on-click-modal\":!1,width:\"600px\"},{footer:p(()=>[f(\"span\",xfe,[d(L,{onClick:le[29]||(le[29]=X=>t.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(L,{type:\"primary\",onClick:xe},{default:p(()=>[D(ce(o.value==\"add\"?\"\\u6DFB\\u52A0\":\"\\u4FEE\\u6539\"),1)]),_:1})])]),default:p(()=>[d(q,{model:v.value},{default:p(()=>[d(me,{label:\"\\u53CD\\u5411\\u4EE3\\u7406\\u89C4\\u5219\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:p(()=>[d(re,{modelValue:v.value.RuleName,\"onUpdate:modelValue\":le[1]||(le[1]=X=>v.value.RuleName=X),placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(me,{label:\"\\u89C4\\u5219\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.Enable,\"onUpdate:modelValue\":le[2]||(le[2]=X=>v.value.Enable=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[f(\"div\",Tde,[d(me,{label:\"\\u76D1\\u542C\\u7C7B\\u578B\",\"label-width\":\"auto\"},{default:p(()=>[d(Re,{modelValue:W.value,\"onUpdate:modelValue\":le[3]||(le[3]=X=>W.value=X),indeterminate:we.value,onChange:ke},{default:p(()=>[D(\"\\u5168\\u9009 \\xA0\\xA0\\xA0\\xA0\\xA0\\xA0\")]),_:1},8,[\"modelValue\",\"indeterminate\"]),Mde,d(Q,{modelValue:F.value,\"onUpdate:modelValue\":le[4]||(le[4]=X=>F.value=X),onChange:ve},{default:p(()=>[(b(),C(We,null,pt(Ae,X=>d(Re,{key:X,label:X},{default:p(()=>[D(ce(X),1)]),_:2},1032,[\"label\"])),64))]),_:1},8,[\"modelValue\"])]),_:1}),d(me,{label:\"\\u76D1\\u542C\\u5730\\u5740\",\"label-width\":\"auto\"},{default:p(()=>[d(re,{modelValue:v.value.ListenIP,\"onUpdate:modelValue\":le[5]||(le[5]=X=>v.value.ListenIP=X),placeholder:\"\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\",autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(me,{label:\"\\u76D1\\u542C\\u7AEF\\u53E3\",\"label-width\":\"auto\",min:1,max:65535},{default:p(()=>[d(Pe,{modelValue:v.value.ListenPort,\"onUpdate:modelValue\":le[6]||(le[6]=X=>v.value.ListenPort=X),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u542F\\u7528\\u524D\\u8BF7\\u5148\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\"),Vde,D(\" \\u589E\\u52A0\\u5220\\u9664\\u8BC1\\u4E66\\u540E\\u9700\\u8981\\u91CD\\u542F\\u89C4\\u5219\\u65B0\\u8BC1\\u4E66\\u624D\\u751F\\u6548\"),Hde]),default:p(()=>[(b(),ae(me,{key:0,label:\"TLS\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.EnableTLS,\"onUpdate:modelValue\":le[7]||(le[7]=X=>v.value.EnableTLS=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}))]),_:1})]),d(ue,{modelValue:l.value,\"onUpdate:modelValue\":le[28]||(le[28]=X=>l.value=X),accordion:!0},{default:p(()=>[f(\"div\",Ide,[d(K,{title:\"\\u9ED8\\u8BA4\\u5B50\\u89C4\\u5219\",name:\"default\"},{default:p(()=>[f(\"div\",Rde,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u53EF\\u7559\\u7A7A\"),Nde,D(\" \\u4E0D\\u4E3A\\u7A7A\\u65F6\\u8868\\u793A\\u57DF\\u540D\\u4E0D\\u5339\\u914D\\u4EFB\\u4F55\\u5B50\\u89C4\\u5219\\u65F6\\u9ED8\\u8BA4\\u7684\\u8DF3\\u8F6C\\u5730\\u5740\"),Ode,D(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u540E\\u7AEF\\u5730\\u5740\\u65F6\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u4F9D\\u6B21\\u5FAA\\u73AF\\u8BBF\\u95EE\"),Ude,D(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\"),Wde]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u9ED8\\u8BA4\\u76EE\\u6807\\u5730\\u5740\"},{default:p(()=>[d(re,{modelValue:w.value,\"onUpdate:modelValue\":le[8]||(le[8]=X=>w.value=X),placeholder:\"\\u6CA1\\u7279\\u6B8A\\u9700\\u6C42\\u7559\\u7A7A\\u5373\\u53EF\",autosize:{minRows:1,maxRows:3},type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.EnableAccessLog,\"onUpdate:modelValue\":le[9]||(le[9]=X=>v.value.DefaultProxy.EnableAccessLog=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[d(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":\"auto\"},{default:p(()=>[d(Xe,{modelValue:v.value.DefaultProxy.LogLevel,\"onUpdate:modelValue\":le[10]||(le[10]=X=>v.value.DefaultProxy.LogLevel=X),class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(!0),C(We,null,pt(_(mi),X=>(b(),ae(Ge,{key:X.value,label:X.label,value:X.value},null,8,[\"label\",\"value\"]))),128))]),_:1},8,[\"modelValue\"])]),_:1}),d(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.LogOutputToConsole,\"onUpdate:modelValue\":le[11]||(le[11]=X=>v.value.DefaultProxy.LogOutputToConsole=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\"])]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),qde]),default:p(()=>[d(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:0,max:102400},{default:p(()=>[d(Pe,{modelValue:v.value.DefaultProxy.AccessLogMaxNum,\"onUpdate:modelValue\":le[12]||(le[12]=X=>v.value.DefaultProxy.AccessLogMaxNum=X),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(1-256)\"),jde]),default:p(()=>[d(me,{label:\"\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:1,max:256},{default:p(()=>[d(Pe,{modelValue:v.value.DefaultProxy.WebListShowLastLogMaxCount,\"onUpdate:modelValue\":le[13]||(le[13]=X=>v.value.DefaultProxy.WebListShowLastLogMaxCount=X),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E0D\\u5EFA\\u8BAE\\u7559\\u7A7A\\uFF0C\\u7559\\u7A7A\\u7684\\u8BDD\\u65E5\\u5FD7\\u4E2D\\u4E0D\\u663E\\u793A\\u76F8\\u5173\\u4FE1\\u606F \"),Kde,D(\" \\u683C\\u5F0F\\u4E2D\\u53EF\\u7528\\u53D8\\u91CF\"),Gde,D(\" #{clientIP} : \\u5BA2\\u6237\\u7AEFIP \"),Yde,D(\" #{remoteIP} : \\u5BA2\\u6237\\u7AEF\\u76F4\\u63A5\\u8FDE\\u63A5\\u672C\\u670D\\u52A1\\u7684IP(\\u5982\\u679C\\u524D\\u7AEF\\u6709\\u53CD\\u5411\\u4EE3\\u7406\\uFF0C\\u4E0D\\u4E00\\u5B9A\\u662F\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP)\"),Xde,D(\" #{tab} : \\u5236\\u8868\\u7B26\"),Jde,D(\" #{method} : \\u8BF7\\u6C42\\u65B9\\u6CD5\"),Qde,D(\" #{host} : \\u8BF7\\u6C42host\"),Zde,D(\" #{path} : \\u8BF7\\u6C42path(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),e1e,D(\" #{url} : \\u8BF7\\u6C42url(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),t1e]),default:p(()=>[oe(\"\",!0)]),_:1})],512),[[Be,v.value.DefaultProxy.EnableAccessLog]]),f(\"div\",n1e,[o1e,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),l1e]),default:p(()=>[d(me,{label:\"\\u4F18\\u5148\\u4ECEHeader\\u5934\\u90E8\\u83B7\\u53D6\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.ForwardedByClientIP,\"onUpdate:modelValue\":le[15]||(le[15]=X=>v.value.DefaultProxy.ForwardedByClientIP=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5,\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u7F51\\u6BB5\"),a1e,D(\" Lucky\\u53EA\\u4F1A\\u4ECE\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u4E2D\\u7684header\\u83B7\\u53D6\\u5BA2\\u6237\\u7AEFIP\"),r1e,D(\" 0.0.0.0/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv4\\u4EE3\\u7406\\u5730\\u5740\"),u1e,D(\" ::/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv6\\u4EE3\\u7406\\u5730\\u5740\"),s1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5\"},{default:p(()=>[d(re,{modelValue:g.value,\"onUpdate:modelValue\":le[16]||(le[16]=X=>g.value=X),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\\uFF0C\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u5B57\\u6BB5\"),i1e,D(\" \\u5E38\\u89C1\\u7684\\u5B57\\u6BB5\\u6709\\uFF1A\"),c1e,D(\" X-Forwarded-For \"),d1e,D(\" X-Real-IP \"),f1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\"},{default:p(()=>[d(re,{modelValue:y.value,\"onUpdate:modelValue\":le[17]||(le[17]=X=>y.value=X),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,v.value.DefaultProxy.ForwardedByClientIP]])]),f(\"div\",p1e,[v1e,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),h1e]),default:p(()=>[d(me,{label:\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.AddRemoteIPToHeader,\"onUpdate:modelValue\":le[18]||(le[18]=X=>v.value.DefaultProxy.AddRemoteIPToHeader=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5E38\\u7528\\u7684Key\\u6709\"),_1e,D(\" X-Forwarded-For\"),m1e,D(\" X-Real-IP\"),g1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u81EA\\u5B9A\\u4E49Header Key\"},{default:p(()=>[d(re,{modelValue:v.value.DefaultProxy.AddRemoteIPHeaderKey,\"onUpdate:modelValue\":le[19]||(le[19]=X=>v.value.DefaultProxy.AddRemoteIPHeaderKey=X),placeholder:\"\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,v.value.DefaultProxy.AddRemoteIPToHeader]])]),f(\"div\",b1e,[y1e,d(me,{label:\"BasicAuth\\u8BA4\\u8BC1\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.EnableBasicAuth,\"onUpdate:modelValue\":le[20]||(le[20]=X=>v.value.DefaultProxy.EnableBasicAuth=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1}),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" HTTP BasicAuth \\u7528\\u6237\\u540D\"),w1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u7528\\u6237\\u540D\"},{default:p(()=>[d(re,{modelValue:v.value.DefaultProxy.BasicAuthUser,\"onUpdate:modelValue\":le[21]||(le[21]=X=>v.value.DefaultProxy.BasicAuthUser=X),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" HTTP BasicAuth \\u5BC6\\u7801\"),C1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u5BC6\\u7801\"},{default:p(()=>[d(re,{modelValue:v.value.DefaultProxy.BasicAuthPasswd,\"onUpdate:modelValue\":le[22]||(le[22]=X=>v.value.DefaultProxy.BasicAuthPasswd=X),autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})]),_:1})],512),[[Be,v.value.DefaultProxy.EnableBasicAuth]]),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),E1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:p(()=>[d(Ie,{modelValue:v.value.DefaultProxy.SafeIPMode,\"onUpdate:modelValue\":le[23]||(le[23]=X=>v.value.DefaultProxy.SafeIPMode=X),class:\"ml-4\"},{default:p(()=>[d(he,{label:\"blacklist\"},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\")]),_:1}),d(he,{label:\"whitelist\"},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),A1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:p(()=>[d(Ie,{modelValue:v.value.DefaultProxy.SafeUserAgentMode,\"onUpdate:modelValue\":le[24]||(le[24]=X=>v.value.DefaultProxy.SafeUserAgentMode=X),class:\"ml-4\"},{default:p(()=>[d(he,{label:\"blacklist\"},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\")]),_:1}),d(he,{label:\"whitelist\"},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:1},8,[\"modelValue\"])]),_:1})]),_:1}),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u81EA\\u5B9A\\u4E49\\u7684UserAgent \\u9ED1/\\u767D\\u540D\\u5355\\u5185\\u5BB9,\\u591A\\u7EC4Agent\\u5206\\u591A\\u884C\\u586B\\u5165,\\u5B9E\\u9645\\u7684UserAgent\\u90E8\\u5206\\u5339\\u914D\\u4EFB\\u610F\\u4E00\\u884C\\u5373\\u662F\\u6210\\u529F\\u5339\\u914D\"),F1e,D(\" \\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u5339\\u914D\\u6210\\u529F\\u4EFB\\u4E00\\u6761\\u5373\\u62D2\\u7EDD\\u670D\\u52A1\"),x1e,D(\" \\u767D\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u4EC5\\u5339\\u914D\\u6210\\u529F\\u624D\\u7EE7\\u7EED\\u670D\\u52A1\"),$1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u5185\\u5BB9\"},{default:p(()=>[d(re,{modelValue:A.value,\"onUpdate:modelValue\":le[25]||(le[25]=X=>A.value=X),autosize:{minRows:3,maxRows:6},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),f(\"div\",D1e,[B1e,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u53EF\\u4EE5\\u901A\\u8FC7\\u81EA\\u5B9A\\u4E49robots.txt\\u9632\\u6B62\\u722C\\u866B\\u5BF9\\u5185\\u5BB9\\u7684\\u6293\\u53D6\"),S1e]),default:p(()=>[d(me,{label:\"\\u81EA\\u5B9A\\u4E49robot.txt\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.DefaultProxy.CustomRobotTxt,\"onUpdate:modelValue\":le[26]||(le[26]=X=>v.value.DefaultProxy.CustomRobotTxt=X),\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),ye(f(\"div\",null,[d(me,{\"label-width\":\"auto\",label:\"robot.txt\"},{default:p(()=>[d(re,{modelValue:v.value.DefaultProxy.RobotTxt,\"onUpdate:modelValue\":le[27]||(le[27]=X=>v.value.DefaultProxy.RobotTxt=X),autosize:{minRows:5,maxRows:9},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\"])]),_:1})],512),[[Be,v.value.DefaultProxy.CustomRobotTxt]])])])]),_:1})]),f(\"div\",k1e,[P1e,(b(!0),C(We,null,pt(v.value.ProxyList,(X,de)=>(b(),C(\"div\",L1e,[d(K,{title:\"\\u7B2C\"+(de+1)+\"\\u6761 [ \"+v.value.ProxyList[de].Remark+\" ]\",name:de},{default:p(()=>[f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5B50\\u89C4\\u5219\\u540D\\u79F0,\\u53EF\\u7559\\u7A7A\"),z1e]),default:p(()=>[d(me,{label:\"\\u53CD\\u5411\\u4EE3\\u7406\\u5B50\\u89C4\\u5219\\u540D\\u79F0\",\"label-width\":\"auto\"},{default:p(()=>[d(re,{modelValue:v.value.ProxyList[de].Remark,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].Remark=Fe,placeholder:\"\\u53EF\\u7559\\u7A7A\",autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(me,{label:\"\\u5B50\\u89C4\\u5219\\u5F00\\u5173\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].Enable,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].Enable=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E00\\u884C\\u4E00\\u6761\\u57DF\\u540D\"),T1e,D(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u57DF\\u540D\\u65F6\\u8868\\u793A\\u591A\\u6761\\u57DF\\u540D\\u6307\\u5411\\u76F8\\u540C\\u7684\\u540E\\u7AEF\\u5730\\u5740\"),M1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u524D\\u7AEF\\u57DF\\u540D\"},{default:p(()=>[d(re,{modelValue:E.value[de],\"onUpdate:modelValue\":Fe=>E.value[de]=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E00\\u884C\\u4E00\\u6761\\u540E\\u7AEF\\u5730\\u5740\"),V1e,D(\" \\u8BBE\\u7F6E\\u591A\\u6761\\u540E\\u7AEF\\u5730\\u5740\\u65F6\\u8868\\u793A\\u542F\\u7528\\u5747\\u8861\\u8D1F\\u8F7D,\\u4F9D\\u6B21\\u5FAA\\u73AF\\u8BBF\\u95EE\"),H1e,D(\" \\u65E0\\u7279\\u6B8A\\u8981\\u6C42\\u8BBE\\u7F6E\\u4E00\\u6761\\u5373\\u53EF\"),I1e]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u540E\\u7AEF\\u5730\\u5740\"},{default:p(()=>[d(re,{modelValue:$.value[de],\"onUpdate:modelValue\":Fe=>$.value[de]=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].EnableAccessLog,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].EnableAccessLog=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u5173\\u95ED\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),ye(f(\"div\",null,[d(me,{label:\"\\u65E5\\u5FD7\\u8F93\\u51FA\\u7EA7\\u522B\",\"label-width\":\"auto\"},{default:p(()=>[d(Xe,{modelValue:v.value.ProxyList[de].LogLevel,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].LogLevel=Fe,class:\"m-2\",placeholder:\"\\u8BF7\\u9009\\u62E9\"},{default:p(()=>[(b(!0),C(We,null,pt(_(mi),Fe=>(b(),ae(Ge,{key:Fe.value,label:Fe.label,value:Fe.value},null,8,[\"label\",\"value\"]))),128))]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),d(me,{label:\"\\u5B50\\u89C4\\u5219\\u65E5\\u5FD7\\u8F93\\u51FA\\u5230\\u7EC8\\u7AEF\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].LogOutputToConsole,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].LogOutputToConsole=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(0-102400),0\\u8868\\u793A\\u4E0D\\u4FDD\\u5B58\\u65E5\\u5FD7\"),R1e]),default:p(()=>[d(me,{label:\"\\u8BBF\\u95EE\\u65E5\\u5FD7\\u8BB0\\u5F55\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:0,max:102400},{default:p(()=>[d(Pe,{modelValue:v.value.ProxyList[de].AccessLogMaxNum,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].AccessLogMaxNum=Fe,autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u8303\\u56F4(1-256)\"),N1e]),default:p(()=>[d(me,{label:\"\\u524D\\u7AEF\\u5217\\u8868\\u663E\\u793A\\u6700\\u65B0\\u65E5\\u5FD7\\u6700\\u5927\\u6761\\u6570\",\"label-width\":\"auto\",min:1,max:256},{default:p(()=>[d(Pe,{modelValue:v.value.ProxyList[de].WebListShowLastLogMaxCount,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].WebListShowLastLogMaxCount=Fe,autocomplete:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4E0D\\u5EFA\\u8BAE\\u7559\\u7A7A\\uFF0C\\u7559\\u7A7A\\u7684\\u8BDD\\u65E5\\u5FD7\\u4E2D\\u4E0D\\u663E\\u793A\\u76F8\\u5173\\u4FE1\\u606F \"),O1e,D(\" \\u65E5\\u5FD7\\u683C\\u5F0F\\u4E2D\\u53EF\\u7528\\u53D8\\u91CF\"),U1e,D(\" #{clientIP} : \\u5BA2\\u6237\\u7AEFIP \"),W1e,D(\" #{remoteIP} : \\u5BA2\\u6237\\u7AEF\\u76F4\\u63A5\\u8FDE\\u63A5\\u672C\\u670D\\u52A1\\u7684IP(\\u5982\\u679C\\u524D\\u7AEF\\u6709\\u53CD\\u5411\\u4EE3\\u7406\\uFF0C\\u4E0D\\u4E00\\u5B9A\\u662F\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP)\"),q1e,D(\" #{tab} : \\u5236\\u8868\\u7B26\"),j1e,D(\" #{method} : \\u8BF7\\u6C42\\u65B9\\u6CD5\"),K1e,D(\" #{host} : \\u8BF7\\u6C42host\"),G1e,D(\" #{path} : \\u8BF7\\u6C42path(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),Y1e,D(\" #{url} : \\u8BF7\\u6C42url(\\u4E0D\\u5305\\u542Bhost)\\u90E8\\u5206\"),X1e]),default:p(()=>[oe(\"\",!0)]),_:2},1024)],512),[[Be,v.value.ProxyList[de].EnableAccessLog]]),f(\"div\",J1e,[Q1e,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),Z1e]),default:p(()=>[d(me,{label:\"\\u4F18\\u5148\\u4ECEHeader\\u5934\\u90E8\\u83B7\\u53D6\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].ForwardedByClientIP,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].ForwardedByClientIP=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5,\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u7F51\\u6BB5\"),efe,D(\" Lucky\\u53EA\\u4F1A\\u4ECE\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u4E2D\\u7684header\\u83B7\\u53D6\\u5BA2\\u6237\\u7AEFIP\"),tfe,D(\" 0.0.0.0/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv4\\u4EE3\\u7406\\u5730\\u5740\"),nfe,D(\" ::/0 \\u8868\\u793A\\u4FE1\\u4EFB\\u4EFB\\u610FHeader\\u5305\\u542BIP\\u4FE1\\u606F\\u7684IPv6\\u4EE3\\u7406\\u5730\\u5740\"),ofe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u4FE1\\u4EFB\\u7684\\u4EE3\\u7406IP\\u7F51\\u6BB5\"},{default:p(()=>[d(re,{modelValue:B.value[de],\"onUpdate:modelValue\":Fe=>B.value[de]=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\\uFF0C\\u6BCF\\u884C\\u586B\\u5199\\u4E00\\u4E2A\\u5B57\\u6BB5\"),lfe,D(\" \\u5E38\\u89C1\\u7684\\u5B57\\u6BB5\\u6709\\uFF1A\"),afe,D(\" X-Forwarded-For \"),rfe,D(\" X-Real-IP \"),ufe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u5305\\u542B\\u5BA2\\u6237\\u7AEFIP\\u7684\\u5934\\u90E8\\u5B57\\u6BB5\"},{default:p(()=>[d(re,{modelValue:P.value[de],\"onUpdate:modelValue\":Fe=>P.value[de]=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[Be,v.value.ProxyList[de].ForwardedByClientIP]])]),f(\"div\",sfe,[ife,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u65E0\\u7279\\u6B8A\\u9700\\u6C42\\uFF0C\\u4E00\\u822C\\u60C5\\u51B5\\u4E0B\\u4E0D\\u9700\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\"),cfe,D(\" \\u7528\\u4E8E\\u540E\\u7AEF\\u7A0B\\u5E8F\\u8BC6\\u522B\\u5BA2\\u6237\\u7AEF\\u771F\\u5B9EIP \")]),default:p(()=>[d(me,{label:\"\\u8FFD\\u52A0\\u5BA2\\u6237\\u7AEFIP\\u5230\\u6307\\u5B9AHeader\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].AddRemoteIPToHeader,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].AddRemoteIPToHeader=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u5E38\\u7528\\u7684Key\\u6709\"),dfe,D(\" X-Forwarded-For\"),ffe,D(\" X-Real-IP\"),pfe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"\\u81EA\\u5B9A\\u4E49Header Key\"},{default:p(()=>[d(re,{modelValue:v.value.ProxyList[de].AddRemoteIPHeaderKey,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].AddRemoteIPHeaderKey=Fe,placeholder:\"\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[Be,v.value.ProxyList[de].AddRemoteIPToHeader]])]),f(\"div\",vfe,[hfe,d(me,{label:\"BasicAuth\\u8BA4\\u8BC1\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].EnableBasicAuth,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].EnableBasicAuth=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),ye(f(\"div\",null,[d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" HTTP BasicAuth \\u7528\\u6237\\u540D\"),_fe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u7528\\u6237\\u540D\"},{default:p(()=>[d(re,{modelValue:v.value.ProxyList[de].BasicAuthUser,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].BasicAuthUser=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" HTTP BasicAuth \\u5BC6\\u7801\"),mfe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"HTTP BasicAuth \\u5BC6\\u7801\"},{default:p(()=>[d(re,{modelValue:v.value.ProxyList[de].BasicAuthPasswd,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].BasicAuthPasswd=Fe,autosize:{minRows:1,maxRows:3},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)],512),[[Be,v.value.ProxyList[de].EnableBasicAuth]]),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),gfe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"IP\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:p(()=>[d(Ie,{modelValue:v.value.ProxyList[de].SafeIPMode,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].SafeIPMode=Fe,class:\"ml-4\"},{default:p(()=>[d(he,{label:\"blacklist\"},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\")]),_:1}),d(he,{label:\"whitelist\"},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u6CA1\\u7279\\u6B8A\\u4F7F\\u7528\\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u5373\\u53EF\"),bfe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u6A21\\u5F0F\"},{default:p(()=>[d(Ie,{modelValue:v.value.ProxyList[de].SafeUserAgentMode,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].SafeUserAgentMode=Fe,class:\"ml-4\"},{default:p(()=>[d(he,{label:\"blacklist\"},{default:p(()=>[D(\"\\u9ED1\\u540D\\u5355\")]),_:1}),d(he,{label:\"whitelist\"},{default:p(()=>[D(\"\\u767D\\u540D\\u5355\")]),_:1})]),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u81EA\\u5B9A\\u4E49\\u7684UserAgent \\u9ED1/\\u767D\\u540D\\u5355\\u5185\\u5BB9,\\u591A\\u7EC4Agent\\u5206\\u591A\\u884C\\u586B\\u5165,\\u5B9E\\u9645\\u7684UserAgent\\u90E8\\u5206\\u5339\\u914D\\u4EFB\\u610F\\u4E00\\u884C\\u5373\\u662F\\u6210\\u529F\\u5339\\u914D\"),yfe,D(\" \\u9ED1\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u5339\\u914D\\u6210\\u529F\\u4EFB\\u4E00\\u6761\\u5373\\u62D2\\u7EDD\\u670D\\u52A1\"),wfe,D(\" \\u767D\\u540D\\u5355\\u6A21\\u5F0F\\u65F6,\\u4EC5\\u5339\\u914D\\u6210\\u529F\\u624D\\u7EE7\\u7EED\\u670D\\u52A1\"),Cfe]),default:p(()=>[d(me,{\"label-width\":\"auto\",label:\"UserAgent\\u8FC7\\u6EE4\\u5185\\u5BB9\"},{default:p(()=>[d(re,{modelValue:T.value[de],\"onUpdate:modelValue\":Fe=>T.value[de]=Fe,autosize:{minRows:3,maxRows:6},placeholder:\"\",type:\"textarea\",wrap:\"off\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024)]),f(\"div\",Efe,[Afe,d(O,{class:\"box-item\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[D(\" \\u53EF\\u4EE5\\u901A\\u8FC7\\u81EA\\u5B9A\\u4E49robots.txt\\u9632\\u6B62\\u722C\\u866B\\u5BF9\\u5185\\u5BB9\\u7684\\u6293\\u53D6\"),Ffe]),default:p(()=>[d(me,{label:\"\\u81EA\\u5B9A\\u4E49robot.txt\",\"label-width\":\"auto\"},{default:p(()=>[d(V,{modelValue:v.value.ProxyList[de].CustomRobotTxt,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].CustomRobotTxt=Fe,\"inline-prompt\":\"\",width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)]),_:2},1024),ye(f(\"div\",null,[d(me,{\"label-width\":\"auto\",label:\"robot.txt\"},{default:p(()=>[d(re,{modelValue:v.value.ProxyList[de].RobotTxt,\"onUpdate:modelValue\":Fe=>v.value.ProxyList[de].RobotTxt=Fe,autosize:{minRows:5,maxRows:9},placeholder:\"\",type:\"textarea\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024)],512),[[Be,v.value.ProxyList[de].CustomRobotTxt]])])],512),[[Be,v.value.ProxyList[de].Enable]]),d(me,null,{default:p(()=>[d(L,{type:\"danger\",round:!0,onClick:Fe=>fe(de)},{default:p(()=>[D(\" \\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024)])]),_:2},1032,[\"title\",\"name\"])]))),256)),d(L,{type:\"primary\",round:!0,onClick:ge},{default:p(()=>[D(\"\\u6DFB\\u52A0\\u53CD\\u5411\\u4EE3\\u7406\\u8F6C\\u53D1\\u5B50\\u89C4\\u5219 \")]),_:1})])]),_:1},8,[\"modelValue\"])],512),[[Be,v.value.Enable]])]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\",\"title\"])):oe(\"\",!0),n.value?(b(),ae(k,{key:1,modelValue:n.value,\"onUpdate:modelValue\":le[31]||(le[31]=X=>n.value=X),\"close-on-click-modal\":!1,width:\"900px\"},{default:p(()=>[f(\"div\",null,[d(_e,{\"max-height\":\"95vh\",class:\"reverseProxyLogs\",\"element-loading-background\":\"transparent\"},{default:p(()=>[D(ce(m.value),1)]),_:1}),d(Me,{\"page-size\":a.value,\"page-sizes\":[10,20,50,100,200,300,400,500],small:!1,disabled:!1,background:!1,layout:\"total, sizes, prev, pager, next, jumper\",\"current-page\":c.value,total:r.value,onSizeChange:Z,onCurrentChange:G,onPrevClick:I,onNextClick:j},null,8,[\"page-size\",\"current-page\",\"total\"])])]),_:1},8,[\"modelValue\"])):oe(\"\",!0)],64)}}});var Dfe=wn($fe,[[\"__scopeId\",\"data-v-79bf589c\"]]);const Bfe={class:\"PageRadius\",style:{borderRadius:\"base\"},\"element-loading-background\":\"transparent\"},Sfe={class:\"formradius\",style:{borderRadius:\"base\"}},kfe=Le({__name:\"DDNSSet\",setup(e){const t=z(!0),n={Enable:!1,HttpClientSecureVerify:!1,Intervals:0,FirstCheckDelay:0},o=z(n),l=z(n),a=()=>{o.value.Enable=l.value.Enable,o.value.HttpClientSecureVerify=l.value.HttpClientSecureVerify},r=i=>{l.value.Enable=i.value.Enable,l.value.HttpClientSecureVerify=i.value.HttpClientSecureVerify},u=()=>{Rse().then(i=>{if(i.ret==0){t.value=!1,o.value=i.ddnsconfigure,r(o);return}ie(\"error\",\"\\u83B7\\u53D6DDNS\\u914D\\u7F6E\\u51FA\\u9519\")}).catch(i=>{ie(\"error\",\"\\u83B7\\u53D6DDNS\\u914D\\u7F6E\\u51FA\\u9519\")})},s=()=>{Ose(o.value).then(i=>{if(i.ret==0){ie(\"success\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u6210\\u529F\");return}a(),ie(\"error\",i.msg)}).catch(i=>{console.log(\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+i),ie(\"error\",\"\\u914D\\u7F6E\\u4FEE\\u6539\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\"),a()})};return at(()=>{u()}),(i,c)=>{const m=ga,h=jn,v=Sn,g=To,y=qn,A=kn,w=un,F=Ku;return ye((b(),C(\"div\",Bfe,[d(w,{height:\"100%\"},{default:p(()=>[f(\"div\",Sfe,[d(y,{model:o.value,class:\"SetForm\",\"label-width\":\"auto\"},{default:p(()=>[d(v,{content:\"\\u5982\\u679C\\u4E0D\\u9700\\u8981DDNS\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\\u8BF7\\u4E0D\\u8981\\u6253\\u5F00\\u8FD9\\u4E2A\\u5F00\\u5173\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u52A8\\u6001\\u57DF\\u540D\\u670D\\u52A1\\u5F00\\u5173\",id:\"adminListen\"},{default:p(()=>[d(m,{modelValue:o.value.Enable,\"onUpdate:modelValue\":c[0]||(c[0]=E=>o.value.Enable=E),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u5F00\\u542F\",\"inactive-text\":\"\\u505C\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(v,{content:\"\\u591A\\u6570\\u5D4C\\u5165\\u5F0F\\u8BBE\\u5907\\u542F\\u7528\\u8FD9\\u4E2A\\u5F00\\u5173\\u4F1A\\u5BFC\\u81F4https\\u8BBF\\u95EE\\u5931\\u8D25\",placement:\"top\"},{default:p(()=>[d(h,{label:\"Http(s) \\u5BA2\\u6237\\u7AEF \\u5B89\\u5168\\u8BC1\\u4E66\\u9A8C\\u8BC1\",id:\"adminListen\"},{default:p(()=>[d(m,{modelValue:o.value.HttpClientSecureVerify,\"onUpdate:modelValue\":c[1]||(c[1]=E=>o.value.HttpClientSecureVerify=E),class:\"mb-1\",\"inline-prompt\":\"\",style:{\"--el-switch-on-color\":\"#13ce66\",\"--el-switch-off-color\":\"#ff4949\"},width:\"50px\",\"active-text\":\"\\u542F\\u7528\",\"inactive-text\":\"\\u7981\\u7528\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(v,{content:\"\\u9996\\u6B21\\u6267\\u884C\\u4EFB\\u52A1\\u5EF6\\u8FDF\\u65F6\\u95F4,\\u6700\\u5C0F0\\u79D2,\\u6700\\u957F3600\\u79D2\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u9996\\u6B21\\u6267\\u884C\\u4EFB\\u52A1\\u5EF6\\u8FDF(\\u79D2)\",\"label-width\":\"auto\",min:\"0\",max:\"3600\"},{default:p(()=>[d(g,{modelValue:o.value.FirstCheckDelay,\"onUpdate:modelValue\":c[2]||(c[2]=E=>o.value.FirstCheckDelay=E),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1}),d(v,{content:\"DDNS\\u4EFB\\u52A1\\u6BCF\\u6B21\\u6267\\u884C\\u7684\\u65F6\\u95F4\\u95F4\\u9694,\\u6700\\u5C0F30\\u79D2,\\u6700\\u957F3600\\u79D2\",placement:\"top\"},{default:p(()=>[d(h,{label:\"\\u65F6\\u95F4\\u95F4\\u9694(\\u79D2)\",\"label-width\":\"auto\",min:30,max:3600},{default:p(()=>[d(g,{modelValue:o.value.Intervals,\"onUpdate:modelValue\":c[3]||(c[3]=E=>o.value.Intervals=E),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1})]),_:1},8,[\"model\"]),d(A,{type:\"primary\",round:\"\",onClick:s},{default:p(()=>[D(\"\\u4FDD\\u5B58\\u4FEE\\u6539\")]),_:1})])]),_:1})])),[[F,t.value]])}}});var Pfe=wn(kfe,[[\"__scopeId\",\"data-v-53d1c3c2\"]]);const Lfe={class:\"PageRadius\",style:{borderRadius:\"base\"}},zfe={class:\"itemradius\",style:{borderRadius:\"base\"}},Tfe=[\"innerHTML\"],Mfe={class:\"dialog-footer\"},Vfe={class:\"dialog-footer\"},Hfe=Le({__name:\"SSL\",setup(e){var t=z([{Key:\"\",Remark:\"\",Enable:!0,AddTime:\"\",CertsInfo:[{Domains:[\"\"],NotBeforeTime:\"\",NotAfterTime:\"\"}]}]);const n=z(!1),o=z({Remark:\"\",CertBase64:\"\",KeyBase64:\"\"}),l=z(\"\"),a=z(\"\"),r=()=>{var B=\"/\";return B+\"api/getfilebase64\"},u=z(!1),s=z(\"\"),i=z(\"\"),c=z(\"\"),m=B=>{u.value=!0,c.value=B.Key,s.value=B.Remark,i.value=B.CertsInfo[0].Domains[0]},h=(B,P,H)=>{if(B.ret!=0){ie(\"error\",B.msg);return}console.log(\"file:\"+B.file),l.value=B.file,o.value.CertBase64=B.base64},v=B=>B.size/1024/1024>1?(m6.error(\"\\u6587\\u4EF6\\u4E0D\\u80FD\\u5927\\u4E8E1M\"),!1):!0,g=(B,P,H)=>{if(B.ret!=0){ie(\"error\",B.msg);return}console.log(\"file:\"+B.file),a.value=B.file,o.value.KeyBase64=B.base64},y=()=>{n.value=!0,o.value.CertBase64=\"\",o.value.KeyBase64=\"\",l.value=\"\\u9009\\u62E9\\u8981\\u4E0A\\u4F20\\u7684\\u8BC1\\u4E66\\u6587\\u4EF6\",a.value=\"\\u9009\\u62E9\\u8981\\u4E0A\\u4F20\\u7684Key\\u6587\\u4EF6\"},A=(B,P)=>{const H=B==!1?\"\\u542F\\u7528\":\"\\u7981\\u7528\",I=P.Remark!=\"\"?P.Remark:P.CertsInfo[0].Domains[0],j=\"[\"+I+\"]\";return new Promise((Z,G)=>{zt.confirm(\"\\u786E\\u8BA4\\u8981\"+H+\" \\u8BC1\\u4E66 \"+j+\"?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{Ed(P.Key,\"enable\",!B).then(N=>{if(N.ret==0){Z(!0),ie(\"success\",\"\\u8BC1\\u4E66  \"+j+H+\"\\u6210\\u529F\");return}Z(!1),ie(\"error\",\"\\u8BC1\\u4E66 \"+j+H+\"\\u5931\\u8D25: \"+N.msg)}).catch(N=>{Z(!1),console.log(\"\\u8BC1\\u4E66 \"+j+H+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+N),ie(\"error\",\"\\u8BC1\\u4E66 \"+j+H+\"\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})}).catch(()=>{Z(!1)})})},w=()=>{Ed(c.value,\"remark\",s.value).then(B=>{if(B.ret==0){u.value=!1,ie(\"success\",\"\\u8BC1\\u4E66  \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u6210\\u529F\"),$();return}ie(\"error\",\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25: \"+B.msg)}).catch(B=>{console.log(\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\"+B),ie(\"error\",\"\\u8BC1\\u4E66 \"+i.value+\" \\u5907\\u6CE8\\u4FEE\\u6539\\u5931\\u8D25:\\u8BF7\\u6C42\\u51FA\\u9519\")})},F=()=>{if(o.value.CertBase64==\"\"){ie(\"error\",\"\\u8BF7\\u9009\\u62E9\\u8981\\u4FDD\\u5B58\\u7684\\u8BC1\\u4E66\\u6587\\u4EF6\");return}if(o.value.KeyBase64==\"\"){ie(\"error\",\"\\u8BF7\\u9009\\u62E9\\u8981\\u4FDD\\u5B58\\u7684Key\\u6587\\u4EF6\");return}rie(o.value).then(B=>{if(B.ret==0){n.value=!1,ie(\"success\",\"\\u6DFB\\u52A0\\u8BC1\\u4E66\\u6210\\u529F\"),$();return}ie(\"error\",B.msg)}).catch(B=>{console.log(\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\\u51FA\\u9519 \"+B),ie(\"error\",\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\\u51FA\\u9519 \"+B)})},E=B=>{const P=B.Remark!=\"\"?B.Remark:B.CertsInfo[0].Domains[0];zt.confirm(\"\\u786E\\u8BA4\\u8981\\u5220\\u9664 \"+P+\"  \\u7684\\u8BC1\\u4E66?\",\"Warning\",{confirmButtonText:\"\\u786E\\u8BA4\",cancelButtonText:\"\\u53D6\\u6D88\",type:\"warning\"}).then(()=>{aie(B.Key).then(H=>{if(H.ret==0){ie(\"success\",\"\\u8BC1\\u4E66\\u5220\\u9664\\u6210\\u529F\"),$();return}ie(\"error\",H.msg)}).catch(H=>{console.log(\"\\u8BC1\\u4E66\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519:\"+H),ie(\"error\",\"\\u8BC1\\u4E66\\u5220\\u9664\\u5931\\u8D25,\\u7F51\\u7EDC\\u8BF7\\u6C42\\u51FA\\u9519\")})})},$=()=>{uie().then(B=>{if(B.ret==0){console.log(B.list),B.list!=null?t.value=B.list:t.value=[];return}ie(\"error\",B.msg)}).catch(B=>{ie(\"error\",\"\\u67E5\\u8BE2\\u8BC1\\u4E66\\u5217\\u8868\\u5217\\u8868\\u51FA\\u9519\")})},T=B=>{B.keyCode==13&&(!n.value||F())};return at(()=>{$(),window.addEventListener(\"keydown\",T)}),(B,P)=>{const H=kn,I=Uu,j=ga,Z=Sn,G=Ou,N=un,Y=Qe(\"Plus\"),ge=ut,fe=ha,Ee=yn,ne=jn,ee=v6,xe=qn,$e=ma;return b(),C(\"div\",Lfe,[d(N,{height:\"100%\"},{default:p(()=>[(b(!0),C(We,null,pt(_(t),x=>(b(),C(\"div\",zfe,[d(G,{column:6,border:\"\"},{default:p(()=>[d(I,{label:\"\\u8BC1\\u4E66\\u5907\\u6CE8\",span:2},{default:p(()=>[ye(d(H,{size:\"small\"},{default:p(()=>[D(ce(x.Remark==\"\"?\"\\u672A\\u5907\\u6CE8\":x.Remark),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(I,{label:\"\\u6DFB\\u52A0\\u65F6\\u95F4\",span:2},{default:p(()=>[ye(d(H,{size:\"small\"},{default:p(()=>[D(ce(x.AddTime),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(I,{label:\"\\u64CD\\u4F5C\",span:2},{default:p(()=>[d(Z,{content:x.Enable==!0?\"\\u8BC1\\u4E66\\u5DF2\\u542F\\u7528\":\"\\u8BC1\\u4E66\\u5DF2\\u7981\\u7528\",placement:\"top\"},{default:p(()=>[d(j,{modelValue:x.Enable,\"onUpdate:modelValue\":W=>x.Enable=W,\"inline-prompt\":\"\",\"active-text\":\"\\u5F00\",\"inactive-text\":\"\\u5173\",\"before-change\":A.bind(this,x.Enable,x),size:\"large\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"before-change\"])]),_:2},1032,[\"content\"]),D(\" \\xA0\\xA0 \"),d(H,{size:\"small\",type:\"primary\",onClick:W=>m(x)},{default:p(()=>[D(\"\\u4FEE\\u6539\\u5907\\u6CE8\")]),_:2},1032,[\"onClick\"]),d(H,{size:\"small\",type:\"danger\",onClick:W=>E(x)},{default:p(()=>[D(\"\\u5220\\u9664\")]),_:2},1032,[\"onClick\"])]),_:2},1024),(b(!0),C(We,null,pt(x.CertsInfo,W=>(b(),C(\"div\",null,[d(I,{label:\"\\u7ED1\\u5B9A\\u57DF\\u540D\",span:2},{default:p(()=>[d(Z,{placement:\"bottom\",effect:\"dark\",\"trigger-keys\":[],content:\"\"},{content:p(()=>[f(\"span\",{innerHTML:_(Ra)(W.Domains)},null,8,Tfe)]),default:p(()=>[ye(d(H,{size:\"small\",type:\"primary\"},{default:p(()=>[D(ce(W.Domains.length==1?W.Domains[0]:W.Domains[0]+\"...\"),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]),_:2},1024),d(I,{label:\"\\u9881\\u53D1\\u65F6\\u95F4\",span:2},{default:p(()=>[ye(d(H,{size:\"small\",type:\"info\"},{default:p(()=>[D(ce(W.NotBeforeTime),1)]),_:2},1536),[[Be,!0]])]),_:2},1024),d(I,{label:\"\\u5230\\u671F\\u65F6\\u95F4\",span:2},{default:p(()=>[ye(d(H,{size:\"small\",type:\"warning\"},{default:p(()=>[D(ce(W.NotAfterTime),1)]),_:2},1536),[[Be,!0]])]),_:2},1024)]))),256))]),_:2},1024)]))),256))]),_:1}),d(fe,{position:\"bottom\",offset:30,class:\"affix-container\"},{default:p(()=>[d(H,{type:\"primary\",round:!0,onClick:y},{default:p(()=>[D(\"SSL\\u8BC1\\u4E66\\u6DFB\\u52A0 \"),d(ge,{class:\"el-icon--right\"},{default:p(()=>[d(Y)]),_:1})]),_:1})]),_:1}),n.value?(b(),ae($e,{key:0,modelValue:n.value,\"onUpdate:modelValue\":P[2]||(P[2]=x=>n.value=x),title:\"\\u6DFB\\u52A0SSL\\u8BC1\\u4E66\",draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:p(()=>[f(\"span\",Mfe,[d(H,{onClick:P[1]||(P[1]=x=>n.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(H,{type:\"primary\",onClick:F},{default:p(()=>[D(\"\\u6DFB\\u52A0\")]),_:1})])]),default:p(()=>[d(xe,{model:o.value},{default:p(()=>[d(ne,{label:\"\\u5907\\u6CE8\",\"label-width\":\"auto\"},{default:p(()=>[d(Ee,{modelValue:o.value.Remark,\"onUpdate:modelValue\":P[0]||(P[0]=x=>o.value.Remark=x),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1}),d(ne,{label:\"\\u8BC1\\u4E66\",\"label-width\":\"auto\"},{default:p(()=>[d(ee,{class:\"inline-block\",multiple:!0,action:r(),\"before-upload\":v,\"show-file-list\":!1,headers:{Authorization:_(lt)()},\"on-success\":h},{default:p(()=>[d(H,{round:\"\",class:\"margin-change\"},{default:p(()=>[D(ce(l.value),1)]),_:1})]),_:1},8,[\"action\",\"headers\"])]),_:1}),d(ne,{label:\"Key\",\"label-width\":\"auto\"},{default:p(()=>[d(ee,{class:\"inline-block\",multiple:!0,action:r(),\"before-upload\":v,\"show-file-list\":!1,headers:{Authorization:_(lt)()},\"on-success\":g},{default:p(()=>[d(H,{round:\"\",class:\"margin-change\"},{default:p(()=>[D(ce(a.value),1)]),_:1})]),_:1},8,[\"action\",\"headers\"])]),_:1})]),_:1},8,[\"model\"])]),_:1},8,[\"modelValue\"])):oe(\"\",!0),u.value?(b(),ae($e,{key:1,modelValue:u.value,\"onUpdate:modelValue\":P[5]||(P[5]=x=>u.value=x),title:i.value,draggable:\"\",\"show-close\":!1,\"close-on-click-modal\":!1,width:\"400px\"},{footer:p(()=>[f(\"span\",Vfe,[d(H,{onClick:P[4]||(P[4]=x=>u.value=!1)},{default:p(()=>[D(\"\\u53D6\\u6D88\")]),_:1}),d(H,{type:\"primary\",onClick:w},{default:p(()=>[D(\"\\u4FEE\\u6539\")]),_:1})])]),default:p(()=>[d(ne,{label:\"\\u5907\\u6CE8\",\"label-width\":\"auto\"},{default:p(()=>[d(Ee,{modelValue:s.value,\"onUpdate:modelValue\":P[3]||(P[3]=x=>s.value=x),autocomplete:\"off\"},null,8,[\"modelValue\"])]),_:1})]),_:1},8,[\"modelValue\",\"title\"])):oe(\"\",!0)])}}});var Ife=wn(Hfe,[[\"__scopeId\",\"data-v-29c64958\"]]);const Rfe={class:\"common-layout\"},Nfe=Le({__name:\"App\",setup(e){const t=Ze(\"global\");return z(\"0.0.0\"),at(()=>{}),(n,o)=>{const l=_te,a=u2e,r=Yie,u=Eie,s=mte,i=hte;return b(),C(\"div\",Rfe,[d(i,null,{default:p(()=>[d(l,{class:\"header\",id:\"header\"},{default:p(()=>[d(k2e,{class:\"menu\"})]),_:1}),d(i,null,{default:p(()=>[d(i,{class:\"body\"},{default:p(()=>[d(s,{id:\"pageContent\"},{default:p(()=>[_(t).currentPage.value==\"#log\"?(b(),ae(A2e,{key:0})):oe(\"\",!0),_(t).currentPage.value==\"#status\"?(b(),ae(m2e,{key:1})):oe(\"\",!0),_(t).currentPage.value==\"#set\"?(b(),ae(U2e,{key:2})):oe(\"\",!0),_(t).currentPage.value==\"#login\"?(b(),ae(K2e,{key:3})):oe(\"\",!0),_(t).currentPage.value==\"#whitelistset\"?(b(),ae(Q2e,{key:4})):oe(\"\",!0),_(t).currentPage.value==\"#whitelists\"?(b(),ae(oce,{key:5})):oe(\"\",!0),_(t).currentPage.value==\"#blacklists\"?(b(),ae(sce,{key:6})):oe(\"\",!0),_(t).currentPage.value==\"#ddnstasklist\"?(b(),ae(_de,{key:7})):oe(\"\",!0),_(t).currentPage.value==\"#ddnsset\"?(b(),ae(Pfe,{key:8})):oe(\"\",!0),_(t).currentPage.value==\"#reverseproxylist\"?(b(),ae(Dfe,{key:9})):oe(\"\",!0),_(t).currentPage.value==\"#ssl\"?(b(),ae(Ife,{key:10})):oe(\"\",!0),_(t).currentPage.value==\"#about\"?(b(),ae(a,{key:11})):oe(\"\",!0),_(t).currentPage.value==\"#portforward\"?(b(),ae(r,{key:12})):oe(\"\",!0),_(t).currentPage.value==\"#portforwardset\"?(b(),ae(u,{key:13})):oe(\"\",!0)]),_:1})]),_:1})]),_:1})]),_:1})])}}});var Ofe=wn(Nfe,[[\"__scopeId\",\"data-v-608a44dc\"]]);const Zu=H1(Ofe);for(let e in i0)Zu.component(e,i0[e]);Zu.config.globalProperties.$storage=lr;V6(location.hash)||(location.hash=\"#status\");var I6=z(location.hash);Zu.provide(\"global\",{currentPage:I6,storage:lr});window.onpopstate=function(e){if(I6.value=location.hash,Die.value=location.hash,location.hash==\"#logout\"){Qse().then(t=>{}).catch(t=>{}),lr.setItem(\"token\",\"\"),location.hash=\"#login\";return}if(!V6(location.hash)){console.log(\"location.hash[\"+location.hash+\"]no exist\"),location.hash=\"#login\";return}};Zu.mount(\"#app\")});export default Ufe();\n"
  },
  {
    "path": "web/adminviews/dist/assets/index.f23c7bd8.css",
    "content": "@charset \"UTF-8\";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:\"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"\\5fae\\8f6f\\96c5\\9ed1\",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:\"\";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:\"*\";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:\"*\";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:\" \";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-input-number{position:relative;display:inline-block;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary)}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.AdminListenDivRadius[data-v-5c315195]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.SetForm[data-v-5c315195]{margin-top:15px;margin-left:20px}.formradius[data-v-5c315195]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-5c315195]{width:360px}#adminAccount[data-v-5c315195],#adminPassword[data-v-5c315195]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-5c315195],#globalMaxConnections[data-v-5c315195]{width:360px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:3px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-height-extra-small:24px;--el-pagination-line-height-extra-small:var(--el-pagination-height-extra-small);white-space:nowrap;padding:2px 5px;color:var(--el-pagination-text-color);font-weight:400;display:flex;align-items:center}.el-pagination:after,.el-pagination:before{display:table;content:\"\"}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-select .el-input{width:128px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat;background-size:16px;background-color:var(--el-pagination-bg-color);cursor:pointer;margin:0;color:var(--el-pagination-button-color)}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination .btn-next:focus-visible,.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);color:var(--el-pagination-hover-color)}.el-pagination .el-pager li.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:var(--el-font-size-extra-small);line-height:var(--el-pagination-line-height-extra-small);height:var(--el-pagination-height-extra-small);min-width:24px}.el-pagination--small .arrow.is-disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:var(--el-pagination-height-extra-small);line-height:var(--el-pagination-line-height-extra-small);font-size:var(--el-font-size-extra-small)}.el-pagination--small .el-pagination__editor{height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:var(--el-pagination-height-extra-small)}.el-pagination--small .el-input--small,.el-pagination--small .el-input__inner{height:var(--el-pagination-height-extra-small)!important;line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-input__suffix,.el-pagination--small .el-input__suffix .el-input__suffix-inner,.el-pagination--small .el-input__suffix .el-input__suffix-inner i.el-select__caret{line-height:var(--el-pagination-line-height-extra-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pagination__sizes{margin:0 16px 0 0;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__sizes+button.btn-prev[type=button]{margin-left:0}.el-pagination__sizes+.el-pager .number:first-child{margin-left:0}.el-pagination__sizes+.el-pager .number:last-child{margin-right:0}.el-pagination__total{margin-right:16px;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total+button.btn-prev[type=button]{margin-left:0}.el-pagination__total+.el-pager .number:first-child{margin-left:0}.el-pagination__total+.el-pager .number:last-child{margin-right:0}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{margin-left:16px;font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination__editor{line-height:18px;margin:0 8px;height:var(--el-pagination-button-height);min-width:56px;text-align:center;box-sizing:border-box;border-radius:var(--el-pagination-border-radius)}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:var(--el-pagination-button-height)}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color);color:var(--el-text-color-regular);min-width:32px;border-radius:2px}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .el-pager li.is-disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-next.is-first,.el-pagination.is-background .btn-prev.is-first,.el-pagination.is-background .el-pager li.is-first{margin-left:0}.el-pagination.is-background .btn-next.is-last,.el-pagination.is-background .btn-prev.is-last,.el-pagination.is-background .el-pager li.is-last{margin-right:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next:hover:not([disabled]),.el-pagination.is-background .btn-prev:hover:not([disabled]){color:var(--el-pagination-hover-color)}.el-pagination.is-background .el-pager li:not(.is-disabled):hover{color:var(--el-pagination-hover-color)}.el-pagination.is-background .el-pager li:not(.is-disabled).is-active{background-color:var(--el-color-primary);color:var(--el-color-white);font-weight:700}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{min-width:24px}.el-pagination.is-background .el-pagination__sizes.is-last{margin-left:16px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{padding:0 4px;background:var(--el-pagination-bg-color);display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);box-sizing:border-box;cursor:pointer;text-align:center;margin:0 1px}.el-pager li.btn-quickprev:hover,.el-pager li.btn-quicknext:hover{cursor:pointer}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:32px;color:var(--el-pagination-button-color)}.el-pager li.btn-quicknext.is-disabled,.el-pager li.btn-quickprev.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-pager li.btn-quicknext svg,.el-pager li.btn-quickprev svg{pointer-events:none}.el-pager li.btn-quicknext:focus-visible,.el-pager li.btn-quickprev:focus-visible{outline:1px solid var(--el-pagination-hover-color);color:var(--el-pagination-hover-color)}.el-pager li.is-active+li{border-left:0}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color)}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager+button.btn-next[type=button]{margin-right:0}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:\"\";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:\"\";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask-size:100% 100%;-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:\"\";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;mask-size:100% 100%;-webkit-mask:url(\"data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E\") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-select .el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select .el-select__tags .el-tag:last-child{margin-right:0}.el-select .el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select .el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select .el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select .el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:\"\";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:\"\";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:\"\";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.el-affix--fixed{position:fixed}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration);vertical-align:middle}.el-switch__core .el-switch__inner{position:absolute;top:1px;left:1px;transition:all var(--el-transition-duration);width:16px;height:16px;display:flex;justify-content:center;align-items:center;left:50%;white-space:nowrap}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);transition:opacity var(--el-transition-duration);position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__core .el-switch__action{position:absolute;top:1px;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch__core .el-switch__action .is-icon,.el-switch__core .el-switch__action .is-text{transition:opacity var(--el-transition-duration);position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-switch__core .is-text{font-size:12px}.el-switch__core .is-show{opacity:1}.el-switch__core .is-hide{opacity:0}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:100%;margin-left:-17px;color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{left:50%;white-space:nowrap;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner,.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action,.el-switch--large.is-checked .el-switch__core .el-switch__inner{margin-left:-21px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner,.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action,.el-switch--small.is-checked .el-switch__core .el-switch__inner{margin-left:-13px}.itemradius[data-v-44f77ba6]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 25px;min-width:1200px}.portforwardLogs[data-v-44f77ba6]{background-color:#000;height:fit-content;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap}.dialogRadius[data-v-44f77ba6]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:\"\";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}.InfoDivRadius[data-v-ff97a846]{border:2px solid var(--el-border-color);border-radius:10px;margin:50px auto auto;width:495px;height:fit-content;padding:auto;padding-top:20px;padding-bottom:30px}.line[data-v-ff97a846]{margin-bottom:5px}#status{height:95vh}.status{font-size:15px}#proxys_status{font-size:10px;list-style:none;padding:0;text-align:left;margin:0}.logtermv2{background-color:#000;height:95vh;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.logterm::-webkit-scrollbar{width:5px}.logterm::-webkit-scrollbar-thumb{background-color:silver;border-radius:10%}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu{position:relative}.el-menu--collapse .el-sub-menu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid var(--el-border-color-light);border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height);min-width:200px}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-7px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.menu{background-color:#d9ecff}.flex-grow{flex-grow:1}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.AdminListenDivRadius[data-v-3da206be]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:456;padding-top:9px;padding-left:9px;padding-right:9px}.SetForm[data-v-3da206be]{margin-top:15px;margin-left:20px}.formradius[data-v-3da206be]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-3da206be]{width:360px}#adminAccount[data-v-3da206be],#adminPassword[data-v-3da206be]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-3da206be],#globalMaxConnections[data-v-3da206be]{width:360px}.inline-block[data-v-3da206be]{display:inline-block;margin-right:10px}.margin-change[data-v-3da206be]{display:inline-block;margin-left:10px}.formradius[data-v-ee7bc046],.formradius[data-v-52b01d33]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px;z-index:3}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:\"\";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__footer-wrapper tr:first-child td:first-child,.el-table--border .el-table__footer-wrapper tr:first-child th:first-child,.el-table--border .el-table__inner-wrapper tr:first-child td:first-child,.el-table--border .el-table__inner-wrapper tr:first-child th:first-child,.el-table--group .el-table__footer-wrapper tr:first-child td:first-child,.el-table--group .el-table__footer-wrapper tr:first-child th:first-child,.el-table--group .el-table__inner-wrapper tr:first-child td:first-child,.el-table--group .el-table__inner-wrapper tr:first-child th:first-child{border-left:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:\"\";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px;z-index:3}.el-table--border:before{top:-1px;left:0;width:1px;height:100%;z-index:3}.el-table--border:after{top:-1px;right:0;width:1px;height:100%;z-index:3}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:\"\";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table:not(.el-table--border) .el-table__footer-wrapper tr:first-child td:first-child,.el-table:not(.el-table--border) .el-table__footer-wrapper tr:first-child th:first-child,.el-table:not(.el-table--border) .el-table__inner-wrapper tr:first-child td:first-child,.el-table:not(.el-table--border) .el-table__inner-wrapper tr:first-child th:first-child{border-left:none}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.formradius[data-v-d9c87ebe],.formradius[data-v-4c99c1a8]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-0efebb96]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 25px;min-width:1200px}.fromitemDivRadius[data-v-0efebb96]{border:5px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:530px;padding-left:9px;padding-right:9px}.fromitemChildDivRadius[data-v-0efebb96]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:495px;padding-top:9px;padding-left:9px;padding-right:9px}.affix-container[data-v-0efebb96]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.ReverseProxyPageRadius[data-v-79bf589c]{height:90vh;width:100%;max-width:1600px;border:1px solid var(--el-border-color);border-radius:0;margin:20px}.affix-container[data-v-79bf589c]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}.fromitemDivRadius[data-v-79bf589c]{border:5px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:530px;padding-left:9px;padding-right:9px}.fromitemChildDivRadius[data-v-79bf589c]{border:4px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:495px;padding-top:9px;padding-left:9px;padding-right:9px}.fromitemChildSafeDivRadius[data-v-79bf589c]{border:2px solid var(--el-border-color);border-radius:10px;margin:15px 3px;width:465px;padding-top:9px;padding-left:9px;padding-right:9px}.formradius[data-v-79bf589c]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-79bf589c]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 25px;min-width:1350px}.reverseProxyLogs[data-v-79bf589c]{background-color:#000;height:fit-content;width:100%;color:#fff;text-align:left;padding-left:3px;border:10px;overflow-y:auto;overflow-x:auto;white-space:pre-wrap}.SetForm[data-v-53d1c3c2]{margin-top:15px;margin-left:20px}.formradius[data-v-53d1c3c2]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}#adminListen[data-v-53d1c3c2]{width:360px}#adminAccount[data-v-53d1c3c2],#adminPassword[data-v-53d1c3c2]{width:30vw;max-width:360px;min-width:300px}#proxyCountLimit[data-v-53d1c3c2],#globalMaxConnections[data-v-53d1c3c2]{width:360px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.formradius[data-v-29c64958]{border:0px solid var(--el-border-color);border-radius:0;margin:0 auto;width:fit-content;padding:15px}.itemradius[data-v-29c64958]{border:1px solid var(--el-border-color);border-radius:0;margin:3px 3px 25px;min-width:1350px}.affix-container[data-v-29c64958]{text-align:center;border-radius:4px;width:3vw;background:var(--el-color-primary-light-9)}#pageContent[data-v-608a44dc]{margin:0;height:95vh;overflow:hidden;padding-left:1px;padding-right:0;width:100%}body[data-v-608a44dc]{margin:0;width:100%}#header[data-v-608a44dc]{background-color:#0d8bbb;height:fit-content;width:100%;padding:0}.title[data-v-608a44dc]{float:left;text-align:left;margin-left:10%;font-size:25px}.menu[data-v-608a44dc]{float:left;height:30px;width:100vw}.version[data-v-608a44dc]{float:right}.title[data-v-608a44dc],.version[data-v-608a44dc]{width:100%;color:#f0f8ff;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5fae\\8f6f\\96c5\\9ed1,Arial,sans-serif}.common-layout .el-header,.common-layout .el-footer,.common-layout .el-main,.common-layout .el-aside{display:flex;justify-content:center;align-items:center}.common-layout .el-header,.common-layout .el-footer{background-color:var(--el-color-primary-light-7);color:var(--el-text-color-primary);text-align:center}.common-layout .el-aside{background-color:var(--el-color-primary-light-8);color:var(--el-text-color-primary);text-align:center}.common-layout .el-main{background-color:var(--el-color-primary-light-9);color:var(--el-text-color-primary);text-align:center;height:150px}.PageRadius{height:90vh;width:100%;max-width:1300px;border:1px solid var(--el-border-color);border-radius:0;margin:20px}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular)}.el-notification{display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:\"\";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}\n"
  },
  {
    "path": "web/adminviews/dist/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-cn\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    \n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <meta name=\"viewport\" content=\"width=device-width,user-scalable=no,initial-scale=1.0,  maximum-scale=1.0,minimum-scale=1.0\" />\t\n\n\n    <title>Lucky</title>\n    <script type=\"module\" crossorigin src=\"/assets/index.e5c8aec2.js\"></script>\n    <link rel=\"stylesheet\" href=\"/assets/index.f23c7bd8.css\">\n  </head>\n  <body style=\"margin:0\">\n    <div id=\"app\"></div>\n    \n  </body>\n</html>\n"
  },
  {
    "path": "web/adminviews/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-cn\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    \n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <meta name=\"viewport\" content=\"width=device-width,user-scalable=no,initial-scale=1.0,  maximum-scale=1.0,minimum-scale=1.0\" />\t\n\n\n    <title>Lucky</title>\n  </head>\n  <body style=\"margin:0\">\n    <div id=\"app\"></div>\n    <script type=\"module\" src=\"/src/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "web/adminviews/package.json",
    "content": "{\n  \"name\": \"lucky-adminviews\",\n  \"version\": \"0.1.0\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview --port 4173\"\n  },\n  \"dependencies\": {\n    \"@element-plus/icons-vue\": \"^2.0.4\",\n    \"axios\": \"^0.27.2\",\n    \"element-plus\": \"^2.2.2\",\n    \"file-saver\": \"^2.0.5\",\n    \"vue\": \"^3.2.36\",\n    \"vue-clipboard3\": \"^2.0.0\"\n  },\n  \"devDependencies\": {\n    \"@vitejs/plugin-vue\": \"^2.3.3\",\n    \"@vue/cli-plugin-typescript\": \"~5.0.0\",\n    \"babel-plugin-import\": \"^1.13.5\",\n    \"sass\": \"^1.52.1\",\n    \"unplugin-auto-import\": \"^0.8.6\",\n    \"unplugin-vue-components\": \"^0.19.6\",\n    \"vite\": \"^2.9.9\"\n  }\n}\n"
  },
  {
    "path": "web/adminviews/src/App.vue",
    "content": "<template>\n\n  <div class=\"common-layout\">\n    <el-container>\n      <el-header class=\"header\" id=\"header\" >\n        <!-- <p class=\"title\">大吉</p>\n        <p class=\"version\">version:{{version}}</p> -->\n        <Pmenu class=\"menu\"></Pmenu>\n      </el-header>\n      <el-container>\n        <!-- <el-aside width=\"initial\" id=\"aside\" direction=\"vertical\" >\n      \n        <Pmenu v-if=\"global.currentPage.value=='#login'?false:true\"></Pmenu>\n          \n        </el-aside> -->\n        <el-container class=\"body\">\n          <el-main id=\"pageContent\">\n            <Log v-if=\"global.currentPage.value=='#log'?true:false\"></Log>\n            <Status v-if=\"global.currentPage.value=='#status'?true:false\"></Status>\n            <Pset v-if=\"global.currentPage.value=='#set'?true:false\"></Pset>\n            <Login v-if=\"global.currentPage.value=='#login'?true:false\"></Login>\n            <WhiteListSet v-if=\"global.currentPage.value=='#whitelistset'?true:false\"></WhiteListSet>\n            <WhiteLists v-if=\"global.currentPage.value=='#whitelists'?true:false\"></WhiteLists>\n            <BlackLists v-if=\"global.currentPage.value=='#blacklists'?true:false\"></BlackLists>\n            <DDNS v-if=\"global.currentPage.value=='#ddnstasklist'?true:false\"></DDNS>\n            <DDNSSet v-if=\"global.currentPage.value=='#ddnsset'?true:false\"></DDNSSet>\n            <ReverseProxy v-if=\"global.currentPage.value=='#reverseproxylist'?true:false\"></ReverseProxy>\n            <SSL v-if=\"global.currentPage.value=='#ssl'?true:false\"></SSL>\n            <About v-if=\"global.currentPage.value=='#about'?true:false\"></About>\n            <PortForward v-if=\"global.currentPage.value=='#portforward'\"></PortForward>\n            <PortForwardSet v-if=\"global.currentPage.value=='#portforwardset'\"></PortForwardSet>\n            <WOL v-if=\"global.currentPage.value=='#wol'\"></WOL>\n          </el-main>\n\n        </el-container>\n      </el-container>\n    </el-container>\n  </div>\n</template>\n\n\n\n\n<script setup lang=\"ts\">\nimport { onMounted,ref,inject ,computed } from 'vue'\nimport Status from './components/status.vue'\nimport Log from './components/log.vue';\nimport Pmenu from './components/pmenu.vue';\nimport Pset from './components/pset.vue';\nimport Login from './components/login.vue';\nimport WhiteListSet from './components/WhiteListSet.vue';\nimport WhiteLists from './components/WhiteLists.vue';\nimport BlackLists from './components/BlackLists.vue';\nimport DDNS from './components/DDNS.vue';\nimport ReverseProxy from './components/reverseproxy.vue';\n\n\nimport {apiGetVersion} from \"./apis/utils.js\"\nimport DDNSSet from './components/DDNSSet.vue';\nimport SSL from './components/SSL.vue'\n\n//console.log(\"111\") \n\nconst global:any = inject(\"global\")\n\nconst version = ref(\"0.0.0\")\n\nconst queryVersion = ()=>{\n  apiGetVersion().then((res) => {\n        if (res.ret == 0) {\n            version.value = res.version\n            return\n        }\n\n    }).catch((error) => {\n\n    })\n}\n\n\nonMounted(() => {\n  //console.log(\"222\")\n//queryVersion()\n\n})\n\n\n\n\n\n\n</script>\n\n\n\n\n<style scoped>\n\n#pageContent{\n  margin:0;\n  height: 95vh;\n  overflow: hidden;\n  padding-left: 1px;\n  padding-right: 0px;\n  width: 100%;\n}\n\nbody{\n  margin: 0;\n  width:100%;\n}\n\n\n\n\n\n  #header {\n    background-color: #0d8bbb;\n    height: fit-content;\n    width:100%;\n    padding:0\n  }\n\n  .title {\n    float:left;\n    text-align: left;\n    margin-left: 10%;\n    font-size:25px;\n  }\n\n    .menu {\n    float:left;\n\n    height: 30px;\n    width:100vw;\n  }\n\n  \n  .version{\n    float:right;\n    \n  }\n\n  .title,.version{\n    width:100%;\n    color: aliceblue;\n    font-family: \"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"微软雅黑\",Arial,sans-serif;\n  }\n</style>\n\n\n"
  },
  {
    "path": "web/adminviews/src/apis/storage.js",
    "content": "\n/**\n * 使用方式\n * * * main.js挂载全局\n *  import storage from './utils/storage';\n    const app = createApp(App);\n    app.config.globalProperties.$storage = storage;\n * * * vue3.0 全局使用 vue实例上的数据\n *  import { defineComponent, reactive, getCurrentInstance } from \"vue\";\n *  let { appContext } = getCurrentInstance();\n    appContext.config.globalProperties.$storage.setItem(\"username\",\"aaa\");\n    appContext.config.globalProperties.$storage.setItem(\"age\",20);\n    appContext.config.globalProperties.$storage.clearItem(\"age\");\n    appContext.config.globalProperties.$storage.clearAll();\n */\nexport default {\n    getStorage () { // 先获取该项目的 命名存储空间 下的storage数据 maneger\n        return JSON.parse(window.localStorage.getItem(\"lucky\") || \"{}\");\n    },\n    setItem (key, val) {\n        let storage = this.getStorage()\n        // console.log(\"setItem\", storage);\n        storage[key] = val; // 为当前对象添加 需要存储的值\n        window.localStorage.setItem(\"lucky\", JSON.stringify(storage)) // 保存到本地\n    },\n    getItem (key) {\n        return this.getStorage()[key]\n    },\n    // 清空 当前的项目下命名存储的空间 该key项的 Storage 数据\n    clearItem (key) {\n        let storage = this.getStorage()\n        delete storage[key]\n        window.localStorage.setItem(config.namespace, JSON.stringify(storage)) // 保存到本地\n    },\n    // 清空所有的 当前的项目下命名存储的空间 Storage 数据\n    clearAll () {\n        window.localStorage.clear();\n    }\n}"
  },
  {
    "path": "web/adminviews/src/apis/utils.js",
    "content": "// 导入axios实例\nimport httpRequest from '@/request/index'\nimport  storage  from './storage.js'\n\n// 获取锚点\nexport function GetHash() {\n    return location.hash\n}\n\n// 设置锚点\nexport function SetHash(hash) {\n     location.hash = hash\n}\n\nexport function GetToken(){\n\t//console.log(\"getTokenkkk: \"+storage.getItem(\"token\"))\n\treturn storage.getItem(\"token\")==undefined?\"\":storage.getItem(\"token\");\n}\n\n\n// 获取状态信息\nexport function apiGetStatus() {\n    return httpRequest({\n\t\turl: '/api/status',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()},\n\t\t\n\t})\n}\n\nexport function apiGetLogs(pretimestamp) {\n    return httpRequest({\n\t\turl: \"/api/logs\",\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{pre:pretimestamp,_:new Date().valueOf()}\n\t})\n}\n\n\nexport function apiGetRuleList() {\n    return httpRequest({\n\t\turl: '/api/rulelist',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\nexport function apiAddRule(data) {\n    return httpRequest({\n\t\turl: '/api/rule',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiAddDDNSTask(data) {\n    return httpRequest({\n\t\turl: '/api/ddns',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiAlterDDNSTask(taskKey,data) {\n    return httpRequest({\n\t\turl: '/api/ddns',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data,\n\t\tparams:{key:taskKey}\n\t})\n}\n\nexport function apiDeleteDDNSTask(taskKey) {\n    return httpRequest({\n\t\turl: '/api/ddns',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:taskKey}\n\t})\n}\n\nexport function apiGetDDNSTaskList() {\n    return httpRequest({\n\t\turl: '/api/ddnstasklist',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\n\nexport function apiDeleteRule(configure) {\n    return httpRequest({\n\t\turl: '/api/rule',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),rule:configure}\n\t})\n}\n\nexport function apiAlterRule(data) {\n    return httpRequest({\n\t\turl: '/api/rule',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiRuleEnable(key,enable) {\n    return httpRequest({\n\t\turl: '/api/rule/enable',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),enable:enable,key:key}\n\t})\n}\n\nexport function apiDDNSTaskEnable(key,enable) {\n    return httpRequest({\n\t\turl: '/api/ddns/enable',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),enable:enable,key:key}\n\t})\n}\n\nexport function apiQueryBaseConfigure() {\n    return httpRequest({\n\t\turl: '/api/baseconfigure',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiQueryDDNSConfigure() {\n    return httpRequest({\n\t\turl: '/api/ddns/configure',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiAlterBaseConfigure(data) {\n    return httpRequest({\n\t\turl: '/api/baseconfigure',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiAlterDDNSConfigure(data) {\n    return httpRequest({\n\t\turl: '/api/ddns/configure',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiLogin(data) {\n    return httpRequest({\n\t\turl: '/api/login',\n\t\tmethod: 'post',\n\t\tdata:data\n\t})\n}\n\n\nexport function apiRebootProgram() {\n    return httpRequest({\n\t\turl: '/api/reboot_program',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\nexport function apiAlterWhiteListConfigure(data) {\n    return httpRequest({\n\t\turl: '/api/whitelist/configure',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiGetWhiteListConfigure(data) {\n    return httpRequest({\n\t\turl: '/api/whitelist/configure',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiGetWhiteList(data) {\n    return httpRequest({\n\t\turl: '/api/whitelist',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()},\n\t\t\n\t})\n}\n\n\nexport function apiFlushWhiteList(ip,life) {\n    return httpRequest({\n\t\turl: '/api/whitelist/flush',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),ip:ip,life:life}\n\t})\n}\n\nexport function apiDeleteWhiteList(ip,life) {\n    return httpRequest({\n\t\turl: '/api/whitelist',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),ip:ip},\n\t})\n}\n\nexport function apiGetBlackList(data) {\n    return httpRequest({\n\t\turl: '/api/blacklist',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\nexport function apiFlushBlackList(ip,life) {\n    return httpRequest({\n\t\turl: '/api/blacklist/flush',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),ip:ip,life:life}\n\t})\n}\n\nexport function apiDeleteBlackList(ip,life) {\n    return httpRequest({\n\t\turl: '/api/blacklist',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),ip:ip}\n\t})\n}\n\n\nexport function apiGetVersion() {\n    return httpRequest({\n\t\turl: '/version',\n\t\tmethod: 'get',\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiLogout() {\n    return httpRequest({\n\t\turl: '/api/logout',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t})\n}\n\nexport function apiGetNetinterfaces() {\n    return httpRequest({\n\t\turl: '/api/netinterfaces',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiGetIPRegTest(iptype,netinterface,ipreg) {\n    return httpRequest({\n\t\turl: '/api/ipregtest',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),iptype:iptype,netinterface:netinterface,ipreg:ipreg}\n\t})\n}\n\n///api/webhooktest\n\n\nexport function apiWebhookTest(taskKey,data) {\n    return httpRequest({\n\t\turl: 'api/webhooktest',\n\t\theaders:{'Authorization':GetToken()},\n\t\tmethod: 'post',\n\t\tdata:data,\n\t\tparams:{key:taskKey}\n\t})\n}\n\nexport function apiGetAPPInfo() {\n    return httpRequest({\n\t\turl: '/api/info',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\nexport function apiGetRestoreConfigureConfirm(key) {\n    return httpRequest({\n\t\turl: '/api/restoreconfigureconfirm',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:key}\n\t})\n}\n\nexport function apiGetConfigure() {\n    return httpRequest({\n\t\turl: '/api/configure',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiDeleteSSL(key) {\n    return httpRequest({\n\t\turl: '/api/ssl',\n\t\tmethod: 'delete',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:key}\n\t})\n}\n\nexport function apiAddSSL(data) {\n    return httpRequest({\n\t\turl: '/api/ssl',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiAlterSSL(key,field,value) {\n    return httpRequest({\n\t\turl: '/api/ssl',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{key:key,field:field,value:value},\n\t})\n}\n\nexport function apiGetSSLList(data) {\n    return httpRequest({\n\t\turl: '/api/ssl',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\n\n\n\nexport function apiAddReverseProxyRule(data) {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrule',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiGeReverseProxyRuleList() {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrules',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiAlterReverseProxyRule(data) {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrule',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data,\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiDeleteReverseProxyRule(ruleKey) {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrule',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:ruleKey}\n\t})\n}\n\nexport function apiReverseProxyRuleEnable(ruleKey,proxyKey,enable) {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrule/enable',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{\n\t\t\t_:new Date().valueOf(),\n\t\t\tenable:enable,\n\t\t\truleKey:ruleKey,\n\t\t\tproxyKey:proxyKey}\n\t})\n}\n\n\nexport function apiReverseProxyRuleLogs(ruleKey,proxyKey,pageSize,page) {\n    return httpRequest({\n\t\turl: '/api/reverseproxyrule/logs',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{\n\t\t\t_:new Date().valueOf(),\n\t\t\truleKey:ruleKey,\n\t\t\tproxyKey:proxyKey,\n\t\t\tpageSize:pageSize,\n\t\t\tpage:page}\n\t})\n}\n\n\n//-------------------------------------------------\n\nexport function apiGetPortForwardRuleList() {\n    return httpRequest({\n\t\turl: '/api/portforwards',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiAddPortForwardRule(data) {\n    return httpRequest({\n\t\turl: '/api/portforward',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiDeletePortForwardRule(key) {\n    return httpRequest({\n\t\turl: '/api/portforward',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:key}\n\t})\n}\n\nexport function apiAlterPortForwardRule(data) {\n    return httpRequest({\n\t\turl: '/api/portforward',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiPortForwardRuleEnable(key,enable) {\n    return httpRequest({\n\t\turl: '/api/portforward/enable',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),enable:enable,key:key}\n\t})\n}\n\nexport function apiQueryPortForwardConfigure() {\n    return httpRequest({\n\t\turl: '/api/portforward/configure',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiAlterPortForwardConfigure(data) {\n    return httpRequest({\n\t\turl: '/api/portforward/configure',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiPortforwardRuleLogs(key,pageSize,page) {\n    return httpRequest({\n\t\turl: '/api/portforward/logs',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{\n\t\t\t_:new Date().valueOf(),\n\t\t\tkey:key,\n\t\t\tpageSize:pageSize,\n\t\t\tpage:page}\n\t})\n}\n\n\n//-----------------\n\nexport function apiGetWOLDeviceList() {\n    return httpRequest({\n\t\turl: '/api/wol/devices',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf()}\n\t})\n}\n\nexport function apiAddWOLDevice(data) {\n    return httpRequest({\n\t\turl: '/api/wol/device',\n\t\tmethod: 'post',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}\n\nexport function apiDeleteWOLDevice(key) {\n    return httpRequest({\n\t\turl: '/api/wol/device',\n\t\tmethod: 'delete',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:key}\n\t})\n}\n\nexport function apiWOLDeviceWakeUp(key) {\n    return httpRequest({\n\t\turl: '/api/wol/device/wakeup',\n\t\tmethod: 'get',\n\t\theaders:{'Authorization':GetToken()},\n\t\tparams:{_:new Date().valueOf(),key:key}\n\t})\n}\n\nexport function apiAlterWOLDevice(data) {\n    return httpRequest({\n\t\turl: '/api/wol/device',\n\t\tmethod: 'put',\n\t\theaders:{'Authorization':GetToken()},\n\t\tdata:data\n\t})\n}"
  },
  {
    "path": "web/adminviews/src/assets/appbase.css",
    "content": "\n\n.PageRadius {\n    height: 90vh;\n    width: 100%;\n    max-width: 1300px;\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 20px\n}"
  },
  {
    "path": "web/adminviews/src/assets/base.css",
    "content": "/* color palette from <https://github.com/vuejs/theme> */\n:root {\n  --vt-c-white: #ffffff;\n  --vt-c-white-soft: #f8f8f8;\n  --vt-c-white-mute: #f2f2f2;\n\n  --vt-c-black: #181818;\n  --vt-c-black-soft: #222222;\n  --vt-c-black-mute: #282828;\n\n  --vt-c-indigo: #2c3e50;\n\n  --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);\n  --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);\n  --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);\n  --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);\n\n  --vt-c-text-light-1: var(--vt-c-indigo);\n  --vt-c-text-light-2: rgba(60, 60, 60, 0.66);\n  --vt-c-text-dark-1: var(--vt-c-white);\n  --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);\n}\n\n/* semantic color variables for this project */\n:root {\n  --color-background: var(--vt-c-white);\n  --color-background-soft: var(--vt-c-white-soft);\n  --color-background-mute: var(--vt-c-white-mute);\n\n  --color-border: var(--vt-c-divider-light-2);\n  --color-border-hover: var(--vt-c-divider-light-1);\n\n  --color-heading: var(--vt-c-text-light-1);\n  --color-text: var(--vt-c-text-light-1);\n\n  --section-gap: 160px;\n}\n\n@media (prefers-color-scheme: dark) {\n  :root {\n    --color-background: var(--vt-c-black);\n    --color-background-soft: var(--vt-c-black-soft);\n    --color-background-mute: var(--vt-c-black-mute);\n\n    --color-border: var(--vt-c-divider-dark-2);\n    --color-border-hover: var(--vt-c-divider-dark-1);\n\n    --color-heading: var(--vt-c-text-dark-1);\n    --color-text: var(--vt-c-text-dark-2);\n  }\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n  margin: 0;\n  position: relative;\n  font-weight: normal;\n}\n\nbody {\n  min-height: 100vh;\n  color: var(--color-text);\n  background: var(--color-background);\n  transition: color 0.5s, background-color 0.5s;\n  line-height: 1.6;\n  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,\n    Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\n  font-size: 15px;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n"
  },
  {
    "path": "web/adminviews/src/assets/common-layout.scss",
    "content": ".common-layout {\n    .el-header,\n    .el-footer,\n    .el-main,\n    .el-aside {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n    }\n  \n    .el-header,\n    .el-footer {\n      background-color: var(--el-color-primary-light-7);\n      color: var(--el-text-color-primary);\n      text-align: center;\n    }\n  \n    .el-aside {\n      background-color: var(--el-color-primary-light-8);\n      color: var(--el-text-color-primary);\n      text-align: center;\n    }\n  \n    .el-main {\n      background-color: var(--el-color-primary-light-9);\n      color: var(--el-text-color-primary);\n      text-align: center;\n  \n      height: 150px;\n    }\n  }\n  "
  },
  {
    "path": "web/adminviews/src/components/About.vue",
    "content": "<template>\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n    \n    <div class=\"InfoDivRadius\">\n        <div class=\"line\">\n            {{Info.AppName}}&nbsp;&nbsp;&nbsp;version:{{Info.Version}}&nbsp; {{Info.OS}}({{Info.ARCH}})\n        </div>\n        <div class=\"line\">\n          \n        </div>\n        <div class=\"line\">\n            作者:古大羊 &nbsp;{{Info.GoVersion}}&nbsp;编译时间:{{Info.Date}}\n        </div>\n\n        <div class=\"line\">\n            \n<el-link type=\"primary\" href=\"tencent://message/?uin=272288813&Site=&Menu=yes\" target=\"_blank\">QQ联系作者</el-link>\n&nbsp;&nbsp;&nbsp;邮箱: 272288813@qq.com\n\n        </div>\n\n        <div class=\"line\">\n             Lukcy交流 QQ群:&nbsp;&nbsp;602427029\n        </div>\n\n        <div class=\"line\">\n             Github&nbsp;&nbsp;<el-link type=\"primary\" href=\"https://github.com/gdy666/lucky\" target=\"_blank\">https://github.com/gdy666/lucky</el-link>\n        </div>\n\n        <div class=\"line\">\n             Gitee&nbsp;&nbsp;<el-link type=\"primary\" href=\"https://gitee.com/gdy666/lucky\" target=\"_blank\">https://gitee.com/gdy666/lucky</el-link>\n        </div>\n\n        <div>\n            本项目借鉴引用或参考的第三方开源项目: <el-link type=\"primary\" href=\"https://github.com/fatedier/frp\" target=\"_blank\">frp</el-link> <el-link type=\"primary\" href=\"https://github.com/jeessy2/ddns-go\" target=\"_blank\">ddns-go</el-link>\n        </div>\n\n        <div class=\"line\">\n             \n        </div>\n    </div>\n\n    </div>\n</template>\n\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { apiGetAPPInfo } from '../apis/utils'\nimport {MessageShow} from '../utils/ui'\n\nvar Info = ref({\n    AppName:\"Lucky\",\n    Version:\"1.0.0\",\n    OS:\"unknow\",\n    ARCH:\"unknow\",\n    Date:\"2022-07-25\",\n    GoVersion:\"\"\n})\n\n\nconst queryAPPInfo = ()=>{\n     apiGetAPPInfo().then((res) => {\n        if (res.ret==0){\n            Info.value = res.info\n            return \n        }\n        MessageShow(\"error\", \"获取App信息出错\")\n    }).catch((error) => {\n        console.log(\"获获取App信息出错:\" + error)\n        MessageShow(\"error\", \"获取App信息出错\")\n    })\n}\n\nonMounted(() => {\n    queryAPPInfo()\n\n})\n\n</script>\n\n\n<style scoped>\n\n\n.InfoDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin:auto;\n    margin-top:50px;\n    width: 495px;\n    height: fit-content;\n    padding:auto;\n    padding-top: 20px;\n    padding-bottom: 30px;\n   \n}\n\n.line {\n    margin-bottom: 5px;\n}\n\n</style>"
  },
  {
    "path": "web/adminviews/src/components/BlackLists.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <el-affix position=\"top\" :offset=\"0\" class=\"affix-container\">\n            <el-button type=\"primary\" @click=\"showAddBlackListDialog\">黑名单添加 <el-icon>\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n\n\n\n                <el-table :data=\"Blacklist\" style=\"width: 700px\" height=\"85vh\">\n                    <el-table-column prop=\"IP\" label=\"IP\" width=\"200\" />\n                    <el-table-column prop=\"Effectivetime\" label=\"有效时间\" width=\"200\" />\n                    <el-table-column fixed=\"right\" label=\"操作\" width=\"300\">\n                        <template #default=\"list\">\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"flushBlackListEffectivetime(list.$index, Blacklist[list.$index], 0, '确认要刷新IP[' + Blacklist[list.$index].IP + ']的有效时间?')\">\n                                刷新有效时间</el-button>\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"flushBlackListEffectivetime(list.$index, Blacklist[list.$index], 666666, '确认要设置IP[' + Blacklist[list.$index].IP + ']为长期有效?')\">\n                                设置永久有效</el-button>\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"deleteBlackList(list.$index, Blacklist[list.$index])\">删除</el-button>\n                        </template>\n                    </el-table-column>\n\n                </el-table>\n\n\n\n\n\n            </div>\n\n\n        </el-scrollbar>\n\n\n        <el-dialog v-model=\"addBlackListDialogVisible\" title=\"添加黑名单IP\" draggable :show-close=\"false\" :close-on-click-modal=\"false\" width=\"400px\">\n\n            <el-form :model=\"addBlackListForm\">\n                <el-form-item label=\"IP\" label-width=\"auto\">\n                    <el-input v-model=\"addBlackListForm.IP\" autocomplete=\"off\" />\n                </el-form-item>\n                <el-form-item label=\"有效时间(小时)\" label-width=\"auto\">\n                    <el-input-number v-model=\"addBlackListForm.Life\" :min=\"1\" :max=\"999999\" />\n                </el-form-item>\n\n            </el-form>\n\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"addBlackListDialogVisible = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"addBlackList\">添加</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, computed } from 'vue'\nimport { ElMessageBox } from 'element-plus'\nimport { MessageShow } from '../utils/ui'\nimport { isIP } from '../utils/utils'\n\nimport { apiGetBlackList, apiFlushBlackList, apiDeleteBlackList } from '../apis/utils'\nvar Blacklist = ref([{ IP: \"\", Effectivetime: \"\" }])\nBlacklist.value.splice(0, 1)\n\nconst addBlackListDialogVisible = ref(false)\nconst addBlackListForm = ref({ IP: \"\", Life: 0 })\n\nconst showAddBlackListDialog = () => {\n    addBlackListDialogVisible.value = true\n    addBlackListForm.value.IP = \"\"\n    addBlackListForm.value.Life = 666666\n}\n\nconst flushBlackListEffectivetime = (index, item, life, text) => {\n    ElMessageBox.confirm(\n        text,\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            flushBlackListlife(index, item.IP, life)\n        })\n        .catch(() => {\n\n        })\n}\n\nconst flushBlackListlife = (index, ip, life) => {\n    apiFlushBlackList(ip, life).then((res) => {\n        if (res.ret == 0) {\n            Blacklist.value[index].Effectivetime = res.data\n            return\n        }\n        MessageShow(\"error\", res.msg)\n\n    }).catch((error) => {\n        MessageShow(\"error\", \"刷新IP[\" + ip + \"]有效时间出错\")\n    })\n}\n\n\n\nconst addBlackList = () => {\n\n    // if (!isIP(addBlackListForm.value.IP)) {\n    //     MessageShow(\"error\", \"IP格式有误,请检查修正后再添加\")\n    //     return\n    // }\n\n    apiFlushBlackList(addBlackListForm.value.IP, addBlackListForm.value.Life).then((res) => {\n        if (res.ret == 0) {\n            let item = { IP: addBlackListForm.value.IP, Effectivetime: res.data }\n            Blacklist.value.push(item)\n            addBlackListDialogVisible.value = false\n            // MessageShow(\"success\", \"黑名单添加成功\")\n            return\n        }\n        MessageShow(\"error\", res.msg)\n\n    }).catch((error) => {\n        MessageShow(\"error\", \"刷新IP[\" + addBlackListForm.value.IP + \"]有效时间出错\")\n    })\n}\n\nconst deleteBlackList = (index, item) => {\n    ElMessageBox.confirm(\n        '确认要删除IP [' + item.IP + \"]的黑名单记录?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            apiDeleteBlackList(item.IP).then((res) => {\n                if (res.ret == 0) {\n                    Blacklist.value.splice(index, 1)\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n\n            }).catch((error) => {\n                MessageShow(\"error\", \"删除[\" + item.IP + \"]的黑名单记录出错\")\n            })\n        })\n        .catch(() => {\n\n        })\n}\n\n\nconst queryBlackList = () => {\n    apiGetBlackList().then((res) => {\n        if (res.ret == 0) {\n            if (res.data != null) {\n                Blacklist.value = res.data\n            } else {\n                Blacklist.value = []\n            }\n            return\n        }\n        MessageShow(\"error\", res.msg)\n        //console.log(\"getAdminURL \"+getAdminURL())\n    }).catch((error) => {\n        MessageShow(\"error\", \"查询黑名单列表出错\")\n    })\n}\n\nconst keydown = (e) => {\n    if (e.keyCode != 13) {\n        return\n    }\n    if (!addBlackListDialogVisible.value) {\n        return\n    }\n    addBlackList()\n}\n\n\n\nonMounted(() => {\n    queryBlackList();\n    window.addEventListener('keydown', keydown)\n})\n\n</script>\n\n<style scoped>\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n\n\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/DDNS.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n\n\n        <el-scrollbar height=\"100%\">\n\n            <div class=\"itemradius\" :style=\"{\n                borderRadius: 'base',\n            }\" v-for=\"task, taskIndex in taskList\">\n\n                <el-descriptions :column=\"4\" border>\n\n                    <el-descriptions-item label=\"DDNS任务名称\">\n                        <el-button type=\"\" size=\"default\" v-show=\"true\">\n                            {{ task.TaskName == '' ? '未命名任务' : task.TaskName }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"DDNS类型\">\n                        <el-button color=\"#409eff\" size=\"default\" v-show=\"true\">\n                            {{ task.TaskType }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"任务操作\" :span=\"2\">\n                        <el-tooltip :content=\"task.Enable == true ? '任务已启用' : '任务已禁用'\" placement=\"top\">\n                            <el-switch v-model=\"task.Enable\" inline-prompt active-text=\"开\" inactive-text=\"关\"\n                                :before-change=\"ruleEnableClick.bind(this, task.Enable, task)\" size=\"large\" />\n                        </el-tooltip>\n\n                        &nbsp;&nbsp;\n                        <el-button type=\"primary\" @click=\"showAddOrAlterDDNSTaskDialog('alter', task)\">编辑</el-button>\n                        <el-button type=\"danger\" @click=\"deleteTask(task)\">删除</el-button>\n\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"DNS服务商\">\n                        <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                            {{ GetDNSServerName(task.DNS) }}\n                        </el-button>\n\n\n                        <el-tooltip :v-if=\"task.DNS.HttpClientProxyType == '' ? false : true\"\n                            :content=\"task.DNS.HttpClientProxyType == '' ? '未设置代理' : '类型:[' + task.DNS.HttpClientProxyType + '] 代理服务器地址:[' + task.DNS.HttpClientProxyAddr + ']'\"\n                            placement=\"top\">\n                            <el-button :type=\"task.DNS.HttpClientProxyType == '' ? '' : 'success'\" size=\"small\">\n                                {{ task.DNS.HttpClientProxyType == '' ? '未设置代理' : '已设置代理' }}\n                            </el-button>\n                        </el-tooltip>\n\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"获取公网IP方式\">\n                        <el-button color=\"#409eff\" size=\"default\" v-show=\"true\">\n                            {{ task.GetType == \"url\" ? \"URL\" : \"网卡\" }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"公网IP\">\n\n                        <el-tooltip :placement=\"taskIndex == 0 ? 'bottom' : 'top'\" effect=\"dark\" :trigger-keys=\"[]\"\n                            content=\"\">\n                            <template #content>\n                                <span v-html=\"getIPHistroyListHtml(task.TaskState.IPAddrHistory)\"></span>\n                            </template>\n                            <el-button color=\"#409eff\" size=\"default\" v-show=\"true\"\n                                @click=\"copyWanIP(task.TaskState.IpAddr)\">\n                                {{ task.TaskState.IpAddr == \"\" ? '尚未获取到公网IP' : task.TaskState.IpAddr }}\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n\n\n\n\n\n                    <el-descriptions-item label=\"TTL\">\n                        <el-button size=\"small\" type=\"\" v-show=\"true\">\n                            {{ GetTTLText(task.TTL) }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n                    <div v-if=\"task.WebhookEnable\">\n\n                        <el-descriptions-item label=\"WebHook\" :span=\"1\">\n\n                            <el-button type=\"success\" size=\"small\">\n                                已启用\n                            </el-button>\n\n                            <el-button :type=\"task.WebhookProxy == '' ? '' : 'success'\" size=\"small\">\n                                {{ task.WebhookProxy == '' ? '未设置代理' : '已设置代理' }}\n                            </el-button>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"WebHook 触发时间\" :span=\"task.TaskState.WebhookCallTime == '' ? 3 : 1\">\n\n                            <el-tooltip :placement=\"taskIndex == 0 ? 'bottom' : 'top'\" effect=\"dark\" :trigger-keys=\"[]\"\n                                content=\"\">\n                                <template #content>\n                                    <span\n                                        v-html=\"getWebhookCallHistroyListHtml(task.TaskState.WebhookCallHistroy)\"></span>\n                                </template>\n                                <el-button color=\"#409eff\" size=\"default\">\n                                    {{ task.TaskState.WebhookCallTime == \"\" ? '从未触发' :\n                                    task.TaskState.WebhookCallTime\n                                    }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n\n                        <el-descriptions-item label=\"WebHook 触发结果\"\n                            v-if=\"task.TaskState.WebhookCallTime == '' ? false : true\"\n                            :span=\"task.TaskState.WebhookCallErrorMsg == '' ? 2 : 1\">\n                            <el-tooltip :placement=\"taskIndex == 0 ? 'bottom' : 'top'\" effect=\"dark\" :trigger-keys=\"[]\"\n                                content=\"\">\n                                <template #content>\n                                    <span\n                                        v-html=\"getWebhookCallHistroyListHtml(task.TaskState.WebhookCallHistroy)\"></span>\n                                </template>\n                                <el-button color=\"#409eff\" size=\"default\">\n                                    {{ task.TaskState.WebhookCallResult == true ? \"成功\" : '失败' }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n\n\n\n\n\n\n\n\n                        <el-descriptions-item label=\"WebHook 触发错误原因\"\n                            v-if=\"task.TaskState.WebhookCallErrorMsg == '' ? false : true\" :span=\"1\">\n                            <el-button color=\"#409eff\" size=\"default\"\n                                @click=\"showErrorMessage(task.TaskState.WebhookCallErrorMsg)\">\n                                点击查看\n                            </el-button>\n                        </el-descriptions-item>\n\n\n\n                    </div>\n\n                    <!-- <el-descriptions-item label=\"WebHook URL\" :span=\"2\" v-if=\"task.WebhookURL == '' ? false : true\">\n                        <el-button color=\"#409eff\" size=\"default\">\n                            {{ task.WebhookURL }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"WebHook RequestBody\" :span=\"2\"\n                        v-if=\"task.WebhookURL == '' ? false : true\">\n                        <el-button color=\"#409eff\" size=\"default\">\n                            {{ task.WebhookRequestBody }}\n                        </el-button>\n                    </el-descriptions-item> -->\n\n\n                    <div v-for=\"domain in task.TaskState.Domains\">\n                        <el-descriptions-item label=\"域名\">\n                            <el-button color=\"#409eff\" size=\"default\"\n                                @click=\"copyDomain(domain.SubDomain, domain.DomainName)\">\n                                {{ domain.SubDomain == '' ? domain.DomainName : domain.SubDomain + \".\" +\n                                domain.DomainName }}\n                            </el-button>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"同步结果\">\n\n                            <el-tooltip :placement=\"taskIndex == 0 ? 'bottom' : 'top'\" effect=\"dark\" :trigger-keys=\"[]\"\n                                content=\"\">\n                                <template #content>\n                                    <span v-html=\"GetSyncUpdateHistroyListHtml(domain.UpdateHistroy)\"></span>\n\n                                </template>\n\n                                <el-button\n                                    :type=\"domain.UpdateStatus == '失败' ? 'danger' : task.Enable ? 'success' : 'info'\"\n                                    size=\"small\">\n                                    {{ task.Enable ? domain.UpdateStatus : '停止同步' }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"最后检测时间\" :span=\"domain.Message == '' ? 2 : 1\">\n                            <el-tooltip :placement=\"taskIndex == 0 ? 'bottom' : 'top'\" effect=\"dark\" :trigger-keys=\"[]\"\n                                content=\"\">\n                                <template #content>\n                                    <span v-html=\"GetSyncUpdateHistroyListHtml(domain.UpdateHistroy)\"></span>\n\n                                </template>\n                                <el-button color=\"#409eff\" size=\"default\">\n                                    {{ domain.LastUpdateStatusTime }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"错误信息\" v-if=\"domain.Message == '' ? false : true\">\n                            <el-button color=\"#409eff\" size=\"default\" @click=\"showErrorMessage(domain.Message)\">\n                                点击查看\n                            </el-button>\n                        </el-descriptions-item>\n\n                    </div>\n\n\n                </el-descriptions>\n            </div>\n\n\n        </el-scrollbar>\n\n        <el-affix position=\"bottom\" :offset=\"30\" class=\"affix-container\">\n            <el-button type=\"primary\" @click=\"showAddOrAlterDDNSTaskDialog('add', null)\">添加DDNS任务 <el-icon>\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n\n\n\n\n        <el-dialog v-model=\"errorMessageVisible\" title=\"详细信息\" draggable :show-close=\"true\" :close-on-click-modal=\"false\"\n            width=\"600px\">\n\n            <el-input v-model=\"errorMessage\" :autosize=\"{ minRows: 3, maxRows: 10 }\" type=\"textarea\">\n            </el-input>\n        </el-dialog>\n\n\n        <!-- 添加/修改DDNS任务 对话框-->\n        <el-dialog v-model=\"addDDNSDialogVisible\" :title=\"DDNSFormOptionType == 'add' ? 'DDNS任务添加' : 'DDNS任务修改'\"\n            draggable :show-close=\"true\" :close-on-click-modal=\"false\" width=\"600px\">\n\n            <el-form :model=\"DDNSForm\">\n                <el-form-item label=\"DDNS任务名称\" label-width=\"auto\">\n                    <el-input v-model=\"DDNSForm.TaskName\" placeholder=\"可留空\" autocomplete=\"off\" />\n                </el-form-item>\n\n\n                <el-form-item label=\"任务开关\" label-width=\"auto\">\n                    <el-switch v-model=\"DDNSForm.Enable\" inline-prompt width=\"50px\" active-text=\"启用\"\n                        inactive-text=\"停用\" />\n                </el-form-item>\n\n\n\n                <div v-show=\"DDNSForm.Enable\">\n\n\n\n                    <div class=\"fromitemDivRadius\">\n                        <p>DNS服务商设置</p>\n\n                        <div class=\"fromitemChildDivRadius\">\n\n                            <el-form-item label=\"DNS服务商\" label-width=\"auto\">\n                                <el-select v-model=\"DDNSForm.DNS.Name\" class=\"m-2\" placeholder=\"请选择\">\n                                    <el-option v-for=\"item in DNSServerList\" :key=\"item.value\" :label=\"item.label\"\n                                        :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n\n                            <!-- <el-form-item label-width=\"auto\">\n                                <el-link type=\"primary\" :href=\"getDNSHelpLink()\" target=\"_blank\">{{ getDNSHelpLinkText()\n                                }}\n                                </el-link>\n\n                                &nbsp; <div v-html=\"getDNSHelpTipsHtml()\"></div>\n                            </el-form-item> -->\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'alidns'\">\n                                <el-form-item label-width=\"auto\">\n                                    <el-link type=\"primary\" style=\"font-size: small;\"\n                                        href=\"https://ram.console.aliyun.com/manage/ak?spm=5176.12818093.nav-right.dak.488716d0mHaMgg\"\n                                        target=\"_blank\">\n                                        创建 AccessKey\n                                    </el-link>\n                                </el-form-item>\n                            </div>\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'baiducloud'\">\n\n                                <el-tooltip class=\"box-item\" effect=\"dark\"\n                                    content=\"需调用 API,而百度云相关API仅对申请用户开放，使用前请先提交工单申请。\">\n\n                                    <el-form-item label-width=\"auto\">\n\n\n\n\n                                        <el-link type=\"primary\" style=\"font-size: small;\"\n                                            href=\"https://console.bce.baidu.com/iam/?_=1651763238057#/iam/accesslist\"\n                                            target=\"_blank\">\n                                            创建 AccessKey\n                                        </el-link>\n                                        &nbsp; &nbsp; &nbsp;\n                                        <el-link type=\"primary\" style=\"font-size: small;\"\n                                            href=\"https://ticket.bce.baidu.com/#/ticket/create~productId=60&questionId=393&channel=2\"\n                                            target=\"_blank\">\n                                            申请工单\n                                        </el-link>\n\n                                    </el-form-item>\n                                </el-tooltip>\n                            </div>\n\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'cloudflare'\">\n                                <el-form-item label-width=\"auto\">\n                                    <el-link type=\"primary\" style=\"font-size: small;\"\n                                        href=\"https://dash.cloudflare.com/profile/api-tokens\" target=\"_blank\">\n                                        创建令牌->编辑区域 DNS (使用模板)\n                                    </el-link>\n                                </el-form-item>\n                            </div>\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'dnspod'\">\n                                <el-form-item label-width=\"auto\">\n                                    <el-link type=\"primary\" style=\"font-size: small;\"\n                                        href=\"https://console.dnspod.cn/account/token\" target=\"_blank\">\n                                        创建密钥\n                                    </el-link>\n                                </el-form-item>\n                            </div>\n\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'huaweicloud'\">\n                                <el-form-item label-width=\"auto\">\n                                    <el-link type=\"primary\" style=\"font-size: small;\"\n                                        href=\"https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey\"\n                                        target=\"_blank\">\n                                        新增访问密钥\n                                    </el-link>\n                                </el-form-item>\n                            </div>\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'porkbun'\">\n                                <el-form-item label-width=\"auto\">\n                                    <el-link type=\"primary\" style=\"font-size: small;\"\n                                        href=\"https://porkbun.com/account/api\" target=\"_blank\">\n                                        创建 Access\n                                    </el-link>\n                                </el-form-item>\n                            </div>\n\n                            <div v-if=\"DDNSForm.DNS.Name == 'callback'\">\n                                <el-form-item label-width=\"auto\">\n                                    <p style=\"font-size:1px\">支持的变量 #{ip}, #{domain}, #{recordType}, #{ttl}</p>\n                                </el-form-item>\n\n                            </div>\n\n                            <el-form-item :label=\"getIDLabel()\" v-show=\"showDNSIDFormItem()\" label-width=\"auto\">\n                                <el-input v-model=\"DDNSForm.DNS.ID\" autocomplete=\"off\" />\n                            </el-form-item>\n\n                            <el-form-item :label=\"getSecretLabel()\" v-show=\"showDNSSecretFormItem()\" label-width=\"auto\">\n                                <el-input v-model=\"DDNSForm.DNS.Secret\" autocomplete=\"off\" />\n                            </el-form-item>\n\n\n                            <el-tooltip placement=\"top\">\n                                <template #content>\n                                    强制同步,当DNS解析域名开关打开时会先通过DNS解析进行IP比对,比对一致依然不会强制同步,只要不手动修改域名IP这个值设置大一些完全没问题,可设范围(60-360000)<br />\n                                    强制同步检查会在每一轮定时批量执行DDNS任务中进行,所以实际强制同步时间不会很精确\n                                </template>\n                                <el-form-item label=\"强制同步(秒)\" label-width=\"auto\" :min=\"60\" :max=\"360000\">\n                                    <el-input-number v-model=\"DDNSForm.DNS.ForceInterval\" autocomplete=\"off\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                        </div>\n\n\n                        <p v-show=\"DDNSForm.DNS.Name == 'callback' ? true : false\">自定义(Callback)服务商设置</p>\n\n                        <!--Callback 相关-->\n                        <div v-show=\"DDNSForm.DNS.Name == 'callback' ? true : false\" class=\"fromitemChildDivRadius\">\n\n\n\n                            <el-form-item label=\"Callback DNS服务商\" label-width=\"auto\">\n                                <el-select v-model=\"DDNSForm.DNS.Callback.Server\" class=\"m-2\" placeholder=\"请选择\">\n                                    <el-option v-for=\"item in DNSCallbackServerList\" :key=\"item.value\"\n                                        :label=\"item.label\" :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n\n                            <div v-show=\"DDNSForm.DNS.Callback.Server == 'other' ? false : true\">\n\n                                <div v-if=\"DDNSForm.DNS.Callback.Server == 'meibu'\" style=\"font-size: small;\">\n                                    <el-tooltip content=\"注意:每步 IPv4和IPv6的接口不相同,免费二级域名不能同时支持IPv4和IPv6\" placement=\"top\">\n                                        <el-form-item label-width=\"auto\">\n                                            <el-link type=\"primary\" style=\"font-size: small;\"\n                                                href=\"http://www.meibu.com/regedit.shtml\" target=\"_blank\">\n                                                每步-免费二级域名注册\n                                            </el-link>\n                                        </el-form-item>\n                                    </el-tooltip>\n                                </div>\n\n\n                                <div v-if=\"DDNSForm.DNS.Callback.Server == 'noip'\" style=\"font-size: small;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <el-link type=\"primary\" style=\"font-size: small;\" href=\"https://www.noip.com\"\n                                            target=\"_blank\">\n                                            No-IP官网\n                                        </el-link>\n                                    </el-form-item>\n                                </div>\n\n                                <div v-if=\"DDNSForm.DNS.Callback.Server == 'dynv6'\" style=\"font-size: small;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <el-link type=\"primary\" style=\"font-size: small;\" href=\"https://dynv6.com/\"\n                                            target=\"_blank\">\n                                            Dynv6官网\n                                        </el-link>\n                                        &nbsp; &nbsp; &nbsp;\n                                        <el-link type=\"primary\" style=\"font-size: small;\" href=\"https://dynv6.com/keys\"\n                                            target=\"_blank\">\n                                            Token创建\n                                        </el-link>\n                                    </el-form-item>\n                                </div>\n\n                                <div v-if=\"DDNSForm.DNS.Callback.Server == 'dynu'\" style=\"font-size: small;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <el-link type=\"primary\" style=\"font-size: small;\" href=\"https://www.dynu.com/\"\n                                            target=\"_blank\">\n                                            Dynu官网\n                                        </el-link>\n                                        &nbsp; &nbsp; &nbsp;\n                                        <el-link type=\"primary\" style=\"font-size: small;\"\n                                            href=\"https://www.dynu.com/zh-CN/ControlPanel/ManageCredentials\"\n                                            target=\"_blank\">\n                                            IP更新密码设置\n                                        </el-link>\n                                    </el-form-item>\n                                </div>\n\n                                <el-form-item label-width=\"auto\">\n                                    <el-button color=\"#409eff\" size=\"default\" @click=\"autocompleteCallbackForm\">\n                                        根据DNS服务商自动填充参数模版\n                                    </el-button>\n                                </el-form-item>\n                            </div>\n\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" content=\"\">\n                                <template #content>接口地址<br />\n                                    支持的变量<br />\n                                    #{ip} : 外网IP<br />\n                                    #{domain} : 域名<br />\n                                    #{recordType} : A 或者 AAAA <br />\n                                    #{ttl} : TTL值</template>\n                                <el-form-item label=\"接口地址\" label-width=\"auto\">\n                                    <el-input v-model=\"DDNSForm.DNS.Callback.URL\" autocomplete=\"off\" />\n                                </el-form-item>\n\n                            </el-tooltip>\n\n                            <el-form-item label=\"请求方法\" label-width=\"auto\">\n                                <el-select v-model=\"DDNSForm.DNS.Callback.Method\" class=\"m-2\" placeholder=\"请选择\">\n                                    <el-option v-for=\"item in CallbackMethodList\" :key=\"item.value\" :label=\"item.label\"\n                                        :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n\n\n\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    一行一条Header(key:value)<br />\n                                    支持的变量<br />\n                                    #{ip} : 外网IP<br />\n                                    #{domain} : 域名<br />\n                                    #{recordType} : A 或者 AAAA <br />\n                                    #{ttl} : TTL值<br />\n                                    如果需要使用BasicAuth,请使用下面两行Header设置BasicAuth的账号和密码<br />\n                                    BasicAuthUserName:你的账号<br />\n                                    BasicAuthPassword:你的密码</template>\n                                <el-form-item label-width=\"auto\" label=\"请求Headers\">\n                                    <el-input v-model=\"DDNSFormCallbackHeaderArea\"\n                                        :autosize=\"{ minRows: 3, maxRows: 5 }\" placeholder=\"\" type=\"textarea\">\n                                    </el-input>\n                                </el-form-item>\n                            </el-tooltip>\n\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>请求主体 requestBody<br />\n                                    支持的变量<br />\n                                    #{ip} : 外网IP<br />\n                                    #{domain} : 域名<br />\n                                    #{recordType} : A 或者 AAAA <br />\n                                    #{ttl} : TTL值</template>\n                                <el-form-item label-width=\"auto\" label=\"请求主体\"\n                                    v-show=\"DDNSForm.DNS.Callback.Method == 'get' ? false : true\">\n                                    <el-input v-model=\"DDNSForm.DNS.Callback.RequestBody\"\n                                        :autosize=\"{ minRows: 3, maxRows: 5 }\" placeholder=\"\" type=\"textarea\">\n                                    </el-input>\n                                </el-form-item>\n                            </el-tooltip>\n\n\n                            <el-tooltip content=\"禁用接口调用成功字符串检测,开启后仅以http StatusCode==200判断接口是否成功调用.\" placement=\"top\">\n\n                                <el-form-item label=\"禁用接口调用成功字符串检测\" label-width=\"auto\">\n                                    <el-switch v-model=\"DDNSForm.DNS.Callback.DisableCallbackSuccessContentCheck\"\n                                        inline-prompt width=\"50px\" active-text=\"是\" inactive-text=\"否\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <div v-show=\"!DDNSForm.DNS.Callback.DisableCallbackSuccessContentCheck\">\n                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                    <template #content>用于判断记录接口是否成功调用,多种表示成功的不同字符串请分多行写<br />\n                                        支持的变量<br />\n                                        #{ip} : 外网IP<br />\n                                        #{domain} : 域名<br />\n                                        #{recordType} : A 或者 AAAA <br />\n                                        #{ttl} : TTL值</template>\n                                    <el-form-item label=\"接口调用成功包含的字符串\" label-width=\"auto\">\n                                        <el-input v-model=\"DDNSFormCallbackSuccessContentArea\"\n                                            :autosize=\"{ minRows: 3, maxRows: 5 }\" type=\"textarea\" autocomplete=\"off\"\n                                            placeholder=\"\" />\n                                    </el-form-item>\n                                </el-tooltip>\n                            </div>\n\n                        </div>\n\n\n                        <div class=\"fromitemChildDivRadius\">\n\n\n                            <el-tooltip content=\"调用DNS服务商接口更新或增加域名之前先通过DNS查询域名对应IP,降低对DNS服务商接口的访问频率,建议启用\"\n                                placement=\"top\">\n\n                                <el-form-item label=\"DNS解析检测域名\" label-width=\"auto\">\n                                    <el-switch v-model=\"DDNSForm.DNS.ResolverDoaminCheck\" inline-prompt width=\"50px\"\n                                        active-text=\"开启\" inactive-text=\"禁用\" @change=\"ResolverDoaminCheckChange\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <div v-show=\"DDNSForm.DNS.ResolverDoaminCheck\">\n\n                                <el-tooltip class=\"box-item\" :trigger-keys=\"[]\" effect=\"dark\"\n                                    content=\"一行一个DNS服务器地址(带端口)\">\n                                    <el-form-item label-width=\"auto\" label=\"DNS服务器列表\">\n                                        <el-input v-model=\"DDNSFormDNSServerListArea\"\n                                            :autosize=\"{ minRows: 3, maxRows: 5 }\" placeholder=\"一行一个DNS服务器地址(带端口)\"\n                                            type=\"textarea\">\n                                        </el-input>\n                                    </el-form-item>\n                                </el-tooltip>\n\n\n                            </div>\n\n                        </div>\n\n                        <p>DNS接口调用额外设置</p>\n                        <div class=\"fromitemChildDivRadius\">\n                            <el-form-item label=\"DNS接口调用使用的网络类型\" label-width=\"auto\">\n                                <el-select v-model=\"DDNSForm.DNS.CallAPINetwork\" class=\"m-2\" placeholder=\"请选择\">\n                                    <el-option v-for=\"item in TCPNetworkTypeList\" :key=\"item.value\" :label=\"item.label\"\n                                        :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n\n                        </div>\n\n\n                        <p>DNS接口调用代理设置</p>\n                        <div class=\"fromitemChildDivRadius\">\n\n                            <el-form-item label=\"DNS接口调用 代理设置\" label-width=\"auto\">\n                                <el-select v-model=\"DDNSForm.DNS.HttpClientProxyType\" class=\"m-2\" placeholder=\"请选择\">\n                                    <el-option v-for=\"item in HttpProxyTypeList\" :key=\"item.value\" :label=\"item.label\"\n                                        :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n\n                            <div v-show=\"DDNSForm.DNS.HttpClientProxyType == '' ? false : true\">\n\n                                <el-form-item label=\"代理服务器IP\" label-width=\"auto\">\n                                    <el-input v-model=\"DDNSForm.DNS.HttpClientProxyAddr\" autocomplete=\"off\" />\n                                </el-form-item>\n\n                                <el-form-item label=\"代理服务器认证用户\" label-width=\"auto\">\n                                    <el-input v-model=\"DDNSForm.DNS.HttpClientProxyUser\" autocomplete=\"off\"\n                                        placeholder=\"没有可留空\" />\n                                </el-form-item>\n\n                                <el-form-item label=\"代理服务器认证密码\" label-width=\"auto\">\n                                    <el-input v-model=\"DDNSForm.DNS.HttpClientProxyPassword\" autocomplete=\"off\"\n                                        placeholder=\"没有可留空\" />\n                                </el-form-item>\n\n                            </div>\n\n                        </div>\n\n\n\n                    </div>\n\n\n\n\n\n\n\n\n                    <div class=\"fromitemDivRadius\">\n\n                        <el-form-item label=\"公网IP类型\" label-width=\"auto\">\n                            <el-radio-group v-model=\"DDNSForm.TaskType\" class=\"ml-4\" @change=\"ddnsTaskTypeChange\">\n                                <el-radio label=\"IPv4\">IPv4</el-radio>\n                                <el-radio label=\"IPv6\">IPv6</el-radio>\n                            </el-radio-group>\n                        </el-form-item>\n\n                        <el-form-item label=\"获取公网IP方式\" label-width=\"auto\">\n                            <el-radio-group v-model=\"DDNSForm.GetType\" class=\"ml-4\">\n                                <el-radio label=\"url\">通过接口获取</el-radio>\n                                <el-radio label=\"netInterface\">通过网卡获取</el-radio>\n                            </el-radio-group>\n                        </el-form-item>\n\n\n                        <div v-if=\"DDNSForm.GetType == 'url' ? true : false\">\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"一行一个接口\">\n                                <el-form-item label-width=\"auto\" label=\"接口列表\">\n                                    <el-input v-model=\"DDNSFormURLArea\" :autosize=\"{ minRows: 5, maxRows: 20 }\"\n                                        placeholder=\"一行一个接口\" type=\"textarea\">\n                                    </el-input>\n                                </el-form-item>\n                            </el-tooltip>\n                        </div>\n\n\n                        <div v-if=\"DDNSForm.GetType == 'netInterface' ? true : false\">\n                            <el-form-item label-width=\"auto\" label=\"网卡列表\">\n                                <el-select v-model=\"DDNSForm.NetInterface\" class=\"m-2\">\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" v-for=\"item in currentNetInterface\"\n                                        :key=\"item.NetInterfaceName\" :content=\"JSON.stringify(item.AddressList)\">\n\n                                        <el-option :label=\"item.NetInterfaceName\" :value=\"item.NetInterfaceName\" />\n                                    </el-tooltip>\n\n                                    <!-- <el-option  v-for=\"item in currentNetInterface\" :key=\"item.NetInterfaceName\" :label=\"item.NetInterfaceName\"\n                                        :value=\"item.NetInterfaceName\" /> -->\n\n                                </el-select>\n                            </el-form-item>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\"\n                                content=\"留空表示匹配选中网卡第1个IP, 纯数字n表示匹配第n个IP, 24*表示匹配以24开头的第一个IP, *24表示匹配以24结尾的第一个IP, 还可以填写正则表达式\">\n                                <el-form-item label-width=\"auto\" label=\"IP选择匹配规则\">\n                                    <el-input v-model=\"DDNSForm.IPReg\" :autosize=\"{ minRows: 5, maxRows: 20 }\"\n                                        placeholder=\"留空表示选择当前网卡第一个IP\">\n                                    </el-input>\n\n                                    <el-button color=\"#409eff\" size=\"small\" @click=\"IPRegTest\">\n                                        IP选择匹配测试\n                                    </el-button>\n                                </el-form-item>\n                            </el-tooltip>\n                        </div>\n\n\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"一行一条域名\">\n                            <el-form-item label-width=\"auto\" label=\"域名列表\">\n                                <el-input v-model=\"DDNSFormDomiansArea\" :autosize=\"{ minRows: 3, maxRows: 9 }\"\n                                    placeholder=\"一行一条域名\" type=\"textarea\">\n                                </el-input>\n                            </el-form-item>\n                        </el-tooltip>\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" content=\"如账号支持更小的 TTL , 可修改。 IP 有变化时才会更新 TTL\">\n                            <el-form-item label-width=\"auto\" label=\"TTL\">\n                                <el-select v-model=\"DDNSForm.TTL\" class=\"m-2\">\n                                    <el-option v-for=\"item in TTLList\" :key=\"item.value\" :label=\"item.label\"\n                                        :value=\"item.value\" />\n                                </el-select>\n                            </el-form-item>\n                        </el-tooltip>\n\n                    </div>\n\n\n\n\n\n\n\n\n                    <div class=\"fromitemDivRadius\">\n\n\n\n                        <el-form-item label=\"Webhook\" label-width=\"auto\">\n                            <el-tooltip class=\"box-item\" effect=\"dark\"\n                                content=\"Webhook 仅当IP改变,域名更新/添加成功或失败时才会触发Webhook\">\n                                <el-switch v-model=\"DDNSForm.WebhookEnable\" inline-prompt width=\"50px\" active-text=\"开启\"\n                                    inactive-text=\"禁用\" />\n                            </el-tooltip>\n                            <el-tooltip class=\"box-item\" effect=\"dark\"\n                                content=\"如果选择了DNS代理设置先请保存任务再手动触发测试,否则在测试中可能代理设置不生效\">\n\n                                <el-button color=\"#409eff\" v-show=\"DDNSForm.WebhookEnable\" size=\"small\"\n                                    @click=\"WebHookTest\" style=\"margin-left:30px;\">\n                                    Webhook手动触发测试\n                                </el-button>\n                            </el-tooltip>\n                        </el-form-item>\n\n\n                        <div v-show=\"DDNSForm.WebhookEnable\">\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" content=\"获取IP失败时同样触发Webhook,默认不开启\">\n                                <el-form-item label=\"获取IP失败时触发Webhook\" label-width=\"auto\">\n                                    <el-switch v-model=\"DDNSForm.WebhookCallOnGetIPfail\" inline-prompt width=\"50px\"\n                                        active-text=\"启用\" inactive-text=\"禁用\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <!-- <el-form-item label-width=\"auto\">\n                                <el-link type=\"primary\" href=\"https://github.com/jeessy2/ddns-go#webhook\"\n                                    target=\"_blank\">\n                                    点击参考官方 Webhook 说明\n                                </el-link>\n\n                                &nbsp; <div v-html=\"getDNSHelpTipsHtml()\"></div>\n                            </el-form-item> -->\n\n                            <div class=\"fromitemChildDivRadius\">\n\n                                <el-form-item label=\"常见Webhook(消息推送)服务商\" label-width=\"auto\">\n                                    <el-select v-model=\"webhookSelect\" class=\"m-2\" placeholder=\"请选择\"\n                                        @change=\"WebhookServerSelectChange\">\n                                        <el-option v-for=\"item in WebhookServerList\" :key=\"item.value\"\n                                            :label=\"item.label\" :value=\"item.value\" />\n                                    </el-select>说明\n\n\n                                </el-form-item>\n\n                                <div v-show=\"webhookSelect == 'custom'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">\n                                            支持自定义webhook\n                                        </p>\n\n                                    </el-form-item>\n                                </div>\n\n                                <div v-show=\"webhookSelect == 'serverjiang'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">\n                                            https://sctapi.ftqq.com/[SendKey].send?title=主人IP变了#{ipAddr},你的公网IP变了#{ipAddr},域名更新成功列表：#{successDomains},域名更新失败列表：#{failedDomains}\n                                        </p>\n\n                                    </el-form-item>\n                                </div>\n\n                                <div v-show=\"webhookSelect == 'bark'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">\n                                            https://api.day.app/[YOUR_KEY]/主人IP变了#{ipAddr},你的公网IP变了#{ipAddr},域名更新成功列表：#{successDomains},域名更新失败列表：#{failedDomains}\n                                        </p>\n\n                                    </el-form-item>\n                                </div>\n\n                                <div v-show=\"webhookSelect == 'dingding'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">钉钉电脑端 -> 群设置 -> 智能群助手 -> 添加机器人 -> 自定义</p>\n                                        <p style=\"font-size:1px\">只勾选自定义关键词,输入的关键字必须包含在RequestBody的content中,如:你的公网IP变了\n                                        </p>\n                                        <p style=\"font-size:1px\">接口调用成功包含的字符串填入 {\"errcode\":0,\"errmsg\":\"ok\"}</p>\n                                        <p style=\"font-size:1px\">方法请求选择POST,RequestBody 示例如下</p>\n                                    </el-form-item>\n\n                                    <el-form-item label-width=\"auto\">\n                                        <el-input v-model=\"WebhookServerListArea\" type=\"textarea\" rows=\"5\">\n                                        </el-input>\n                                    </el-form-item>\n\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">调用成功包含的字符串填入 {\"errcode\":0,\"errmsg\":\"ok\"}</p>\n                                    </el-form-item>\n                                </div>\n\n                                <div v-show=\"webhookSelect == 'feishu'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">飞书电脑端 -> 群设置 -> 添加机器人 -> 自定义机器人</p>\n                                        <p style=\"font-size:1px\">\n                                            安全设置只勾选自定义关键词,输入的关键字必须包含在RequestBody的content中,如：你的公网IP变了</p>\n                                        <p style=\"font-size:1px\">接口调用成功包含的字符串填入\n                                            {\"StatusCode\":0,\"StatusMessage\":\"success\"}</p>\n                                        <p style=\"font-size:1px\">方法请求选择POST,RequestBody 示例如下</p>\n                                    </el-form-item>\n\n                                    <el-form-item label-width=\"auto\">\n                                        <el-input v-model=\"WebhookServerListArea\" type=\"textarea\" rows=\"5\">\n                                        </el-input>\n                                    </el-form-item>\n\n\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">调用成功包含的字符串填入 {\"StatusCode\":0,\"StatusMessage\":\"success\"}\n                                        </p>\n                                    </el-form-item>\n                                </div>\n\n                                <div v-show=\"webhookSelect == 'weixinpro'\" style=\"color:blue;\">\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">下载企业微信→左上角三横杠→全新创建企业→个人组件团队(创建个人的企业群聊)</p>\n                                        <p style=\"font-size:1px\">进入群聊添加 [群机器人] 复制机器人Webhook地址</p>\n                                        <p style=\"font-size:1px\">方法请求选择POST,RequestBody 示例如下</p>\n                                    </el-form-item>\n\n                                    <el-form-item label-width=\"auto\">\n                                        <el-input v-model=\"WebhookServerListArea\" type=\"textarea\" rows=\"5\">\n                                        </el-input>\n                                    </el-form-item>\n\n\n                                    <el-form-item label-width=\"auto\">\n                                        <p style=\"font-size:1px\">调用成功包含的字符串填入 {\"errcode\":0,\"errmsg\":\"ok\"}</p>\n                                    </el-form-item>\n\n\n                                </div>\n\n                            </div>\n\n                            <div class=\"fromitemChildDivRadius\">\n\n                                <el-tooltip class=\"box-item\" effect=\"dark\" content=\"\">\n                                    <template #content>支持的变量 <br />\n                                        #{ipAddr} : 当前公网IP<br />\n                                        #{time} : 触发Webhook的时间 <br />\n                                        #{successDomains} : 更新/添加成功的域名列表,域名之间用,号分隔<br />\n                                        #{successDomainsLine} : 更新/添加成功的域名列表,域名之间用'\\n'分隔<br />\n                                        #{failedDomains} : 更新/添加失败的域名列表,域名之间用,号分隔<br />\n                                        #{failedDomainsLine} : 更新/添加失败的域名列表,域名之间用'\\n'分隔</template>\n                                    <el-form-item label=\"接口地址\" label-width=\"auto\">\n                                        <el-input v-model=\"DDNSForm.WebhookURL\" autocomplete=\"off\" />\n                                    </el-form-item>\n\n                                </el-tooltip>\n\n\n                                <el-form-item label=\"请求方法\" label-width=\"auto\">\n                                    <el-select v-model=\"DDNSForm.WebhookMethod\" class=\"m-2\" placeholder=\"请选择\">\n                                        <el-option v-for=\"item in CallbackMethodList\" :key=\"item.value\"\n                                            :label=\"item.label\" :value=\"item.value\" />\n                                    </el-select>\n                                </el-form-item>\n\n\n\n                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                    <template #content>\n                                        一行一条Header(key:value) <br />\n                                        支持的变量 :<br />\n                                        #{time} : 触发Webhook的时间 <br />\n                                        #{ipAddr} : 当前公网IP <br />\n                                        #{successDomains} : 更新/添加成功的域名列表,域名之间用,号分隔<br />\n                                        #{successDomainsLine} : 更新/添加成功的域名列表,域名之间用'\\n'分隔<br />\n                                        #{failedDomains} : 更新/添加失败的域名列表,域名之间用,号分隔<br />\n                                        #{failedDomainsLine} : 更新/添加失败的域名列表,域名之间用'\\n'分隔<br />\n                                        如果需要使用BasicAuth,请使用下面两行Header设置BasicAuth的账号和密码<br />\n                                        BasicAuthUserName:你的账号<br />\n                                        BasicAuthPassword:你的密码</template>\n                                    <el-form-item label-width=\"auto\" label=\"Headers\">\n                                        <el-input v-model=\"DDNSFormWebhookHeadersArea\"\n                                            :autosize=\"{ minRows: 3, maxRows: 5 }\" placeholder=\"\" type=\"textarea\">\n                                        </el-input>\n                                    </el-form-item>\n                                </el-tooltip>\n\n\n\n\n                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                    <template #content>支持的变量<br />\n                                        #{time} : 触发Webhook的时间 <br />\n                                        #{ipAddr} : 当前公网IP<br />\n                                        #{successDomains} : 更新/添加成功的域名列表,域名之间用,号分隔<br />\n                                        #{successDomainsLine} : 更新/添加成功的域名列表,域名之间用'\\n'分隔<br />\n                                        #{failedDomains} : 更新/添加失败的域名列表,域名之间用,号分隔<br />\n                                        #{failedDomainsLine} : 更新/添加失败的域名列表,域名之间用'\\n'分隔</template>\n                                    <el-form-item label=\"RequestBody\" label-width=\"auto\"\n                                        v-show=\"DDNSForm.WebhookMethod == 'get' ? false : true\">\n                                        <el-input v-model=\"DDNSForm.WebhookRequestBody\" type=\"textarea\" rows=\"5\"\n                                            placeholder=\"\">\n                                        </el-input>\n                                    </el-form-item>\n                                </el-tooltip>\n\n\n\n                                <el-tooltip content=\"禁用Webhook接口调用成功字符串检测,开启后仅以http StatusCode==200判断接口是否成功调用.\"\n                                    placement=\"top\">\n\n                                    <el-form-item label=\"禁用Webhook接口调用成功字符串检测\" label-width=\"auto\">\n                                        <el-switch v-model=\"DDNSForm.WebhookDisableCallbackSuccessContentCheck\"\n                                            inline-prompt width=\"50px\" active-text=\"是\" inactive-text=\"否\" />\n                                    </el-form-item>\n                                </el-tooltip>\n\n\n                                <div v-show=\"!DDNSForm.WebhookDisableCallbackSuccessContentCheck\">\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>用于判断记录Webhook 接口是否成功调用<br />\n                                            多种表示成功的不同字符串请分多行写<br />\n                                            支持的变量 <br />\n                                            #{ipAddr} : 当前公网IP<br />\n                                            #{successDomains} : 更新/添加成功的域名列表,域名之间用,号分隔<br />\n                                            #{successDomainsLine} : 更新/添加成功的域名列表,域名之间用'\\n'分隔<br />\n                                            #{failedDomains} : 更新/添加失败的域名列表,域名之间用,号分隔<br />\n                                            #{failedDomainsLine} : 更新/添加失败的域名列表,域名之间用'\\n'分隔</template>\n                                        <el-form-item label=\"接口调用成功包含的字符串\" label-width=\"auto\">\n                                            <el-input v-model=\"DDNSFormWebhookSuccessContentArea\"\n                                                :autosize=\"{ minRows: 3, maxRows: 5 }\" type=\"textarea\"\n                                                autocomplete=\"off\" placeholder=\"\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n                                </div>\n\n\n                            </div>\n\n\n                            <div class=\"fromitemChildDivRadius\">\n\n                                <el-form-item label=\"代理设置\" label-width=\"auto\">\n                                    <el-select v-model=\"DDNSForm.WebhookProxy\" class=\"m-2\" placeholder=\"请选择\">\n                                        <el-option v-for=\"item in WebhookProxyTypeList\" :key=\"item.value\"\n                                            :label=\"item.label\" :value=\"item.value\" />\n                                    </el-select>\n                                </el-form-item>\n\n                                <div\n                                    v-show=\"DDNSForm.WebhookProxy == '' || DDNSForm.WebhookProxy == 'dns' ? false : true\">\n\n                                    <el-form-item label=\"代理服务器IP\" label-width=\"auto\">\n                                        <el-input v-model=\"DDNSForm.WebhookProxyAddr\" autocomplete=\"off\" />\n                                    </el-form-item>\n\n                                    <el-form-item label=\"代理服务器认证用户\" label-width=\"auto\">\n                                        <el-input v-model=\"DDNSForm.WebhookProxyUser\" autocomplete=\"off\"\n                                            placeholder=\"没有可留空\" />\n                                    </el-form-item>\n\n                                    <el-form-item label=\"代理服务器认证密码\" label-width=\"auto\">\n                                        <el-input v-model=\"DDNSForm.WebhookProxyPassword\" autocomplete=\"off\"\n                                            placeholder=\"没有可留空\" />\n                                    </el-form-item>\n\n                                </div>\n\n                            </div>\n\n                        </div>\n\n\n                    </div>\n\n                    <div class=\"fromitemDivRadius\" style=\"padding-top:10px;\">\n                        <el-tooltip content=\"Http Client 超时时间,没必要不要改,可设置范围 (3-60)\" placement=\"top\">\n                            <el-form-item label=\"HttpClient timeout(秒)\" label-width=\"auto\" :min=\"3\" :max=\"60\">\n                                <el-input-number v-model=\"DDNSForm.HttpClientTimeout\" autocomplete=\"off\" />\n                            </el-form-item>\n                        </el-tooltip>\n                    </div>\n                </div>\n\n            </el-form>\n\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"addDDNSDialogVisible = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"exeAddOrAlterDDNSOption\">{{ DDNSFormOptionType == \"add\" ? '添加' :\n                    '修改'\n                    }}\n                    </el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { ElMessageBox } from 'element-plus'\nimport { MessageShow, Notification, ShowMessageBox } from '../utils/ui'\n\nimport { StringToArrayList, CopyTotoClipboard } from '../utils/utils'\nimport { apiWebhookTest, apiAddDDNSTask, apiAlterDDNSTask, apiDeleteDDNSTask, apiGetDDNSTaskList, apiDDNSTaskEnable, apiGetNetinterfaces, apiGetIPRegTest } from '../apis/utils'\nimport { networkInterfaces } from 'os'\n\nconst errorMessageVisible = ref(false)\nconst errorMessage = ref(\"\")\n\nconst showErrorMessage = (message: string) => {\n    errorMessageVisible.value = true\n    errorMessage.value = message\n}\n\nvar netInterfaceList = ref({\n    IPv6NewInterfaces: [{ NetInterfaceName: \"\", AddressList: [\"\"] }],\n    IPv4NewInterfaces: [{ NetInterfaceName: \"\", AddressList: [\"\"] }]\n})\nvar currentNetInterface = ref([{ NetInterfaceName: \"\", AddressList: [\"\"] }])\n\nvar taskList = ref([{\n    TaskName: \"\",\n    TaskKey: \"\",\n    TaskType: \"IPv6\",\n    Enable: true,\n    GetType: \"url\",\n    URL: [\"\"],\n    NetInterface: \"\",\n    IPReg: \"\",\n    Domains: [\"\"],\n    HttpClientTimeout: 20,\n    DNS: {\n        Name: \"alidns\",\n        ID: \"\",\n        Secret: \"\",\n        ForceInterval: 600,\n        ResolverDoaminCheck: false,\n        DNSServerList: [''],\n        HttpClientProxyType: \"\",\n        HttpClientProxyAddr: \"\",\n        HttpClientProxyUser: \"\",\n        HttpClientProxyPassword: \"\",\n        Callback: {\n            URL: \"\",\n            Method: \"\",\n            Headers: [\"\"],\n            RequestBody: \"\",\n            Server: \"\",\n            DisableCallbackSuccessContentCheck: false,\n            CallbackSuccessContent: [\"\"]\n        },\n\n    },\n    WebhookEnable: false,\n    WebhookURL: \"\",\n    WebhookMethod: \"\",\n    WebhookHeaders: [\"\"],\n    WebhookRequestBody: \"\",\n    WebhookDisableCallbackSuccessContentCheck: false,\n    WebhookSuccessContent: [\"\"],\n    WebhookProxy: \"\",\n    WebhookProxyAddr: \"\",\n    WebhookProxyUser: \"\",\n    WebhookProxyPassword: \"\",\n\n    TTL: \"\",\n    TaskState: {\n        WebhookCallTime: \"\",\n        WebhookCallResult: false,\n        WebhookCallErrorMsg: \"\",\n        IPAddrHistory: [{ IPaddr: \"\", RecordTime: \"\" }],\n        WebhookCallHistroy: [{ CallTime: \"\", CallResult: \"\" }],\n        IpAddr: \"\",\n        Domains: [{\n            DomainName: \"\",\n            SubDomain: \"\",\n            UpdateStatus: \"\",\n            LastUpdateStatusTime: \"\",\n            Message: \"\",\n            UpdateHistroy: [{ UpdateStatus: \"\", UpdateTime: \"\" }]\n        }]\n    },\n}]);\ntaskList.value.splice(0, 1)\n\n\nconst rhtml = ref(\"\")\nconst webhookSelect = ref(\"\")\nconst WebhookServerListArea = ref(\"\")\n\nrhtml.value = ` <el-link type=\"info\">info</el-link>`\n\n\nconst HttpProxyTypeList = [\n    { value: \"\", label: \"禁用\" },\n    { value: \"http\", label: \"HTTP\" },\n    { value: \"https\", label: \"HTTPS\" },\n    { value: \"socks5\", label: \"SOCKS5\" },\n]\n\nconst WebhookProxyTypeList = [\n    { value: \"\", label: \"禁用\" },\n    { value: \"dns\", label: \"使用DNS服务商同样设置\" },\n    { value: \"http\", label: \"HTTP\" },\n    { value: \"https\", label: \"HTTPS\" },\n    { value: \"socks5\", label: \"SOCKS5\" },\n]\n\nconst TTLList = [\n    { value: \"\", label: \"自动\" },\n    { value: \"1\", label: \"1秒\" },\n    { value: \"5\", label: \"5秒\" },\n    { value: \"10\", label: \"10秒\" },\n    { value: \"60\", label: \"1分钟\" },\n    { value: \"120\", label: \"2分钟\" },\n    { value: \"600\", label: \"10分钟\" },\n    { value: \"1800\", label: \"30分钟\" },\n    { value: \"3600\", label: \"1小时\" },\n]\n\nconst GetTTLText = (ttl: string) => {\n    for (let i in TTLList) {\n        if (TTLList[i].value == ttl) {\n            return TTLList[i].label\n        }\n    }\n    return ttl + \"秒\"\n}\n\nconst DNSCallbackServerList = [\n    {\n        value: 'meibu',\n        label: '每步',\n    },\n    {\n        value: 'noip',\n        label: 'No-IP',\n    },\n    {\n        value: 'dynv6',\n        label: 'Dynv6',\n    },\n    {\n        value: 'dynu',\n        label: 'Dynu',\n    },\n    {\n        value: 'other',\n        label: '其它',\n    },\n]\n\nconst TCPNetworkTypeList = [\n    {\n        value: '',\n        label: 'tcp',\n    },\n    {\n        value: 'tcp4',\n        label: 'tcp4',\n    },\n    {\n        value: 'tcp6',\n        label: 'tcp6',\n    },\n]\n\nconst WebHookTest = () => {\n    console.log(\"WebHookTest\")\n\n\n    // WebhookHeaders        []string `json:\"WebhookHeaders\"`\n    // WebhookSuccessContent []string `json:\"WebhookSuccessContent\"` //接口调用成功包含的内容\n\n\n    let requestData = {\n        WebhookURL: DDNSForm.value.WebhookURL,\n        WebhookMethod: DDNSForm.value.WebhookMethod,\n        WebhookRequestBody: DDNSForm.value.WebhookRequestBody,\n        WebhookProxy: DDNSForm.value.WebhookProxy,\n        WebhookProxyAddr: DDNSForm.value.WebhookProxyAddr,\n        WebhookProxyUser: DDNSForm.value.WebhookProxyUser,\n        WebhookProxyPassword: DDNSForm.value.WebhookProxyPassword,\n        WebhookHeaders: StringToArrayList(DDNSFormWebhookHeadersArea.value),\n        WebhookSuccessContent: StringToArrayList(DDNSFormWebhookSuccessContentArea.value)\n    }\n\n\n    apiWebhookTest(alterTaskKey.value, requestData).then((res) => {\n        if (res.ret == 0) {\n            console.log(\"apiWebhookTest: \" + JSON.stringify(res))\n            let msg = \"Webhook接口调用结果:\\n\" + res.msg\n            msg += \"\\n\\n\\n\"\n            msg += \"Web接口反馈的完整内容:\\n\" + res.Response\n\n            showErrorMessage(msg)\n            return\n        }\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"webhook接口调用出错,error:\" + error)\n        MessageShow(\"error\", \"webhook接口调用出错\")\n    })\n}\n\nconst getDNSCallbackServerLaber = (value: string) => {\n    for (let i in DNSCallbackServerList) {\n        if (DNSCallbackServerList[i].value == value) {\n            return DNSCallbackServerList[i].label\n        }\n    }\n    return \"未支持的DNSCallbackServerLaber\"\n}\n\nconst defaultIPv6DNSServerList = [\n    \"[2001:4860:4860::8888]:53\", //谷歌\n    \"[2001:4860:4860::8844]:53\", //谷歌\n    \"[2606:4700:4700::64]:53\",   //cloudflare\n    \"[2606:4700:4700::6400]:53\", //cloudflare\n    \"[240C::6666]:53\",           //下一代互联网北京研究中心\n    \"[240C::6644]:53\",           //下一代互联网北京研究中心\n    \"[2402:4e00::]:53\",          //dnspod\n    //\"[2400:3200::1]:53\",         //阿里\n    //\t\t\"[2400:3200:baba::1]:53\",    //阿里\n    \"[240e:4c:4008::1]:53\",  //中国电信\n    \"[240e:4c:4808::1]:53\",  //中国电信\n    \"[2408:8899::8]:53\",     //中国联通\n    \"[2408:8888::8]:53\",     //中国联通\n    \"[2409:8088::a]:53\",     //中国移动\n    \"[2409:8088::b]:53\",     //中国移动\n    \"[2001:dc7:1000::1]:53\", //CNNIC\n    \"[2400:da00::6666]:53\",  //百度\n]\n\nconst defaultIPv4DNSServerList = [\n    \"1.1.1.1:53\",\n    \"1.2.4.8:53\",\n    \"8.8.8.8:53\",\n    \"9.9.9.9:53\",\n    \"8.8.4.4:53\",\n    \"114.114.114.114:53\",\n    \"223.5.5.5:53\",\n    \"223.6.6.6:53\",\n    \"101.226.4.6:53\",\n    \"218.30.118.6:53\",\n    \"119.28.28.28:53\",\n]\n\nconst WebhookServerList = [\n    {\n        value: 'serverjiang',\n        label: 'Server酱',\n    },\n    {\n        value: 'bark',\n        label: 'Bark',\n    },\n    {\n        value: 'dingding',\n        label: '钉钉',\n    },\n    {\n        value: 'feishu',\n        label: '飞书',\n    },\n    {\n        value: 'weixinpro',\n        label: '企业微信',\n    },\n    {\n        value: 'custom',\n        label: '自定义',\n    },\n]\n\n\nconst DNSServerList = [\n    {\n        value: 'alidns',\n        label: 'Alidns(阿里云)',\n    },\n    {\n        value: 'baiducloud',\n        label: '百度云',\n    },\n    {\n        value: 'cloudflare',\n        label: 'Cloudflare',\n    },\n    {\n        value: 'dnspod',\n        label: 'Dnspod(腾讯云)',\n    },\n\n    {\n        value: 'huaweicloud',\n        label: '华为云',\n    },\n    {\n        value: 'porkbun',\n        label: 'Porkbun',\n    },\n    {\n        value: 'callback',\n        label: '自定义(Callback)',\n    },\n]\n\nconst CallbackMethodList = [\n    {\n        value: 'get',\n        label: 'GET',\n    },\n    {\n        value: 'post',\n        label: 'POST',\n    },\n    {\n        value: 'put',\n        label: 'PUT',\n    }\n]\n\n\nconst getIPHistroyListHtml = (ipHistroy) => {\n    let res = \"\"\n\n    for (let i in ipHistroy) {\n        let ipText = ipHistroy[i].IPaddr;\n        if (ipText == \"\") {\n            ipText = \"获取IP失败\"\n        }\n\n        res += ipHistroy[i].RecordTime + \"&nbsp; &nbsp; &nbsp;\" + ipText + '<br />'\n    }\n\n    return res\n}\n\nconst GetSyncUpdateHistroyListHtml = (updateHistroy) => {\n    let res = \"\"\n\n    for (let i in updateHistroy) {\n        let state = updateHistroy[i].UpdateStatus;\n\n        res += updateHistroy[i].UpdateTime + \"&nbsp; &nbsp; &nbsp;\" + state + '<br />'\n    }\n\n    return res\n}\n\nconst getWebhookCallHistroyListHtml = (histroy) => {\n    let res = \"仅记录程序本次启动以来的Webhook调用记录<br />\"\n\n    for (let i in histroy) {\n        let result = histroy[i].CallResult;\n        res += histroy[i].CallTime + \"&nbsp; &nbsp; &nbsp;\" + result + '<br />'\n    }\n\n    return res\n}\n\nconst WebhookServerSelectChange = (server: string) => {\n    switch (server) {\n        case \"dingding\":\n            let dingding_msg = {\n                msgtype: \"markdown\",\n                markdown: {\n                    title: \"DDNS域名同步反馈\",\n                    text: '#### DDNS域名同步反馈 \\n - IP地址：#{ipAddr} \\n - 域名更新成功列表：#{successDomainsLine}\\n - 域名更新失败列表：#{failedDomainsLine}\\n - Webhook触发时间:  \\n  #{time}'\n                },\n            }\n            WebhookServerListArea.value = JSON.stringify(dingding_msg, null, 2);\n            break;\n        case 'feishu':\n            let feishu_msg = {\n                msg_type: \"post\",\n                content: {\n                    post: {\n                        zh_cn: {\n                            title: \"DDNS域名同步反馈\",\n                            content: [\n                                [{ tag: \"text\", text: \"IP地址：#{ipAddr}\" }],\n                                [{ tag: \"text\", text: \"域名更新成功列表：#{su.ccessDomainsLine}\" }],\n                                [{ tag: \"text\", text: \"域名更新失败列表：#{failedDomainsLine}\" }],\n                                [{ tag: \"text\", text: \"Webhook触发时间: \\n#{time}\" }],\n                            ]\n                        }\n                    }\n                }\n            }\n            WebhookServerListArea.value = JSON.stringify(feishu_msg, null, 2)\n            break\n        case 'weixinpro':\n            let weixin_msg = {\n                msgtype: \"markdown\",\n                markdown: {\n                    content: '#### DDNS域名同步反馈 \\n##### IP地址：\\n#{ipAddr} \\n##### 域名更新成功列表：\\n#{successDomainsLine}\\n##### 域名更新失败列表：\\n#{failedDomainsLine}\\n##### Webhook触发时间: \\n#{time}'\n                }\n            }\n            WebhookServerListArea.value = JSON.stringify(weixin_msg, null, 2)\n            break\n        default:\n    }\n}\n\nconst copyDomain = (SubDomain: string, domain: string) => {\n\n    let content = SubDomain == '' ? domain : SubDomain + \".\" + domain;\n\n    CopyTotoClipboard(content)\n    MessageShow('success', '域名 ' + content + ' 已复制到剪切板')\n}\n\nconst copyWanIP = (ip: string) => {\n    if (ip == \"\") {\n        return\n    }\n    CopyTotoClipboard(ip)\n    MessageShow('success', 'IP ' + ip + ' 已复制到剪切板')\n}\n\n\nconst IPRegTest = () => {\n    // apiGetIPRegTest.\n\n    apiGetIPRegTest(DDNSForm.value.TaskType, DDNSForm.value.NetInterface, DDNSForm.value.IPReg).then((res) => {\n        //console.log(res.data)\n        if (res.ret == 0) {\n            //taskList.value = res.data\n            console.log(\"IP选择匹配测试结果:\" + res.ip)\n            // MessageShow(\"success\", \"IP选择匹配测试结果:\"+res.ip)\n            let message = \"\"\n            if (res.ip == \"\") {\n                message = \"IP选择匹配不到任何IP\"\n            } else {\n                message = \"IP选择匹配测试结果: \" + res.ip\n            }\n            ShowMessageBox(message)\n            return\n        }\n\n        MessageShow(\"error\", \"IP选择匹配测试出错\")\n\n    }).catch((error) => {\n        console.log(\"IP选择匹配测试出错:\" + error)\n        MessageShow(\"error\", \"IP选择匹配测试出错\")\n    })\n}\n\n\nconst GetDNSServerName = (dns: any) => {\n    for (let i in DNSServerList) {\n        if (DNSServerList[i].value == dns.Name) {\n            if (dns.Name != \"callback\") {\n                return DNSServerList[i].label\n            }\n            return getDNSCallbackServerLaber(dns.Callback.Server) + ' (自定义)'\n        }\n    }\n    return \"未知DNS服务商\"\n}\n\nconst getIDLabel = () => {\n    switch (DDNSForm.value.DNS.Name) {\n        case \"alidns\":\n            return \"AccessKey ID\"\n        case \"dnspod\":\n            return \"ID\"\n        case \"cloudflare\":\n            return \"\"\n        case \"huaweicloud\":\n            return \"Access Key Id\"\n        case \"baiducloud\":\n            return \"AccessKey ID\"\n        case \"porkbun\":\n            return \"API Key\"\n        case \"callback\":\n            return \"URL\"\n        default:\n            return \"未支持服务商类型\"\n    }\n}\n\n\n\nconst getSecretLabel = () => {\n    switch (DDNSForm.value.DNS.Name) {\n        case \"alidns\":\n            return \"AccessKey Secret\"\n        case \"dnspod\":\n            return \"Token\"\n        case \"cloudflare\":\n            return \"Token\"\n        case \"huaweicloud\":\n            return \"Secret Access Key\"\n        case \"baiducloud\":\n            return \"AccessKey Secret\"\n        case \"porkbun\":\n            return \"Secret Key\"\n        case \"callback\":\n            return \"RequestBody\"\n        default:\n            return \"未支持服务商类型\"\n    }\n}\nconst showDNSIDFormItem = () => {\n    switch (DDNSForm.value.DNS.Name) {\n        case \"alidns\":\n            return true\n        case \"dnspod\":\n            return true\n        case \"cloudflare\":\n            return false\n        case \"huaweicloud\":\n            return true\n        case \"baiducloud\":\n            return true\n        case \"porkbun\":\n            return true\n        case \"callback\":\n            return false\n        default:\n            return false\n    }\n}\n\n\nconst showDNSSecretFormItem = () => {\n    switch (DDNSForm.value.DNS.Name) {\n        case \"alidns\":\n            return true\n        case \"dnspod\":\n            return true\n        case \"cloudflare\":\n            return true\n        case \"huaweicloud\":\n            return true\n        case \"baiducloud\":\n            return true\n        case \"porkbun\":\n            return true\n        case \"callback\":\n            return false\n        default:\n            return false\n    }\n}\n\n\n\n\n\n\n\nconst ddnsTaskTypeChange = (label) => {\n\n\n    console.log(\"ddnsTaskTypeChange label:\" + label)\n\n    if (DDNSForm.value.TaskType != preDDNSFrom.value.TaskType) {\n        DDNSForm.value.URL = []\n        DDNSForm.value.DNS.DNSServerList = []\n    } else {\n        DDNSForm.value.URL = preDDNSFrom.value.URL\n        DDNSForm.value.DNS.DNSServerList = preDDNSFrom.value.DNS.DNSServerList\n    }\n    DDNSFormURLArea.value = getFormURLAreaValueFromFromURLList()\n    DDNSFormDNSServerListArea.value = getFormDNSServerListAreaValueFromFromDNSServerList()\n\n    queryNetinterfaces()\n}\n\nconst addDDNSDialogVisible = ref(false)\nconst alterTaskKey = ref(\"\")\nconst DDNSForm = ref(\n    {\n        TaskName: \"\",\n        TaskType: \"IPv6\",\n        Enable: true,\n        GetType: \"url\",\n        URL: [\"\"],\n        NetInterface: \"\",\n        IPReg: \"\",\n        Domains: [\"\"],\n        HttpClientTimeout: 60,\n        DNS: {\n            Name: \"alidns\",\n            ID: \"\",\n            Secret: \"\",\n            ForceInterval: 3600,\n            ResolverDoaminCheck: false,\n            CallAPINetwork: \"\",\n            DNSServerList: [\"\"],\n            HttpClientProxyType: \"\",\n            HttpClientProxyAddr: \"\",\n            HttpClientProxyUser: \"\",\n            HttpClientProxyPassword: \"\",\n            Callback: {\n                URL: \"\",\n                Method: \"\",\n                Headers: [\"\"],\n                RequestBody: \"\",\n                Server: \"\",\n                DisableCallbackSuccessContentCheck: false,\n                CallbackSuccessContent: [\"\"],\n            },\n        },\n        WebhookEnable: false,\n        WebhookCallOnGetIPfail: false,\n        WebhookURL: \"\",\n        WebhookMethod: \"\",\n        WebhookHeaders: [\"\"],\n        WebhookRequestBody: \"\",\n        WebhookDisableCallbackSuccessContentCheck: false,\n        WebhookSuccessContent: [\"\"],\n        WebhookProxy: \"\",\n        WebhookProxyAddr: \"\",\n        WebhookProxyUser: \"\",\n        WebhookProxyPassword: \"\",\n        TTL: \"\"\n    }\n)\n\nconst preDDNSFrom = ref(\n    {\n        TaskName: \"\",\n        TaskType: \"IPv6\",\n        Enable: true,\n        GetType: \"url\",\n        URL: [\"\"],\n        NetInterface: \"\",\n        IPReg: \"\",\n        Domains: [\"\"],\n        HttpClientTimeout: 20,\n        DNS: {\n            Name: \"alidns\",\n            ID: \"\",\n            Secret: \"\",\n            ForceInterval: 3600,\n            ResolverDoaminCheck: false,\n            DNSServerList: [''],\n            HttpClientProxyType: \"\",\n            CallAPINetwork: \"\",\n            HttpClientProxyAddr: \"\",\n            HttpClientProxyUser: \"\",\n            HttpClientProxyPassword: \"\",\n            Callback: {\n                URL: \"\",\n                Method: \"\",\n                Headers: [\"\"],\n                RequestBody: \"\",\n                Server: \"\",\n                DisableCallbackSuccessContentCheck: false,\n                CallbackSuccessContent: [\"\"],\n            },\n        },\n        WebhookEnable: false,\n        WebhookCallOnGetIPfail: false,\n        WebhookURL: \"\",\n        WebhookMethod: \"\",\n        WebhookHeaders: [\"\"],\n        WebhookRequestBody: \"\",\n        WebhookDisableCallbackSuccessContentCheck: false,\n        WebhookSuccessContent: [\"\"],\n        WebhookProxy: \"\",\n        WebhookProxyAddr: \"\",\n        WebhookProxyUser: \"\",\n        WebhookProxyPassword: \"\",\n        TTL: \"\"\n    }\n)\n\nconst DDNSFormCallbackHeaderArea = ref(\"\")\nconst DDNSFormURLArea = ref(\"\")\nconst DDNSFormWebhookHeadersArea = ref(\"\")\nconst DDNSFormWebhookSuccessContentArea = ref(\"\")\nconst DDNSFormDNSServerListArea = ref(\"\")\nconst DDNSFormCallbackSuccessContentArea = ref(\"\")\nconst DDNSFormDomiansArea = ref(\"\")\nconst DDNSFormOptionType = ref(\"\")\nconst checkIPv4URLList = [\"https://4.ipw.cn\", \"http://v4.ip.zxinc.org/getip\", \"https://myip4.ipip.net\", \"https://www.taobao.com/help/getip.php\", \"https://ddns.oray.com/checkip\", \"https://ip.3322.net\", \"https://v4.myip.la\"]\nconst checkIPv6URLList = [\"https://6.ipw.cn\", \"https://ipv6.ddnspod.com\", \"http://v6.ip.zxinc.org/getip\", \"https://speed.neu6.edu.cn/getIP.php\", \"https://v6.ident.me\", \"https://v6.myip.la\"]\n\nconst showAddOrAlterDDNSTaskDialog = (optionType: string, task: any) => {\n    //console.log(\"optionType fuck:\" + optionType)\n\n    webhookSelect.value = \"\"\n\n    queryNetinterfaces()\n    DDNSFormOptionType.value = optionType\n    if (optionType == \"add\") {\n\n\n        DDNSForm.value.TaskName = \"\"\n        DDNSForm.value.TaskType = \"IPv6\"\n        DDNSForm.value.Enable = true\n        DDNSForm.value.GetType = \"url\"\n        DDNSForm.value.URL = checkIPv6URLList\n        DDNSForm.value.NetInterface = \"\"\n        DDNSForm.value.IPReg = \"\"\n        DDNSForm.value.Domains = [\"\"]\n        DDNSForm.value.HttpClientTimeout = 20,\n            DDNSForm.value.DNS = {\n                Name: \"alidns\",\n                ID: \"\",\n                Secret: \"\",\n                ForceInterval: 3600,\n                ResolverDoaminCheck: true,\n                DNSServerList: [],\n                HttpClientProxyType: \"\",\n                CallAPINetwork: \"\",\n                HttpClientProxyAddr: \"\",\n                HttpClientProxyUser: \"\",\n                HttpClientProxyPassword: \"\",\n                Callback: {\n                    URL: \"\",\n                    Method: \"get\",\n                    Headers: [\"\"],\n                    RequestBody: \"\",\n                    Server: \"other\",\n                    DisableCallbackSuccessContentCheck: false,\n                    CallbackSuccessContent: [],\n                }\n            }\n        DDNSForm.value.WebhookEnable = false\n        DDNSForm.value.WebhookCallOnGetIPfail = false\n        DDNSForm.value.WebhookURL = \"\"\n        DDNSForm.value.WebhookMethod = \"get\"\n        DDNSForm.value.WebhookHeaders = []\n        DDNSForm.value.WebhookRequestBody = \"\"\n        DDNSForm.value.WebhookDisableCallbackSuccessContentCheck = false,\n            DDNSForm.value.WebhookSuccessContent = []\n        DDNSForm.value.WebhookProxy = \"\"\n        DDNSForm.value.WebhookProxyAddr = \"\"\n        DDNSForm.value.WebhookProxyUser = \"\"\n        DDNSForm.value.WebhookProxyPassword = \"\"\n        DDNSForm.value.TTL = \"\"\n        DDNSFormURLArea.value = getFormURLAreaValueFromFromURLList()\n        DDNSFormDNSServerListArea.value = getFormDNSServerListAreaValueFromFromDNSServerList()\n        DDNSFormWebhookHeadersArea.value = getFormWebhookHeadersAreaValueFromFormWebhookHeadersList()\n\n        DDNSFormWebhookHeadersArea.value = \"\"\n        DDNSFormWebhookSuccessContentArea.value = \"\"\n\n        DDNSFormDomiansArea.value = \"\"\n        DDNSFormCallbackSuccessContentArea.value = \"\"\n\n\n        preDDNSFrom.value.TaskName = \"\"\n        preDDNSFrom.value.TaskType = \"IPv6\"\n        preDDNSFrom.value.Enable = true\n        preDDNSFrom.value.GetType = \"url\"\n        preDDNSFrom.value.URL = StringToArrayList(DDNSFormURLArea.value)\n        preDDNSFrom.value.NetInterface = \"\"\n        preDDNSFrom.value.IPReg = \"\"\n        preDDNSFrom.value.Domains = [\"\"]\n        preDDNSFrom.value.HttpClientTimeout = 20,\n            preDDNSFrom.value.DNS = {\n                Name: \"alidns\",\n                ID: \"\",\n                Secret: \"\",\n                ForceInterval: 3600,\n                ResolverDoaminCheck: true,\n                DNSServerList: [],\n                HttpClientProxyType: \"\",\n                CallAPINetwork: \"\",\n                HttpClientProxyAddr: \"\",\n                HttpClientProxyUser: \"\",\n                HttpClientProxyPassword: \"\",\n                Callback: {\n                    URL: \"\",\n                    Method: \"get\",\n                    Headers: [\"\"],\n                    RequestBody: \"\",\n                    DisableCallbackSuccessContentCheck: false,\n                    CallbackSuccessContent: [],\n                    Server: \"other\",\n                }\n            }\n        preDDNSFrom.value.WebhookEnable = false\n        preDDNSFrom.value.WebhookCallOnGetIPfail = false\n        preDDNSFrom.value.WebhookURL = \"\"\n        preDDNSFrom.value.WebhookMethod = \"get\"\n        preDDNSFrom.value.WebhookHeaders = []\n        preDDNSFrom.value.WebhookRequestBody = \"\"\n        preDDNSFrom.value.WebhookDisableCallbackSuccessContentCheck = false,\n            preDDNSFrom.value.WebhookSuccessContent = []\n        preDDNSFrom.value.WebhookProxy = \"\"\n        preDDNSFrom.value.WebhookProxyAddr = \"\"\n        preDDNSFrom.value.WebhookProxyUser = \"\"\n        preDDNSFrom.value.WebhookProxyPassword = \"\"\n        preDDNSFrom.value.TTL = \"\"\n    } else {\n\n        DDNSForm.value.TaskName = task.TaskName\n        DDNSForm.value.TaskType = task.TaskType\n        DDNSForm.value.Enable = task.Enable\n        DDNSForm.value.GetType = task.GetType\n        DDNSForm.value.URL = task.URL\n        DDNSForm.value.NetInterface = task.NetInterface\n        DDNSForm.value.IPReg = task.IPReg\n        DDNSForm.value.Domains = task.Domains\n        DDNSForm.value.HttpClientTimeout = task.HttpClientTimeout\n        DDNSForm.value.DNS = {\n            Name: task.DNS.Name,\n            ID: task.DNS.ID,\n            Secret: task.DNS.Secret,\n            ForceInterval: task.DNS.ForceInterval,\n            ResolverDoaminCheck: task.DNS.ResolverDoaminCheck,\n            DNSServerList: task.DNS.DNSServerList,\n            HttpClientProxyType: task.DNS.HttpClientProxyType,\n            CallAPINetwork: task.DNS.CallAPINetwork,\n            HttpClientProxyAddr: task.DNS.HttpClientProxyAddr,\n            HttpClientProxyUser: task.DNS.HttpClientProxyUser,\n            HttpClientProxyPassword: task.DNS.HttpClientProxyPassword,\n            Callback: {\n                URL: task.DNS.Callback.URL,\n                Method: task.DNS.Callback.Method,\n                Headers: task.DNS.Callback.Headers,\n                RequestBody: task.DNS.Callback.RequestBody,\n                Server: task.DNS.Callback.Server,\n                DisableCallbackSuccessContentCheck: task.DNS.Callback.DisableCallbackSuccessContentCheck,\n                CallbackSuccessContent: task.DNS.Callback.CallbackSuccessContent\n            }\n        }\n        DDNSForm.value.WebhookEnable = task.WebhookEnable\n        DDNSForm.value.WebhookCallOnGetIPfail = task.WebhookCallOnGetIPfail\n        DDNSForm.value.WebhookURL = task.WebhookURL\n        DDNSForm.value.WebhookRequestBody = task.WebhookRequestBody\n        DDNSForm.value.WebhookMethod = task.WebhookMethod\n        DDNSForm.value.WebhookHeaders = task.WebhookHeaders\n        DDNSForm.value.WebhookDisableCallbackSuccessContentCheck = task.WebhookDisableCallbackSuccessContentCheck\n        DDNSForm.value.WebhookSuccessContent = task.WebhookSuccessContent\n        DDNSForm.value.WebhookProxy = task.WebhookProxy\n        DDNSForm.value.WebhookProxyAddr = task.WebhookProxyAddr\n        DDNSForm.value.WebhookProxyUser = task.WebhookProxyUser\n        DDNSForm.value.WebhookProxyPassword = task.WebhookProxyPassword\n        DDNSForm.value.TTL = task.TTL\n        DDNSFormURLArea.value = getFormURLAreaValueFromFromURLList()\n        DDNSFormDomiansArea.value = getFormDomainsAreaValueFromFromDomainsList()\n        DDNSFormCallbackHeaderArea.value = getFormCallbackHeaderAreaValueFromFormCallbackHeaderList()\n        DDNSFormCallbackSuccessContentArea.value = getFormCallbackSuccessContentAreaValueFromFormCallbackSuccessContentList()\n        DDNSFormDNSServerListArea.value = getFormDNSServerListAreaValueFromFromDNSServerList()\n        DDNSFormWebhookHeadersArea.value = getFormWebhookHeadersAreaValueFromFormWebhookHeadersList()\n        DDNSFormWebhookSuccessContentArea.value = getFormWebhookSuccessContentAreaValueFromFormWebhookSuccessContenttList()\n\n\n        preDDNSFrom.value.TaskName = task.TaskName\n        preDDNSFrom.value.TaskType = task.TaskType\n        preDDNSFrom.value.Enable = task.Enable\n        preDDNSFrom.value.GetType = task.GetType\n        preDDNSFrom.value.URL = StringToArrayList(DDNSFormURLArea.value)\n        preDDNSFrom.value.NetInterface = task.NetInterface\n        preDDNSFrom.value.IPReg = task.IPReg\n        preDDNSFrom.value.Domains = task.Domains\n        preDDNSFrom.value.HttpClientTimeout = task.HttpClientTimeout\n        preDDNSFrom.value.DNS = {\n            Name: task.DNS.Name,\n            ID: task.DNS.ID,\n            Secret: task.DNS.Secret,\n            ForceInterval: task.DNS.ForceInterval,\n            ResolverDoaminCheck: task.DNS.ResolverDoaminCheck,\n            DNSServerList: task.DNS.DNSServerList,\n            HttpClientProxyType: task.DNS.HttpClientProxyType,\n            CallAPINetwork: task.DNS.CallAPINetwork,\n            HttpClientProxyAddr: task.DNS.HttpClientProxyAddr,\n            HttpClientProxyUser: task.DNS.HttpClientProxyUser,\n            HttpClientProxyPassword: task.DNS.HttpClientProxyPassword,\n            Callback: {\n                URL: task.DNS.Callback.URL,\n                Method: task.DNS.Callback.Method,\n                Headers: task.DNS.Callback.Headers,\n                RequestBody: task.DNS.Callback.RequestBody,\n                CallbackSuccessContent: task.DNS.Callback.CallbackSuccessContent,\n                DisableCallbackSuccessContentCheck: task.DNS.Callback.DisableCallbackSuccessContentCheck,\n                Server: task.DNS.Callback.Server,\n            }\n        }\n        preDDNSFrom.value.WebhookEnable = task.WebhookEnable\n        preDDNSFrom.value.WebhookMethod = task.WebhookMethod\n        preDDNSFrom.value.WebhookHeaders = task.WebhookHeaders\n        preDDNSFrom.value.WebhookCallOnGetIPfail = task.WebhookCallOnGetIPfail\n        preDDNSFrom.value.WebhookURL = task.WebhookURL\n        preDDNSFrom.value.WebhookDisableCallbackSuccessContentCheck = task.WebhookDisableCallbackSuccessContentCheck\n        preDDNSFrom.value.WebhookSuccessContent = task.WebhookSuccessContent\n        preDDNSFrom.value.WebhookRequestBody = task.WebhookRequestBody\n        preDDNSFrom.value.WebhookProxy = task.WebhookProxy\n        preDDNSFrom.value.WebhookProxyAddr = task.WebhookProxyAddr\n        preDDNSFrom.value.WebhookProxyUser = task.WebhookProxyUser\n        preDDNSFrom.value.WebhookProxyPassword = task.WebhookProxyPassword\n        preDDNSFrom.value.TTL = task.TTL\n        alterTaskKey.value = task.TaskKey\n    }\n\n\n\n\n    addDDNSDialogVisible.value = true\n\n}\n\nconst ResolverDoaminCheckChange = (change) => {\n    console.log(\"ResolverDoaminCheckChange: \" + change);\n    // DDNSForm.value.DNS.DNSServerList = \n}\n\nconst ruleEnableClick = (enable, task) => {\n    const enableText = enable == false ? \"启用\" : \"禁用\";\n\n    const taskName = \"[\" + task.TaskName + \"]\"\n\n    return new Promise((resolve, reject) => {\n\n        ElMessageBox.confirm(\n            '确认要' + enableText + \"DDNS任务 \" + taskName + \"?\",\n            'Warning',\n            {\n                confirmButtonText: '确认',\n                cancelButtonText: '取消',\n                type: 'warning',\n            }\n        )\n            .then(() => {\n                apiDDNSTaskEnable(task.TaskKey, !enable).then(res => {\n                    if (res.ret == 0) {\n                        resolve(true)\n                        MessageShow(\"success\", \"DDNS任务  \" + taskName + enableText + \"成功\")\n                        return\n                    }\n                    resolve(false)\n                    MessageShow(\"error\", \"DDNS任务 \" + taskName + enableText + \"失败\")\n\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                }).catch((error) => {\n                    resolve(false)\n                    console.log(\"DDNS任务 \" + taskName + enableText + \"失败\" + \":请求出错\" + error)\n                    MessageShow(\"error\", \"DDNS任务 \" + taskName + enableText + \"失败\" + \":请求出错\")\n                })\n\n            })\n            .catch(() => {\n                resolve(false)\n            })\n\n\n\n    })\n}\n\n\nconst deleteTask = (task) => {\n\n    const ruleName = \"[\" + task.TaskName + \"]\"\n\n    const ruleText = ruleName\n\n    ElMessageBox.confirm(\n        '确认要删除DDNS任务 ' + ruleText + \"?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            console.log(\"确认删除DDNS任务 \" + ruleText)\n\n            apiDeleteDDNSTask(task.TaskKey).then((res) => {\n                if (res.ret == 0) {\n                    //console.log(\"删除成功\")\n                    queryDDNSTaskList();\n                    MessageShow(\"success\", \"删除成功\")\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n\n                } else {\n                    MessageShow(\"error\", res.msg)\n                }\n\n            }).catch((error) => {\n                console.log(\"删除DDNS任务失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"删除DDNS任务失败,网络请求出错\")\n            })\n        })\n        .catch(() => {\n\n        })\n}\n\nconst exeAddOrAlterDDNSOption = () => {\n\n\n    // console.log(\"点击了添加: \"+ DDNSFormOptionType.value)\n    DDNSForm.value.URL = StringToArrayList(DDNSFormURLArea.value)\n    DDNSForm.value.Domains = StringToArrayList(DDNSFormDomiansArea.value)\n    DDNSForm.value.DNS.Callback.Headers = StringToArrayList(DDNSFormCallbackHeaderArea.value)\n    DDNSForm.value.DNS.Callback.CallbackSuccessContent = StringToArrayList(DDNSFormCallbackSuccessContentArea.value)\n    DDNSForm.value.DNS.DNSServerList = StringToArrayList(DDNSFormDNSServerListArea.value)\n    DDNSForm.value.WebhookHeaders = StringToArrayList(DDNSFormWebhookHeadersArea.value)\n    DDNSForm.value.WebhookSuccessContent = StringToArrayList(DDNSFormWebhookSuccessContentArea.value)\n\n    if (DDNSForm.value.URL.length == 0) {\n        if (DDNSForm.value.TaskType == \"IPv6\") {\n            DDNSForm.value.URL = checkIPv6URLList\n        } else {\n            DDNSForm.value.URL = checkIPv4URLList\n        }\n        DDNSFormURLArea.value = getFormURLAreaValueFromFromURLList()\n    }\n\n\n    let checkDDNSFormAvalidRes = checkDDNSFormAvalid()\n\n    // console.log(\"fuck[\" + checkDDNSFormAvalidRes + \"]\")\n\n    if (checkDDNSFormAvalidRes.length > 0) {\n        ShowMessageBox(checkDDNSFormAvalidRes)\n        return\n    }\n\n\n    if (DDNSFormOptionType.value == \"add\") {\n        console.log(\"add DDNS任务\")\n\n        apiAddDDNSTask(DDNSForm.value).then((res) => {\n            if (res.ret == 0) {\n                addDDNSDialogVisible.value = false;\n                MessageShow(\"success\", \"DDNS任务添加成功\")\n\n                console.log(\"刷新DDNS任务列表\")\n                queryDDNSTaskList()\n                //queryTaskList();\n\n                if (res.syncres != undefined && res.syncres != \"\") {\n                    Notification(\"warn\", res.syncres, 0)\n                }\n                return\n            }\n            MessageShow(\"error\", res.msg)\n        }).catch((error) => {\n            console.log(\"DDNS任务添加失败,网络请求出错:\" + error)\n            MessageShow(\"error\", \"DDNS任务添加失败,网络请求出错\")\n        })\n    } else {\n        apiAlterDDNSTask(alterTaskKey.value, DDNSForm.value).then((res) => {\n            if (res.ret == 0) {\n                addDDNSDialogVisible.value = false;\n                MessageShow(\"success\", \"DDNS任务修改成功\")\n                console.log(\"刷新DDNS任务列表\")\n                //queryTaskList();\n                queryDDNSTaskList()\n                if (res.syncres != undefined && res.syncres != \"\") {\n                    Notification(\"warn\", res.syncres, 0)\n                }\n                return\n            }\n            MessageShow(\"error\", res.msg)\n        }).catch((error) => {\n            console.log(\"DDNS任务添加失败,网络请求出错:\" + error)\n            MessageShow(\"error\", \"DDNS任务添加失败,网络请求出错\")\n        })\n    }\n\n}\n\n\n\n\nconst queryDDNSTaskList = () => {\n    apiGetDDNSTaskList().then((res) => {\n        //console.log(res.data)\n        if (res.ret == 0) {\n            taskList.value = res.data\n            return\n        }\n\n        if (res.ret == 6) {\n            MessageShow(\"warning\", \"请先在动态域名设置中启用DDNS动态域名服务\")\n            location.hash = \"#ddnsset\"\n            return\n        }\n\n    }).catch((error) => {\n        console.log(\"获取DDNS任务列表出错:\" + error)\n        MessageShow(\"error\", \"获取DDNS任务列表出错\")\n    })\n}\n\nconst queryNetinterfaces = () => {\n    apiGetNetinterfaces().then((res) => {\n        if (res.ret == 0) {\n            netInterfaceList.value = res.data\n            //console.log(\"data:\"+res.data)\n            // console.log(\"网卡列表：\" + netInterfaceList.value)\n            if (DDNSForm.value.TaskType == \"IPv6\") {\n                currentNetInterface.value = netInterfaceList.value.IPv6NewInterfaces\n            } else {\n                currentNetInterface.value = netInterfaceList.value.IPv4NewInterfaces\n            }\n\n            if (DDNSForm.value.NetInterface == \"\" && currentNetInterface.value.length > 0) {\n                DDNSForm.value.NetInterface = currentNetInterface.value[0].NetInterfaceName\n            }\n            // console.log(\"currentNetInterface \"+ currentNetInterface.value )\n        }\n\n\n\n    }).catch((error) => {\n        console.log(\"获取网卡列表出错:\" + error)\n        MessageShow(\"error\", \"获取网卡列表出错\")\n    })\n}\n\nconst checkDDNSFormAvalid = () => {\n    let data = DDNSForm.value\n    //if (data.DNS)\n\n    let checkDNSDataResMsg = checkDNSData(data.DNS)\n\n    if (checkDNSDataResMsg.length > 0) {\n        return checkDNSDataResMsg\n    }\n\n\n\n    if (data.Domains.length == 0) {\n        return \"域名列表不能为空\"\n    }\n\n    if (data.GetType == \"url\") {\n        if (data.URL.length <= 0) {\n            return \"接口列表不能为空\"\n        }\n    }\n\n    if (data.GetType == \"netInterface\") {\n        if (data.NetInterface == \"\") {\n            return \"请选择获取IP的网卡\"\n        }\n    }\n\n    if (data.DNS.HttpClientProxyType != \"\") {\n        if (data.DNS.HttpClientProxyAddr == \"\") {\n            return \"DNS 代理设置服务器地址不能为空\"\n        }\n    }\n\n    if (data.WebhookEnable) {\n        if (data.WebhookURL == \"\") {\n            return \"请填写Webhook 接口地址\"\n        }\n\n        if (data.WebhookMethod == \"\") {\n            return \"请选择Webhook 请求方法\"\n        }\n\n        if (data.WebhookProxy != \"\" && data.WebhookProxy != \"dns\") {\n            if (data.WebhookProxyAddr == \"\") {\n                return \"Webhook 代理设置服务器地址不能为空\"\n            }\n        }\n\n        if (!data.WebhookDisableCallbackSuccessContentCheck && data.WebhookSuccessContent.length == 0) {\n            return \"Webhook接口调用成功包含的字符串不能为空,如果要指定为空请禁用检测\"\n        }\n    }\n\n\n\n\n\n    //清空无用数据\n    if (data.DNS.Name == \"callback\") {\n        data.DNS.ID = \"\"\n        data.DNS.Secret = \"\"\n        if (data.DNS.Callback.Method == \"get\") {\n            data.DNS.Callback.RequestBody = \"\"\n        }\n\n\n\n    } else {\n        data.DNS.Callback = {\n            URL: \"\",\n            Method: \"\",\n            Headers: [],\n            RequestBody: \"\", Server: \"\", CallbackSuccessContent: [], DisableCallbackSuccessContentCheck: false\n        }\n    }\n\n    if (data.WebhookEnable) {\n        if (data.WebhookMethod == 'get') {\n            data.WebhookRequestBody = \"\"\n        }\n    }\n\n\n\n    return \"\"\n}\n\nconst checkDNSData = (dns: any) => {\n    //switch\n    switch (dns.Name) {\n        case \"cloudflare\":\n            if (dns.Secret == \"\") {\n                return \"Cloudflare Token不能为空\"\n            }\n            break;\n        case \"callback\":\n            if (dns.Callback.Method == \"\") {\n                return \"请选择Callback的请求方法\"\n            }\n\n            if (dns.Callback.URL == \"\") {\n                return \"Callback 接口地址不能为空\"\n            }\n\n            if (!dns.Callback.DisableCallbackSuccessContentCheck && dns.Callback.CallbackSuccessContent.length == 0) {\n                return \"接口调用成功包含的字符串不能为空,如果要指定为空请禁用检测\"\n            }\n\n            break;\n        default:\n            if (dns.Secret == \"\" || dns.ID == \"\") {\n                return \"DNS服务商相关参数不能为空\"\n            }\n    }\n    return \"\"\n}\n\nconst autocompleteCallbackForm = () => {\n    ElMessageBox.confirm(\n        '确认要根据Callback DNS服务商[' + getDNSCallbackServerLaber(DDNSForm.value.DNS.Callback.Server) + ']和公网IP类型:[' + DDNSForm.value.TaskType + ']自动填充参数模版?',\n        'Warning',\n        {\n            confirmButtonText: '自动填充',\n            cancelButtonText: '不需要',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            switch (DDNSForm.value.DNS.Callback.Server) {\n                case \"meibu\":\n                    if (DDNSForm.value.TaskType == \"IPv6\") {\n                        DDNSForm.value.DNS.Callback.URL = 'http://v6.meibu.com/v6.asp?name=#{domain}&pwd=这里替换为你的密码'\n                    } else {\n                        DDNSForm.value.DNS.Callback.URL = 'http://ipv4.meibu.com/ipv4.asp?ID=lucky&name=#{domain}&pwd=这里替换为你的密码'\n\n                    }\n                    DDNSFormCallbackHeaderArea.value = \"\"\n                    DDNSForm.value.DNS.Callback.Headers = []\n                    DDNSForm.value.DNS.Callback.Method = 'get'\n                    DDNSForm.value.DNS.Callback.RequestBody = \"\"\n                    DDNSForm.value.DNS.Callback.DisableCallbackSuccessContentCheck = false\n                    DDNSForm.value.DNS.Callback.CallbackSuccessContent = [\"chenggong\", \"chongfu\", \"ok\"]\n                    DDNSFormCallbackSuccessContentArea.value = 'chenggong\\nchongfu\\nok'\n                    break;\n                case \"noip\":\n                    DDNSForm.value.DNS.Callback.URL = 'http://你的账号:你的密码@dynupdate.no-ip.com/nic/update?hostname=#{domain}&myip=#{ip}'\n                    DDNSFormCallbackHeaderArea.value = \"\"\n                    DDNSForm.value.DNS.Callback.Headers = []\n                    DDNSForm.value.DNS.Callback.Method = 'get'\n                    DDNSForm.value.DNS.Callback.RequestBody = \"\"\n                    DDNSForm.value.DNS.Callback.DisableCallbackSuccessContentCheck = false\n                    DDNSForm.value.DNS.Callback.CallbackSuccessContent = [\"nochg #{ip}\", \"good #{ip}\"]\n                    DDNSFormCallbackSuccessContentArea.value = 'nochg #{ip}\\ngood #{ip}'\n                    break;\n                case \"dynv6\":\n                    if (DDNSForm.value.TaskType == \"IPv6\") {\n                        DDNSForm.value.DNS.Callback.URL = 'https://dynv6.com/api/update?hostname=#{domain}&token=这里替换为你的Token&ipv6=#{ip}'\n                    } else {\n                        DDNSForm.value.DNS.Callback.URL = 'https://dynv6.com/api/update?hostname=#{domain}&token=这里替换为你的Token&ipv4=#{ip}'\n                    }\n                    DDNSFormCallbackHeaderArea.value = \"\"\n                    DDNSForm.value.DNS.Callback.Headers = []\n                    DDNSForm.value.DNS.Callback.Method = 'get'\n                    DDNSForm.value.DNS.Callback.RequestBody = \"\"\n                    DDNSForm.value.DNS.Callback.DisableCallbackSuccessContentCheck = false\n                    DDNSForm.value.DNS.Callback.CallbackSuccessContent = [\"addresses updated\"]\n                    DDNSFormCallbackSuccessContentArea.value = 'addresses updated\\n'\n                    break;\n                case \"dynu\":\n                    if (DDNSForm.value.TaskType == \"IPv6\") {\n                        DDNSForm.value.DNS.Callback.URL = 'https://api.dynu.com/nic/update?hostname=#{domain}&myip=no&myipv6=#{ip}&username=用户名&password=登录密码或IP更新密码'\n                    } else {\n                        DDNSForm.value.DNS.Callback.URL = 'https://api.dynu.com/nic/update?hostname=#{domain}&myip=#{ip}&myipv6=no}&username=用户名&password=登录密码或IP更新密码'\n                    }\n                    DDNSFormCallbackHeaderArea.value = \"\"\n                    DDNSForm.value.DNS.Callback.Headers = []\n                    DDNSForm.value.DNS.Callback.Method = 'get'\n                    DDNSForm.value.DNS.Callback.RequestBody = \"\"\n                    DDNSForm.value.DNS.Callback.DisableCallbackSuccessContentCheck = false\n                    DDNSForm.value.DNS.Callback.CallbackSuccessContent = [\"nochg\", \"good #{ip}\"]\n                    DDNSFormCallbackSuccessContentArea.value = 'nochg\\ngood #{ip}'\n                    break;\n                    break\n                default:\n            }\n\n\n        })\n        .catch(() => {\n\n        })\n}\n\n\nconst getFormURLAreaValueFromFromURLList = () => {\n    if (DDNSForm.value.URL == null || DDNSForm.value.URL.length <= 0 || (DDNSForm.value.URL.length == 1 && DDNSForm.value.URL[0] == \"\")) {\n        if (DDNSForm.value.TaskType == \"IPv6\") {\n            DDNSForm.value.URL = checkIPv6URLList\n        } else {\n            DDNSForm.value.URL = checkIPv4URLList\n        }\n    }\n    var res = \"\"\n    for (let i in DDNSForm.value.URL) {\n        if (i == \"0\") {\n            res = DDNSForm.value.URL[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.URL[i]\n        }\n    }\n\n    return res\n}\n\nconst getFormDNSServerListAreaValueFromFromDNSServerList = () => {\n\n    if (DDNSForm.value.DNS.DNSServerList == null || DDNSForm.value.DNS.DNSServerList.length <= 0 || (DDNSForm.value.DNS.DNSServerList.length == 1 && DDNSForm.value.DNS.DNSServerList[0] == \"\")) {\n        if (DDNSForm.value.TaskType == \"IPv6\") {\n            DDNSForm.value.DNS.DNSServerList = defaultIPv6DNSServerList\n        } else {\n            DDNSForm.value.DNS.DNSServerList = defaultIPv4DNSServerList\n        }\n    }\n\n\n    var res = \"\"\n    for (let i in DDNSForm.value.DNS.DNSServerList) {\n        if (i == \"0\") {\n            res = DDNSForm.value.DNS.DNSServerList[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.DNS.DNSServerList[i]\n        }\n    }\n\n    return res\n}\n\n\nconst getFormDomainsAreaValueFromFromDomainsList = () => {\n    if (DDNSForm.value.Domains == null || DDNSForm.value.Domains.length == 0) {\n        return \"\"\n    }\n\n\n    var res = \"\"\n    for (let i in DDNSForm.value.Domains) {\n        if (i == \"0\") {\n            res = DDNSForm.value.Domains[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.Domains[i]\n        }\n    }\n\n    return res\n}\n\n\nconst getFormCallbackHeaderAreaValueFromFormCallbackHeaderList = () => {\n    if (DDNSForm.value.DNS.Callback.Headers == null || DDNSForm.value.DNS.Callback.Headers.length == 0) {\n        return \"\"\n    }\n\n\n    var res = \"\"\n    for (let i in DDNSForm.value.DNS.Callback.Headers) {\n        if (i == \"0\") {\n            res = DDNSForm.value.DNS.Callback.Headers[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.DNS.Callback.Headers[i]\n        }\n    }\n    return res\n}\n\nconst getFormWebhookHeadersAreaValueFromFormWebhookHeadersList = () => {\n    if (DDNSForm.value.WebhookHeaders == null || DDNSForm.value.WebhookHeaders.length == 0) {\n        return \"\"\n    }\n\n    var res = \"\"\n    for (let i in DDNSForm.value.WebhookHeaders) {\n        if (i == \"0\") {\n            res = DDNSForm.value.WebhookHeaders[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.WebhookHeaders[i]\n        }\n    }\n    return res\n}\n\n\nconst getFormCallbackSuccessContentAreaValueFromFormCallbackSuccessContentList = () => {\n    if (DDNSForm.value.DNS.Callback.CallbackSuccessContent == null || DDNSForm.value.DNS.Callback.CallbackSuccessContent.length == 0) {\n        return \"\"\n    }\n\n\n    var res = \"\"\n    for (let i in DDNSForm.value.DNS.Callback.CallbackSuccessContent) {\n        if (i == \"0\") {\n            res = DDNSForm.value.DNS.Callback.CallbackSuccessContent[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.DNS.Callback.CallbackSuccessContent[i]\n        }\n    }\n    return res\n}\n\nconst getFormWebhookSuccessContentAreaValueFromFormWebhookSuccessContenttList = () => {\n    if (DDNSForm.value.WebhookSuccessContent == null || DDNSForm.value.WebhookSuccessContent.length == 0) {\n        return \"\"\n    }\n\n\n    var res = \"\"\n    for (let i in DDNSForm.value.WebhookSuccessContent) {\n        if (i == \"0\") {\n            res = DDNSForm.value.WebhookSuccessContent[i]\n        } else {\n            res += \"\\n\" + DDNSForm.value.WebhookSuccessContent[i]\n        }\n    }\n    return res\n}\n\nconst deleteWhiteList = (index, item) => {\n    // ElMessageBox.confirm(\n    //     '确认要删除IP [' + item.IP + \"]的白名单记录?\",\n    //     'Warning',\n    //     {\n    //         confirmButtonText: '确认',\n    //         cancelButtonText: '取消',\n    //         type: 'warning',\n    //     }\n    // )\n    //     .then(() => {\n    //         apiDeleteWhiteList(item.IP).then((res) => {\n    //             if (res.ret == 0) {\n    //                 whitelist.value.splice(index, 1)\n    //                 return\n    //             }\n    //             MessageShow(\"error\", res.msg)\n\n    //         }).catch((error) => {\n    //             MessageShow(\"error\", \"删除[\" + item.IP + \"]的白名单记录出错\")\n    //         })\n    //     })\n    //     .catch(() => {\n\n    //     })\n}\n\n\n\n\n\n// const keydown = (e) => {\n//     if (e.keyCode != 13) {\n//         return\n//     }\n//     if (!addDDNSDialogVisible.value) {\n//         return\n//     }\n//     exeAddOrAlterDDNSOption()\n// }\n\nvar timerID: any\nonMounted(() => {\n    queryDDNSTaskList();\n\n    timerID = setInterval(() => {\n        queryDDNSTaskList();\n    }, 500);\n})\n\nonUnmounted(() => {\n    clearInterval(timerID)\n})\n\n</script>\n\n<style scoped>\n.itemradius {\n\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin-left: 3px;\n    margin-top: 3px;\n    margin-right: 3px;\n    margin-bottom: 5px;\n    min-width: 1200px;\n\n}\n\n.fromitemDivRadius {\n    border: 5px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 530px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.fromitemChildDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 495px;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.affix-container {\n    text-align: center;\n    border-radius: 4px;\n    width: 3vw;\n\n    background: var(--el-color-primary-light-9);\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/DDNSSet.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\" v-loading=\"logLoading\" element-loading-background=\"transparent\">\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n\n                <el-form :model=\"form\" class=\"SetForm\" label-width=\"auto\">\n\n                    <el-tooltip content=\"如果不需要DDNS动态域名服务请不要打开这个开关\" placement=\"top\">\n\n                        <el-form-item label=\"动态域名服务开关\" id=\"adminListen\">\n                            <el-switch v-model=\"form.Enable\" class=\"mb-1\" inline-prompt\n                                style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                active-text=\"开启\" inactive-text=\"停用\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"多数嵌入式设备启用这个开关会导致https访问失败\" placement=\"top\">\n\n                        <el-form-item label=\"Http(s) 客户端 安全证书验证\" id=\"adminListen\">\n                            <el-switch v-model=\"form.HttpClientSecureVerify\" class=\"mb-1\" inline-prompt\n                                style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                active-text=\"启用\" inactive-text=\"禁用\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"首次执行任务延迟时间,最小0秒,最长3600秒\" placement=\"top\">\n                        <el-form-item label=\"首次执行任务延迟(秒)\" label-width=\"auto\" min=\"0\" max=\"3600\">\n                            <el-input-number v-model=\"form.FirstCheckDelay\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"DDNS任务每次执行的时间间隔,最小30秒,最长3600秒\" placement=\"top\">\n                        <el-form-item label=\"时间间隔(秒)\" label-width=\"auto\" :min=\"30\" :max=\"3600\">\n                            <el-input-number v-model=\"form.Intervals\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n\n                </el-form>\n\n                <el-button type=\"primary\" round @click=\"RequestAlterDDNSConfigure\">保存修改</el-button>\n\n\n            </div>\n\n\n        </el-scrollbar>\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { apiQueryDDNSConfigure, apiAlterDDNSConfigure } from '../apis/utils'\n\n\nimport { MessageShow } from '../utils/ui'\n\n\nconst logLoading = ref(true)\n\n\nconst rawData = {\n    Enable: false,\n    HttpClientSecureVerify: false,\n    Intervals: 0,\n    FirstCheckDelay: 0,\n}\n\nconst form = ref(rawData)\nconst preFormData = ref(rawData)\n\nconst resetFormData = () => {\n    form.value.Enable = preFormData.value.Enable\n    form.value.HttpClientSecureVerify = preFormData.value.HttpClientSecureVerify\n}\n\nconst syncToPreFormData = (data: any) => {\n    preFormData.value.Enable = data.value.Enable\n    preFormData.value.HttpClientSecureVerify = data.value.HttpClientSecureVerify\n\n}\n\n\n\n\n\n\n\nconst queryDDConfigure = () => {\n    apiQueryDDNSConfigure().then((res) => {\n\n        if (res.ret == 0) {\n            logLoading.value = false\n            form.value = res.ddnsconfigure\n            syncToPreFormData(form)\n            return\n        }\n        MessageShow(\"error\", \"获取DDNS配置出错\")\n    }).catch((error) => {\n        MessageShow(\"error\", \"获取DDNS配置出错\")\n    })\n}\n\nconst RequestAlterDDNSConfigure = () => {\n    apiAlterDDNSConfigure(form.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"配置修改成功\")\n            //syncToPreFormData(form)\n            return\n        }\n        resetFormData()\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"配置修改失败,网络请求出错:\" + error)\n        MessageShow(\"error\", \"配置修改失败,网络请求出错\")\n        resetFormData()\n    })\n}\n\n\n\n\nonMounted(() => {\n    queryDDConfigure()\n\n})\n\n</script>\n\n\n<style scoped>\n.SetForm {\n    margin-top: 15px;\n    margin-left: 20px;\n}\n\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n\n\n}\n\n#adminListen {\n    width: 360px;\n}\n\n#adminAccount {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#adminPassword {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#proxyCountLimit {\n    width: 360px;\n}\n\n\n#globalMaxConnections {\n    width: 360px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/Log.vue",
    "content": "<template>\n    <!-- <div class=\"logterm\">\n        {{weblogsContent}}\n    </div> -->\n     <el-scrollbar max-height=\"95vh\" class=\"logtermv2\" v-loading=\"logLoading\" element-loading-background=\"transparent\">\n {{weblogsContent}}\n <br>\n <br>\n <br>\n <br>\n <br>\n <br>\n    </el-scrollbar>\n</template>\n\n\n<script setup lang=\"ts\">\n\nimport {apiGetLogs } from '../apis/utils'\nimport { onMounted,onUnmounted,ref,inject   } from 'vue'\nimport {GetHash,SetHash} from'../apis/utils.js'\n\nconst global:any = inject(\"global\")\nvar preLogTimestamp = \"\"\nvar preStartTime = \"\"\nconst weblogsContent = ref(\"\")\nvar logLoading = ref(true)\n\n\n\n\nfunction queryLastlogs() {\n    // if(GetHash()!=\"#log\"){\n    //     return ;\n    // }\n\n    \n    apiGetLogs(preLogTimestamp).then((res) => {\n        logLoading.value =false\n\n        if (preStartTime!=res.starttime){\n            weblogsContent.value = \"\"\n            preStartTime = res.starttime\n        }\n\n        if (res.logs!=null && res.logs.length > 0) {\n            // if (res.logs[0].timestamp!=preLogTimestamp){\n            //     console.log(\"fuckkkk\")\n            //     return \n            // }\n            \n\n            preLogTimestamp = res.logs[res.logs.length - 1].timestamp\n            console.log(\"fff \"+res.logs[res.logs.length - 1].log)\n            console.log(\"追加日志 \"+preLogTimestamp)\n            for(var i=0;i<res.logs.length;i++){\n                weblogsContent.value += res.logs[i].log +\"\\n\"\n            }\n        }\n       \n    })\n\n}\n\nvar timerID:any\n \n\n\nonMounted(() => {\n    queryLastlogs();\n    timerID = setInterval(() => {\n      queryLastlogs();\n    }, 1000);\n})\n\nonUnmounted(()=>{\n    clearInterval(timerID) \n})\n\n\n\n\n\n\n\n</script>\n\n<style>\n\n.logtermv2 {\n    background-color: black;\n    height: 95vh;\n    width: 100%;\n    color: white;\n    text-align: left;\n    padding-left: 3px;\n\n    border: 10px;\n    overflow-y: auto;\n    overflow-x: auto;\n    white-space: pre-wrap;\n    word-wrap:break-word;\n}\n\n\n\n.logterm::-webkit-scrollbar {\n    width: 5px;\n}\n\n.logterm::-webkit-scrollbar-thumb {\n    background-color: #c0c0c0;\n    border-radius: 10%;\n\n}\n</style>\n\n"
  },
  {
    "path": "web/adminviews/src/components/Login.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <div class=\"formradius\" :style=\"{\n            borderRadius: 'base',\n        }\">\n\n            <el-form :model=\"form\" class=\"SetForm\" label-width=\"auto\">\n\n                <el-form-item label=\"管理账号\" id=\"account\">\n                    <el-input v-model=\"form.Account\" placeholder=\"管理账号\" autocomplete=\"off\" style=\"witdh:390px;\" />\n                </el-form-item>\n\n                <el-form-item label=\"管理密码\" id=\"account\">\n                    <el-input show-password v-model=\"form.Password\" placeholder=\"管理密码\" autocomplete=\"off\"\n                        style=\"witdh:390px;\" />\n                </el-form-item>\n\n\n                <el-form-item>\n                    <el-checkbox v-model=\"rememberPasswordChecked\" label=\"记住密码\" size=\"large\" @change=\"rememberPasswordCheckedChange\" />\n                </el-form-item>\n\n\n            </el-form>\n\n            <el-button type=\"primary\" round @click=\"Login\">登录</el-button>\n\n        </div>\n\n\n    </div>\n\n</template>\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, inject } from 'vue'\nimport { apiLogin } from '../apis/utils'\nimport {MessageShow} from '../utils/ui'\n\n\nconst rememberPasswordChecked = ref(true)\n\nconst global: any = inject(\"global\")\n\nconst form = ref({\n    Account: \"\",\n    Password: \"\"\n})\n\n\n\nconst rememberPasswordCheckedChange= (checked )=>{\n    //console.log(\"记住密码:\"+checked)\n    SaveLoginInfo(checked)\n}\n\n\nconst SaveLoginInfo = (checked) =>{\n     global.storage.setItem(\"rememberPassword\",checked)\n    if (checked){\n        global.storage.setItem(\"loginAccount\",form.value.Account)\n        global.storage.setItem(\"loginPassword\",form.value.Password)\n        return \n    }\n    global.storage.setItem(\"loginAccount\",\"\")\n    global.storage.setItem(\"loginPassword\",\"\")\n}\n\nconst ReadLoginInfo = ()=>{\n    let rememberPassword = global.storage.getItem(\"rememberPassword\")\n    rememberPasswordChecked.value = rememberPassword == undefined || rememberPassword == false ? false : true;\n    if(!rememberPassword){\n        return \n    }\n   form.value.Account= global.storage.getItem(\"loginAccount\")==undefined?\"\":global.storage.getItem(\"loginAccount\")\n   form.value.Password = global.storage.getItem(\"loginPassword\")==undefined?\"\":global.storage.getItem(\"loginPassword\")\n}\n\n\nconst Login = () => {\n    if (form.value.Account == \"\" || form.value.Password == \"\") {\n        MessageShow(\"error\", \"账号或密码不能为空\")\n        return\n    }\n\n    SaveLoginInfo(rememberPasswordChecked.value)\n    apiLogin(form.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"登录成功\")\n            global.storage.setItem(\"token\",res.token)\n            //global.currentPage.value = \"#set\"\n            location.hash=\"#set\"\n            //console.log(\"cookies:\"+res.cookies)\n            \n            return\n        }\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"登录失败,网络请求出错:\" + error)\n        MessageShow(\"error\", \"登录失败,网络请求出错\")\n    })\n\n}\n\n\n\nconst keydown = (e) => {\n    if (e.keyCode == 13 && global.currentPage.value==\"#login\") {\n        Login()\n        return \n    }\n    return \n}\n\nonMounted(() => {\n    window.addEventListener('keydown', keydown)\n\n\n    ReadLoginInfo()\n})\n\n</script>\n\n<style scoped>\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/PSet.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n            \n            \n\n                <el-form :model=\"form\" class=\"SetForm\" label-width=\"auto\">\n                    \n                <div class=\"AdminListenDivRadius\">\n\n                    <p>后台管理入口设置</p>\n\n                    <el-form-item label=\"外网访问\" id=\"adminListen\">\n                        <el-switch v-model=\"form.AllowInternetaccess\" class=\"mb-1\" inline-prompt\n                            style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                            active-text=\"允许\" inactive-text=\"禁止\" />\n                    </el-form-item>\n\n                    <el-form-item label=\"端口(http)\" id=\"adminListen\">\n                        <el-input-number v-model=\"form.AdminWebListenPort\" autocomplete=\"off\" />\n                    </el-form-item>\n\n                    <el-form-item label=\"TLS端口(https)\" id=\"adminListen\">\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                外网访问时建议使用https端口访问<br />\n                                自行确认启用前先添加对应域名的SSL证书<br />\n                                保存修改或增删SSL证书后请手动重启程序使得设置或证书生效<br />\n                            </template>\n                        <el-switch v-model=\"form.AdminWebListenTLS\" class=\"mb-1\" inline-prompt\n                             width=\"50px\"\n                            active-text=\"启用\" inactive-text=\"禁用\" />\n                        </el-tooltip>\n                    </el-form-item>\n\n                    <el-form-item label=\"端口(https)\" id=\"adminListen\" v-show=\"form.AdminWebListenTLS\">\n                        <el-input-number v-model=\"form.AdminWebListenHttpsPort\" autocomplete=\"off\" />\n                    </el-form-item>\n\n                </div>\n\n                <div class=\"AdminListenDivRadius\">\n                    <el-form-item label=\"管理登录账号\" id=\"adminAccount\">\n                        <el-input v-model=\"form.AdminAccount\" placeholder=\"管理登录账号\" autocomplete=\"off\"\n                            style=\"witdh:390px;\" />\n                    </el-form-item>\n\n                    <el-form-item label=\"管理登录密码\" id=\"adminPassword\">\n                        <el-input v-model=\"form.AdminPassword\" placeholder=\"管理登录密码\" autocomplete=\"off\" />\n                    </el-form-item>\n                </div>\n\n                <div class=\"AdminListenDivRadius\">\n                    <el-form-item label=\"日志记录最大条数\" id=\"logMaxSize\">\n                        <el-input-number v-model=\"form.LogMaxSize\" autocomplete=\"off\" :min=\"1024\" :max=\"40960\" />\n                    </el-form-item>\n                </div>\n\n\n\n\n                    <!-- <el-form-item label=\"全局最大端口代理数量\" id=\"proxyCountLimit\">\n                        <el-input-number v-model=\"form.ProxyCountLimit\" autocomplete=\"off\" :min=\"1\" :max=\"1024\" />\n                    </el-form-item>\n\n                    <el-form-item label=\"全局最大连接数\" id=\"globalMaxConnections\">\n                        <el-input-number v-model=\"form.GlobalMaxConnections\" autocomplete=\"off\" :min=\"1\" :max=\"65535\" />\n                    </el-form-item> -->\n\n\n\n                </el-form>\n\n                <el-button type=\"primary\" round @click=\"RequestAlterConfigure\">保存修改</el-button>\n                <el-button type=\"info\" round @click=\"resetFormData\">撤销改动</el-button>\n                <el-button type=\"danger\" round @click=\"rebootProgram\" :disabled=\"disableRebootButton\">重启程序</el-button>\n                <el-button type=\"success\" round @click=\"backupConfigure\">备份配置</el-button>\n\n                <el-upload class=\"inline-block\" :action=\"getRestoreConfigureAPI()\" :show-file-list=\"false\"\n                    :headers=\"{ 'Authorization': GetToken() }\" :limit=\"1\" :on-success=\"callRestoreConfigureAPI\">\n                    <el-button round class='margin-change'>恢复配置</el-button>\n                </el-upload>\n\n\n\n\n\n\n\n            </div>\n\n\n        </el-scrollbar>\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { apiQueryBaseConfigure, apiAlterBaseConfigure, apiRebootProgram, apiGetConfigure, GetToken, apiGetRestoreConfigureConfirm } from '../apis/utils'\nimport { ElMessageBox } from 'element-plus'\n\nimport { MessageShow } from '../utils/ui'\nimport FileSaver from 'file-saver'\nimport { anyTypeAnnotation } from '@babel/types'\n\nconst formLabelWidth = '10vw'\nconsole.log(\"window.location.href \" + window.location.href)\nconsole.log(\"window.location.port \" + window.location.port)\nconsole.log(\"window.location.host \" + window.location.host)\nconsole.log(\"window.location \" + JSON.stringify(window.location))\nconst disableRebootButton = ref(false)\n\nconst getAdminURL = () => {\n    return window.location.protocol + \"//\" + window.location.hostname + \":\" + preFormData.value.AdminWebListenPort\n}\n\nconst getRestoreConfigureAPI = () => {\n    var baseURL = \"/\" //\n    if (process.env.NODE_ENV == \"development\") {\n        //开发环境下这个改为自己的接口地址\n        baseURL = 'http://192.168.31.70:16601/'\n    }\n    return baseURL + \"api/configure\"\n\n}\n\nconst callRestoreConfigureAPI = (res: any, uploadFile: any, uploadFiles: any) => {\n    //  console.log(\"response ret\"+res.ret +\" msg:\"+res.msg)\n    if (res.ret != 0) {\n        MessageShow(\"error\", res.msg)\n        return\n    }\n    console.log(\"restoreKey: \" + res.restoreConfigureKey)\n\n    let fileName  = res.file\n\n    ElMessageBox.confirm(\n        \"确认要将[\" + fileName + \"]替换为Lucky现有配置?替换完成后Lucky会自动重启\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            apiGetRestoreConfigureConfirm(res.restoreConfigureKey).then(res => {\n                if (res.ret != 0) {\n                    MessageShow(\"error\", \"将[\" + fileName + \"]替换为Lucky现有配置出错:\" + res.msg)\n                    return\n                }\n\n                MessageShow(\"success\", \"将[\" + fileName + \"]替换为Lucky现有配置成功\")\n\n                setTimeout(() => {\n                    window.location.href = window.location.protocol + \"//\" + window.location.hostname + \":\" + res.port;\n                }, 2000)\n\n            }).catch((error) => {\n                console.log(\"网络出错:\" + error)\n                MessageShow(\"error\", \"将[\" + res.file + \"]替换为Lucky现有配置出错:\" + error)\n            })\n\n        })\n        .catch(() => {\n\n        })\n}\n\nconst rawData = {\n    AdminWebListenPort: 1,\n    AdminWebListenTLS:false,\n    AdminWebListenHttpsPort:16626,\n    AdminAccount: \"\",\n    AdminPassword: \"\",\n    // ProxyCountLimit: 1,\n    // GlobalMaxConnections: 1,\n    AllowInternetaccess: false,\n    LogMaxSize:1024,\n}\n\nconst form = ref(rawData)\nconst preFormData = ref(rawData)\n\n\n\nconst backupConfigure = () => {\n    //var data = {res:1,dd:2,msg:\"ggggg\"}\n    //const blob = new Blob([JSON.stringify(data, null, 2)], {type: 'application/json'})\n\n    apiGetConfigure().then((res) => {\n        //const blob = new Blob([res], {type: 'application/json'})\n        //let fileName = new Date().format(\"yyyy-MM-dd hh:mm:ss\")\n        if (res.ret != 0) {\n            MessageShow(\"error\", \"获取配置出错\")\n            return\n        }\n        let blob = new Blob([res.configure], { type: 'application/json' })\n        FileSaver.saveAs(blob, \"lucky_\" + res.time + \".conf\")\n\n    }).catch((error) => {\n        console.log(\"获取配置出错:\" + error)\n        MessageShow(\"error\", \"获取配置出错\")\n    })\n\n}\n\n\n\nconst resetFormData = () => {\n    form.value.AdminWebListenPort = preFormData.value.AdminWebListenPort\n    form.value.AdminAccount = preFormData.value.AdminAccount\n    form.value.AdminPassword = preFormData.value.AdminPassword\n    //form.value.ProxyCountLimit = preFormData.value.ProxyCountLimit\n    //form.value.GlobalMaxConnections = preFormData.value.GlobalMaxConnections\n    form.value.AllowInternetaccess = preFormData.value.AllowInternetaccess\n}\n\nconst syncToPreFormData = (data: any) => {\n    preFormData.value.AdminWebListenPort = data.value.AdminWebListenPort\n    preFormData.value.AdminAccount = data.value.AdminAccount\n    preFormData.value.AdminPassword = data.value.AdminPassword\n   // preFormData.value.ProxyCountLimit = data.value.ProxyCountLimit\n   // preFormData.value.GlobalMaxConnections = data.value.GlobalMaxConnections\n    preFormData.value.AllowInternetaccess = data.value.AllowInternetaccess\n}\n\n\n\nconst rebootProgram = () => {\n    disableRebootButton.value = true;\n\n    ElMessageBox.confirm(\n        '确定要重启lucky?',\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '点错了',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            apiRebootProgram().then((res) => {\n                MessageShow(\"success\", \"重启成功,3秒后自动跳转到新登录连接\")\n\n                setTimeout(() => {\n                    window.location.href = getAdminURL()\n                }, 3000)\n\n                //console.log(\"getAdminURL \"+getAdminURL())\n            }).catch((error) => {\n                disableRebootButton.value = false;\n                console.log(\"重启操作出错:\" + error)\n                MessageShow(\"error\", \"重启操作出错\")\n            })\n        })\n        .catch(() => {\n            disableRebootButton.value = false;\n        })\n\n\n\n}\n\nconst queryConfigure = () => {\n    apiQueryBaseConfigure().then((res) => {\n        if (res.ret == 0) {\n            form.value = res.baseconfigure\n            syncToPreFormData(form)\n            return\n        }\n        MessageShow(\"error\", \"获取基本配置出错\")\n    }).catch((error) => {\n        console.log(\"获取转发规则列表出错:\" + error)\n        MessageShow(\"error\", \"获取基本配置出错\")\n    })\n}\n\nconst RequestAlterConfigure = () => {\n    apiAlterBaseConfigure(form.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"配置修改成功\")\n            syncToPreFormData(form)\n            return\n        }\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"配置修改失败,网络请求出错:\" + error)\n        MessageShow(\"error\", \"配置修改失败,网络请求出错\")\n    })\n}\n\n\n\n\nonMounted(() => {\n    queryConfigure()\n\n})\n\n</script>\n\n\n<style scoped>\n\n.AdminListenDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 456;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.SetForm {\n    margin-top: 15px;\n    margin-left: 20px;\n}\n\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n}\n\n#adminListen {\n    width: 360px;\n}\n\n#adminAccount {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#adminPassword {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#proxyCountLimit {\n    width: 360px;\n}\n\n\n#globalMaxConnections {\n    width: 360px;\n}\n\n.inline-block {\n    display: inline-block;\n    margin-right: 10px;\n}\n\n.margin-change {\n    display: inline-block;\n    margin-left: 10px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/Pmenu.vue",
    "content": "  <template>\n    <el-menu :default-active=\"activeIndex\" class=\"el-menu-demo menu\" mode=\"horizontal\" :ellipsis=\"false\"\n        @select=\"handleSelect\">\n\n        <el-sub-menu index=\"#menu\" v-if=\"global.currentPage.value != '#login' ? true : false\">\n            <template #title>\n                <el-icon>\n                    <Menu />\n                </el-icon>\n                <span>菜单</span>\n            </template>\n\n\n            <el-menu-item index=\"#status\">\n                <el-icon>\n                    <DataAnalysis />\n                </el-icon>\n                <template #title>总览</template>\n            </el-menu-item>\n            <el-menu-item index=\"#log\">\n                <el-icon>\n                    <document />\n                </el-icon>\n                <template #title>程序日志</template>\n            </el-menu-item>\n\n            <el-divider style=\"margin-top: 0px;margin-bottom: 0px;\" />\n\n            <el-sub-menu index=\"#relay\">\n                <template #title>\n                    <el-icon>\n                        <Position />\n                    </el-icon>\n                    <span>端口转发</span>\n                </template>\n\n                <!-- <el-menu-item index=\"#relayset\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>转发规则</template>\n                </el-menu-item> -->\n\n                <el-menu-item index=\"#portforward\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>转发规则列表</template>\n                </el-menu-item>\n\n                <el-menu-item index=\"#portforwardset\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>设置</template>\n                </el-menu-item>\n\n            </el-sub-menu>\n\n            <el-sub-menu index=\"#reverseproxy\">\n                <template #title>\n                    <el-icon>\n                        <Connection />\n                    </el-icon>\n                    <span>反向代理</span>\n                </template>\n\n                <el-menu-item index=\"#reverseproxylist\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>反向代理规则列表</template>\n                </el-menu-item>\n\n            </el-sub-menu>\n\n            <el-sub-menu index=\"#ddns\">\n                <template #title>\n                    <el-icon>\n                        <Promotion />\n                    </el-icon>\n                    <span>动态域名</span>\n                </template>\n\n                <el-menu-item index=\"#ddnstasklist\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>动态域名任务列表</template>\n                </el-menu-item>\n\n                <el-menu-item index=\"#ddnsset\">\n                    <el-icon>\n                        <Setting />\n                    </el-icon>\n                    <template #title>动态域名设置</template>\n                </el-menu-item>\n            </el-sub-menu>\n\n            <el-sub-menu index=\"#wol\">\n                <template #title>\n                    <el-icon>\n                        <Bell />\n                    </el-icon>\n                    <span>网络唤醒</span>\n                </template>\n\n\n                <el-menu-item index=\"#wol\">\n                    <el-icon>\n                        <Bell />\n                    </el-icon>\n                    <template #title>网络唤醒设备列表</template>\n                </el-menu-item>\n\n                <el-menu-item index=\"#wolset\">\n                    <el-icon>\n                        <setting />\n                    </el-icon>\n                    <template #title>网络唤醒设置</template>\n                </el-menu-item>\n\n                </el-sub-menu>\n\n\n\n\n            <el-divider style=\"margin-top: 0px;margin-bottom: 0px;\" />\n\n\n\n            <el-sub-menu index=\"#safe\">\n                <template #title>\n                    <el-icon>\n                        <Guide />\n                    </el-icon>\n                    <span>安全相关</span>\n                </template>\n\n                <el-sub-menu index=\"#safe\">\n                <template #title>\n                    <el-icon>\n                        <Guide />\n                    </el-icon>\n                    <span>IP过滤设置</span>\n                </template>\n\n                <el-menu-item index=\"#whitelistset\">\n                    <el-icon>\n                        <Setting />\n                    </el-icon>\n                    <template #title>白名单设置</template>\n                </el-menu-item>\n                <el-menu-item index=\"#whitelists\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>白名单列表</template>\n                </el-menu-item>\n\n\n                <el-menu-item index=\"#blacklists\">\n                    <el-icon>\n                        <List />\n                    </el-icon>\n                    <template #title>黑名单列表</template>\n                </el-menu-item>\n\n            </el-sub-menu>\n\n            <el-menu-item index=\"#ssl\">\n                <el-icon>\n                    <Lock />\n                </el-icon>\n                <template #title>SSL证书</template>\n            </el-menu-item>\n\n\n            </el-sub-menu>\n            \n\n\n\n\n\n            \n\n            <el-menu-item index=\"#set\">\n                <el-icon>\n                    <setting />\n                </el-icon>\n                <template #title>设置</template>\n            </el-menu-item>\n\n\n\n            <el-menu-item index=\"#about\">\n                <el-icon>\n                    <Pointer />\n                </el-icon>\n                <template #title>关于</template>\n            </el-menu-item>\n\n\n            <el-divider style=\"margin-top: 0px;margin-bottom: 0px;\" />\n\n            <el-menu-item index=\"#logout\">\n                <el-icon>\n                    <Close />\n                </el-icon>\n                <template #title>退出登录</template>\n            </el-menu-item>\n        </el-sub-menu>\n\n\n\n\n        <div class=\"flex-grow\" />\n\n        <el-menu-item index=\"#logo\">Lucky {{ version }}</el-menu-item>\n\n    </el-menu>\n</template>\n\n\n\n\n\n<script setup lang=\"ts\">\nimport { inject, ref, onMounted } from 'vue';\nimport { SetHash, apiGetVersion } from '../apis/utils.js'\nimport { ElMessageBox } from 'element-plus'\nconst global: any = inject(\"global\")\n\n\nconst activeIndex = ref('#set')\nconst version = ref(\"\")\n\nconsole.log(\"currentPage[menu]:\" + global.currentPage.value)\n\n\nconst queryVersion = () => {\n    apiGetVersion().then((res) => {\n        if (res.ret == 0) {\n            version.value = res.version\n            return\n        }\n\n    }).catch((error) => {\n\n    })\n}\n\n\nfunction handleOpen(key, keyPath) {\n    //console.log(key, keyPath);\n}\nfunction handleClose(key, keyPath) {\n    //console.log(key, keyPath);\n}\nfunction handleSelect(key, keyPath, item, routeResult) {\n    //console.log(\"选择菜单\")\n    //console.log(key, keyPath, item, routeResult);\n    // switchView(key);\n    switch (key) {\n        case \"#logout\":\n            ElMessageBox.confirm(\n                '确定要注销登录?',\n                'Warning',\n                {\n                    confirmButtonText: '确认',\n                    cancelButtonText: '点错了',\n                    type: 'warning',\n                }\n            )\n                .then(() => {\n                    SetHash(key)\n                })\n                .catch(() => {\n\n                })\n            break;\n        case \"#logo\":\n            //window.open(\"https://github.com/gdy666/lucky\", \"_blank\");\n            location.hash = \"#about\"\n            break;\n        default:\n            SetHash(key)\n            break;\n    }\n\n}\n\nonMounted(() => {\n\n    queryVersion()\n\n})\n\n</script>\n\n<style>\n.menu {\n    background-color: #d9ecff;\n}\n\n\n\n.flex-grow {\n    flex-grow: 1;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/PortForward.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <el-scrollbar height=\"100%\">\n            <div class=\"itemradius\" :style=\"{\n                borderRadius: 'base',\n            }\" v-for=\"rule in ruleList\">\n\n\n                <el-descriptions :column=\"4\" border>\n\n                    <el-descriptions-item label=\"规则名称\">\n\n                        <el-button  size=\"default\" v-show=\"true\">\n                            {{ rule.Name == '' ? '未命名规则' : rule.Name }}\n                        </el-button>\n\n                    </el-descriptions-item>\n                    <el-descriptions-item label=\"转发类型\">\n\n                        <el-button color=\"#0059b3\" size=\"small\" v-show=\"true\" v-for=\"t in rule.ForwardTypes\">{{ t }}\n                        </el-button>\n\n                    </el-descriptions-item>\n                    <el-descriptions-item label=\"操作\" :span=\"2\">\n                        <el-tooltip :content=\"rule.Enable == true ? '规则已启用' : '规则已禁用'\" placement=\"top\">\n                            <el-switch v-model=\"rule.Enable\" inline-prompt active-text=\"开\" inactive-text=\"关\"\n                                :before-change=\"ruleEnableClick.bind(this, rule.Enable, rule)\" size=\"large\" />\n                        </el-tooltip>\n                        &nbsp;&nbsp;\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"proxyLogsArrayToTooltipHtml(rule)\"></span>\n                            </template>\n                            <el-button type=\"info\" plain size=\"small\" v-show=\"true\" @click=\"showProxyLogs(rule.Key)\">\n                                日志\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-button type=\"primary\" @click=\"alterRule(rule)\">编辑</el-button>\n                        <el-button type=\"danger\" @click=\"deleteRule(rule)\">删除</el-button>\n\n                    </el-descriptions-item>\n\n\n\n                    <el-descriptions-item label=\"监听IP\">\n\n                        <el-button color=\"#D4D7DE\" size=\"small\" v-show=\"true\">\n                            {{ rule.ListenAddress == '' ? '所有IP' : rule.ListenAddress }}\n                        </el-button>\n                    </el-descriptions-item>\n                    <el-descriptions-item label=\"监听端口\">\n\n\n                        <el-button color=\"#D4D7DE\" size=\"small\" v-show=\"true\">\n                            {{ rule.ListenPorts }}\n                        </el-button>\n\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"其它参数\" :span=\"2\">\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" content=\"安全模式\" placement=\"bottom\">\n                            <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">{{\n                            rule.Options.SafeMode=='whitelist'?'白名单':'黑名单'\n                            }}</el-button>\n                        </el-tooltip>\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" content=\"单端口TCP最大连接数\" placement=\"bottom\">\n                            <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">{{\n                            rule.Options.SingleProxyMaxTCPConnections\n                            }}</el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" content=\"UDP包最大长度\" placement=\"bottom\">\n                            <el-button color=\"#626aef\" size=\"small\" v-show=\"ruleForwardTypeContainsUDP(rule)\">{{\n                            rule.Options.UDPPackageSize\n                            }}</el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\"\n                            :content=\"rule.Options.UDPProxyPerformanceMode == true ? 'UDP性能模式开启' : '性能模式关闭'\"\n                            placement=\"bottom\">\n                            <el-button color=\"#626aef\" size=\"small\" v-show=\"ruleForwardTypeContainsUDP(rule)\"\n                                :disabled=\"rule.Options.UDPProxyPerformanceMode == true ? false : true\">\n                                性能模式\n                            </el-button>\n                        </el-tooltip>\n\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\"\n                            :content=\"rule.Options.UDPShortMode == true ? 'UDP转发 shortMode启用' : 'UDP转发 shortMode禁用'\"\n                            placement=\"bottom\">\n                            <el-button color=\"#626aef\" size=\"small\" v-show=\"ruleForwardTypeContainsUDP(rule)\"\n                                :disabled=\"rule.Options.UDPShortMode == true ? false : true\">\n                                ShortMode\n                            </el-button>\n                        </el-tooltip>\n\n\n\n                    </el-descriptions-item>\n\n\n\n                    <el-descriptions-item label=\"目标地址\">\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"StrArrayListToBrHtml(rule.TargetAddressList)\"></span>\n                            </template>\n                            <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                {{\n                                (rule.TargetAddressList==undefined||rule.TargetAddressList==null)||rule.TargetAddressList.length\n                                <=0?'未设置':rule.TargetAddressList.length==1?rule.TargetAddressList[0]:rule.TargetAddressList[0]+'...'}}\n                                    </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n                    <el-descriptions-item label=\"目标端口\">\n                        <el-tooltip class=\"box-item oneLine\" effect=\"dark\" placement=\"bottom\"\n                            :content=\"rule.TargetPorts\">\n                            <el-button color=\"#D4D7DE\" size=\"small\">\n                                {{rule.TargetPorts }}\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n                    <el-descriptions-item label=\"统计\" :span=\"2\">\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :content=\"'已接收 ' + GetReceiveTraffic(rule)\"\n                            placement=\"bottom\">\n                            <el-button color=\"#F2F6FC\" size=\"small\">\n                                <el-icon>\n                                    <Download />\n                                </el-icon> {{ GetReceiveTraffic(rule) }}\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :content=\"'已发送 ' + GetSendTraffic(rule)\"\n                            placement=\"bottom\">\n                            <el-button color=\"#F2F6FC\" size=\"small\">\n                                <el-icon>\n                                    <Upload />\n                                </el-icon> {{ GetSendTraffic(rule) }}\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\"\n                            :content=\"'当前TCP连接数 ' + GetTCPActivityConnections(rule)\" placement=\"bottom\">\n                            <el-button v-if=\"isTCPRule(rule)\" color=\"#F2F6FC\" size=\"small\">\n                                TCP&nbsp; &nbsp;\n                                <el-icon>\n                                    <Connection />\n                                </el-icon> {{ GetTCPActivityConnections(rule) }}\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\"\n                            :content=\"'UDP转发目标地址数据协程数 ' + GetUDPActivityConnections(rule)\" placement=\"bottom\">\n                            <el-button v-if=\"isUDPRule(rule)\" color=\"#F2F6FC\" size=\"small\">\n                                UDP&nbsp; &nbsp;\n                                <el-icon>\n                                    <Connection />\n                                </el-icon> {{ GetUDPActivityConnections(rule) }}\n                            </el-button>\n                        </el-tooltip>\n\n                    </el-descriptions-item>\n\n                </el-descriptions>\n\n            </div>\n        </el-scrollbar>\n\n        <el-affix position=\"bottom\" :offset=\"30\" class=\"affix-container\">\n            <el-button type=\"primary\" @click=\"addRule\">添加转发规则 <el-icon>\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n\n        <!--添加/修改规则对话框-->\n        <el-dialog v-model=\"dialogFormVisible\" :title=\"dialogTitle\" draggable :show-close=\"false\"\n            :close-on-click-modal=\"false\" width=\"650px\">\n            <el-form :model=\"formData\">\n                <el-form-item label=\"名称\" :label-width=\"formLabelWidth\">\n                    <el-input v-model=\"formData.Name\" placeholder=\"转发规则名称，可留空\" autocomplete=\"off\" />\n                </el-form-item>\n                <el-form-item label=\"转发类型\" :label-width=\"formLabelWidth\">\n                    <el-checkbox v-model=\"checkAllForwardType\" :indeterminate=\"isIndeterminate\"\n                        @change=\"handleCheckAllChange\">全选 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</el-checkbox>\n                    <br />\n                    <el-checkbox-group v-model=\"dialogForwardTypes\" @change=\"handleCheckedForwardTypesChange\">\n                        <el-checkbox v-for=\"t in forwardTypes\" :key=\"t\" :label=\"t\">{{\n                        t\n                        }}</el-checkbox>\n                    </el-checkbox-group>\n                </el-form-item>\n\n                <el-form-item label=\"安全模式\" :label-width=\"formLabelWidth\">\n                    <el-radio-group v-model=\"formData.Options.SafeMode\" class=\"ml-4\">\n                        <el-radio label=\"blacklist\">黑名单模式</el-radio>\n                        <el-radio label=\"whitelist\">白名单模式</el-radio>\n                    </el-radio-group>\n                </el-form-item>\n\n\n                <el-form-item label=\"监听地址\" :label-width=\"formLabelWidth\">\n                    <el-input v-model=\"formData.ListenAddress\" autocomplete=\"off\"\n                        placeholder=\"留空表示监听任意地址,没特殊需求多数情况下留空即可\" />\n                </el-form-item>\n                <el-form-item label=\"监听端口\" :label-width=\"formLabelWidth\">\n                    <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                        <template #content>\n                            多个端口用,号分割,端口范围用-表示,比如 80,22,2000-20010<br />\n                            表示监听80端口,22端口,20000-20010范围内的11个端口<br />\n                        </template>\n\n                        <el-input v-model=\"formData.ListenPorts\" autocomplete=\"off\"\n                            placeholder=\"多个端口用,号分割,端口范围用-表示,比如 80,22,20000-20010\" />\n                    </el-tooltip>\n                </el-form-item>\n                <el-form-item label=\"目标地址\" :label-width=\"formLabelWidth\">\n\n                    <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                        <template #content>\n                            没特殊需要填一行即可<br />\n                            多行表示启用均衡负载,每次选择不同的目标地址<br />\n                            可填写IP或者域名<br />\n                        </template>\n\n                        <el-input v-model=\"formTargetAddressListArea\" autosize placeholder=\"一行填一个地址IP\" type=\"textarea\">\n                        </el-input>\n                    </el-tooltip>\n\n\n                </el-form-item>\n                <el-form-item label=\"目标端口\" :label-width=\"formLabelWidth\">\n                    <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                        <template #content>\n                            多个端口用,号分割,端口范围用-表示,比如 80,22,2000-20010<br />\n                            表示监听80端口,22端口,20000-20010范围内的11个端口<br />\n                        </template>\n\n                        <el-input v-model=\"formData.TargetPorts\" autocomplete=\"off\" placeholder=\"监听端口的数量和目标端口的数量要一致\" />\n                    </el-tooltip>\n                </el-form-item>\n\n                <div v-show=\"tcpOptionsShow\" class=\"dialogRadius\">\n\n                    <el-form-item label=\"单端口TCP最大连接数\" :label-width=\"formLabelWidth\">\n                        <el-input-number v-model=\"formData.Options.SingleProxyMaxTCPConnections\" :min=\"1\"\n                            :max=\"65535\" />\n                    </el-form-item>\n\n                </div>\n\n                <div v-show=\"udpOptionsShow\" class=\"dialogRadius\">\n\n                    \n                    <el-form-item label=\"单端口UDP读取目标地址数据协程数限制\" label-width=\"auto\" v-show=\"udpOptionsShow\">\n                        <el-input-number v-model=\"formData.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount\" :min=\"0\" :max=\"4096\" />\n                        &nbsp;&nbsp;&nbsp;\n                    </el-form-item>\n\n\n                    <el-form-item label=\"UDP最大包长度\" :label-width=\"formLabelWidth\" v-show=\"udpOptionsShow\">\n                        <el-input-number v-model=\"formData.Options.UDPPackageSize\" :min=\"1\" :max=\"99999\" />\n                        &nbsp;&nbsp;&nbsp;\n                    </el-form-item>\n\n                    <el-form-item label=\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\">\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                通过增加协程数至与CPU核数一致提高udp小包转发性能<br />\n                                一般情况不要开启<br />\n                            </template>\n                            <el-checkbox label=\"UDP转发性能模式\" v-model=\"formData.Options.UDPProxyPerformanceMode\" />\n                        </el-tooltip>\n                    </el-form-item>\n\n\n                    <el-form-item label=\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\">\n                        <el-tooltip class=\"box-item\" effect=\"dark\" content=\"DNS转发需要打开这个开关以节约资源,其它场景自行测试\">\n                            <el-checkbox label=\"UDP short mode\" v-model=\"formData.Options.UDPShortMode\" />\n                        </el-tooltip>\n                    </el-form-item>\n                </div>\n\n\n\n\n\n\n\n                <el-form-item label=\"日志输出级别\" :label-width=\"formLabelWidth\">\n                    <el-select v-model=\"formData.LogLevel\" class=\"m-2\" placeholder=\"请选择\">\n                        <el-option v-for=\"item in LogLevelList\" :key=\"item.value\" :label=\"item.label\"\n                            :value=\"item.value\" />\n                    </el-select>\n                </el-form-item>\n\n                <el-form-item label=\"日志输出到终端\" :label-width=\"formLabelWidth\">\n                    <el-switch v-model=\"formData.LogOutputToConsole\" inline-prompt width=\"50px\" active-text=\"开启\"\n                        inactive-text=\"关闭\" />\n                </el-form-item>\n\n                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                    <template #content>\n                        范围(0-102400),0表示不保存日志<br />\n                    </template>\n                    <el-form-item label=\"访问日志记录最大条数\" :label-width=\"formLabelWidth\" :min=\"0\" :max=\"102400\">\n                        <el-input-number v-model=\"formData.AccessLogMaxNum\" autocomplete=\"off\" />\n                    </el-form-item>\n                </el-tooltip>\n\n                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                    <template #content>\n                        范围(1-64)<br />\n                    </template>\n                    <el-form-item label=\"前端列表显示最新日志最大条数\" :label-width=\"formLabelWidth\" :min=\"1\" :max=\"64\">\n                        <el-input-number v-model=\"formData.WebListShowLastLogMaxCount\" autocomplete=\"off\" />\n                    </el-form-item>\n                </el-tooltip>\n\n\n\n\n            </el-form>\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"dialogFormVisible = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"addOrAlterRuleConfirm\">{{ confirmText }}</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n        <el-dialog v-if=\"portforwardLogsVisible\" v-model=\"portforwardLogsVisible\" :close-on-click-modal=\"false\"\n            width=\"1100px\">\n\n            <div>\n\n                <el-scrollbar max-height=\"95vh\" class=\"portforwardLogs\" element-loading-background=\"transparent\">\n                    {{portforwardLogsDialogLogsContentView}}\n\n                </el-scrollbar>\n\n\n                <el-pagination :page-size=portforwardLogsPageSize :page-sizes=\"[10,25,50, 100, 200, 300,400,500]\"\n                    :small=\"false\" :disabled=\"false\" :background=\"false\"\n                    layout=\"total, sizes, prev, pager, next, jumper\" :current-page=\"portforwardLogsDialogCurrentPage\"\n                    :total=portforwardLogsTotal @size-change=\"handlePortforwardLogsSizeChange\"\n                    @current-change=\"handlePortforwardLogsCurrentChange\" @prev-click=\"handlePortforwardLogsPreClick\"\n                    @next-click=\"handlePortforwardLogsNextClick\" />\n            </div>\n\n        </el-dialog>\n\n    </div>\n</template>\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { CheckboxValueType, ElNotification } from 'element-plus'\nimport { isIP, StringToArrayList, bytesToSize, StrArrayListToBrHtml, StrArrayListToArea, LogLevelList } from '../utils/utils'\nimport { ShowMessageBox, MessageShow, Notification } from '../utils/ui'\nimport {\n    apiGetPortForwardRuleList,\n    apiAddPortForwardRule,\n    apiDeletePortForwardRule,\n    apiAlterPortForwardRule,\n    apiPortForwardRuleEnable,\n    apiPortforwardRuleLogs\n} from '../apis/utils'\nimport { ElMessageBox } from 'element-plus'\n\n\nconst portforwardLogsPageSize = ref(50)\nconst portforwardLogsTotal = ref(0)\nconst portforwardLogsDialogData = ref([{\n    ProxyKey: \"\",\n    ClientIP: \"\",\n    LogContent: \"\",\n    LogTime: \"\"\n}])\nconst portforwardLogsDialogKey = ref(\"\")\nconst portforwardLogsDialogCurrentPage = ref(1)\nconst portforwardLogsVisible = ref(false)\nconst portforwardLogsDialogLogsContentView = ref(\"\")\n\n\n\nconst checkAllForwardType = ref(false)\nconst isIndeterminate = ref(true)\nconst dialogForwardTypes = ref([''])\nconst formTargetAddressListArea = ref('')\nconst udpOptionsShow = ref(false)\nconst tcpOptionsShow = ref(false)\n\n\n\nconst forwardTypes = ['tcp4', 'tcp6', 'udp4', 'udp6']\nconst handleCheckAllChange = (val: CheckboxValueType) => {\n    // checkedProxyTypes.value = val ? proxyTypes : []\n    formData.value.ForwardTypes = val ? ['tcp', 'udp'] : []\n    dialogForwardTypes.value = val ? ['tcp4', 'tcp6', 'udp4', 'udp6'] : []\n    isIndeterminate.value = false\n    flushUdpOptionsView()\n    flushTcpOptionsView()\n    // console.log(\"proxyType 全选: \"+val)\n    // console.log(\"proxyType: \"+form.value.proxyType)\n}\n\nconst handleCheckedForwardTypesChange = (value: CheckboxValueType[]) => {\n    const checkedCount = value.length\n    checkAllForwardType.value = checkedCount === forwardTypes.length\n    isIndeterminate.value = checkedCount > 0 && checkedCount < forwardTypes.length\n    formData.value.ForwardTypes = convertCheckedDataToForwardType(value)\n\n    // console.log(formData.value.ForwardTypes)\n    flushUdpOptionsView()\n    flushTcpOptionsView()\n}\n\nconst GetReceiveTraffic = (rule) => {\n    let ruleTrafficCount = 0\n    for (let i in rule.ProxyList) {\n        ruleTrafficCount += rule.ProxyList[i].TrafficIn\n    }\n    return bytesToSize(ruleTrafficCount)\n}\n\nconst GetSendTraffic = (rule) => {\n    let ruleTrafficCount = 0\n    for (let i in rule.ProxyList) {\n        ruleTrafficCount += rule.ProxyList[i].TrafficOut\n    }\n    return bytesToSize(ruleTrafficCount)\n}\n\nconst isTCPRule = (rule) => {\n    for (let i in rule.ForwardTypes) {\n\n        if (rule.ForwardTypes[i].indexOf(\"tcp\") == 0) {\n            return true\n        }\n    }\n    return false\n}\n\nconst isUDPRule = (rule) => {\n    for (let i in rule.ForwardTypes) {\n        if (rule.ForwardTypes[i].indexOf(\"udp\") == 0) {\n            return true\n        }\n    }\n    return false\n}\n\nconst GetTCPActivityConnections = (rule) => {\n    let count = 0\n    for (let i in rule.ProxyList) {\n        if (rule.ProxyList[i].Proxy.indexOf(\"tcp\") != 0) {\n            continue\n        }\n        count += rule.ProxyList[i].CurrentConnections\n    }\n    return count\n}\n\nconst GetUDPActivityConnections = (rule) => {\n    let count = 0\n    for (let i in rule.ProxyList) {\n        if (rule.ProxyList[i].Proxy.indexOf(\"udp\") != 0) {\n            continue\n        }\n        count += rule.ProxyList[i].CurrentConnections\n    }\n    return count\n}\n\nconst convertForwardTypeToCheckedData = (list: string[]) => {\n    var res = ['']\n    res.splice(0, 1)\n    for (let t of list) {\n        if (t == \"tcp\") {\n            res.push('tcp4')\n            res.push('tcp6')\n            continue\n        }\n        if (t == \"udp\") {\n            res.push('udp4')\n            res.push('udp6')\n            continue\n        }\n\n        res.push(t + '')\n    }\n    return res\n}\n\nconst ruleForwardTypeContainsUDP = (rule) => {\n    for (let i in rule.ForwardTypes) {\n        if (rule.ForwardTypes[i].indexOf(\"udp\") != -1) {\n            return true\n        }\n    }\n    return false\n}\n\nconst alterRule = (rule) => {\n    console.log(\"alterRule \" + rule)\n    formOptionType.value = \"alter\"\n\n\n    formData.value = {\n        Name: rule.Name,\n        Key: rule.Key,\n        ListenAddress: rule.ListenAddress,\n        ListenPorts: rule.ListenPorts,\n        TargetAddressList: rule.TargetAddressList,\n        TargetPorts: rule.TargetPorts,\n        ForwardTypes: rule.ForwardTypes,\n        Enable: rule.Enable,\n        LogLevel: rule.LogLevel,\n        LogOutputToConsole: rule.LogOutputToConsole,\n        AccessLogMaxNum: rule.AccessLogMaxNum,\n        WebListShowLastLogMaxCount: rule.WebListShowLastLogMaxCount,\n        Options: {\n            SingleProxyMaxUDPReadTargetDatagoroutineCount: rule.Options.SingleProxyMaxUDPReadTargetDatagoroutineCount,\n            SingleProxyMaxTCPConnections: rule.Options.SingleProxyMaxTCPConnections,\n            UDPPackageSize: rule.Options.UDPPackageSize,\n            UDPShortMode: rule.Options.UDPShortMode == true ? true : false,\n            UDPProxyPerformanceMode: rule.Options.UDPProxyPerformanceMode == true ? true : false,\n            SafeMode: rule.Options.SafeMode,\n        }\n    }\n\n    dialogForwardTypes.value = convertForwardTypeToCheckedData(rule.ForwardTypes)\n    formTargetAddressListArea.value = StrArrayListToArea(rule.TargetAddressList)\n\n\n\n\n    // dialogRelayType.value = getRelayTypeList(form.value.RelayType)\n    flushUdpOptionsView()\n    flushTcpOptionsView()\n\n    dialogTitle.value = \"编辑转发规则\"\n    dialogFormVisible.value = true;\n    confirmText.value = \"确认修改\"\n}\n\n\nconst proxyLogsArrayToTooltipHtml = (rule) => {\n    var res = \"\"\n    if (rule.LastLogs == undefined || rule.LastLogs.length == 0) {\n        res = \"暂无日志\"\n        return res\n    }\n\n    for (var i in rule.LastLogs) {\n        let time = rule.LastLogs[i].LogTime\n        let content = rule.LastLogs[i].LogContent\n        res += time + \"&nbsp;&nbsp;&nbsp;\" + content + '<br />'\n    }\n\n\n    if (res == \"\") {\n        res = \"暂无日志\"\n    }\n\n    return res\n}\n\n\nconst showProxyLogs = (key: string) => {\n    portforwardLogsVisible.value = true\n\n    portforwardLogsDialogCurrentPage.value = 1\n    portforwardLogsTotal.value = 0\n    portforwardLogsPageSize.value = 25\n    portforwardLogsDialogKey.value = key\n\n\n    apiPortforwardRuleLogs(key, portforwardLogsPageSize.value, portforwardLogsDialogCurrentPage.value).then((res) => {\n        //console.log(res.data)\n        if (res.ret == 0) {\n            portforwardLogsPageSize.value = res.pageSize\n            portforwardLogsTotal.value = res.total\n            portforwardLogsDialogData.value = res.logs\n            flushPortforwardLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n}\n\nconst handlePortforwardLogsPreClick = (page: number) => {\n    // console.log(page)\n    portforwardLogsDialogCurrentPage.value = page - 1\n\n}\n\n\nconst handlePortforwardLogsNextClick = (page: number) => {\n    //console.log(page)\n    portforwardLogsDialogCurrentPage.value = page + 1\n\n}\n\n\n\nconst handlePortforwardLogsSizeChange = (pageSize: number) => {\n    portforwardLogsPageSize.value = pageSize\n    portforwardLogsDialogCurrentPage.value = 1\n\n    apiPortforwardRuleLogs(portforwardLogsDialogKey.value, portforwardLogsPageSize.value, portforwardLogsDialogCurrentPage.value).then((res) => {\n        if (res.ret == 0) {\n            portforwardLogsPageSize.value = res.pageSize\n            portforwardLogsTotal.value = res.total\n            portforwardLogsDialogData.value = res.logs\n            flushPortforwardLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n\n}\n\n\nconst handlePortforwardLogsCurrentChange = (page: number) => {\n    portforwardLogsDialogCurrentPage.value = page\n\n    apiPortforwardRuleLogs(portforwardLogsDialogKey.value, portforwardLogsPageSize.value, portforwardLogsDialogCurrentPage.value).then((res) => {\n        if (res.ret == 0) {\n            portforwardLogsPageSize.value = res.pageSize\n            portforwardLogsTotal.value = res.total\n            portforwardLogsDialogData.value = res.logs\n            flushPortforwardLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n}\n\n\nconst flushPortforwardLogsDialogLogsContentView = () => {\n    portforwardLogsDialogLogsContentView.value = \"\"\n    for (let index in portforwardLogsDialogData.value) {\n        let log = portforwardLogsDialogData.value[index]\n        // if (index!=\"0\"){\n        //     portforwardLogsDialogLogsContentView.value += \"\\n\"\n        // }\n        portforwardLogsDialogLogsContentView.value += log.LogTime + \"\\t\" + log.LogContent + \"\\n\"\n    }\n\n}\n\nconst convertCheckedDataToForwardType = (list: CheckboxValueType[]) => {\n    var res = ['']\n    res.splice(0, 1)\n\n    let hasTcp4 = false\n    let hasTcp6 = false\n    let hasUdp4 = false\n    let hasUdp6 = false\n    let hasUdp = false\n    let hasTcp = false\n    for (let t of list) {\n        switch (t) {\n            case 'tcp4':\n                hasTcp4 = true;\n                break;\n            case 'tcp6':\n                hasTcp6 = true;\n                break;\n            case \"udp4\":\n                hasUdp4 = true;\n                break;\n            case \"udp6\":\n                hasUdp6 = true;\n                break;\n            default:\n        }\n    }\n\n    if (hasTcp4 && hasTcp6) {\n        hasTcp = true\n    }\n\n    if (hasUdp4 && hasUdp6) {\n        hasUdp = true\n    }\n\n    if (hasTcp) {\n        res.push(\"tcp\")\n    } else {\n        if (hasTcp4) {\n            res.push(\"tcp4\")\n        } else if (hasTcp6) {\n            res.push(\"tcp6\")\n        }\n    }\n\n    if (hasUdp) {\n        res.push(\"udp\")\n    } else {\n        if (hasUdp4) {\n            res.push(\"udp4\")\n        } else if (hasUdp6) {\n            res.push(\"udp6\")\n        }\n    }\n\n    return res\n}\n\nvar flushUdpOptionsView = () => {\n\n    for (let t of formData.value.ForwardTypes) {\n        if (t == \"udp4\" || t == \"udp6\" || t == 'udp') {\n            udpOptionsShow.value = true\n            return\n        }\n    }\n    udpOptionsShow.value = false;\n}\n\nvar flushTcpOptionsView = () => {\n    for (let t of formData.value.ForwardTypes) {\n        if (t == \"tcp4\" || t == \"tcp6\" || t == 'tcp') {\n            tcpOptionsShow.value = true\n            return\n        }\n    }\n    tcpOptionsShow.value = false\n}\n\n\nvar ruleList = ref([{\n    Name: \"\",\n    Key: \"\",\n    ForwardTypes: [''],\n    ListenAddress: \"\",\n    ListenPorts: \"\",\n    TargetAddressList: [''],\n    TargetPorts: \"\",\n    Enable: false,\n    LogLevel: 1,\n    LogOutputToConsole: false,\n    AccessLogMaxNum: 1024,\n    WebListShowLastLogMaxCount: 20,\n    Options: {\n        UDPPackageSize: 1500,\n        SingleProxyMaxUDPReadTargetDatagoroutineCount: 64,\n        SingleProxyMaxTCPConnections: 128,\n        UDPProxyPerformanceMode: true,\n        UDPShortMode: true,\n        SafeMode: \"blacklist\",\n    },\n\n}]);\nruleList.value.splice(0, 1)\nconst dialogFormVisible = ref(false)\nconst formLabelWidth = '160px'\n\nconst formData = ref({\n    Name: \"\",\n    Key: \"\",\n    ListenAddress: '',\n    ListenPorts: '',\n    TargetAddressList: [''],\n    TargetPorts: '',\n    ForwardTypes: [''],\n    Enable: true,\n    LogLevel: 4,\n    LogOutputToConsole: false,\n    AccessLogMaxNum: 1000,\n    WebListShowLastLogMaxCount: 20,\n    Options: {\n        SingleProxyMaxTCPConnections: 128,\n        SingleProxyMaxUDPReadTargetDatagoroutineCount: 32,\n        UDPPackageSize: 1500,\n        UDPShortMode: true,\n        UDPProxyPerformanceMode: true,\n        SafeMode: \"blacklist\",\n    }\n})\nconst formOptionType = ref(\"\")\nconst dialogTitle = ref(\"\")\nconst confirmText = ref(\"\")\n\nconst addRule = () => {\n    formOptionType.value = \"add\"\n    formData.value = {\n        Name: \"\",\n        Key: \"\",\n        ListenAddress: '',\n        ListenPorts: '',\n        TargetAddressList: [''],\n        TargetPorts: '',\n        ForwardTypes: ['tcp6'],\n        Enable: true,\n        LogLevel: 4,\n        LogOutputToConsole: false,\n        AccessLogMaxNum: 1024,\n        WebListShowLastLogMaxCount: 20,\n        Options: {\n            SingleProxyMaxTCPConnections: 256,\n            SingleProxyMaxUDPReadTargetDatagoroutineCount: 32,\n            UDPPackageSize: 1500,\n            UDPShortMode: false,\n            UDPProxyPerformanceMode: false,\n            SafeMode: \"blacklist\",\n        }\n    }\n    dialogTitle.value = \"添加转发规则\"\n    dialogFormVisible.value = true;\n    confirmText.value = \"添加\"\n    dialogForwardTypes.value = ['tcp6']\n    flushUdpOptionsView()\n    flushTcpOptionsView()\n}\n\nconst addOrAlterRuleConfirm = () => {\n\n    formData.value.TargetAddressList = StringToArrayList(formTargetAddressListArea.value)\n\n    if (!checkFormData()) {\n        return\n    }\n\n    switch (formOptionType.value) {\n        case \"add\":\n            console.log(JSON.stringify(formData.value))\n            apiAddPortForwardRule(formData.value).then((res) => {\n                if (res.ret == 0) {\n                    dialogFormVisible.value = false;\n                    MessageShow(\"success\", \"规则添加成功\")\n                    console.log(\"刷新规则列表\")\n                    queryRuleList();\n\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"添加规则失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"添加规则失败,网络请求出错\")\n            })\n\n            break;\n        case \"alter\":\n            apiAlterPortForwardRule(formData.value).then((res) => {\n                if (res.ret == 0) {\n                    dialogFormVisible.value = false;\n                    MessageShow(\"success\", \"规则修改成功\")\n                    queryRuleList();\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"规则修改失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"规则修改失败,网络请求出错\")\n            })\n            break;\n        default:\n    }\n}\n\nconst ruleEnableClick = (enable, rule) => {\n    const enableText = enable == false ? \"启用\" : \"禁用\";\n\n    const ruleName = \"[\" + rule.Name + \"]\"\n    const configure = \"[\" + rule.Mainconfigure + \"]\"\n\n    return new Promise((resolve, reject) => {\n\n        ElMessageBox.confirm(\n            '确认要' + enableText + \"规则 \" + ruleName + \" \" + configure + \"?\",\n            'Warning',\n            {\n                confirmButtonText: '确认',\n                cancelButtonText: '取消',\n                type: 'warning',\n            }\n        )\n            .then(() => {\n                apiPortForwardRuleEnable(rule.Key, !enable).then(res => {\n                    if (res.ret == 0) {\n                        resolve(true)\n                        MessageShow(\"success\", \"规则 \" + ruleName + \" \" + configure + enableText + \"成功\")\n                        return\n                    }\n                    resolve(false)\n                    MessageShow(\"error\", \"规则 \" + ruleName + \" \" + configure + enableText + \"失败\")\n\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                }).catch((error) => {\n                    resolve(false)\n                    console.log(\"规则 \" + ruleName + \" \" + configure + enableText + \"失败\" + \":请求出错\" + error)\n                    MessageShow(\"error\", \"规则 \" + ruleName + \" \" + configure + enableText + \"失败\" + \":请求出错\")\n                })\n\n            })\n            .catch(() => {\n                resolve(false)\n            })\n\n\n\n    })\n}\n\nconst deleteRule = (rule) => {\n\n    const ruleName = \"[\" + rule.Name + \"]\"\n    const ruleText = ruleName\n\n    ElMessageBox.confirm(\n        '确认要删除转发规则 ' + ruleText + \"?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            console.log(\"确认删除 \" + ruleText)\n\n            apiDeletePortForwardRule(rule.Key).then((res) => {\n                if (res.ret == 0) {\n                    //console.log(\"删除成功\")\n                    queryRuleList();\n                    MessageShow(\"success\", \"删除成功\")\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n\n                } else {\n                    MessageShow(\"error\", res.msg)\n                }\n\n            }).catch((error) => {\n                console.log(\"删除规则失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"删除规则失败,网络请求出错\")\n            })\n        })\n        .catch(() => {\n\n        })\n}\n\nconst checkFormData = () => {\n    if (formData.value.ForwardTypes.length <= 0) {\n        ShowMessageBox(\"转发类型至少选择一类\")\n        return false\n    }\n\n    if (formData.value.ListenAddress.length != 0 && !isIP(formData.value.ListenAddress)) {\n        ShowMessageBox(\"监听地址IP[\" + formData.value.ListenAddress + \"]格式有误\")\n        return false\n    }\n\n    if (formData.value.ListenPorts.length == 0) {\n        ShowMessageBox(\"监听端口不能为空,端口和端口或者端口和端口范围之间用英文状态逗号,分开\"\n            + '\\n'\n            + '例如 [22,80,443,2000-2010]')\n        return false\n    }\n\n    if (formData.value.TargetAddressList.length == 0) {\n        ShowMessageBox(\"目标地址不能为空\")\n        return false\n    }\n\n    if (formData.value.TargetPorts.length == 0) {\n        ShowMessageBox(\"目标端口不能为空\")\n        return false\n    }\n\n    if (formData.value.WebListShowLastLogMaxCount > 64 || formData.value.WebListShowLastLogMaxCount <= 0) {\n        ShowMessageBox(\"前端列表显示最新日志最大条数 范围1-64\")\n        return false\n    }\n\n    return true\n}\n\nconst queryRuleList = () => {\n    apiGetPortForwardRuleList().then((res) => {\n        //console.log(res.data)\n        ruleList.value = res.list\n    }).catch((error) => {\n        console.log(\"获取转发规则列表出错:\" + error)\n        MessageShow(\"error\", \"获取转发规则列表出错\")\n    })\n}\n\nvar timerID: any\n\nonMounted(() => {\n    queryRuleList();\n\n    timerID = setInterval(() => {\n        queryRuleList();\n    }, 2000);\n\n})\n\n</script>\n\n\n<style scoped>\n.itemradius {\n\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin-left: 3px;\n    margin-top: 3px;\n    margin-right: 3px;\n    margin-bottom: 5px;\n    min-width: 1200px;\n}\n\n.portforwardLogs {\n    background-color: black;\n    height: fit-content;\n    width: 100%;\n    color: white;\n    text-align: left;\n    padding-left: 3px;\n\n    border: 10px;\n    overflow-y: auto;\n    overflow-x: auto;\n    white-space: pre-wrap;\n\n\n}\n\n\n.dialogRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 456;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/PortForwardSet.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\" v-loading=\"logLoading\" element-loading-background=\"transparent\">\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n\n                <el-form :model=\"form\" class=\"SetForm\" label-width=\"auto\">\n\n                    <!-- <el-tooltip content=\"如果不需要DDNS动态域名服务请不要打开这个开关\" placement=\"top\">\n\n                        <el-form-item label=\"动态域名服务开关\" id=\"adminListen\">\n                            <el-switch v-model=\"form.Enable\" class=\"mb-1\" inline-prompt\n                                style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                active-text=\"开启\" inactive-text=\"停用\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"多数嵌入式设备启用这个开关会导致https访问失败\" placement=\"top\">\n\n                        <el-form-item label=\"Http(s) 客户端 安全证书验证\" id=\"adminListen\">\n                            <el-switch v-model=\"form.HttpClientSecureVerify\" class=\"mb-1\" inline-prompt\n                                style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                active-text=\"启用\" inactive-text=\"禁用\" />\n                        </el-form-item> -->\n                    <!-- </el-tooltip> -->\n\n                    <div class=\"AdminListenDivRadius\">\n\n\n                    \n\n                    <el-tooltip content=\"同一端口tcp和udp类型各算一个,(0-1024)\" placement=\"top\">\n                        <el-form-item label=\"全局端口转发最大数量\" label-width=\"auto\" min=\"0\" max=\"1024\">\n                            <el-input-number v-model=\"form.PortForwardsLimit\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"端口转发全局TCP最大并发连接数,(0-4096)\" placement=\"top\">\n                        <el-form-item label=\"端口转发全局TCP最大并发连接数\" label-width=\"auto\" min=\"0\" max=\"4096\">\n                            <el-input-number v-model=\"form.TCPPortforwardMaxConnections\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n                    <el-tooltip content=\"端口转发全局UDP读取目标地址数据协程数限制,(0-4096)\" placement=\"top\">\n                        <el-form-item label=\"端口转发全局UDP读取目标地址数据协程数限制\" label-width=\"auto\" min=\"0\" max=\"4096\">\n                            <el-input-number v-model=\"form.UDPReadTargetDataMaxgoroutineCount\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip>\n\n\n                </div>\n\n                    <!-- <el-tooltip content=\"DDNS任务每次执行的时间间隔,最小30秒,最长3600秒\" placement=\"top\">\n                        <el-form-item label=\"时间间隔(秒)\" label-width=\"auto\" :min=\"30\" :max=\"3600\">\n                            <el-input-number v-model=\"form.Intervals\" autocomplete=\"off\" />\n                        </el-form-item>\n                    </el-tooltip> -->\n\n\n                </el-form>\n\n                <el-button type=\"primary\" round @click=\"RequestAlterPortForwardConfigure\">保存修改</el-button>\n\n\n            </div>\n\n\n        </el-scrollbar>\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { apiQueryPortForwardConfigure, apiAlterPortForwardConfigure } from '../apis/utils'\n\n\nimport { MessageShow } from '../utils/ui'\n\n\nconst logLoading = ref(true)\n\n\nconst rawData = {\n    // Enable: false,\n    // HttpClientSecureVerify: false,\n    // Intervals: 0,\n    PortForwardsLimit: 0,\n    TCPPortforwardMaxConnections:0,\n    UDPReadTargetDataMaxgoroutineCount:0,\n}\n\nconst form = ref(rawData)\nconst preFormData = ref(rawData)\n\nconst resetFormData = () => {\n    form.value.PortForwardsLimit = preFormData.value.PortForwardsLimit\n    form.value.TCPPortforwardMaxConnections = preFormData.value.TCPPortforwardMaxConnections\n}\n\nconst syncToPreFormData = (data: any) => {\n    preFormData.value.PortForwardsLimit = data.value.PortForwardsLimit\n    preFormData.value.TCPPortforwardMaxConnections = data.TCPPortforwardMaxConnections\n}\n\n\n\n\n\n\n\nconst queryPortForwardsConfigure = () => {\n    apiQueryPortForwardConfigure().then((res) => {\n\n        if (res.ret == 0) {\n            logLoading.value = false\n            form.value = res.configure\n            syncToPreFormData(form)\n            return\n        }\n        MessageShow(\"error\", \"获取端口转发配置出错\")\n    }).catch((error) => {\n        MessageShow(\"error\", \"获取端口转发配置出错\")\n    })\n}\n\nconst RequestAlterPortForwardConfigure = () => {\n    apiAlterPortForwardConfigure(form.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"配置修改成功\")\n            queryPortForwardsConfigure()\n            return\n        }\n        resetFormData()\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"配置修改失败,网络请求出错:\" + error)\n        MessageShow(\"error\", \"配置修改失败,网络请求出错\")\n        resetFormData()\n    })\n}\n\n\n\n\nonMounted(() => {\n    queryPortForwardsConfigure()\n\n})\n\n</script>\n\n\n<style scoped>\n\n.AdminListenDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 456;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n\n.SetForm {\n    margin-top: 15px;\n    margin-left: 20px;\n}\n\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n\n\n}\n\n#adminListen {\n    width: 360px;\n}\n\n#adminAccount {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#adminPassword {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#proxyCountLimit {\n    width: 360px;\n}\n\n\n#globalMaxConnections {\n    width: 360px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/ReverseProxy.vue",
    "content": "<template>\n\n    <div class=\"ReverseProxyPageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <el-scrollbar height=\"100%\">\n\n            <div class=\"itemradius\" :style=\"{\n                borderRadius: 'base',\n            }\" v-for=\"rule in ruleList\">\n\n                <el-descriptions :column=\"8\" border>\n                    <el-descriptions-item label=\"规则名称\" :span=\"1\">\n                        <el-button size=\"small\" v-show=\"true\">\n                            {{ rule.RuleName == '' ? '未命名规则' : rule.RuleName }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"监听类型\" :span=\"2\">\n                        <el-button color=\"#0059b3\" size=\"small\" v-show=\"true\">\n                            {{ rule.Network }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"监听地址\" :span=\"2\">\n                        <el-button type=\"success\" size=\"small\" v-show=\"true\">\n                            {{ rule.ListenIP == '' ? '所有地址' : rule.ListenIP }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"监听端口\" :span=\"1\">\n                        <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                            {{ rule.ListenPort }}\n                        </el-button>\n\n                        \n                        <el-button :type=\"rule.EnableTLS!=true?'info':'primary'\" size=\"small\" v-show=\"true\">\n                            {{ rule.EnableTLS==true?'TLS已启用':'TLS未启用' }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"规则操作\" :span=\"2\">\n                        <el-tooltip :content=\"rule.Enable == true ? '规则已启用' : '规则已禁用'\" placement=\"top\">\n                            <el-switch v-model=\"rule.Enable\" inline-prompt active-text=\"开\" inactive-text=\"关\"\n                                :before-change=\"ruleEnableClick.bind(this, rule.Enable, rule)\" size=\"large\" />\n                        </el-tooltip>\n\n                        &nbsp;&nbsp;\n                        <el-button size=\"default\" type=\"primary\"\n                            @click=\"showAddOrAlterReverseProxyRuleDialog('alter',rule)\">编辑</el-button>\n                        <el-button size=\"default\" type=\"danger\" @click=\"deleteReverseProxyRule(rule)\">删除</el-button>\n                    </el-descriptions-item>\n\n\n\n\n\n\n\n\n\n\n\n                </el-descriptions>\n\n\n                <el-descriptions :column=\"8\" border>\n\n                    <el-descriptions-item label=\"默认子规则\" :span=\"1\">\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                默认规则<br />\n                            </template>\n\n                            <el-button type=\"info\" size=\"small\" v-show=\"true\">\n                                默认规则\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n\n                    <el-descriptions-item label=\"前端域名\" :span=\"1\">\n\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                未匹配子规则的任意域名\n                            </template>\n                            <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                未匹配的域名\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"后端地址\" :span=\"2\">\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"StrArrayListToBrHtml(rule.DefaultProxy.Locations)\"></span>\n                            </template>\n                            <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                {{\n                                (rule.DefaultProxy.Locations==undefined||rule.DefaultProxy.Locations==null)||rule.DefaultProxy.Locations.length\n                                <=0?'未设置':rule.DefaultProxy.Locations.length==1?rule.DefaultProxy.Locations[0]:rule.DefaultProxy.Locations[0]+'...'}}\n                                    </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n\n\n                    <el-descriptions-item label=\"日志\" :span=\"2\">\n                        <!-- <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                            {{ rule.EnableAccessLog==true?'开启':'关闭' }}\n                        </el-button>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                访问日志最大存储条数<br />\n                            </template>\n                            <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                {{ rule.AccessLogMaxNum }}\n                            </el-button>\n                        </el-tooltip> -->\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"reverproxyLogsArrayToTooltipHtml(rule,'default')\"></span>\n                            </template>\n                            <el-button type=\"info\" size=\"small\" v-show=\"true\"\n                                @click=\"showReverproxyLogs(rule.RuleKey,'default')\">\n                                查看\n                            </el-button>\n                        </el-tooltip>\n\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"安全设置\" :span=\"2\">\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content v-if=\"rule.DefaultProxy.EnableBasicAuth\">\n                                用户名:{{rule.DefaultProxy.BasicAuthUser}}<br />\n                                密码:{{rule.DefaultProxy.BasicAuthPasswd}}<br />\n                            </template>\n                            <template #content v-if=\"!rule.DefaultProxy.EnableBasicAuth\">\n                                Basic认证未启用<br />\n                            </template>\n                            <el-button color=\"#6666ff\" size=\"small\"\n                            v-show=\"true\" :disabled=\"rule.DefaultProxy.EnableBasicAuth == true ? false : true\">\n                                {{ rule.DefaultProxy.EnableBasicAuth==false?'Basic认证未启用':'Basic认证已启用' }}\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                IP过滤模式<br /></template>\n                            <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">\n                                {{ rule.DefaultProxy.SafeIPMode=='blacklist'?'IP黑名单':'IP白名单' }}\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                UserAgent过滤模式<br /></template>\n                            <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">\n                                {{ rule.DefaultProxy.SafeUserAgentMode=='blacklist'?'UA黑名单':'UA白名单' }}\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n\n\n                    <div v-for=\"proxy in rule.ProxyList\">\n\n                        <el-descriptions-item label=\"自定义子规则\" :span=\"1\">\n                            <el-button size=\"small\" v-show=\"true\">\n                                {{ proxy.Remark==''?'未命名子规则': proxy.Remark}}\n                            </el-button>\n                            &nbsp;\n                            <el-tooltip :content=\"proxy.Enable == true ? '子规则已启用' : '子规则已禁用'\" placement=\"top\">\n                                <el-switch v-model=\"proxy.Enable\" inline-prompt active-text=\"开\" inactive-text=\"关\"\n                                    :before-change=\"subruleEnableClick.bind(this, proxy.Enable, rule,proxy)\"\n                                    size=\"small\" />\n                            </el-tooltip>\n\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"前端域名\" :span=\"1\">\n\n                            <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    <span v-html=\"StrArrayListToBrHtml(proxy.Domains)\"></span>\n                                </template>\n                                <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                    {{ proxy.Domains.length==1?proxy.Domains[0]:proxy.Domains[0]+' ...' }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"后端地址\" :span=\"2\">\n                            <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    <span v-html=\"StrArrayListToBrHtml(proxy.Locations)\"></span>\n                                </template>\n                                <el-button color=\"#409eff\" size=\"small\" v-show=\"true\">\n                                    {{ proxy.Locations.length==1?proxy.Locations[0]:proxy.Locations[0]+' ...' }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"日志\" :span=\"2\">\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    <span v-html=\"reverproxyLogsArrayToTooltipHtml(rule,proxy.Key)\"></span>\n                                </template>\n                                <el-button type=\"info\" size=\"small\" v-show=\"true\"\n                                    @click=\"showReverproxyLogs(rule.RuleKey,proxy.Key)\">\n                                    查看\n                                </el-button>\n                            </el-tooltip>\n\n\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"安全设置\" :span=\"2\">\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content v-if=\"proxy.EnableBasicAuth\">\n                                    用户名:{{proxy.BasicAuthUser}}<br />\n                                    密码:{{proxy.BasicAuthPasswd}}<br />\n                                </template>\n                                <template #content v-if=\"!proxy.EnableBasicAuth\">\n                                    Basic认证未启用<br />\n                                </template>\n                                <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\" :disabled=\"proxy.EnableBasicAuth == true ? false : true\">\n                                    {{ proxy.EnableBasicAuth==false?'Basic认证未启用':'Basic认证已启用' }}\n                                </el-button>\n                            </el-tooltip>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    IP过滤模式<br /></template>\n                                <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">\n                                    {{ proxy.SafeIPMode=='blacklist'?'IP黑名单':'IP白名单' }}\n                                </el-button>\n                            </el-tooltip>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    UserAgent过滤模式<br /></template>\n                                <el-button color=\"#6666ff\" size=\"small\" v-show=\"true\">\n                                    {{ proxy.SafeUserAgentMode=='blacklist'?'UA黑名单':'UA白名单' }}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n\n                    </div>\n\n\n                </el-descriptions>\n\n            </div>\n\n\n        </el-scrollbar>\n\n        <el-affix position=\"bottom\" :offset=\"30\" class=\"affix-container\">\n            <el-button type=\"primary\" :round=true @click=\"showAddOrAlterReverseProxyRuleDialog('add', null)\">添加反向代理规则\n                <el-icon class=\"el-icon--right\">\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n    </div>\n\n    <el-dialog v-if=\"addRuleDialogVisible\" v-model=\"addRuleDialogVisible\"\n        :title=\"ruleFormOptionType == 'add' ? '反向代理规则添加' : '反向代理规则修改'\" draggable :show-close=\"true\"\n        :close-on-click-modal=\"false\" width=\"600px\">\n\n        <el-form :model=\"ruleForm\">\n\n            <el-form-item label=\"反向代理规则名称\" label-width=\"auto\">\n                <el-input v-model=\"ruleForm.RuleName\" placeholder=\"可留空\" autocomplete=\"off\" />\n            </el-form-item>\n\n            <el-form-item label=\"规则开关\" label-width=\"auto\">\n                <el-switch v-model=\"ruleForm.Enable\" inline-prompt width=\"50px\" active-text=\"启用\" inactive-text=\"停用\" />\n            </el-form-item>\n\n            <div v-show=\"ruleForm.Enable\">\n\n                <div class=\"fromitemDivRadius\">\n                    <el-form-item label=\"监听类型\" label-width=\"auto\">\n                        <el-checkbox v-model=\"checkAllListenType\" :indeterminate=\"listenTypeIsIndeterminate\"\n                            @change=\"handleCheckAllChange\">全选 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</el-checkbox>\n                        <br />\n                        <el-checkbox-group v-model=\"ruleFormListenType\" @change=\"handleCheckedProxyTypesChange\">\n                            <el-checkbox v-for=\"t in listenTypes\" :key=\"t\" :label=\"t\">{{\n                            t\n                            }}</el-checkbox>\n                        </el-checkbox-group>\n                    </el-form-item>\n\n                    <el-form-item label=\"监听地址\" label-width=\"auto\">\n                        <el-input v-model=\"ruleForm.ListenIP\" placeholder=\"没特殊需求留空即可\" autocomplete=\"off\" />\n                    </el-form-item>\n\n\n                    <el-form-item label=\"监听端口\" label-width=\"auto\" :min=\"1\" :max=\"65535\">\n                        <el-input-number v-model=\"ruleForm.ListenPort\" autocomplete=\"off\" />\n                    </el-form-item>\n\n                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                    <template #content>\n                                        启用前请先添加SSL证书<br/>\n                                        增加删除证书后需要重启规则新证书才生效<br/>\n                                    </template>\n                    <el-form-item label=\"TLS\" label-width=\"auto\" v-if=\"true\">\n                        <el-switch v-model=\"ruleForm.EnableTLS\" inline-prompt width=\"50px\" active-text=\"启用\"\n                            inactive-text=\"禁用\" />\n                    </el-form-item>\n                </el-tooltip>\n\n\n\n\n                </div>\n\n                <el-collapse v-model=\"fromChildARuleActiveName\" :accordion=\"true\">\n                    <div class=\"fromitemDivRadius\">\n                        <el-collapse-item title=\"默认子规则\" name=\"default\">\n\n                            <div class=\"fromitemChildDivRadius\">\n\n                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                    <template #content>\n                                        可留空<br />\n                                        不为空时表示域名不匹配任何子规则时默认的跳转地址<br />\n                                        设置多条后端地址时表示启用均衡负载,依次循环访问<br />\n                                        无特殊需求留空即可<br />\n                                    </template>\n                                    <el-form-item label-width=\"auto\" label=\"默认目标地址\">\n                                        <el-input v-model=\"ruleFormDefaultProxyLocationsArea\" placeholder=\"没特殊需求留空即可\"\n                                            :autosize=\"{ minRows: 1, maxRows: 3 }\" type=\"textarea\">\n                                        </el-input>\n                                    </el-form-item>\n                                </el-tooltip>\n\n\n\n                                <el-form-item label=\"访问日志记录\" label-width=\"auto\">\n                                    <el-switch v-model=\"ruleForm.DefaultProxy.EnableAccessLog\" inline-prompt\n                                        width=\"50px\" active-text=\"开启\" inactive-text=\"关闭\" />\n                                </el-form-item>\n\n\n\n\n                                <div v-show=\"ruleForm.DefaultProxy.EnableAccessLog\">\n\n                                    <el-form-item label=\"日志输出级别\" label-width=\"auto\">\n                                        <el-select v-model=\"ruleForm.DefaultProxy.LogLevel\" class=\"m-2\"\n                                            placeholder=\"请选择\">\n                                            <el-option v-for=\"item in LogLevelList\" :key=\"item.value\"\n                                                :label=\"item.label\" :value=\"item.value\" />\n                                        </el-select>\n                                    </el-form-item>\n\n                                    <el-form-item label=\"日志输出到终端\" label-width=\"auto\">\n                                        <el-switch v-model=\"ruleForm.DefaultProxy.LogOutputToConsole\" inline-prompt\n                                            width=\"50px\" active-text=\"开启\" inactive-text=\"关闭\" />\n                                    </el-form-item>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            范围(0-102400),0表示不保存日志<br />\n                                        </template>\n                                        <el-form-item label=\"访问日志记录最大条数\" label-width=\"auto\" :min=\"0\" :max=\"102400\">\n                                            <el-input-number v-model=\"ruleForm.DefaultProxy.AccessLogMaxNum\"\n                                                autocomplete=\"off\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            范围(1-256)<br />\n                                        </template>\n                                        <el-form-item label=\"列表显示最新日志最大条数\" label-width=\"auto\" :min=\"1\" :max=\"256\">\n                                            <el-input-number v-model=\"ruleForm.DefaultProxy.WebListShowLastLogMaxCount\"\n                                                autocomplete=\"off\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            不建议留空，留空的话日志中不显示相关信息 <br />\n                                            格式中可用变量<br />\n                                            #{clientIP} : 客户端IP <br />\n                                            #{remoteIP} : 客户端直接连接本服务的IP(如果前端有反向代理，不一定是客户端真实IP)<br />\n                                            #{tab} : 制表符<br />\n                                            #{method} : 请求方法<br />\n                                            #{host} : 请求host<br />\n                                            #{path} : 请求path(不包含host)部分<br />\n                                            #{url} : 请求url(不包含host)部分<br />\n\n                                        </template>\n                                        <el-form-item label-width=\"auto\" label=\"请求信息在日志中的格式\" v-if=\"false\">\n                                            <el-input v-model=\"ruleForm.DefaultProxy.RequestInfoLogFormat\"\n                                                placeholder=\"不建议留空，留空的话日志中不显示相关信息\">\n                                            </el-input>\n                                        </el-form-item>\n                                    </el-tooltip>\n                                </div>\n\n\n\n\n                                <div class=\"fromitemChildSafeDivRadius\">\n                                    <p>客户端IP获取设置</p>\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            无特殊需求，一般情况下不需要打开这个开关<br />\n                                        </template>\n\n                                        <el-form-item label=\"优先从Header头部获取\" label-width=\"auto\">\n                                            <el-switch v-model=\"ruleForm.DefaultProxy.ForwardedByClientIP\" inline-prompt\n                                                width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <div v-show=\"ruleForm.DefaultProxy.ForwardedByClientIP\">\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                信任的代理IP网段,每行填写一个网段<br />\n                                                Lucky只会从信任的代理IP中的header获取客户端IP<br />\n                                                0.0.0.0/0 表示信任任意Header包含IP信息的IPv4代理地址<br />\n                                                ::/0 表示信任任意Header包含IP信息的IPv6代理地址<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"信任的代理IP网段\">\n                                                <el-input v-model=\"ruleFormTrustedCIDRsStrListArea\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                包含客户端IP的头部字段，每行填写一个字段<br />\n                                                常见的字段有：<br />\n                                                X-Forwarded-For <br />\n                                                X-Real-IP <br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"包含客户端IP的头部字段\">\n                                                <el-input v-model=\"ruleFormRemoteIPHeaderstArea\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                    </div>\n\n\n\n                                </div>\n\n                                <div class=\"fromitemChildSafeDivRadius\">\n                                    <p>追加客户端IP到指定Header</p>\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            无特殊需求，一般情况下不需要打开这个开关<br />\n                                        </template>\n\n                                        <el-form-item label=\"追加客户端IP到指定Header\" label-width=\"auto\">\n                                            <el-switch v-model=\"ruleForm.DefaultProxy.AddRemoteIPToHeader\" inline-prompt\n                                                width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <div v-show=\"ruleForm.DefaultProxy.AddRemoteIPToHeader\">\n\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                常用的Key有<br />\n                                                X-Forwarded-For<br />\n                                                X-Real-IP<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"自定义Header Key\">\n                                                <el-input v-model=\"ruleForm.DefaultProxy.AddRemoteIPHeaderKey\"\n                                                    placeholder=\"\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                    </div>\n\n                                </div>\n\n                                <div class=\"fromitemChildSafeDivRadius\">\n\n                                    <p>安全设置</p>\n\n                                    <el-form-item label=\"BasicAuth认证\" label-width=\"auto\">\n                                        <el-switch v-model=\"ruleForm.DefaultProxy.EnableBasicAuth\" inline-prompt\n                                            width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                    </el-form-item>\n\n                                    <div v-show=\"ruleForm.DefaultProxy.EnableBasicAuth\">\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                HTTP BasicAuth 用户名<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"HTTP BasicAuth 用户名\">\n                                                <el-input v-model=\"ruleForm.DefaultProxy.BasicAuthUser\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                HTTP BasicAuth 密码<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"HTTP BasicAuth 密码\">\n                                                <el-input v-model=\"ruleForm.DefaultProxy.BasicAuthPasswd\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n\n                                    </div>\n\n\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            没特殊使用黑名单模式即可<br />\n                                        </template>\n                                        <el-form-item label-width=\"auto\" label=\"IP过滤模式\">\n                                            <el-radio-group v-model=\"ruleForm.DefaultProxy.SafeIPMode\" class=\"ml-4\">\n                                                <el-radio label=\"blacklist\">黑名单</el-radio>\n                                                <el-radio label=\"whitelist\">白名单</el-radio>\n                                            </el-radio-group>\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            没特殊使用黑名单模式即可<br />\n                                        </template>\n                                        <el-form-item label-width=\"auto\" label=\"UserAgent过滤模式\">\n                                            <el-radio-group v-model=\"ruleForm.DefaultProxy.SafeUserAgentMode\"\n                                                class=\"ml-4\">\n                                                <el-radio label=\"blacklist\">黑名单</el-radio>\n                                                <el-radio label=\"whitelist\">白名单</el-radio>\n                                            </el-radio-group>\n                                        </el-form-item>\n                                    </el-tooltip>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            自定义的UserAgent 黑/白名单内容,多组Agent分多行填入,实际的UserAgent部分匹配任意一行即是成功匹配<br />\n                                            黑名单模式时,匹配成功任一条即拒绝服务<br />\n                                            白名单模式时,仅匹配成功才继续服务<br />\n                                        </template>\n                                        <el-form-item label-width=\"auto\" label=\"UserAgent过滤内容\">\n                                            <el-input v-model=\"ruleFormDefaultProxyUserAgentfilterArea\"\n                                                :autosize=\"{ minRows: 3, maxRows: 6 }\" placeholder=\"\" type=\"textarea\"\n                                                wrap=\"off\">\n                                            </el-input>\n                                        </el-form-item>\n                                    </el-tooltip>\n                                </div>\n\n                                <div class=\"fromitemChildSafeDivRadius\">\n                                    <p>隐私设置</p>\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            可以通过自定义robots.txt防止爬虫对内容的抓取<br />\n                                        </template>\n                                        <el-form-item label=\"自定义robot.txt\" label-width=\"auto\">\n                                            <el-switch v-model=\"ruleForm.DefaultProxy.CustomRobotTxt\" inline-prompt\n                                                width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n                                    <div v-show=\"ruleForm.DefaultProxy.CustomRobotTxt\">\n                                        <el-form-item label-width=\"auto\" label=\"robot.txt\">\n                                            <el-input v-model=\"ruleForm.DefaultProxy.RobotTxt\"\n                                                :autosize=\"{ minRows: 5, maxRows: 9 }\" placeholder=\"\" type=\"textarea\">\n                                            </el-input>\n                                        </el-form-item>\n                                    </div>\n                                </div>\n\n\n                            </div>\n                        </el-collapse-item>\n\n\n                    </div>\n\n                    <div class=\"fromitemDivRadius\">\n                        <p>反向代理子规则列表</p>\n\n\n\n                        <div class=\"fromitemChildDivRadius\" v-for=\"(proxy,index) in ruleForm.ProxyList\">\n                            <el-collapse-item :title=\"'第'+ (index+1) +'条 '+'[ '+ruleForm.ProxyList[index].Remark+' ]'\"\n                                :name=index>\n\n\n\n\n                                <div>\n\n                                    <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                        <template #content>\n                                            子规则名称,可留空<br />\n                                        </template>\n                                        <el-form-item label=\"反向代理子规则名称\" label-width=\"auto\">\n                                            <el-input v-model=\"ruleForm.ProxyList[index].Remark\" placeholder=\"可留空\"\n                                                autocomplete=\"off\" />\n                                        </el-form-item>\n                                    </el-tooltip>\n\n\n                                    <el-form-item label=\"子规则开关\" label-width=\"auto\">\n                                        <el-switch v-model=\"ruleForm.ProxyList[index].Enable\" inline-prompt width=\"50px\"\n                                            active-text=\"启用\" inactive-text=\"禁用\" />\n                                    </el-form-item>\n\n                                    <div v-show=\"ruleForm.ProxyList[index].Enable\">\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                一行一条域名<br />\n                                                设置多条域名时表示多条域名指向相同的后端地址<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"前端域名\">\n                                                <el-input v-model=\"ruleFormProxyDomainsArea[index]\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                            <template #content>\n                                                一行一条后端地址<br />\n                                                设置多条后端地址时表示启用均衡负载,依次循环访问<br />\n                                                无特殊要求设置一条即可<br />\n                                            </template>\n                                            <el-form-item label-width=\"auto\" label=\"后端地址\">\n                                                <el-input v-model=\"ruleFormProxyLocationsArea[index]\"\n                                                    :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                    type=\"textarea\">\n                                                </el-input>\n                                            </el-form-item>\n                                        </el-tooltip>\n\n                                        <!--\n                                [#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{path}]\n\n                            -->\n\n                                        <el-form-item label=\"访问日志记录\" label-width=\"auto\">\n                                            <el-switch v-model=\"ruleForm.ProxyList[index].EnableAccessLog\" inline-prompt\n                                                width=\"50px\" active-text=\"开启\" inactive-text=\"关闭\" />\n                                        </el-form-item>\n\n                                        <div v-show=\"ruleForm.ProxyList[index].EnableAccessLog\">\n\n                                            <el-form-item label=\"日志输出级别\" label-width=\"auto\">\n                                                <el-select v-model=\"ruleForm.ProxyList[index].LogLevel\" class=\"m-2\"\n                                                    placeholder=\"请选择\">\n                                                    <el-option v-for=\"item in LogLevelList\" :key=\"item.value\"\n                                                        :label=\"item.label\" :value=\"item.value\" />\n                                                </el-select>\n                                            </el-form-item>\n\n                                            <el-form-item label=\"子规则日志输出到终端\" label-width=\"auto\">\n                                                <el-switch v-model=\"ruleForm.ProxyList[index].LogOutputToConsole\"\n                                                    inline-prompt width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                            </el-form-item>\n\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    范围(0-102400),0表示不保存日志<br />\n                                                </template>\n                                                <el-form-item label=\"访问日志记录最大条数\" label-width=\"auto\" :min=\"0\"\n                                                    :max=\"102400\">\n                                                    <el-input-number v-model=\"ruleForm.ProxyList[index].AccessLogMaxNum\"\n                                                        autocomplete=\"off\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    范围(1-256)<br />\n                                                </template>\n                                                <el-form-item label=\"前端列表显示最新日志最大条数\" label-width=\"auto\" :min=\"1\"\n                                                    :max=\"256\">\n                                                    <el-input-number\n                                                        v-model=\"ruleForm.ProxyList[index].WebListShowLastLogMaxCount\"\n                                                        autocomplete=\"off\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n\n\n\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    不建议留空，留空的话日志中不显示相关信息 <br />\n\n                                                    日志格式中可用变量<br />\n                                                    #{clientIP} : 客户端IP <br />\n                                                    #{remoteIP} : 客户端直接连接本服务的IP(如果前端有反向代理，不一定是客户端真实IP)<br />\n                                                    #{tab} : 制表符<br />\n                                                    #{method} : 请求方法<br />\n                                                    #{host} : 请求host<br />\n                                                    #{path} : 请求path(不包含host)部分<br />\n                                                    #{url} : 请求url(不包含host)部分<br />\n                                                </template>\n                                                <el-form-item label=\"请求信息在日志中的格式\" label-width=\"auto\" v-if=\"false\">\n                                                    <el-input v-model=\"ruleForm.ProxyList[index].RequestInfoLogFormat\"\n                                                        placeholder=\"不建议留空，留空的话日志中不显示相关信息\" autocomplete=\"off\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                        </div>\n\n                                        <div class=\"fromitemChildSafeDivRadius\">\n                                            <p>客户端IP获取设置</p>\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    无特殊需求，一般情况下不需要打开这个开关<br />\n                                                </template>\n                                                <el-form-item label=\"优先从Header头部获取\" label-width=\"auto\">\n                                                    <el-switch v-model=\"ruleForm.ProxyList[index].ForwardedByClientIP\"\n                                                        inline-prompt width=\"50px\" active-text=\"启用\"\n                                                        inactive-text=\"禁用\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                            <div v-show=\"ruleForm.ProxyList[index].ForwardedByClientIP\">\n\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        信任的代理IP网段,每行填写一个网段<br />\n                                                        Lucky只会从信任的代理IP中的header获取客户端IP<br />\n                                                        0.0.0.0/0 表示信任任意Header包含IP信息的IPv4代理地址<br />\n                                                        ::/0 表示信任任意Header包含IP信息的IPv6代理地址<br />\n                                                    </template>\n                                                    <el-form-item label-width=\"auto\" label=\"信任的代理IP网段\">\n                                                        <el-input v-model=\"ruleFormProxyTrustedCIDRsStrListArea[index]\"\n                                                            :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                            type=\"textarea\">\n                                                        </el-input>\n                                                    </el-form-item>\n                                                </el-tooltip>\n\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        包含客户端IP的头部字段，每行填写一个字段<br />\n                                                        常见的字段有：<br />\n                                                        X-Forwarded-For <br />\n                                                        X-Real-IP <br />\n                                                    </template>\n                                                    <el-form-item label-width=\"auto\" label=\"包含客户端IP的头部字段\">\n                                                        <el-input v-model=\"ruleFormProxyRemoteIPHeadersArea[index]\"\n                                                            :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                            type=\"textarea\">\n                                                        </el-input>\n                                                    </el-form-item>\n                                                </el-tooltip>\n\n                                            </div>\n\n\n\n                                        </div>\n\n                                        <div class=\"fromitemChildSafeDivRadius\">\n                                            <p>追加客户端IP到指定Header</p>\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    无特殊需求，一般情况下不需要打开这个开关<br />\n                                                    用于后端程序识别客户端真实IP\n                                                </template>\n\n                                                <el-form-item label=\"追加客户端IP到指定Header\" label-width=\"auto\">\n                                                    <el-switch v-model=\"ruleForm.ProxyList[index].AddRemoteIPToHeader\"\n                                                        inline-prompt width=\"50px\" active-text=\"启用\"\n                                                        inactive-text=\"禁用\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                            <div v-show=\"ruleForm.ProxyList[index].AddRemoteIPToHeader\">\n\n\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        常用的Key有<br />\n                                                        X-Forwarded-For<br />\n                                                        X-Real-IP<br />\n                                                    </template>\n                                                    <el-form-item label-width=\"auto\" label=\"自定义Header Key\">\n                                                        <el-input\n                                                            v-model=\"ruleForm.ProxyList[index].AddRemoteIPHeaderKey\"\n                                                            placeholder=\"\">\n                                                        </el-input>\n                                                    </el-form-item>\n                                                </el-tooltip>\n\n                                            </div>\n\n                                        </div>\n\n                                        <div class=\"fromitemChildSafeDivRadius\">\n\n                                            <p>安全设置</p>\n\n                                            <el-form-item label=\"BasicAuth认证\" label-width=\"auto\">\n                                                <el-switch v-model=\"ruleForm.ProxyList[index].EnableBasicAuth\"\n                                                    inline-prompt width=\"50px\" active-text=\"启用\" inactive-text=\"禁用\" />\n                                            </el-form-item>\n\n                                            <div v-show=\"ruleForm.ProxyList[index].EnableBasicAuth\">\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        HTTP BasicAuth 用户名<br />\n                                                    </template>\n                                                    <el-form-item label-width=\"auto\" label=\"HTTP BasicAuth 用户名\">\n                                                        <el-input v-model=\"ruleForm.ProxyList[index].BasicAuthUser\"\n                                                            :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                            type=\"textarea\">\n                                                        </el-input>\n                                                    </el-form-item>\n                                                </el-tooltip>\n\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        HTTP BasicAuth 密码<br />\n                                                    </template>\n                                                    <el-form-item label-width=\"auto\" label=\"HTTP BasicAuth 密码\">\n                                                        <el-input v-model=\"ruleForm.ProxyList[index].BasicAuthPasswd\"\n                                                            :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                                                            type=\"textarea\">\n                                                        </el-input>\n                                                    </el-form-item>\n                                                </el-tooltip>\n\n\n                                            </div>\n\n\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    没特殊使用黑名单模式即可<br />\n                                                </template>\n                                                <el-form-item label-width=\"auto\" label=\"IP过滤模式\">\n                                                    <el-radio-group v-model=\"ruleForm.ProxyList[index].SafeIPMode\"\n                                                        class=\"ml-4\">\n                                                        <el-radio label=\"blacklist\">黑名单</el-radio>\n                                                        <el-radio label=\"whitelist\">白名单</el-radio>\n                                                    </el-radio-group>\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    没特殊使用黑名单模式即可<br />\n                                                </template>\n                                                <el-form-item label-width=\"auto\" label=\"UserAgent过滤模式\">\n                                                    <el-radio-group\n                                                        v-model=\"ruleForm.ProxyList[index].SafeUserAgentMode\"\n                                                        class=\"ml-4\">\n                                                        <el-radio label=\"blacklist\">黑名单</el-radio>\n                                                        <el-radio label=\"whitelist\">白名单</el-radio>\n                                                    </el-radio-group>\n                                                </el-form-item>\n                                            </el-tooltip>\n\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    自定义的UserAgent 黑/白名单内容,多组Agent分多行填入,实际的UserAgent部分匹配任意一行即是成功匹配<br />\n                                                    黑名单模式时,匹配成功任一条即拒绝服务<br />\n                                                    白名单模式时,仅匹配成功才继续服务<br />\n                                                </template>\n                                                <el-form-item label-width=\"auto\" label=\"UserAgent过滤内容\">\n                                                    <el-input v-model=\"ruleFormProxyUserAgentfilterArea[index]\"\n                                                        :autosize=\"{ minRows: 3, maxRows: 6 }\" placeholder=\"\"\n                                                        type=\"textarea\" wrap=\"off\">\n                                                    </el-input>\n                                                </el-form-item>\n                                            </el-tooltip>\n                                        </div>\n\n                                        <div class=\"fromitemChildSafeDivRadius\">\n                                            <p>隐私设置</p>\n                                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                                <template #content>\n                                                    可以通过自定义robots.txt防止爬虫对内容的抓取<br />\n                                                </template>\n                                                <el-form-item label=\"自定义robot.txt\" label-width=\"auto\">\n                                                    <el-switch v-model=\"ruleForm.ProxyList[index].CustomRobotTxt\"\n                                                        inline-prompt width=\"50px\" active-text=\"启用\"\n                                                        inactive-text=\"禁用\" />\n                                                </el-form-item>\n                                            </el-tooltip>\n                                            <div v-show=\"ruleForm.ProxyList[index].CustomRobotTxt\">\n                                                <el-form-item label-width=\"auto\" label=\"robot.txt\">\n                                                    <el-input v-model=\"ruleForm.ProxyList[index].RobotTxt\"\n                                                        :autosize=\"{ minRows: 5, maxRows: 9 }\" placeholder=\"\"\n                                                        type=\"textarea\">\n                                                    </el-input>\n                                                </el-form-item>\n                                            </div>\n                                        </div>\n\n                                    </div>\n\n\n\n\n\n                                    <el-form-item>\n                                        <el-button type=\"danger\" :round=true\n                                            @click=\"deleteProxyToRuleFormProxyList(index)\">\n                                            删除</el-button>\n                                    </el-form-item>\n\n                                </div>\n\n                            </el-collapse-item>\n                        </div>\n\n\n\n\n\n                        <el-button type=\"primary\" :round=true @click=\"addProxyToRuleFormProxyList\">添加反向代理转发子规则\n                        </el-button>\n                    </div>\n                </el-collapse>\n            </div>\n\n\n\n        </el-form>\n\n        <template #footer>\n            <span class=\"dialog-footer\">\n                <el-button @click=\"addRuleDialogVisible = false\">取消</el-button>\n                <el-button type=\"primary\" @click=\"exeAddOrAlterRuleOption\">{{ ruleFormOptionType == \"add\" ? '添加' :\n                '修改'\n                }}\n                </el-button>\n            </span>\n        </template>\n    </el-dialog>\n\n\n    <el-dialog v-if=\"reverproxyLogsVisible\" v-model=\"reverproxyLogsVisible\" :close-on-click-modal=\"false\" width=\"900px\">\n\n        <div>\n\n            <el-scrollbar max-height=\"95vh\" class=\"reverseProxyLogs\" element-loading-background=\"transparent\">\n                {{reverseProxyLogsDialogLogsContentView}}\n\n            </el-scrollbar>\n\n\n            <el-pagination :page-size=reverseProxyLogsPageSize :page-sizes=\"[10,20,50, 100, 200, 300,400,500]\" :small=\"false\"\n                :disabled=\"false\" :background=\"false\" layout=\"total, sizes, prev, pager, next, jumper\"\n                :current-page=\"reverseProxyLogsDialogCurrentPage\" :total=reverseProxyLogsTotal\n                @size-change=\"handleReverseRroxyLogsSizeChange\" @current-change=\"handleReverproxyLogsCurrentChange\"\n                @prev-click=\"handleReverproxyLogsPreClick\" @next-click=\"handleReverproxyLogsNextClick\" />\n        </div>\n\n    </el-dialog>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { ElMessageBox, CheckboxValueType } from 'element-plus'\nimport { MessageShow, Notification, ShowMessageBox } from '../utils/ui'\nimport {\n    apiAddReverseProxyRule,\n    apiGeReverseProxyRuleList,\n    apiAlterReverseProxyRule,\n    apiDeleteReverseProxyRule,\n    apiReverseProxyRuleEnable,\n    apiReverseProxyRuleLogs\n} from '../apis/utils'\n\nimport { StringToArrayList, CopyTotoClipboard, StrArrayListToBrHtml, StrArrayListToArea, LogLevelList } from '../utils/utils'\n\n\nconst addRuleDialogVisible = ref(false)\nconst reverproxyLogsVisible = ref(false)\nconst ruleFormOptionType = ref(\"\")\nconst fromChildARuleActiveName = ref(0)\nconst reverseProxyLogsPageSize = ref(50)\nconst reverseProxyLogsTotal = ref(0)\nconst reverseProxyLogsDialogData = ref([{\n    ProxyKey: \"\",\n    ClientIP: \"\",\n    LogContent: \"\",\n    LogTime: \"\"\n}])\nconst reverseProxyLogsDialogRuleKey = ref(\"\")\nconst reverseProxyLogsDialogProxyKey = ref(\"\")\nconst reverseProxyLogsDialogCurrentPage = ref(1)\n\nconst reverseProxyLogsDialogLogsContentView = ref(\"\")\n\n\nconst ruleList = ref([{\n    RuleName: \"\",\n    RuleKey: \"\",\n    Enable: false,\n    Network: \"\",\n    ListenIP: \"\",\n    ListenPort: 666,\n    EnableTLS: false,\n    DefaultProxy: {\n        Locations: [\"\"],\n        EnableAccessLog: true,\n        LogLevel: 4,\n        LogOutputToConsole: false,\n        AccessLogMaxNum: 100,\n        WebListShowLastLogMaxCount: 30,\n        RequestInfoLogFormat: \"\",\n        ForwardedByClientIP: false,\n        TrustedCIDRsStrList: [\"\"],\n        RemoteIPHeaders: [\"\"],\n        AddRemoteIPToHeader: false,\n        AddRemoteIPHeaderKey: \"\",\n        EnableBasicAuth: true,\n        BasicAuthUser: \"\",\n        BasicAuthPasswd: \"\",\n        SafeIPMode: \"\",\n        SafeUserAgentMode: \"\",\n        UserAgentfilter: [\"\"],\n\n        CustomRobotTxt: false,\n        RobotTxt: \"\"\n    },\n\n    ProxyList: [\n        {\n            Enable: true,\n            Key: \"\",\n            Remark: \"\",\n            Domains: [\"\"],\n            Locations: [\"\"],\n            LogLevel: 4,\n            LogOutputToConsole: false,\n            AccessLogMaxNum: 1000,\n            WebListShowLastLogMaxCount: 30,\n            RequestInfoLogFormat: \"\",\n            ForwardedByClientIP: false,\n            TrustedCIDRsStrList: [\"\"],\n            RemoteIPHeaders: [\"\"],\n            EnableBasicAuth: false,\n            BasicAuthUser: \"\",\n            BasicAuthPasswd: \"\",\n            SafeIPMode: \"\",\n            SafeUserAgentMode: \"\",\n            UserAgentfilter: [\"\"],\n\n            CustomRobotTxt: false,\n            RobotTxt: \"\"\n        }\n    ],\n}\n\n])\n\nconst ruleForm = ref({\n    RuleName: \"\",\n    RuleKey: \"\",\n    Enable: false,\n    Network: \"\",\n    ListenIP: \"\",\n    ListenPort: 666,\n    EnableTLS: false,\n    DefaultProxy: {\n        Key: \"\",\n        Locations: [\"\"],\n        EnableAccessLog: true,\n        LogLevel: 4,\n        LogOutputToConsole: false,\n        AccessLogMaxNum: 100,\n        WebListShowLastLogMaxCount: 30,\n        RequestInfoLogFormat: \"\",\n        ForwardedByClientIP: false,\n        TrustedCIDRsStrList: [\"\"],\n        RemoteIPHeaders: [\"\"],\n        AddRemoteIPToHeader: false,\n        AddRemoteIPHeaderKey: \"\",\n        EnableBasicAuth: true,\n        BasicAuthUser: \"\",\n        BasicAuthPasswd: \"\",\n        SafeIPMode: \"\",\n        SafeUserAgentMode: \"\",\n        UserAgentfilter: [\"\"],\n        CustomRobotTxt: false,\n        RobotTxt: \"\"\n    },\n\n    ProxyList: [\n        {\n            Enable: true,\n            Key: \"\",\n            Remark: \"\",\n            Domains: [\"\"],\n            Locations: [\"\"],\n            EnableAccessLog: true,\n            LogLevel: 4,\n            LogOutputToConsole: false,\n            AccessLogMaxNum: 1000,\n            WebListShowLastLogMaxCount: 30,\n            RequestInfoLogFormat: \"\",\n            ForwardedByClientIP: false,\n            TrustedCIDRsStrList: [\"\"],\n            RemoteIPHeaders: [\"\"],\n            AddRemoteIPToHeader: false,\n            AddRemoteIPHeaderKey: \"\",\n\n            EnableBasicAuth: false,\n            BasicAuthUser: \"\",\n            BasicAuthPasswd: \"\",\n            SafeIPMode: \"\",\n            SafeUserAgentMode: \"\",\n            UserAgentfilter: [\"\"],\n\n            CustomRobotTxt: false,\n            RobotTxt: \"\"\n\n        }\n    ],\n})\nconst ruleFormTrustedCIDRsStrListArea = ref(\"\")\nconst ruleFormRemoteIPHeaderstArea = ref(\"\")\n\nconst ruleFormDefaultProxyUserAgentfilterArea = ref(\"\")\nconst ruleFormDefaultProxyLocationsArea = ref(\"\")\nconst ruleFormListenType = ref([\"\"])\nconst ruleFormProxyDomainsArea = ref([\"\"])\nconst ruleFormProxyLocationsArea = ref([\"\"])\nconst ruleFormProxyUserAgentfilterArea = ref([\"\"])\nconst ruleFormProxyTrustedCIDRsStrListArea = ref([\"\"])\nconst ruleFormProxyRemoteIPHeadersArea = ref([\"\"])\n\nconst showReverproxyLogs = (ruleKey, proxyKey) => {\n    reverproxyLogsVisible.value = true\n\n    reverseProxyLogsDialogCurrentPage.value = 1\n    reverseProxyLogsTotal.value = 0\n    reverseProxyLogsPageSize.value = 10\n    reverseProxyLogsDialogRuleKey.value = ruleKey\n    reverseProxyLogsDialogProxyKey.value = proxyKey\n\n\n    apiReverseProxyRuleLogs(ruleKey, proxyKey, reverseProxyLogsPageSize.value, reverseProxyLogsDialogCurrentPage.value).then((res) => {\n        //console.log(res.data)\n        if (res.ret == 0) {\n            reverseProxyLogsPageSize.value = res.pageSize\n            reverseProxyLogsTotal.value = res.total\n            reverseProxyLogsDialogData.value = res.logs\n            flushReverseProxyLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n}\n\nconst handleReverproxyLogsPreClick = (page: number) => {\n    // console.log(page)\n    reverseProxyLogsDialogCurrentPage.value = page - 1\n\n}\n\n\nconst handleReverproxyLogsNextClick = (page: number) => {\n    //console.log(page)\n    reverseProxyLogsDialogCurrentPage.value = page + 1\n\n}\n\n\n\nconst handleReverseRroxyLogsSizeChange = (pageSize: number) => {\n    reverseProxyLogsPageSize.value = pageSize\n    reverseProxyLogsDialogCurrentPage.value = 1\n\n    apiReverseProxyRuleLogs(reverseProxyLogsDialogRuleKey.value, reverseProxyLogsDialogProxyKey.value, reverseProxyLogsPageSize.value, reverseProxyLogsDialogCurrentPage.value).then((res) => {\n        if (res.ret == 0) {\n            reverseProxyLogsPageSize.value = res.pageSize\n            reverseProxyLogsTotal.value = res.total\n            reverseProxyLogsDialogData.value = res.logs\n            flushReverseProxyLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n\n}\n\n\nconst handleReverproxyLogsCurrentChange = (page: number) => {\n    reverseProxyLogsDialogCurrentPage.value = page\n\n    apiReverseProxyRuleLogs(reverseProxyLogsDialogRuleKey.value, reverseProxyLogsDialogProxyKey.value, reverseProxyLogsPageSize.value, reverseProxyLogsDialogCurrentPage.value).then((res) => {\n        if (res.ret == 0) {\n            reverseProxyLogsPageSize.value = res.pageSize\n            reverseProxyLogsTotal.value = res.total\n            reverseProxyLogsDialogData.value = res.logs\n            flushReverseProxyLogsDialogLogsContentView()\n            return\n        }\n        MessageShow(\"error\", \"获取日志出错\")\n    }).catch((error) => {\n        console.log(\"获取日志出错:\" + error)\n        MessageShow(\"error\", \"获取日志出错\")\n    })\n}\n\nconst flushReverseProxyLogsDialogLogsContentView = () => {\n    //reverseProxyLogsDialogLogsContentView\n    // {{log.LogTime}} &nbsp; &nbsp; &nbsp; {{log.LogContent}}\n    reverseProxyLogsDialogLogsContentView.value = \"\"\n    for (let index in reverseProxyLogsDialogData.value) {\n        let log = reverseProxyLogsDialogData.value[index]\n        if (index!=\"0\"){\n            reverseProxyLogsDialogLogsContentView.value += \"\\n\"\n        }\n        reverseProxyLogsDialogLogsContentView.value += log.LogTime + \"\\t\" + log.LogContent + \"\\n\"\n    }\n   \n}\n\nconst showAddOrAlterReverseProxyRuleDialog = (optionType: string, rule: any) => {\n    addRuleDialogVisible.value = true\n    ruleFormOptionType.value = optionType\n\n    fromChildARuleActiveName.value = -1\n\n    switch (optionType) {\n        case \"add\":\n            {\n                ruleForm.value = {\n                    RuleName: \"\",\n                    RuleKey: \"\",\n                    Enable: true,\n                    Network: \"tcp6\",\n                    ListenIP: \"\",\n                    ListenPort: 16666,\n                    EnableTLS: false,\n                    DefaultProxy: {\n                        Key: \"default\",\n                        Locations: [],\n                        EnableAccessLog: true,\n                        LogLevel: 4,\n                        LogOutputToConsole: false,\n                        AccessLogMaxNum: 1000,\n                        WebListShowLastLogMaxCount: 10,\n                        RequestInfoLogFormat: \"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",\n                        ForwardedByClientIP: false,\n                        TrustedCIDRsStrList: [\"\"],\n                        RemoteIPHeaders: [\"\"],\n                        AddRemoteIPToHeader: false,\n                        AddRemoteIPHeaderKey: \"\",\n                        EnableBasicAuth: false,\n                        BasicAuthUser: \"\",\n                        BasicAuthPasswd: \"\",\n                        SafeIPMode: \"blacklist\",\n                        SafeUserAgentMode: \"blacklist\",\n                        UserAgentfilter: [\"\"],\n                        CustomRobotTxt: false,\n                        RobotTxt: \"User-agent:  *\\nDisallow:  /\"\n                    },\n                    ProxyList: [],\n                }\n                ruleFormProxyDomainsArea.value = []\n                ruleFormProxyLocationsArea.value = []\n                ruleFormProxyUserAgentfilterArea.value = []\n                ruleFormProxyTrustedCIDRsStrListArea.value = []\n                ruleFormProxyRemoteIPHeadersArea.value = []\n                // addProxyToRuleFormProxyList()\n                ruleFormTrustedCIDRsStrListArea.value = `0.0.0.0/0\n::/0`\n                ruleFormRemoteIPHeaderstArea.value = `X-Forwarded-For\nX-Real-IP`\n                ruleFormDefaultProxyUserAgentfilterArea.value = \"\"\n                ruleFormDefaultProxyLocationsArea.value = \"\"\n            }\n            break;\n        case \"alter\":\n            {\n                ruleForm.value = rule\n                ruleFormProxyDomainsArea.value = []\n                ruleFormProxyLocationsArea.value = []\n                ruleFormProxyUserAgentfilterArea.value = []\n                ruleFormProxyTrustedCIDRsStrListArea.value = []\n                ruleFormProxyRemoteIPHeadersArea.value = []\n                ruleFormTrustedCIDRsStrListArea.value = StrArrayListToArea(ruleForm.value.DefaultProxy.TrustedCIDRsStrList)\n                ruleFormRemoteIPHeaderstArea.value = StrArrayListToArea(ruleForm.value.DefaultProxy.RemoteIPHeaders)\n                ruleFormDefaultProxyLocationsArea.value = StrArrayListToArea(ruleForm.value.DefaultProxy.Locations)\n                ruleFormDefaultProxyUserAgentfilterArea.value = StrArrayListToArea(ruleForm.value.DefaultProxy.UserAgentfilter)\n                for (let i in ruleForm.value.ProxyList) {\n                    ruleFormProxyDomainsArea.value.push(StrArrayListToArea(ruleForm.value.ProxyList[i].Domains))\n                    ruleFormProxyLocationsArea.value.push(StrArrayListToArea(ruleForm.value.ProxyList[i].Locations))\n                    ruleFormProxyUserAgentfilterArea.value.push(StrArrayListToArea(ruleForm.value.ProxyList[i].UserAgentfilter))\n                    ruleFormProxyTrustedCIDRsStrListArea.value.push(StrArrayListToArea(ruleForm.value.ProxyList[i].TrustedCIDRsStrList))\n                    ruleFormProxyRemoteIPHeadersArea.value.push(StrArrayListToArea(ruleForm.value.ProxyList[i].RemoteIPHeaders))\n                }\n            }\n            break;\n        default:\n    }\n\n\n\n    if (ruleForm.value.Network == \"tcp4\") {\n        ruleFormListenType.value = [\"tcp4\"]\n    } else if (ruleForm.value.Network == \"tcp6\") {\n        ruleFormListenType.value = [\"tcp6\"]\n    } else if (ruleForm.value.Network == \"tcp\") {\n        ruleFormListenType.value = [\"tcp4\", \"tcp6\"]\n    }\n}\n\n\n\nconst addProxyToRuleFormProxyList = () => {\n    ruleFormProxyDomainsArea.value.push(\"\")\n    ruleFormProxyLocationsArea.value.push(\"\")\n    ruleFormProxyUserAgentfilterArea.value.push(\"\")\n    ruleFormProxyTrustedCIDRsStrListArea.value.push(`0.0.0.0/0\n::/0`)\n    ruleFormProxyRemoteIPHeadersArea.value.push(`X-Forwarded-For\nX-Real-IP`)\n\n    ruleForm.value.ProxyList.push({\n        Enable: true,\n        Key: \"\",\n        Remark: \"\",\n        Domains: [\"\"],\n        Locations: [\"\"],\n        EnableAccessLog: true,\n        LogLevel: 4,\n        LogOutputToConsole: false,\n        AccessLogMaxNum: 1000,\n        WebListShowLastLogMaxCount: 10,\n        RequestInfoLogFormat: \"[#{clientIP}][#{remoteIP}]#{tab}[#{method}][#{host}#{url}]\",\n        ForwardedByClientIP: false,\n        TrustedCIDRsStrList: [\"\"],\n        RemoteIPHeaders: [\"\"],\n        AddRemoteIPToHeader: false,\n        AddRemoteIPHeaderKey: \"\",\n        EnableBasicAuth: false,\n        BasicAuthUser: \"\",\n        BasicAuthPasswd: \"\",\n        SafeIPMode: \"blacklist\",\n        SafeUserAgentMode: \"blacklist\",\n        UserAgentfilter: [\"\"],\n        CustomRobotTxt: false,\n        RobotTxt: \"User-agent:  *\\nDisallow:  /\"\n    })\n\n    var len = ruleForm.value.ProxyList.length\n    fromChildARuleActiveName.value = len - 1\n}\n\nconst deleteProxyToRuleFormProxyList = (index: number) => {\n\n\n    ElMessageBox.confirm(\n        '确认要删除第 ' + (index + 1) + \" 条反向代理设置?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    ).then(() => {\n\n        ruleForm.value.ProxyList.splice(index, 1)\n        ruleFormProxyDomainsArea.value.splice(index, 1)\n        ruleFormProxyLocationsArea.value.splice(index, 1)\n        ruleFormProxyUserAgentfilterArea.value.splice(index, 1)\n        ruleFormProxyTrustedCIDRsStrListArea.value.splice(index, 1)\n        ruleFormProxyRemoteIPHeadersArea.value.splice(index, 1)\n    })\n}\n\nconst deleteReverseProxyRule = (rule) => {\n    var ruleName = rule.RuleName == '' ? '未命名' : rule.RuleName\n\n    ElMessageBox.confirm(\n        '确认要删除 ' + ruleName + \" 反向代理规则?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    ).then(() => {\n\n        apiDeleteReverseProxyRule(rule.RuleKey).then((res) => {\n            if (res.ret == 0) {\n                MessageShow(\"success\", \"反向代理规则删除成功\")\n                queryRuleList()\n                return\n            }\n            MessageShow(\"error\", res.msg)\n        }).catch((error) => {\n            console.log(\"反向代理规则删除失败,网络请求出错:\" + error)\n            MessageShow(\"error\", \"反向代理规则删除失败,网络请求出错\")\n        })\n\n    })\n}\n\nconst ruleEnableClick = (enable, rule) => {\n    const enableText = enable == false ? \"启用\" : \"禁用\";\n\n    const ruleName = \"[\" + (rule.RuleName == '' ? '未命名' : rule.RuleName) + \"]\"\n\n    return new Promise((resolve, reject) => {\n\n        ElMessageBox.confirm(\n            '确认要' + enableText + \"反向代理规则 \" + ruleName + \"?\",\n            'Warning',\n            {\n                confirmButtonText: '确认',\n                cancelButtonText: '取消',\n                type: 'warning',\n            }\n        )\n            .then(() => {\n                apiReverseProxyRuleEnable(rule.RuleKey, \"\", !enable).then(res => {\n                    if (res.ret == 0) {\n                        resolve(true)\n                        MessageShow(\"success\", \"反向代理规则  \" + ruleName + enableText + \"成功\")\n                        return\n                    }\n                    resolve(false)\n                    MessageShow(\"error\", \"反向代理规则 \" + ruleName + enableText + \"失败: \" + res.msg)\n\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                }).catch((error) => {\n                    resolve(false)\n                    console.log(\"反向代理规则 \" + ruleName + enableText + \"失败\" + \":请求出错\" + error)\n                    MessageShow(\"error\", \"反向代理规则 \" + ruleName + enableText + \"失败\" + \":请求出错\")\n                })\n\n            })\n            .catch(() => {\n                resolve(false)\n            })\n\n\n\n    })\n}\n\nconst subruleEnableClick = (enable, rule, proxy) => {\n    const enableText = enable == false ? \"启用\" : \"禁用\";\n\n    const ruleName = \"[\" + (rule.RuleName == '' ? '未命名' : rule.RuleName) + \"]\"\n    const proxyName = \"[\" + (proxy.Remark == '' ? '未命名' : proxy.Remark) + \"]\"\n\n    return new Promise((resolve, reject) => {\n\n        ElMessageBox.confirm(\n            '确认要' + enableText + \"反向代理规则 \" + ruleName + \"的子规则 \" + proxyName + \"?\",\n            'Warning',\n            {\n                confirmButtonText: '确认',\n                cancelButtonText: '取消',\n                type: 'warning',\n            }\n        )\n            .then(() => {\n                apiReverseProxyRuleEnable(rule.RuleKey, proxy.Key, !enable).then(res => {\n                    if (res.ret == 0) {\n                        resolve(true)\n                        MessageShow(\"success\", \"反向代理规则  \" + ruleName + \"的子规则 \" + proxyName + enableText + \"成功\")\n                        return\n                    }\n                    resolve(false)\n                    MessageShow(\"error\", \"反向代理规则 \" + ruleName + \"的子规则 \" + proxyName + enableText + \"失败: \" + res.msg)\n\n                    if (res.syncres != undefined && res.syncres != \"\") {\n                        Notification(\"warn\", res.syncres, 0)\n                    }\n                }).catch((error) => {\n                    resolve(false)\n                    console.log(\"反向代理规则 \" + ruleName + \"的子规则 \" + proxyName + enableText + \"失败\" + \":请求出错\" + error)\n                    MessageShow(\"error\", \"反向代理规则 \" + ruleName + \"的子规则 \" + proxyName + enableText + \"失败\" + \":请求出错\")\n                })\n\n            })\n            .catch(() => {\n                resolve(false)\n            })\n\n\n\n    })\n}\n\n\n\nconst exeAddOrAlterRuleOption = () => {\n\n    // if (ruleForm.value.ProxyList.length <= 0) {\n    //     MessageShow(\"error\", \"至少添加一条反向代理转发规则\")\n    //     return\n    // }\n\n    ruleForm.value.DefaultProxy.TrustedCIDRsStrList = StringToArrayList(ruleFormTrustedCIDRsStrListArea.value)\n    ruleForm.value.DefaultProxy.RemoteIPHeaders = StringToArrayList(ruleFormRemoteIPHeaderstArea.value)\n    ruleForm.value.DefaultProxy.UserAgentfilter = StringToArrayList(ruleFormDefaultProxyUserAgentfilterArea.value)\n    ruleForm.value.DefaultProxy.Locations = StringToArrayList(ruleFormDefaultProxyLocationsArea.value)\n    // area 转换\n    for (let i in ruleForm.value.ProxyList) {\n        ruleForm.value.ProxyList[i].Domains = StringToArrayList(ruleFormProxyDomainsArea.value[i])\n        ruleForm.value.ProxyList[i].Locations = StringToArrayList(ruleFormProxyLocationsArea.value[i])\n        ruleForm.value.ProxyList[i].UserAgentfilter = StringToArrayList(ruleFormProxyUserAgentfilterArea.value[i])\n        ruleForm.value.ProxyList[i].TrustedCIDRsStrList = StringToArrayList(ruleFormProxyTrustedCIDRsStrListArea.value[i])\n        ruleForm.value.ProxyList[i].RemoteIPHeaders = StringToArrayList(ruleFormProxyRemoteIPHeadersArea.value[i])\n    }\n\n    for (let i in ruleForm.value.ProxyList) {\n        let indexNum = parseInt(i) + 1\n        let proxy = ruleForm.value.ProxyList[i]\n        console.log(\"proxy domains length: \" + proxy.Domains.length)\n        if (proxy.Domains.length <= 0) {\n            MessageShow(\"error\", \"第 \" + indexNum + \" 条反向代理转发规则中域名不能为空\")\n            return\n        }\n        if (proxy.Locations.length <= 0) {\n            MessageShow(\"error\", \"第 \" + indexNum + \" 条反向代理转发规则中后端地址不能为空\")\n            return\n        }\n    }\n\n\n\n\n    switch (ruleFormOptionType.value) {\n        case \"add\":\n            apiAddReverseProxyRule(ruleForm.value).then((res) => {\n                if (res.ret == 0) {\n                    addRuleDialogVisible.value = false;\n                    MessageShow(\"success\", \"反向代理规则添加成功\")\n\n                    queryRuleList()\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"反向代理规则添加失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"反向代理规则添加失败,网络请求出错\")\n            })\n\n            break;\n        case \"alter\":\n            apiAlterReverseProxyRule(ruleForm.value).then((res) => {\n                if (res.ret == 0) {\n                    addRuleDialogVisible.value = false;\n                    MessageShow(\"success\", \"反向代理规则修改成功\")\n                    queryRuleList()\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"反向代理规则修改失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"反向代理规则修改失败,网络请求出错\")\n            })\n\n            break;\n        default:\n            console.log(\"错误的ruleFormOptionType \" + ruleFormOptionType.value)\n    }\n}\n\nconst queryRuleList = () => {\n    apiGeReverseProxyRuleList().then((res) => {\n        //console.log(res.data)\n        if (res.ret == 0) {\n            if (res.list == undefined || res.list == null) {\n                ruleList.value = []\n            } else {\n                ruleList.value = res.list\n            }\n            return\n        }\n\n\n\n    }).catch((error) => {\n        console.log(\"获取反向代理规则列表出错:\" + error)\n        MessageShow(\"error\", \"获取反向代理规则列表出错\")\n    })\n}\n\nconst reverproxyLogsArrayToTooltipHtml = (rule, proxyKey) => {\n    var res = \"\"\n    if (rule.AccessLogs == undefined || rule.AccessLogs == null) {\n        res = \"暂无日志\"\n        return res\n    }\n\n\n    //console.log(JSON.stringify(rule.AccessLogs))\n\n    console.log()\n\n    for (var key of Object.keys(rule.AccessLogs)) {\n        console.log(\"key:\" + key + \"   proxyKey:\" + proxyKey)\n        if (key != proxyKey) {\n            continue\n        }\n\n        if (rule.AccessLogs[key] == undefined || rule.AccessLogs[key] == null || rule.AccessLogs[key].lengh == 0) {\n            break\n        }\n\n\n\n        for (let i in rule.AccessLogs[key]) {\n\n            let log = rule.AccessLogs[key][i]\n            if(i!=\"0\"){\n                res += '<br />'\n            }\n            res += log.LogTime + \"&nbsp;&nbsp;&nbsp;\" + log.LogContent + '<br />'\n        }\n\n    }\n\n\n\n\n\n    // rule.AccessLogs.forEach(function (proxyLogs) {\n\n    //     console.log(\"fuck  \"+JSON.stringify(proxyLogs))\n    //    // res += log.LogTime + \"&nbsp;&nbsp;&nbsp;\" + log.LogContent + '<br />'\n    // });\n\n    if (res == \"\") {\n        res = \"暂无日志\"\n    }\n\n    return res\n}\n\nconst checkAllListenType = ref(false)\nconst listenTypeIsIndeterminate = ref(true)\n\nconst listenTypes = ['tcp4', 'tcp6']\n\nconst handleCheckAllChange = (val: CheckboxValueType) => {\n    ruleForm.value.Network = val ? \"tcp\" : ''\n    ruleFormListenType.value = val ? ['tcp4', 'tcp6'] : []\n    listenTypeIsIndeterminate.value = false\n\n}\nconst handleCheckedProxyTypesChange = (value: CheckboxValueType[]) => {\n    const checkedCount = value.length\n    checkAllListenType.value = checkedCount === listenTypes.length\n    listenTypeIsIndeterminate.value = checkedCount > 0 && checkedCount < listenTypes.length\n\n\n    ruleForm.value.Network = getListenTypeByList(value)\n}\n\nconst getListenTypeByList = (list: CheckboxValueType[]) => {\n    let listLength = list.length\n    switch (listLength) {\n        case 0:\n            return \"\"\n        case 1:\n            return list[0] + ''\n        case 2:\n            return \"tcp\"\n        default:\n            return \"\"\n    }\n}\n\nvar timerID: any\nonMounted(() => {\n    queryRuleList();\n\n    timerID = setInterval(() => {\n        queryRuleList();\n    }, 1500);\n})\n\nonUnmounted(() => {\n    clearInterval(timerID)\n})\n\n\n</script>\n\n<style scoped>\n.ReverseProxyPageRadius {\n    height: 90vh;\n    width: 100%;\n    max-width: 1600px;\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 20px\n}\n\n.affix-container {\n    text-align: center;\n    border-radius: 4px;\n    width: 3vw;\n    background: var(--el-color-primary-light-9);\n}\n\n\n.fromitemDivRadius {\n    border: 5px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 530px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.fromitemChildDivRadius {\n    border: 4px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 495px;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.fromitemChildSafeDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 465px;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n}\n\n.itemradius {\n\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin-left: 3px;\n    margin-top: 3px;\n    margin-right: 3px;\n    margin-bottom: 10px;\n    min-width: 1350px;\n}\n\n.reverseProxyLogs {\n    background-color: black;\n    height: fit-content;\n    width: 100%;\n    color: white;\n    text-align: left;\n    padding-left: 3px;\n\n    border: 10px;\n    overflow-y: auto;\n    overflow-x: auto;\n    white-space: pre-wrap;\n\n\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/SSL.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <!-- <el-affix position=\"bottom\" :offset=\"0\" class=\"affix-container\">\n            <el-button type=\"primary\" @click=\"showAddSSLDialog\">SSL证书添加 <el-icon>\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix> -->\n\n\n\n        <el-scrollbar height=\"100%\">\n\n\n\n            <div class=\"itemradius\" :style=\"{\n                borderRadius: 'base',\n            }\" v-for=\"ssl in SSLList\">\n\n                <el-descriptions :column=\"6\" border>\n                    <el-descriptions-item label=\"证书备注\" :span=\"2\">\n                        <el-button size=\"small\" v-show=\"true\">\n                            {{ ssl.Remark == '' ? '未备注' : ssl.Remark }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"添加时间\" :span=\"2\">\n                        <el-button size=\"small\" v-show=\"true\">\n                            {{ ssl.AddTime }}\n                        </el-button>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"操作\" :span=\"2\">\n\n                        <el-tooltip :content=\"ssl.Enable == true ? '证书已启用' : '证书已禁用'\" placement=\"top\">\n                            <el-switch v-model=\"ssl.Enable\" inline-prompt active-text=\"开\" inactive-text=\"关\"\n                                :before-change=\"sslEnableClick.bind(this, ssl.Enable, ssl)\" size=\"large\" />\n                        </el-tooltip>\n\n                        &nbsp;&nbsp;\n                        <el-button size=\"small\" type=\"primary\" @click=\"showAlterRemarkDialog(ssl)\">修改备注</el-button>\n\n\n\n                        <el-button size=\"small\" type=\"danger\" @click=\"deleteSSL(ssl)\">删除</el-button>\n                    </el-descriptions-item>\n\n                    <div v-for=\"cert in ssl.CertsInfo\">\n                        <!-- <el-descriptions :column=\"6\" border> -->\n                        <el-descriptions-item label=\"绑定域名\" :span=\"2\">\n                            <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    <span v-html=\"StrArrayListToBrHtml(cert.Domains)\"></span>\n                                </template>\n                                <el-button size=\"small\" v-show=\"true\" type=\"primary\">\n                                    {{cert.Domains.length==1?cert.Domains[0]:cert.Domains[0]+'...'}}\n                                </el-button>\n                            </el-tooltip>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"颁发时间\" :span=\"2\">\n                            <el-button size=\"small\" v-show=\"true\" type=\"info\">\n                                {{ cert.NotBeforeTime }}\n                            </el-button>\n                        </el-descriptions-item>\n\n                        <el-descriptions-item label=\"到期时间\" :span=\"2\">\n                            <el-button size=\"small\" v-show=\"true\" type=\"warning\">\n                                {{ cert.NotAfterTime }}\n                            </el-button>\n                        </el-descriptions-item>\n\n\n                        <!-- </el-descriptions> -->\n                    </div>\n\n                </el-descriptions>\n\n\n\n            </div>\n\n\n\n\n\n\n\n        </el-scrollbar>\n\n        <el-affix position=\"bottom\" :offset=\"30\" class=\"affix-container\">\n            <el-button type=\"primary\" :round=true @click=\"showAddSSLDialog\">SSL证书添加\n                <el-icon class=\"el-icon--right\">\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n\n\n\n        <el-dialog v-if=\"addSSLDialogVisible\" v-model=\"addSSLDialogVisible\" title=\"添加SSL证书\" draggable\n            :show-close=\"false\" :close-on-click-modal=\"false\" width=\"400px\">\n\n            <el-form :model=\"addSSLForm\">\n\n                <el-form-item label=\"备注\" label-width=\"auto\">\n                    <el-input v-model=\"addSSLForm.Remark\" autocomplete=\"off\" />\n                </el-form-item>\n\n                <el-form-item label=\"证书\" label-width=\"auto\">\n                    <el-upload class=\"inline-block\" :multiple=\"true\" :action=\"getFileBase64API()\"\n                        :before-upload=\"beforeUpload\" :show-file-list=\"false\" :headers=\"{ 'Authorization': GetToken() }\"\n                        :on-success=\"callbackGetCreFileBase64\">\n                        <el-button round class='margin-change'>{{uploadCreButtontext}}</el-button>\n                    </el-upload>\n\n                </el-form-item>\n\n                <el-form-item label=\"Key\" label-width=\"auto\">\n                    <el-upload class=\"inline-block\" :multiple=\"true\" :action=\"getFileBase64API()\"\n                        :before-upload=\"beforeUpload\" :show-file-list=\"false\" :headers=\"{ 'Authorization': GetToken() }\"\n                        :on-success=\"callbackGetKeyFileBase64\">\n                        <el-button round class='margin-change'>{{uploadKeyButtontext}}</el-button>\n                    </el-upload>\n                </el-form-item>\n\n            </el-form>\n\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"addSSLDialogVisible = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"addSSL\">添加</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n        <el-dialog v-if=\"alterRemarkDialogShow\" v-model=\"alterRemarkDialogShow\" :title=alterRemarkDialogSSLText\n            draggable :show-close=\"false\" :close-on-click-modal=\"false\" width=\"400px\">\n            <el-form-item label=\"备注\" label-width=\"auto\">\n                <el-input v-model=\"alterRemarkDialogValue\" autocomplete=\"off\" />\n            </el-form-item>\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"alterRemarkDialogShow = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"alterSSLRemark\">修改</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, computed } from 'vue'\nimport { ElMessageBox } from 'element-plus'\nimport { MessageShow } from '../utils/ui'\nimport { StrArrayListToBrHtml } from '../utils/utils'\nimport { GetToken, apiAddSSL, apiGetSSLList, apiDeleteSSL, apiAlterSSL } from '../apis/utils'\nimport type { UploadProps } from 'element-plus'\nvar SSLList = ref([\n    {\n        Key: \"\",\n        Remark: \"\",\n        Enable: true,\n        AddTime: \"\",\n        CertsInfo: [{\n            Domains: [''],\n            NotBeforeTime: '',\n            NotAfterTime: ''\n        },]\n    }\n])\n\n\nconst addSSLDialogVisible = ref(false)\nconst addSSLForm = ref({ Remark: \"\", CertBase64: \"\", KeyBase64: \"\" })\nconst uploadCreButtontext = ref(\"\")\nconst uploadKeyButtontext = ref(\"\")\n\nconst getFileBase64API = () => {\n    var baseURL = \"/\" //\n    if (process.env.NODE_ENV == \"development\") {\n        //开发环境下这个改为自己的接口地址\n        baseURL = 'http://192.168.31.70:16601/'\n    }\n    return baseURL + \"api/getfilebase64\"\n}\n\n\nconst alterRemarkDialogShow = ref(false)\nconst alterRemarkDialogValue = ref(\"\")\nconst alterRemarkDialogSSLText = ref(\"\")\nconst alterRemarkDialogSSLKey = ref(\"\")\n\nconst showAlterRemarkDialog = (ssl) => {\n\n    alterRemarkDialogShow.value = true\n    alterRemarkDialogSSLKey.value = ssl.Key\n    alterRemarkDialogValue.value = ssl.Remark\n    alterRemarkDialogSSLText.value = ssl.CertsInfo[0].Domains[0];\n}\n\nconst callbackGetCreFileBase64 = (res: any, uploadFile: any, uploadFiles: any) => {\n    if (res.ret != 0) {\n        MessageShow(\"error\", res.msg)\n        return\n    }\n    console.log(\"file:\" + res.file)\n    uploadCreButtontext.value = res.file\n    //console.log(\"base64:\"+res.base64)\n    addSSLForm.value.CertBase64 = res.base64\n}\n\nconst beforeUpload: UploadProps['beforeUpload'] = (rawFile) => {\n    if (rawFile.size / 1024 / 1024 > 1) {\n        MessageShow(\"error\",'文件不能大于1M')\n        return false\n    }\n    return true\n}\n\nconst callbackGetKeyFileBase64 = (res: any, uploadFile: any, uploadFiles: any) => {\n    if (res.ret != 0) {\n        MessageShow(\"error\", res.msg)\n        return\n    }\n    console.log(\"file:\" + res.file)\n    uploadKeyButtontext.value = res.file\n    //console.log(\"base64:\"+res.base64)\n    addSSLForm.value.KeyBase64 = res.base64\n}\n\n\nconst showAddSSLDialog = () => {\n    addSSLDialogVisible.value = true\n    addSSLForm.value.CertBase64 = \"\"\n    addSSLForm.value.KeyBase64 = \"\"\n    uploadCreButtontext.value = \"选择要上传的证书文件\"\n    uploadKeyButtontext.value = \"选择要上传的Key文件\"\n}\n\n\n\nconst sslEnableClick = (enable, ssl) => {\n    const enableText = enable == false ? \"启用\" : \"禁用\";\n\n    const sslText = ssl.Remark != \"\" ? ssl.Remark : ssl.CertsInfo[0].Domains[0];\n\n    const sslName = \"[\" + sslText + \"]\"\n\n    return new Promise((resolve, reject) => {\n\n        ElMessageBox.confirm(\n            '确认要' + enableText + \" 证书 \" + sslName + \"?\",\n            'Warning',\n            {\n                confirmButtonText: '确认',\n                cancelButtonText: '取消',\n                type: 'warning',\n            }\n        )\n            .then(() => {\n                apiAlterSSL(ssl.Key, \"enable\", !enable).then(res => {\n                    if (res.ret == 0) {\n                        resolve(true)\n                        MessageShow(\"success\", \"证书  \" + sslName + enableText + \"成功\")\n                        return\n                    }\n                    resolve(false)\n                    MessageShow(\"error\", \"证书 \" + sslName + enableText + \"失败: \" + res.msg)\n\n                    // if (res.syncres != undefined && res.syncres != \"\") {\n                    //     Notification(\"warn\", res.syncres, 0)\n                    // }\n                }).catch((error) => {\n                    resolve(false)\n                    console.log(\"证书 \" + sslName + enableText + \"失败\" + \":请求出错\" + error)\n                    MessageShow(\"error\", \"证书 \" + sslName + enableText + \"失败\" + \":请求出错\")\n                })\n\n            })\n            .catch(() => {\n                resolve(false)\n            })\n\n\n\n    })\n}\n\nconst alterSSLRemark = () => {\n\n\n    apiAlterSSL(alterRemarkDialogSSLKey.value, \"remark\", alterRemarkDialogValue.value).then(res => {\n        if (res.ret == 0) {\n            alterRemarkDialogShow.value = false\n            MessageShow(\"success\", \"证书  \" + alterRemarkDialogSSLText.value + \" 备注修改成功\")\n            querySSLList()\n\n            return\n        }\n        MessageShow(\"error\", \"证书 \" + alterRemarkDialogSSLText.value + \" 备注修改失败: \" + res.msg)\n    }).catch((error) => {\n        console.log(\"证书 \" + alterRemarkDialogSSLText.value + \" 备注修改失败\" + \":请求出错\" + error)\n        MessageShow(\"error\", \"证书 \" + alterRemarkDialogSSLText.value + \" 备注修改失败\" + \":请求出错\")\n    })\n\n\n}\n\n\n\n\n\nconst addSSL = () => {\n\n    if (addSSLForm.value.CertBase64 == \"\") {\n        MessageShow(\"error\", \"请选择要保存的证书文件\")\n        return\n    }\n\n    if (addSSLForm.value.KeyBase64 == \"\") {\n        MessageShow(\"error\", \"请选择要保存的Key文件\")\n        return\n    }\n    apiAddSSL(addSSLForm.value).then((res) => {\n        if (res.ret == 0) {\n            //let item = { IP: addWhiteListForm.value.IP, Effectivetime: res.data }\n            //whitelist.value.push(item)\n            addSSLDialogVisible.value = false\n            MessageShow(\"success\", \"添加证书成功\")\n            querySSLList()\n            return\n        }\n        MessageShow(\"error\", res.msg)\n\n    }).catch((error) => {\n        console.log(\"添加SSL证书出错 \" + error)\n        MessageShow(\"error\", \"添加SSL证书出错 \" + error)\n\n    })\n}\n\nconst deleteSSL = (ssl) => {\n    const sslText = ssl.Remark != \"\" ? ssl.Remark : ssl.CertsInfo[0].Domains[0];\n    ElMessageBox.confirm(\n        '确认要删除 ' + sslText + \"  的证书?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    ).then(() => {\n\n        apiDeleteSSL(ssl.Key).then((res) => {\n            if (res.ret == 0) {\n                MessageShow(\"success\", \"证书删除成功\")\n                querySSLList()\n                return\n            }\n            MessageShow(\"error\", res.msg)\n        }).catch((error) => {\n            console.log(\"证书删除失败,网络请求出错:\" + error)\n            MessageShow(\"error\", \"证书删除失败,网络请求出错\")\n        })\n\n    })\n}\n\n\nconst querySSLList = () => {\n    apiGetSSLList().then((res) => {\n        if (res.ret == 0) {\n            console.log(res.list)\n            if (res.list != null) {\n\n                SSLList.value = res.list\n            } else {\n                // whitelist.value= []\n                SSLList.value = []\n            }\n\n            return\n        }\n        MessageShow(\"error\", res.msg)\n        //console.log(\"getAdminURL \"+getAdminURL())\n    }).catch((error) => {\n        MessageShow(\"error\", \"查询证书列表列表出错\")\n    })\n}\n\nconst keydown = (e) => {\n    if (e.keyCode != 13) {\n        return\n    }\n    if (!addSSLDialogVisible.value) {\n        return\n    }\n    addSSL()\n}\n\nonMounted(() => {\n    querySSLList();\n    window.addEventListener('keydown', keydown)\n\n})\n\n</script>\n\n<style scoped>\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n\n}\n\n.itemradius {\n\n    border: 1px solid var(--el-border-color);\n    border-radius: 0;\n    margin-left: 3px;\n    margin-top: 3px;\n    margin-right: 3px;\n    margin-bottom: 25px;\n    min-width: 1350px;\n}\n\n.affix-container {\n    text-align: center;\n    border-radius: 4px;\n    width: 3vw;\n    background: var(--el-color-primary-light-9);\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/Status.vue",
    "content": "<template>\n    <div id=\"status\" v-loading=\"logLoading\" element-loading-background=\"transparent\">\n        <p class=\"status\">总内存:{{ status.totleMem }} 已用:{{ status.usedMem }} 未用:{{ status.unusedMem }}</p>\n        <p class=\"status\">CPU全局使用率:{{ status.usedCPU }}</p>\n        <p class=\"status\">当前进程CPU使用率:{{ status.currentProcessUsedCPU }}</p>\n        <p class=\"status\">进程协程数:{{ status.goroutine }} 占用内存:{{ status.processUsedMem }}</p>\n        <p class=\"status\">端口转发TCP总连接数:{{ status.currentTCPConnections }} </p>\n        <p class=\"status\">端口转发全局UDP读取目标地址数据协程数:{{ status.currentUDPConnections }} </p>\n        <p class=\"status\">端口转发TCP全局限制连接数:{{ status.maxTCPConnections }}</p>\n        <p class=\"status\">Lucky 启动时间:{{ status.runTime }}</p>\n\n\n\n    </div>\n</template>\n\n\n<style>\n#status {\n    height: 95vh;\n}\n\n.status {\n    font-size: 15px;\n}\n\n#proxys_status {\n    font-size: 10px;\n    list-style: none;\n    padding: 0;\n    margin: 0;\n\n    text-align: left;\n    margin-left: 0px;\n}\n</style>\n\n<script setup lang=\"ts\">\n\nimport { apiGetStatus } from '../apis/utils'\nimport { onMounted, onUnmounted, ref,inject } from 'vue'\nimport { ElNotification } from 'element-plus'\n\nconst global:any = inject(\"global\")\n\n\n\nvar logLoading = ref(true)\n\nconst clickTest = ()=>{\nElNotification({\n    title: 'Prompt',\n    message: 'This is a message that does not automatically close',\n    duration: 0,\n  })\n}\n\n\nvar status=ref({totleMem: '0m',\n            usedMem:'0m',\n            unusedMem:'0m',\n            usedCPU:\"0%\",\n            currentProcessUsedCPU:\"0%\",\n            goroutine:\"0\",\n            processUsedMem:\"0m\",\n            currentTCPConnections:0,\n            currentUDPConnections:0,\n            maxTCPConnections:0,\n            proxysStatus:\"\",\n            runTime:\"\"})\n\nvar timerID:any\n\nfunction flushStatus() {\n    if(global.currentPage.value!=\"#status\"){\n        return ;\n    }\n\n    apiGetStatus().then((res) => {\n         logLoading.value =false\n        status.value = res.data\n    })\n}\n\n\n\nonMounted(() => {\n    flushStatus();\n    timerID = setInterval(() => {\n        flushStatus();\n    }, 3000);\n});\n\nonUnmounted(() => {\n    //console.log(\"onUnmounted status page \")\n    clearInterval(timerID)\n});\n\n\n\n</script>\n\n\n"
  },
  {
    "path": "web/adminviews/src/components/WhiteListSet.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n\n                    <div class=\"whitelistConfigure\">\n                        <el-form :model=\"whiteListBaseConfigureForm\" class=\"SetForm\" label-width=\"auto\">\n\n                            <el-form-item label=\"自定义URL\" id=\"whitelisturl\">\n                                <el-input v-model=\"whiteListBaseConfigureForm.URL\" placeholder=\"自定义URL\"\n                                    autocomplete=\"off\" style=\"witdh:250px;margin-bottom:4px;\" />\n                                <el-tooltip class=\"box-item oneLine\" effect=\"dark\" placement=\"bottom\"\n                                    :content=\"getWhiteListURL\">\n                                    <el-button type=\"info\" round @click=\"copyRelayConfigure(getWhiteListURL)\"\n                                        style=\"margin-right: 10px;\">复制</el-button>\n                                </el-tooltip>\n                                <a>{{ getNewWhiteListURL }}</a>\n                            </el-form-item>\n\n                            <el-form-item label=\"有效时长(小时)\" id=\"whitelistActivelifeDuration\">\n                                <el-input-number v-model=\"whiteListBaseConfigureForm.ActivelifeDuration\"\n                                    autocomplete=\"off\" :min=\"1\" :max=\"99999\" />\n                            </el-form-item>\n\n                            <el-form-item label=\"认证账号\" id=\"basicAccount\">\n                                <el-input v-model=\"whiteListBaseConfigureForm.BasicAccount\" placeholder=\"认证账号\"\n                                    autocomplete=\"off\" style=\"witdh:250px;\" />\n                            </el-form-item>\n\n                            <el-form-item label=\"认证密码\" id=\"basicPassword\">\n                                <el-input v-model=\"whiteListBaseConfigureForm.BasicPassword\" placeholder=\"认证密码\"\n                                    autocomplete=\"off\" />\n                            </el-form-item>\n                        </el-form>\n                        <el-button type=\"primary\" round @click=\"SaveWhiteListConfigure\">保存配置</el-button>\n                    </div>\n\n\n            </div>\n\n\n        </el-scrollbar>\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, computed } from 'vue'\nimport {MessageShow} from '../utils/ui'\nimport {CopyTotoClipboard} from '../utils/utils'\nimport { apiAlterWhiteListConfigure, apiGetWhiteListConfigure} from '../apis/utils'\n\nconst whiteListBaseConfigureForm = ref({\n    URL: \"\",\n    ActivelifeDuration: 36,\n    BasicAccount: \"\",\n    BasicPassword: \"\",\n})\n\nconst preWhiteListBaseConfigureForm = ref({\n    URL: \"\",\n    ActivelifeDuration: 36,\n    BasicAccount: \"\",\n    BasicPassword: \"\",\n})\n\nconst getWhiteListURL = computed(() => {\n    if (preWhiteListBaseConfigureForm.value.URL == undefined || preWhiteListBaseConfigureForm.value.URL == \"\") {\n        return window.location.protocol + \"//\" + window.location.hostname + \":\" + window.location.port + \"/wl\"\n    }\n    return window.location.protocol + \"//\" + window.location.hostname + \":\" + window.location.port + \"/wl/\" + preWhiteListBaseConfigureForm.value.URL\n})\n\nconst getNewWhiteListURL = computed(() => {\n    if (whiteListBaseConfigureForm.value.URL == undefined || whiteListBaseConfigureForm.value.URL == \"\") {\n        return window.location.protocol + \"//\" + window.location.hostname + \":\" + window.location.port + \"/wl\"\n    }\n    return window.location.protocol + \"//\" + window.location.hostname + \":\" + window.location.port + \"/wl/\" + whiteListBaseConfigureForm.value.URL\n})\n\nconst copyRelayConfigure = (url: string) => {\n    CopyTotoClipboard(url)\n    MessageShow('success', '白名单认证地址 ' + url + ' 已复制到剪切板')\n}\n\n\n\n\nconst SaveWhiteListConfigure = () => {\n    apiAlterWhiteListConfigure(whiteListBaseConfigureForm.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"保存成功\")\n            preWhiteListBaseConfigureForm.value = whiteListBaseConfigureForm.value\n            return\n        }\n        MessageShow(\"error\", res.msg)\n        //console.log(\"getAdminURL \"+getAdminURL())\n    }).catch((error) => {\n        MessageShow(\"error\", \"查询白名单设置出错\")\n    })\n}\n\nconst queryWhiteListConfigure = () => {\n    apiGetWhiteListConfigure().then((res) => {\n        if (res.ret == 0) {\n            whiteListBaseConfigureForm.value = ref(res.data).value\n            preWhiteListBaseConfigureForm.value.URL = whiteListBaseConfigureForm.value.URL\n            preWhiteListBaseConfigureForm.value.ActivelifeDuration = whiteListBaseConfigureForm.value.ActivelifeDuration\n            preWhiteListBaseConfigureForm.value.BasicAccount = whiteListBaseConfigureForm.value.BasicAccount\n            preWhiteListBaseConfigureForm.value.BasicPassword = whiteListBaseConfigureForm.value.BasicPassword\n            return\n        }\n        MessageShow(\"error\", res.msg)\n        //console.log(\"getAdminURL \"+getAdminURL())\n    }).catch((error) => {\n        MessageShow(\"error\", \"查询白名单设置出错\")\n    })\n}\n\nonMounted(() => {\n    queryWhiteListConfigure()\n\n})\n\n</script>\n\n<style scoped>\n.formradius{\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin:0 auto;\n    width:fit-content;\n    padding:15px;\n\n    \n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/WhiteLists.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n                         <el-affix position=\"bottom\" :offset=\"0\" class=\"affix-container\">\n                    <el-button type=\"primary\" @click=\"showAddWhiteListDialog\">白名单添加 <el-icon>\n                            <Plus />\n                        </el-icon>\n                    </el-button>\n        </el-affix>\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\" >\n\n\n\n\n                <el-table :data=\"whitelist\" style=\"width: 700px\"   height=\"85vh\">\n                    <el-table-column prop=\"IP\" label=\"IP\" width=\"200\" />\n                    <el-table-column prop=\"Effectivetime\" label=\"有效时间\" width=\"200\" />\n                    <el-table-column fixed=\"right\" label=\"操作\" width=\"300\">\n                        <template #default=\"list\">\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"flushWhiteListEffectivetime(list.$index, whitelist[list.$index], 0, '确认要刷新IP[' + whitelist[list.$index].IP + ']的有效时间?')\">\n                                刷新有效时间</el-button>\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"flushWhiteListEffectivetime(list.$index, whitelist[list.$index], 666666, '确认要设置IP[' + whitelist[list.$index].IP + ']为长期有效?')\">\n                                设置永久有效</el-button>\n                            <el-button link type=\"primary\" size=\"small\"\n                                @click=\"deleteWhiteList(list.$index, whitelist[list.$index])\">删除</el-button>\n                        </template>\n                    </el-table-column>\n\n                </el-table>\n\n\n            </div>\n\n\n        </el-scrollbar>\n\n\n\n        <el-dialog v-model=\"addWhiteListDialogVisible\" title=\"添加白名单IP\" draggable :show-close=\"false\" :close-on-click-modal=\"false\" width=\"400px\">\n\n            <el-form :model=\"addWhiteListForm\">\n                <el-form-item label=\"IP\" label-width=\"auto\">\n                    <el-input v-model=\"addWhiteListForm.IP\" autocomplete=\"off\" />\n                </el-form-item>\n                <el-form-item label=\"有效时间(小时)\" label-width=\"auto\">\n                    <el-input-number v-model=\"addWhiteListForm.Life\" :min=\"1\" :max=\"999999\" />\n                </el-form-item>\n\n            </el-form>\n\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"addWhiteListDialogVisible = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"addWhiteList\">添加</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, computed } from 'vue'\nimport {  ElMessageBox } from 'element-plus'\nimport {MessageShow} from '../utils/ui'\nimport {isIP} from '../utils/utils'\nimport { apiGetWhiteList, apiFlushWhiteList, apiDeleteWhiteList, apiGetBlackList, apiFlushBlackList, apiDeleteBlackList } from '../apis/utils'\nvar whitelist = ref([{ IP: \"\", Effectivetime: \"\" }])\nwhitelist.value.splice(0, 1)\n\nconst addWhiteListDialogVisible = ref(false)\nconst addWhiteListForm = ref({ IP: \"\", Life: 0 })\n\nconst showAddWhiteListDialog = () => {\n    addWhiteListDialogVisible.value = true\n    addWhiteListForm.value.IP = \"\"\n    addWhiteListForm.value.Life = 24\n}\n\nconst flushWhiteListEffectivetime = (index, item, life, text) => {\n    ElMessageBox.confirm(\n        text,\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            flushWhiteListlife(index, item.IP, life)\n        })\n        .catch(() => {\n\n        })\n}\n\nconst flushWhiteListlife = (index, ip, life) => {\n    apiFlushWhiteList(ip, life).then((res) => {\n        if (res.ret == 0) {\n            whitelist.value[index].Effectivetime = res.data\n            return\n        }\n        MessageShow(\"error\", res.msg)\n\n    }).catch((error) => {\n        console.log( \"刷新IP[\" + addWhiteListForm.value.IP + \"]有效时间出错 \"+error)\n        MessageShow(\"error\", \"刷新IP[\" + ip + \"]有效时间出错\")\n    })\n}\n\n\n\nconst addWhiteList = () => {\n\n    // if (!isIP(addWhiteListForm.value.IP)) {\n    //     MessageShow(\"error\", \"IP格式有误,请检查修正后再添加\")\n    //     return\n    // }\n\n    apiFlushWhiteList(addWhiteListForm.value.IP, addWhiteListForm.value.Life).then((res) => {\n        if (res.ret == 0) {\n            let item = { IP: addWhiteListForm.value.IP, Effectivetime: res.data }\n            whitelist.value.push(item)\n            addWhiteListDialogVisible.value = false\n            return\n        }\n        MessageShow(\"error\", res.msg)\n\n    }).catch((error) => {\n        console.log( \"刷新IP[\" + addWhiteListForm.value.IP + \"]有效时间出错 \"+error)\n        MessageShow(\"error\", \"刷新IP[\" + addWhiteListForm.value.IP + \"]有效时间出错\")\n    })\n}\n\nconst deleteWhiteList = (index, item) => {\n    ElMessageBox.confirm(\n        '确认要删除IP [' + item.IP + \"]的白名单记录?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            apiDeleteWhiteList(item.IP).then((res) => {\n                if (res.ret == 0) {\n                    whitelist.value.splice(index, 1)\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n\n            }).catch((error) => {\n                MessageShow(\"error\", \"删除[\" + item.IP + \"]的白名单记录出错\")\n            })\n        })\n        .catch(() => {\n\n        })\n}\n\n\n\nconst queryWhiteList = () => {\n    apiGetWhiteList().then((res) => {\n        if (res.ret == 0) {\n            if (res.data!=null){\n                whitelist.value = res.data\n            }else{\n                whitelist.value= []\n            }\n           \n            return\n        }\n        MessageShow(\"error\", res.msg)\n        //console.log(\"getAdminURL \"+getAdminURL())\n    }).catch((error) => {\n        MessageShow(\"error\", \"查询白名单列表出错\")\n    })\n}\n\nconst keydown = (e)=>{\n    if (e.keyCode != 13) {\n    return \n  }\n  if(!addWhiteListDialogVisible.value ){\n    return \n  }\n  addWhiteList()\n}\n\nonMounted(() => {\n    queryWhiteList();\n    window.addEventListener('keydown', keydown)\n\n})\n\n</script>\n\n<style scoped>\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n\n\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/components/tools/WOL.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n        <el-scrollbar height=\"100%\">\n\n            <div class=\"itemradius\" :style=\"{\n                borderRadius: 'base',\n            }\"  v-for=\"device in deviceList\" >\n\n                <el-descriptions :column=\"4\" border >\n\n                    <el-descriptions-item label=\"设备操作\">\n                            <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                唤醒<br />\n                            </template>\n                            <el-button size=\"small\" :icon=\"Bell\" circle type=\"success\" @click=\"wakeup(device)\">\n                            </el-button>\n                        </el-tooltip>\n\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                关机<br />\n                            </template>\n                            <el-button size=\"small\" :icon=\"SwitchButton\" circle type=\"danger\">\n                            </el-button>\n                        </el-tooltip>\n\n                        &nbsp; &nbsp; \n\n                        <el-button size=\"small\" type=\"primary\" @click=\"showAlterDeviceDialog(device)\">\n                            编辑\n                        </el-button>\n\n                        <el-button size=\"small\" type=\"danger\" @click=\"deleteDevice(device)\">\n                            删除\n                        </el-button>\n                        </el-descriptions-item>\n\n                    <el-descriptions-item label=\"设备名称\" >\n                        <el-button size=\"default\" v-show=\"true\">\n                            {{ device.DeviceName == '' ? '未命名设备' : device.DeviceName }}\n                        </el-button>\n                    </el-descriptions-item>\n\n\n\n\n\n\n\n\n                    \n\n                    <el-descriptions-item label=\"设备MAC\">\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"StrArrayListToBrHtml(device.MacList)\"></span>\n                            </template>\n                            <el-button size=\"small\" v-show=\"true\">\n                                {{device.MacList.length==1?device.MacList[0]:device.MacList[0]+'...' }}\n                            </el-button>\n                        </el-tooltip>\n                    </el-descriptions-item>\n\n                    <el-descriptions-item label=\"魔法包广播地址\">\n                        <el-tooltip placement=\"bottom\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                <span v-html=\"StrArrayListToBrHtml(device.BroadcastIPs)\"></span>\n                            </template>\n                            <el-button size=\"small\" v-show=\"true\">\n                                {{device.BroadcastIPs.length==1?device.BroadcastIPs[0]:device.BroadcastIPs[0]+'...' }}\n                            </el-button>\n                        </el-tooltip>\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                端口<br />\n                            </template>\n                            <el-button size=\"small\" v-show=\"true\">\n                                {{device.Port}}\n                            </el-button>\n\n                        </el-tooltip>\n\n                    </el-descriptions-item>\n\n\n\n\n\n                </el-descriptions>\n\n            </div>\n\n        </el-scrollbar>\n\n        <el-affix position=\"bottom\" :offset=\"30\" class=\"affix-container\">\n            <el-button type=\"primary\" :round=true @click=\"showAddDeviceDialog\">添加可唤醒的设备\n                <el-icon class=\"el-icon--right\">\n                    <Plus />\n                </el-icon>\n            </el-button>\n        </el-affix>\n\n        <el-dialog v-if=\"deviceDialogShow\" v-model=\"deviceDialogShow\" :title=deviceDialogTitle draggable\n            :show-close=\"false\" :close-on-click-modal=\"false\" width=\"400px\">\n            <el-form-item label=\"设备名称\" label-width=\"120px\">\n                <el-input v-model=\"deviceForm.DeviceName\" autocomplete=\"off\" />\n            </el-form-item>\n\n            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                <template #content>\n                    每行填写一个MAC<br />\n                    一般情况填写一个MAC地址即可<br />\n                </template>\n\n                <el-form-item label-width=\"120px\" label=\"设备MAC\">\n                    <el-input v-model=\"deviceFormMacListArea\" :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                        type=\"textarea\" wrap=\"off\">\n                    </el-input>\n                </el-form-item>\n            </el-tooltip>\n\n\n            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                <template #content>\n                    不建议使用255.255.255.255<br />\n                    一般家用情况,如果路由器的管理地址是192.168.31.1,则填写192.168.31.255作为广播地址<br />\n                    菜鸟没法确定的话可留空,程序会遍历全部IPV4地址发送广播<br />\n                    每行填写一个广播地址<br />\n                    一般情况填写一个广播地址即可<br />\n                </template>\n\n                <el-form-item label-width=\"120px\" label=\"魔方包广播地址\">\n                    <el-input v-model=\"deviceFormBroadcastIPsArea\" :autosize=\"{ minRows: 1, maxRows: 3 }\" placeholder=\"\"\n                        type=\"textarea\" wrap=\"off\">\n                    </el-input>\n                </el-form-item>\n            </el-tooltip>\n\n\n            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                <template #content>\n                    默认端口为9<br />\n                    没特殊情况不要修改<br />\n                </template>\n                <el-form-item label=\"端口\" label-width=\"120px\" :min=\"1\" :max=\"65535\">\n                    <el-input-number v-model=\"deviceForm.Port\" autocomplete=\"off\" />\n                </el-form-item>\n            </el-tooltip>\n\n            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                <template #content>\n                    每次执行唤醒时重复发送魔方包的次数<br />\n                    可设置范围(1-10)<br />\n                </template>\n                <el-form-item label=\"重复次数\" label-width=\"120px\" :min=\"1\" :max=\"10\">\n                    <el-input-number v-model=\"deviceForm.Repeat\" autocomplete=\"off\" />\n                </el-form-item>\n            </el-tooltip>\n\n\n            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                <template #content>\n                    一般情况忽略即可<br />\n                    目标唤醒设备和lucky不在同一局域网时才用得上这个开关<br />\n                    发送广播的同时交给中继设备发送<br />\n                </template>\n                <el-form-item label=\"转播开关\" label-width=\"120px\" v-if=\"true\">\n                    <el-switch v-model=\"deviceForm.Relay\" inline-prompt width=\"50px\" active-text=\"启用\"\n                        inactive-text=\"禁用\" />\n                </el-form-item>\n            </el-tooltip>\n\n\n\n\n            <template #footer>\n                <span class=\"dialog-footer\">\n                    <el-button @click=\"deviceDialogShow = false\">取消</el-button>\n                    <el-button type=\"primary\" @click=\"addOreAlterDevice\">{{deviceDialogCommitButtonText}}</el-button>\n                </span>\n            </template>\n        </el-dialog>\n\n\n    </div>\n\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, computed } from 'vue'\nimport { ElMessageBox } from 'element-plus'\nimport { MessageShow } from '../../utils/ui'\nimport { StrArrayListToBrHtml, StrArrayListToArea, StringToArrayList } from '../../utils/utils'\nimport { GetToken, apiGetWOLDeviceList, apiAddWOLDevice, apiDeleteWOLDevice, apiAlterWOLDevice,apiWOLDeviceWakeUp } from '../../apis/utils'\n\nimport {\n    SwitchButton,\n    AlarmClock,\n    Bell,\n} from '@element-plus/icons-vue'\n\nconst deviceDialogShow = ref(false)\nconst deviceDialogTitle = ref(\"\")\nconst deviceDialogCommitButtonText = ref(\"\")\nconst deviceFormMacListArea = ref(\"\")\nconst deviceFormBroadcastIPsArea = ref(\"\")\nconst deviceFormActionType = ref(\"\")\n\nconst deviceList = ref([{\n    Key: \"\",\n    DeviceName: \"\",\n    MacList: [''],\n    BroadcastIPs: [''],\n    Port: 9,\n    Relay: true,\n    Repeat: 5,\n},])\n\nconst deviceForm = ref({\n    Key: \"\",\n    DeviceName: \"\",\n    MacList: [''],\n    BroadcastIPs: [''],\n    Port: 9,\n    Relay: true,\n    Repeat: 5,\n})\n\nconst deleteDevice = (device)=>{\n\n    const deviceName = device.DeviceName==\"\"?device.MacList[0]:device.DeviceName;\n    const deviceText = \"[\" + deviceName +\"]\"\n\n    ElMessageBox.confirm(\n        '确认要删除待唤醒设备 ' + deviceText + \"?\",\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            console.log(\"确认删除 \" + deviceText)\n\n            apiDeleteWOLDevice(device.Key).then((res) => {\n                if (res.ret == 0) {\n                    queryDeviceList();\n                    MessageShow(\"success\", \"删除成功\")\n                } else {\n                    MessageShow(\"error\", res.msg)\n                }\n\n            }).catch((error) => {\n                console.log(\"删除唤醒设备失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"删除唤醒设备失败,网络请求出错\")\n            })\n        })\n        .catch(() => {\n\n        })\n\n}\n\nconst wakeup = (device)=>{\n    apiWOLDeviceWakeUp(device.Key).then((res) => {\n                if (res.ret == 0) {\n                    MessageShow(\"success\", \"唤醒指令已发送\")\n                    queryDeviceList();\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"唤醒指令发送失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"唤醒指令发送失败,网络请求出错\")\n            })\n\n}\n\nconst addOreAlterDevice = () => {\n\n    deviceForm.value.BroadcastIPs = StringToArrayList(deviceFormBroadcastIPsArea.value)\n    deviceForm.value.MacList = StringToArrayList(deviceFormMacListArea.value)\n\n    switch (deviceFormActionType.value) {\n        case \"add\":\n            apiAddWOLDevice(deviceForm.value).then((res) => {\n                if (res.ret == 0) {\n                    deviceDialogShow.value = false;\n                    MessageShow(\"success\", \"设备添加成功\")\n                    queryDeviceList();\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"唤醒设备添加失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"唤醒设备添加失败,网络请求出错\")\n            })\n            break;\n        case \"alter\":\n        \n        apiAlterWOLDevice(deviceForm.value).then((res) => {\n                if (res.ret == 0) {\n                    deviceDialogShow.value = false;\n                    MessageShow(\"success\", \"设备修改成功\")\n                    queryDeviceList();\n                    return\n                }\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"唤醒设备修改失败,网络请求出错:\" + error)\n                MessageShow(\"error\", \"唤醒设备修改失败,网络请求出错\")\n            })\n\n            break;\n        default:\n    }\n}\n\nconst showAlterDeviceDialog = (device)=>{\n    deviceDialogCommitButtonText.value = \"修改\"\n    deviceForm.value = {\n        Key: device.Key,\n        DeviceName: device.DeviceName,\n        MacList:device.MacList,\n        BroadcastIPs: device.BroadcastIPs,\n        Port: device.Port,\n        Relay: device.Relay,\n        Repeat: device.Repeat,\n    }\n    deviceFormActionType.value = \"alter\"\n    deviceFormMacListArea.value = StrArrayListToArea(device.MacList)\n    deviceFormBroadcastIPsArea.value = StrArrayListToArea(device.BroadcastIPs)\n    deviceDialogShow.value = true\n}\n\nconst showAddDeviceDialog = () => {\n    deviceDialogCommitButtonText.value = \"添加\"\n    deviceForm.value = {\n        Key: \"\",\n        DeviceName: \"\",\n        MacList: [''],\n        BroadcastIPs: [''],\n        Port: 9,\n        Relay: true,\n        Repeat: 5,\n    }\n\n    deviceFormActionType.value = \"add\"\n    deviceFormMacListArea.value = \"\"\n    deviceFormBroadcastIPsArea.value = \"\"\n    deviceDialogShow.value = true\n\n}\n\n\nconst queryDeviceList = () => {\n    apiGetWOLDeviceList().then((res) => {\n        //console.log(res.data)\n        deviceList.value = res.list\n    }).catch((error) => {\n        console.log(\"获取设备列表出错:\" + error)\n        MessageShow(\"error\", \"获获取设备列表出错\")\n    })\n}\n\n\nvar timerID: any\n\nonMounted(() => {\n    queryDeviceList();\n\n    timerID = setInterval(() => {\n        queryDeviceList();\n    }, 2000);\n\n})\n\n</script>\n\n<style scoped>\n\n.itemradius {\n\nborder: 1px solid var(--el-border-color);\nborder-radius: 0;\nmargin-left: 3px;\nmargin-top: 3px;\nmargin-right: 3px;\nmargin-bottom: 5px;\nmin-width: 1200px;\n}\n\n</style>"
  },
  {
    "path": "web/adminviews/src/components/tools/WOLServiceSet.vue",
    "content": "<template>\n\n    <div class=\"PageRadius\" :style=\"{\n        borderRadius: 'base',\n    }\">\n\n        <el-scrollbar height=\"100%\">\n\n\n            <div class=\"formradius\" :style=\"{\n                borderRadius: 'base',\n            }\">\n\n\n\n                <el-form :model=\"form\" class=\"SetForm\" label-width=\"auto\">\n\n                    <div class=\"AdminListenDivRadius\">\n                        <p>服务端设置</p>\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                被控制端不需要打开这个<br />\n                            </template>\n                            <el-form-item label=\"服务端开关\">\n                                <el-switch v-model=\"form.Server.Enable\" class=\"mb-1\" inline-prompt\n                                    style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                    active-text=\"开启\" inactive-text=\"关闭\" />\n                            </el-form-item>\n                        </el-tooltip>\n\n                        <div v-show=\"form.Server.Enable\">\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    客户端登录需要填写Token一致<br />\n                                </template>\n\n                                <el-form-item label=\"认证Token\">\n                                    <el-input v-model=\"form.Server.Token\" placeholder=\"Token\" autocomplete=\"off\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                        </div>\n\n                    </div>\n\n                    <div class=\"AdminListenDivRadius\">\n\n                        <p>客户端设置</p>\n\n\n                        <el-form-item label=\"客户端开关\">\n                            <el-switch v-model=\"form.Client.Enable\" class=\"mb-1\" inline-prompt\n                                style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\" width=\"50px\"\n                                active-text=\"开启\" inactive-text=\"关闭\" />\n                            <el-divider direction=\"vertical\" />\n                            <el-button size=\"small\" v-show=\"true\">\n                                {{ clientState }}\n                            </el-button>\n\n                            <el-divider direction=\"vertical\" v-show=\"clientstateMsg == '' ? false : true\" />\n\n\n                            <el-button size=\"small\" v-show=\"clientstateMsg == '' ? false : true\" type=\"danger\">\n                                {{ clientstateMsg }}\n                            </el-button>\n\n                        </el-form-item>\n\n\n                        <div v-show=\"form.Client.Enable\">\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    这里填你的lucky后台管理地址<br />\n                                    比如:<br />\n                                    http://192.168.31.1:16601<br />\n                                    或者<br />\n                                    https://192.168.31.1:16601<br />\n                                    保存配置后会自动转为ws://或者wss://开头的websocket协议地址.<br />\n                                </template>\n\n                                <el-form-item label=\"服务端地址\">\n                                    <el-input v-model=\"form.Client.ServerURL\" placeholder=\"服务器地址\" autocomplete=\"off\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <el-form-item label=\"Token\">\n                                <el-input v-model=\"form.Client.Token\" placeholder=\"Token\" autocomplete=\"off\" />\n                            </el-form-item>\n\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    当lucky服务端和待唤醒设备不在同一局域网时,可以通过具备转发的客户端转发唤醒魔法包<br />\n                                </template>\n                                <el-form-item label=\"转发唤醒包\">\n                                    <el-switch v-model=\"form.Client.Relay\" class=\"mb-1\" inline-prompt\n                                        style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949\"\n                                        width=\"50px\" active-text=\"开启\" inactive-text=\"关闭\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    在lucky服务器网络唤醒设备列表显示的设备名称,不能为空<br />\n                                </template>\n                                <el-form-item label=\"设备名称\">\n                                    <el-input v-model=\"form.Client.DeviceName\" placeholder=\"设备名称\" autocomplete=\"off\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n\n                            <el-form-item label=\"网卡物理地址\">\n                                <el-input v-model=\"form.Client.Mac\" placeholder=\"网卡物理地址\" autocomplete=\"off\">\n\n\n                                    <template #append>\n\n                                        <el-select v-model=\"form.Client.Mac\" placeholder=\"网卡选择\" style=\"width: auto\"\n                                            @change=\"interfaceMacChange\">\n\n                                            <div v-for=\"info in ipv4InterfaceList\">\n                                                <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\"\n                                                    content=\"\">\n                                                    <template #content>\n                                                        <span\n                                                            v-html=\"StrArrayListToBrHtml(getIPList(info.AddressList))\"></span>\n                                                    </template>\n                                                    <el-option :label=\"info.NetInterfaceName\"\n                                                        :value=info.HardwareAddr />\n                                                </el-tooltip>\n                                            </div>\n\n\n                                        </el-select>\n                                    </template>\n                                </el-input>\n                            </el-form-item>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    255.255.255.255在多数环境失效,不要使用<br />\n                                </template>\n                                <el-form-item label=\"广播地址\">\n                                    <el-input v-model=\"form.Client.BroadcastIP\" placeholder=\"广播地址\" autocomplete=\"off\">\n                                        <template #append>\n                                            <el-select v-model=\"form.Client.BroadcastIP\" placeholder=\"局域网选择\"\n                                                style=\"width: 180px\">\n\n                                                <div v-for=\"info in BroadcastIPInputAddressList\">\n\n                                                    <el-option :label=\"info.IP\" :value=info.BroadcastIP />\n                                                </div>\n                                            </el-select>\n                                        </template>\n                                    </el-input>\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <el-form-item label=\"端口\">\n                                <el-input-number v-model=\"form.Client.Port\" autocomplete=\"off\" />\n                            </el-form-item>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    唤醒魔方包重复发送次数<br />\n                                </template>\n                                <el-form-item label=\"重复次数\">\n                                    <el-input-number v-model=\"form.Client.Repeat\" autocomplete=\"off\" />\n                                </el-form-item>\n                            </el-tooltip>\n\n                            <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                                <template #content>\n                                    windows关机指令: Shutdown /s /t 0 <br />\n                                    linux关机指令: poweroff <br />\n                                    如果你发现你的windows关机后怎么也唤不醒,可以试试使用休眠/睡眠 指令: rundll32.exe powrprof.dll,SetSuspendState\n                                    0,1,0 <br />\n                                    注意新手注意别使用其它未知指令,比如\"rm -rf\"...<br />\n                                    数据丢失概不负责<br />\n                                </template>\n                                <el-form-item label=\"关机指令\">\n                                    <el-input v-model=\"form.Client.PowerOffCMD\" placeholder=\"关机指令\" autocomplete=\"off\" >\n                                        <template #append>\n                                            <el-select v-model=\"form.Client.PowerOffCMD\" placeholder=\"关机指令\"\n                                                style=\"width: 160px\">\n\n                                                <div v-for=\"cmd in defualtCMDList\">\n\n                                                    <el-option :label=\"cmd.label\" :value=cmd.value />\n                                                </div>\n                                            </el-select>\n                                        </template>\n                                    </el-input>\n                                </el-form-item>\n                            </el-tooltip>\n\n                        </div>\n\n                    </div>\n\n                    <div class=\"AdminListenDivRadius\" v-show=\"serviceStatus >= 0 ? true : false\">\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                当前Lucky windows服务状态<br />\n                               \n                            </template>\n\n                            <el-button type=\"info\" size=\"small\">\n                                {{ serviceStatus == 0 ? 'lucky服务未安装' : serviceStatus == 1 ? 'lucky服务已启动' : serviceStatus == 2 ? 'luck服务已停止' : '未知服务状态' }}\n                            </el-button>\n                        </el-tooltip>\n\n\n                        <el-tooltip class=\"box-item\" effect=\"dark\" :trigger-keys=\"[]\" content=\"\">\n                            <template #content>\n                                安装windows服务,lukcy可能需要以管理员身份运行才能设置成功<br />\n                                实现lucky开机自启<br/>\n                            </template>\n                            <el-button v-show='serviceStatus == 0 ? true : false' type=\"warning\" round\n                                @click=\"optionLuckyService('install')\">安装Lucky windows服务</el-button>\n\n                        </el-tooltip>\n                        <el-button type=\"danger\" v-show=\"serviceStatus>0?true:false\" round @click=\"optionLuckyService('unstall')\">删除Lucky windows服务\n                        </el-button>\n\n\n                        <div v-show=\"serviceStatus>0?true:false\" >\n\n                        <el-button type=\"info\" size=\"small\" @click=\"optionLuckyService('start')\" v-show=\"serviceStatus==2?true:false\">\n                               启动lucky服务\n                        </el-button>\n\n                        <el-button type=\"info\" size=\"small\" @click=\"optionLuckyService('stop')\" v-show=\"serviceStatus==1?true:false\">\n                               停止lucky服务\n                        </el-button>\n\n                        <el-button type=\"info\" size=\"small\" @click=\"optionLuckyService('restart')\">\n                               重启lucky服务\n                        </el-button>\n                        </div>\n\n\n\n                    </div>\n\n                </el-form>\n\n                <el-button type=\"primary\" round @click=\"RequestAlterConfigure\">保存修改</el-button>\n\n\n            </div>\n\n        </el-scrollbar>\n    </div>\n\n</template>\n\n\n<script lang=\"ts\" setup>\n\nimport { onMounted, onUnmounted, ref, computed, reactive } from 'vue'\nimport { apiGetWOLServiceConfigure, apiAlterWOLServiceConfigure, apiGetIPv4Interface, apiOptionsLuckyService, apiGetRestoreConfigureConfirm } from '../../apis/utils'\nimport { ElMessageBox } from 'element-plus'\n\nimport { StrArrayListToBrHtml } from '../../utils/utils'\nimport { MessageShow } from '../../utils/ui'\nimport FileSaver from 'file-saver'\nimport { anyTypeAnnotation } from '@babel/types'\n\nconst formLabelWidth = '10vw'\nconsole.log(\"window.location.href \" + window.location.href)\nconsole.log(\"window.location.port \" + window.location.port)\nconsole.log(\"window.location.host \" + window.location.host)\nconsole.log(\"window.location \" + JSON.stringify(window.location))\nconst disableRebootButton = ref(false)\n\nconst BroadcastIPInputAddressList = ref([{ IP: \"\", BroadcastIP: \"\" }])\n\n\nconst defualtCMDList = ref([\n    {label:\"windows关机指令\",value:\"Shutdown /s /t 0\"},\n    {label:\"Linux关机指令\",value:\"poweroff\"},\n    {label:\"windows休眠指令\",value:\"rundll32.exe powrprof.dll,SetSuspendState 0,1,0\"},\n    {label:\"自定义\",value:\"\"}])\n\n\nconst ipv4InterfaceList = ref([{\n    NetInterfaceName: \"\",\n    HardwareAddr: \"\",\n    AddressList: [{ IP: \"\", BroadcastIP: \"\" },]\n},])\n\nconst getIPList = (AddressList) => {\n    let iplist = new Array()\n    for (let i in AddressList) {\n        iplist.push(AddressList[i].IP)\n    }\n    return iplist\n}\n\nconst interfaceMacChange = (val) => {\n    if (val == \"\") {\n        return\n    }\n    for (let i in ipv4InterfaceList.value) {\n        if (ipv4InterfaceList.value[i].HardwareAddr == val) {\n            BroadcastIPInputAddressList.value = ipv4InterfaceList.value[i].AddressList\n            break\n        }\n    }\n\n    if (BroadcastIPInputAddressList.value.length <= 0) {\n        return\n    }\n    form.value.Client.BroadcastIP = BroadcastIPInputAddressList.value[0].BroadcastIP\n}\n\n\n\n\n\nconst rawData = {\n    Server: {\n        Enable: false,\n        Token: \"\"\n    },\n    Client: {\n        Enable: false,\n        ServerURL: \"\",\n        Token: \"\",\n        Relay: false,\n        Key: \"\",\n        DeviceName: \"\",\n        Mac: \"\",\n        BroadcastIP: \"\",\n        Port: 9,\n        Repeat: 5,\n        PowerOffCMD: \"\",\n    }\n}\nconst clientState = ref(\"\")\nconst clientstateMsg = ref(\"\")\nconst serviceStatus = ref(-1)\n\nconst form = ref(rawData)\nconst preFormData = ref(rawData)\n\n\n\n\n\n\n\n\n\nconst queryIPv4InterfaceList = () => {\n    apiGetIPv4Interface().then((res) => {\n        if (res.ret == 0) {\n            ipv4InterfaceList.value = res.list\n            interfaceMacChange(form.value.Client.Mac)\n            return\n        }\n        MessageShow(\"error\", \"获取Ipv4网卡信息列表出错\" + res.msg)\n    }).catch((error) => {\n        console.log(\"获取Ipv4网卡信息列表出错:\" + error)\n        MessageShow(\"error\", \"获取Ipv4网卡信息列表出错\")\n    })\n}\n\nconst queryConfigure = () => {\n    apiGetWOLServiceConfigure().then((res) => {\n        if (res.ret == 0) {\n            form.value = res.configure\n            clientState.value = res.ClientState\n            clientstateMsg.value = res.ClientStateMsg\n            serviceStatus.value = res.serviceStatus\n            return\n        }\n        MessageShow(\"error\", \"获取唤醒服务配置出错\")\n    }).catch((error) => {\n        console.log(\"获取唤醒服务配置出错:\" + error)\n        MessageShow(\"error\", \"获取唤醒服务配置出错\")\n    })\n}\n\nconst optionLuckyService = (op) => {\n\n\n\n    var optionServiceText = \"安装Lucky服务\"\n    if (op == 'unstall') {\n        optionServiceText = \"卸载Lucky服务\"\n    }else if (op == 'start'){\n        optionServiceText = \"启动Lucky服务\"\n    }else if (op == 'stop'){\n        optionServiceText = '停止lucky服务'\n    }else if (op==\"restart\"){\n        optionServiceText = '重启lucky服务'\n    }\n\n    var warnText = \"\"\n\n    if (op==\"install\"){\n        warnText = \"\\n安装成功后lucky会重启并以windows后台服务方式启动,到时需重新登录后台\"\n    }else if(op==\"unstall\"){\n        warnText=\"\\n卸载后lucky也会随之退出,如有需要请手动启动\"\n    }\n\n\n    ElMessageBox.confirm(\n        '确认要 ' + optionServiceText + \" ?\"+warnText,\n        'Warning',\n        {\n            confirmButtonText: '确认',\n            cancelButtonText: '取消',\n            type: 'warning',\n        }\n    )\n        .then(() => {\n            apiOptionsLuckyService(op).then((res) => {\n                if (res.ret == 0) {\n                    MessageShow(\"success\", optionServiceText + \"成功\")\n                    if (op == 1) {\n                        MessageShow(\"success\", \"请重新启动系统后执行输入后台网站,确认lucky服务已正常自启.\")\n                    }\n\n                    if (res.msg!=\"\"){\n                        MessageShow(\"success\", res.msg) \n                    }\n                    serviceStatus.value = res.status\n\n                    return\n                }\n                console.log(optionServiceText + \" 出错:\" + res.msg)\n\n                MessageShow(\"error\", res.msg)\n            }).catch((error) => {\n                console.log(\"服务状态修改出错,网络请求出错:\" + error)\n                MessageShow(\"error\", \"服务状态修改出错,网络请求出错\")\n            })\n\n        })\n\n\n}\n\nconst RequestAlterConfigure = () => {\n    apiAlterWOLServiceConfigure(form.value).then((res) => {\n        if (res.ret == 0) {\n            MessageShow(\"success\", \"修改成功\")\n            form.value = res.configure\n\n            setTimeout(() => {\n                queryConfigure()\n            }, 2000)\n\n\n            return\n        }\n        console.log(\"保存配置出错:\" + res.msg)\n        MessageShow(\"error\", res.msg)\n    }).catch((error) => {\n        console.log(\"配置修改失败,网络请求出错:\" + error)\n        MessageShow(\"error\", \"配置修改失败,网络请求出错\")\n    })\n}\n\n\n\n//var timerID: any\n\nonMounted(() => {\n    queryConfigure()\n    queryIPv4InterfaceList()\n\n    // timerID = setInterval(() => {\n    //     queryConfigure()\n    //     queryIPv4InterfaceList()\n    // }, 2000);\n\n})\n\nonUnmounted(() => {\n    //clearInterval(timerID)\n})\n\n</script>\n\n\n<style scoped>\n.AdminListenDivRadius {\n    border: 2px solid var(--el-border-color);\n    border-radius: 10px;\n    margin-left: 3px;\n    margin-top: 15px;\n    margin-right: 3px;\n    margin-bottom: 15px;\n    width: 600px;\n    padding-top: 9px;\n    padding-left: 9px;\n    padding-right: 9px;\n}\n\n.SetForm {\n    margin-top: 15px;\n    margin-left: 20px;\n}\n\n.formradius {\n    border: 0px solid var(--el-border-color);\n    border-radius: 0;\n    margin: 0 auto;\n    width: fit-content;\n    padding: 15px;\n}\n\n#adminListen {\n    width: 360px;\n}\n\n#adminAccount {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#adminPassword {\n    width: 30vw;\n    max-width: 360px;\n    min-width: 300px;\n}\n\n\n#proxyCountLimit {\n    width: 360px;\n}\n\n\n#globalMaxConnections {\n    width: 360px;\n}\n\n.inline-block {\n    display: inline-block;\n    margin-right: 10px;\n}\n\n.margin-change {\n    display: inline-block;\n    margin-left: 10px;\n}\n</style>"
  },
  {
    "path": "web/adminviews/src/main.js",
    "content": "import { createApp,ref } from 'vue'\nimport App from './App.vue'\nimport './assets/common-layout.scss'\nimport './assets/appbase.css'\nimport * as ElIcon from '@element-plus/icons-vue'\nimport 'element-plus/theme-chalk/el-notification.css'\nimport 'element-plus/theme-chalk/el-menu.css'\nimport 'element-plus/theme-chalk/el-loading.css'\nimport 'element-plus/theme-chalk/el-message.css'\nimport 'element-plus/theme-chalk/el-message-box.css'\nimport 'element-plus/theme-chalk/el-button.css'\nimport storage from './apis/storage.js'\nimport {apiLogout} from './apis/utils.js'\nimport {PageExist,CurrentPage} from './utils/utils'\n\n\nconst app = createApp(App)\nfor (let iconName in ElIcon){\n    app.component(iconName, ElIcon[iconName])\n}\n\n\napp.config.globalProperties.$storage = storage;\n\n\n\nif(!PageExist(location.hash)){\n    location.hash=\"#status\"\n}\n\n//配置全局变量\n//默认页面\n var currentPage = ref(location.hash)\n\n\n\n// if (process.env.NODE_ENV==\"development\"){\n//     currentPage.value=\"#relayset\"\n//     location.hash=\"#relayset\"\n// }\n\napp.provide('global',{\n    currentPage,\n    storage,\n})\n\nwindow.onpopstate = function (event){\n    currentPage.value=location.hash\n    CurrentPage.value = location.hash\n\n    if(location.hash == \"#logout\"){//注销登录\n        apiLogout().then((res) => {\n        }).catch((error) => {\n        })\n        storage.setItem(\"token\",\"\")\n        location.hash =\"#login\"\n        return \n    }\n\n    if(!PageExist(location.hash)){\n        console.log(\"location.hash[\"+location.hash +\"]no exist\")\n        location.hash =\"#login\"\n        return \n    }\n}\n\n\n\n\n\napp.mount('#app')\n\n"
  },
  {
    "path": "web/adminviews/src/request/index.js",
    "content": "import axios from 'axios'\n\nconsole.log(\"vue run mode \"+process.env.NODE_ENV)\n\nvar baseURL = \"/\" //\nif (process.env.NODE_ENV==\"development\"){\n\t//开发环境下这个改为自己的接口地址\n\tbaseURL = 'http://192.168.31.70:16601'\n}\n\n\n//var fuck = storage.getItem(\"cookies\")\n//console.log(\"fuck:\"+fuck)\n\n//console.log(\"baseURL: \"+ baseURL)\n\n// 创建一个 axios 实例\nconst service = axios.create({\n\tbaseURL: baseURL, // 所有的请求地址前缀部分\n\ttimeout: 5000, // 请求超时时间毫秒\n\twithCredentials: false, // 异步请求携带cookie\n\theaders: {\n\t\t// 设置后端需要的传参类型\n\t\t'Content-Type': 'application/json',\n\t\t//'X-Requested-With': 'XMLHttpRequest',\n\t},\n})\n\n// 添加请求拦截器\nservice.interceptors.request.use(\n\tfunction (config) {\n\t\t// 在发送请求之前做些什么\n\t\treturn config\n\t},\n\tfunction (error) {\n\t\t// 对请求错误做些什么\n\t\tconsole.log(error)\n\t\treturn Promise.reject(error)\n\t}\n)\n\n// 添加响应拦截器\nservice.interceptors.response.use(\n\tfunction (response) {\n\t\t//console.log(response)\n\t\t// 2xx 范围内的状态码都会触发该函数。\n\t\t// 对响应数据做点什么\n\t\t// dataAxios 是 axios 返回数据中的 data\n\t\tconst dataAxios = response.data\n\t\t// 这个状态码是和后端约定的\n\t\tconst code = dataAxios.reset\n\n\t\t//console.log(\"dataAxios data: \"+JSON.stringify(dataAxios))\n\t\t//console.log(\"ret: \"+dataAxios.ret)\n\t\tif (dataAxios.ret!=undefined&& dataAxios.ret==-1){\n\t\t\t//global.currentPage.value=\"set\"\n\t\t\tconsole.log(\"登录失效\")\n\t\t\t//window.location.href=\"/\"\n\t\t\tlocation.hash =\"#login\"\n\t\t\t//var currentPage = ref(\"#login\")\n\n\t\t}\n\t\treturn dataAxios\n\t},\n\tfunction (error) {\n\t\t// 超出 2xx 范围的状态码都会触发该函数。\n\t\t// 对响应错误做点什么\n\t\tconsole.log(error)\n\t\treturn Promise.reject(error)\n\t}\n)\n\nexport default service\n"
  },
  {
    "path": "web/adminviews/src/utils/ui.ts",
    "content": "import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'\n\n\n//   ElMessageBox.alert(message, {\n//     confirmButtonText: '好的',\n//     callback: () => {\n//     },\n// })\n\n\nexport function ShowMessageBox(message: string) {\n    ElMessageBox.alert(message, {\n        confirmButtonText: '好的',\n        callback: () => {\n        },\n    })\n}\n\nexport function MessageShow(type:any,message: string) {\n    ElMessage({\n        message: message,\n        type: type,\n    })\n}\n\n\nexport function Notification (type, message, duration)  {\n    ElNotification({\n        title: type.substring(0, 1).toUpperCase() + type.substring(1),\n        message: message,\n        type: type,\n        duration: duration,\n    })\n}"
  },
  {
    "path": "web/adminviews/src/utils/utils.ts",
    "content": "import useClipboard from 'vue-clipboard3'\nimport { ref } from 'vue'\n\nexport function CopyTotoClipboard(data: string) {\n    useClipboard().toClipboard(data)\n}\n\nconst ipReg = /^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){6}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^::([\\da-fA-F]{1,4}:){0,4}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:):([\\da-fA-F]{1,4}:){0,3}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){2}:([\\da-fA-F]{1,4}:){0,2}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){3}:([\\da-fA-F]{1,4}:){0,1}((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){4}:((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$|^([\\da-fA-F]{1,4}:){7}[\\da-fA-F]{1,4}$|^:((:[\\da-fA-F]{1,4}){1,6}|:)$|^[\\da-fA-F]{1,4}:((:[\\da-fA-F]{1,4}){1,5}|:)$|^([\\da-fA-F]{1,4}:){2}((:[\\da-fA-F]{1,4}){1,4}|:)$|^([\\da-fA-F]{1,4}:){3}((:[\\da-fA-F]{1,4}){1,3}|:)$|^([\\da-fA-F]{1,4}:){4}((:[\\da-fA-F]{1,4}){1,2}|:)$|^([\\da-fA-F]{1,4}:){5}:([\\da-fA-F]{1,4})?$|^([\\da-fA-F]{1,4}:){6}:$/\n\nexport function isIP(ip :string){\n    return ipReg.test(ip)\n}\n\nconst MenuIndexList = [\"#status\",\n\"#log\",\"#whitelistset\",\n\"#whitelists\",\"#blacklists\",\"#set\",\n\"#login\",\"#ddns\",\"#ddnstasklist\",\"#ddnsset\",\n\"#about\",\"#reverseproxylist\",\"#ssl\",\"#portforward\",\"#portforwardset\",\"#wol\"]\n\nexport function PageExist(page:string) {\n    for(let i in MenuIndexList){\n        if (MenuIndexList[i]==page){\n            return true\n        }\n    }\n    return false\n}\n\nexport const CurrentPage = ref(\"\")\n\n\nexport function StringToArrayList(str : string){\n    let rawlist = str.split(\"\\n\")\n    let resList = new Array()\n    for (let i in rawlist) {\n        let item = rawlist[i].replace(/^\\s+|\\s+$/g, '').replace(/<\\/?.+?>/g, \"\").replace(/[\\r\\n]/g, \"\")\n        if (item==\"\"){\n            continue\n        }\n        resList.push(item)\n    }\n    return resList\n}\n\nexport function StrArrayListToBrHtml( strList : string[]){\n    var resHtml = \"\"\n    for ( let i in strList){\n        resHtml += strList[i]  + '<br />'\n    }\n    return resHtml\n}\n\nexport function StrArrayListToArea(strList : string[]){\n    var res = \"\"\n    for ( let i in strList){\n        if(i!=\"0\"){\n            res +='\\n'\n        }\n        res += strList[i]\n       // res += strList[i]  + '\\n'\n    }\n    return res\n}\n\nexport const LogLevelList = [\n    {\n        value: 2,\n        label: 'Error',\n    },\n    {\n        value: 3,\n        label: 'Warn',\n    },\n    {\n        value: 4,\n        label: 'Info',\n    },\n    {\n        value: 5,\n        label: 'Debug',\n    },\n    {\n        value: 6,\n        label: 'Trace',\n    },\n]\n\nexport const bytesToSize = (bytes) => {\n    if (bytes === 0) return '0 B';\n    var k = 1000, // or 1024\n        sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n        i = Math.floor(Math.log(bytes) / Math.log(k));\n\n    return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\n}"
  },
  {
    "path": "web/adminviews/vite.config.js",
    "content": "import { fileURLToPath, URL } from 'url'\n\nimport { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport AutoImport from 'unplugin-auto-import/vite'\nimport Components from 'unplugin-vue-components/vite'\nimport { ElementPlusResolver } from 'unplugin-vue-components/resolvers'\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n  plugins: [\n    vue(),\n    AutoImport({\n    resolvers: [ElementPlusResolver()],\n  }),\n  Components({\n    resolvers: [ElementPlusResolver()],\n  })],\n  resolve: {\n    alias: {\n      '@': fileURLToPath(new URL('./src', import.meta.url))\n    }\n  }\n})\n"
  },
  {
    "path": "web/blackwhitelist.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/ginutils\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc whitelistConfigure(c *gin.Context) {\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": config.GetWhiteListBaseConfigure()})\n}\n\nfunc alterWhitelistConfigure(c *gin.Context) {\n\tvar requestObj config.WhiteListBaseConfigure\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"修改请求解析出错\"})\n\t\treturn\n\t}\n\n\trequestObj.BasicAccount = strings.TrimSpace(requestObj.BasicAccount)\n\tif len(requestObj.BasicAccount) == 0 || len(requestObj.BasicPassword) == 0 {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"账号或密码不能为空\"})\n\t\treturn\n\t}\n\n\terr = config.SetWhiteListBaseConfigure(requestObj.ActivelifeDuration, requestObj.URL, requestObj.BasicAccount, requestObj.BasicPassword)\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"保存白名单配置出错\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc querywhitelist(c *gin.Context) {\n\tresList := config.GetWhiteList()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": resList})\n}\n\nfunc deleteblacklist(c *gin.Context) {\n\tip := c.Query(\"ip\")\n\terr := config.BlackListDelete(ip)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"删除黑名单指定IP出错\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc deletewhitelist(c *gin.Context) {\n\tip := c.Query(\"ip\")\n\terr := config.WhiteListDelete(ip)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"删除白名单指定IP出错\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc flushblacklist(c *gin.Context) {\n\tip := c.Query(\"ip\")\n\tactivelifeDurationStr := c.Query(\"life\")\n\tlife, _ := strconv.Atoi(activelifeDurationStr)\n\n\tnewTime, err := config.BlackListAdd(ip, int32(life))\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"刷新IP有效期出错:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": newTime})\n}\n\nfunc flushwhitelist(c *gin.Context) {\n\tip := c.Query(\"ip\")\n\tactivelifeDurationStr := c.Query(\"life\")\n\tlife, _ := strconv.Atoi(activelifeDurationStr)\n\n\tnewTime, err := config.WhiteListAdd(ip, int32(life))\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"刷新IP有效期出错:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": newTime})\n}\n\nfunc queryblacklist(c *gin.Context) {\n\tresList := config.GetBlackList()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": resList})\n}\n\nfunc whitelistBasicAuth(c *gin.Context) {\n\tbc := config.GetWhiteListBaseConfigure()\n\twhilelistURL := c.Param(\"url\")\n\tif (c.Request.RequestURI == \"/wl\" && bc.URL != \"\") || whilelistURL != bc.URL {\n\t\tc.AbortWithStatus(http.StatusNotFound)\n\t\treturn\n\t}\n\n\trealm := \"Basic realm=\" + strconv.Quote(\"Authorization Required\")\n\tpairs := ginutils.ProcessAccounts(gin.Accounts{bc.BasicAccount: bc.BasicPassword})\n\tuser, found := pairs.SearchCredential(c.GetHeader(\"Authorization\"))\n\tif !found {\n\t\t// Credentials doesn't match, we return 401 and abort handlers chain.\n\t\tc.Header(\"WWW-Authenticate\", realm)\n\t\tc.AbortWithStatus(http.StatusUnauthorized)\n\t\treturn\n\t}\n\tc.Set(\"user\", user)\n}\n\nfunc whilelistAdd(c *gin.Context) {\n\n\tlifeTime, err := config.WhiteListAdd(c.ClientIP(), 0)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"记录白名单IP出错\"})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"IP已记录进白名单\", \"ip\": c.ClientIP(), \" effective_time\": lifeTime})\n}\n"
  },
  {
    "path": "web/common.go",
    "content": "package web\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc getFileBase64(c *gin.Context) {\n\tfile, err := c.FormFile(\"file\")\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"c.FormFile err:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tsrc, err := file.Open()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"file.Open err:%s\", err.Error())})\n\t\treturn\n\t}\n\tdefer src.Close()\n\n\tfileBytes, err := io.ReadAll(src)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"ioutil.ReadAll err:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tfileBytesBase64Str := base64.StdEncoding.EncodeToString(fileBytes)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"file\": file.Filename, \"base64\": fileBytesBase64Str})\n\n}\n"
  },
  {
    "path": "web/configure.go",
    "content": "package web\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc configure(c *gin.Context) {\n\t//c config.GetConfig()\n\tconfigureBytes := config.GetConfigureBytes()\n\t//c.Header(\"Content-Type\", \"application/json\")\n\n\t//c.Data(http.StatusOK, \"application/json\", configureBytes)\n\tc.JSON(http.StatusOK,\n\t\tgin.H{\n\t\t\t\"ret\":       0,\n\t\t\t\"time\":      time.Now().Format(\"060102150405\"),\n\t\t\t\"configure\": string(configureBytes)},\n\t)\n}\n\nvar restoreConfigureVar *config.ProgramConfigure\nvar restoreConfigureKey string\nvar restoreConfigureMutex sync.Mutex\n\nfunc restoreConfigureConfirm(c *gin.Context) {\n\trestoreConfigureMutex.Lock()\n\tdefer restoreConfigureMutex.Unlock()\n\tkey := c.Query(\"key\")\n\tif key != restoreConfigureKey {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"key不一致\"})\n\t\treturn\n\t}\n\n\terr := config.SetConfig(restoreConfigureVar)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"还原配置出错\"})\n\t\treturn\n\t}\n\n\trebootOnce.Do(func() {\n\t\tgo func() {\n\t\t\tfileutils.OpenProgramOrFile(os.Args)\n\t\t\tos.Exit(0)\n\t\t}()\n\t})\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"还原配置成功\", \"port\": restoreConfigureVar.BaseConfigure.AdminWebListenPort})\n\n}\n\nfunc restoreConfigure(c *gin.Context) {\n\tfile, err := c.FormFile(\"file\")\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"c.FormFile err:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tsrc, err := file.Open()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"file.Open err:%s\", err.Error())})\n\t\treturn\n\t}\n\tdefer src.Close()\n\n\tfileBytes, err := io.ReadAll(src)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"ioutil.ReadAll err:%s\", err.Error())})\n\t\treturn\n\t}\n\t//log.Printf(\"file:%s\\n\", string(fileBytes))\n\n\tvar conf config.ProgramConfigure\n\n\terr = json.Unmarshal(fileBytes, &conf)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"配置文件[%s]有误\", file.Filename)})\n\t\treturn\n\t}\n\n\tif conf.BaseConfigure.AdminAccount == \"\" ||\n\t\tconf.BaseConfigure.AdminPassword == \"\" ||\n\t\tconf.BaseConfigure.AdminWebListenPort <= 0 ||\n\t\tconf.BaseConfigure.AdminWebListenPort >= 65536 {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"配置文件[%s]参数有误\", file.Filename)})\n\t\treturn\n\t}\n\n\trestoreConfigureMutex.Lock()\n\tdefer restoreConfigureMutex.Unlock()\n\trestoreConfigureVar = &conf\n\trestoreConfigureKey = stringsp.GetRandomStringNum(16)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"file\": file.Filename, \"restoreConfigureKey\": restoreConfigureKey})\n\n}\n"
  },
  {
    "path": "web/ddns.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/ddnscore.go\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/service\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc addDDNS(c *gin.Context) {\n\tvar requestObj config.DDNSTask\n\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\t//fmt.Printf(\"addDDNS requestObj:%v\\n\", requestObj)\n\terr = config.CheckDDNSTaskAvalid(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": err.Error()})\n\t\treturn\n\t}\n\n\tdealRequestDDNSTask(&requestObj)\n\n\terr = config.DDNSTaskListAdd(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"DDNS任务添加出错\"})\n\t\treturn\n\t}\n\n\tif requestObj.Enable {\n\t\tservice.Message(\"ddns\", \"syncDDNSTask\", requestObj.TaskKey)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc deleteDDNSTask(c *gin.Context) {\n\ttaskKey := c.Query(\"key\")\n\terr := config.DDNSTaskListDelete(taskKey)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Errorf(\"删除DDNS任务出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tddnscore.DDNSTaskInfoMapDelete(taskKey)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc enableddns(c *gin.Context) {\n\tenable := c.Query(\"enable\")\n\tkey := c.Query(\"key\")\n\n\tvar err error\n\n\tif enable == \"true\" {\n\t\terr = ddnscore.EnableDDNSTaskByKey(key, true)\n\t\tif err == nil {\n\t\t\tservice.Message(\"ddns\", \"syncDDNSTask\", key)\n\t\t}\n\t} else {\n\t\terr = ddnscore.EnableDDNSTaskByKey(key, false)\n\t}\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"开关DDNS任务出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc ddnsconfigure(c *gin.Context) {\n\tconf := config.GetDDNSConfigure()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"ddnsconfigure\": conf})\n}\n\nfunc alterDDNSTask(c *gin.Context) {\n\ttaskKey := c.Query(\"key\")\n\tvar requestObj config.DDNSTask\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = config.CheckDDNSTaskAvalid(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": err.Error()})\n\t\treturn\n\t}\n\tdealRequestDDNSTask(&requestObj)\n\n\terr = config.UpdateTaskToDDNSTaskList(taskKey, requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"更新DDNS任务出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tddnscore.DDNSTaskInfoMapDelete(taskKey)\n\n\tif requestObj.Enable {\n\t\tservice.Message(\"ddns\", \"syncDDNSTask\", taskKey)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n\n}\n\nfunc ddnsTaskList(c *gin.Context) {\n\n\tconf := config.GetDDNSConfigure()\n\n\tif !conf.Enable {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 6, \"msg\": \"请先在设置页面启用DDNS动态域名服务\"})\n\t\treturn\n\t}\n\n\ttaskList := ddnscore.GetDDNSTaskInfoList()\n\tddnscore.FLushWebLastAccessDDNSTaskListLastTime()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": taskList})\n}\n\nfunc dealRequestDDNSTask(t *config.DDNSTask) {\n\n\tif t.DNS.Name == \"callback\" {\n\t\tt.DNS.ID = \"\"\n\t\tt.DNS.Secret = \"\"\n\t\tt.DNS.Callback.URL = strings.TrimSpace(t.DNS.Callback.URL)\n\t\t//requestObj.DNS.Callback.CallbackSuccessContent = strings.TrimSpace(requestObj.DNS.Callback.CallbackSuccessContent)\n\t\tt.DNS.Callback.RequestBody = strings.TrimSpace(t.DNS.Callback.RequestBody)\n\t} else {\n\t\tt.DNS.Callback = config.DNSCallback{}\n\t}\n\n\tif !t.DNS.ResolverDoaminCheck && len(t.DNS.DNSServerList) > 0 {\n\t\tt.DNS.DNSServerList = []string{}\n\t}\n\n\tif t.DNS.ResolverDoaminCheck && (len(t.DNS.DNSServerList) == 0 || (len(t.DNS.DNSServerList) == 1 && t.DNS.DNSServerList[0] == \"\")) {\n\t\tif t.TaskType == \"IPv6\" {\n\t\t\tt.DNS.DNSServerList = config.DefaultIPv6DNSServerList\n\t\t} else {\n\t\t\tt.DNS.DNSServerList = config.DefaultIPv4DNSServerList\n\t\t}\n\t}\n\n\tif t.DNS.HttpClientProxyType != \"\" && t.DNS.HttpClientProxyAddr == \"\" {\n\t\tt.DNS.HttpClientProxyType = \"\"\n\t}\n\n\tif t.DNS.HttpClientProxyType == \"\" {\n\t\tt.DNS.HttpClientProxyAddr = \"\"\n\t\tt.DNS.HttpClientProxyUser = \"\"\n\t\tt.DNS.HttpClientProxyPassword = \"\"\n\t}\n\n\tif t.GetType == \"url\" {\n\t\tt.NetInterface = \"\"\n\t\tt.IPReg = \"\"\n\t}\n\n\tif t.GetType == \"netInterface\" {\n\t\tt.URL = []string{}\n\t}\n\n\tif t.DNS.Name == \"callback\" {\n\t\tif t.DNS.Callback.DisableCallbackSuccessContentCheck {\n\t\t\tt.DNS.Callback.CallbackSuccessContent = []string{}\n\t\t}\n\t}\n\n\tif !t.WebhookEnable {\n\t\tt.WebhookHeaders = []string{}\n\t\tt.WebhookMethod = \"\"\n\t\tt.WebhookRequestBody = \"\"\n\t\tt.WebhookURL = \"\"\n\t\tt.WebhookSuccessContent = []string{}\n\t\tt.WebhookProxy = \"\"\n\t\tt.WebhookProxyAddr = \"\"\n\t\tt.WebhookProxyUser = \"\"\n\t\tt.WebhookProxyPassword = \"\"\n\t}\n\n\tif t.WebhookEnable {\n\t\tif t.WebhookMethod == \"get\" {\n\t\t\tt.WebhookRequestBody = \"\"\n\t\t}\n\n\t\tif t.WebhookProxy == \"\" {\n\t\t\tt.WebhookProxyAddr = \"\"\n\t\t\tt.WebhookProxyUser = \"\"\n\t\t\tt.WebhookProxyPassword = \"\"\n\t\t}\n\t}\n\n\tif t.DNS.ForceInterval < 60 {\n\t\tt.DNS.ForceInterval = 60\n\t} else if t.DNS.ForceInterval > 360000 {\n\t\tt.DNS.ForceInterval = 360000\n\t}\n\n\tif t.HttpClientTimeout < 3 {\n\t\tt.HttpClientTimeout = 3\n\t} else if t.HttpClientTimeout > 60 {\n\t\tt.HttpClientTimeout = 60\n\t}\n\n}\n\nfunc alterDDNSConfigure(c *gin.Context) {\n\tvar requestObj config.DDNSConfigure\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\tpreConfigure := config.GetDDNSConfigure()\n\n\tif preConfigure.Enable != requestObj.Enable {\n\n\t\t//log.Printf(\"动态服务服务状态改变:%v\", requestObj.Enable)\n\t\tif requestObj.Enable {\n\t\t\tservice.Start(\"ddns\")\n\t\t} else {\n\t\t\tservice.Stop(\"ddns\")\n\t\t}\n\n\t}\n\n\terr = config.SetDDNSConfigure(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"保存配置过程发生错误,请检测相关启动配置\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc webhookTest(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\tddnsTask := ddnscore.GetDDNSTaskInfoByKey(key)\n\n\tif ddnsTask == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"找不到key对应的DDNS任务:%s\", key)})\n\t\treturn\n\t}\n\n\tvar request struct {\n\t\tWebhookURL            string   `json:\"WebhookURL\"`\n\t\tWebhookMethod         string   `json:\"WebhookMethod\"`\n\t\tWebhookHeaders        []string `json:\"WebhookHeaders\"`\n\t\tWebhookRequestBody    string   `json:\"WebhookRequestBody\"`\n\t\tWebhookSuccessContent []string `json:\"WebhookSuccessContent\"` //接口调用成功包含的内容\n\t\tWebhookProxy          string   `json:\"WebhookProxy\"`          //使用DNS代理设置  \"\"表示禁用，\"dns\"表示使用dns的代理设置\n\t\tWebhookProxyAddr      string   `json:\"WebhookProxyAddr\"`      //代理服务器IP\n\t\tWebhookProxyUser      string   `json:\"WebhookProxyUser\"`      //代理用户\n\t\tWebhookProxyPassword  string   `json:\"WebhookProxyPassword\"`  //代理密码\n\t}\n\terr := c.Bind(&request)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"请求解析出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tresponseStr, err := ddnscore.WebhookTest(ddnsTask,\n\t\trequest.WebhookURL,\n\t\trequest.WebhookMethod,\n\t\trequest.WebhookRequestBody,\n\t\trequest.WebhookProxy,\n\t\trequest.WebhookProxyAddr,\n\t\trequest.WebhookProxyUser,\n\t\trequest.WebhookProxyPassword,\n\t\trequest.WebhookHeaders,\n\t\trequest.WebhookSuccessContent)\n\n\tmsg := \"Webhook接口调用成功\"\n\n\tif err != nil {\n\t\tmsg = err.Error()\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": msg, \"Response\": responseStr})\n}\n"
  },
  {
    "path": "web/portforward.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/socketproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/gin-gonic/gin\"\n)\n\ntype ruleInfo struct {\n\tconfig.PortForwardsRule\n\tProxyList []proxyInfo\n\tLastLogs  []any\n}\ntype proxyInfo struct {\n\tProxy              string\n\tTrafficIn          int64\n\tTrafficOut         int64\n\tCurrentConnections int64\n}\n\nfunc PortForwardsRuleList(c *gin.Context) {\n\truleRawList := config.GetPortForwardsRuleList()\n\n\tvar ruleList []ruleInfo\n\n\tfor i := range ruleRawList {\n\t\tvar proxyInfoList []proxyInfo\n\t\tfor j := range *ruleRawList[i].ReverseProxyList {\n\t\t\tp := proxyInfo{\n\t\t\t\tProxy:              (*ruleRawList[i].ReverseProxyList)[j].String(),\n\t\t\t\tTrafficIn:          (*ruleRawList[i].ReverseProxyList)[j].GetTrafficIn(),\n\t\t\t\tTrafficOut:         (*ruleRawList[i].ReverseProxyList)[j].GetTrafficOut(),\n\t\t\t\tCurrentConnections: (*ruleRawList[i].ReverseProxyList)[j].GetCurrentConnections()}\n\t\t\tproxyInfoList = append(proxyInfoList, p)\n\t\t}\n\t\tr := ruleInfo{\n\t\t\tPortForwardsRule: ruleRawList[i],\n\t\t\tProxyList:        proxyInfoList,\n\t\t\tLastLogs:         ruleRawList[i].GetLastLogs(ruleRawList[i].WebListShowLastLogMaxCount)}\n\t\truleList = append(ruleList, r)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": ruleList})\n}\n\nfunc PortForwardsRuleAdd(c *gin.Context) {\n\tvar newRule config.PortForwardsRule\n\terr := c.Bind(&newRule)\n\tif err != nil {\n\t\tlog.Printf(\"请求解析出错:%s\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"请求解析出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tnewRule.Key = stringsp.GetRandomString(16)\n\terr = newRule.InitProxyList()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加转发规则过程初始化ProxyList出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tif int64(config.GetPortForwardsGlobalProxyCount()+newRule.ProxyCount()) > socketproxy.GetGlobalMaxPortForwardsCountLimit() {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 3, \"msg\": \"超出全局端口转发最大数量限制\"})\n\t\treturn\n\t}\n\n\terr = config.PortForwardsRuleListAdd(&newRule)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 4, \"msg\": fmt.Sprintf(\"添加转发规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tconfig.StartAllSocketProxysByRuleKey(newRule.Key)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc PortForwardsRuleAlter(c *gin.Context) {\n\tvar alterRule config.PortForwardsRule\n\terr := c.Bind(&alterRule)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"请求解析出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = alterRule.InitProxyList()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"修改转发规则时初始化代理列表出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tif int64(config.GetPortForwardsGlobalProxyCountExcept(alterRule.Key)+alterRule.ProxyCount()) > socketproxy.GetGlobalMaxPortForwardsCountLimit() {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 3, \"msg\": \"超出全局端口转发最大数量限制\"})\n\t\treturn\n\t}\n\n\tconfig.StopAllSocketProxysByRuleKey(alterRule.Key)\n\n\terr = config.UpdatePortForwardsRuleToPortForwardsRuleList(alterRule.Key, &alterRule)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 4, \"msg\": fmt.Sprintf(\"修改转发规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tif alterRule.Enable {\n\t\tconfig.StartAllSocketProxysByRuleKey(alterRule.Key)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc PortForwardsRuleEnable(c *gin.Context) {\n\tenableStr := c.Query(\"enable\")\n\tkey := c.Query(\"key\")\n\n\tvar enable bool = false\n\tif enableStr == \"true\" {\n\t\tenable = true\n\t}\n\n\terr := config.EnablePortForwardsRuleByKey(key, enable)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"开关转发规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc PortForwardsRuleDelete(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\n\terr := config.PortForwardsRuleListDelete(key)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"删除转发规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tconfig.TidyPortforwardLogsCache()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc portforwardConfigure(c *gin.Context) {\n\tconf := config.GetPortForwardsConfigure()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"configure\": conf})\n}\n\nfunc alterPortForwardConfigure(c *gin.Context) {\n\tvar requestObj config.PortForwardsConfigure\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = config.SetPortForwardsConfigure(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"保存配置过程发生错误,请检测相关启动配置\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc getPortwardRuleLogs(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\tpageSize, _ := strconv.Atoi(c.Query(\"pageSize\"))\n\tif pageSize <= 0 {\n\t\tpageSize = 10\n\t}\n\tpage, _ := strconv.Atoi(c.Query(\"page\"))\n\tif page <= 0 {\n\t\tpage = 1\n\t}\n\n\trule := config.GetPortForwardsRuleByKey(key)\n\tif rule == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"找不到key:%s对应的规则\", key)})\n\t\treturn\n\t}\n\ttotal, logList := rule.GetLogsBuffer().GetLogsByLimit(config.WebLogConvert, pageSize, page)\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"total\": total, \"page\": page, \"pageSize\": pageSize, \"logs\": logList})\n}\n"
  },
  {
    "path": "web/reverseproxy.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/reverseproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc reverseProxys(c *gin.Context) {\n\tproxyRuleList := reverseproxy.GetProxyRuleListInfo()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": proxyRuleList})\n}\n\nfunc addReverseProxyRule(c *gin.Context) {\n\tvar requestObj config.ReverseProxyRule\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkReverseProxyRuleRequest(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": err.Error()})\n\t\treturn\n\t}\n\n\terr = config.ReverseProxyRuleListAdd(&requestObj)\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加反向代理规则失败:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tif requestObj.Enable {\n\t\treverseproxy.EnableRuleByKey(requestObj.RuleKey, true)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc alterReverseProxyRule(c *gin.Context) {\n\tvar requestObj config.ReverseProxyRule\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tfmt.Printf(\"fff:%s\\n\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkReverseProxyRuleRequest(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": err.Error()})\n\t\treturn\n\t}\n\n\terr = config.UpdateReverseProxyRulet(requestObj)\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"修改反向代理规则失败:%s\", err.Error())})\n\t\treturn\n\t}\n\n\treverseproxy.EnableRuleByKey(requestObj.RuleKey, false)\n\t//reverseproxy.FlushCache(requestObj.RuleKey)\n\tif requestObj.Enable {\n\t\treverseproxy.EnableRuleByKey(requestObj.RuleKey, true)\n\t}\n\n\tconfig.TidyReverseProxyCache()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc deleteReverseProxyRule(c *gin.Context) {\n\truleKey := c.Query(\"key\")\n\n\terr := reverseproxy.EnableRuleByKey(ruleKey, false)\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"删除反向代理规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = config.ReverseProxyRuleListDelete(ruleKey)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 3, \"msg\": fmt.Sprintf(\"删除反向代理规则出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tconfig.TidyReverseProxyCache()\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc enableReverseProxyRule(c *gin.Context) {\n\n\tenableStr := c.Query(\"enable\")\n\truleKey := c.Query(\"ruleKey\")\n\tproxyKey := c.Query(\"proxyKey\")\n\n\tenable := false\n\n\tif enableStr == \"true\" {\n\t\tenable = true\n\t}\n\n\tif proxyKey == \"\" { //开关规则\n\t\terr := reverseproxy.EnableRuleByKey(ruleKey, enable)\n\t\tif err != nil {\n\t\t\terrMsg := err.Error()\n\t\t\tif strings.Contains(errMsg, \"Only one usage of each socket address\") {\n\t\t\t\terrMsg = \"端口已被占用\"\n\t\t\t}\n\t\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": errMsg})\n\t\t\treturn\n\t\t}\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n\t\treturn\n\t}\n\n\terr := config.EnableReverseProxySubRule(ruleKey, proxyKey, enable)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": err.Error()})\n\t\treturn\n\t}\n\t//reverseproxy.FlushCache(ruleKey)\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc checkReverseProxyRuleRequest(rule *config.ReverseProxyRule) error {\n\t// if len(rule.ProxyList) <= 0 {\n\t// \treturn fmt.Errorf(\"至少添加一条反向代理转发规则\")\n\t// }\n\tvar err error\n\n\tif rule.RuleKey == \"\" {\n\t\trule.RuleKey = stringsp.GetRandomString(16)\n\t}\n\trule.DefaultProxy.Key = rule.RuleKey\n\n\tif len(rule.DefaultProxy.Locations) > 0 {\n\t\tdefaultLocations := []string{}\n\t\tfor i := range rule.DefaultProxy.Locations {\n\t\t\tscheme, hostname, port, _, e := stringsp.GetHostAndPathFromURL(rule.DefaultProxy.Locations[i])\n\t\t\tif e != nil {\n\t\t\t\treturn fmt.Errorf(\"默认目标地址[%s]格式有误\", rule.DefaultProxy.Locations[i])\n\t\t\t}\n\n\t\t\tif port != \"\" {\n\t\t\t\tport = \":\" + port\n\t\t\t}\n\n\t\t\tdefaultLocations = append(defaultLocations, fmt.Sprintf(\"%s://%s%s\", scheme, hostname, port))\n\t\t}\n\n\t\trule.DefaultProxy.Locations = defaultLocations\n\t}\n\n\tif rule.DefaultProxy.AddRemoteIPToHeader && rule.DefaultProxy.AddRemoteIPHeaderKey == \"\" {\n\t\treturn fmt.Errorf(\"追加客户端连接IP到指定Header 启用时,自定义HeaderKey不能为空\")\n\t}\n\n\tfor i := range rule.ProxyList {\n\t\tdomainsLength := len(rule.ProxyList[i].Domains)\n\t\tif domainsLength <= 0 {\n\t\t\treturn fmt.Errorf(\"第 %d 条反向代理转发规则中域名不能为空\", i+1)\n\t\t}\n\n\t\tlocationsLength := len(rule.ProxyList[i].Locations)\n\t\tif locationsLength <= 0 {\n\t\t\treturn fmt.Errorf(\"第 %d 条反向代理转发规则中后端目标地址不能为空\", i+1)\n\t\t}\n\n\t\tfor j := range rule.ProxyList[i].Domains {\n\t\t\t_, hostname, _, _, e := stringsp.GetHostAndPathFromURL(rule.ProxyList[i].Domains[j])\n\t\t\tif e != nil {\n\t\t\t\treturn fmt.Errorf(\"第 %d 条反向代理转发规则中第 %d 条前端地址/域名[%s]格式有误\", i+1, j+1, rule.ProxyList[i].Domains[j])\n\t\t\t}\n\t\t\trule.ProxyList[i].Domains[j] = hostname\n\t\t}\n\n\t\tfor j := range rule.ProxyList[i].Locations {\n\t\t\tscheme, hostname, port, _, e := stringsp.GetHostAndPathFromURL(rule.ProxyList[i].Locations[j])\n\t\t\tif e != nil {\n\t\t\t\treturn fmt.Errorf(\"第 %d 条反向代理转发规则中第 %d 条后端目标地址[%s]格式有误\", i+1, j+1, rule.ProxyList[i].Locations[j])\n\t\t\t}\n\t\t\tif port != \"\" {\n\t\t\t\tport = \":\" + port\n\t\t\t}\n\t\t\trule.ProxyList[i].Locations[j] = fmt.Sprintf(\"%s://%s%s\", scheme, hostname, port)\n\t\t}\n\n\t\tif rule.ProxyList[i].AddRemoteIPToHeader && rule.ProxyList[i].AddRemoteIPHeaderKey == \"\" {\n\t\t\treturn fmt.Errorf(\"第 %d 条子规则中 追加客户端连接IP到指定Header 启用时,自定义HeaderKey不能为空\", i+1)\n\t\t}\n\n\t\tif rule.ProxyList[i].Key == \"\" {\n\t\t\trule.ProxyList[i].Key = stringsp.GetRandomString(16)\n\t\t}\n\n\t\tfor j := range rule.ProxyList[i].TrustedCIDRsStrList {\n\t\t\t_, _, err = net.ParseCIDR(rule.ProxyList[i].TrustedCIDRsStrList[j])\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"第 %d 条子规则中 TrustedCIDRsStrList[%s]格式有误\", i+1, rule.ProxyList[i].TrustedCIDRsStrList[j])\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfor i := range rule.DefaultProxy.TrustedCIDRsStrList {\n\t\t_, _, err = net.ParseCIDR(rule.DefaultProxy.TrustedCIDRsStrList[i])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"默认子规则中的 TrustedCIDRsStrList[%s]格式有误\", rule.DefaultProxy.TrustedCIDRsStrList[i])\n\t\t}\n\t}\n\n\trule.Init()\n\n\treturn nil\n}\n\nfunc getReverseProxyLog(c *gin.Context) {\n\truleKey := c.Query(\"ruleKey\")\n\tproxyKey := c.Query(\"proxyKey\")\n\tpageSize, _ := strconv.Atoi(c.Query(\"pageSize\"))\n\tif pageSize <= 0 {\n\t\tpageSize = 10\n\t}\n\tpage, _ := strconv.Atoi(c.Query(\"page\"))\n\tif page <= 0 {\n\t\tpage = 1\n\t}\n\n\t//last := c.Query(\"last\")\n\n\ttotal, logList := reverseproxy.GetAccessLogs(ruleKey, proxyKey, pageSize, page)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"total\": total, \"page\": page, \"pageSize\": pageSize, \"logs\": logList})\n\n}\n"
  },
  {
    "path": "web/ssl.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc addSSL(c *gin.Context) {\n\tvar requestObj config.SSLCertficate\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = requestObj.Init()\n\tif err != nil {\n\t\tlog.Printf(\"addSSL requestObj.Init() error:%s\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"证书和Key有误!\"})\n\t\treturn\n\t}\n\n\t//fmt.Printf(\"CertsInfo:%v\\n\", *requestObj.CertsInfo)\n\terr = config.SSLCertficateListAdd(&requestObj)\n\tif err != nil {\n\t\tlog.Printf(\"config.SSLCertficateListAdd error:%s\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加SSL证书出错!:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n\n}\n\ntype sslResInfo struct {\n\tKey       string             `json:\"Key\"`\n\tRemark    string             `json:\"Remark\"`\n\tEnable    bool               `json:\"Enable\"`\n\tAddTime   string             `json:\"AddTime\"`\n\tCertsInfo *[]config.CertInfo `json:\"CertsInfo\"`\n}\n\nfunc getSSLCertficateList(c *gin.Context) {\n\trawList := config.GetSSLCertficateList()\n\tvar res []sslResInfo\n\tfor i := range rawList {\n\t\tinfo := sslResInfo{\n\t\t\tKey:       rawList[i].Key,\n\t\t\tRemark:    rawList[i].Remark,\n\t\t\tEnable:    rawList[i].Enable,\n\t\t\tAddTime:   rawList[i].AddTime,\n\t\t\tCertsInfo: rawList[i].CertsInfo,\n\t\t}\n\n\t\tres = append(res, info)\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": res})\n}\n\nfunc alterSSLCertficate(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\tfield := c.Query(\"field\")\n\tvalue := c.Query(\"value\")\n\tvar err error\n\tswitch field {\n\tcase \"enable\":\n\t\t{\n\t\t\tenable := false\n\n\t\t\tif value == \"true\" {\n\t\t\t\tenable = true\n\t\t\t}\n\t\t\terr = config.SSLCertficateEnable(key, enable)\n\t\t}\n\tcase \"remark\":\n\t\t{\n\t\t\terr = config.SSLCertficateAlterRemark(key, value)\n\t\t}\n\tdefault:\n\t\terr = fmt.Errorf(\"不支持修改的字段:%s\", field)\n\t}\n\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": err.Error()})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc deleteSSLCertficate(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\terr := config.SSLCertficateListDelete(key)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": err.Error()})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n"
  },
  {
    "path": "web/web.go",
    "content": "package web\n\nimport (\n\t\"crypto/tls\"\n\t\"embed\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/fs\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/gin-contrib/gzip\"\n\t\"github.com/gin-gonic/gin\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/socketproxy\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/fileutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/ginutils\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/logsbuffer\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/netinterfaces\"\n\t\"github.com/gdy666/lucky/thirdlib/gdylib/stringsp\"\n\t\"github.com/golang-jwt/jwt\"\n\t\"github.com/shirou/gopsutil/v3/cpu\"\n\t\"github.com/shirou/gopsutil/v3/mem\"\n\t\"github.com/shirou/gopsutil/v3/process\"\n)\n\n//go:embed adminviews/dist\nvar staticFs embed.FS\nvar stafs fs.FS\nvar loginErrorCount = int32(0)\nvar rebootOnce sync.Once\nvar logBuffer *logsbuffer.LogsBuffer\n\ntype LogItem struct {\n\tTimestamp string `json:\"timestamp\"`\n\tContent   string `json:\"log\"`\n}\n\nfunc logConvert(lg *logsbuffer.LogItem) any {\n\tl := LogItem{Content: lg.Content, Timestamp: fmt.Sprintf(\"%d\", lg.Timestamp)}\n\treturn l\n}\n\nfunc init() {\n\tstafs, _ = fs.Sub(staticFs, \"adminviews/dist\")\n\tlogBuffer = logsbuffer.Create(1024)\n\t//logBuffer.SetLogItemConverFunc(logConvert)\n\tlog.SetOutput(io.MultiWriter(logBuffer, os.Stdout))\n\n}\n\nfunc RunAdminWeb(conf *config.BaseConfigure) {\n\n\t//gin.Default()\n\tlogBuffer.SetBufferSize(conf.LogMaxSize)\n\n\tgin.SetMode(gin.ReleaseMode)\n\tr := gin.New()\n\n\tif gin.Mode() != gin.ReleaseMode {\n\t\tr.Use(gin.Logger(), gin.Recovery())\n\t} else {\n\t\tr.Use(gin.Recovery())\n\t}\n\n\tr.Use(checkLocalIP)\n\tr.Use(gzip.Gzip(gzip.DefaultCompression))\n\tr.Use(ginutils.Cors())\n\n\tr.Use(ginutils.HandlerStaticFiles(stafs))\n\n\t//r.Use(sessionCheck())\n\t//r.StaticFS(\"/\", http.FS(stafs))\n\n\tauthorized := r.Group(\"/\")\n\tauthorized.Use(tokenCheck())\n\t{\n\t\tauthorized.GET(\"/api/logs\", Logs)\n\t\tauthorized.GET(\"/api/status\", status)\n\t\tauthorized.GET(\"/api/test\", test)\n\n\t\tauthorized.GET(\"/api/portforwards\", PortForwardsRuleList)\n\t\tauthorized.POST(\"/api/portforward\", PortForwardsRuleAdd)\n\t\tauthorized.DELETE(\"/api/portforward\", PortForwardsRuleDelete)\n\t\tauthorized.PUT(\"/api/portforward\", PortForwardsRuleAlter)\n\t\tauthorized.GET(\"/api/portforward/enable\", PortForwardsRuleEnable)\n\t\tauthorized.GET(\"/api/portforward/configure\", portforwardConfigure)\n\t\tauthorized.PUT(\"/api/portforward/configure\", alterPortForwardConfigure)\n\t\tauthorized.GET(\"/api/portforward/logs\", getPortwardRuleLogs)\n\n\t\tauthorized.GET(\"/api/baseconfigure\", baseconfigure)\n\t\tauthorized.PUT(\"/api/baseconfigure\", alterBaseConfigure)\n\t\tauthorized.GET(\"/api/reboot_program\", rebootProgram)\n\n\t\tauthorized.GET(\"/api/whitelist/configure\", whitelistConfigure)\n\t\tauthorized.PUT(\"/api/whitelist/configure\", alterWhitelistConfigure)\n\t\tauthorized.GET(\"/api/whitelist\", querywhitelist)\n\t\tauthorized.PUT(\"/api/whitelist/flush\", flushwhitelist)\n\t\tauthorized.DELETE(\"/api/whitelist\", deletewhitelist)\n\t\tauthorized.GET(\"/api/blacklist\", queryblacklist)\n\t\tauthorized.PUT(\"/api/blacklist/flush\", flushblacklist)\n\t\tauthorized.DELETE(\"/api/blacklist\", deleteblacklist)\n\n\t\tauthorized.POST(\"/api/ddns\", addDDNS)\n\t\tauthorized.PUT(\"/api/ddns\", alterDDNSTask)\n\t\tauthorized.GET(\"/api/ddnstasklist\", ddnsTaskList)\n\t\tauthorized.DELETE(\"/api/ddns\", deleteDDNSTask)\n\t\tauthorized.GET(\"/api/ddns/enable\", enableddns)\n\t\tauthorized.GET(\"/api/ddns/configure\", ddnsconfigure)\n\t\tauthorized.PUT(\"/api/ddns/configure\", alterDDNSConfigure)\n\n\t\tauthorized.GET(\"/api/netinterfaces\", getNetinterfaces)\n\t\tauthorized.GET(\"/api/ipregtest\", IPRegTest)\n\t\tauthorized.POST(\"/api/webhooktest\", webhookTest)\n\n\t\tauthorized.GET(\"/api/reverseproxyrules\", reverseProxys)\n\t\tauthorized.POST(\"/api/reverseproxyrule\", addReverseProxyRule)\n\t\tauthorized.PUT(\"/api/reverseproxyrule\", alterReverseProxyRule)\n\t\tauthorized.DELETE(\"/api/reverseproxyrule\", deleteReverseProxyRule)\n\t\tauthorized.GET(\"/api/reverseproxyrule/enable\", enableReverseProxyRule)\n\t\tauthorized.GET(\"/api/reverseproxyrule/logs\", getReverseProxyLog)\n\n\t\tauthorized.POST(\"/api/ssl\", addSSL)\n\t\tauthorized.GET(\"/api/ssl\", getSSLCertficateList)\n\t\tauthorized.PUT(\"/api/ssl\", alterSSLCertficate)\n\t\tauthorized.DELETE(\"/api/ssl\", deleteSSLCertficate)\n\n\t\tauthorized.POST(\"/api/wol/device\", addWOLDevice)\n\t\tauthorized.GET(\"/api/wol/device/wakeup\", WOLDeviceWakeUp)\n\t\tauthorized.GET(\"/api/wol/devices\", getWOLDeviceList)\n\t\tauthorized.PUT(\"/api/wol/device\", alterWOLDevice)\n\t\tauthorized.DELETE(\"/api/wol/device\", deleteWOLDevice)\n\n\t\tauthorized.GET(\"/api/info\", info)\n\t\tauthorized.GET(\"/api/configure\", configure)\n\t\tauthorized.POST(\"/api/configure\", restoreConfigure)\n\t\tauthorized.POST(\"/api/getfilebase64\", getFileBase64)\n\n\t\tauthorized.GET(\"/api/restoreconfigureconfirm\", restoreConfigureConfirm)\n\t\tr.PUT(\"/api/logout\", logout)\n\t}\n\tr.POST(\"/api/login\", login)\n\t//r.GET(\"/FreeOSMemory\", FreeOSMemory)\n\n\tr.GET(\"/wl\", whitelistBasicAuth, whilelistAdd)\n\tr.GET(\"/wl/:url\", whitelistBasicAuth, whilelistAdd)\n\tr.GET(\"/version\", queryVersion)\n\n\t//r.Use(func() *gin.Context {})\n\n\tgo func() {\n\t\thttpListen := fmt.Sprintf(\":%d\", conf.AdminWebListenPort)\n\t\tlog.Printf(\"AdminWeb(Http) listen on %s\", httpListen)\n\t\terr := r.Run(httpListen)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Admin Http Listen error:%s\", err.Error())\n\t\t\tos.Exit(1)\n\t\t}\n\t}()\n\n\tif conf.AdminWebListenTLS {\n\t\tcertlist := config.GetValidSSLCertficateList()\n\t\tif len(certlist) <= 0 {\n\t\t\tlog.Printf(\"可用SSL证书列表为空,AdminWeb(Https) 监听服务中止运行\")\n\t\t\treturn\n\t\t}\n\t\thttpsListen := fmt.Sprintf(\":%d\", conf.AdminWebListenHttpsPort)\n\n\t\tserver := &http.Server{\n\t\t\tAddr:    httpsListen,\n\t\t\tHandler: r,\n\t\t}\n\t\tserver.TLSConfig = &tls.Config{}\n\t\tserver.TLSConfig.Certificates = certlist\n\t\tln, err := net.Listen(\"tcp\", httpsListen)\n\t\tif err != nil {\n\t\t\tlog.Fatalf(\"Admin Https Listen error:%s\", err.Error())\n\t\t}\n\t\tlog.Printf(\"AdminWeb(Https) listen on %s\", httpsListen)\n\t\terr = server.ServeTLS(ln, \"\", \"\")\n\t\tif err != nil {\n\t\t\tlog.Printf(\"AdminWeb(Https) Server error:%s\", err.Error())\n\t\t}\n\t}\n\n}\n\n// func FreeOSMemory(c *gin.Context) {\n// \tdebug.FreeOSMemory()\n// \tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n// }\n\n// Logs web\nfunc Logs(c *gin.Context) {\n\tpreTimeStampStr := c.Query(\"pre\")\n\tpreTimeStamp, _ := strconv.ParseInt(preTimeStampStr, 10, 64)\n\tlogs := logBuffer.GetLogs(logConvert, preTimeStamp)\n\n\tlogCount := logBuffer.GetLogCount()\n\n\tc.JSON(http.StatusOK, gin.H{\n\t\t\"ret\":       0,\n\t\t\"logs\":      logs,\n\t\t\"logsCount\": logCount,\n\t})\n\n}\n\nfunc info(c *gin.Context) {\n\tinfo := config.GetAppInfo()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"info\": *info})\n\n}\n\nfunc logout(c *gin.Context) {\n\tconfig.FlushLoginRandomKey()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"已注销登录\"})\n}\n\nfunc queryVersion(c *gin.Context) {\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"version\": config.GetVersion()})\n}\n\nfunc checkLocalIP(c *gin.Context) {\n\tclientIP := c.ClientIP()\n\t//fmt.Printf(\"clientIP:%s\\n\", clientIP)\n\tbc := config.GetBaseConfigure()\n\n\tif !isLocalIP(clientIP) && !bc.AllowInternetaccess {\n\t\tc.JSON(http.StatusForbidden, gin.H{\n\t\t\t\"ret\": 1,\n\t\t\t\"msg\": \"外网禁止访问,如果需要允许外网访问请在后台设置中打开相应开关.\",\n\t\t\t\"ip\":  clientIP})\n\t\tc.Abort()\n\t\treturn\n\t}\n\n}\n\nfunc tokenCheck() gin.HandlerFunc {\n\treturn func(c *gin.Context) {\n\n\t\t// if config.GetRunMode() == \"dev\" {\n\t\t// \tc.Next()\n\t\t// \treturn\n\t\t// }\n\n\t\ttokenString, _ := c.GetQuery(\"Authorization\")\n\t\tif tokenString == \"\" {\n\t\t\ttokenString = c.GetHeader(\"Authorization\")\n\t\t}\n\n\t\ttoken, err := ginutils.GetJWTToken(tokenString, \"strings\")\n\t\tif err != nil {\n\t\t\tc.AbortWithStatusJSON(http.StatusOK, gin.H{\"ret\": -1, \"msg\": \"登录失效\"})\n\t\t\treturn\n\t\t}\n\n\t\tclaims, ok := token.Claims.(jwt.MapClaims)\n\t\tif !ok {\n\t\t\tc.AbortWithStatusJSON(http.StatusOK, gin.H{\"ret\": -1, \"msg\": \"登录失效\"})\n\t\t\treturn\n\t\t}\n\n\t\taccount := claims[\"account\"].(string)\n\t\tpassword := claims[\"password\"].(string)\n\t\tloginKey := claims[\"loginkey\"].(string)\n\n\t\tif account == \"\" || password == \"\" {\n\t\t\tc.AbortWithStatusJSON(http.StatusOK, gin.H{\"ret\": -1, \"msg\": \"登录失效\"})\n\t\t\treturn\n\t\t}\n\n\t\tbc := config.GetBaseConfigure()\n\n\t\t// //fmt.Printf(\"session中的account:%s password:%s\\n\", account, password)\n\t\tif bc.AdminAccount != account || bc.AdminPassword != password || loginKey != config.GetLoginRandomKey() {\n\t\t\tc.AbortWithStatusJSON(http.StatusOK, gin.H{\"ret\": -1, \"msg\": \"登录失效\"})\n\t\t\treturn\n\t\t}\n\t\tc.Next()\n\t}\n}\n\nfunc rebootProgram(c *gin.Context) {\n\trebootOnce.Do(func() {\n\t\tgo func() {\n\t\t\tfileutils.OpenProgramOrFile(os.Args)\n\t\t\tos.Exit(0)\n\t\t}()\n\t})\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"\"})\n}\n\nfunc login(c *gin.Context) {\n\tvar requestObj struct {\n\t\tAccount  string `json:\"Account\"`\n\t\tPassword string `json:\"Password\"`\n\t}\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"登录失败,登录请求解析出错\"})\n\t\treturn\n\t}\n\n\tif atomic.LoadInt32(&loginErrorCount) >= 99 {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"登录错误次数太多,后台登录功能已禁用,请重启程序.\"})\n\t\treturn\n\t}\n\n\tbc := config.GetBaseConfigure()\n\n\tif bc.AdminAccount != requestObj.Account || bc.AdminPassword != requestObj.Password {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"登录失败,账号或密码有误\"})\n\t\tatomic.AddInt32(&loginErrorCount, 1)\n\t\treturn\n\t}\n\n\tconfig.FlushLoginRandomKey()\n\ttokenInfo := make(map[string]interface{})\n\ttokenInfo[\"account\"] = requestObj.Account //用户名\n\ttokenInfo[\"password\"] = requestObj.Password\n\ttokenInfo[\"loginkey\"] = config.GetLoginRandomKey()\n\ttokenString, err := ginutils.GetJWTTokenString(tokenInfo, \"strings\", time.Hour*24)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"登录失败,token生成出错\"})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"msg\": \"登录成功\", \"token\": tokenString})\n}\n\nfunc alterBaseConfigure(c *gin.Context) {\n\tvar requestObj config.BaseConfigure\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\trequestObj.AdminAccount = strings.TrimSpace(requestObj.AdminAccount)\n\n\tif len(requestObj.AdminAccount) == 0 || len(requestObj.AdminPassword) == 0 {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"账号或密码不能为空\"})\n\t\treturn\n\t}\n\n\tpreBaseConfigure := config.GetBaseConfigure()\n\tif preBaseConfigure.AdminWebListenPort != requestObj.AdminWebListenPort && !config.CheckTCPPortAvalid(requestObj.AdminWebListenPort) { //检测新端口\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"新的后端管理监听端口[%d]已被占用,修改设置失败\", requestObj.AdminWebListenPort)})\n\t\treturn\n\t}\n\n\terr = config.SetBaseConfigure(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"保存配置过程发生错误,请检测相关启动配置\"})\n\t\treturn\n\t}\n\n\tif preBaseConfigure.LogMaxSize != requestObj.LogMaxSize {\n\t\tlogBuffer.SetBufferSize(requestObj.LogMaxSize)\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc baseconfigure(c *gin.Context) {\n\tconf := config.GetBaseConfigure()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"baseconfigure\": conf})\n}\n\nfunc getNetinterfaces(c *gin.Context) {\n\tipv4NetInterfaces, ipv6Netinterfaces, err := netinterfaces.GetNetInterface()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"获取网卡列表出错：%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"data\": gin.H{\"IPv6NewInterfaces\": ipv6Netinterfaces, \"IPv4NewInterfaces\": ipv4NetInterfaces}})\n}\n\nfunc IPRegTest(c *gin.Context) {\n\tiptype := c.Query(\"iptype\")\n\tnetinterface := c.Query(\"netinterface\")\n\tipreg := c.Query(\"ipreg\")\n\n\tip := netinterfaces.GetIPFromNetInterface(iptype, netinterface, ipreg)\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"ip\": ip})\n}\n\nfunc test(c *gin.Context) {\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc status(c *gin.Context) {\n\n\tv, _ := mem.VirtualMemory()\n\n\tcurrentProcessMem := GetCurrentProcessMem()\n\t//fmt.Fprintf(w, \"当前进程 CPU使用率:%.2f%% 协程数:%d 进程内存使用:%s 系统内存总量:%s 已用:%s 可用:%s \\n\", GetCurrentProcessCPUPrecent(), runtime.NumGoroutine(), formatFileSize(currentProcessMem), formatFileSize(v.Total), formatFileSize(v.Used), formatFileSize(v.Free))\n\t//fmt.Fprintf(w, \"当前全局TCP 连接数:%d   全局TCP连接数最大限制:%d\\n\", core.GetGlobalTCPConns(), core.GetGlobalMaxConnections())\n\n\t//var proxyStatusList []string\n\n\t// for _, p := range *config.GlobalProxy {\n\t// \t//fmt.Fprintf(w, \"%s\\n\", p.GetStatus())\n\t// \tproxyStatusList = append(proxyStatusList, p.GetStatus())\n\t// }\n\n\tappInfo := config.GetAppInfo()\n\n\trespMap := make(map[string]interface{})\n\trespMap[\"totleMem\"] = stringsp.BinaryUnitToStr(v.Total)\n\trespMap[\"usedMem\"] = stringsp.BinaryUnitToStr(v.Used)\n\trespMap[\"unusedMem\"] = stringsp.BinaryUnitToStr(v.Free)\n\trespMap[\"currentProcessUsedCPU\"] = fmt.Sprintf(\"%.2f%%\", GetCurrentProcessCPUPrecent())\n\trespMap[\"goroutine\"] = fmt.Sprintf(\"%d\", runtime.NumGoroutine())\n\trespMap[\"processUsedMem\"] = stringsp.BinaryUnitToStr(currentProcessMem)\n\trespMap[\"currentTCPConnections\"] = fmt.Sprintf(\"%d\", socketproxy.GetGlobalTCPPortForwardConnections())\n\trespMap[\"currentUDPConnections\"] = fmt.Sprintf(\"%d\", socketproxy.GetGlobalUDPPortForwardGroutineCount())\n\trespMap[\"maxTCPConnections\"] = fmt.Sprintf(\"%d\", socketproxy.GetGlobalTCPPortforwardMaxConnections())\n\trespMap[\"usedCPU\"] = fmt.Sprintf(\"%.2f%%\", GetCpuPercent())\n\trespMap[\"runTime\"] = appInfo.RunTime\n\t//respMap[\"proxysStatus\"] = proxyStatusList\n\n\tc.JSON(http.StatusOK, gin.H{\n\t\t\"ret\":  0,\n\t\t\"data\": respMap,\n\t})\n}\n\nfunc GetCurrentProcessMem() uint64 {\n\tplist, e := process.Processes()\n\tif e == nil {\n\t\tfor _, p := range plist {\n\t\t\tif int(p.Pid) == os.Getpid() {\n\t\t\t\tmem, err := p.MemoryInfo()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\treturn mem.RSS\n\t\t\t}\n\t\t}\n\t}\n\treturn 0\n}\n\nfunc GetCurrentProcessCPUPrecent() float64 {\n\tplist, e := process.Processes()\n\tif e == nil {\n\t\tfor _, p := range plist {\n\t\t\tif int(p.Pid) == os.Getpid() {\n\t\t\t\tcpuprecent, err := p.CPUPercent()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\treturn cpuprecent\n\t\t\t}\n\t\t}\n\t}\n\treturn 0\n}\n\nfunc GetCpuPercent() float64 {\n\tpercent, _ := cpu.Percent(time.Second, false)\n\treturn percent[0]\n}\n\n//------------------------------------------------------------------------------------------------------------------\n\nfunc isLocalIP(ipstr string) bool {\n\n\tip := net.ParseIP(ipstr)\n\n\tif ip.IsLoopback() {\n\t\treturn true\n\t}\n\n\tip4 := ip.To4()\n\tif ip4 == nil {\n\t\treturn false\n\t}\n\n\treturn ip4[0] == 10 || // 10.0.0.0/8\n\t\t(ip4[0] == 172 && ip4[1] >= 16 && ip4[1] <= 31) || // 172.16.0.0/12\n\t\t(ip4[0] == 169 && ip4[1] == 254) || // 169.254.0.0/16\n\t\t(ip4[0] == 192 && ip4[1] == 168) // 192.168.0.0/16\n}\n"
  },
  {
    "path": "web/wol.go",
    "content": "package web\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gin-gonic/gin\"\n)\n\nfunc addWOLDevice(c *gin.Context) {\n\tvar requestObj config.WOLDevice\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkWolDevice(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加网络唤醒设备出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = config.WOLDeviceListAdd(&requestObj)\n\tif err != nil {\n\t\tlog.Printf(\"config.WOLDeviceListAdd error:%s\", err.Error())\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"添加网络唤醒设备出错!:%s\", err.Error())})\n\t\treturn\n\t}\n\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc getWOLDeviceList(c *gin.Context) {\n\tlist := config.GetWOLDeviceList()\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0, \"list\": list})\n}\n\nfunc alterWOLDevice(c *gin.Context) {\n\tvar requestObj config.WOLDevice\n\terr := c.BindJSON(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": \"请求解析出错\"})\n\t\treturn\n\t}\n\n\terr = checkWolDevice(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": fmt.Sprintf(\"修改网络唤醒设备出错:%s\", err.Error())})\n\t\treturn\n\t}\n\n\terr = config.WOLDeviceListAlter(&requestObj)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"修改网络唤醒设备配置失败:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc deleteWOLDevice(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\terr := config.WOLDeviceListDelete(key)\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"删除网络唤醒设备失败:%s\", err.Error())})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc WOLDeviceWakeUp(c *gin.Context) {\n\tkey := c.Query(\"key\")\n\n\tdevice := config.GetWOLDeviceByKey(key)\n\tif device == nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 1, \"msg\": fmt.Sprintf(\"找不到Key对应的设备,唤醒失败\")})\n\t\treturn\n\t}\n\terr := device.WakeUp()\n\tif err != nil {\n\t\tc.JSON(http.StatusOK, gin.H{\"ret\": 2, \"msg\": \"唤醒失败\"})\n\t\treturn\n\t}\n\tc.JSON(http.StatusOK, gin.H{\"ret\": 0})\n}\n\nfunc checkWolDevice(d *config.WOLDevice) error {\n\n\t// if strings.TrimSpace(d.DeviceName) == \"\" {\n\t// \treturn fmt.Errorf(\"设备名称不能为空\")\n\t// }\n\n\tif d.Port <= 0 || d.Port > 065535 {\n\t\td.Port = 9\n\t}\n\n\tif d.Repeat <= 0 || d.Repeat > 10 {\n\t\td.Repeat = 5\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "web.go",
    "content": "package main\n\nimport (\n\t\"github.com/gdy666/lucky/config\"\n\t\"github.com/gdy666/lucky/web\"\n)\n\nfunc RunAdminWeb(conf *config.BaseConfigure) {\n\t//listen := fmt.Sprintf(\":%d\", listenPort)\n\tgo web.RunAdminWeb(conf)\n}\n"
  }
]